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

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,21 +1,21 @@
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
18
17
  // ../react/@packages/internal/shave-text/shave-text
18
+ // ../react/@tweenjs/tween.js
19
19
  // ../react/@turf/turf
20
20
  // ../react/@packages/internal/quad-tree
21
21
  // ../react/@packages/internal/outdoor-context-v4
@@ -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 1000
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
  */
@@ -5458,6 +5725,7 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
5458
5725
  import type { ImageState } from '@mappedin/react-sdk/geojson/src/components/image';
5459
5726
  import type { ShapeState } from '@mappedin/react-sdk/geojson/src/components/custom';
5460
5727
  import type { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities';
5728
+ import type { Group as TweenGroup } from '@tweenjs/tween.js';
5461
5729
  /**
5462
5730
  * The state of an entity, which can be a geometry, geometry group, group container, path, model, label, or marker.
5463
5731
  */
@@ -5743,16 +6011,20 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
5743
6011
  pixelRatio: number;
5744
6012
  canvasWidth: number;
5745
6013
  canvasHeight: number;
6014
+ /** Global group for all tweens */
6015
+ tweenGroup: TweenGroup;
5746
6016
  };
5747
6017
  }
5748
6018
 
5749
6019
  declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
5750
- import type { Texture, BufferGeometry, LineSegments, Mesh } from 'three';
6020
+ import type { Texture, BufferGeometry, LineSegments, Mesh, Object3D } from 'three';
5751
6021
  import { BatchedMesh, Color, Vector3 } from 'three';
5752
6022
  import type { BatchedStandardMaterial } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/batched-material';
5753
6023
  import type { Position } from '@mappedin/react-sdk/geojson/src/types';
5754
- import type { Feature, LineString, MultiLineString, MultiPolygon, Polygon } from 'geojson';
6024
+ import type { Feature, LineString, MultiLineString, MultiPolygon, Polygon, Position as GeoJsonPosition } from 'geojson';
5755
6025
  import type { BBox } from '@turf/turf';
