diff --git a/apps/web/src/components/vision/AbacusVisionBridge.tsx b/apps/web/src/components/vision/AbacusVisionBridge.tsx index 726f8c0b..b170f955 100644 --- a/apps/web/src/components/vision/AbacusVisionBridge.tsx +++ b/apps/web/src/components/vision/AbacusVisionBridge.tsx @@ -44,6 +44,16 @@ export interface AbacusVisionBridgeProps { onConfigurationChange?: (config: VisionConfigurationChange) => void /** Initial camera source to show (defaults to 'local', but should be 'phone' if remote session is active) */ initialCameraSource?: CameraSource + /** Whether to show vision control buttons (enable/disable, clear settings) */ + showVisionControls?: boolean + /** Whether vision is currently enabled (for showVisionControls) */ + isVisionEnabled?: boolean + /** Whether vision setup is complete (for showVisionControls) */ + isVisionSetupComplete?: boolean + /** Called when user toggles vision on/off */ + onToggleVision?: () => void + /** Called when user clicks clear settings */ + onClearSettings?: () => void } /** @@ -62,6 +72,11 @@ export function AbacusVisionBridge({ onError, onConfigurationChange, initialCameraSource = 'local', + showVisionControls = false, + isVisionEnabled = false, + isVisionSetupComplete = false, + onToggleVision, + onClearSettings, }: AbacusVisionBridgeProps): ReactNode { const [videoDimensions, setVideoDimensions] = useState<{ width: number @@ -1339,6 +1354,72 @@ export function AbacusVisionBridge({ {vision.cameraError} )} + + {/* Vision control buttons (when embedded in modal) */} + {showVisionControls && ( +