@expofp/schema 3.11.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/index.d.ts +20 -0
  2. package/dist/index.js +19 -0
  3. package/dist/lib/booth.d.ts +74 -0
  4. package/dist/lib/booth.js +35 -0
  5. package/dist/lib/camera.d.ts +21 -0
  6. package/dist/lib/camera.js +25 -0
  7. package/dist/lib/categories.d.ts +9 -0
  8. package/dist/lib/categories.js +7 -0
  9. package/dist/lib/config-defaults.d.ts +112 -0
  10. package/dist/lib/config-defaults.js +121 -0
  11. package/dist/lib/config.d.ts +1657 -0
  12. package/dist/lib/config.js +340 -0
  13. package/dist/lib/exhibitor.d.ts +65 -0
  14. package/dist/lib/exhibitor.js +67 -0
  15. package/dist/lib/filters.d.ts +23 -0
  16. package/dist/lib/filters.js +24 -0
  17. package/dist/lib/flags.d.ts +23 -0
  18. package/dist/lib/flags.js +22 -0
  19. package/dist/lib/fp-geo.d.ts +95 -0
  20. package/dist/lib/fp-geo.js +41 -0
  21. package/dist/lib/fp-svg.d.ts +301 -0
  22. package/dist/lib/fp-svg.js +177 -0
  23. package/dist/lib/heatmap.d.ts +23 -0
  24. package/dist/lib/heatmap.js +24 -0
  25. package/dist/lib/intents.d.ts +129 -0
  26. package/dist/lib/intents.js +131 -0
  27. package/dist/lib/kiosk.d.ts +30 -0
  28. package/dist/lib/kiosk.js +42 -0
  29. package/dist/lib/maplibre.d.ts +24 -0
  30. package/dist/lib/maplibre.js +37 -0
  31. package/dist/lib/poi-types.d.ts +12 -0
  32. package/dist/lib/poi-types.js +10 -0
  33. package/dist/lib/schedule.d.ts +25 -0
  34. package/dist/lib/schedule.js +20 -0
  35. package/dist/lib/search.d.ts +51 -0
  36. package/dist/lib/search.js +36 -0
  37. package/dist/lib/visibility.d.ts +16 -0
  38. package/dist/lib/visibility.js +17 -0
  39. package/dist/lib/wayfinding.d.ts +116 -0
  40. package/dist/lib/wayfinding.js +52 -0
  41. package/package.json +35 -0
