Skip to content

Documentation / @expofp/schema / KioskSchema

Variable: KioskSchema ​

ts
const KioskSchema: ZodObject<{
  heading: ZodOptional<ZodNumber>;
  iconSizePercent: ZodOptional<ZodNumber>;
  lat: ZodOptional<ZodNumber>;
  lng: ZodOptional<ZodNumber>;
  mapBearingDegrees: ZodOptional<ZodNumber>;
  mapCenterLat: ZodOptional<ZodNumber>;
  mapCenterLng: ZodOptional<ZodNumber>;
  mapCenterX: ZodOptional<ZodNumber>;
  mapCenterY: ZodOptional<ZodNumber>;
  mapInitialPtScale: ZodOptional<ZodNumber>;
  mapPitch: ZodOptional<ZodNumber>;
  mapPitchDegrees: ZodOptional<ZodNumber>;
  mapPtScale: ZodOptional<ZodNumber>;
  mapRollDegrees: ZodOptional<ZodNumber>;
  mapZoom: ZodOptional<ZodNumber>;
  uiScale: ZodOptional<ZodNumber>;
  x: ZodOptional<ZodNumber>;
  y: ZodOptional<ZodNumber>;
  z: ZodOptional<ZodNullable<ZodUnion<readonly [ZodString, ZodNumber]>>>;
}, $strip>;

The kiosk anchor — the config.kiosk node: where the physical kiosk device stands and how its camera is framed. Applied at boot when the device has no locally-saved kiosk (the on-device SetKiosk flow persists to localStorage and wins over the config; the localStorage['kiosk']='0' device switch disables both). ?kiosk=1/0 keeps toggling kiosk MODE — the mode and the anchor are independent inputs.

The legacy kiosk_x/y/z params are a narrower, per-navigation channel for one purpose: a kiosk's route QR code hands the scanning phone the anchor POSITION so the route's missing starting point resolves there. The framing fields below travel only in this node, never through those params, and the params put the scanning device in no kiosk mode of its own.