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

    Interface InputProfile

    The derived, memoised profile every touch adaptation reads.

    interface InputProfile {
        coarsePointer: boolean;
        hoverCapable: boolean;
        touchPoints: number;
        isIPhone: boolean;
        isIPad: boolean;
        isIOS: boolean;
        isAndroid: boolean;
        deviceClass: DeviceClass;
        source: "detected" | "override";
    }
    Index
    coarsePointer: boolean

    Primary pointer is coarse → touch-first interaction and sizing.

    hoverCapable: boolean

    Some pointer can hover → hover-revealed affordances (tooltips, captions) stay meaningful. True for every mouse/trackpad machine AND for an iPad with a trackpad; false for a bare phone or tablet.

    touchPoints: number

    Number of simultaneous touch contacts the device reports.

    isIPhone: boolean

    iPhone / iPod touch (Safari lacks Fullscreen for non-video elements).

    isIPad: boolean

    iPad, including iPadOS masquerading as macOS. An iPhone with Safari's "Request Desktop Website" active also presents the macOS UA and therefore reads as an iPad here (the UA carries no phone marker); gate on isIOS when the phone/tablet distinction is not load-bearing.

    isIOS: boolean

    isIPhone || isIPad — drives WebKit-on-iOS-only workarounds.

    isAndroid: boolean

    Android (Chrome synthesises contextmenu on long-press; iOS does not).

    deviceClass: DeviceClass

    Memory / GPU / worker budget tier.

    source: "detected" | "override"

    'override' when ?input= forced the pointer part of the profile.