diff --git a/ui/package.json b/ui/package.json index 4c988250..3b91d15b 100644 --- a/ui/package.json +++ b/ui/package.json @@ -4,7 +4,7 @@ "version": "2025.09.03.2100", "type": "module", "engines": { - "node": "22.15.0" + "node": "^22.15.0" }, "scripts": { "dev": "./dev_device.sh", @@ -78,6 +78,7 @@ "prettier": "^3.6.2", "prettier-plugin-tailwindcss": "^0.6.14", "tailwindcss": "^4.1.12", + "tesseract.js": "6.0.1", "typescript": "^5.9.2", "vite": "^7.1.4", "vite-tsconfig-paths": "^5.1.4" diff --git a/ui/src/components/ActionBar.tsx b/ui/src/components/ActionBar.tsx index 4f79d7ed..5746080b 100644 --- a/ui/src/components/ActionBar.tsx +++ b/ui/src/components/ActionBar.tsx @@ -1,4 +1,4 @@ -import { MdOutlineContentPasteGo } from "react-icons/md"; +import { MdOutlineContentPasteGo, MdOutlineDocumentScanner } from "react-icons/md"; import { LuCable, LuHardDrive, LuMaximize, LuSettings, LuSignal } from "react-icons/lu"; import { FaKeyboard } from "react-icons/fa6"; import { Popover, PopoverButton, PopoverPanel } from "@headlessui/react"; @@ -19,11 +19,14 @@ import WakeOnLanModal from "@/components/popovers/WakeOnLan/Index"; import MountPopopover from "@/components/popovers/MountPopover"; import ExtensionPopover from "@/components/popovers/ExtensionPopover"; import { useDeviceUiNavigation } from "@/hooks/useAppNavigation"; +import OCRModal from "./popovers/OCRModal"; export default function Actionbar({ requestFullscreen, + videoElmRef, }: { requestFullscreen: () => Promise; + videoElmRef?: React.RefObject; }) { const { navigateTo } = useDeviceUiNavigation(); const { isVirtualKeyboardEnabled, setVirtualKeyboardEnabled } = useHidStore(); @@ -99,6 +102,36 @@ export default function Actionbar({ }} + + +