@mappedin/react-sdk 6.0.1-beta.16 → 6.0.1-beta.17

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.
@@ -1,17 +1,16 @@
1
1
  // Generated by dts-bundle v0.7.3
2
2
  // Dependencies for this module:
3
- // ../react/react
4
3
  // ../react/@packages/internal/mvf-utils
5
4
  // ../react/@mappedin/mvf
6
5
  // ../react/@packages/internal/common/pubsub
7
6
  // ../react/@packages/internal/mvf-utils/mvf-utils
8
7
  // ../react/@packages/internal/common/Mappedin.Logger
9
8
  // ../react/geojson
9
+ // ../react/react
10
+ // ../react/@mappedin/mappedin-js
10
11
  // ../react/@packages/internal/common
11
12
  // ../react/@mappedin/core-sdk
12
- // ../react/@mappedin/core-sdk/src/camera
13
13
  // ../react/@packages/internal/geojson-navigator
14
- // ../react/@tweenjs/tween.js
15
14
  // ../react/@mappedin/mvf/dist/locale
16
15
  // ../react/three
17
16
  // ../react/zod
@@ -23,6 +22,7 @@
23
22
  // ../react/three/addons/loaders/GLTFLoader.js
24
23
  // ../react/@mapbox/point-geometry
25
24
  // ../react/@maplibre/maplibre-gl-style-spec
25
+ // ../react/@tweenjs/tween.js
26
26
  // ../react/gl-matrix
27
27
  // ../react/@mapbox/vector-tile
28
28
  // ../react/potpack
@@ -32,6 +32,7 @@
32
32
  // ../react/geojson-vt
33
33
 
34
34
  declare module '@mappedin/react-sdk' {
35
+ import * as Mappedin from '@mappedin/react-sdk/mappedin-js/src';
35
36
  export * from '@mappedin/react-sdk/react-sdk/src/Marker';
36
37
  export * from '@mappedin/react-sdk/react-sdk/src/Label';
37
38
  export * from '@mappedin/react-sdk/react-sdk/src/useEvent';
@@ -43,210 +44,16 @@ declare module '@mappedin/react-sdk' {
43
44
  export * from '@mappedin/react-sdk/react-sdk/src/useMapData';
44
45
  export { useMap } from '@mappedin/react-sdk/react-sdk/src/useMap';
45
46
  export type { UseMapProps } from '@mappedin/react-sdk/react-sdk/src/useMap';
46
- import * as Mappedin from '@mappedin/react-sdk/mappedin-js/src';
47
47
  export default Mappedin;
48
48
  }
49
49
 
50
- declare module '@mappedin/react-sdk/react-sdk/src/Marker' {
51
- import type { ReactElement, ReactNode } from 'react';
52
- import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
53
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
54
- type ParamsArray = Parameters<Mappedin.MapView['Markers']['add']>;
55
- type StreamAgentParameterNames = ['target', 'contentHtml', 'options'];
56
- /**
57
- * @interface
58
- */
59
- export type MarkerProps = Omit<TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
60
- children?: ReactNode | ReactElement;
61
- onLoad?: (marker: Mappedin.Marker) => void;
62
- }, 'contentHtml'>;
63
- /**
64
- * Marker component
65
- *
66
- * @example
67
- * ```tsx
68
- * <Marker target={mapData.getByType('space')[0]}>
69
- * <div>Hello, world!</div>
70
- * </Marker>
71
- * ```
72
- *
73
- * @category Components
74
- */
75
- export const Marker: (props: MarkerProps) => ReactElement | null;
76
- export {};
77
- }
78
-
79
- declare module '@mappedin/react-sdk/react-sdk/src/Label' {
80
- import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
81
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
82
- type ParamsArray = Parameters<Mappedin.MapView['Labels']['add']>;
83
- type StreamAgentParameterNames = ['target', 'text', 'options'];
84
- /**
85
- * @interface
86
- */
87
- export type LabelProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
88
- onLoad?: (label: Mappedin.Label) => void;
89
- };
90
- /**
91
- * Label component
92
- *
93
- * @category Components
94
- */
95
- export function Label(props: LabelProps): null;
96
- export {};
97
- }
98
-
99
- declare module '@mappedin/react-sdk/react-sdk/src/useEvent' {
100
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
101
- /**
102
- * @interface
103
- */
104
- export type SDK_EVENTS = Omit<Mappedin.TEvents, 'outdoor-view-loaded'>;
105
- export function useEvent<T extends keyof SDK_EVENTS>(event: T, callback: (payload: SDK_EVENTS[T] extends {
106
- data: null;
107
- } ? SDK_EVENTS[T]['data'] : SDK_EVENTS[T]) => void): void;
108
- }
109
-
110
- declare module '@mappedin/react-sdk/react-sdk/src/Path' {
111
- import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
112
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
113
- type ParamsArray = Parameters<Mappedin.MapView['Paths']['add']>;
114
- type StreamAgentParameterNames = ['coordinate', 'options'];
115
- /**
116
- * @interface
117
- */
118
- export type PathProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
119
- onLoad?: (path: Mappedin.Path) => void;
120
- };
121
- /**
122
- * Path component
123
- *
124
- * @category Components
125
- */
126
- export function Path(props: PathProps): null;
127
- export {};
128
- }
129
-
130
- declare module '@mappedin/react-sdk/react-sdk/src/MapView' {
131
- import type { DetailedHTMLProps, HTMLAttributes, ReactNode } from 'react';
132
- import React from 'react';
133
- import { show3dMap } from '@mappedin/react-sdk/mappedin-js/src';
134
- import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
135
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
136
- type ParamsArray = Parameters<typeof show3dMap>;
137
- type StreamAgentParameterNames = ['el', 'mapData', 'options'];
138
- /**
139
- * @interface
140
- */
141
- export type MapViewProps = Omit<TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
142
- children?: ReactNode;
143
- fallback?: ReactNode;
144
- onLoad?: (mapView: Mappedin.MapView) => void;
145
- }, 'el'>;
146
- /**
147
- * MapView component
148
- *
149
- * @category Components
150
- *
151
- * @example
152
- * ```tsx *
153
- * const { mapData } = useMapData({ key: '...', secret: '...', mapId: '...' });
154
- * return <MapView mapData={mapData} />
155
- * ```
156
- */
157
- export function MapView(props: MapViewProps & DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>): React.JSX.Element;
158
- export {};
159
- }
160
-
161
- declare module '@mappedin/react-sdk/react-sdk/src/Navigation' {
162
- import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
163
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
164
- type ParamsArray = Parameters<Mappedin.MapView['Navigation']['draw']>;
165
- type StreamAgentParameterNames = ['directions', 'options'];
166
- /**
167
- * @interface
168
- */
169
- export type NavigationProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
170
- onLoad?: () => void;
171
- };
172
- /**
173
- * Navigation component
174
- *
175
- * @category Components
176
- */
177
- export function Navigation(props: NavigationProps): null;
178
- export {};
179
- }
180
-
181
- declare module '@mappedin/react-sdk/react-sdk/src/Shape' {
182
- import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
183
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
184
- type ParamsArray = Parameters<Mappedin.MapView['Shapes']['add']>;
185
- type StreamAgentParameterNames = ['geometry', 'style', 'floor'];
186
- /**
187
- * @interface
188
- */
189
- export type ShapesProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
190
- onLoad?: (shape: Mappedin.Shape) => void;
191
- };
192
- /**
193
- * Shape component
194
- *
195
- * @category Components
196
- */
197
- export function Shape(props: ShapesProps): null;
198
- export {};
199
- }
200
-
201
- declare module '@mappedin/react-sdk/react-sdk/src/Model' {
202
- import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
203
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
204
- type ParamsArray = Parameters<Mappedin.MapView['Models']['add']>;
205
- type StreamAgentParameterNames = ['models', 'options'];
206
- /**
207
- * @interface
208
- */
209
- export type ModelProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
210
- onLoad?: (models: Mappedin.Model[]) => void;
211
- };
212
- /**
213
- * Model component
214
- *
215
- * @category Components
216
- */
217
- export function Model(props: ModelProps): null;
218
- export {};
219
- }
220
-
221
- declare module '@mappedin/react-sdk/react-sdk/src/useMapData' {
222
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
223
- export function useMapData(options: Mappedin.TGetMapDataOptions): {
224
- mapData?: Mappedin.MapData;
225
- isLoading: boolean;
226
- error?: Error;
227
- };
228
- }
229
-
230
- declare module '@mappedin/react-sdk/react-sdk/src/useMap' {
231
- import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
232
- export const MappedinContext: import("react").Context<{
233
- mapData?: Mappedin.MapData;
234
- mapView?: Mappedin.MapView;
235
- }>;
236
- export type UseMapProps = {
237
- mapData: Mappedin.MapData;
238
- mapView: Mappedin.MapView;
239
- };
240
- export function useMap(): UseMapProps;
241
- }
242
-
243
50
  declare module '@mappedin/react-sdk/mappedin-js/src' {
244
51
  import MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
245
- import type { TEvents, TEventPayload, TClickPayload, THoverPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
52
+ import type { TEvents, TEventPayload, TClickPayload, THoverPayload, TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
246
53
  import type { TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions } from '@packages/internal/mvf-utils';
247
54
  import { parseMVF, unzipMVF } from '@packages/internal/mvf-utils';
248
55
  import type { Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
249
- import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack } from '@mappedin/mvf';
56
+ import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack, OperationHours, SiblingGroup, LocationState } from '@mappedin/mvf';
250
57
  import { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
251
58
  import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/react-sdk/geojson/src';
252
59
  import { enableTestMode } from '@mappedin/react-sdk/geojson/src';
@@ -254,7 +61,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
254
61
  import { MappedinMapLibreOverlay } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
255
62
  import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
256
63
  import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
257
- import type { TBlueDotEvents, TBlueDotAction, TBlueDotState } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
64
+ import type { TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TFollowMode, TFollowCameraOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
65
+ import type { TExpandOptions, TStackedMapsEvents, TStackedMapsState } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
258
66
  export { setLoggerLevel, E_SDK_LOG_LEVEL } from '@packages/internal/common/Mappedin.Logger';
259
67
  /**
260
68
  * Represents all the available antialiasing options.
@@ -568,42 +376,228 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
568
376
  export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
569
377
  export const show3dMap: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
570
378
  export { parseMVF, unzipMVF, enableTestMode };
571
- export type { MapView, MapData, MappedinMapLibreOverlay, TBlueDotEvents, TBlueDotAction, TBlueDotState, TEvents, TEventPayload, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAmbientOcclusionOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, };
379
+ export type { MapView, MapData, MappedinMapLibreOverlay, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAmbientOcclusionOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, };
572
380
  export type * from 'geojson';
573
- export type { TUpdateState, TLabelState, TGeometryState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TCameraFocusOnTarget, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, } from '@mappedin/react-sdk/mappedin-js/src/types';
381
+ export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TCameraFocusOnTarget, TFocusable, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, } from '@mappedin/react-sdk/mappedin-js/src/types';
574
382
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
575
- export type { Label, Marker, Path, Shape, CameraTransform, Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
383
+ export type { Label, Marker, Path, Shape, CameraTransform, Model, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
576
384
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
577
385
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
578
- export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, Node, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
579
- export type { Camera, Models, Labels, BlueDot, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
386
+ export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image as ImageData, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, Node, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
387
+ export type { Camera, Models, Labels, BlueDot, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, StackedMaps, } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
580
388
  export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/react-sdk/mappedin-js/src/search';
581
389
  export type { Analytics, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics';
582
390
  }
583
391
 
584
- declare module '@mappedin/react-sdk/react-sdk/src/type-utils' {
585
- export type TupleToObject<T extends any[]> = {
586
- [K in keyof T as Exclude<K, keyof any[]>]: T[K];
392
+ declare module '@mappedin/react-sdk/react-sdk/src/Marker' {
393
+ import React, { type ReactElement, type ReactNode } from 'react';
394
+ import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
395
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
396
+ import type { TAnimationOptions } from '@mappedin/mappedin-js';
397
+ type ParamsArray = Parameters<Mappedin.MapView['Markers']['add']>;
398
+ type StreamAgentParameterNames = ['target', 'contentHtml', 'options'];
399
+ /**
400
+ * @interface
401
+ */
402
+ export type MarkerProps = Omit<TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
403
+ children?: ReactNode | ReactElement;
404
+ onLoad?: (marker: Mappedin.Marker) => void;
405
+ }, 'contentHtml'>;
406
+ export type AnimatedMarkerProps = {
407
+ duration?: number;
587
408
  };
588
- export type TupleToObjectWithPropNames<T extends any[], N extends Record<keyof TupleToObject<T>, PropertyKey>> = {
589
- [K in keyof TupleToObject<T> as N[K]]: T[K];
409
+ /**
410
+ * Marker component
411
+ *
412
+ * @example
413
+ * ```tsx
414
+ * <Marker target={mapData.getByType('space')[0]}>
415
+ * <div>Hello, world!</div>
416
+ * </Marker>
417
+ * ```
418
+ *
419
+ * @category Components
420
+ */
421
+ export const Marker: (props: MarkerProps) => ReactElement | null;
422
+ /**
423
+ * AnimatedMarker component - animates a marker as the target changes
424
+ *
425
+ * ```tsx
426
+ * <AnimatedMarker target={mapData.getByType('space')[0]} duration={1000}>
427
+ * <div>Hello, world!</div>
428
+ * </AnimatedMarker>
429
+ * ```
430
+ *
431
+ * @category Components
432
+ */
433
+ export const AnimatedMarker: (props: MarkerProps & TAnimationOptions) => React.JSX.Element;
434
+ export {};
435
+ }
436
+
437
+ declare module '@mappedin/react-sdk/react-sdk/src/Label' {
438
+ import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
439
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
440
+ type ParamsArray = Parameters<Mappedin.MapView['Labels']['add']>;
441
+ type StreamAgentParameterNames = ['target', 'text', 'options'];
442
+ /**
443
+ * @interface
444
+ */
445
+ export type LabelProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
446
+ onLoad?: (label: Mappedin.Label) => void;
447
+ };
448
+ /**
449
+ * Label component
450
+ *
451
+ * @category Components
452
+ */
453
+ export function Label(props: LabelProps): null;
454
+ export {};
455
+ }
456
+
457
+ declare module '@mappedin/react-sdk/react-sdk/src/useEvent' {
458
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
459
+ /**
460
+ * @interface
461
+ */
462
+ export type SDK_EVENTS = Omit<Mappedin.TEvents, 'outdoor-view-loaded'>;
463
+ export function useEvent<T extends keyof SDK_EVENTS>(event: T, callback: (payload: SDK_EVENTS[T] extends {
464
+ data: null;
465
+ } ? SDK_EVENTS[T]['data'] : SDK_EVENTS[T]) => void): void;
466
+ }
467
+
468
+ declare module '@mappedin/react-sdk/react-sdk/src/Path' {
469
+ import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
470
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
471
+ type ParamsArray = Parameters<Mappedin.MapView['Paths']['add']>;
472
+ type StreamAgentParameterNames = ['coordinate', 'options'];
473
+ /**
474
+ * @interface
475
+ */
476
+ export type PathProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
477
+ onLoad?: (path: Mappedin.Path) => void;
478
+ onDrawComplete?: () => void;
479
+ };
480
+ /**
481
+ * Path component
482
+ *
483
+ * @category Components
484
+ */
485
+ export function Path(props: PathProps): null;
486
+ export {};
487
+ }
488
+
489
+ declare module '@mappedin/react-sdk/react-sdk/src/MapView' {
490
+ import type { DetailedHTMLProps, HTMLAttributes, ReactNode } from 'react';
491
+ import React from 'react';
492
+ import { show3dMap } from '@mappedin/react-sdk/mappedin-js/src';
493
+ import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
494
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
495
+ type ParamsArray = Parameters<typeof show3dMap>;
496
+ type StreamAgentParameterNames = ['el', 'mapData', 'options'];
497
+ /**
498
+ * @interface
499
+ */
500
+ export type MapViewProps = Omit<TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
501
+ children?: ReactNode;
502
+ fallback?: ReactNode;
503
+ onLoad?: (mapView: Mappedin.MapView) => void;
504
+ }, 'el'>;
505
+ /**
506
+ * MapView component
507
+ *
508
+ * @category Components
509
+ *
510
+ * @example
511
+ * ```tsx *
512
+ * const { mapData } = useMapData({ key: '...', secret: '...', mapId: '...' });
513
+ * return <MapView mapData={mapData} />
514
+ * ```
515
+ */
516
+ export function MapView(props: MapViewProps & DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>): React.JSX.Element;
517
+ export {};
518
+ }
519
+
520
+ declare module '@mappedin/react-sdk/react-sdk/src/Navigation' {
521
+ import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
522
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
523
+ type ParamsArray = Parameters<Mappedin.MapView['Navigation']['draw']>;
524
+ type StreamAgentParameterNames = ['directions', 'options'];
525
+ /**
526
+ * @interface
527
+ */
528
+ export type NavigationProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
529
+ onLoad?: () => void;
530
+ onDrawComplete?: () => void;
531
+ };
532
+ /**
533
+ * Navigation component
534
+ *
535
+ * @category Components
536
+ */
537
+ export function Navigation(props: NavigationProps): null;
538
+ export {};
539
+ }
540
+
541
+ declare module '@mappedin/react-sdk/react-sdk/src/Shape' {
542
+ import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
543
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
544
+ type ParamsArray = Parameters<Mappedin.MapView['Shapes']['add']>;
545
+ type StreamAgentParameterNames = ['geometry', 'style', 'floor'];
546
+ /**
547
+ * @interface
548
+ */
549
+ export type ShapesProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
550
+ onLoad?: (shape: Mappedin.Shape) => void;
551
+ };
552
+ /**
553
+ * Shape component
554
+ *
555
+ * @category Components
556
+ */
557
+ export function Shape(props: ShapesProps): null;
558
+ export {};
559
+ }
560
+
561
+ declare module '@mappedin/react-sdk/react-sdk/src/Model' {
562
+ import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
563
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
564
+ type ParamsArray = Parameters<Mappedin.MapView['Models']['add']>;
565
+ type StreamAgentParameterNames = ['models', 'options'];
566
+ /**
567
+ * @interface
568
+ */
569
+ export type ModelProps = TupleToObjectWithPropNames<ParamsArray, StreamAgentParameterNames> & {
570
+ onLoad?: (models: Mappedin.Model[]) => void;
571
+ };
572
+ /**
573
+ * Model component
574
+ *
575
+ * @category Components
576
+ */
577
+ export function Model(props: ModelProps): null;
578
+ export {};
579
+ }
580
+
581
+ declare module '@mappedin/react-sdk/react-sdk/src/useMapData' {
582
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
583
+ export function useMapData(options: Mappedin.TGetMapDataOptions): {
584
+ mapData?: Mappedin.MapData;
585
+ isLoading: boolean;
586
+ error?: Error;
587
+ };
588
+ }
589
+
590
+ declare module '@mappedin/react-sdk/react-sdk/src/useMap' {
591
+ import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
592
+ export const MappedinContext: import("react").Context<{
593
+ mapData?: Mappedin.MapData;
594
+ mapView?: Mappedin.MapView;
595
+ }>;
596
+ export type UseMapProps = {
597
+ mapData: Mappedin.MapData;
598
+ mapView: Mappedin.MapView;
590
599
  };
591
- }
592
-
593
- declare module '@mappedin/react-sdk/react-sdk/src' {
594
- export * from '@mappedin/react-sdk/react-sdk/src/Marker';
595
- export * from '@mappedin/react-sdk/react-sdk/src/Label';
596
- export * from '@mappedin/react-sdk/react-sdk/src/useEvent';
597
- export * from '@mappedin/react-sdk/react-sdk/src/Path';
598
- export * from '@mappedin/react-sdk/react-sdk/src/MapView';
599
- export * from '@mappedin/react-sdk/react-sdk/src/Navigation';
600
- export * from '@mappedin/react-sdk/react-sdk/src/Shape';
601
- export * from '@mappedin/react-sdk/react-sdk/src/Model';
602
- export * from '@mappedin/react-sdk/react-sdk/src/useMapData';
603
- export { useMap } from '@mappedin/react-sdk/react-sdk/src/useMap';
604
- export type { UseMapProps } from '@mappedin/react-sdk/react-sdk/src/useMap';
605
- import * as Mappedin from '@mappedin/react-sdk/mappedin-js/src';
606
- export default Mappedin;
600
+ export function useMap(): UseMapProps;
607
601
  }