6026
+ import { type ImageProperties } from '@mappedin/react-sdk/geojson/src/components/image';
6027
+ import { type BaseTextAreaProperties } from '@mappedin/mvf';
5756
6028
  export class EntityBatchedMesh extends BatchedMesh {
5757
6029
  userData: {
5758
6030
  entities: {
@@ -5761,6 +6033,15 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
5761
6033
  detached?: boolean;
5762
6034
  };
5763
6035
  }
6036
+ export type MeshComponentProperties = {
6037
+ image?: ImageProperties & {
6038
+ position: GeoJsonPosition;
6039
+ path: string;
6040
+ };
6041
+ textArea?: BaseTextAreaProperties & {
6042
+ position: GeoJsonPosition;
6043
+ };
6044
+ };
5764
6045
  /**
5765
6046
  * State representing a Geometry
5766
6047
  */
@@ -5839,15 +6120,16 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
5839
6120
  focusMesh?: Mesh;
5840
6121
  outline?: LineSegments;
5841
6122
  imageMesh?: Mesh;
6123
+ textAreaMesh?: Object3D;
5842
6124
  readonly type = "geometry";
5843
6125
  dirty: boolean;
5844
6126
  detached: boolean;
5845
6127
  instanceIndex: number;
5846
6128
  geometry?: BufferGeometry;
5847
6129
  material?: BatchedStandardMaterial;
5848
- feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString>;
6130
+ feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>;
5849
6131
  currentHeight: number;
5850
- constructor(feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString>);
6132
+ constructor(feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>);
5851
6133
  get visible(): boolean;
5852
6134
  set visible(visible: boolean);
5853
6135
  setOpacity(opacity: number): void;
@@ -6240,6 +6522,8 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
6240
6522
  import { MeshDetachmentSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system';
6241
6523
  import { MeshModificationSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system';
6242
6524
  import { PreRenderSystem } from '@mappedin/react-sdk/geojson/src/systems/pre-render/system';
6525
+ import { PolygonLabelSystem } from '@mappedin/react-sdk/geojson/src/systems/polygon-label/system';
6526
+ import { Group as TweenGroup } from '@tweenjs/tween.js';
6243
6527
  export type * from '@mappedin/react-sdk/geojson/src/types';
6244
6528
  export const raycaster: Raycaster;
6245
6529
  /**
@@ -6282,6 +6566,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
6282
6566
  meshDetachmentSystem: MeshDetachmentSystem;
6283
6567
  meshModificationSystem: MeshModificationSystem;
6284
6568
  preRenderSystem: PreRenderSystem;
6569
+ polygonLabelSystem: PolygonLabelSystem;
6285
6570
  };
6286
6571
  export type MapViewState = {
6287
6572
  readonly type: 'map-view';
@@ -6497,6 +6782,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
6497
6782
  * @internal for testing
6498
6783
  */
6499
6784
  getInternalState(): RendererState;
6785
+ getTweenGroup(): TweenGroup;
6500
6786
  /**
6501
6787
  * Subscribe a function to an event.
6502
6788
  *
@@ -6549,29 +6835,29 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
6549
6835
  import { type InsetPadding, type Position } from '@mappedin/react-sdk/geojson/src/types';
6550
6836
  import type { InsetPaddingOption, RendererState, Systems } from '@mappedin/react-sdk/geojson/src/renderer';
6551
6837
  export type EasingCurve = 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear';
6552
- export type FocusOnOptions = {
6838
+ export type AnimationOptions = {
6839
+ duration?: number;
6840
+ easing?: EasingCurve;
6841
+ };
6842
+ export type FocusOnOptions = AnimationOptions & {
6553
6843
  bearing?: number;
6554
6844
  pitch?: number;
6555
- duration?: number;
6556
6845
  padding?: InsetPaddingOption;
6557
6846
  minZoomLevel?: number;
6558
6847
  maxZoomLevel?: number;
6559
- easing?: EasingCurve;
6560
6848
  };
6561
- export type AnimateToOptions = {
6849
+ export type AnimateToOptions = AnimationOptions & {
6562
6850
  center?: Position;
6563
6851
  zoomLevel?: number;
6564
6852
  bearing?: number;
6565
6853
  pitch?: number;
6566
6854
  elevation?: number;
6567
- duration?: number;
6568
- easing?: EasingCurve;
6569
6855
  };
6570
6856
  export const ANIMATION_TWEENS: {
6571
- linear: any;
6572
- 'ease-in': any;
6573
- 'ease-out': any;
6574
- 'ease-in-out': any;
6857
+ linear: (amount: number) => number;
6858
+ 'ease-in': (amount: number) => number;
6859
+ 'ease-out': (amount: number) => number;
6860
+ 'ease-in-out': (amount: number) => number;
6575
6861
  };
6576
6862
  export class Camera {
6577
6863
  #private;
@@ -6595,6 +6881,14 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
6595
6881
  * Set the camera's zoom level in mercator zoom level units.
6596
6882
  */
6597
6883
  setZoomLevel(zoomLevel: number): void;
6884
+ /**
6885
+ * Whether the camera is animating.
6886
+ */
6887
+ get isAnimating(): boolean;
6888
+ /**
6889
+ * Cancel the last animation.
6890
+ */
6891
+ cancelAnimation(): void;
6598
6892
  /**
6599
6893
  * How far the camera can zoom in towards the ground
6600
6894
  */
@@ -6668,11 +6962,26 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
6668
6962
  * @param elevation The elevation in meters.
6669
6963
  */
6670
6964
  setElevation(elevation: number): void;
6965
+ /**
6966
+ * Animate the camera's elevation to a new value.
6967
+ * @param elevation The new elevation in meters.
6968
+ * @param options The animation options.
6969
+ */
6970
+ animateElevation(elevation: number, options?: AnimationOptions): Promise<void>;
6671
6971
  /**
6672
6972
  * The padding around the edges of the map when focusing on a set of coordinates.
6673
6973
  */
6674
6974
  get insetsPadding(): InsetPadding;
6675
6975
  /**
6976
+ * The camera's current pan mode.
6977
+ */
6978
+ get panMode(): "elevation" | "default";
6979
+ /**
6980
+ * Set the camera's pan mode. 'elevation' moves the camera up and down, while 'default' allows the camera to pan along the ground.
6981
+ */
6982
+ setPanMode(panMode: 'default' | 'elevation'): void;
6983
+ /**
6984
+ *
6676
6985
  * @param padding The padding around the edges of the map when focusing on a set of coordinates (in screen pixels).
6677
6986
  */
6678
6987
  setInsetPadding(padding: InsetPadding): void;
@@ -6738,33 +7047,33 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
6738
7047
  import type { Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
6739
7048
  import type { Camera } from '@mappedin/react-sdk/geojson/src/camera';
6740
7049
  export function cartesianToGeographic(centerLat: number, centerLon: number, x: number, y: number): {
6741
- lat: number;
6742
- lon: number;
7050
+ lat: number;
7051
+ lon: number;
6743
7052
  };
6744
7053
  export function geographicToCartesian(centerLat: number, centerLon: number, targetLat: number, targetLon: number): {
6745
- x: number;
6746
- y: number;
7054
+ x: number;
7055
+ y: number;
6747
7056
  };
6748
7057
  export const populateGeometry3DIdsInScene: (tree: any, entities: RendererState["geometry3DIdsInScene"]) => Set<string | number>;
6749
7058
  export const populateGeometry2DIdsInScene: (tree: any, entities: Set<Geometry2D["id"]>) => Set<string | number>;
6750
7059
  export function convertMapLibreStylePaintProps(paint: any): {
6751
- color: any;
6752
- height: any;
6753
- altitude: any;
6754
- opacity: any;
6755
- outline: any;
7060
+ color: any;
7061
+ height: any;
7062
+ altitude: any;
7063
+ opacity: any;
7064
+ outline: any;
6756
7065
  };
6757
7066
  export function convertMapLibreLineStylePaintProps(paint: any): {
6758
- color: any;
6759
- join: any;
6760
- opacity: any;
6761
- width: any;
6762
- cap: any;
7067
+ color: any;
7068
+ join: any;
7069
+ opacity: any;
7070
+ width: any;
7071
+ cap: any;
6763
7072
  };
6764
7073
  export function mergeObjects<T extends Record<string, any>>(obj1: T, obj2: T): T;
6765
7074
  export function createCustomLayer(modelAsMercatorCoordinate: MercatorCoordinate, viewCamera: THREECamera, camera: Camera, onRender: () => void): CustomLayerInterface;
6766
7075
  export function getRequestHeaders(authURL: string): Promise<{
6767
- 'x-mappedin-tiles-key': string;
7076
+ 'x-mappedin-tiles-key': string;
6768
7077
  }>;
6769
7078
  export function cyrb53(str: string, seed?: number): number;
6770
7079
  export const linearEase: (t: number) => number;
@@ -6776,46 +7085,32 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
6776
7085
  /* getProjectionScaleFactor()
6777
7086
  /* finds the scale ratio between screen coordinates and 3D coordinates (in X-Z plane)
6778
7087
  /*
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
- */
7088
+ * R
7089
+ * /|
7090
+ * C : Camera / |
7091
+ * PQ : Projection Plane / |
7092
+ * OR : Origin / |
7093
+ * F : FOV / |
7094
+ * Q / |
7095
+ * /| |
7096
+ * / | |
7097
+ * / | |
7098
+ * / | |
7099
+ * / | |
7100
+ * / F/2 | |
7101
+ * C ------------P------------ O
7102
+ *
7103
+ *
7104
+ * ProjectionScaleFactor = ( OR / PQ )
7105
+ * PQ = canvasHeight / 2
7106
+ * CQ = zoom
7107
+ *
7108
+ * OR / C0 = tan(F/2)
7109
+ * so OR = CO * tan(F/2)
7110
+ */
6802
7111
  export function getProjectionScaleFactor(FOV: number, canvasHeight: number, zoom: number): number;
6803
7112
  export function getGeometryByGeometryId(state: RendererState, geometryOrGeometryId?: string | number | Record<string, any>): Geometry3D | GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | undefined;
6804
7113
  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
7114
  export { getCornersOfBoundingBox } from '@mappedin/react-sdk/geojson/src/utils/bounding-box';
6820
7115
  export function isFiniteBox(box: Box2 | Box3): boolean;
6821
7116
  export { getPixelRatio } from '@mappedin/react-sdk/geojson/src/utils/get-pixel-ratio';
@@ -6826,7 +7121,6 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
6826
7121
  }
6827
7122
 
6828
7123
  declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
6829
- export const EARTH_RADIUS_M = 6371008.8;
6830
7124
  export const MAPPEDIN_LAYER_ID = "mappedin";
6831
7125
  export enum ENTITY_3D_LAYERS {
6832
7126
  DEFAULT = 0,
@@ -7050,7 +7344,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7050
7344
  import { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
7051
7345
  import { Style } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/style';
7052
7346
  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
7347
  export class GeoJsonApi {
7055
7348
  core: RendererCore;
7056
7349
  outdoors: GeojsonApiMapObject;
@@ -7059,6 +7352,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7059
7352
  mapDataExternal: {
7060
7353
  [key in string]: MapData;
7061
7354
  };
7355
+ mapData?: MapData;
7062
7356
  currentMap?: GeojsonApiMapObject;
7063
7357
  hiddenOutdoorGeometries: [Position, layer: string[]][];
7064
7358
  mapView: MapView;
@@ -7074,18 +7368,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7074
7368
  Shapes: Shapes;
7075
7369
  Style: Style;
7076
7370
  Images: Images;
7371
+ get StackedMaps(): import("..").StackedMaps;
7077
7372
  constructor(rendererCore: RendererCore, mapView: MapView);
7078
7373
  updateState<T extends Space | MapObject | Label | Shape | Marker | Door | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
7079
7374
  update: () => void;
7080
7375
  getMapDataInternal(): MapDataInternal | undefined;
7081
7376
  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
7377
  addMap(mapData: MapData, options?: TShow3DMapOptions): Promise<MapData>;
7088
- setFloor(floor: Floor | string, reason?: TFloorChangeReason): Promise<void> | undefined;
7378
+ setFloor(floor: Floor | string, reason?: TFloorChangeReason): void;
7089
7379
  updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
7090
7380
  get currentFloor(): Floor;
7091
7381
  getState<T extends Space | MapObject | Label | Marker | Shape | Model | Image | string>(target: T): TGetState<T> | undefined;
@@ -7104,7 +7394,106 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7104
7394
  }
7105
7395
  }
7106
7396
 
7397
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7398
+ import type { ParsedMVF } from '@mappedin/mvf';
7399
+ import type { FeatureCollection, LineString, MultiPolygon, Polygon } from 'geojson';
7400
+ import { PubSub } from '@packages/internal/common';
7401
+ import type { Position, AddLabelOptions, RendererCore, PathState, MarkerState, LineStyle, PaintStyle, EntityId } from '@mappedin/core-sdk';
7402
+ import { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
7403
+ import type { Coordinate, Directions, Floor, TAddMarkerOptions, TAddPathOptions, TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
7404
+ import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions, TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src/types';
7405
+ import { type AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
7406
+ import { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
7407
+ import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
7408
+ import type { Path, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
7409
+ import type { Space, Door, PointOfInterest, MapObject, Node } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7410
+ import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
7411
+ export class GeojsonApiMapObject extends PubSub<{
7412
+ 'floor-change': {
7413
+ reason?: TFloorChangeReason;
7414
+ floorId: string;
7415
+ };
7416
+ 'floor-change-start': {
7417
+ floorId: string;
7418
+ };
7419
+ 'navigation-connection-click': {
7420
+ fromFloor?: Floor;
7421
+ toFloor: Floor;
7422
+ instruction: TDirectionInstruction;
7423
+ };
7424
+ 'navigation-active-path-change': {
7425
+ directions: Directions;
7426
+ path: Path;
7427
+ };
7428
+ }> {
7429
+ /** Floors sorted in order of elevation */
7430
+ floors: FloorObject[];
7431
+ /** Map of floors by elevation. Floor elevation does not always match index or is not always contiguous. */
7432
+ floorsByElevation: Map<number, FloorObject>;
7433
+ currentFloorId: string;
7434
+ id: string;
7435
+ renderer: RendererCore;
7436
+ api: GeoJsonApi;
7437
+ mvf: ParsedMVF;
7438
+ styleMap: AggregatedStyleMap;
7439
+ StackedMaps: StackedMaps;
7440
+ get currentFloor(): FloorObject;
7441
+ setFloor(floorId: string, reason?: TFloorChangeReason): void;
7442
+ Models: {
7443
+ add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
7444
+ floorId?: string;
7445
+ }) => (import("@mappedin/core-sdk").GeometryState | import("@mappedin/core-sdk").ModelState)[];
7446
+ remove: (_id: string, _groupId: string) => void;
7447
+ };
7448
+ Images: {
7449
+ add: (target: Position, url: string, opts: TAddImageOptions & {
7450
+ floorId?: string;
7451
+ }) => EntityId<import("../../../geojson/src/components/image").ImageState> | undefined;
7452
+ remove: (id: string) => void;
7453
+ removeAll: () => void;
7454
+ };
7455
+ Markers: {
7456
+ add: (coordinate: Coordinate, html: string, opts: TAddMarkerOptions) => EntityId<MarkerState> | undefined;
7457
+ remove: (id: string) => void;
7458
+ getContentEl: (id: string) => HTMLElement | undefined;
7459
+ removeAll: () => void;
7460
+ setPosition: (id: string, coordinate: Position, targetFloorId: string) => void;
7461
+ animateTo: (id: string, coordinate: Position, targetFloorId: string, options?: TAnimationOptions) => Promise<void>;
7462
+ };
7463
+ Exporter: {
7464
+ getCurrentSceneGLTF: (options: GLTFExportOptions) => Promise<Blob>;
7465
+ };
7466
+ Shapes: {
7467
+ add: <T extends FeatureCollection<Polygon | MultiPolygon | LineString, any>>(geometry: T, style: T extends FeatureCollection<LineString, any> ? LineStyle : PaintStyle, opts: {
7468
+ floorId?: string;
7469
+ }) => string;
7470
+ remove: (customGeometry: Shape) => string;
7471
+ };
7472
+ Labels: {
7473
+ all: ({ onCreate, }: {
7474
+ onCreate: (labelId: string | number, text: string, target: Space | Door | Coordinate | PointOfInterest | MapObject | Node) => void;
7475
+ }) => void;
7476
+ add: (coordinate: Position, text: string, opts?: AddLabelOptions & {
7477
+ floorId?: string;
7478
+ }) => {
7479
+ id: string | number;
7480
+ };
7481
+ remove: (targetId: string) => void;
7482
+ removeAll: () => void;
7483
+ };
7484
+ Paths: {
7485
+ add: (coordinates: Coordinate[], options?: TAddPathOptions) => {
7486
+ paths: EntityId<PathState>[];
7487
+ animation: Promise<void>;
7488
+ };
7489
+ remove: (entityIds: string[]) => void;
7490
+ };
7491
+ constructor(id: string, mvf: any, styleMap: AggregatedStyleMap, options: TShow3DMapOptions | undefined, api: GeoJsonApi);
7492
+ }
7493
+ }
7494
+
7107
7495
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label' {
7496
+ import type { Coordinate, Door, MapObject, Node, PointOfInterest, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7108
7497
  /**
7109
7498
  * Class representing a label on the {@link MapView}.
7110
7499
  *
@@ -7115,7 +7504,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label' {
7115
7504
  * The label's id
7116
7505
  */
7117
7506
  readonly id: string;
7118
- readonly text: any;
7507
+ readonly text: string;
7508
+ readonly target: Space | Door | Coordinate | PointOfInterest | MapObject | Node;
7119
7509
  /**
7120
7510
  * @internal
7121
7511
  */
@@ -7134,11 +7524,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label' {
7134
7524
  /**
7135
7525
  * @internal
7136
7526
  */
7137
- constructor(id: string, text: string);
7527
+ constructor(id: string, text: string, target: Space | Door | Coordinate | PointOfInterest | MapObject | Node);
7138
7528
  }
7139
7529
  }
7140
7530
 
7141
7531
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
7532
+ import type { Coordinate, Door, Node, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7142
7533
  /**
7143
7534
  * Class representing a marker on the {@link MapView}.
7144
7535
  *
@@ -7153,6 +7544,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
7153
7544
  * @internal
7154
7545
  */
7155
7546
  static readonly __type = "Marker";
7547
+ readonly target: Space | Door | Coordinate | Node;
7156
7548
  /**
7157
7549
  * @internal
7158
7550
  */
@@ -7171,16 +7563,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker' {
7171
7563
  /**
7172
7564
  * @internal
7173
7565
  */
7174
- constructor(id: string, contentEl: HTMLElement);
7566
+ constructor(id: string, contentEl: HTMLElement, target: Space | Door | Coordinate | Node);
7175
7567
  }
7176
7568
  }
7177
7569
 
7178
7570
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image' {
7571
+ import type { Coordinate, Door, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7179
7572
  /**
7180
7573
  * Class representing an Image on the {@link MapView}.
7181
7574
  */
7182
7575
  export class Image {
7183
7576
  #private;
7577
+ /**
7578
+ * The image's target
7579
+ */
7580
+ readonly target: Space | Door | Coordinate;
7184
7581
  /**
7185
7582
  * @internal
7186
7583
  */
@@ -7190,16 +7587,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image' {
7190
7587
  */
7191
7588
  readonly __type = "Image";
7192
7589
  /**
7193
- * Checks if the provided instance is of type Marker"
7590
+ * Checks if the provided instance is of type Image"
7194
7591
  *
7195
7592
  * @param instance The instance to check.
7196
- * @returns {boolean} True if the instance is a Marker, false otherwise.
7593
+ * @returns {boolean} True if the instance is a Image, false otherwise.
7197
7594
  */
7198
7595
  static is(instance: object): instance is Image;
7199
7596
  /**
7200
7597
  * @internal
7201
7598
  */
7202
- constructor(id: string, url: string);
7599
+ constructor(id: string, url: string, target: Space | Door | Coordinate);
7203
7600
  /**
7204
7601
  * The image's id
7205
7602
  */
@@ -7247,6 +7644,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model' {
7247
7644
  }
7248
7645
 
7249
7646
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
7647
+ import { type Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7250
7648
  /**
7251
7649
  * Class representing a path on the {@link MapView}.
7252
7650
  *
@@ -7262,131 +7660,49 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
7262
7660
  */
7263
7661
  animation: Promise<void>;
7264
7662
  /**
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.
7663
+ * The coordinates of the path.
7298
7664
  */
7299
- static is(instance: object): instance is Shape;
7665
+ coordinates: Coordinate[];
7300
7666
  /**
7301
7667
  * @internal
7302
7668
  */
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);
7669
+ readonly __type: 'Path';
7670
+ /**
7671
+ * @internal
7672
+ */
7673
+ constructor(id: string, drawAnimation: Promise<void>, coordinates: Coordinate[]);
7674
+ }
7675
+ }
7676
+
7677
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape' {
7678
+ /**
7679
+ * Class representing GeoJSON shape on the {@link MapView}.
7680
+ *
7681
+ */
7682
+ export class Shape {
7683
+ /**
7684
+ * id of Shape
7685
+ */
7686
+ readonly id: string;
7687
+ /**
7688
+ * @internal
7689
+ */
7690
+ static readonly __type = "Shape";
7691
+ /**
7692
+ * @internal
7693
+ */
7694
+ readonly __type = "Shape";
7695
+ /**
7696
+ * Checks if the provided instance is of type Shape.
7697
+ *
7698
+ * @param instance The instance to check.
7699
+ * @returns {boolean} True if the instance is a Shape, false otherwise.
7700
+ */
7701
+ static is(instance: object): instance is Shape;
7702
+ /**
7703
+ * @internal
7704
+ */
7705
+ constructor(id: string);
7390
7706
  }
7391
7707
  }
7392
7708
 
@@ -7402,6 +7718,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
7402
7718
  constructor(rendererCore: RendererCore);
7403
7719
  setScreenOffsets(padding: InsetPadding): void;
7404
7720
  get screenOffsets(): InsetPadding;
7721
+ /**
7722
+ * The camera's current pan mode.
7723
+ */
7724
+ get panMode(): "default" | "elevation";
7725
+ /**
7726
+ * Set the camera's pan mode. 'elevation' moves the camera up and down, while 'default' allows the camera to pan along the ground.
7727
+ * @experimental
7728
+ * @param panMode The new pan mode.
7729
+ */
7730
+ setPanMode(panMode: 'default' | 'elevation'): void;
7405
7731
  /**
7406
7732
  * Focuses the camera on a specific target or array of targets.
7407
7733
  *
@@ -7499,6 +7825,23 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
7499
7825
  * @default 12
7500
7826
  */
7501
7827
  setMaxZoomLevel: (zoomLevel: number) => void;
7828
+ /**
7829
+ * Set the camera's elevation in meters.
7830
+ * @experimental
7831
+ * @param elevation The new elevation in meters.
7832
+ */
7833
+ setElevation(elevation: number): void;
7834
+ /**
7835
+ * The current elevation of the camera in meters.
7836
+ */
7837
+ get elevation(): number;
7838
+ /**
7839
+ * Animate the camera's elevation to a specified elevation.
7840
+ * @experimental
7841
+ * @param elevation The target elevation in meters.
7842
+ * @param options Optional settings for the camera animation.
7843
+ */
7844
+ animateElevation(elevation: number, options?: TCameraAnimationOptions): Promise<void>;
7502
7845
  }
7503
7846
  }
