@minmaps-dev/mm-web-sdk 0.0.0-rc-20260623204551

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.
@@ -0,0 +1,153 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ /**
4
+ * Padding kept clear inside the viewport when the SDK frames bounds —
5
+ * the initial venue/floor fit and the wayfinding route fit. A plain
6
+ * number pads all sides equally; the object form lets a kiosk reserve
7
+ * space for fixed UI overlays (header, dock, side rails) so framed
8
+ * content is never hidden behind them.
9
+ */
10
+ type BoundsPadding = number | {
11
+ top: number;
12
+ bottom: number;
13
+ left: number;
14
+ right: number;
15
+ };
16
+ /**
17
+ * Built-in theme names accepted by `MinuteMaps.setTheme()` and the
18
+ * `options.theme` init option. Pass a `StyleSpecification` directly for
19
+ * custom themes.
20
+ */
21
+ type ThemeName = 'default' | 'high-contrast';
22
+ /**
23
+ * Style of the disc + ring rendered behind each amenity icon. The SDK
24
+ * composites this into the icon bitmap at registration time, so badge +
25
+ * icon participate in symbol collision as one unit.
26
+ */
27
+ type AmenityBadgeStyle = {
28
+ /** Fill colour of the badge disc. Default `'#fdb81e'`. */
29
+ color?: string;
30
+ /** Stroke colour of the ring around the disc. Default `'#FFFFFF'`. */
31
+ ringColor?: string;
32
+ /** Ring width in logical px. Default `2`. */
33
+ ringWidth?: number;
34
+ };
35
+ type DestinationChipStyle = {
36
+ /** Chip fill colour. Default `'#FFFFFF'`. */
37
+ color?: string;
38
+ /** Chip border colour. Default navy `'#162e51'`. */
39
+ borderColor?: string;
40
+ /** Chip border width in logical px. Default `2`. */
41
+ borderWidth?: number;
42
+ };
43
+ interface SDKOptions {
44
+ debug?: boolean;
45
+ /**
46
+ * Initial theme. `'default'` uses the bundled hybrid 3D theme.
47
+ * `'high-contrast'` uses the WCAG-AA tuned theme. Pass a
48
+ * `StyleSpecification` for fully custom styling.
49
+ */
50
+ theme?: ThemeName | any;
51
+ /**
52
+ * When true, the SDK skips animations on imperative camera calls
53
+ * (wayfinding fits, `setView`, idle re-frames). Consumers should
54
+ * mirror their app's `prefers-reduced-motion` state into this.
55
+ */
56
+ reducedMotion?: boolean;
57
+ initialFloor?: string | number;
58
+ enableInteractions?: boolean;
59
+ customSprite?: string;
60
+ minIndoorZoom?: number;
61
+ wallThickness?: number;
62
+ boundsPadding?: BoundsPadding;
63
+ /**
64
+ * Pitch (deg) for the opening view, applied centred on the kiosk ("You
65
+ * are here"). Omit for top-down.
66
+ */
67
+ initialPitch?: number;
68
+ /**
69
+ * Zoom for the opening view, centred on the kiosk. Set this above the
70
+ * theme's unit-walls breakpoint (~16.5 in the bundled hybrid theme) so the
71
+ * kiosk opens on the building's interior floor plan (its contents) rather
72
+ * than a zoomed-out 3D massing outline. Omit to keep the post-floor-fit
73
+ * zoom.
74
+ */
75
+ initialZoom?: number;
76
+ /**
77
+ * Clamp zoom-out relative to the opening view. When set, the map's
78
+ * `minZoom` becomes `(initialZoom − this)`, so visitors can nudge out by
79
+ * this many zoom levels but never pull back below the interior into the
80
+ * massing/region. `0` locks zoom-out exactly to the opening view.
81
+ */
82
+ minZoomBelowInitialFit?: number;
83
+ /**
84
+ * Override the colour the SDK recolours every amenity SVG to before it
85
+ * composites the badge. `none` / `transparent` fills are preserved so
86
+ * cut-outs stay. When the badge is enabled (the default), this defaults
87
+ * to navy (`#162e51`) so icons read on gold. Set explicitly for a
88
+ * different look, or set `amenityBadge: false` to disable recolouring
89
+ * altogether and keep the CMS-uploaded colours.
90
+ */
91
+ amenityIconColor?: string;
92
+ /**
93
+ * Badge composited behind each amenity icon. Pass `false` to render the
94
+ * icon alone (no badge — useful for high-contrast or 2D themes where the
95
+ * gold disc would compete with the floor). Pass an object to tune the
96
+ * disc / ring style. Defaults to a VA-gold disc with a 2px white ring.
97
+ *
98
+ * The badge is baked into the icon bitmap (canvas composite) rather than
99
+ * drawn as a separate circle layer, so badge + icon participate in symbol
100
+ * collision together — overlapping amenities hide as one unit instead of
101
+ * the icon hiding while the disc stays painted.
102
+ */
103
+ amenityBadge?: AmenityBadgeStyle | false;
104
+ /**
105
+ * Chip composited behind each destination's uploaded logo. Destinations are
106
+ * full-colour brand images (not recoloured), so they get a neutral white
107
+ * rounded chip for legibility instead of the amenity gold badge. Pass `false`
108
+ * to render the logo bare, or an object to tune the chip fill / border.
109
+ * Defaults to a white chip with a 2px navy border.
110
+ */
111
+ destinationChip?: DestinationChipStyle | false;
112
+ styleMode?: 'venueStyleUrl' | 'sdkTemplate';
113
+ templateOverrideMode?: 'colorsOnly' | 'colorsAndConstants' | 'all';
114
+ }
115
+ type JMapAuth = {
116
+ clientId: string;
117
+ clientSecret: string;
118
+ };
119
+ type SDKConfig = {
120
+ container: HTMLElement | string;
121
+ jmap: {
122
+ host: string;
123
+ customerId: number;
124
+ venueId: number;
125
+ locale?: string;
126
+ auth?: JMapAuth;
127
+ /**
128
+ * Identifies which physical kiosk this instance is, so the SDK can pin
129
+ * the "You are here" marker. Matched against either the numeric device
130
+ * `id` or the device `uuid` from the venue's `devices`. The device's
131
+ * attached waypoint (`waypoint.deviceIds`) is the kiosk's location.
132
+ */
133
+ deviceId?: string | number;
134
+ };
135
+ jacs: {
136
+ mode: 'proxy' | 'direct';
137
+ host?: string;
138
+ auth?: {
139
+ clientId: string;
140
+ username: string;
141
+ password: string;
142
+ };
143
+ proxyBaseUrl?: string;
144
+ };
145
+ options?: SDKOptions;
146
+ };
147
+
148
+ declare function MinuteMapsView({ config, className }: {
149
+ config: SDKConfig;
150
+ className?: string;
151
+ }): react_jsx_runtime.JSX.Element;
152
+
153
+ export { MinuteMapsView };