608
602
 
609
603
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
@@ -865,7 +859,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
865
859
  import type { Label, Marker, Model, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
866
860
  import type { CameraTransform } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform';
867
861
  import type { TBlueDotEvents } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot';
868
- export type TFloorChangeReason = '' | 'blue-dot-floor-change' | 'elevation-change';
862
+ import type { TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src/types';
863
+ import type { Directions } from '@mappedin/react-sdk/mappedin-js/src';
864
+ export type TFloorChangeReason = '' | 'blue-dot-floor-change' | 'stacked-maps-elevation-change' | 'navigation-connection-click';
869
865
  export type TClickPayload = {
870
866
  /**
871
867
  * The coordinate of the interaction.
@@ -968,6 +964,25 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
968
964
  * Emitted when the Blue Dot encounters an error.
969
965
  */
970
966
  'blue-dot-error': TBlueDotEvents['error'];
967
+ /**
968
+ * Emitted when the Blue Dot's follow mode changes.
969
+ */
970
+ 'blue-dot-follow-change': TBlueDotEvents['follow-change'];
971
+ /**
972
+ * Emitted when a navigation connection is clicked.
973
+ */
974
+ 'navigation-connection-click': {
975
+ fromFloor?: Floor;
976
+ toFloor: Floor;
977
+ instruction: TDirectionInstruction;
978
+ };
979
+ /**
980
+ * Emitted when the active path changes.
981
+ */
982
+ 'navigation-active-path-change': {
983
+ directions: Directions;
984
+ path: Path;
985
+ };
971
986
  } & TStackedMapsEvents;
972
987
  export type TEventPayload<EventName extends keyof TEvents> = TEvents[EventName] extends {
973
988
  data: null;
@@ -1192,7 +1207,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1192
1207
  changeLanguage(languageCode: string): Promise<void>;
1193
1208
  getDirectionsMultiDestination: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | (TNavigationTarget | TNavigationTarget[])[], opt?: TGetDirectionsOptions) => Directions | Directions[] | undefined;
1194
1209
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | (TNavigationTarget | TNavigationTarget[])[], opt?: TGetDirectionsOptions & {
1195
- multiSegment?: true;
1210
+ multiDestination?: true;
1196
1211
  }) => Directions | Directions[] | undefined;
1197
1212
  getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node | EnterpriseLocation): number;