7504
7847
 
@@ -7752,6 +8095,216 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/paths' {
7752
8095
  export {};
7753
8096
  }
7754
8097
 
8098
+ declare module '@mappedin/react-sdk/mappedin-js/src/navigation/index' {
8099
+ import { type TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src';
8100
+ import type { Directions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
8101
+ import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
8102
+ import { Path, Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8103
+ import type { RendererCore } from '@mappedin/core-sdk';
8104
+ /**
8105
+ * Options for navigation.
8106
+ */
8107
+ export type TNavigationOptions = {
8108
+ /**
8109
+ * Controls whether the map should be set to the floor of the connection point when a connection point is clicked.
8110
+ * @default true
8111
+ */
8112
+ setMapOnConnectionClick?: boolean;
8113
+ /**
8114
+ * Controls whether markers are created for the departure, destination, and connection points.
8115
+ */
8116
+ createMarkers?: {
8117
+ /**
8118
+ * Controls whether a marker is created for the departure point and allows a custom marker to be created.
8119
+ * @default true
8120
+ */
8121
+ departure?: boolean | ((instruction: TDirectionInstruction) => Marker);
8122
+ /**
8123
+ * Controls whether a marker is created for the destination point and allows a custom marker to be created.
8124
+ * @default true
8125
+ */
8126
+ destination?: boolean | ((instruction: TDirectionInstruction) => Marker);
8127
+ /**
8128
+ * Controls whether markers are created for connection points and allows a custom marker to be created.
8129
+ * @default true
8130
+ */
8131
+ connection?: boolean | ((instruction: TDirectionInstruction) => Marker);
8132
+ };
8133
+ /**
8134
+ * Path Options for the non-current path in multi-destination mode.
8135
+ */
8136
+ inactivePathOptions?: {
8137
+ /**
8138
+ * Duration in milliseconds for the path to be drawn.
8139
+ * @default 1000
8140
+ */
8141
+ drawDuration?: number;
8142
+ /**
8143
+ * The color of the path.
8144
+ * @default '#40A9FF'
8145
+ */
8146
+ color?: string;
8147
+ /**
8148
+ * Whether the path should be clickable.
8149
+ *
8150
+ * @defaultValue false
8151
+ */
8152
+ interactive?: boolean;
8153
+ /**
8154
+ * The accent color of the path. This is applied to arrows if they are displayed
8155
+ * @default 'blue'
8156
+ */
8157
+ accentColor?: string;
8158
+ /**
8159
+ * The radius of the path near the markers.
8160
+ * @default 0.25
8161
+ */
8162
+ nearRadius?: number;
8163
+ /**
8164
+ * The radius of the path far from the markers.
8165
+ * @default 1
8166
+ */
8167
+ farRadius?: number;
8168
+ /**
8169
+ * Controls whether arrows are displayed on the path.
8170
+ * @default false
8171
+ */
8172
+ displayArrowsOnPath?: boolean;
8173
+ /**
8174
+ * Controls whether arrows are animated.
8175
+ * @default false
8176
+ */
8177
+ animateArrowsOnPath?: boolean;
8178
+ };
8179
+ /**
8180
+ * Options for the path.
8181
+ */
8182
+ pathOptions?: {
8183
+ /**
8184
+ * Duration in milliseconds for the path to be drawn.
8185
+ * @default 1000
8186
+ */
8187
+ drawDuration?: number;
8188
+ /**
8189
+ * The color of the path.
8190
+ * @default '#40A9FF'
8191
+ */
8192
+ color?: string;
8193
+ /**
8194
+ * Whether the path should be clickable.
8195
+ *
8196
+ * @defaultValue false
8197
+ */
8198
+ interactive?: boolean;
8199
+ /**
8200
+ * The accent color of the path. This is applied to arrows if they are displayed
8201
+ * @default 'blue'
8202
+ */
8203
+ accentColor?: string;
8204
+ /**
8205
+ * The radius of the path near the markers.
8206
+ * @default 0.25
8207
+ */
8208
+ nearRadius?: number;
8209
+ /**
8210
+ * The radius of the path far from the markers.
8211
+ * @default 1
8212
+ */
8213
+ farRadius?: number;
8214
+ /**
8215
+ * Controls whether arrows are displayed on the path.
8216
+ * @default false
8217
+ */
8218
+ displayArrowsOnPath?: boolean;
8219
+ /**
8220
+ * Controls whether arrows are animated.
8221
+ * @default false
8222
+ */
8223
+ animateArrowsOnPath?: boolean;
8224
+ };
8225
+ /**
8226
+ * Options for the markers at the departure and destination.
8227
+ */
8228
+ markerOptions?: {
8229
+ /**
8230
+ * The color of the departure marker.
8231
+ * @default '#1890FF'
8232
+ */
8233
+ departureColor?: string;
8234
+ /**
8235
+ * The color of the destination marker.
8236
+ * @default '#722ED1'
8237
+ */
8238
+ destinationColor?: string;
8239
+ };
8240
+ };
8241
+ export class Navigation {
8242
+ #private;
8243
+ /**
8244
+ * @internal
8245
+ */
8246
+ get currentMap(): GeojsonApiMapObject;
8247
+ /**
8248
+ * Returns true if the navigation is for a multi-floor path.
8249
+ */
8250
+ get isMultiFloor(): boolean;
8251
+ /**
8252
+ * @internal
8253
+ */
8254
+ constructor(core: RendererCore, currentMapGetter: CurrentMapGetter);
8255
+ /**
8256
+ * @internal
8257
+ */
8258
+ getPathById(id: string): {
8259
+ path: Path;
8260
+ entityIds: string[];
8261
+ } | undefined;
8262
+ /**
8263
+ * @internal
8264
+ */
8265
+ getMarkerById(id: string): {
8266
+ instruction: TDirectionInstruction;
8267
+ marker: Marker;
8268
+ } | undefined;
8269
+ /**
8270
+ * @internal
8271
+ */
8272
+ get paths(): Path[];
8273
+ /**
8274
+ * The currently active directions.
8275
+ */
8276
+ get activeDirections(): Directions | undefined;
8277
+ /**
8278
+ * The currently active path.
8279
+ */
8280
+ get activePath(): Path | undefined;
8281
+ /**
8282
+ * Sets the active path by index.
8283
+ */
8284
+ setActivePathByIndex(target: number): void;
8285
+ /**
8286
+ * Sets the active path.
8287
+ */
8288
+ setActivePath(target: Path): void;
8289
+ /**
8290
+ * Sets the active path by directions.
8291
+ */
8292
+ setActivePathByDirections(target: Directions): void;
8293
+ /**
8294
+ * Draws the specified directions on the map.
8295
+ * @param directions The directions to be drawn.
8296
+ * @param options Optional additional options for the navigation.
8297
+ */
8298
+ draw(directions: Directions | Directions[], options?: TNavigationOptions): Promise<unknown>;
8299
+ /**
8300
+ * Clears any drawn navigation paths or directions from the map.
8301
+ */
8302
+ clear(): void;
8303
+ }
8304
+ type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
8305
+ export {};
8306
+ }
8307
+
7755
8308
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/exporter' {
7756
8309
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
7757
8310
  import type { GLTFExportOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -8183,7 +8736,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search/internal' {
8183
8736
  enabled?: boolean | undefined;
8184
8737
  } | undefined;
8185
8738
  }>;
8739
+ /**
8740
+ * @interface
8741
+ */
8186
8742
  export type SearchOptions = z.infer<typeof searchOptionsSchema>;
8743
+ /**
8744
+ * @interface
8745
+ */
8187
8746
  export type SuggestOptions = z.infer<typeof suggestOptionsSchema>;
8188
8747
  export { Suggestion, MatchInfo };
8189
8748
  }
@@ -8199,6 +8758,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search/external' {
8199
8758
  * @default false
8200
8759
  */
8201
8760
  enabled: boolean;
8761
+ /**
8762
+ * @internal
8763
+ */
8202
8764
  constructor(mapData: MapData, mapDataInternal: MapDataInternal, { enabled }?: {
8203
8765
  enabled?: boolean;
8204
8766
  });
@@ -9009,6 +9571,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
9009
9571
  import type { BufferGeometry } from 'three';
9010
9572
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
9011
9573
  import { Geometry3D, Geometry3DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
9574
+ import { type MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
9012
9575
  import type { Feature, LineString, MultiPolygon, Point, Polygon } from 'geojson';
9013
9576
  import type { LineStyle, ModelProperties, ModelStyle, PaintStyle } from '@mappedin/react-sdk/geojson/src/types';
9014
9577
  import type { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
@@ -9021,7 +9584,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
9021
9584
  loader?: GLTFLoader;
9022
9585
  constructor(state: RendererState, convertTo3DMapPosition: any);
9023
9586
  getGLTFLoader(): Promise<void>;
9024
- createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon>, style?: LineStyle | PaintStyle): Geometry3D;
9587
+ createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D;
9025
9588
  createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: ModelStyle): Geometry3D;
9026
9589
  populateEntityMesh(entity: Geometry3D, geometry: BufferGeometry): void;
9027
9590
  populateModelGroup(entities: Set<string | number>, url: string, tree: any): Promise<Geometry3DObject3D>;
@@ -9516,6 +10079,16 @@ declare module '@mappedin/react-sdk/geojson/src/systems/pre-render/system' {
9516
10079
  }
9517
10080
  }
9518
10081
 
10082
+ declare module '@mappedin/react-sdk/geojson/src/systems/polygon-label/system' {
10083
+ import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10084
+ import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
10085
+ export const DEFAULT_VERTICAL_OFFSET = 0.01;
10086
+ export class PolygonLabelSystem {
10087
+ constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
10088
+ update(cameraRotationRadians: number): void;
10089
+ }
10090
+ }
10091
+
9519
10092
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src' {
9520
10093
  export { Navigator } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator';
9521
10094
  export type { SimplifyDirectionsOptions } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/navigator';
@@ -9664,7 +10237,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
9664
10237
  import type { TDoorsState, TMarkerState, TWallsState } from '@mappedin/react-sdk/mappedin-js/src/types';
9665
10238
  import type { Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9666
10239
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
9667
- import type TWEEN from '@tweenjs/tween.js';
10240
+ import type { Tween } from '@tweenjs/tween.js';
9668
10241
  export function convertCoordinateToPosition(coord: Coordinate): Position;
9669
10242
  export function convertPositionToCoordinate(coord: Position): Coordinate;
9670
10243
  export const cutEntrancesFromLineStrings: (lineStrings: ObstructionCollection["features"], entranceCollection: EntranceCollection["features"]) => {
@@ -9692,7 +10265,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
9692
10265
  export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, SpaceProperties | ObstructionProperties>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Point | LineString | Polygon, WithPolygonImage<SpaceProperties> | WithPolygonImage<ObstructionProperties>>[]>;
9693
10266
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
9694
10267
  export const getTargetID: <T extends Space | Shape | MapObject | Label | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
9695
- export function tweenToPromise(tween: TWEEN.Tween): Promise<void>;
10268
+ export function tweenToPromise(tween: Tween): Promise<void>;
9696
10269
  }
9697
10270
 
9698
10271
  declare module '@mappedin/react-sdk/geojson/src/components/style' {
@@ -9713,7 +10286,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/style' {
9713
10286
  topTexture?: string;
9714
10287
  outline: boolean;
9715
10288
  showImage: boolean;
10289
+ showTextLabel: boolean;
9716
10290
  flipImageToFaceCamera: boolean;
10291
+ flipTextToFaceCamera: boolean;
9717
10292
  url?: string;
9718
10293
  };
9719
10294
  export class StyleComponent implements Style {
@@ -9734,7 +10309,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/style' {
9734
10309
  cap: LineStyle['cap'];
9735
10310
  outline: boolean;
9736
10311
  showImage: boolean;
10312
+ showTextLabel: boolean;
9737
10313
  flipImageToFaceCamera: boolean;
10314
+ flipTextToFaceCamera: boolean;
9738
10315
  url?: string;
9739
10316
  constructor(style?: Partial<Style>);
9740
10317
  }
@@ -10148,7 +10725,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
10148
10725
  * Returns true if the camera is currently animating.
10149
10726
  * @return {Boolean} True if the camera is animating, false otherwise.
10150
10727
  */
10151
- isAnimating: () => boolean;
10728
+ get isAnimating(): boolean;
10152
10729
  /**
10153
10730
  * Returns true if the camera is currently moving (it's animating, the user is manipulating it).
10154
10731
  *
@@ -10352,7 +10929,6 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/types' {
10352
10929
  import type { Vector2, Vector3 } from 'three';
10353
10930
  import type { TouchAnchor, InputSet } from '@mappedin/react-sdk/geojson/src/systems/camera/helpers';
10354
10931
  import type { InsetPadding, RendererCore } from '@mappedin/react-sdk/geojson/src';
10355
- import type { Easing } from '@tweenjs/tween.js';
10356
10932
  type AnimateCameraTarget = {
10357
10933
  position?: {
10358
10934
  x?: number;
@@ -10459,7 +11035,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/types' {
10459
11035
  /**
10460
11036
  * The animation curve to use for zooming in. Uses the animateCamera one by default.
10461
11037
  */
10462
- curve?: typeof Easing;
11038
+ curve?: (n: number) => number;
10463
11039
  /**
10464
11040
  * Camera tilt between 0 (top-down) to 1 (from the side)
10465
11041
  */
@@ -10488,7 +11064,6 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/types' {
10488
11064
 
10489
11065
  declare module '@mappedin/react-sdk/geojson/src/systems/camera/constants' {
10490
11066
  export const MAPLIBRE_TILE_SIZE = 512;
10491
- export const EARTH_RADIUS_M = 6371008.8;
10492
11067
  export const MIN_LAT = -85.051129;
10493
11068
  export const MAX_LAT = 85.051129;
10494
11069
  export const CLIPPING_RADIUS = 10000;