Luxar Viewer API Documentation - v2026.10.19
    Preparing search index...

    What applying kiosk mode needs from the app.

    interface KioskPorts {
        setKeyboardEnabled: (enabled: boolean) => void;
        getKeyboardEnabled: () => boolean;
        setPointerEnabled: (enabled: boolean) => void;
        getPointerEnabled: () => boolean;
        hidePanels?: () => void;
        canvas?: EventTarget;
        reload?: () => void;
        onDeviceLost?: (listener: () => void) => () => void;
    }
    Index
    setKeyboardEnabled: (enabled: boolean) => void

    Enable or disable routed keyboard handling. Kiosk snapshots this shared flag and restores it on release. Embedder setInputEnabled() writes take effect during kiosk, but do not replace the saved pre-kiosk state.

    getKeyboardEnabled: () => boolean
    setPointerEnabled: (enabled: boolean) => void

    Enable or disable canvas gestures while leaving the camera update loop live.

    Separate from setKeyboardEnabled, and necessarily so: that one reaches InputContextManager.setEnabled, whose entire effect is to drop keydown dispatch (context-manager.ts: if (!this.enabled && type === 'down')) — NOT pointer events, and not picking, which lives elsewhere. Orbit/fly controls listen on the canvas themselves, so disabling only the keyboard left the camera fully draggable under ?kiosk — measured at 46x the auto-rotate drift, so a visitor could still swing the view off the tour.

    getPointerEnabled: () => boolean
    hidePanels?: () => void

    Hide every panel and the rail.

    canvas?: EventTarget

    The canvas, for the watchdog's context listeners. Absent in tests.

    reload?: () => void

    Reload the page. Injected so a test never navigates.

    onDeviceLost?: (listener: () => void) => () => void

    Subscribe to an unrecoverable GPU loss (WebGPU device.lost); returns the unsubscribe.