1198
1213
  toJSONBundle({ downloadLanguagePacks, }?: {
@@ -1226,7 +1241,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1226
1241
  import type { Label, Marker, Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1227
1242
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1228
1243
  import type { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
1229
- import type { TShowStackOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1244
+ import type { StackedMaps, TCollapseOptions, TExpandOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1230
1245
  import type { InspectorOption } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspector';
1231
1246
  export class MapView extends PubSub<TEvents> {
1232
1247
  #private;
@@ -1280,6 +1295,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1280
1295
  * Controls for the outdoor map.
1281
1296
  */
1282
1297
  Outdoor: Outdoor;
1298
+ /**
1299
+ * Controls for the stacked maps.
1300
+ */
1301
+ get StackedMaps(): StackedMaps;
1283
1302
  /**
1284
1303
  * @internal
1285
1304
  */
@@ -1319,15 +1338,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1319
1338
  /**
1320
1339
  * @experimental
1321
1340
  */
1322
- expand(opts?: {
1323
- excludeFloors: Floor[];
1324
- }): Promise<void> | undefined;
1325
- showStack(opts?: TShowStackOptions): Promise<void> | undefined;
1341
+ expand(opts?: TExpandOptions): Promise<void> | undefined;
1326
1342
  /**
1327
1343
  * @experimental
1328
1344
  * @hidden
1329
1345
  */
1330
- collapse(): Promise<void> | undefined;
1346
+ collapse(opts?: TCollapseOptions): Promise<void> | undefined;
1331
1347
  /**
1332
1348
  * Adds a map to the MapView.
1333
1349
  * @param mapData The map data to add.
@@ -1339,7 +1355,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1339
1355
  * Sets the current floor ({@link Floor}) of the map.
1340
1356
  * @param floor The floor or floor ID to set.
1341
1357
  */
1342
- setFloor(floor: Floor | string): Promise<void> | undefined;
1358
+ setFloor(floor: Floor | string): void;
1343
1359
  /**
1344
1360
  * The current floor ({@link Floor}) of the map.
1345
1361
  */
@@ -1504,6 +1520,7 @@ declare module '@mappedin/react-sdk/geojson/src' {
1504
1520
  export type { GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter';
1505
1521
  export type { AttributionControlOptions, AttributionPosition } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
1506
1522
  export { ATTRIBUTION_POSITIONS } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
1523
+ export { ANIMATION_TWEENS } from '@mappedin/react-sdk/geojson/src/camera';
1507
1524
  export type { AddPathOptions, AddMarkerOptions, AddLabelOptions, AnimateToOptions, FocusOnOptions, MapViewState, MarkerState, PathState, GroupContainerState, GeometryGroupState, ShapeState, CustomGeometryBuilder, LabelState, GeometryState, ModelState, EasingCurve, Camera, InsetPadding, InsetPaddingOption, Position, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload, CollisionRankingTier, LabelAppearance, RendererCore, };
1508
1525
  export function createRenderer(container: HTMLElement, options?: RendererCoreOptions & {
1509
1526
  [key: string]: any;
@@ -1543,9 +1560,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1543
1560
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1544
1561
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1545
1562
  import type { Label, Marker, Model, Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1546
- import type { EasingCurve } from '@mappedin/core-sdk/src/camera';
1547
1563
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1548
- import type { InsetPaddingOption } from '@mappedin/react-sdk/geojson/src';
1564
+ import { type InsetPaddingOption, Position } from '@mappedin/core-sdk';
1549
1565
  export type DeepRequired<T> = Required<{
1550
1566
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1551
1567
  }>;
@@ -1684,9 +1700,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1684
1700
  */
1685
1701
  visible: boolean;
1686
1702
  };
1687
- /**
1688
- * @interface
1689
- */
1690
1703
  export type TDoorsState = {
1691
1704
  type: 'doors';
1692
1705
  /**
@@ -1730,8 +1743,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1730
1743
  rank: TCollisionRankingTier | 'initial';
1731
1744
  /**
1732
1745
  * Whether the marker is interactive.
1746
+ * `true` indicates that the marker will be registered in the SDK interaction events.
1747
+ * `'pointer-events-auto'` indicates that the marker will receive browser pointer events.
1733
1748
  */
1734
- interactive: boolean;
1749
+ interactive: boolean | 'pointer-events-auto';
1735
1750
  /**
1736
1751
  * Whether the marker is enabled.
1737
1752
  */
@@ -1830,8 +1845,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1830
1845
  */
1831
1846
  export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Door ? Partial<TGeometryState> : T extends string ? Record<string, any> : never;
1832
1847
  export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
1833
- export type TGetEntityState<T> = T extends WALLS ? TWallsState : T extends DOORS ? TDoorsState : T extends Marker ? TMarkerState : T extends Shape ? TShapeState : T extends Model ? TModelState : T extends Label ? TLabelState : T extends Image ? TImageState : T extends Space | MapObject ? TGeometryState : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
1834
- export type TGetState<T> = TGetEntityState<T> | undefined;
1848
+ export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
1835
1849
  /**
1836
1850
  * Options for {@link Camera} animations on the map.
1837
1851
  */
@@ -1843,7 +1857,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1843
1857
  /**
1844
1858
  * Easing function to use for the animation.
1845
1859
  */
1846
- easing?: EasingCurve;
1860
+ easing?: TEasingFunction;
1847
1861
  };
1848
1862
  /**
1849
1863
  * Options for controlling animations on the map.
@@ -1858,7 +1872,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1858
1872
  * Easing function to use for the animation.
1859
1873
  * @default 'ease-in-out'
1860
1874
  */
1861
- easing?: EasingCurve;
1875
+ easing?: TEasingFunction;
1862
1876
  };
1863
1877
  /**
1864
1878
  * Types of easing for animations.
@@ -1899,16 +1913,28 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1899
1913
  */
1900
1914
  pitch?: number;
1901
1915
  /**
1902
- * Screen offsets for the camera focus.
1916
+ * Axis aligned padding to add to the bounding box in meters.
1903
1917
  */
1918
+ axisAlignedPadding?: {
1919
+ /**
1920
+ * Vertical padding to add to the bounding box in meters along the elevation axis.
1921
+ */
1922
+ vertical?: number;
1923
+ };
1904
1924
  screenOffsets?: InsetPaddingOption;
1905
1925
  };
1906
- export type TCameraFocusOnTargets = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Node;
1907
1926
  /**
1908
- * Defines the target for the {@link Camera} focus operation.
1909
- * @interface
1927
+ * A map element that can be focused on by the camera.
1928
+ */
1929
+ export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Node
1930
+ /**
1931
+ * @experimental
1932
+ */
1933
+ | Position;
1934
+ /**
1935
+ * Defines the target(s) for the {@link Camera.focusOn} animation.
1910
1936
  */
1911
- export type TCameraFocusOnTarget = TCameraFocusOnTargets | TCameraFocusOnTargets[];
1937
+ export type TCameraFocusOnTarget = TFocusable | TFocusable[];
1912
1938
  /**
1913
1939
  * Defines the target for camera operations.
1914
1940
  */
@@ -2191,7 +2217,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2191
2217
  * | 'top' | Anchors the marker at the top, ideal for marking locations from above. |
2192
2218
  * | 'left' | Anchors the marker on the left side, useful for when space is limited on the right.|
2193
2219
  * | 'bottom' | Anchors the marker at the bottom, suitable for hanging markers or when space is limited above.|
2194
- * | 'right' | Anchors the marker on the right side, convenient for when space is limited on the left.|
2220
+ * | 'top-left' | Anchors the marker at the top-left corner. |
2221
+ * | 'top-right' | Anchors the marker at the top-right corner. |
2222
+ * | 'bottom-left' | Anchors the marker at the bottom-left corner. |
2223
+ * | 'bottom-right' | Anchors the marker at the bottom-right corner. |
2195
2224
  *
2196
2225
  */
2197
2226
  export type TMarkerAnchor = 'center' | 'top' | 'left' | 'bottom' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
@@ -2274,14 +2303,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2274
2303
  */
2275
2304
  scale?: [number, number, number];
2276
2305
  /**
2277
- * Whether the {@link } should be clickable
2306
+ * Whether the Model should be clickable
2278
2307
  * @default false
2279
2308
  */
2280
2309
  interactive?: boolean;
2281
2310
  };
2282
2311
  /**
2283
2312
  * Options for controlling the behavior of a {@link Model}.
2284
- * @interface
2285
2313
  */
2286
2314
  export type TAddModelOptions = {
2287
2315
  /**
@@ -2290,8 +2318,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2290
2318
  url: string;
2291
2319
  };
2292
2320
  /**
2293
- * Options for controlling the behavior of a {@link Marker}.
2294
- * @interface
2321
+ * Options for controlling the behavior of an {@link Image}.
2295
2322
  */
2296
2323
  export type TAddImageOptions = {
2297
2324
  /**
@@ -2327,7 +2354,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2327
2354
  };
2328
2355
  /**
2329
2356
  * Options for controlling the behavior of a {@link Marker}.
2330
- * @interface
2331
2357
  */
2332
2358
  export type TAddMarkerOptions = {
2333
2359
  /**
@@ -2336,15 +2362,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2336
2362
  */
2337
2363
  rank?: TCollisionRankingTier;
2338
2364
  /**
2339
- * Optional. Specifies the anchor point of the marker, determining its position relative to its coordinates.
2340
- * For the possible values and their descriptions, see {@link TMarkerAnchor}
2365
+ * Optional. Specifies the anchor point of the marker, determining its position relative to its coordinates.
2366
+ * If a list is provided, the marker will be anchored to the first anchor point that is available.
2367
+ *
2368
+ * The active anchor will be exposed as a DOM attribute `data-anchor` on the marker element.
2369
+ *
2370
+ * For the possible values and their descriptions, see {@link TMarkerAnchor}.
2341
2371
  */
2342
2372
  anchor?: TMarkerAnchor | TMarkerAnchor[];
2343
2373
  /**
2344
- * Whether the {@link Marker} should be clickable
2374
+ * Whether the {@link Marker} should be clickable.
2375
+ * If `true` the marker will be registered in the SDK interaction events.
2376
+ * If `'pointer-events-auto'` the marker will receive browser pointer events.
2345
2377
  * @default false
2346
2378
  */
2347
- interactive?: boolean;
2379
+ interactive?: boolean | 'pointer-events-auto';
2348
2380
  /**
2349
2381
  * Optional layer to attach the {@link Marker} to.
2350
2382
  */
@@ -2357,6 +2389,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2357
2389
  * Dynamic resize of the marker. If set to true, the marker will resize based on the content.
2358
2390
  */
2359
2391
  dynamicResize?: boolean;
2392
+ /**
2393
+ * Whether the marker should stop event propagation.
2394
+ * @internal
2395
+ * @default false
2396
+ */
2397
+ stopPropagation?: boolean;
2360
2398
  };
2361
2399
  /**
2362
2400
  * Options for creating a new {@link Label} with {@link Labels.add}.
@@ -2495,7 +2533,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2495
2533
  }
2496
2534
 
2497
2535
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot' {
2498
- import type { RendererCore } from '@mappedin/core-sdk';
2536
+ import type { EasingCurve, RendererCore } from '@mappedin/core-sdk';
2499
2537
  import { PubSub } from '@packages/internal/common';
2500
2538
  import { Coordinate, type Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2501
2539
  import type { TBlueDotOptions, TBlueDotPositionUpdate } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -2531,7 +2569,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-do
2531
2569
  * Emitted when the Blue Dot's following state changes.
2532
2570
  */
2533
2571
  'follow-change': {
2572
+ /**
2573
+ * Whether the Blue Dot is following the user.
2574
+ */
2534
2575
  following: boolean;
2576
+ /**
2577
+ * The mode the Blue Dot is following the user in.
2578
+ */
2579
+ mode?: TFollowMode;
2535
2580
  };
2536
2581
  };
2537
2582
  export type TBlueDotState = 'hidden' | 'active' | 'inactive' | 'disabled';
@@ -2539,11 +2584,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-do
2539
2584
  export type TBlueDotPositionUpdateWithFloor = Omit<TBlueDotPositionUpdate, 'floorOrFloorId'> & {
2540
2585
  floor?: Floor | 'device' | undefined;
2541
2586
  };
2587
+ /**
2588
+ * @experimental
2589
+ */
2542
2590
  export class BlueDot extends PubSub<TBlueDotEvents> {
2543
2591
  #private;
2544
2592
  state: TBlueDotState;
2593
+ following: boolean;
2545
2594
  /**
2546
- * The direction the user is facing in degrees from north.
2595
+ * The direction the user is facing in degrees from north clockwise.
2596
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/GeolocationCoordinates/heading
2547
2597
  */
2548
2598
  get heading(): GeolocationPosition['coords']['heading'] | undefined;
2549
2599
  /**
@@ -2590,7 +2640,48 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-do
2590
2640
  * ```
2591
2641
  */
2592
2642
  update(position: GeolocationPositionExtended | TBlueDotPositionUpdate | undefined): void;
2643
+ /**
2644
+ * Sets the camera to follow the Blue Dot's position as it updates. User interaction will cancel following automatically.
2645
+ */
2646
+ follow: (mode: TFollowMode, cameraOptions?: TFollowCameraOptions) => void;
2593
2647
  }
2648
+ export type TFollowMode =
2649
+ /** Camera follows only the position of the Blue Dot. Bearing is not updated. */
2650
+ 'position-only'
2651
+ /** Camera follows both position and heading of the Blue Dot. */
2652
+ | 'position-and-heading'
2653
+ /** Camera follows position and automatically rotates to match the direction of the navigation path */
2654
+ | 'position-and-path-direction'
2655
+ /** Disables follow mode */
2656
+ | false;
2657
+ export type TFollowCameraOptions = {
2658
+ /**
2659
+ * @default 21
2660
+ */
2661
+ zoomLevel?: number;
2662
+ /**
2663
+ * @default 45
2664
+ */
2665
+ pitch?: number;
2666
+ /**
2667
+ * Camera bearing in degrees clockwise from North. 0 is North, 90 is East, 180 is South, 270 is West.
2668
+ * This option is only available in 'position-only' mode. In all other modes, the bearing will be calculated automatically.
2669
+ * @default undefined
2670
+ */
2671
+ bearing?: number;
2672
+ /**
2673
+ * @default undefined
2674
+ */
2675
+ elevation?: number;
2676
+ /**
2677
+ * @default POSITION_ANIMATION_DURATION
2678
+ */
2679
+ duration?: number;
2680
+ /**
2681
+ * @default 'ease-in-out'
2682
+ */
2683
+ easing?: EasingCurve;
2684
+ };
2594
2685
  type TStateTransitions = {
2595
2686
  [Action in TBlueDotAction]?: TBlueDotState;
2596
2687
  };
@@ -2608,6 +2699,106 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-do
2608
2699
  export {};
2609
2700
  }
2610
2701
 
2702
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps' {
2703
+ import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
2704
+ import { PubSub } from '@packages/internal/common';
2705
+ import { type Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
2706
+ import { type TCameraAnimationOptions } from '@mappedin/react-sdk/mappedin-js/src';
2707
+ export const GAP_BELOW_FLOORS = 50;
2708
+ export const DURATION = 1000;
2709
+ export type TStackedMapsState =
2710
+ /**
2711
+ * Expands the floor stack.
2712
+ */
2713
+ 'expanded'
2714
+ /**
2715
+ * Collapses the floor stack.
2716
+ */
2717
+ | 'collapsed';
2718
+ export type TStackedMapsEvents = {
2719
+ 'stacked-maps-state-change': {
2720
+ state: TStackedMapsState;
2721
+ };
2722
+ };
2723
+ export type TExpandOptions = TCameraAnimationOptions & {
2724
+ /**
2725
+ * The floors to include in the stack.
2726
+ */
2727
+ includedFloors?: Floor[];
2728
+ /**
2729
+ * The distance between floors in the stack in meters.
2730
+ */
2731
+ distanceBetweenFloors?: number;
2732
+ /**
2733
+ * The pan mode to use when animating the camera.
2734
+ * @default 'elevation'
2735
+ */
2736
+ cameraPanMode?: 'default' | 'elevation';
2737
+ /**
2738
+ * Whether to change the floor on elevation changes.
2739
+ * @default true
2740
+ */
2741
+ changeFloorOnElevationChanges?: boolean;
2742
+ };
2743
+ export type TCollapseOptions = TCameraAnimationOptions;
2744
+ type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
2745
+ /**
2746
+ * @experimental
2747
+ */
2748
+ export class StackedMaps extends PubSub<TStackedMapsEvents> {
2749
+ #private;
2750
+ get state(): TStackedMapsState;
2751
+ /**
2752
+ * @internal
2753
+ */
2754
+ constructor({ currentMapGetter }: {
2755
+ currentMapGetter: CurrentMapGetter;
2756
+ });
2757
+ /**
2758
+ * Whether the floor stack is expanded.
2759
+ */
2760
+ get expanded(): boolean;
2761
+ /**
2762
+ * The distance between floors in the stack in meters.
2763
+ */
2764
+ get gapBelowFloors(): number;
2765
+ /**
2766
+ * The factor of the expanded floor stack. 0 is collapsed, 1 is fully expanded.
2767
+ */
2768
+ expandedFactor: number;
2769
+ /**
2770
+ * The floors included in the stack.
2771
+ */
2772
+ get includedFloors(): Floor[];
2773
+ /**
2774
+ * The visibility mode for the stacked maps. 'all-floors' will show all floors, 'only-current-floor' will only show the current floor in the stack.
2775
+ * @default 'all-floors'
2776
+ */
2777
+ get floorVisibilityMode(): "all-floors" | "only-current-floor";
2778
+ /**
2779
+ * Set the visibility mode for the stacked maps.
2780
+ * @param mode The visibility mode to set. Either `all-floors` or `only-current-floor`.
2781
+ */
2782
+ setFloorVisiblityMode(mode: 'all-floors' | 'only-current-floor'): void;
2783
+ /**
2784
+ * Set whether to listen to camera elevation changes to automatically change the floor.
2785
+ */
2786
+ changeFloorOnElevationChanges(value: boolean): void;
2787
+ /**
2788
+ * Expand the floor stack.
2789
+ * @param opts Optional settings for the expansion.
2790
+ */
2791
+ expand(opts?: TExpandOptions): Promise<void>;
2792
+ /**
2793
+ * Collapse the floor stack.
2794
+ * @param opts Optional settings for the collapse.
2795
+ */
2796
+ collapse(opts?: TCollapseOptions): Promise<void>;
2797
+ destroy(): void;
2798
+ }
2799
+ export {};
2800
+ }
2801
+
2611
2802
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects' {
2612
2803
  export { Label } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label';
2613
2804
  export { Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker';
@@ -2628,6 +2819,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
2628
2819
  * Options for navigation.
2629
2820
  */
2630
2821
  export type TNavigationOptions = {
2822
+ /**
2823
+ * Controls whether the map should be set to the floor of the connection point when a connection point is clicked.
2824
+ * @default true
2825
+ */
2826
+ setMapOnConnectionClick?: boolean;
2631
2827
  /**
2632
2828
  * Controls whether markers are created for the departure, destination, and connection points.
2633
2829
  */
@@ -2648,15 +2844,61 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
2648
2844
  */
2649
2845
  connection?: boolean | ((instruction: TDirectionInstruction) => Marker);
2650
2846
  };
2847
+ /**
2848
+ * Path Options for the non-current path in multi-destination mode.
2849
+ */
2850
+ inactivePathOptions?: {
2851
+ /**
2852
+ * Duration in milliseconds for the path to be drawn.
2853
+ * @default 1000
2854
+ */
2855
+ drawDuration?: number;
2856
+ /**
2857
+ * The color of the path.
2858
+ * @default '#40A9FF'
2859
+ */
2860
+ color?: string;
2861
+ /**
2862
+ * Whether the path should be clickable.
2863
+ *
2864
+ * @defaultValue false
2865
+ */
2866
+ interactive?: boolean;
2867
+ /**
2868
+ * The accent color of the path. This is applied to arrows if they are displayed
2869
+ * @default 'blue'
2870
+ */
2871
+ accentColor?: string;
2872
+ /**
2873
+ * The radius of the path near the markers.
2874
+ * @default 0.25
2875
+ */
2876
+ nearRadius?: number;
2877
+ /**
2878
+ * The radius of the path far from the markers.
2879
+ * @default 1
2880
+ */
2881
+ farRadius?: number;
2882
+ /**
2883
+ * Controls whether arrows are displayed on the path.
2884
+ * @default false
2885
+ */
2886
+ displayArrowsOnPath?: boolean;
2887
+ /**
2888
+ * Controls whether arrows are animated.
2889
+ * @default false
2890
+ */
2891
+ animateArrowsOnPath?: boolean;
2892
+ };
2651
2893
  /**
2652
2894
  * Options for the path.
2653
2895
  */
2654
2896
  pathOptions?: {
2655
2897
  /**
2656
- * duration in milliseconds for the path to be drawn
2657
- * @default
2898
+ * Duration in milliseconds for the path to be drawn.
2899
+ * @default 1000
2658
2900
  */
2659
- drawDuration: number;
2901
+ drawDuration?: number;
2660
2902
  /**
2661
2903
  * The color of the path.
2662
2904
  * @default '#40A9FF'
@@ -2738,16 +2980,40 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
2738
2980
  instruction: TDirectionInstruction;
2739
2981
  marker: Marker;
2740
2982
  } | undefined;
2983
+ /**
2984
+ * @internal
2985
+ */
2986
+ get paths(): Path[];
2987
+ /**
2988
+ * The currently active directions.
2989
+ */
2990
+ get activeDirections(): Directions | undefined;
2991
+ /**
2992
+ * The currently active path.
2993
+ */
2994
+ get activePath(): Path | undefined;
2995
+ /**
2996
+ * Sets the active path by index.
2997
+ */
2998
+ setActivePathByIndex(target: number): void;
2999
+ /**
3000
+ * Sets the active path.
3001
+ */
3002
+ setActivePath(target: Path): void;
3003
+ /**
3004
+ * Sets the active path by directions.
3005
+ */
3006
+ setActivePathByDirections(target: Directions): void;
2741
3007
  /**
2742
3008
  * Draws the specified directions on the map.
2743
3009
  * @param directions The directions to be drawn.
2744
3010
  * @param options Optional additional options for the navigation.
2745
3011
  */
2746
- draw: (directions: Directions | Directions[], options?: TNavigationOptions) => Promise<unknown>;
3012
+ draw(directions: Directions | Directions[], options?: TNavigationOptions): Promise<unknown>;
2747
3013
  /**
2748
3014
  * Clears any drawn navigation paths or directions from the map.
2749
3015
  */
2750
- clear: () => void;
3016
+ clear(): void;
2751
3017
  }
2752
3018
  type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
2753
3019
  export {};
@@ -2762,11 +3028,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson' {
2762
3028
  export { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
2763
3029
  export { Models } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/models';
2764
3030
  export { Paths } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/paths';
3031
+ export { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation/index';
2765
3032
  export { Exporter } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/exporter';
2766
3033
  export { Directions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
2767
3034
  export { Style } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/style';
2768
3035
  export { default as Outdoor } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
2769
3036
  export { Images } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/images';
3037
+ export { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
2770
3038
  }
2771
3039
 
2772
3040
  declare module '@mappedin/react-sdk/mappedin-js/src/search' {
@@ -2780,6 +3048,31 @@ declare module '@mappedin/react-sdk/mappedin-js/src/analytics' {
2780
3048
  export type { AnalyticsUpdateOptions, AnalyticState, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
2781
3049
  }
2782
3050
 
3051
+ declare module '@mappedin/react-sdk/react-sdk/src/type-utils' {
3052
+ export type TupleToObject<T extends any[]> = {
3053
+ [K in keyof T as Exclude<K, keyof any[]>]: T[K];
3054
+ };
3055
+ export type TupleToObjectWithPropNames<T extends any[], N extends Record<keyof TupleToObject<T>, PropertyKey>> = {
3056
+ [K in keyof TupleToObject<T> as N[K]]: T[K];
3057
+ };
3058
+ }
3059
+
3060
+ declare module '@mappedin/react-sdk/react-sdk/src' {
3061
+ import * as Mappedin from '@mappedin/react-sdk/mappedin-js/src';
3062
+ export * from '@mappedin/react-sdk/react-sdk/src/Marker';
3063
+ export * from '@mappedin/react-sdk/react-sdk/src/Label';
3064
+ export * from '@mappedin/react-sdk/react-sdk/src/useEvent';
3065
+ export * from '@mappedin/react-sdk/react-sdk/src/Path';
3066
+ export * from '@mappedin/react-sdk/react-sdk/src/MapView';
3067
+ export * from '@mappedin/react-sdk/react-sdk/src/Navigation';
3068
+ export * from '@mappedin/react-sdk/react-sdk/src/Shape';
3069
+ export * from '@mappedin/react-sdk/react-sdk/src/Model';
3070
+ export * from '@mappedin/react-sdk/react-sdk/src/useMapData';
3071
+ export { useMap } from '@mappedin/react-sdk/react-sdk/src/useMap';
3072
+ export type { UseMapProps } from '@mappedin/react-sdk/react-sdk/src/useMap';
3073
+ export default Mappedin;
3074
+ }
3075
+
2783
3076
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category' {
2784
3077
  import type { EnterpriseCategory as MVFEnterpriseCategory } from '@mappedin/mvf';
2785
3078
  import type { MapDataInternal, EnterpriseLocation } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
@@ -3052,54 +3345,17 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
3052
3345
  accessible: boolean;
3053
3346
  smoothing: {
3054
3347
  enabled: boolean;
3055
- radius: number;
3056
- };
3057
- zones: TDirectionZone[];
3058
- }, mapData: MapDataInternal) => Directions | undefined;
3059
- /**
3060
- * Get the node IDs that should be excluded from the navigation graph.
3061
- *
3062
- * @hidden
3063
- * @param accessible {boolean}
3064
- */
3065
- getExcludedNodeIds: (accessible: boolean) => string[];
3066
- }
3067
- }
3068
-
3069
- declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps' {
3070
- import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
3071
- import type { RendererCore } from '@mappedin/core-sdk';
3072
- import TWEEN from '@tweenjs/tween.js';
3073
- import { PubSub } from '@packages/internal/common';
3074
- import type { TFocusOnOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
3075
- export const GAP_BELOW_FLOORS = 50;
3076
- export const DURATION = 1000;
3077
- export type TStackedMapsEvents = {
3078
- expanded: void;
3079
- collapsed: void;
3080
- };
3081
- export type TShowStackOptions = {
3082
- numFloors?: number;
3083
- cameraOptions?: TFocusOnOptions;
3084
- };
3085
- export class StackedMaps extends PubSub<TStackedMapsEvents> {
3086
- #private;
3087
- constructor(api: GeojsonApiMapObject, core: RendererCore);
3088
- percentExpanded: number;
3089
- animateToCurrentFloorTween: TWEEN.Tween | null;
3090
- expanded: boolean;
3091
- handlePreRender: () => void;
3092
- handleUserInteractionStart: () => void;
3093
- handleUserInteractionEnd: () => void;
3094
- animateToCurrentFloor(): Promise<void>;
3095
- expand(opts?: {
3096
- excludeFloorIds: string[];
3097
- }): Promise<void>;
3098
- collapse(): Promise<void>;
3099
- showStack(opts?: TShowStackOptions): Promise<void>;
3100
- animate(direction: 'expand' | 'collapse', options?: {
3101
- duration: number;
3102
- }): Promise<void>;
3348
+ radius: number;
3349
+ };
3350
+ zones: TDirectionZone[];
3351
+ }, mapData: MapDataInternal) => Directions | undefined;
3352
+ /**
3353
+ * Get the node IDs that should be excluded from the navigation graph.
3354
+ *
3355
+ * @hidden
3356
+ * @param accessible {boolean}
3357
+ */
3358
+ getExcludedNodeIds: (accessible: boolean) => string[];
3103
3359
  }
3104
3360
  }
3105
3361
 
@@ -3145,7 +3401,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-tran
3145
3401
 
3146
3402
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot' {
3147
3403
  export { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
3148
- export type { TBlueDotEvents } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
3404
+ export type { TBlueDotEvents, GeolocationPositionExtended, TFollowCameraOptions, TFollowMode } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
3149
3405
  }
3150
3406
 
3151
3407
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
@@ -3159,7 +3415,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node' {
3159
3415
  *
3160
3416
  * Nodes are used to define points in the map's pathfinding graph.
3161
3417
  *
3162
- * @internal
3163
3418
  */
3164
3419
  class Node extends BaseMapData {
3165
3420
  #private;
@@ -3579,6 +3834,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
3579
3834
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection' {
3580
3835
  import type { Feature, FeatureCollection, Image, Point, SpaceProperties, Connection as MVFConnection } from '@mappedin/mvf';
3581
3836
  import Coordinate from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
3837
+ import type Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
3582
3838
  import type { Floor, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3583
3839
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
3584
3840
  /**
@@ -3638,6 +3894,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection'
3638
3894
  * @returns {Coordinate[]} An array of coordinates for the connection.
3639
3895
  */
3640
3896
  get coordinates(): Coordinate[];
3897
+ /**
3898
+ * Gets the nodes ({@link Node}) associated with the connection.
3899
+ */
3900
+ get nodes(): Node[];
3641
3901
  /**
3642
3902
  * Gets the floors ({@link Floor}) associated with the connection.
3643
3903
  *
@@ -4465,30 +4725,30 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
4465
4725
  */
4466
4726
  rank?: CollisionRankingTier | number;
4467
4727
  /**
4468
- * Whether the Label should be clickable via the SDK's internal click event system.
4728
+ * Whether the Marker should be clickable via the SDK's internal click event system.
4469
4729
  *
4470
4730
  * @example
4471
4731
  * ```javascript
4472
- * renderer.on('click', ({ labels }) => {});
4732
+ * renderer.on('click', ({ markers }) => {});
4473
4733
  * ```
4474
4734
  */
4475
- interactive?: boolean;
4735
+ interactive?: boolean | 'pointer-events-auto';
4476
4736
  };
4477
4737
  };
4478
4738
  export const addMarkerOptionsSchema: z.ZodObject<{
4479
4739
  rank: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["low", "medium", "high", "always-visible"]>, z.ZodNumber]>>;
4480
- interactive: z.ZodOptional<z.ZodBoolean>;
4740
+ interactive: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodLiteral<"pointer-events-auto">]>>;
4481
4741
  id: z.ZodOptional<z.ZodString>;
4482
4742
  anchor: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["top", "bottom", "left", "right", "center", "top-left", "top-right", "bottom-left", "bottom-right"]>, z.ZodArray<z.ZodEnum<["top", "bottom", "left", "right", "center", "top-left", "top-right", "bottom-left", "bottom-right"]>, "many">]>>;
4483
4743
  dynamicResize: z.ZodOptional<z.ZodBoolean>;
4484
4744
  }, "strip", z.ZodTypeAny, {
4485
- interactive?: boolean | undefined;
4745
+ interactive?: boolean | "pointer-events-auto" | undefined;
4486
4746
  id?: string | undefined;
4487
4747
  anchor?: "center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
4488
4748
  rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
4489
4749
  dynamicResize?: boolean | undefined;
4490
4750
  }, {
4491
- interactive?: boolean | undefined;
4751
+ interactive?: boolean | "pointer-events-auto" | undefined;
4492
4752
  id?: string | undefined;
4493
4753
  anchor?: "center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
4494
4754
  rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
@@ -4509,9 +4769,11 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
4509
4769
  rank?: CollisionRankingTier;
4510
4770
  /**
4511
4771
  * Whether the Label should be clickable.
4772
+ * If `true` the marker will be registered in the SDK interaction events.
4773
+ * If `'pointer-events-auto'` the marker will receive browser pointer events.
4512
4774
  * @default false
4513
4775
  */
4514
- interactive?: boolean;
4776
+ interactive?: boolean | 'pointer-events-auto';
4515
4777
  /**
4516
4778
  * @internal
4517
4779
  */
@@ -4532,6 +4794,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
4532
4794
  rank: number;
4533
4795
  initialRank: number;
4534
4796
  activeAnchor: MarkerAnchor;
4797
+ pointerEvents: 'auto' | 'none';
4535
4798
  options: Required<AddMarkerOptions>;
4536
4799
  projection: Vector2;
4537
4800
  enabled: boolean;
@@ -4608,6 +4871,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/path' {
4608
4871
  * The position of the path in [lon, lat]
4609
4872
  */
4610
4873
  readonly position: Position;
4874
+ /**
4875
+ * The altitude of the geometry, in meters
4876
+ */
4877
+ altitude?: number;
4611
4878
  /**
4612
4879
  * Whether the path is visible.
4613
4880
  */
@@ -5747,12 +6014,14 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
5747
6014
  }
5748
6015
 
5749
6016
  declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
5750
- import type { Texture, BufferGeometry, LineSegments, Mesh } from 'three';
6017
+ import type { Texture, BufferGeometry, LineSegments, Mesh, Object3D } from 'three';
5751
6018
  import { BatchedMesh, Color, Vector3 } from 'three';
5752
6019
  import type { BatchedStandardMaterial } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/batched-material';
5753
6020
  import type { Position } from '@mappedin/react-sdk/geojson/src/types';
5754
- import type { Feature, LineString, MultiLineString, MultiPolygon, Polygon } from 'geojson';
6021
+ import type { Feature, LineString, MultiLineString, MultiPolygon, Polygon, Position as GeoJsonPosition } from 'geojson';
5755
6022
  import type { BBox } from '@turf/turf';
6023
+ import { type ImageProperties } from '@mappedin/react-sdk/geojson/src/components/image';
6024
+ import { type BaseTextAreaProperties } from '@mappedin/mvf';
5756
6025
  export class EntityBatchedMesh extends BatchedMesh {
5757
6026
  userData: {
5758
6027
  entities: {
@@ -5761,6 +6030,15 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
5761
6030
  detached?: boolean;
5762
6031
  };
5763
6032
  }
6033
+ export type MeshComponentProperties = {
6034
+ image?: ImageProperties & {
6035
+ position: GeoJsonPosition;
6036
+ path: string;
6037
+ };
6038
+ textArea?: BaseTextAreaProperties & {
6039
+ position: GeoJsonPosition;
6040
+ };
6041
+ };
5764
6042
  /**
5765
6043
  * State representing a Geometry
5766
6044
  */
@@ -5839,15 +6117,16 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
5839
6117
  focusMesh?: Mesh;
5840
6118
  outline?: LineSegments;
5841
6119
  imageMesh?: Mesh;
6120
+ textAreaMesh?: Object3D;
5842
6121
  readonly type = "geometry";
5843
6122
  dirty: boolean;
5844
6123
  detached: boolean;
5845
6124
  instanceIndex: number;
5846
6125
  geometry?: BufferGeometry;
5847
6126
  material?: BatchedStandardMaterial;
5848
- feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString>;
6127
+ feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>;
5849
6128
  currentHeight: number;
5850
- constructor(feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString>);
6129
+ constructor(feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>);
5851
6130
  get visible(): boolean;
5852
6131
  set visible(visible: boolean);
5853
6132
  setOpacity(opacity: number): void;
@@ -6240,6 +6519,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
6240
6519
  import { MeshDetachmentSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system';
6241
6520
  import { MeshModificationSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system';
6242
6521
  import { PreRenderSystem } from '@mappedin/react-sdk/geojson/src/systems/pre-render/system';
6522
+ import { PolygonLabelSystem } from '@mappedin/react-sdk/geojson/src/systems/polygon-label/system';
6243
6523
  export type * from '@mappedin/react-sdk/geojson/src/types';
6244
6524
  export const raycaster: Raycaster;
6245
6525
  /**
@@ -6282,6 +6562,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
6282
6562
  meshDetachmentSystem: MeshDetachmentSystem;
6283
6563
  meshModificationSystem: MeshModificationSystem;
6284
6564
  preRenderSystem: PreRenderSystem;
6565
+ polygonLabelSystem: PolygonLabelSystem;
6285
6566
  };
6286
6567
  export type MapViewState = {
6287
6568
  readonly type: 'map-view';
@@ -6549,23 +6830,23 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
6549
6830
  import { type InsetPadding, type Position } from '@mappedin/react-sdk/geojson/src/types';
6550
6831
  import type { InsetPaddingOption, RendererState, Systems } from '@mappedin/react-sdk/geojson/src/renderer';
6551
6832
  export type EasingCurve = 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear';
6552
- export type FocusOnOptions = {
6833
+ export type AnimationOptions = {
6834
+ duration?: number;
6835
+ easing?: EasingCurve;
6836
+ };
6837
+ export type FocusOnOptions = AnimationOptions & {
6553
6838
  bearing?: number;
6554
6839
  pitch?: number;
6555
- duration?: number;
6556
6840
  padding?: InsetPaddingOption;
6557
6841
  minZoomLevel?: number;
6558
6842
  maxZoomLevel?: number;
6559
- easing?: EasingCurve;
6560
6843
  };
6561
- export type AnimateToOptions = {
6844
+ export type AnimateToOptions = AnimationOptions & {
6562
6845
  center?: Position;
6563
6846
  zoomLevel?: number;
6564
6847
  bearing?: number;
6565
6848
  pitch?: number;
6566
6849
  elevation?: number;
6567
- duration?: number;
6568
- easing?: EasingCurve;
6569
6850
  };
6570
6851
  export const ANIMATION_TWEENS: {
6571
6852
  linear: any;
@@ -6595,6 +6876,14 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
6595
6876
  * Set the camera's zoom level in mercator zoom level units.
6596
6877
  */
6597
6878
  setZoomLevel(zoomLevel: number): void;
6879
+ /**
6880
+ * Whether the camera is animating.
6881
+ */
6882
+ get isAnimating(): any;
6883
+ /**
6884
+ * Cancel the last animation.
6885
+ */
6886
+ cancelAnimation(): void;
6598
6887
  /**
6599
6888
  * How far the camera can zoom in towards the ground
6600
6889
  */
@@ -6668,11 +6957,26 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
6668
6957
  * @param elevation The elevation in meters.
6669
6958
  */
6670
6959
  setElevation(elevation: number): void;
6960
+ /**
6961
+ * Animate the camera's elevation to a new value.
6962
+ * @param elevation The new elevation in meters.
6963
+ * @param options The animation options.
6964
+ */
6965
+ animateElevation(elevation: number, options?: AnimationOptions): Promise<void>;
6671
6966
  /**
6672
6967
  * The padding around the edges of the map when focusing on a set of coordinates.
6673
6968
  */
6674
6969
  get insetsPadding(): InsetPadding;
6675
6970
  /**
6971
+ * The camera's current pan mode.
6972
+ */
6973
+ get panMode(): "elevation" | "default";
6974
+ /**
6975
+ * Set the camera's pan mode. 'elevation' moves the camera up and down, while 'default' allows the camera to pan along the ground.
6976
+ */
6977
+ setPanMode(panMode: 'default' | 'elevation'): void;
6978
+ /**
6979
+ *
6676
6980
  * @param padding The padding around the edges of the map when focusing on a set of coordinates (in screen pixels).
6677
6981
  */
6678
6982
  setInsetPadding(padding: InsetPadding): void;
@@ -6738,33 +7042,33 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
6738
7042
  import type { Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
6739
7043
  import type { Camera } from '@mappedin/react-sdk/geojson/src/camera';
6740
7044
  export function cartesianToGeographic(centerLat: number, centerLon: number, x: number, y: number): {
6741
- lat: number;
6742
- lon: number;
7045
+ lat: number;
7046
+ lon: number;
6743
7047
  };
6744
7048
  export function geographicToCartesian(centerLat: number, centerLon: number, targetLat: number, targetLon: number): {
6745
- x: number;
6746
- y: number;
7049
+ x: number;
7050
+ y: number;
6747
7051
  };
6748
7052
  export const populateGeometry3DIdsInScene: (tree: any, entities: RendererState["geometry3DIdsInScene"]) => Set<string | number>;
6749
7053
  export const populateGeometry2DIdsInScene: (tree: any, entities: Set<Geometry2D["id"]>) => Set<string | number>;
6750
7054
  export function convertMapLibreStylePaintProps(paint: any): {
6751
- color: any;
6752
- height: any;
6753
- altitude: any;
6754
- opacity: any;
6755
- outline: any;
7055
+ color: any;
7056
+ height: any;
7057
+ altitude: any;
7058
+ opacity: any;
7059
+ outline: any;
6756
7060
  };
6757
7061
  export function convertMapLibreLineStylePaintProps(paint: any): {
6758
- color: any;
6759
- join: any;
6760
- opacity: any;
6761
- width: any;
6762
- cap: any;
7062
+ color: any;
7063
+ join: any;
7064
+ opacity: any;
7065
+ width: any;
7066
+ cap: any;
6763
7067
  };
6764
7068
  export function mergeObjects<T extends Record<string, any>>(obj1: T, obj2: T): T;
6765
7069
  export function createCustomLayer(modelAsMercatorCoordinate: MercatorCoordinate, viewCamera: THREECamera, camera: Camera, onRender: () => void): CustomLayerInterface;
6766
7070
  export function getRequestHeaders(authURL: string): Promise<{
6767
- 'x-mappedin-tiles-key': string;
7071
+ 'x-mappedin-tiles-key': string;
6768
7072
  }>;
6769
7073
  export function cyrb53(str: string, seed?: number): number;
6770
7074
  export const linearEase: (t: number) => number;
@@ -6776,46 +7080,32 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
6776
7080
  /* getProjectionScaleFactor()
6777
7081
  /* finds the scale ratio between screen coordinates and 3D coordinates (in X-Z plane)
6778
7082
  /*
6779
- * R
6780
- * /|
6781
- * C : Camera / |
6782
- * PQ : Projection Plane / |
6783
- * OR : Origin / |
6784
- * F : FOV / |
6785
- * Q / |
6786
- * /| |
6787
- * / | |
6788
- * / | |
6789
- * / | |
6790
- * / | |
6791
- * / F/2 | |
6792
- * C ------------P------------ O
6793
- *
6794
- *
6795
- * ProjectionScaleFactor = ( OR / PQ )
6796
- * PQ = canvasHeight / 2
6797
- * CQ = zoom
6798
- *
6799
- * OR / C0 = tan(F/2)
6800
- * so OR = CO * tan(F/2)
6801
- */
7083
+ * R
7084
+ * /|
7085
+ * C : Camera / |
7086
+ * PQ : Projection Plane / |
7087
+ * OR : Origin / |
7088
+ * F : FOV / |
7089
+ * Q / |
7090
+ * /| |
7091
+ * / | |
7092
+ * / | |
7093
+ * / | |
7094
+ * / | |
7095
+ * / F/2 | |
7096
+ * C ------------P------------ O
7097
+ *
7098
+ *
7099
+ * ProjectionScaleFactor = ( OR / PQ )
7100
+ * PQ = canvasHeight / 2
7101
+ * CQ = zoom
7102
+ *
7103
+ * OR / C0 = tan(F/2)
7104
+ * so OR = CO * tan(F/2)
7105
+ */
6802
7106
  export function getProjectionScaleFactor(FOV: number, canvasHeight: number, zoom: number): number;
6803
7107
  export function getGeometryByGeometryId(state: RendererState, geometryOrGeometryId?: string | number | Record<string, any>): Geometry3D | GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | undefined;
6804
7108
  export function getBoundingBoxCenter(bbox: Position[]): [number, number];
6805
- export function toRadians(degrees: number): number;
6806
- /**
6807
- * Calculates the approximate distance between two geographic coordinates on Earth's surface.
6808
- *
6809
- * This function uses the equirectangular approximation method to compute the distance, which simplifies
6810
- * the math and speeds up calculations, but is less accurate over long distances compared to other methods
6811
- * like the haversine formula.
6812
- *
6813
- * @param {Position} point1 - The first point's longitude and latitude as [longitude, latitude].
6814
- * @param {Position} point1 - The second point's longitude and latitude as [longitude, latitude].
6815
- * @return
6816
- * @return {number} The approximate distance between the two points in meters.
6817
- */
6818
- export function haversineDistance(point1: Position, point2: Position): number;
6819
7109
  export { getCornersOfBoundingBox } from '@mappedin/react-sdk/geojson/src/utils/bounding-box';
6820
7110
  export function isFiniteBox(box: Box2 | Box3): boolean;
6821
7111
  export { getPixelRatio } from '@mappedin/react-sdk/geojson/src/utils/get-pixel-ratio';
@@ -6826,7 +7116,6 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
6826
7116
  }
6827
7117
 
6828
7118
  declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
6829
- export const EARTH_RADIUS_M = 6371008.8;
6830
7119
  export const MAPPEDIN_LAYER_ID = "mappedin";
6831
7120
  export enum ENTITY_3D_LAYERS {
6832
7121
  DEFAULT = 0,
@@ -7050,7 +7339,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7050
7339
  import { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
7051
7340
  import { Style } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/style';
7052
7341
  import Outdoor from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
7053
- import type { TShowStackOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
7054
7342
  export class GeoJsonApi {
7055
7343
  core: RendererCore;
7056
7344
  outdoors: GeojsonApiMapObject;
@@ -7059,6 +7347,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7059
7347
  mapDataExternal: {
7060
7348
  [key in string]: MapData;
7061
7349
  };
7350
+ mapData?: MapData;
7062
7351
  currentMap?: GeojsonApiMapObject;
7063
7352
  hiddenOutdoorGeometries: [Position, layer: string[]][];
7064
7353
  mapView: MapView;
@@ -7074,18 +7363,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7074
7363
  Shapes: Shapes;
7075
7364
  Style: Style;
7076
7365
  Images: Images;
7366
+ get StackedMaps(): import("..").StackedMaps;
7077
7367
  constructor(rendererCore: RendererCore, mapView: MapView);
7078
7368
  updateState<T extends Space | MapObject | Label | Shape | Marker | Door | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
7079
7369
  update: () => void;
7080
7370
  getMapDataInternal(): MapDataInternal | undefined;
7081
7371
  getMapData(): MapData | undefined;
7082
- expand(opts?: {
7083
- excludeFloors: Floor[];
7084
- }): Promise<void> | undefined;
7085
- collapse(): Promise<void> | undefined;
7086
- showStack(opts?: TShowStackOptions): Promise<void> | undefined;
7087
7372
  addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
7088
- setFloor(floor: Floor | string, reason?: TFloorChangeReason): Promise<void> | undefined;
7373
+ setFloor(floor: Floor | string, reason?: TFloorChangeReason): void;
7089
7374
  updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
7090
7375
  get currentFloor(): Floor;
7091
7376
  getState<T extends Space | MapObject | Label | Marker | Shape | Model | Image | string>(target: T): TGetState<T> | undefined;
@@ -7104,7 +7389,106 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7104
7389
  }
7105
7390
  }
7106
7391
 
7392
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7393
+ import type { ParsedMVF } from '@mappedin/mvf';
7394
+ import type { FeatureCollection, LineString, MultiPolygon, Polygon } from 'geojson';
7395
+ import { PubSub } from '@packages/internal/common';
7396
+ import type { Position, AddLabelOptions, RendererCore, PathState, MarkerState, LineStyle, PaintStyle, EntityId } from '@mappedin/core-sdk';
7397
+ import { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
7398
+ import type { Coordinate, Directions, Floor, TAddMarkerOptions, TAddPathOptions, TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
7399
+ import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions, TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src/types';
7400
+ import { type AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
7401
+ import { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
7402
+ import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
7403
+ import type { Path, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
7404
+ import type { Space, Door, PointOfInterest, MapObject, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7405
+ import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
7406
+ export class GeojsonApiMapObject extends PubSub<{
7407
+ 'floor-change': {
7408
+ reason?: TFloorChangeReason;
7409
+ floorId: string;
7410
+ };
7411
+ 'floor-change-start': {
7412
+ floorId: string;
7413
+ };
7414
+ 'navigation-connection-click': {
7415
+ fromFloor?: Floor;
7416
+ toFloor: Floor;
7417
+ instruction: TDirectionInstruction;
7418
+ };
7419
+ 'navigation-active-path-change': {
7420
+ directions: Directions;
7421
+ path: Path;
7422
+ };
7423
+ }> {
7424
+ /** Floors sorted in order of elevation */
7425
+ floors: FloorObject[];
7426
+ /** Map of floors by elevation. Floor elevation does not always match index or is not always contiguous. */
7427
+ floorsByElevation: Map<number, FloorObject>;
7428
+ currentFloorId: string;
7429
+ id: string;
7430
+ renderer: RendererCore;
7431
+ api: GeoJsonApi;
7432
+ mvf: ParsedMVF;
7433
+ styleMap: AggregatedStyleMap;
7434
+ StackedMaps: StackedMaps;
7435
+ get currentFloor(): FloorObject;
7436
+ setFloor(floorId: string, reason?: TFloorChangeReason): void;
7437
+ Models: {
7438
+ add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
7439
+ floorId?: string;
7440
+ }) => (import("@mappedin/core-sdk").GeometryState | import("@mappedin/core-sdk").ModelState)[];
7441
+ remove: (_id: string, _groupId: string) => void;
7442
+ };
7443
+ Images: {
7444
+ add: (target: Position, url: string, opts: TAddImageOptions & {
7445
+ floorId?: string;
7446
+ }) => EntityId<import("../../../geojson/src/components/image").ImageState> | undefined;
7447
+ remove: (id: string) => void;
7448
+ removeAll: () => void;
7449
+ };
7450
+ Markers: {
7451
+ add: (coordinate: Coordinate, html: string, opts: TAddMarkerOptions) => EntityId<MarkerState> | undefined;
7452
+ remove: (id: string) => void;
7453
+ getContentEl: (id: string) => HTMLElement | undefined;
7454
+ removeAll: () => void;
7455
+ setPosition: (id: string, coordinate: Position, targetFloorId: string) => void;
7456
+ animateTo: (id: string, coordinate: Position, targetFloorId: string, options?: TAnimationOptions) => Promise<void>;
7457
+ };
7458
+ Exporter: {
7459
+ getCurrentSceneGLTF: (options: GLTFExportOptions) => Promise<Blob>;
7460
+ };
7461
+ Shapes: {
7462
+ add: <T extends FeatureCollection<Polygon | MultiPolygon | LineString, any>>(geometry: T, style: T extends FeatureCollection<LineString, any> ? LineStyle : PaintStyle, opts: {
7463
+ floorId?: string;
7464
+ }) => string;
7465
+ remove: (customGeometry: Shape) => string;
7466
+ };
7467
+ Labels: {
7468
+ all: ({ onCreate, }: {
7469
+ onCreate: (labelId: string | number, text: string, target: Space | Door | Coordinate | PointOfInterest | MapObject | Node) => void;
7470
+ }) => void;
7471
+ add: (coordinate: Position, text: string, opts?: AddLabelOptions & {
7472
+ floorId?: string;
7473
+ }) => {
7474
+ id: string | number;
7475
+ };
7476
+ remove: (targetId: string) => void;
7477
+ removeAll: () => void;
7478
+ };
7479
+ Paths: {
7480
+ add: (coordinates: Coordinate[], options?: TAddPathOptions) => {
7481
+ paths: EntityId<PathState>[];
7482
+ animation: Promise<void>;
7483
+ };
7484
+ remove: (entityIds: string[]) => void;
7485
+ };
7486
+ constructor(id: string, mvf: any, styleMap: AggregatedStyleMap, options: TShow3DMapOptions | undefined, api: GeoJsonApi);
7487
+ }
7488
+ }
7489
+
7107
7490
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label' {
7491
+ import type { Coordinate, Door, MapObject, Node, PointOfInterest, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7108
7492
  /**
7109
7493
  * Class representing a label on the {@link MapView}.
7110
7494
  *
@@ -7115,7 +7499,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label' {
7115
7499
  * The label's id
7116
7500
  */
7117
7501
  readonly id: string;
7118
- readonly text: any;
7502
+ readonly text: string;
7503
+ readonly target: Space | Door | Coordinate | PointOfInterest | MapObject | Node;
7119
7504
  /**
7120
7505
  * @internal
7121
7506
  */
@@ -7134,11 +7519,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label' {
7134
7519
  /**
7135
7520
  * @internal
7136
7521
  */
7137
- constructor(id: string, text: string);
7522
+ constructor(id: string, text: string, target: Space | Door | Coordinate | PointOfInterest | MapObject | Node);
7138
7523
  }
7139
7524
  }
7140
7525
 
7141
7526
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
7527
+ import type { Coordinate, Door, Node, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7142
7528
  /**
7143
7529
  * Class representing a marker on the {@link MapView}.
7144
7530
  *
@@ -7153,6 +7539,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
7153
7539
  * @internal
7154
7540
  */
7155
7541
  static readonly __type = "Marker";
7542
+ readonly target: Space | Door | Coordinate | Node;
7156
7543
  /**
7157
7544
  * @internal
7158
7545
  */
@@ -7171,16 +7558,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
7171
7558
  /**
7172
7559
  * @internal
7173
7560
  */
7174
- constructor(id: string, contentEl: HTMLElement);
7561
+ constructor(id: string, contentEl: HTMLElement, target: Space | Door | Coordinate | Node);
7175
7562
  }
7176
7563
  }
7177
7564
 
7178
7565
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image' {
7566
+ import type { Coordinate, Door, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7179
7567
  /**
7180
7568
  * Class representing an Image on the {@link MapView}.
7181
7569
  */
7182
7570
  export class Image {
7183
7571
  #private;
7572
+ /**
7573
+ * The image's target
7574
+ */
7575
+ readonly target: Space | Door | Coordinate;
7184
7576
  /**
7185
7577
  * @internal
7186
7578
  */
@@ -7190,16 +7582,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image' {
7190
7582
  */
7191
7583
  readonly __type = "Image";
7192
7584
  /**
7193
- * Checks if the provided instance is of type Marker"
7585
+ * Checks if the provided instance is of type Image"
7194
7586
  *
7195
7587
  * @param instance The instance to check.
7196
- * @returns {boolean} True if the instance is a Marker, false otherwise.
7588
+ * @returns {boolean} True if the instance is a Image, false otherwise.
7197
7589
  */
7198
7590
  static is(instance: object): instance is Image;
7199
7591
  /**
7200
7592
  * @internal
7201
7593
  */
7202
- constructor(id: string, url: string);
7594
+ constructor(id: string, url: string, target: Space | Door | Coordinate);
7203
7595
  /**
7204
7596
  * The image's id
7205
7597
  */
@@ -7247,6 +7639,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model' {
7247
7639
  }
7248
7640
 
7249
7641
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
7642
+ import { type Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7250
7643
  /**
7251
7644
  * Class representing a path on the {@link MapView}.
7252
7645
  *
@@ -7262,131 +7655,49 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
7262
7655
  */
7263
7656
  animation: Promise<void>;
7264
7657
  /**
7265
- * @internal
7266
- */
7267
- readonly __type: 'Path';
7268
- /**
7269
- * @internal
7270
- */
7271
- constructor(id: string, drawAnimation: Promise<void>);
7272
- }
7273
- }
7274
-
7275
- declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape' {
7276
- /**
7277
- * Class representing GeoJSON shape on the {@link MapView}.
7278
- *
7279
- */
7280
- export class Shape {
7281
- /**
7282
- * id of Shape
7283
- */
7284
- readonly id: string;
7285
- /**
7286
- * @internal
7287
- */
7288
- static readonly __type = "Shape";
7289
- /**
7290
- * @internal
7291
- */
7292
- readonly __type = "Shape";
7293
- /**
7294
- * Checks if the provided instance is of type Shape.
7295
- *
7296
- * @param instance The instance to check.
7297
- * @returns {boolean} True if the instance is a Shape, false otherwise.
7658
+ * The coordinates of the path.
7298
7659
  */
7299
- static is(instance: object): instance is Shape;
7660
+ coordinates: Coordinate[];
7300
7661
  /**
7301
7662
  * @internal
7302
7663
  */
7303
- constructor(id: string);
7304
- }
7305
- }
7306
-
7307
- declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7308
- import type { ParsedMVF } from '@mappedin/mvf';
7309
- import type { FeatureCollection, LineString, MultiPolygon, Polygon } from 'geojson';
7310
- import { PubSub } from '@packages/internal/common';
7311
- import type { Position, AddLabelOptions, RendererCore, PathState, MarkerState, LineStyle, PaintStyle, EntityId } from '@mappedin/core-sdk';
7312
- import { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
7313
- import type { Coordinate, TAddMarkerOptions, TAddPathOptions, TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
7314
- import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
7315
- import { type AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
7316
- import { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
7317
- import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
7318
- import type { Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
7319
- export class GeojsonApiMapObject extends PubSub<{
7320
- 'floor-change': {
7321
- reason?: TFloorChangeReason;
7322
- floorId: string;
7323
- };
7324
- 'floor-change-start': {
7325
- floorId: string;
7326
- };
7327
- }> {
7328
- /** Floors sorted in order of elevation */
7329
- floors: FloorObject[];
7330
- /** Map of floors by elevation. Floor elevation does not always match index or is not always contiguous. */
7331
- floorsByElevation: Map<number, FloorObject>;
7332
- currentFloorId: string;
7333
- id: string;
7334
- renderer: RendererCore;
7335
- mvf: ParsedMVF;
7336
- styleMap: AggregatedStyleMap;
7337
- StackedMaps: StackedMaps;
7338
- get currentFloor(): FloorObject;
7339
- setFloor(floorId: string, reason?: TFloorChangeReason): Promise<void> | undefined;
7340
- Models: {
7341
- add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
7342
- floorId?: string;
7343
- }) => (import("@mappedin/core-sdk").GeometryState | import("@mappedin/core-sdk").ModelState)[];
7344
- remove: (_id: string, _groupId: string) => void;
7345
- };
7346
- Images: {
7347
- add: (target: Position, url: string, opts: TAddImageOptions & {
7348
- floorId?: string;
7349
- }) => EntityId<import("@mappedin/core-sdk/src/components/image").ImageState> | undefined;
7350
- remove: (id: string) => void;
7351
- removeAll: () => void;
7352
- };
7353
- Markers: {
7354
- add: (coordinate: Coordinate, html: string, opts: TAddMarkerOptions) => EntityId<MarkerState> | undefined;
7355
- remove: (id: string) => void;
7356
- getContentEl: (id: string) => HTMLElement | undefined;
7357
- removeAll: () => void;
7358
- setPosition: (id: string, coordinate: Position, targetFloorId: string) => void;
7359
- animateTo: (id: string, coordinate: Position, targetFloorId: string, options?: TAnimationOptions) => Promise<void>;
7360
- };
7361
- Exporter: {
7362
- getCurrentSceneGLTF: (options: GLTFExportOptions) => Promise<Blob>;
7363
- };
7364
- Shapes: {
7365
- add: <T extends FeatureCollection<Polygon | MultiPolygon | LineString, any>>(geometry: T, style: T extends FeatureCollection<LineString, any> ? LineStyle : PaintStyle, opts: {
7366
- floorId?: string;
7367
- }) => string;
7368
- remove: (customGeometry: Shape) => string;
7369
- };
7370
- Labels: {
7371
- all: ({ onCreate }: {
7372
- onCreate: (labelId: string | number, text: string) => void;
7373
- }) => void;
7374
- add: (coordinate: Position, text: string, opts?: AddLabelOptions & {
7375
- floorId?: string;
7376
- }) => {
7377
- id: string | number;
7378
- };
7379
- remove: (targetId: string) => void;
7380
- removeAll: () => void;
7381
- };
7382
- Paths: {
7383
- add: (coordinates: Coordinate[], options?: TAddPathOptions) => {
7384
- paths: EntityId<PathState>[];
7385
- animation: Promise<void>;
7386
- };
7387
- remove: (entityIds: string[]) => void;
7388
- };
7389
- constructor(id: string, mvf: any, styleMap: AggregatedStyleMap, options: TShow3DMapOptions | undefined, renderer: RendererCore);
7664
+ readonly __type: 'Path';
7665
+ /**
7666
+ * @internal
7667
+ */
7668
+ constructor(id: string, drawAnimation: Promise<void>, coordinates: Coordinate[]);
7669
+ }
7670
+ }
7671
+
7672
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape' {
7673
+ /**
7674
+ * Class representing GeoJSON shape on the {@link MapView}.
7675
+ *
7676
+ */
7677
+ export class Shape {
7678
+ /**
7679
+ * id of Shape
7680
+ */
7681
+ readonly id: string;
7682
+ /**
7683
+ * @internal
7684
+ */
7685
+ static readonly __type = "Shape";
7686
+ /**
7687
+ * @internal
7688
+ */
7689
+ readonly __type = "Shape";
7690
+ /**
7691
+ * Checks if the provided instance is of type Shape.
7692
+ *
7693
+ * @param instance The instance to check.
7694
+ * @returns {boolean} True if the instance is a Shape, false otherwise.
7695
+ */
7696
+ static is(instance: object): instance is Shape;
7697
+ /**
7698
+ * @internal
7699
+ */
7700
+ constructor(id: string);
7390
7701
  }
7391
7702
  }
7392
7703
 
@@ -7402,6 +7713,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
7402
7713
  constructor(rendererCore: RendererCore);
7403
7714
  setScreenOffsets(padding: InsetPadding): void;
7404
7715
  get screenOffsets(): InsetPadding;
7716
+ /**
7717
+ * The camera's current pan mode.
7718
+ */
7719
+ get panMode(): "default" | "elevation";
7720
+ /**
7721
+ * Set the camera's pan mode. 'elevation' moves the camera up and down, while 'default' allows the camera to pan along the ground.
7722
+ * @experimental
7723
+ * @param panMode The new pan mode.
7724
+ */
7725
+ setPanMode(panMode: 'default' | 'elevation'): void;
7405
7726
  /**
7406
7727
  * Focuses the camera on a specific target or array of targets.
7407
7728
  *
@@ -7499,6 +7820,23 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
7499
7820
  * @default 12
7500
7821
  */
7501
7822
  setMaxZoomLevel: (zoomLevel: number) => void;
7823
+ /**
7824
+ * Set the camera's elevation in meters.
7825
+ * @experimental
7826
+ * @param elevation The new elevation in meters.
7827
+ */
7828
+ setElevation(elevation: number): void;
7829
+ /**
7830
+ * The current elevation of the camera in meters.
7831
+ */
7832
+ get elevation(): number;
7833
+ /**
7834
+ * Animate the camera's elevation to a specified elevation.
7835
+ * @experimental
7836
+ * @param elevation The target elevation in meters.
7837
+ * @param options Optional settings for the camera animation.
7838
+ */
7839
+ animateElevation(elevation: number, options?: TCameraAnimationOptions): Promise<void>;
7502
7840
  }
7503
7841
  }
7504
7842
 
@@ -7752,6 +8090,216 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/paths' {
7752
8090
  export {};
7753
8091
  }
7754
8092
 
8093
+ declare module '@mappedin/react-sdk/mappedin-js/src/navigation/index' {
8094
+ import { type TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src';
8095
+ import type { Directions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
8096
+ import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
8097
+ import { Path, Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8098
+ import type { RendererCore } from '@mappedin/core-sdk';
8099
+ /**
8100
+ * Options for navigation.
8101
+ */
8102
+ export type TNavigationOptions = {
8103
+ /**
8104
+ * Controls whether the map should be set to the floor of the connection point when a connection point is clicked.
8105
+ * @default true
8106
+ */
8107
+ setMapOnConnectionClick?: boolean;
8108
+ /**
8109
+ * Controls whether markers are created for the departure, destination, and connection points.
8110
+ */
8111
+ createMarkers?: {
8112
+ /**
8113
+ * Controls whether a marker is created for the departure point and allows a custom marker to be created.
8114
+ * @default true
8115
+ */
8116
+ departure?: boolean | ((instruction: TDirectionInstruction) => Marker);
8117
+ /**
8118
+ * Controls whether a marker is created for the destination point and allows a custom marker to be created.
8119
+ * @default true
8120
+ */
8121
+ destination?: boolean | ((instruction: TDirectionInstruction) => Marker);
8122
+ /**
8123
+ * Controls whether markers are created for connection points and allows a custom marker to be created.
8124
+ * @default true
8125
+ */
8126
+ connection?: boolean | ((instruction: TDirectionInstruction) => Marker);
8127
+ };
8128
+ /**
8129
+ * Path Options for the non-current path in multi-destination mode.
8130
+ */
8131
+ inactivePathOptions?: {
8132
+ /**
8133
+ * Duration in milliseconds for the path to be drawn.
8134
+ * @default 1000
8135
+ */
8136
+ drawDuration?: number;
8137
+ /**
8138
+ * The color of the path.
8139
+ * @default '#40A9FF'
8140
+ */
8141
+ color?: string;
8142
+ /**
8143
+ * Whether the path should be clickable.
8144
+ *
8145
+ * @defaultValue false
8146
+ */
8147
+ interactive?: boolean;
8148
+ /**
8149
+ * The accent color of the path. This is applied to arrows if they are displayed
8150
+ * @default 'blue'
8151
+ */
8152
+ accentColor?: string;
8153
+ /**
8154
+ * The radius of the path near the markers.
8155
+ * @default 0.25
8156
+ */
8157
+ nearRadius?: number;
8158
+ /**
8159
+ * The radius of the path far from the markers.
8160
+ * @default 1
8161
+ */
8162
+ farRadius?: number;
8163
+ /**
8164
+ * Controls whether arrows are displayed on the path.
8165
+ * @default false
8166
+ */
8167
+ displayArrowsOnPath?: boolean;
8168
+ /**
8169
+ * Controls whether arrows are animated.
8170
+ * @default false
8171
+ */
8172
+ animateArrowsOnPath?: boolean;
8173
+ };
8174
+ /**
8175
+ * Options for the path.
8176
+ */
8177
+ pathOptions?: {
8178
+ /**
8179
+ * Duration in milliseconds for the path to be drawn.
8180
+ * @default 1000
8181
+ */
8182
+ drawDuration?: number;
8183
+ /**
8184
+ * The color of the path.
8185
+ * @default '#40A9FF'
8186
+ */
8187
+ color?: string;
8188
+ /**
8189
+ * Whether the path should be clickable.
8190
+ *
8191
+ * @defaultValue false
8192
+ */
8193
+ interactive?: boolean;
8194
+ /**
8195
+ * The accent color of the path. This is applied to arrows if they are displayed
8196
+ * @default 'blue'
8197
+ */
8198
+ accentColor?: string;
8199
+ /**
8200
+ * The radius of the path near the markers.
8201
+ * @default 0.25
8202
+ */
8203
+ nearRadius?: number;
8204
+ /**
8205
+ * The radius of the path far from the markers.
8206
+ * @default 1
8207
+ */
8208
+ farRadius?: number;
8209
+ /**
8210
+ * Controls whether arrows are displayed on the path.
8211
+ * @default false
8212
+ */
8213
+ displayArrowsOnPath?: boolean;
8214
+ /**
8215
+ * Controls whether arrows are animated.
8216
+ * @default false
8217
+ */
8218
+ animateArrowsOnPath?: boolean;
8219
+ };
8220
+ /**
8221
+ * Options for the markers at the departure and destination.
8222
+ */
8223
+ markerOptions?: {
8224
+ /**
8225
+ * The color of the departure marker.
8226
+ * @default '#1890FF'
8227
+ */
8228
+ departureColor?: string;
8229
+ /**
8230
+ * The color of the destination marker.
8231
+ * @default '#722ED1'
8232
+ */
8233
+ destinationColor?: string;
8234
+ };
8235
+ };
8236
+ export class Navigation {
8237
+ #private;
8238
+ /**
8239
+ * @internal
8240
+ */
8241
+ get currentMap(): GeojsonApiMapObject;
8242
+ /**
8243
+ * Returns true if the navigation is for a multi-floor path.
8244
+ */
8245
+ get isMultiFloor(): boolean;
8246
+ /**
8247
+ * @internal
8248
+ */
8249
+ constructor(core: RendererCore, currentMapGetter: CurrentMapGetter);
8250
+ /**
8251
+ * @internal
8252
+ */
8253
+ getPathById(id: string): {
8254
+ path: Path;
8255
+ entityIds: string[];
8256
+ } | undefined;
8257
+ /**
8258
+ * @internal
8259
+ */
8260
+ getMarkerById(id: string): {
8261
+ instruction: TDirectionInstruction;
8262
+ marker: Marker;
8263
+ } | undefined;
8264
+ /**
8265
+ * @internal
8266
+ */
8267
+ get paths(): Path[];
8268
+ /**
8269
+ * The currently active directions.
8270
+ */
8271
+ get activeDirections(): Directions | undefined;
8272
+ /**
8273
+ * The currently active path.
8274
+ */
8275
+ get activePath(): Path | undefined;
8276
+ /**
8277
+ * Sets the active path by index.
8278
+ */
8279
+ setActivePathByIndex(target: number): void;
8280
+ /**
8281
+ * Sets the active path.
8282
+ */
8283
+ setActivePath(target: Path): void;
8284
+ /**
8285
+ * Sets the active path by directions.
8286
+ */
8287
+ setActivePathByDirections(target: Directions): void;
8288
+ /**
8289
+ * Draws the specified directions on the map.
8290
+ * @param directions The directions to be drawn.
8291
+ * @param options Optional additional options for the navigation.
8292
+ */
8293
+ draw(directions: Directions | Directions[], options?: TNavigationOptions): Promise<unknown>;
8294
+ /**
8295
+ * Clears any drawn navigation paths or directions from the map.
8296
+ */
8297
+ clear(): void;
8298
+ }
8299
+ type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
8300
+ export {};
8301
+ }
8302
+
7755
8303
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/exporter' {
7756
8304
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
7757
8305
  import type { GLTFExportOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -8183,7 +8731,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search/internal' {
8183
8731
  enabled?: boolean | undefined;
8184
8732
  } | undefined;
8185
8733
  }>;
8734
+ /**
8735
+ * @interface
8736
+ */
8186
8737
  export type SearchOptions = z.infer<typeof searchOptionsSchema>;
8738
+ /**
8739
+ * @interface
8740
+ */
8187
8741
  export type SuggestOptions = z.infer<typeof suggestOptionsSchema>;
8188
8742
  export { Suggestion, MatchInfo };
8189
8743
  }
@@ -8199,6 +8753,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search/external' {
8199
8753
  * @default false
8200
8754
  */
8201
8755
  enabled: boolean;
8756
+ /**
8757
+ * @internal
8758
+ */
8202
8759
  constructor(mapData: MapData, mapDataInternal: MapDataInternal, { enabled }?: {
8203
8760
  enabled?: boolean;
8204
8761
  });
@@ -9009,6 +9566,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
9009
9566
  import type { BufferGeometry } from 'three';
9010
9567
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
9011
9568
  import { Geometry3D, Geometry3DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
9569
+ import { type MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
9012
9570
  import type { Feature, LineString, MultiPolygon, Point, Polygon } from 'geojson';
9013
9571
  import type { LineStyle, ModelProperties, ModelStyle, PaintStyle } from '@mappedin/react-sdk/geojson/src/types';
9014
9572
  import type { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
@@ -9021,7 +9579,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
9021
9579
  loader?: GLTFLoader;
9022
9580
  constructor(state: RendererState, convertTo3DMapPosition: any);
9023
9581
  getGLTFLoader(): Promise<void>;
9024
- createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon>, style?: LineStyle | PaintStyle): Geometry3D;
9582
+ createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D;
9025
9583
  createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: ModelStyle): Geometry3D;
9026
9584
  populateEntityMesh(entity: Geometry3D, geometry: BufferGeometry): void;
9027
9585
  populateModelGroup(entities: Set<string | number>, url: string, tree: any): Promise<Geometry3DObject3D>;
@@ -9516,6 +10074,16 @@ declare module '@mappedin/react-sdk/geojson/src/systems/pre-render/system' {
9516
10074
  }
9517
10075
  }
9518
10076
 
10077
+ declare module '@mappedin/react-sdk/geojson/src/systems/polygon-label/system' {
10078
+ import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10079
+ import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
10080
+ export const DEFAULT_VERTICAL_OFFSET = 0.01;
10081
+ export class PolygonLabelSystem {
10082
+ constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
10083
+ update(cameraRotationRadians: number): void;
10084
+ }
10085
+ }
10086
+
9519
10087
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src' {
9520
10088
  export { Navigator } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator';
9521
10089
  export type { SimplifyDirectionsOptions } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/navigator';
@@ -9713,7 +10281,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/style' {
9713
10281
  topTexture?: string;
9714
10282
  outline: boolean;
9715
10283
  showImage: boolean;
10284
+ showTextLabel: boolean;
9716
10285
  flipImageToFaceCamera: boolean;
10286
+ flipTextToFaceCamera: boolean;
9717
10287
  url?: string;
9718
10288
  };
9719
10289
  export class StyleComponent implements Style {
@@ -9734,7 +10304,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/style' {
9734
10304
  cap: LineStyle['cap'];
9735
10305
  outline: boolean;
9736
10306
  showImage: boolean;
10307
+ showTextLabel: boolean;
9737
10308
  flipImageToFaceCamera: boolean;
10309
+ flipTextToFaceCamera: boolean;
9738
10310
  url?: string;
9739
10311
  constructor(style?: Partial<Style>);
9740
10312
  }
@@ -10148,7 +10720,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
10148
10720
  * Returns true if the camera is currently animating.
10149
10721
  * @return {Boolean} True if the camera is animating, false otherwise.
10150
10722
  */
10151
- isAnimating: () => boolean;
10723
+ get isAnimating(): any;
10152
10724
  /**
10153
10725
  * Returns true if the camera is currently moving (it's animating, the user is manipulating it).
10154
10726
  *
@@ -10488,7 +11060,6 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/types' {
10488
11060
 
10489
11061
  declare module '@mappedin/react-sdk/geojson/src/systems/camera/constants' {
10490
11062
  export const MAPLIBRE_TILE_SIZE = 512;
10491
- export const EARTH_RADIUS_M = 6371008.8;
10492
11063
  export const MIN_LAT = -85.051129;
10493
11064
  export const MAX_LAT = 85.051129;
10494
11065
  export const CLIPPING_RADIUS = 10000;