@mappedin/react-sdk 6.0.1-beta.30 → 6.0.1-beta.31

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.
@@ -22,7 +22,7 @@
22
22
  // ../react/@packages/internal/quad-tree
23
23
  // ../react/@mappedin/core-sdk/src/components/text3d
24
24
  // ../react/minisearch
25
- // ../react/three/addons/loaders/GLTFLoader.js
25
+ // ../react/three/examples/jsm/loaders/GLTFLoader.js
26
26
  // ../react/@mapbox/point-geometry
27
27
  // ../react/@maplibre/maplibre-gl-style-spec
28
28
  // ../react/gl-matrix
@@ -65,12 +65,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
65
65
  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';
66
66
  import { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
67
67
  export type { Text3D as Text3DApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
68
- import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, MapViewState } from '@mappedin/react-sdk/geojson/src';
68
+ import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState } from '@mappedin/react-sdk/geojson/src';
69
69
  import { enableTestMode, preloadFont } from '@mappedin/react-sdk/geojson/src';
70
70
  export type { PubSub } from '@packages/internal/common/pubsub';
71
71
  import type { TMappedinMapLibreOverlayEvents } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
72
72
  import { MappedinMapLibreOverlay } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
73
73
  import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
74
+ import { MAPPEDIN_COLORS } from '@mappedin/react-sdk/mappedin-js/src/constants';
74
75
  import { type Environment } from '@packages/internal/mvf-utils/mvf-utils';
75
76
  import type { TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TFollowMode, TFollowCameraOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
76
77
  import type { TExpandOptions, TStackedMapsEvents, TStackedMapsState } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
@@ -330,8 +331,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
330
331
  * @deprecated Use {@link show3dMap} instead.
331
332
  */
332
333
  export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
333
- export { parseMVF, unzipMVF, enableTestMode, preloadFont };
334
- export type { MapView, MapData, MapViewState, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, };
334
+ export { parseMVF, unzipMVF, enableTestMode, preloadFont, MAPPEDIN_COLORS };
335
+ export type { MapView, MapData, MapViewState, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, EnvMapOptions, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, UpdateModelState, InitializeModelState, };
335
336
  export type * from 'geojson';
336
337
  export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, TFocusTarget, IFocusable, IAnchorable, TMapDataObjectTypes, } from '@mappedin/react-sdk/mappedin-js/src/types';
337
338
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -1365,7 +1366,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1365
1366
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
1366
1367
  import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1367
1368
  import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates, GlobalState, UpdateGlobalState } from '@mappedin/react-sdk/mappedin-js/src/types';
