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). The legacy kiosk_* URL params stay the per-navigation translation of this same shape (QR-shared routes smuggle the anchor through them), and ?kiosk=1/0 keeps toggling kiosk MODE — the mode and the anchor are independent inputs.