@@ -0,0 +1,129 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * The list panels the floor plan UI can open by name — the `showList` intent's
4
+ * argument. Mirrors the keyword deep links (`?bookmarks`, `?sessions`, …).
5
+ */
6
+ export declare const ListPanelSchema: z.ZodEnum<{
7
+ exhibitors: "exhibitors";
8
+ bookmarks: "bookmarks";
9
+ visited: "visited";
10
+ sessions: "sessions";
11
+ speakers: "speakers";
12
+ tours: "tours";
13
+ language: "language";
14
+ }>;
15
+ /** Options of the `openPlanner` intent / `FloorPlan.openPlanner` method. */
16
+ export declare const PlannerOptionsSchema: z.ZodObject<{
17
+ items: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
+ from: z.ZodOptional<z.ZodString>;
19
+ fromBookmarks: z.ZodOptional<z.ZodBoolean>;
20
+ }, z.core.$strip>;
21
+ /**
22
+ * The visitor position of the `selectCurrentPosition` intent /
23
+ * `FloorPlan.selectCurrentPosition` method — the floor plan's
24
+ * `CurrentPosition` interface, field for field.
25
+ */
26
+ export declare const CurrentPositionSchema: z.ZodObject<{
27
+ x: z.ZodNumber;
28
+ y: z.ZodNumber;
29
+ z: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
30
+ angle: z.ZodOptional<z.ZodNumber>;
31
+ lat: z.ZodOptional<z.ZodNumber>;
32
+ lng: z.ZodOptional<z.ZodNumber>;
33
+ }, z.core.$strip>;
34
+ /**
35
+ * Imperative actions a host requests on the floor plan after it loads — carried
36
+ * on the config's `intents` field and dispatched by `applyIntents`
37
+ * (`@expofp/config`) once the plan is ready. A discriminated union on `name`,
38
+ * each arm mirroring a `FloorPlan` method (same name, `args` matching its
39
+ * parameters), so adding an intent here extends the host interface
40
+ * automatically — and the `applyIntents` call site type-checks that every
41
+ * intent still names a real `FloorPlan` method.
42
+ */
43
+ export declare const IntentsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
44
+ name: z.ZodLiteral<"selectBooth">;
45
+ args: z.ZodTuple<[z.ZodString], null>;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ name: z.ZodLiteral<"selectExhibitor">;
48
+ args: z.ZodTuple<[z.ZodString], null>;
49
+ }, z.core.$strip>, z.ZodObject<{
50
+ name: z.ZodLiteral<"changeLanguage">;
51
+ args: z.ZodTuple<[z.ZodString], null>;
52
+ }, z.core.$strip>, z.ZodObject<{
53
+ name: z.ZodLiteral<"selectCategory">;
54
+ args: z.ZodTuple<[z.ZodString], null>;
55
+ }, z.core.$strip>, z.ZodObject<{
56
+ name: z.ZodLiteral<"select">;
57
+ args: z.ZodTuple<[z.ZodString], null>;
58
+ }, z.core.$strip>, z.ZodObject<{
59
+ name: z.ZodLiteral<"showList">;
60
+ args: z.ZodTuple<[z.ZodEnum<{
61
+ exhibitors: "exhibitors";
62
+ bookmarks: "bookmarks";
63
+ visited: "visited";
64
+ sessions: "sessions";
65
+ speakers: "speakers";
66
+ tours: "tours";
67
+ language: "language";
68
+ }>], null>;
69
+ }, z.core.$strip>, z.ZodObject<{
70
+ name: z.ZodLiteral<"selectTour">;
71
+ args: z.ZodTuple<[z.ZodString], null>;
72
+ }, z.core.$strip>, z.ZodObject<{
73
+ name: z.ZodLiteral<"openPlanner">;
74
+ args: z.ZodTuple<[z.ZodObject<{
75
+ items: z.ZodOptional<z.ZodArray<z.ZodString>>;
76
+ from: z.ZodOptional<z.ZodString>;
77
+ fromBookmarks: z.ZodOptional<z.ZodBoolean>;
78
+ }, z.core.$strip>], null>;
79
+ }, z.core.$strip>, z.ZodObject<{
80
+ name: z.ZodLiteral<"startBuildRoute">;
81
+ args: z.ZodTuple<[], null>;
82
+ }, z.core.$strip>, z.ZodObject<{
83
+ name: z.ZodLiteral<"setCamera">;
84
+ args: z.ZodTuple<[z.ZodObject<{
85
+ x: z.ZodOptional<z.ZodNumber>;
86
+ y: z.ZodOptional<z.ZodNumber>;
87
+ lat: z.ZodOptional<z.ZodNumber>;
88
+ lng: z.ZodOptional<z.ZodNumber>;
89
+ floor: z.ZodOptional<z.ZodString>;
90
+ bearing: z.ZodOptional<z.ZodNumber>;
91
+ zoomTime: z.ZodOptional<z.ZodNumber>;
92
+ }, z.core.$strip>], null>;
93
+ }, z.core.$strip>, z.ZodObject<{
94
+ name: z.ZodLiteral<"setVisibility">;
95
+ args: z.ZodTuple<[z.ZodObject<{
96
+ controls: z.ZodOptional<z.ZodBoolean>;
97
+ levels: z.ZodOptional<z.ZodBoolean>;
98
+ header: z.ZodOptional<z.ZodBoolean>;
99
+ overlay: z.ZodOptional<z.ZodBoolean>;
100
+ }, z.core.$strip>], null>;
101
+ }, z.core.$strip>, z.ZodObject<{
102
+ name: z.ZodLiteral<"selectRoute">;
103
+ args: z.ZodTuple<[z.ZodArray<z.ZodString>], null>;
104
+ }, z.core.$strip>, z.ZodObject<{
105
+ name: z.ZodLiteral<"selectAccessibleRoute">;
106
+ args: z.ZodTuple<[z.ZodArray<z.ZodString>], null>;
107
+ }, z.core.$strip>, z.ZodObject<{
108
+ name: z.ZodLiteral<"showPathway">;
109
+ args: z.ZodTuple<[z.ZodString, z.ZodArray<z.ZodString>], null>;
110
+ }, z.core.$strip>, z.ZodObject<{
111
+ name: z.ZodLiteral<"selectCurrentPosition">;
112
+ args: z.ZodTuple<[z.ZodObject<{
113
+ x: z.ZodNumber;
114
+ y: z.ZodNumber;
115
+ z: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
116
+ angle: z.ZodOptional<z.ZodNumber>;
117
+ lat: z.ZodOptional<z.ZodNumber>;
118
+ lng: z.ZodOptional<z.ZodNumber>;
119
+ }, z.core.$strip>, z.ZodBoolean, z.ZodOptional<z.ZodNumber>], null>;
120
+ }, z.core.$strip>], "name">;
121
+ /** One imperative floor-plan action — a member of {@link IntentsSchema}. */
122
+ export type Intent = z.infer<typeof IntentsSchema>;
123
+ /** A list panel the `showList` intent can open — a member of {@link ListPanelSchema}. */
124
+ export type ListPanel = z.infer<typeof ListPanelSchema>;
125
+ /** Options of the `openPlanner` intent — see {@link PlannerOptionsSchema}. */
126
+ export type PlannerOptions = z.infer<typeof PlannerOptionsSchema>;
127
+ /** The `selectCurrentPosition` point — see {@link CurrentPositionSchema}. */
128
+ export type CurrentPosition = z.infer<typeof CurrentPositionSchema>;
129
+ //# sourceMappingURL=intents.d.ts.map
@@ -0,0 +1,131 @@
1
+ import * as z from 'zod';
2
+ import { CameraSchema } from './camera.js';
3
+ import { VisibilitySchema } from './visibility.js';
4
+ /**
5
+ * The list panels the floor plan UI can open by name — the `showList` intent's
6
+ * argument. Mirrors the keyword deep links (`?bookmarks`, `?sessions`, …).
7
+ */
8
+ export const ListPanelSchema = z.enum([
9
+ 'bookmarks',
10
+ 'visited',
11
+ 'sessions',
12
+ 'exhibitors',
13
+ 'speakers',
14
+ 'tours',
15
+ 'language',
16
+ ]);
17
+ /** Options of the `openPlanner` intent / `FloorPlan.openPlanner` method. */
18
+ export const PlannerOptionsSchema = z.object({
19
+ /** Entity slugs to plan a route through (ignored with `fromBookmarks`). */
20
+ items: z.array(z.string()).optional(),
21
+ /** Booth to start from. */
22
+ from: z.string().optional(),
23
+ /** Fill the planner from the visitor's bookmarks instead of `items`. */
24
+ fromBookmarks: z.boolean().optional(),
25
+ });
26
+ /**
27
+ * The visitor position of the `selectCurrentPosition` intent /
28
+ * `FloorPlan.selectCurrentPosition` method — the floor plan's
29
+ * `CurrentPosition` interface, field for field.
30
+ */
31
+ export const CurrentPositionSchema = z.object({
32
+ /** Plan x coordinate. */
33
+ x: z.number(),
34
+ /** Plan y coordinate. */
35
+ y: z.number(),
36
+ /** Floor: level name or index. */
37
+ z: z.union([z.number(), z.string()]).optional(),
38
+ /** Heading in degrees. */
39
+ angle: z.number().optional(),
40
+ /** GPS latitude (with `lng`, an alternative fix to `x`/`y`). */
41
+ lat: z.number().optional(),
42
+ /** GPS longitude. */
43
+ lng: z.number().optional(),
44
+ });
45
+ /**
46
+ * Imperative actions a host requests on the floor plan after it loads — carried
47
+ * on the config's `intents` field and dispatched by `applyIntents`
48
+ * (`@expofp/config`) once the plan is ready. A discriminated union on `name`,
49
+ * each arm mirroring a `FloorPlan` method (same name, `args` matching its
50
+ * parameters), so adding an intent here extends the host interface
51
+ * automatically — and the `applyIntents` call site type-checks that every
52
+ * intent still names a real `FloorPlan` method.
53
+ */
54
+ export const IntentsSchema = z.discriminatedUnion('name', [
55
+ z.object({
56
+ name: z.literal('selectBooth'),
57
+ args: z.tuple([z.string()]),
58
+ }),
59
+ z.object({
60
+ name: z.literal('selectExhibitor'),
61
+ args: z.tuple([z.string()]),
62
+ }),
63
+ z.object({
64
+ name: z.literal('changeLanguage'),
65
+ args: z.tuple([z.string()]),
66
+ }),
67
+ z.object({
68
+ name: z.literal('selectCategory'),
69
+ args: z.tuple([z.string()]),
70
+ }),
71
+ z.object({
72
+ // The universal deep-link resolver: whatever the slug or external id names
73
+ // (booth → session → exhibitor → category → speaker), else open search.
74
+ name: z.literal('select'),
75
+ args: z.tuple([z.string()]),
76
+ }),
77
+ z.object({
78
+ name: z.literal('showList'),
79
+ args: z.tuple([ListPanelSchema]),
80
+ }),
81
+ z.object({
82
+ name: z.literal('selectTour'),
83
+ args: z.tuple([z.string()]),
84
+ }),
85
+ z.object({
86
+ name: z.literal('openPlanner'),
87
+ args: z.tuple([PlannerOptionsSchema]),
88
+ }),
89
+ z.object({
90
+ name: z.literal('startBuildRoute'),
91
+ args: z.tuple([]),
92
+ }),
93
+ z.object({
94
+ name: z.literal('setCamera'),
95
+ args: z.tuple([CameraSchema]),
96
+ }),
97
+ z.object({
98
+ name: z.literal('setVisibility'),
99
+ // an empty visibility request is meaningless and the public method raises
100
+ // an SDK error on it (then falls through to a show-everything reset) — a
101
+ // typo'd shortcut (`?setVisibility[bogus]=1` coerces to `{}`) must degrade
102
+ // to a dropped intent instead: a shared link must not toast
103
+ args: z.tuple([VisibilitySchema.refine((v) => Object.keys(v).length > 0)]),
104
+ }),
105
+ z.object({
106
+ // Ordered waypoints — entity names/slugs, first to last; two entries are
107
+ // the classic from→to, extra ones are stops in between. Min 2: the method
108
+ // rejects a route without both a start and a destination (the FROM-less
109
+ // kiosk-anchor route stays a legacy-grammar capability); `CurrentPosition`
110
+ // waypoints stay API-only.
111
+ name: z.literal('selectRoute'),
112
+ args: z.tuple([z.array(z.string()).min(2)]),
113
+ }),
114
+ z.object({
115
+ // `selectRoute` restricted to accessible segments only.
116
+ name: z.literal('selectAccessibleRoute'),
117
+ args: z.tuple([z.array(z.string()).min(2)]),
118
+ }),
119
+ z.object({
120
+ // A pathway to show, plus external ids of booths/exhibitors to highlight
121
+ // along it (`[]` = just the pathway).
122
+ name: z.literal('showPathway'),
123
+ args: z.tuple([z.string(), z.array(z.string())]),
124
+ }),
125
+ z.object({
126
+ // Where the visitor is, whether to center the view there, and optionally
127
+ // the marker icon variant.
128
+ name: z.literal('selectCurrentPosition'),
129
+ args: z.tuple([CurrentPositionSchema, z.boolean(), z.number().optional()]),
130
+ }),
131
+ ]);
@@ -0,0 +1,30 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * The kiosk anchor — the `config.kiosk` node: where the physical kiosk device
4
+ * stands and how its camera is framed. Applied at boot when the device has no
5
+ * locally-saved kiosk (the on-device SetKiosk flow persists to localStorage
6
+ * and wins over the config; the `localStorage['kiosk']='0'` device switch
7
+ * disables both). The legacy `kiosk_*` URL params stay the per-navigation
8
+ * translation of this same shape (QR-shared routes smuggle the anchor through
9
+ * them), and `?kiosk=1/0` keeps toggling kiosk MODE — the mode and the anchor
10
+ * are independent inputs.
11
+ */
12
+ export declare const KioskSchema: z.ZodObject<{
13
+ x: z.ZodOptional<z.ZodNumber>;
14
+ y: z.ZodOptional<z.ZodNumber>;
15
+ z: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
16
+ heading: z.ZodOptional<z.ZodNumber>;
17
+ lat: z.ZodOptional<z.ZodNumber>;
18
+ lng: z.ZodOptional<z.ZodNumber>;
19
+ iconSizePercent: z.ZodOptional<z.ZodNumber>;
20
+ uiScale: z.ZodOptional<z.ZodNumber>;
21
+ mapRollDegrees: z.ZodOptional<z.ZodNumber>;
22
+ mapInitialPtScale: z.ZodOptional<z.ZodNumber>;
23
+ mapPtScale: z.ZodOptional<z.ZodNumber>;
24
+ mapCenterX: z.ZodOptional<z.ZodNumber>;
25
+ mapCenterY: z.ZodOptional<z.ZodNumber>;
26
+ mapPitch: z.ZodOptional<z.ZodNumber>;
27
+ }, z.core.$strip>;
28
+ export interface Kiosk extends z.infer<typeof KioskSchema> {
29
+ }
30
+ //# sourceMappingURL=kiosk.d.ts.map
@@ -0,0 +1,42 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * The kiosk anchor — the `config.kiosk` node: where the physical kiosk device
4
+ * stands and how its camera is framed. Applied at boot when the device has no
5
+ * locally-saved kiosk (the on-device SetKiosk flow persists to localStorage
6
+ * and wins over the config; the `localStorage['kiosk']='0'` device switch
7
+ * disables both). The legacy `kiosk_*` URL params stay the per-navigation
8
+ * translation of this same shape (QR-shared routes smuggle the anchor through
9
+ * them), and `?kiosk=1/0` keeps toggling kiosk MODE — the mode and the anchor
10
+ * are independent inputs.
11
+ */
12
+ export const KioskSchema = z.object({
13
+ /** Anchor x in plan coordinates. */
14
+ x: z.number().optional(),
15
+ /** Anchor y in plan coordinates. */
16
+ y: z.number().optional(),
17
+ /** Floor: the level name (a numeric index is accepted and stringified). */
18
+ z: z.union([z.string(), z.number()]).optional(),
19
+ /** Device heading in degrees — rotates the you-are-here marker. */
20
+ heading: z.number().optional(),
21
+ /** GPS latitude (with `lng`, an alternative fix to `x`/`y`). */
22
+ lat: z.number().optional(),
23
+ /** GPS longitude. */
24
+ lng: z.number().optional(),
25
+ /** You-are-here icon size, in percent. */
26
+ iconSizePercent: z.number().optional(),
27
+ /** Per-device UI scale preference (the applied range is 0.8–1.4). */
28
+ uiScale: z.number().optional(),
29
+ // the saved camera framing — SetKiosk captures the renderer's camera state
30
+ /** Map roll at the kiosk's home framing, degrees. */
31
+ mapRollDegrees: z.number().optional(),
32
+ /** The pt-scale captured when the kiosk was set up (zoom reference). */
33
+ mapInitialPtScale: z.number().optional(),
34
+ /** The pt-scale of the saved framing. */
35
+ mapPtScale: z.number().optional(),
36
+ /** Home framing center x. */
37
+ mapCenterX: z.number().optional(),
38
+ /** Home framing center y. */
39
+ mapCenterY: z.number().optional(),
40
+ /** Map pitch at the home framing, degrees. */
41
+ mapPitch: z.number().optional(),
42
+ });
@@ -0,0 +1,24 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * MapLibre GL JS integration settings — the config's `maplibre` field.
4
+ *
5
+ * The style document is MapLibre's, not ours. Offline archives store the
6
+ * style URL and the style's internal URLs (sprite, glyphs, tile sources)
7
+ * relative to their containing documents, so the archive stays relocatable;
8
+ * see the offline package's `generateOfflineMapData`.
9
+ *
10
+ * MapLibre itself, though, requires those internal URLs to be *fully absolute*
11
+ * (scheme + host) and rejects rooted/relative ones — and only the runtime
12
+ * knows the serving origin. So the SDK absolutizes string-URL styles' internal
13
+ * resources against the style's own URL through MapLibre's `transformStyle`
14
+ * hook at load time (`createStyleTransform` in the floorplan's Maplibre
15
+ * wrapper).
16
+ */
17
+ export declare const MapLibreConfigSchema: z.ZodObject<{
18
+ styleUrl: z.ZodOptional<z.ZodString>;
19
+ style: z.ZodOptional<z.ZodAny>;
20
+ offline: z.ZodOptional<z.ZodBoolean>;
21
+ }, z.core.$loose>;
22
+ /** MapLibre options — the inferred type of {@link MapLibreConfigSchema}. */
23
+ export type MaplibreOptions = z.infer<typeof MapLibreConfigSchema>;
24
+ //# sourceMappingURL=maplibre.d.ts.map
@@ -0,0 +1,37 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * MapLibre GL JS integration settings — the config's `maplibre` field.
4
+ *
5
+ * The style document is MapLibre's, not ours. Offline archives store the
6
+ * style URL and the style's internal URLs (sprite, glyphs, tile sources)
7
+ * relative to their containing documents, so the archive stays relocatable;
8
+ * see the offline package's `generateOfflineMapData`.
9
+ *
10
+ * MapLibre itself, though, requires those internal URLs to be *fully absolute*
11
+ * (scheme + host) and rejects rooted/relative ones — and only the runtime
12
+ * knows the serving origin. So the SDK absolutizes string-URL styles' internal
13
+ * resources against the style's own URL through MapLibre's `transformStyle`
14
+ * hook at load time (`createStyleTransform` in the floorplan's Maplibre
15
+ * wrapper).
16
+ */
17
+ export const MapLibreConfigSchema = z
18
+ .looseObject({
19
+ /**
20
+ * Full, rooted, or relative URL of a MapLibre style document, fetched by
21
+ * MapLibre GL itself. Its internal resources are resolved by the SDK before
22
+ * MapLibre consumes the loaded style.
23
+ */
24
+ styleUrl: z.string(),
25
+ /**
26
+ * Inline style object (takes precedence over `styleUrl`). With no style
27
+ * URL to resolve against, every URL inside it must already be full.
28
+ */
29
+ style: z.any(),
30
+ /**
31
+ * The style and everything it references (tiles, sprites, glyphs) are
32
+ * reachable without network — lets the map stay enabled while
33
+ * `navigator.onLine` is false.
34
+ */
35
+ offline: z.boolean(),
36
+ })
37
+ .partial();
@@ -0,0 +1,12 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * A point-of-interest type — an entry in the config's `poiTypes` list.
4
+ * `parentId` nests them into a shallow tree.
5
+ */
6
+ export declare const RawPoiTypeSchema: z.ZodObject<{
7
+ id: z.ZodNumber;
8
+ name: z.ZodString;
9
+ parentId: z.ZodOptional<z.ZodNumber>;
10
+ }, z.core.$loose>;
11
+ export type RawPoiType = z.infer<typeof RawPoiTypeSchema>;
12
+ //# sourceMappingURL=poi-types.d.ts.map
@@ -0,0 +1,10 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * A point-of-interest type — an entry in the config's `poiTypes` list.
4
+ * `parentId` nests them into a shallow tree.
5
+ */
6
+ export const RawPoiTypeSchema = z.looseObject({
7
+ id: z.number(),
8
+ name: z.string(),
9
+ parentId: z.number().optional(),
10
+ });
@@ -0,0 +1,25 @@
1
+ import * as z from 'zod';
2
+ /** A session speaker — an entry in a {@link ScheduleItemSchema}'s `speakers`. */
3
+ export declare const SpeakerSchema: z.ZodObject<{
4
+ photoFile: z.ZodOptional<z.ZodString>;
5
+ }, z.core.$loose>;
6
+ /** One agenda/session entry — an entry in the config's `events` list. */
7
+ export declare const ScheduleItemSchema: z.ZodObject<{
8
+ id: z.ZodNumber;
9
+ name: z.ZodString;
10
+ externalId: z.ZodOptional<z.ZodString>;
11
+ description: z.ZodOptional<z.ZodString>;
12
+ exhibitorId: z.ZodOptional<z.ZodNumber>;
13
+ boothId: z.ZodOptional<z.ZodNumber>;
14
+ startDate: z.ZodOptional<z.ZodString>;
15
+ endDate: z.ZodOptional<z.ZodString>;
16
+ link: z.ZodOptional<z.ZodString>;
17
+ logoFile: z.ZodOptional<z.ZodString>;
18
+ speakers: z.ZodOptional<z.ZodArray<z.ZodObject<{
19
+ photoFile: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$loose>>>;
21
+ tracks: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
22
+ }, z.core.$loose>;
23
+ export type Speaker = z.infer<typeof SpeakerSchema>;
24
+ export type ScheduleItem = z.infer<typeof ScheduleItemSchema>;
25
+ //# sourceMappingURL=schedule.d.ts.map
@@ -0,0 +1,20 @@
1
+ import * as z from 'zod';
2
+ /** A session speaker — an entry in a {@link ScheduleItemSchema}'s `speakers`. */
3
+ export const SpeakerSchema = z.looseObject({
4
+ photoFile: z.string().optional().meta({ asset: true }),
5
+ });
6
+ /** One agenda/session entry — an entry in the config's `events` list. */
7
+ export const ScheduleItemSchema = z.looseObject({
8
+ id: z.number(),
9
+ name: z.string(),
10
+ externalId: z.string().optional(),
11
+ description: z.string().optional(),
12
+ exhibitorId: z.number().optional(),
13
+ boothId: z.number().optional(),
14
+ startDate: z.string().optional(),
15
+ endDate: z.string().optional(),
16
+ link: z.string().optional(),
17
+ logoFile: z.string().optional().meta({ asset: true }),
18
+ speakers: z.array(SpeakerSchema).optional(),
19
+ tracks: z.array(z.unknown()).optional(),
20
+ });
@@ -0,0 +1,51 @@
1
+ import * as z from 'zod';
2
+ export declare const SearchButtonChildSchema: z.ZodObject<{
3
+ id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
4
+ type: z.ZodString;
5
+ name: z.ZodOptional<z.ZodString>;
6
+ visible: z.ZodOptional<z.ZodBoolean>;
7
+ count: z.ZodOptional<z.ZodNumber>;
8
+ linkUrl: z.ZodOptional<z.ZodString>;
9
+ }, z.core.$loose>;
10
+ /** One search/filter button — an entry in `filterButtonsConfig.searchButtons`. */
11
+ export declare const SearchButtonSchema: z.ZodObject<{
12
+ id: z.ZodOptional<z.ZodString>;
13
+ type: z.ZodString;
14
+ name: z.ZodString;
15
+ visible: z.ZodOptional<z.ZodBoolean>;
16
+ builtIn: z.ZodOptional<z.ZodBoolean>;
17
+ order: z.ZodOptional<z.ZodNumber>;
18
+ children: z.ZodOptional<z.ZodArray<z.ZodObject<{
19
+ id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
20
+ type: z.ZodString;
21
+ name: z.ZodOptional<z.ZodString>;
22
+ visible: z.ZodOptional<z.ZodBoolean>;
23
+ count: z.ZodOptional<z.ZodNumber>;
24
+ linkUrl: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$loose>>>;
26
+ }, z.core.$loose>;
27
+ /** The config's `filterButtonsConfig`: the search/filter button set and its sort. */
28
+ export declare const FilterButtonsConfigSchema: z.ZodObject<{
29
+ isExplicit: z.ZodOptional<z.ZodBoolean>;
30
+ sortType: z.ZodOptional<z.ZodEnum<{
31
+ custom: "custom";
32
+ alphabetical: "alphabetical";
33
+ }>>;
34
+ searchButtons: z.ZodOptional<z.ZodArray<z.ZodObject<{
35
+ id: z.ZodOptional<z.ZodString>;
36
+ type: z.ZodString;
37
+ name: z.ZodString;
38
+ visible: z.ZodOptional<z.ZodBoolean>;
39
+ builtIn: z.ZodOptional<z.ZodBoolean>;
40
+ order: z.ZodOptional<z.ZodNumber>;
41
+ children: z.ZodOptional<z.ZodArray<z.ZodObject<{
42
+ id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
43
+ type: z.ZodString;
44
+ name: z.ZodOptional<z.ZodString>;
45
+ visible: z.ZodOptional<z.ZodBoolean>;
46
+ count: z.ZodOptional<z.ZodNumber>;
47
+ linkUrl: z.ZodOptional<z.ZodString>;
48
+ }, z.core.$loose>>>;
49
+ }, z.core.$loose>>>;
50
+ }, z.core.$loose>;
51
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1,36 @@
1
+ import * as z from 'zod';
2
+ // Kept as plain strings: the platform emits more types over time (known set:
3
+ // bookmarks, visited, sessions, guided_tours, categories, poi_type, poi_types,
4
+ // link, exhibitors — see floorplan's SearchButtonType), and the runtime ignores
5
+ // the ones it does not recognize; an enum here would fail the whole config load.
6
+ export const SearchButtonChildSchema = z.looseObject({
7
+ id: z.union([z.number(), z.string()]).optional(),
8
+ type: z.string(),
9
+ name: z.string().optional(),
10
+ // Optional: the platform omits `visible` on buttons that are shown (an
11
+ // omitted flag means visible; only `false` hides). Requiring it would throw
12
+ // the whole data.js parse — see the note on SearchButtonSchema.visible.
13
+ visible: z.boolean().optional(),
14
+ count: z.number().optional(),
15
+ linkUrl: z.string().optional(),
16
+ });
17
+ /** One search/filter button — an entry in `filterButtonsConfig.searchButtons`. */
18
+ export const SearchButtonSchema = z.looseObject({
19
+ id: z.string().optional(),
20
+ type: z.string(),
21
+ name: z.string(),
22
+ // Optional: real published data omits `visible` on shown buttons — e.g. the
23
+ // built-in Exhibitors button carries no `visible` — so an absent flag means
24
+ // visible and only `visible: false` hides. `z.boolean()` here made a routine
25
+ // config throw `invalid_type` and abort the whole data.js parse.
26
+ visible: z.boolean().optional(),
27
+ builtIn: z.boolean().optional(),
28
+ order: z.number().optional(),
29
+ children: z.array(SearchButtonChildSchema).optional(),
30
+ });
31
+ /** The config's `filterButtonsConfig`: the search/filter button set and its sort. */
32
+ export const FilterButtonsConfigSchema = z.looseObject({
33
+ isExplicit: z.boolean().optional(),
34
+ sortType: z.enum(['custom', 'alphabetical']).optional(),
35
+ searchButtons: z.array(SearchButtonSchema).optional(),
36
+ });
@@ -0,0 +1,16 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * A map-chrome visibility request — the argument of `FloorPlan.setVisibility`
4
+ * and the `setVisibility` intent. Every field is optional, but the semantics
5
+ * are rebuild-not-merge (the legacy `?hide=` contract): a field set to `false`
6
+ * hides its element, and every omitted field resets to visible.
7
+ */
8
+ export declare const VisibilitySchema: z.ZodObject<{
9
+ controls: z.ZodOptional<z.ZodBoolean>;
10
+ levels: z.ZodOptional<z.ZodBoolean>;
11
+ header: z.ZodOptional<z.ZodBoolean>;
12
+ overlay: z.ZodOptional<z.ZodBoolean>;
13
+ }, z.core.$strip>;
14
+ export interface Visibility extends z.infer<typeof VisibilitySchema> {
15
+ }
16
+ //# sourceMappingURL=visibility.d.ts.map
@@ -0,0 +1,17 @@
1
+ import * as z from 'zod';
2
+ /**
3
+ * A map-chrome visibility request — the argument of `FloorPlan.setVisibility`
4
+ * and the `setVisibility` intent. Every field is optional, but the semantics
5
+ * are rebuild-not-merge (the legacy `?hide=` contract): a field set to `false`
6
+ * hides its element, and every omitted field resets to visible.
7
+ */
8
+ export const VisibilitySchema = z.object({
9
+ /** The map controls (zoom buttons, …). */
10
+ controls: z.boolean().optional(),
11
+ /** The floor selector. */
12
+ levels: z.boolean().optional(),
13
+ /** The header bar — logos and the free/demo badge. */
14
+ header: z.boolean().optional(),
15
+ /** The overlay panel — search, lists, entity details. */
16
+ overlay: z.boolean().optional(),
17
+ });