1368
- import type { Label, Marker, Image, Shape, Text3D as Text3DView } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1369
+ import type { Label, Marker, Image, Shape, Text3D as Text3DView, Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1369
1370
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1370
1371
  import type { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
1371
1372
  import type { StackedMaps, TCollapseOptions, TExpandOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
@@ -1471,7 +1472,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1471
1472
  * // Update the color of a space to red.
1472
1473
  * map.updateState(space, { color: 'red' });
1473
1474
  */
1474
- updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS>(target: T, state: TUpdateState<T>): any;
1475
+ updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS | Model>(target: T, state: TUpdateState<T>): any;
1475
1476
  updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
1476
1477
  /**
1477
1478
  * Update global state of the MapView
@@ -1539,7 +1540,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1539
1540
  * @hidden
1540
1541
  */
1541
1542
  updateWatermark(options: WatermarkUpdateOptions): void;
1542
- getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
1543
+ getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
1543
1544
  setHoverColor(c: string): void;
1544
1545
  getHoverColor(): string | undefined;
1545
1546
  /**
@@ -1750,10 +1751,10 @@ declare module '@mappedin/react-sdk/geojson/src' {
1750
1751
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
1751
1752
  import type { GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
1752
1753
  import type { Position } from '@mappedin/react-sdk/geojson/src/types/geometry';
1753
- import type { InsetPadding, InsetPaddingOption, RendererCoreOptions, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload } from '@mappedin/react-sdk/geojson/src/types';
1754
+ import type { InsetPadding, InsetPaddingOption, RendererCoreOptions, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload, EnvMapOptions } from '@mappedin/react-sdk/geojson/src/types';
1754
1755
  import type { GeometryState } from '@mappedin/react-sdk/geojson/src/components/mesh';
1755
1756
  import type { ShapeState, CustomGeometryBuilder } from '@mappedin/react-sdk/geojson/src/components/custom';
1756
- import type { ModelState } from '@mappedin/react-sdk/geojson/src/components/model';
1757
+ import type { ModelState, UpdateModelState, InitializeModelState } from '@mappedin/react-sdk/geojson/src/components/model';
1757
1758
  import RendererCore, { type MapViewState } from '@mappedin/react-sdk/geojson/src/renderer';
1758
1759
  import type { Camera, AnimateToOptions, FocusOnOptions, EasingCurve } from '@mappedin/react-sdk/geojson/src/camera';
1759
1760
  import { mountSceneGraphVisualizer } from '@mappedin/react-sdk/geojson/examples/src/utils/scene-graph-visualizer';
@@ -1771,17 +1772,17 @@ declare module '@mappedin/react-sdk/geojson/src' {
1771
1772
  */
1772
1773
  export { enableTestMode } from '@mappedin/react-sdk/geojson/src/services/test-mode';
1773
1774
  export { mountSceneGraphVisualizer };
1774
- export type { EntityId, EntityState, LineStyle, PaintStyle, ModelStyle, ModelProperties, Shading } from '@mappedin/react-sdk/geojson/src/types';
1775
+ export type { EntityId, EntityState, LineStyle, PaintStyle, ModelProperties, Shading } from '@mappedin/react-sdk/geojson/src/types';
1775
1776
  export type * from 'geojson';
1776
1777
  export type { WatermarkUpdateOptions, WatermarkOptions, WatermarkPosition } from '@mappedin/react-sdk/geojson/src/systems/watermark/system';
1777
1778
  export { preloadFont } from '@mappedin/react-sdk/geojson/src/systems/text3d/system';
1778
1779
  export type { GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter';
1779
1780
  export type { AttributionControlOptions, AttributionPosition } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
1780
- export type { Text3DStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
1781
+ export type { Text3DStyle, ModelStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
1781
1782
  export type { AddText3DOptions, InitializeText3DState, UpdatableText3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
1782
1783
  export { ATTRIBUTION_POSITIONS } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
1783
1784
  export { ANIMATION_TWEENS } from '@mappedin/react-sdk/geojson/src/camera';
1784
- 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, RendererCoreOptions, };
1785
+ export type { AddPathOptions, AddMarkerOptions, AddLabelOptions, AnimateToOptions, FocusOnOptions, MapViewState, MarkerState, PathState, GroupContainerState, GeometryGroupState, ShapeState, CustomGeometryBuilder, LabelState, GeometryState, ModelState, UpdateModelState, InitializeModelState, EasingCurve, Camera, InsetPadding, InsetPaddingOption, Position, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload, CollisionRankingTier, LabelAppearance, RendererCore, EnvMapOptions, RendererCoreOptions, };
1785
1786
  export function createRenderer(container: HTMLElement, options?: RendererCoreOptions & {
1786
1787
  [key: string]: any;
1787
1788
  }): Promise<RendererCore>;
@@ -1862,7 +1863,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1862
1863
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, EnterpriseLocation, Node, Area, Facade, FloorStack, Annotation, EnterpriseCategory, EnterpriseVenue } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1863
1864
  import type { Label, Marker, Model, Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1864
1865
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1865
- import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions } from '@mappedin/react-sdk/geojson/src';
1866
+ import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState } from '@mappedin/react-sdk/geojson/src';
1866
1867
  export type DeepRequired<T> = Required<{
1867
1868
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1868
1869
  }>;
@@ -1951,7 +1952,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1951
1952
  */
1952
1953
  export type TModelState = {
1953
1954
  type: 'model';
1954
- };
1955
+ } & ModelState;
1955
1956
  /**
1956
1957
  * Defines the state for an image when its appearance is updated.
1957
1958
  */
@@ -2123,7 +2124,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2123
2124
  /**
2124
2125
  * The type for updating the state of map elements (colors, texts, etc.).
2125
2126
  */
2126
- export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends string ? Record<string, any> : never;
2127
+ export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends string ? Record<string, any> : never;
2127
2128
  export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
2128
2129
  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 Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
2129
2130
  /**
@@ -2594,16 +2595,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2594
2595
  * @default false
2595
2596
  */
2596
2597
  interactive?: boolean;
2598
+ /**
2599
+ * Vertical offset of the model in meters.
2600
+ */
2601
+ verticalOffset?: number;
2597
2602
  };
2598
2603
  /**
2599
2604
  * Options for controlling the behavior of a {@link Model}.
2600
2605
  */
2601
- export type TAddModelOptions = {
2602
- /**
2603
- * Model's URL.
2604
- */
2605
- url: string;
2606
- };
2606
+ export type TAddModelOptions = Omit<InitializeModelState, 'verticalOffset'>;
2607
2607
  /**
2608
2608
  * @interface
2609
2609
  */
@@ -2814,6 +2814,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2814
2814
  localePack: ParsedMVFLocalePack;
2815
2815
  };
2816
2816
  export type GlobalState = {
2817
+ /**
2818
+ * environment map for reflections.
2819
+ * @default 'basic'
2820
+ */
2821
+ environment: EnvMapOptions;
2817
2822
  text3d: {
2818
2823
  /**
2819
2824
  * hover color of the text3d
@@ -2865,6 +2870,44 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2865
2870
  };
2866
2871
  }
2867
2872
 
2873
+ declare module '@mappedin/react-sdk/mappedin-js/src/constants' {
2874
+ /**
2875
+ * Default map options used if no custom options are provided.
2876
+ *
2877
+ * @internal
2878
+ */
2879
+ export const DEFAULT_MAP_OPTIONS: {
2880
+ auto: true;
2881
+ debug: false;
2882
+ pitch: number;
2883
+ bearing: number;
2884
+ antialiasing: {
2885
+ enabled: true;
2886
+ };
2887
+ shadingAndOutlines: true;
2888
+ outdoorView: {
2889
+ layersHiddenByGeometry: string[];
2890
+ };
2891
+ };
2892
+ export const EXTERIOR_WALLS_ID = "ExteriorWalls";
2893
+ export const WALLS_ID = "Walls";
2894
+ export const ADD_MAP_FOCUS_ON_DURATION = 0;
2895
+ export const INTERIOR_DOORS_ID = "InteriorDoors";
2896
+ export const EXTERIOR_DOORS_ID = "ExteriorDoors";
2897
+ export const GEOMETRY_LAYER = "GeometryLayer";
2898
+ export const LABELS_LAYER = "LabelsLayer";
2899
+ export const MARKERS_LAYER = "MarkersLayer";
2900
+ export const FOOTPRINT_LAYER = "FootprintLayer";
2901
+ export const IMAGES_LAYER = "ImagesLayer";
2902
+ export const SELF_SERVE_API_AUDIENCE: string[];
2903
+ export const ENTERPRISE_API_AUDIENCE: string[];
2904
+ export const MAPPEDIN_COLORS: {
2905
+ orange: string;
2906
+ teal: string;
2907
+ lightTeal: string;
2908
+ };
2909
+ }
2910
+
2868
2911
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot' {
2869
2912
  import type { EasingCurve, RendererCore } from '@mappedin/core-sdk';
2870
2913
  import { PubSub } from '@packages/internal/common';
@@ -4001,6 +4044,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4001
4044
  * @internal
4002
4045
  */
4003
4046
  readonly __type = "space";
4047
+ /**
4048
+ * @internal
4049
+ * @hidden
4050
+ */
4004
4051
  getMvfData(): import("@mappedin/mvf").Feature<import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon | import("@mappedin/mvf").Point, import("@mappedin/mvf").SpaceProperties>;
4005
4052
  /**
4006
4053
  * Checks if the provided instance is of type Space.
@@ -5093,7 +5140,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
5093
5140
  *
5094
5141
  * Refer to the [EnterpriseLocation Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-locations) for more information and interactive examples.
5095
5142
  */
5096
- class EnterpriseLocation extends BaseMetaData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links'>, IFocusable {
5143
+ class EnterpriseLocation extends BaseMetaData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links' | 'spaces'>, IFocusable {
5097
5144
  #private;
5098
5145
  /**
5099
5146
  * @internal
@@ -5649,16 +5696,16 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5649
5696
  dynamicResize: z.ZodOptional<z.ZodBoolean>;
5650
5697
  zIndex: z.ZodOptional<z.ZodNumber>;
5651
5698
  }, "strip", z.ZodTypeAny, {
5652
- interactive?: boolean | "pointer-events-auto" | undefined;
5653
- id?: string | undefined;
5654
5699
  anchor?: "center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5700
+ id?: string | undefined;
5701
+ interactive?: boolean | "pointer-events-auto" | undefined;
5655
5702
  dynamicResize?: boolean | undefined;
5656
5703
  zIndex?: number | undefined;
5657
5704
  rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5658
5705
  }, {
5659
- interactive?: boolean | "pointer-events-auto" | undefined;
5660
- id?: string | undefined;
5661
5706
  anchor?: "center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5707
+ id?: string | undefined;
5708
+ interactive?: boolean | "pointer-events-auto" | undefined;
5662
5709
  dynamicResize?: boolean | undefined;
5663
5710
  zIndex?: number | undefined;
5664
5711
  rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
@@ -5878,16 +5925,16 @@ declare module '@mappedin/react-sdk/geojson/src/components/path' {
5878
5925
  displayArrowsOnPath: z.ZodOptional<z.ZodBoolean>;
5879
5926
  animateArrowsOnPath: z.ZodOptional<z.ZodBoolean>;
5880
5927
  }, "strip", z.ZodTypeAny, {
5881
- interactive?: boolean | undefined;
5882
5928
  id?: string | undefined;
5929
+ interactive?: boolean | undefined;
5883
5930
  accentColor?: string | undefined;
5884
5931
  displayArrowsOnPath?: boolean | undefined;
5885
5932
  animateArrowsOnPath?: boolean | undefined;
5886
5933
  nearRadius?: number | undefined;
5887
5934
  farRadius?: number | undefined;
5888
5935
  }, {
5889
- interactive?: boolean | undefined;
5890
5936
  id?: string | undefined;
5937
+ interactive?: boolean | undefined;
5891
5938
  accentColor?: string | undefined;
5892
5939
  displayArrowsOnPath?: boolean | undefined;
5893
5940
  animateArrowsOnPath?: boolean | undefined;
@@ -6579,10 +6626,18 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry-group' {
6579
6626
  * The opacity of the geometry group. This will affect all children of the geometry group and override their opacity.
6580
6627
  */
6581
6628
  opacity: number;
6629
+ /**
6630
+ * The initial color of the geometry and its children. This is used to reset the color of the geometry to its initial value.
6631
+ */
6632
+ initialColor: string;
6582
6633
  /**
6583
6634
  * The color of the geometry and its children. Updating this will affect any children whose color was not updated after generation
6584
6635
  */
6585
6636
  color: string;
6637
+ /**
6638
+ * The initial top color of the geometry and its children. This is used to reset the top color of the geometry to its initial value.
6639
+ */
6640
+ initialTopColor?: string;
6586
6641
  /**
6587
6642
  * The top color of the geometry and its children. Updating this will affect any children whose top color was not updated after generation
6588
6643
  */
@@ -6778,15 +6833,23 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6778
6833
  export * from '@mappedin/react-sdk/geojson/src/types/options';
6779
6834
  export type ModelProperties = {
6780
6835
  rotation?: [number, number, number];
6781
- altitude?: number;
6782
6836
  scale?: [number, number, number];
6783
6837
  interactive?: boolean;
6784
6838
  id?: string | number;
6839
+ verticalOffset?: number;
6785
6840
  };
6786
- export type ModelStyle = {
6841
+ export type ModelGroupStyle = {
6787
6842
  url: string;
6788
6843
  color?: string;
6789
6844
  opacity?: number;
6845
+ /**
6846
+ * traverse the scene and update the materials by name
6847
+ */
6848
+ material?: {
6849
+ [name: string]: {
6850
+ color: string;
6851
+ };
6852
+ };
6790
6853
  };
6791
6854
  export type InsetPadding = {
6792
6855
  top: number;
@@ -7015,6 +7078,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
7015
7078
  * The color of the geometry
7016
7079
  */
7017
7080
  color: string;
7081
+ /**
7082
+ * The initial top color of the geometry. This is used to reset the top color of the geometry to its initial value.
7083
+ */
7084
+ initialTopColor?: string;
7018
7085
  /**
7019
7086
  * The color of geometry faces that are facing up
7020
7087
  */
@@ -7192,24 +7259,28 @@ declare module '@mappedin/react-sdk/geojson/src/components/custom' {
7192
7259
  constructor(feature: Feature<Point>, builder: CustomGeometryBuilder);
7193
7260
  get visible(): boolean;
7194
7261
  set visible(value: boolean);
7195
- setOpacity(): void;
7262
+ set opacity(_v: number);
7263
+ get opacity(): number;
7196
7264
  color: Color;
7197
7265
  setColor(): void;
7198
7266
  get position(): import("three").Vector3;
7199
7267
  get altitude(): number;
7200
7268
  set altitude(value: number);
7269
+ get renderOrder(): number;
7270
+ set renderOrder(_: number);
7201
7271
  }
7202
7272
  }
7203
7273
 
7204
7274
  declare module '@mappedin/react-sdk/geojson/src/components/model' {
7205
- import type { LineSegments, Object3D } from 'three';
7275
+ import type { Group, LineSegments, Object3D } from 'three';
7206
7276
  import { Color, Vector3 } from 'three';
7207
7277
  import type { BatchedStandardMaterial } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/batched-material';
7208
- import type { Position, EntityId, ModelProperties, ModelStyle } from '@mappedin/react-sdk/geojson/src/types';
7278
+ import type { Position, EntityId, ModelProperties, ModelGroupStyle } from '@mappedin/react-sdk/geojson/src/types';
7209
7279
  import type { Feature, FeatureCollection, Point } from 'geojson';
7210
7280
  import type { Geometry3DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
7211
7281
  import type { GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
7212
7282
  import { z } from 'zod';
7283
+ import type { ModelStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
7213
7284
  /**
7214
7285
  * State representing a Model, typically loaded via a URL
7215
7286
  */
@@ -7233,25 +7304,38 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7233
7304
  * ```
7234
7305
  */
7235
7306
  interactive: boolean;
7236
- };
7307
+ } & Partial<ModelStyle>;
7308
+ /**
7309
+ * initialize model state
7310
+ * @interface
7311
+ */
7312
+ export type InitializeModelState = Omit<Partial<Omit<ModelState, 'url'> & Pick<ModelStyle, 'url'>>, 'id' | 'type' | 'parent' | 'position'>;
7313
+ /**
7314
+ * updatable model state
7315
+ * @interface
7316
+ */
7317
+ export type UpdateModelState = Omit<InitializeModelState, 'url'>;
7237
7318
  export const modelPropertiesSchema: z.ZodObject<{
7238
7319
  rotation: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
7239
7320
  altitude: z.ZodOptional<z.ZodNumber>;
7240
7321
  scale: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
7241
7322
  interactive: z.ZodOptional<z.ZodBoolean>;
7323
+ verticalOffset: z.ZodOptional<z.ZodNumber>;
7242
7324
  id: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
7243
7325
  }, "strip", z.ZodTypeAny, {
7244
- rotation?: number[] | undefined;
7245
7326
  altitude?: number | undefined;
7246
- scale?: number[] | undefined;
7247
- interactive?: boolean | undefined;
7327
+ verticalOffset?: number | undefined;
7248
7328
  id?: string | number | undefined;
7249
- }, {
7329
+ interactive?: boolean | undefined;
7250
7330
  rotation?: number[] | undefined;
7251
- altitude?: number | undefined;
7252
7331
  scale?: number[] | undefined;
7253
- interactive?: boolean | undefined;
7332
+ }, {
7333
+ altitude?: number | undefined;
7334
+ verticalOffset?: number | undefined;
7254
7335
  id?: string | number | undefined;
7336
+ interactive?: boolean | undefined;
7337
+ rotation?: number[] | undefined;
7338
+ scale?: number[] | undefined;
7255
7339
  }>;
7256
7340
  export const featureSchema: z.ZodObject<{
7257
7341
  type: z.ZodEnum<["Feature"]>;
@@ -7270,19 +7354,22 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7270
7354
  altitude: z.ZodOptional<z.ZodNumber>;
7271
7355
  scale: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
7272
7356
  interactive: z.ZodOptional<z.ZodBoolean>;
7357
+ verticalOffset: z.ZodOptional<z.ZodNumber>;
7273
7358
  id: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
7274
7359
  }, "strip", z.ZodTypeAny, {
7275
- rotation?: number[] | undefined;
7276
7360
  altitude?: number | undefined;
7277
- scale?: number[] | undefined;
7278
- interactive?: boolean | undefined;
7361
+ verticalOffset?: number | undefined;
7279
7362
  id?: string | number | undefined;
7280
- }, {
7363
+ interactive?: boolean | undefined;
7281
7364
  rotation?: number[] | undefined;
7282
- altitude?: number | undefined;
7283
7365
  scale?: number[] | undefined;
7284
- interactive?: boolean | undefined;
7366
+ }, {
7367
+ altitude?: number | undefined;
7368
+ verticalOffset?: number | undefined;
7285
7369
  id?: string | number | undefined;
7370
+ interactive?: boolean | undefined;
7371
+ rotation?: number[] | undefined;
7372
+ scale?: number[] | undefined;
7286
7373
  }>;
7287
7374
  }, "strip", z.ZodTypeAny, {
7288
7375
  type: "Feature";
@@ -7291,11 +7378,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7291
7378
  coordinates: number[];
7292
7379
  };
7293
7380
  properties: {
7294
- rotation?: number[] | undefined;
7295
7381
  altitude?: number | undefined;
7296
- scale?: number[] | undefined;
7297
- interactive?: boolean | undefined;
7382
+ verticalOffset?: number | undefined;
7298
7383
  id?: string | number | undefined;
7384
+ interactive?: boolean | undefined;
7385
+ rotation?: number[] | undefined;
7386
+ scale?: number[] | undefined;
7299
7387
  };
7300
7388
  }, {
7301
7389
  type: "Feature";
@@ -7304,11 +7392,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7304
7392
  coordinates: number[];
7305
7393
  };
7306
7394
  properties: {
7307
- rotation?: number[] | undefined;
7308
7395
  altitude?: number | undefined;
7309
- scale?: number[] | undefined;
7310
- interactive?: boolean | undefined;
7396
+ verticalOffset?: number | undefined;
7311
7397
  id?: string | number | undefined;
7398
+ interactive?: boolean | undefined;
7399
+ rotation?: number[] | undefined;
7400
+ scale?: number[] | undefined;
7312
7401
  };
7313
7402
  }>;
7314
7403
  export const addModelFeatureSchema: z.ZodObject<{
@@ -7330,19 +7419,22 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7330
7419
  altitude: z.ZodOptional<z.ZodNumber>;
7331
7420
  scale: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
7332
7421
  interactive: z.ZodOptional<z.ZodBoolean>;
7422
+ verticalOffset: z.ZodOptional<z.ZodNumber>;
7333
7423
  id: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
7334
7424
  }, "strip", z.ZodTypeAny, {
7335
- rotation?: number[] | undefined;
7336
7425
  altitude?: number | undefined;
7337
- scale?: number[] | undefined;
7338
- interactive?: boolean | undefined;
7426
+ verticalOffset?: number | undefined;
7339
7427
  id?: string | number | undefined;
7340
- }, {
7428
+ interactive?: boolean | undefined;
7341
7429
  rotation?: number[] | undefined;
7342
- altitude?: number | undefined;
7343
7430
  scale?: number[] | undefined;
7344
- interactive?: boolean | undefined;
7431
+ }, {
7432
+ altitude?: number | undefined;
7433
+ verticalOffset?: number | undefined;
7345
7434
  id?: string | number | undefined;
7435
+ interactive?: boolean | undefined;
7436
+ rotation?: number[] | undefined;
7437
+ scale?: number[] | undefined;
7346
7438
  }>;
7347
7439
  }, "strip", z.ZodTypeAny, {
7348
7440
  type: "Feature";
@@ -7351,11 +7443,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7351
7443
  coordinates: number[];
7352
7444
  };
7353
7445
  properties: {
7354
- rotation?: number[] | undefined;
7355
7446
  altitude?: number | undefined;
7356
- scale?: number[] | undefined;
7357
- interactive?: boolean | undefined;
7447
+ verticalOffset?: number | undefined;
7358
7448
  id?: string | number | undefined;
7449
+ interactive?: boolean | undefined;
7450
+ rotation?: number[] | undefined;
7451
+ scale?: number[] | undefined;
7359
7452
  };
7360
7453
  }, {
7361
7454
  type: "Feature";
@@ -7364,11 +7457,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7364
7457
  coordinates: number[];
7365
7458
  };
7366
7459
  properties: {
7367
- rotation?: number[] | undefined;
7368
7460
  altitude?: number | undefined;
7369
- scale?: number[] | undefined;
7370
- interactive?: boolean | undefined;
7461
+ verticalOffset?: number | undefined;
7371
7462
  id?: string | number | undefined;
7463
+ interactive?: boolean | undefined;
7464
+ rotation?: number[] | undefined;
7465
+ scale?: number[] | undefined;
7372
7466
  };
7373
7467
  }>, "many">;
7374
7468
  }, "strip", z.ZodTypeAny, {
@@ -7380,11 +7474,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7380
7474
  coordinates: number[];
7381
7475
  };
7382
7476
  properties: {
7383
- rotation?: number[] | undefined;
7384
7477
  altitude?: number | undefined;
7385
- scale?: number[] | undefined;
7386
- interactive?: boolean | undefined;
7478
+ verticalOffset?: number | undefined;
7387
7479
  id?: string | number | undefined;
7480
+ interactive?: boolean | undefined;
7481
+ rotation?: number[] | undefined;
7482
+ scale?: number[] | undefined;
7388
7483
  };
7389
7484
  }[];
7390
7485
  }, {
@@ -7396,31 +7491,45 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7396
7491
  coordinates: number[];
7397
7492
  };
7398
7493
  properties: {
7399
- rotation?: number[] | undefined;
7400
7494
  altitude?: number | undefined;
7401
- scale?: number[] | undefined;
7402
- interactive?: boolean | undefined;
7495
+ verticalOffset?: number | undefined;
7403
7496
  id?: string | number | undefined;
7497
+ interactive?: boolean | undefined;
7498
+ rotation?: number[] | undefined;
7499
+ scale?: number[] | undefined;
7404
7500
  };
7405
7501
  }[];
7406
7502
  }>;
7407
- export const modelStyleSchema: z.ZodObject<{
7503
+ export const modelGroupStyleSchema: z.ZodObject<{
7408
7504
  url: z.ZodString;
7409
7505
  color: z.ZodOptional<z.ZodString>;
7410
7506
  opacity: z.ZodOptional<z.ZodNumber>;
7507
+ material: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
7508
+ color: z.ZodString;
7509
+ }, "strip", z.ZodTypeAny, {
7510
+ color: string;
7511
+ }, {
7512
+ color: string;
7513
+ }>>>;
7411
7514
  }, "strip", z.ZodTypeAny, {
7412
7515
  url: string;
7413
7516
  color?: string | undefined;
7414
7517
  opacity?: number | undefined;
7518
+ material?: Record<string, {
7519
+ color: string;
7520
+ }> | undefined;
7415
7521
  }, {
7416
7522
  url: string;
7417
7523
  color?: string | undefined;
7418
7524
  opacity?: number | undefined;
7525
+ material?: Record<string, {
7526
+ color: string;
7527
+ }> | undefined;
7419
7528
  }>;
7420
- export function validateModelGroup(id: string | number, geometry: FeatureCollection<Point, ModelProperties>, style: ModelStyle): void;
7529
+ export function validateModelGroup(id: string | number, geometry: FeatureCollection<Point, ModelProperties>, style: Partial<ModelGroupStyle>): void;
7421
7530
  export class ModelComponent {
7422
7531
  #private;
7423
- mesh?: Geometry3DObject3D;
7532
+ mesh?: Geometry3DObject3D | Group;
7424
7533
  readonly type = "model";
7425
7534
  outline?: LineSegments;
7426
7535
  geometry?: Object3D;
@@ -7442,7 +7551,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7442
7551
 
7443
7552
  declare module '@mappedin/react-sdk/geojson/src/renderer' {
7444
7553
  import './utils/object-this-polyfill';
7445
- import { Vector3, Raycaster, Camera as ThreeCamera } from 'three';
7554
+ import { Scene, Vector3, Raycaster, Camera as ThreeCamera } from 'three';
7446
7555
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7447
7556
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7448
7557
  import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
@@ -7453,7 +7562,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7453
7562
  import type { GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter';
7454
7563
  import { ExporterSystem } from '@mappedin/react-sdk/geojson/src/systems/exporter';
7455
7564
  import type { AddLabelOptions, LabelState } from '@mappedin/react-sdk/geojson/src/components/label';
7456
- import type { LineStyle, PaintStyle, RendererCoreOptions, Position, ModelProperties, ModelStyle, EntityState, EntityId, MapEvent, MapEventPayload, RendererState, EntityTypes } from '@mappedin/react-sdk/geojson/src/types';
7565
+ import type { LineStyle, PaintStyle, RendererCoreOptions, Position, ModelProperties, EntityState, EntityId, MapEvent, MapEventPayload, RendererState, EntityTypes, EnvMapOptions } from '@mappedin/react-sdk/geojson/src/types';
7457
7566
  import { MeshCreationAndOptimizationSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/system';
7458
7567
  import { DOMVisibilitySystem } from '@mappedin/react-sdk/geojson/src/systems/dom-visiblity/system';
7459
7568
  import { TwoDProjectionSystem } from '@mappedin/react-sdk/geojson/src/systems/2d-projection/system';
@@ -7468,7 +7577,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7468
7577
  import { DOMDrawSystem } from '@mappedin/react-sdk/geojson/src/systems/dom-draw/system';
7469
7578
  import { type Map as MapLibreMap } from '@mappedin/react-sdk/packages/outdoor-context-v4';
7470
7579
  import type { GeometryState } from '@mappedin/react-sdk/geojson/src/components/mesh';
7471
- import type { ModelState } from '@mappedin/react-sdk/geojson/src/components/model';
7580
+ import type { InitializeModelState, ModelState, UpdateModelState } from '@mappedin/react-sdk/geojson/src/components/model';
7472
7581
  import type { GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
7473
7582
  import { DOMResizeSystem } from '@mappedin/react-sdk/geojson/src/systems/dom-resize/system';
7474
7583
  import { Camera } from '@mappedin/react-sdk/geojson/src/camera';
@@ -7596,7 +7705,10 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7596
7705
  /**
7597
7706
  * Add a group of models from GeoJSON data. These will be instanced automatically for better performance.
7598
7707
  */
7599
- addModelGroup(id: string, geometry: FeatureCollection<Point, ModelProperties>, style: ModelStyle, parent?: EntityId<GroupContainerState> | string | null): EntityId<GeometryGroupState> | undefined;
7708
+ addModelGroup(id: string, geometry: FeatureCollection<Point, ModelProperties>, style: Partial<InitializeModelState>, { parent, onComplete: onAdd, }?: {
7709
+ parent?: EntityId<GroupContainerState> | string | null;
7710
+ onComplete?: () => void;
7711
+ }): EntityId<GeometryGroupState> | undefined;
7600
7712
  /**
7601
7713
  * Add an HTML Marker at a GeoJSON coordinate.
7602
7714
  */
@@ -7657,6 +7769,9 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7657
7769
  * Recursively get the state for the whole scene. Can be an expensive operation.
7658
7770
  */
7659
7771
  getScene(): GroupContainerState;
7772
+ getThreeScene(): Scene | undefined;
7773
+ setEnvironment(update: EnvMapOptions): Promise<void>;
7774
+ getEnvironment(): EnvMapOptions;
7660
7775
  /**
7661
7776
  * Get the current scene as a GLB file
7662
7777
  */
@@ -7683,7 +7798,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7683
7798
  setState<T extends EntityId<GeometryState>>(object: T | T['id'], state: Partial<GeometryState>): void;
7684
7799
  setState<T extends EntityId<ShapeState>>(object: T | T['id'], state: Partial<ShapeState>): void;
7685
7800
  setState<T extends EntityId<PathState>>(object: T | T['id'], state: PathUpdateState): void;
7686
- setState<T extends EntityId<ModelState>>(object: T | T['id'], state: Partial<ModelState>): void;
7801
+ setState<T extends EntityId<ModelState>>(object: T | T['id'], state: Partial<UpdateModelState>): void;
7687
7802
  setState<T extends EntityId<ImageState>>(object: T | T['id'], state: Partial<ImageState>): void;
7688
7803
  setState<T extends EntityId<Text3DState>>(object: T | T['id'], state: Partial<UpdatableText3DState>): void;
7689
7804
  setState<T extends EntityState>(object: T | T['id'], state: Partial<T>): void;
@@ -7778,7 +7893,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7778
7893
  *
7779
7894
  * Note: Only use this if you have an animation frame setup elsewhere
7780
7895
  */
7781
- renderSync: () => Promise<any>;
7896
+ renderSync: () => Promise<any> | undefined;
7782
7897
  /**
7783
7898
  * @internal for testing
7784
7899
  */
@@ -7985,7 +8100,7 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
7985
8100
  /**
7986
8101
  * The camera's current pan mode.
7987
8102
  */
7988
- get panMode(): "elevation" | "default";
8103
+ get panMode(): "default" | "elevation";
7989
8104
  /**
7990
8105
  * Set the camera's pan mode. 'elevation' moves the camera up and down, while 'default' allows the camera to pan along the ground.
7991
8106
  */
@@ -7996,6 +8111,10 @@ declare module '@mappedin/react-sdk/geojson/src/camera' {
7996
8111
  */
7997
8112
  setInsetPadding(padding: InsetPadding): void;
7998
8113
  animateTo(options: AnimateToOptions): Promise<void>;
8114
+ getCameraFrameForCoordinates(coordinates: (GeoJSONPosition | Position)[], options?: FocusOnOptions): {
8115
+ center: Position;
8116
+ zoomLevel: number;
8117
+ };
7999
8118
  /**
8000
8119
  * Focuses the camera on a set of coordinates, with optional animation
8001
8120
  *
@@ -8099,10 +8218,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8099
8218
  content: z.ZodString;
8100
8219
  }, "strip", z.ZodTypeAny, {
8101
8220
  type: "text3d";
8102
- id: string | number;
8103
- color: string;
8104
- position: [number, number, number];
8105
8221
  visible: boolean;
8222
+ color: string;
8106
8223
  flipToFaceCamera: boolean;
8107
8224
  fontSize: number;
8108
8225
  margin: number | [number, number, number, number];
@@ -8116,6 +8233,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8116
8233
  strokeOpacity: number;
8117
8234
  strokeColor: string;
8118
8235
  fillOpacity: number;
8236
+ id: string | number;
8237
+ position: [number, number, number];
8119
8238
  content: string;
8120
8239
  maxWidth?: number | undefined;
8121
8240
  font?: string | undefined;
@@ -8123,10 +8242,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8123
8242
  hoverColor?: string | undefined;
8124
8243
  }, {
8125
8244
  type: "text3d";
8126
- id: string | number;
8127
- color: string;
8128
- position: [number, number, number];
8129
8245
  visible: boolean;
8246
+ color: string;
8130
8247
  flipToFaceCamera: boolean;
8131
8248
  fontSize: number;
8132
8249
  margin: number | [number, number, number, number];
@@ -8140,6 +8257,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8140
8257
  strokeOpacity: number;
8141
8258
  strokeColor: string;
8142
8259
  fillOpacity: number;
8260
+ id: string | number;
8261
+ position: [number, number, number];
8143
8262
  content: string;
8144
8263
  maxWidth?: number | undefined;
8145
8264
  font?: string | undefined;
@@ -8176,9 +8295,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8176
8295
  content: z.ZodOptional<z.ZodString>;
8177
8296
  }, "type" | "id">, "strict", z.ZodTypeAny, {
8178
8297
  maxWidth?: number | undefined;
8179
- color?: string | undefined;
8180
- position?: [number, number, number] | undefined;
8181
8298
  visible?: boolean | undefined;
8299
+ color?: string | undefined;
8182
8300
  flipToFaceCamera?: boolean | undefined;
8183
8301
  font?: string | undefined;
8184
8302
  fontSize?: number | undefined;
@@ -8195,12 +8313,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8195
8313
  strokeColor?: string | undefined;
8196
8314
  fillOpacity?: number | undefined;
8197
8315
  hoverColor?: string | undefined;
8316
+ position?: [number, number, number] | undefined;
8198
8317
  content?: string | undefined;
8199
8318
  }, {
8200
8319
  maxWidth?: number | undefined;
8201
- color?: string | undefined;
8202
- position?: [number, number, number] | undefined;
8203
8320
  visible?: boolean | undefined;
8321
+ color?: string | undefined;
8204
8322
  flipToFaceCamera?: boolean | undefined;
8205
8323
  font?: string | undefined;
8206
8324
  fontSize?: number | undefined;
@@ -8217,6 +8335,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8217
8335
  strokeColor?: string | undefined;
8218
8336
  fillOpacity?: number | undefined;
8219
8337
  hoverColor?: string | undefined;
8338
+ position?: [number, number, number] | undefined;
8220
8339
  content?: string | undefined;
8221
8340
  }>;
8222
8341
  /**
@@ -8249,9 +8368,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8249
8368
  type: z.ZodOptional<z.ZodLiteral<"text3d">>;
8250
8369
  position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
8251
8370
  content: z.ZodOptional<z.ZodString>;
8252
- }, "type" | "id">, "maxWidth" | "position" | "margin" | "maxHeight" | "content">, "strict", z.ZodTypeAny, {
8253
- color?: string | undefined;
8371
+ }, "type" | "id">, "maxWidth" | "margin" | "maxHeight" | "position" | "content">, "strict", z.ZodTypeAny, {
8254
8372
  visible?: boolean | undefined;
8373
+ color?: string | undefined;
8255
8374
  flipToFaceCamera?: boolean | undefined;
8256
8375
  font?: string | undefined;
8257
8376
  fontSize?: number | undefined;
@@ -8267,8 +8386,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8267
8386
  fillOpacity?: number | undefined;
8268
8387
  hoverColor?: string | undefined;
8269
8388
  }, {
8270
- color?: string | undefined;
8271
8389
  visible?: boolean | undefined;
8390
+ color?: string | undefined;
8272
8391
  flipToFaceCamera?: boolean | undefined;
8273
8392
  font?: string | undefined;
8274
8393
  fontSize?: number | undefined;
@@ -8319,9 +8438,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8319
8438
  content: z.ZodOptional<z.ZodString>;
8320
8439
  }, "type" | "id">, "strict", z.ZodTypeAny, {
8321
8440
  maxWidth?: number | undefined;
8322
- color?: string | undefined;
8323
- position?: [number, number, number] | undefined;
8324
8441
  visible?: boolean | undefined;
8442
+ color?: string | undefined;
8325
8443
  flipToFaceCamera?: boolean | undefined;
8326
8444
  font?: string | undefined;
8327
8445
  fontSize?: number | undefined;
@@ -8338,12 +8456,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8338
8456
  strokeColor?: string | undefined;
8339
8457
  fillOpacity?: number | undefined;
8340
8458
  hoverColor?: string | undefined;
8459
+ position?: [number, number, number] | undefined;
8341
8460
  content?: string | undefined;
8342
8461
  }, {
8343
8462
  maxWidth?: number | undefined;
8344
- color?: string | undefined;
8345
- position?: [number, number, number] | undefined;
8346
8463
  visible?: boolean | undefined;
8464
+ color?: string | undefined;
8347
8465
  flipToFaceCamera?: boolean | undefined;
8348
8466
  font?: string | undefined;
8349
8467
  fontSize?: number | undefined;
@@ -8360,6 +8478,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8360
8478
  strokeColor?: string | undefined;
8361
8479
  fillOpacity?: number | undefined;
8362
8480
  hoverColor?: string | undefined;
8481
+ position?: [number, number, number] | undefined;
8363
8482
  content?: string | undefined;
8364
8483
  }>>;
8365
8484
  parentId: z.ZodOptional<z.ZodString>;
@@ -8367,9 +8486,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8367
8486
  parentId?: string | undefined;
8368
8487
  appearance?: {
8369
8488
  maxWidth?: number | undefined;
8370
- color?: string | undefined;
8371
- position?: [number, number, number] | undefined;
8372
8489
  visible?: boolean | undefined;
8490
+ color?: string | undefined;
8373
8491
  flipToFaceCamera?: boolean | undefined;
8374
8492
  font?: string | undefined;
8375
8493
  fontSize?: number | undefined;
@@ -8386,15 +8504,15 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8386
8504
  strokeColor?: string | undefined;
8387
8505
  fillOpacity?: number | undefined;
8388
8506
  hoverColor?: string | undefined;
8507
+ position?: [number, number, number] | undefined;
8389
8508
  content?: string | undefined;
8390
8509
  } | undefined;
8391
8510
  }, {
8392
8511
  parentId?: string | undefined;
8393
8512
  appearance?: {
8394
8513
  maxWidth?: number | undefined;
8395
- color?: string | undefined;
8396
- position?: [number, number, number] | undefined;
8397
8514
  visible?: boolean | undefined;
8515
+ color?: string | undefined;
8398
8516
  flipToFaceCamera?: boolean | undefined;
8399
8517
  font?: string | undefined;
8400
8518
  fontSize?: number | undefined;
@@ -8411,6 +8529,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8411
8529
  strokeColor?: string | undefined;
8412
8530
  fillOpacity?: number | undefined;
8413
8531
  hoverColor?: string | undefined;
8532
+ position?: [number, number, number] | undefined;
8414
8533
  content?: string | undefined;
8415
8534
  } | undefined;
8416
8535
  }>;
@@ -8433,14 +8552,15 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8433
8552
  }
8434
8553
 
8435
8554
  declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
8436
- import type { CollisionRankingTier, GeometryState, LabelState, RendererCore } from '@mappedin/react-sdk/geojson/src';
8555
+ import type { CollisionRankingTier, GeometryState, LabelState, ModelState, RendererCore } from '@mappedin/react-sdk/geojson/src';
8437
8556
  import { type MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
8438
8557
  import type { PathUpdateState } from '@mappedin/react-sdk/geojson/src/components/path';
8439
8558
  import type { EntityTypes, All3DTypes, Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8440
8559
  import type { KeysOfUnion } from '@mappedin/react-sdk/geojson/src/utils';
8441
8560
  import { GeometryGroupObject3D, type GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
8442
8561
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8443
- import { Geometry3D, Geometry3DObject3D, type Geometry3DTypes, type TextGeometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8562
+ import { Geometry3D, Geometry3DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8563
+ import type { ModelGeometry3D, Geometry3DTypes, TextGeometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8444
8564
  import { Geometry2D, Geometry2DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
8445
8565
  import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
8446
8566
  import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
@@ -8482,6 +8602,11 @@ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
8482
8602
  * Handle state update of the text3d geometry.
8483
8603
  */
8484
8604
  export function handleText3DUpdate(geometry: TextGeometry3D, update: Partial<Text3DState>): void;
8605
+ /**
8606
+ * @internal
8607
+ */
8608
+ export const MODEL_UPATE_PROPS: KeysOfUnion<ModelState>[];
8609
+ export function handleModelStyleUpdate(geometry: ModelGeometry3D, update: Partial<ModelState>): void;
8485
8610
  }
8486
8611
 
8487
8612
  declare module '@mappedin/react-sdk/packages/geojson-navigator' {
@@ -8587,11 +8712,13 @@ declare module '@mappedin/react-sdk/geojson/src/utils/debug' {
8587
8712
  import type Core from '@mappedin/react-sdk/geojson/src/renderer';
8588
8713
  const DEFAULT_DEBUG_STATE: {
8589
8714
  showPolygonLabelTextAreaMesh: boolean;
8715
+ showEnvMap: boolean;
8590
8716
  };
8591
8717
  export type DebugState = typeof DEFAULT_DEBUG_STATE;
8592
8718
  export class Debug {
8593
8719
  state: {
8594
8720
  showPolygonLabelTextAreaMesh: boolean;
8721
+ showEnvMap: boolean;
8595
8722
  };
8596
8723
  core: Core;
8597
8724
  constructor(core: Core);
@@ -8764,6 +8891,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/html-controls/system' {
8764
8891
  declare module '@mappedin/react-sdk/geojson/src/components/styles' {
8765
8892
  export { StyleComponent, DEFAULT_COLOR, type MaterialSide } from '@mappedin/react-sdk/geojson/src/components/styles/style';
8766
8893
  export { Text3DStyleComponent, type Text3DStyle, DEFAULT_TEXT_STYLE } from '@mappedin/react-sdk/geojson/src/components/styles/text-style';
8894
+ export { ModelStyleComponnet, type ModelStyle } from '@mappedin/react-sdk/geojson/src/components/styles/model-style';
8767
8895
  }
8768
8896
 
8769
8897
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
@@ -8775,7 +8903,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
8775
8903
  import { Facade, Coordinate, MapObject, Space, Floor, Door } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8776
8904
  import type { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
8777
8905
  import { Label, Marker, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8778
- import { Text3D as Text3DView, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8906
+ import { Text3D as Text3DView, Model, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8779
8907
  import { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
8780
8908
  import type { TGetState, TUpdateState } from '@mappedin/react-sdk/mappedin-js/src/types';
8781
8909
  import { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera';
@@ -8824,7 +8952,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
8824
8952
  get DynamicFocus(): import("..").DynamicFocus;
8825
8953
  get StackedMaps(): import("..").StackedMaps;
8826
8954
  constructor(rendererCore: RendererCore, mapView: MapView);
8827
- updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Door | Facade | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
8955
+ updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
8828
8956
  update: () => void;
8829
8957
  getMapDataInternal(): MapDataInternal | undefined;
8830
8958
  getMapData(): MapData | undefined;
@@ -8834,7 +8962,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
8834
8962
  updateWatermark(options: WatermarkUpdateOptions): void;
8835
8963
  get currentFloorStack(): FloorStack;
8836
8964
  get currentFloor(): Floor;
8837
- getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
8965
+ getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | string>(target: T): TGetState<T>;
8838
8966
  setHoverColor(c: string): void;
8839
8967
  getHoverColor(): string | undefined;
8840
8968
  createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
@@ -8856,13 +8984,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8856
8984
  import { PubSub } from '@packages/internal/common';
8857
8985
  import type { Position, AddLabelOptions, RendererCore, PathState, MarkerState, LineStyle, PaintStyle, EntityId } from '@mappedin/core-sdk';
8858
8986
  import { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
8859
- import type { Coordinate, Directions, Floor, TAddMarkerOptions, TAddPathOptions, TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
8987
+ import type { Directions, Floor, TAddMarkerOptions, TAddPathOptions, TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
8860
8988
  import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions, TDirectionInstruction, TAddText3DOptions, IAnchorable } from '@mappedin/react-sdk/mappedin-js/src/types';
8861
8989
  import { type AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
8862
8990
  import { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
8863
8991
  import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
8864
8992
  import type { Path, Shape, Label } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8865
- import { type MapDataInternal, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8993
+ import { Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8994
+ import type { Coordinate, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8866
8995
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
8867
8996
  import { FloorStackObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object';
8868
8997
  import { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus';
@@ -9296,6 +9425,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
9296
9425
  * @param panMode The new pan mode.
9297
9426
  */
9298
9427
  setPanMode(panMode: 'default' | 'elevation'): void;
9428
+ /**
9429
+ * Get the camera transform that can be used to focus on a target or array of targets. Similar to {@link Camera.focusOn} but returns the transform directly.
9430
+ * @param target The target(s) to get the camera transform for.
9431
+ * @param options Optional settings for the camera transform.
9432
+ * @returns The camera transform which can then be passed to {@link Camera.set} or {@link Camera.animateTo}.
9433
+ *
9434
+ * @example
9435
+ * // Focus on a single space
9436
+ * const transform = mapView.Camera.getCameraFocusTransform(space, { minZoomLevel: 5 });
9437
+ * mapView.Camera.animateTo(transform);
9438
+ */
9439
+ getFocusOnTransform(target: IFocusable | IFocusable[], options?: TFocusOnOptions): TCameraTarget;
9299
9440
  /**
9300
9441
  * Focuses the camera on a specific target or array of targets.
9301
9442
  *
@@ -9622,7 +9763,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
9622
9763
  * // Add a {@link Model} to the map.
9623
9764
  * mapView.Models.add(coordinate);
9624
9765
  */
9625
- add(models: TAddModel | TAddModel[], options: TAddModelOptions): Model[];
9766
+ add(models: TAddModel, options: TAddModelOptions): Model;
9626
9767
  /**
9627
9768
  * Removes a model from the map.
9628
9769
  *
@@ -10848,7 +10989,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
10848
10989
  import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
10849
10990
  import { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
10850
10991
  import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
10851
- import type { Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
10992
+ import type { ModelStyleComponnet, Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
10852
10993
  export enum Geometry3DComponents {
10853
10994
  Mesh = 0,
10854
10995
  Style = 1,
@@ -10859,6 +11000,10 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
10859
11000
  type: Geometry3DObjectTypes;
10860
11001
  userData: {
10861
11002
  entityId: string;
11003
+ /**
11004
+ * TODO: remove this when proper instancing is handled
11005
+ */
11006
+ isSingleModel?: boolean;
10862
11007
  type: Geometry3DObjectTypes;
10863
11008
  };
10864
11009
  }
@@ -10871,7 +11016,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
10871
11016
  }
10872
11017
  export type MeshComponentTypes = MeshComponent | PathComponent | ModelComponent | CustomGeometryComponent | Text3DComponent | ImageComponent;
10873
11018
  type MappedComponentType<M> = M extends MeshComponent ? 'geometry' : M extends PathComponent ? 'path' : M extends ModelComponent ? 'model' : M extends CustomGeometryComponent ? 'custom-geometry' : M extends ImageComponent ? 'image' : M extends Text3DComponent ? 'text3d' : never;
10874
- export class Geometry3D<M extends MeshComponentTypes = MeshComponent, S extends StyleComponent | Text3DStyleComponent = StyleComponent, I extends InteractionComponent = InteractionComponent, T extends MappedComponentType<M> = MappedComponentType<M>> {
11019
+ export class Geometry3D<M extends MeshComponentTypes = MeshComponent, S extends StyleComponent | Text3DStyleComponent | ModelStyleComponnet = StyleComponent, I extends InteractionComponent = InteractionComponent, T extends MappedComponentType<M> = MappedComponentType<M>> {
10875
11020
  id: string | number;
10876
11021
  components: [M, S, I?];
10877
11022
  get object3d(): M["mesh"];
@@ -10885,7 +11030,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
10885
11030
  }
10886
11031
  export type TextGeometry3D = Geometry3D<Text3DComponent, Text3DStyleComponent, InteractionComponent, 'text3d'>;
10887
11032
  export type CustomGeometry3D = Geometry3D<CustomGeometryComponent, StyleComponent, InteractionComponent, 'custom-geometry'>;
10888
- export type ModelGeometry3D = Geometry3D<ModelComponent, StyleComponent, InteractionComponent, 'model'>;
11033
+ export type ModelGeometry3D = Geometry3D<ModelComponent, ModelStyleComponnet, InteractionComponent, 'model'>;
10889
11034
  export type PathGeometry3D = Geometry3D<PathComponent, StyleComponent, InteractionComponent, 'path'>;
10890
11035
  export type ImageGeometry3D = Geometry3D<ImageComponent, StyleComponent, InteractionComponent, 'image'>;
10891
11036
  export type MeshGeometry3D = Geometry3D<MeshComponent, StyleComponent, InteractionComponent, 'geometry'>;
@@ -11062,7 +11207,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/geometry-group-style'
11062
11207
  export class GeometryGroupStyleComponent implements GeometryGroupStyle {
11063
11208
  #private;
11064
11209
  color: string;
11210
+ initialColor: string;
11065
11211
  topColor?: string;
11212
+ initialTopColor?: string;
11066
11213
  opacity: number;
11067
11214
  height?: number;
11068
11215
  outline: boolean;
@@ -11128,13 +11275,13 @@ declare module '@mappedin/react-sdk/geojson/src/components/image' {
11128
11275
  }, "strip", z.ZodTypeAny, {
11129
11276
  height: number;
11130
11277
  width: number;
11131
- rotation?: number | undefined;
11132
11278
  verticalOffset?: number | undefined;
11279
+ rotation?: number | undefined;
11133
11280
  }, {
11134
11281
  height: number;
11135
11282
  width: number;
11136
- rotation?: number | undefined;
11137
11283
  verticalOffset?: number | undefined;
11284
+ rotation?: number | undefined;
11138
11285
  }>;
11139
11286
  geometry: z.ZodObject<{
11140
11287
  type: z.ZodEnum<["Point"]>;
@@ -11155,8 +11302,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/image' {
11155
11302
  properties: {
11156
11303
  height: number;
11157
11304
  width: number;
11158
- rotation?: number | undefined;
11159
11305
  verticalOffset?: number | undefined;
11306
+ rotation?: number | undefined;
11160
11307
  };
11161
11308
  }, {
11162
11309
  type: "Feature";
@@ -11167,8 +11314,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/image' {
11167
11314
  properties: {
11168
11315
  height: number;
11169
11316
  width: number;
11170
- rotation?: number | undefined;
11171
11317
  verticalOffset?: number | undefined;
11318
+ rotation?: number | undefined;
11172
11319
  };
11173
11320
  }>;
11174
11321
  export function validateImage(id: string | number, feature: Feature<Point, ImageProperties>, style: ImageStyle): void;
@@ -11216,6 +11363,7 @@ declare module '@mappedin/react-sdk/geojson/src/types/options' {
11216
11363
  import type { Map as MapLibreMap } from '@mappedin/react-sdk/packages/outdoor-context-v4';
11217
11364
  import type { AttributionControlOptions } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
11218
11365
  import type { WatermarkOptions } from '@mappedin/react-sdk/geojson/src';
11366
+ export type EnvMapOptions = 'basic' | false;
11219
11367
  export type RendererCoreOptions = Partial<{
11220
11368
  center?: Position;
11221
11369
  zoomLevel?: number;
@@ -11240,6 +11388,11 @@ declare module '@mappedin/react-sdk/geojson/src/types/options' {
11240
11388
  onWebGLRendererError?: (error: Error) => void;
11241
11389
  watermark?: WatermarkOptions;
11242
11390
  attribution?: AttributionControlOptions;
11391
+ /**
11392
+ * environment map for reflections.
11393
+ * @default 'basic'
11394
+ */
11395
+ environment?: EnvMapOptions;
11243
11396
  }>;
11244
11397
  }
11245
11398
 
@@ -11341,7 +11494,7 @@ declare module '@mappedin/react-sdk/packages/common/pubsub' {
11341
11494
 
11342
11495
  declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
11343
11496
  import type { Scene, Camera } from 'three';
11344
- import { Color, WebGL1Renderer, WebGLRenderer } from 'three';
11497
+ import { Color, WebGLRenderer } from 'three';
11345
11498
  export type TRendererOptions = {
11346
11499
  alpha: boolean;
11347
11500
  onWebGLRendererError: (e: Error) => void;
@@ -11353,12 +11506,13 @@ declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
11353
11506
  width: number;
11354
11507
  height: number;
11355
11508
  options: TRendererOptions;
11356
- renderer?: WebGLRenderer | WebGL1Renderer;
11357
- constructor(renderOptions: any, targetWebGLVersion?: number);
11509
+ renderer?: WebGLRenderer;
11510
+ constructor(renderOptions: any);
11358
11511
  /**
11359
11512
  * Dispose of the renderer and its buffers.
11360
11513
  */
11361
11514
  destroy(): void;
11515
+ enabledLayers: Set<number>;
11362
11516
  /**
11363
11517
  * Re-render the scene, depending on which parts of the scene have been
11364
11518
  * invalidated.
@@ -11401,10 +11555,12 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
11401
11555
  import { MeshComponent, type MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
11402
11556
  import { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
11403
11557
  import type { Feature, LineString, MultiPolygon, Point, Polygon } from 'geojson';
11404
- import type { LineStyle, ModelProperties, ModelStyle, PaintStyle } from '@mappedin/react-sdk/geojson/src/types';
11405
- import type { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
11558
+ import type { LineStyle, ModelProperties, PaintStyle } from '@mappedin/react-sdk/geojson/src/types';
11559
+ import { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
11406
11560
  import type { ModelGeometry3D } from '@mappedin/react-sdk/geojson/src/entities';
11407
11561
  import { PubSub } from '@packages/internal/common';
11562
+ import type { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
11563
+ import type { ModelStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
11408
11564
  export class MeshCreationAndOptimizationSystem extends PubSub<{
11409
11565
  'model-loaded': void;
11410
11566
  }> {
@@ -11412,14 +11568,14 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
11412
11568
  convertTo3DMapPosition: any;
11413
11569
  loader?: GLTFLoader;
11414
11570
  constructor(state: RendererState, convertTo3DMapPosition: any);
11415
- getGLTFLoader(): Promise<void>;
11571
+ getGLTFLoader(): Promise<GLTFLoader>;
11416
11572
  createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D<MeshComponent, StyleComponent, import("../../components/interaction").InteractionComponent, "geometry">;
11417
- createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: ModelStyle): ModelGeometry3D;
11573
+ createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: Partial<ModelStyle>): ModelGeometry3D;
11418
11574
  populateEntityMesh(entity: Geometry3D, geometry: BufferGeometry): void;
11419
- populateModelGroup(entities: Set<string | number>, url: string, tree: any): Promise<Geometry3DObject3D>;
11575
+ populateModelGroup(entities: Set<string | number>, url: string, tree: GeometryGroupObject3D): Promise<Geometry3DObject3D>;
11420
11576
  populateEntityGroup(entities: Set<string | number>): Set<string | number>;
11421
11577
  optimize(tree: any): void;
11422
- update(): void;
11578
+ update(): Promise<void[]> | undefined;
11423
11579
  }
11424
11580
  }
11425
11581
 
@@ -11547,7 +11703,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/render/system' {
11547
11703
  constructor(renderer: Renderer, state: RendererState, mode: RendererCore['mode'], scene: Scene, cameraObject: PerspectiveCamera, viewCamera: Camera, systems: Systems);
11548
11704
  twoDdirty: boolean;
11549
11705
  threeDdirty: boolean;
11550
- update: (sync?: boolean) => Promise<any>;
11706
+ update: (sync?: boolean) => Promise<any> | undefined;
11551
11707
  destroy(): void;
11552
11708
  }
11553
11709
  }
@@ -11945,6 +12101,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/styles/style' {
11945
12101
  export class StyleComponent implements Style {
11946
12102
  initialColor: string;
11947
12103
  color: string;
12104
+ initialTopColor?: string;
11948
12105
  topColor?: string;
11949
12106
  topTexture?: string;
11950
12107
  texture?: string;
@@ -12251,6 +12408,59 @@ declare module '@mappedin/react-sdk/geojson/src/components/styles/text-style' {
12251
12408
  };
12252
12409
  }
12253
12410
 
12411
+ declare module '@mappedin/react-sdk/geojson/src/components/styles/model-style' {
12412
+ type MaterialStyle = {
12413
+ color: string;
12414
+ };
12415
+ export type ModelStyle = {
12416
+ /**
12417
+ * Model's URL. Can be based64 inlined url.
12418
+ */
12419
+ url: string;
12420
+ /**
12421
+ * Visiiblity of the model group
12422
+ */
12423
+ visible: boolean;
12424
+ /**
12425
+ * Opacity of the model group.
12426
+ */
12427
+ opacity: number;
12428
+ /**
12429
+ * Change material state by name
12430
+ * @example
12431
+ * ```ts
12432
+ * mapView.Models.add(
12433
+ * { target: new Coordinate(45, -75) },
12434
+ * {
12435
+ * url: 'bed.glb',
12436
+ * materials: {
12437
+ * Default: {
12438
+ * color: MAPPEDIN_COLOR.orange,
12439
+ * },
12440
+ * },
12441
+ * },
12442
+ * );
12443
+ * ```
12444
+ */
12445
+ material: {
12446
+ [name: string]: MaterialStyle;
12447
+ };
12448
+ /**
12449
+ * vertical offset of the model in meters off the floor
12450
+ */
12451
+ verticalOffset: number;
12452
+ };
12453
+ export class ModelStyleComponnet implements Partial<ModelStyle> {
12454
+ dirty: boolean;
12455
+ visible: boolean;
12456
+ opacity: number;
12457
+ verticalOffset: number;
12458
+ material?: ModelStyle['material'];
12459
+ constructor(init?: Partial<ModelStyle>);
12460
+ }
12461
+ export {};
12462
+ }
12463
+
12254
12464
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
12255
12465
  import type { Polygon, MultiPolygon, FloorProperties as MVFFloor, ParsedMVF, Feature } from '@mappedin/mvf';
12256
12466
  import type { RendererCore } from '@mappedin/core-sdk';
@@ -12537,6 +12747,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
12537
12747
  getCursor(): CursorTypes;
12538
12748
  resize: () => void;
12539
12749
  }
12750
+ export function findModelParent(object: Object3D): Object3D<import("three").Object3DEventMap> | undefined;
12540
12751
  export {};
12541
12752
  }
12542
12753
 
@@ -12978,6 +13189,12 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
12978
13189
  convertZoomLevelToAltitude: (zoomLevel: number) => number;
12979
13190
  static CAMERA_FRAME_PADDING_SIDES: readonly ["top", "bottom", "left", "right"];
12980
13191
  debugContainer: Object3D<import("three").Object3DEventMap>;
13192
+ getCameraFrameForCoordinates(pointCloud: Vector3[], options: CameraFocusOnOptions & {
13193
+ padding: InsetPadding;
13194
+ }): {
13195
+ center: Vector3;
13196
+ zoomLevel: number;
13197
+ };
12981
13198
  focusOn(pointCloud: Vector3[], options: CameraFocusOnOptions & {
12982
13199
  padding: InsetPadding;
12983
13200
  }): void;