@mappedin/mappedin-js 6.18.0 → 6.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/THIRD_PARTY_LICENSES.txt +408 -5
  2. package/lib/esm/GLTFExporter-G4WLRGTD.js +1 -0
  3. package/lib/esm/GLTFLoader-6KS65AUU.js +1 -0
  4. package/lib/esm/{chunk-X2XAL5AL.js → chunk-5DTIPZIM.js} +1 -1
  5. package/lib/esm/chunk-7ZLJ5BZG.js +956 -0
  6. package/lib/esm/chunk-PJFSEFCS.js +660 -0
  7. package/lib/esm/chunk-PWEV3AFA.js +1 -0
  8. package/lib/esm/chunk-S634J4FK.js +3819 -0
  9. package/lib/esm/chunk-XH3AOOQM.js +1515 -0
  10. package/lib/esm/index.css +1 -1
  11. package/lib/esm/index.d.ts +563 -87
  12. package/lib/esm/index.js +1 -1
  13. package/lib/esm/inspector-IMRVE3SS.js +482 -0
  14. package/lib/esm/inspector-PGGVNGUZ.css +1 -0
  15. package/lib/esm/internal-75ZEUF5X.js +1 -0
  16. package/lib/esm/internal-Q5HDG37N.css +1 -0
  17. package/lib/esm/{roboto-regular-OIQQVHWA.js → roboto-regular-6ZYOMS3F.js} +1 -1
  18. package/lib/esm/src-RKBRVS5G.js +1 -0
  19. package/lib/esm/src-WUAFLQGO.css +1 -0
  20. package/lib/esm/text3d-YG2QJ2JU.js +252 -0
  21. package/lib/esm/workers/collision-worker.csp.js +1 -1
  22. package/lib/index.css +1 -1
  23. package/package.json +1 -1
  24. package/lib/esm/GLTFExporter-REUTCDDJ.js +0 -1
  25. package/lib/esm/GLTFLoader-BHAZAEWN.js +0 -1
  26. package/lib/esm/chunk-FILUCKU4.js +0 -1
  27. package/lib/esm/chunk-FQILVVN4.js +0 -1
  28. package/lib/esm/chunk-KNYR4VGD.js +0 -1
  29. package/lib/esm/chunk-MCLERQTU.js +0 -1
  30. package/lib/esm/chunk-USECXCBB.js +0 -1
  31. package/lib/esm/inspector-6AQ5XCPD.js +0 -1
  32. package/lib/esm/inspector-6RM5OI6U.css +0 -1
  33. package/lib/esm/internal-I66JHO4D.js +0 -1
  34. package/lib/esm/internal-J5PK6TOB.css +0 -1
  35. package/lib/esm/src-GA2Z4OON.css +0 -1
  36. package/lib/esm/src-VUR3CJ3Y.js +0 -1
  37. package/lib/esm/text3d-WK55MUUL.js +0 -1
@@ -1,8 +1,8 @@
1
- import * as _mappedin_mvf_v28 from "@mappedin/mvf-v2";
1
+ import * as _mappedin_mvf_v22 from "@mappedin/mvf-v2";
2
2
  import { AnnotationCollection, AnnotationSymbol, AreaCollection, AreaId, BaseTextAreaProperties, Category, CategoryId, Connection as Connection$1, Details, EnterpriseCategory as EnterpriseCategory$1, EnterpriseCategoryId, EnterpriseLocation as EnterpriseLocation$1, EnterpriseLocationId, EnterpriseLocationInstance, EnterpriseTexture, EnterpriseVenue as EnterpriseVenue$1, EnterpriseVenueType, EntranceCollection, EntranceFeature, Facade as Facade$1, Feature as Feature$1, FeatureCollection as FeatureCollection$1, FloatingFloorTextProperties, FloorCollection, FloorId, FloorProperties, FloorStack as FloorStack$1, FloorTextCommonProperties, Geometry as Geometry$1, Hyperlink as Hyperlink$1, Image, Language, LineStringStyle, LineStringStyle as TMVFLineStringStyle, Location, LocationId, LocationLink, LocationSocial, LocationSocial as LocationSocial$1, LocationState, LocationState as LocationState$1, MVFv2_STANDARD_MVFv3, MultiPolygon as MultiPolygon$1, NavigationFlagDeclarations, NodeCollection, NodeId, ObstructionCollection, ObstructionCollection as ObstructionCollection$1, ObstructionFeature, ObstructionId, OpeningHoursSpecification, OperationHours, OperationHours as OperationHours$1, ParsedMVF, ParsedMVF as TMVF, ParsedMVFLocalePack, Point as Point$1, PointStyle, PointStyle as TMVFPointStyle, Polygon as Polygon$1, PolygonStyle, PolygonStyle as TMVFPolygonStyle, SiblingGroup, SiblingGroup as SiblingGroup$1, SpaceCollection, SpaceCollection as SpaceCollection$1, SpaceFeature, SpaceId, SpaceProperties, Style as TMVFStyle, StyleCollection, StyleCollection as TMVFStyleCollection, TilesetStyle } from "@mappedin/mvf-v2";
3
3
  import { MVFv2_STANDARD_MVFv3 as MVFv2_STANDARD_MVFv3$1, ParsedMVF as ParsedMVF$1, RawMVF } from "@mappedin/mvf-v2/no-validator-lite";
4
4
  import * as _mappedin_renderer_three0 from "@mappedin/renderer-three";
5
- import { AddLabelOptionsInternal, AddText3DOptions, AddText3DOptions as AddText3DOptions$1, AddText3DPointOptions, CameraSystemState, ColorString, DebugState, DebugState as DebugState$1, EntityId, EnvMapOptions, EnvMapOptions as EnvMapOptions$1, GLTFExportOptions as GLTFExportOptions$1, GroupContainerState, ISystemPlugin, ISystemPlugin as ISystemPlugin$1, ImagePlacementOptions, InitializeModelState, InitializeModelState as InitializeModelState$1, InitializeText3DState, InsetPadding, InsetPadding as InsetPadding$1, InsetPaddingOption, InsetPaddingOption as InsetPaddingOption$1, InterpolateOn, Interpolation, LabelAppearance as LabelAppearance$1, LabelRenderedState, LabelTextPlacement as LabelTextPlacement$1, LineStyle, LineStyle as LineStyle$1, MapViewState, MarkerState, OutlinesOptions, PaintStyle, PaintStyle as PaintStyle$1, PathState, PathWidth, PathWidth as PathWidth$1, PixelWidth, Position as Position$1, RendererCore, RendererCoreOptions, Shading, Text3DState, WatermarkUpdateOptions } from "@mappedin/renderer-three";
5
+ import { AddLabelOptionsInternal, AddText3DOptions, AddText3DOptions as AddText3DOptions$1, AddText3DPointOptions, CameraSystemState, ColorString, DebugState, DebugState as DebugState$1, EntityId, EnvMapOptions, EnvMapOptions as EnvMapOptions$1, GLTFExportOptions as GLTFExportOptions$1, GroupContainerState, ISystemPlugin, ISystemPlugin as ISystemPlugin$1, ImagePlacementOptions, InitializeModelState, InitializeModelState as InitializeModelState$1, InitializeText3DState, InsetPadding, InsetPadding as InsetPadding$1, InsetPaddingOption, InsetPaddingOption as InsetPaddingOption$1, InterpolateOn, Interpolation, LabelAppearance as LabelAppearance$1, LabelRenderedState, LabelTextPlacement as LabelTextPlacement$1, LineStyle, LineStyle as LineStyle$1, MapViewState, MarkerState, OutlinesOptions, PaintStyle, PaintStyle as PaintStyle$1, PathState, PathWidth, PathWidth as PathWidth$1, PixelWidth, Position as Position$1, RendererCore, RendererCoreOptions, RendererCoreOptions as RendererCoreOptions$1, Shading, Text3DState, WatermarkUpdateOptions } from "@mappedin/renderer-three";
6
6
  import * as _tweenjs_tween_js0 from "@tweenjs/tween.js";
7
7
  import { Group, Tween } from "@tweenjs/tween.js";
8
8
  import { CustomLayerInterface, IControl, Map as Map$1, MapEventType } from "@mappedin/outdoor-context";
@@ -4371,7 +4371,99 @@ declare class Path implements IFocusable {
4371
4371
  declare const EASING_CURVES: readonly ["ease-in", "ease-out", "ease-in-out", "linear", "ease-out-cubic"];
4372
4372
  type EasingCurve = (typeof EASING_CURVES)[number];
4373
4373
  //#endregion
4374
+ //#region src/navigation/tethered.d.ts
4375
+ /**
4376
+ * Preset visual styles for the connector line drawn from the tracked
4377
+ * coordinate to the path when outside the tether threshold.
4378
+ *
4379
+ * - `'dashed-boxes'` — chunky 1m absolute dashes (default). Reads loudly as
4380
+ * "off-route".
4381
+ * - `'dashed-stripes'` — long dashes with tiny gaps. Almost-solid striped look.
4382
+ * - `'dashed-sparse'` — same dash size as `dashed-boxes` but with a much
4383
+ * bigger gap. Quieter, more breathable rhythm.
4384
+ * - `'solid'` — continuous solid line, no dashing. A plain leader line.
4385
+ * - `'bordered'` — ribbon geometry with darkened edges. Reads as a
4386
+ * warning ribbon. Forces ribbon geometry on the connector.
4387
+ *
4388
+ * For fine-grained control (custom colour, exact width, etc.) use
4389
+ * `outsideThresholdPathOptions` — it is merged on top of the preset and
4390
+ * wins on any conflicting properties.
4391
+ */
4392
+ type TOutsideThresholdPathStyle = 'solid' | 'dashed-boxes' | 'dashed-stripes' | 'dashed-sparse' | 'bordered';
4393
+ /**
4394
+ * Options for tethering to a coordinate.
4395
+ */
4396
+ type TTetheredOptions = {
4397
+ /**
4398
+ * The distance threshold within which the coordinate will be tethered to the path (meters).
4399
+ * @default 10
4400
+ */
4401
+ tetherThresholdDistance?: number;
4402
+ /**
4403
+ * Visual preset for the connector line drawn from the tracked coordinate
4404
+ * to the path when outside the tether threshold. See
4405
+ * {@link TOutsideThresholdPathStyle} for the list of presets.
4406
+ *
4407
+ * For finer control, use {@link outsideThresholdPathOptions} which is
4408
+ * merged on top of the preset.
4409
+ *
4410
+ * @default 'dashed-boxes'
4411
+ */
4412
+ outsideThresholdPathStyle?: TOutsideThresholdPathStyle;
4413
+ /**
4414
+ * Low-level overrides applied on top of {@link outsideThresholdPathStyle}.
4415
+ * Anything specified here wins over the preset.
4416
+ */
4417
+ outsideThresholdPathOptions?: Partial<TAddPathOptions>;
4418
+ /**
4419
+ * Options for the tether path (solid path from threshold point to destination).
4420
+ */
4421
+ tetherPathOptions?: Partial<TAddPathOptions>;
4422
+ /**
4423
+ * Controls behavior when the coordinate is outside the threshold distance from the path.
4424
+ * - `'tether-and-dash'`: Creates both the tethered path and a dashed line from user to threshold point (default)
4425
+ * - `'tether-only'`: Creates only the tethered path, no dashed line
4426
+ * - `'untether'`: Untethers from the path until a coordinate within threshold is provided
4427
+ * @default 'tether-and-dash'
4428
+ */
4429
+ coordinateOutsideThresholdMode?: 'tether-and-dash' | 'tether-only' | 'untether';
4430
+ /**
4431
+ * Whether to hide markers on the portion of the path the user has already travelled past.
4432
+ * Markers on the remaining path (current segment ahead of the user and all subsequent
4433
+ * segments, including the destination marker) stay enabled.
4434
+ * @default false
4435
+ */
4436
+ hideMarkersOutsideThreshold?: boolean;
4437
+ };
4438
+ //#endregion
4439
+ //#region src/navigation/travelled.d.ts
4440
+ /**
4441
+ * Options for updating travelled path state.
4442
+ */
4443
+ type TTravelledOptions = {
4444
+ /**
4445
+ * The color to use for the travelled portion of the path.
4446
+ * @default '#999'
4447
+ */
4448
+ color?: string;
4449
+ };
4450
+ //#endregion
4374
4451
  //#region src/navigation/index.d.ts
4452
+ /**
4453
+ * Options for tracking a coordinate on the navigation path.
4454
+ */
4455
+ type TTrackCoordinateOptions = {
4456
+ /**
4457
+ * The tracking mode to use.
4458
+ * - 'tethered': Connect the user's position to the closest point on the path
4459
+ * - 'travelled': Show the travelled portion of the path with a different color
4460
+ */
4461
+ mode: 'tethered' | 'travelled';
4462
+ } & (({
4463
+ mode: 'tethered';
4464
+ } & TTetheredOptions) | ({
4465
+ mode: 'travelled';
4466
+ } & TTravelledOptions));
4375
4467
  /**
4376
4468
  * Controls marker creation for navigation points.
4377
4469
  *
@@ -4600,6 +4692,102 @@ declare class Navigation {
4600
4692
  */
4601
4693
  setActivePathByDirections(target: Directions): void;
4602
4694
  clearHighlightedPathSection(): void;
4695
+ /**
4696
+ * Tracks the user's position on the navigation path using the specified mode.
4697
+ * Only one tracking mode can be active at a time — switching modes auto-clears
4698
+ * the previous mode's visual state.
4699
+ *
4700
+ * Call this on every position update (e.g. from BlueDot's `dot-position-update`
4701
+ * event). Use {@link stopTracking} to tear down all tracking state.
4702
+ *
4703
+ * @param coordinate - The user's current coordinate
4704
+ * @param options - Tracking options including mode ('tethered' or 'travelled') and mode-specific options
4705
+ * @returns For 'tethered' mode: path coordinates if successful, null otherwise.
4706
+ * For 'travelled' mode: the travelled fraction (0-1) if successful, null otherwise.
4707
+ * @experimental
4708
+ *
4709
+ * @example
4710
+ * ```ts
4711
+ * // 'tethered' — snap user position onto the closest point on the active path
4712
+ * blueDot.on('dot-position-update', e => {
4713
+ * mapView.Navigation.trackCoordinate(e.position, {
4714
+ * mode: 'tethered',
4715
+ * tetherThresholdDistance: 10,
4716
+ * coordinateOutsideThresholdMode: 'tether-and-dash',
4717
+ * outsideThresholdPathStyle: 'dashed-boxes',
4718
+ * });
4719
+ * });
4720
+ *
4721
+ * // 'travelled' — recolour the portion of the path the user has walked past
4722
+ * blueDot.on('dot-position-update', e => {
4723
+ * mapView.Navigation.trackCoordinate(e.position, {
4724
+ * mode: 'travelled',
4725
+ * color: '#999',
4726
+ * });
4727
+ * });
4728
+ * ```
4729
+ */
4730
+ trackCoordinate(coordinate: Coordinate, options: TTrackCoordinateOptions): Coordinate[] | number | null;
4731
+ /**
4732
+ * Stops any active coordinate tracking (tethering or travelled path visualization).
4733
+ * @experimental
4734
+ */
4735
+ stopTracking(): void;
4736
+ /**
4737
+ * Returns the current tracking mode, or `null` if no tracking is active.
4738
+ *
4739
+ * - `'tethered'` — coordinate is being snapped onto the active path.
4740
+ * - `'travelled'` — the traversed portion of the path is being recoloured.
4741
+ *
4742
+ * The mode is set as soon as {@link trackCoordinate} is called (even before
4743
+ * the first coordinate is matched). For a stricter "is the visualisation
4744
+ * currently active" check, use {@link isTracking}.
4745
+ *
4746
+ * @experimental
4747
+ */
4748
+ get currentTrackingMode(): 'tethered' | 'travelled' | null;
4749
+ /**
4750
+ * Returns true while a coordinate is actively being tracked and visualized
4751
+ * on the path.
4752
+ *
4753
+ * - In `'tethered'` mode this is true whenever a tethered path is drawn or
4754
+ * path segments behind the user have been hidden.
4755
+ * - In `'travelled'` mode this is true once one or more segments have been
4756
+ * marked as travelled.
4757
+ *
4758
+ * This is more precise than checking {@link currentTrackingMode}: the mode
4759
+ * is set as soon as {@link trackCoordinate} is called, but `isTracking`
4760
+ * only becomes true once the coordinate is successfully matched to the
4761
+ * path. It also becomes false again if `coordinateOutsideThresholdMode` is
4762
+ * `'untether'` and a coordinate falls outside the threshold.
4763
+ *
4764
+ * @experimental
4765
+ */
4766
+ get isTracking(): boolean;
4767
+ /**
4768
+ * Returns true while the dashed connector line from the tracked coordinate
4769
+ * to the path is being drawn. This only happens in `'tethered'` mode when
4770
+ * the coordinate is outside the tether threshold and
4771
+ * `coordinateOutsideThresholdMode` is `'tether-and-dash'` (the default).
4772
+ *
4773
+ * @experimental
4774
+ */
4775
+ get isShowingOutsideThresholdPath(): boolean;
4776
+ /**
4777
+ * Returns the fraction (0–1) of the active path that has been travelled
4778
+ * while in `'travelled'` mode. Returns `null` when not currently tracking
4779
+ * in travelled mode.
4780
+ *
4781
+ * Multiply by {@link Navigation.activePath}'s `distance` to get the
4782
+ * travelled distance in meters.
4783
+ *
4784
+ * In multi-destination mode this reflects progress along the currently
4785
+ * active destination's path only — it resets when the active path
4786
+ * changes.
4787
+ *
4788
+ * @experimental
4789
+ */
4790
+ get travelledFraction(): number | null;
4603
4791
  /**
4604
4792
  * Highlights path section between two coordinates. This can be used to highlight any section of the path or indicated the currently traveled path.
4605
4793
  */
@@ -4676,6 +4864,7 @@ declare class Footprint {
4676
4864
  private ceilingId?;
4677
4865
  private ceilingMaskId?;
4678
4866
  private basementMaskId?;
4867
+ private extrudedPolygonId?;
4679
4868
  private footprintColor;
4680
4869
  layer: EntityId<GroupContainerState>;
4681
4870
  groupContainer: EntityId<GroupContainerState>;
@@ -4703,6 +4892,23 @@ declare class Footprint {
4703
4892
  * @param voidPolygons Array of polygon features representing voids
4704
4893
  */
4705
4894
  buildVoidWalls(voidPolygons: Feature$1<Polygon$1, any>[]): void;
4895
+ /**
4896
+ * Builds the footprint as a single extruded polygon (no separate walls or ceiling).
4897
+ *
4898
+ * Used as the "simple mode" alternative to `buildWalls` + `buildVoidWalls` + `buildCeiling`
4899
+ * when no ceiling cuts are needed (i.e. `spacesOpenToBelowEnabled` is false, or it is
4900
+ * enabled but neither this floor nor the floor above contributes any cuts). Collapses
4901
+ * three feature collections into one, reducing draw calls per floor.
4902
+ *
4903
+ * The extruded mesh's top face acts as the "ceiling" — there is no separate ceiling
4904
+ * layer, so `ceilingVisible` and `ceilingThickness` are not honoured in simple mode.
4905
+ *
4906
+ * Holes are stripped from the source geometry before extrusion. The footprint may carry
4907
+ * void holes from MVF data, but in simple mode the user has opted out of "spaces open to
4908
+ * below" (or there are no cuts to apply), so the top and bottom faces must be solid —
4909
+ * matching the legacy `buildCeiling` path which also calls `removeHoles` before rendering.
4910
+ */
4911
+ buildExtrudedPolygon(): void;
4706
4912
  /**
4707
4913
  * Builds the ceiling with voids from the floor above
4708
4914
  */
@@ -4803,6 +5009,7 @@ declare class FloorObject implements FloorProperties {
4803
5009
  get visible(): boolean;
4804
5010
  setVisible(visible: boolean): void;
4805
5011
  buildCeiling(ceilingCuts: Feature$1<Polygon$1, any>[]): void;
5012
+ buildExtrudedPolygon(): void;
4806
5013
  buildBasementMask(): void;
4807
5014
  /**
4808
5015
  * Builds a gap footprint representing missing floors below this floor.
@@ -8708,7 +8915,7 @@ type TGeometryUpdateState = output<typeof geometryStateSchemaPartial>;
8708
8915
  declare const labelStateSchema: ZodObject<{
8709
8916
  type: ZodDefault<ZodLiteral<"label">>;
8710
8917
  text: ZodString;
8711
- rank: ZodCustom<TCollisionRankingTier | "initial", TCollisionRankingTier | "initial">;
8918
+ rank: ZodCustom<"initial" | TCollisionRankingTier, "initial" | TCollisionRankingTier>;
8712
8919
  appearance: ZodCustom<LabelAppearance, LabelAppearance>;
8713
8920
  interactive: ZodDefault<ZodBoolean>;
8714
8921
  enabled: ZodDefault<ZodBoolean>;
@@ -8730,7 +8937,7 @@ declare const labelStateSchema: ZodObject<{
8730
8937
  declare const labelStateSchemaPartial: ZodObject<{
8731
8938
  type: ZodOptional<ZodDefault<ZodLiteral<"label">>>;
8732
8939
  text: ZodOptional<ZodString>;
8733
- rank: ZodOptional<ZodCustom<TCollisionRankingTier | "initial", TCollisionRankingTier | "initial">>;
8940
+ rank: ZodOptional<ZodCustom<"initial" | TCollisionRankingTier, "initial" | TCollisionRankingTier>>;
8734
8941
  appearance: ZodOptional<ZodCustom<LabelAppearance, LabelAppearance>>;
8735
8942
  interactive: ZodOptional<ZodDefault<ZodBoolean>>;
8736
8943
  enabled: ZodOptional<ZodDefault<ZodBoolean>>;
@@ -8755,7 +8962,7 @@ type TLabelUpdateState = output<typeof labelStateSchemaPartial>;
8755
8962
  //#region src/states/marker-state.d.ts
8756
8963
  declare const markerStateSchema: ZodObject<{
8757
8964
  type: ZodDefault<ZodLiteral<"marker">>;
8758
- rank: ZodCustom<TCollisionRankingTier | "initial", TCollisionRankingTier | "initial">;
8965
+ rank: ZodCustom<"initial" | TCollisionRankingTier, "initial" | TCollisionRankingTier>;
8759
8966
  placement: ZodOptional<ZodUnion<readonly [ZodEnum<{
8760
8967
  hidden: "hidden";
8761
8968
  top: "top";
@@ -8796,7 +9003,9 @@ declare const markerStateSchema: ZodObject<{
8796
9003
  declare const markerStateSchemaPartial: ZodObject<{
8797
9004
  type: ZodOptional<ZodDefault<ZodLiteral<"marker">>>;
8798
9005
  enabled: ZodOptional<ZodDefault<ZodBoolean>>;
8799
- rank: ZodOptional<ZodCustom<TCollisionRankingTier | "initial", TCollisionRankingTier | "initial">>;
9006
+ interactive: ZodOptional<ZodDefault<ZodUnion<readonly [ZodBoolean, ZodLiteral<"pointer-events-auto">]>>>;
9007
+ rank: ZodOptional<ZodCustom<"initial" | TCollisionRankingTier, "initial" | TCollisionRankingTier>>;
9008
+ occlude: ZodOptional<ZodDefault<ZodBoolean>>;
8800
9009
  placement: ZodOptional<ZodOptional<ZodUnion<readonly [ZodEnum<{
8801
9010
  hidden: "hidden";
8802
9011
  top: "top";
@@ -8820,7 +9029,6 @@ declare const markerStateSchemaPartial: ZodObject<{
8820
9029
  "bottom-left": "bottom-left";
8821
9030
  "bottom-right": "bottom-right";
8822
9031
  }>>]>>>;
8823
- interactive: ZodOptional<ZodDefault<ZodUnion<readonly [ZodBoolean, ZodLiteral<"pointer-events-auto">]>>>;
8824
9032
  dynamicResize: ZodOptional<ZodDefault<ZodBoolean>>;
8825
9033
  zIndex: ZodOptional<ZodOptional<ZodNumber>>;
8826
9034
  lowPriorityPin: ZodOptional<ZodOptional<ZodObject<{
@@ -8829,7 +9037,6 @@ declare const markerStateSchemaPartial: ZodObject<{
8829
9037
  color: ZodOptional<ZodString>;
8830
9038
  }, $strip>>>;
8831
9039
  contentHTML: ZodOptional<ZodString>;
8832
- occlude: ZodOptional<ZodDefault<ZodBoolean>>;
8833
9040
  animated: ZodOptional<ZodDefault<ZodBoolean>>;
8834
9041
  }, $strip>;
8835
9042
  type TMarkerState = output<typeof markerStateSchema>;
@@ -8851,6 +9058,8 @@ declare const pathStateSchemaPartial: ZodObject<{
8851
9058
  highlightWidthMultiplier: ZodOptional<ZodDefault<ZodNumber>>;
8852
9059
  highlightCompleteFraction: ZodOptional<ZodDefault<ZodNumber>>;
8853
9060
  xrayOpacity: ZodOptional<ZodDefault<ZodNumber>>;
9061
+ travelledEndFraction: ZodOptional<ZodDefault<ZodNumber>>;
9062
+ travelledColor: ZodOptional<ZodDefault<ZodString>>;
8854
9063
  __EXPERIMENTAL_SMOOTHING_TENSION: ZodOptional<ZodDefault<ZodNumber>>;
8855
9064
  __EXPERIMENTAL_SMOOTHING_CORNER_RADIUS: ZodOptional<ZodDefault<ZodNumber>>;
8856
9065
  dashed: ZodOptional<ZodDefault<ZodBoolean>>;
@@ -8899,6 +9108,8 @@ declare const pathStateSchemaStrict: ZodObject<{
8899
9108
  highlightWidthMultiplier: ZodDefault<ZodNumber>;
8900
9109
  highlightCompleteFraction: ZodDefault<ZodNumber>;
8901
9110
  xrayOpacity: ZodDefault<ZodNumber>;
9111
+ travelledEndFraction: ZodDefault<ZodNumber>;
9112
+ travelledColor: ZodDefault<ZodString>;
8902
9113
  __EXPERIMENTAL_SMOOTHING_TENSION: ZodDefault<ZodNumber>;
8903
9114
  __EXPERIMENTAL_SMOOTHING_CORNER_RADIUS: ZodDefault<ZodNumber>;
8904
9115
  dashed: ZodDefault<ZodBoolean>;
@@ -8989,6 +9200,7 @@ declare const imageStateSchema: ZodObject<{
8989
9200
  rotation: ZodDefault<ZodNumber>;
8990
9201
  verticalOffset: ZodDefault<ZodNumber>;
8991
9202
  flipImagesToFaceCamera: ZodDefault<ZodBoolean>;
9203
+ interactive: ZodDefault<ZodBoolean>;
8992
9204
  }, $strip>;
8993
9205
  declare const imageStateSchemaPartial: ZodObject<{
8994
9206
  type: ZodOptional<ZodDefault<ZodLiteral<"image3d">>>;
@@ -9000,6 +9212,7 @@ declare const imageStateSchemaPartial: ZodObject<{
9000
9212
  rotation: ZodOptional<ZodDefault<ZodNumber>>;
9001
9213
  verticalOffset: ZodOptional<ZodDefault<ZodNumber>>;
9002
9214
  flipImagesToFaceCamera: ZodOptional<ZodDefault<ZodBoolean>>;
9215
+ interactive: ZodOptional<ZodDefault<ZodBoolean>>;
9003
9216
  }, $strip>;
9004
9217
  type TImage3DState = output<typeof imageStateSchema>;
9005
9218
  type TImage3DUpdateState = output<typeof imageStateSchemaPartial>;
@@ -9601,7 +9814,7 @@ declare class Navigator {
9601
9814
  private geometryEdgesByMapId;
9602
9815
  private flagDeclarations;
9603
9816
  private getDoorByNodeId;
9604
- private disabledNodeIds;
9817
+ private nonPublicNodeIds;
9605
9818
  /**
9606
9819
  * Constructs a Navigator instance to manage pathfinding with optional obstructions and grouping features.
9607
9820
  *
@@ -9626,7 +9839,11 @@ declare class Navigator {
9626
9839
  flagDeclarations?: NavigationFlagDeclarations;
9627
9840
  getDoorByNodeId: (nodeId: string) => DoorGeometry | undefined;
9628
9841
  });
9629
- private getDisabledNodeIds;
9842
+ /**
9843
+ * Build the set of node IDs that do not have the well-known `public` flag
9844
+ * set. Returns an empty set when the MVF does not declare the flag.
9845
+ */
9846
+ private getNonPublicNodeIds;
9630
9847
  /**
9631
9848
  * Calculates and returns a set of directions from origin nodes to destination nodes, including detailed properties.
9632
9849
  *
@@ -9635,6 +9852,7 @@ declare class Navigator {
9635
9852
  * @param {string[]} destinationNodeIds - IDs of destination nodes.
9636
9853
  * @param {string[]} [disabledConnectionNodeIds] - IDs of connection nodes that are disabled (ie. act as regular nodes).
9637
9854
  * @param {SimplifyDirectionsOptions} [simplify] - Options to simplify the pathfinding result.
9855
+ * @param {boolean} [includeNonPublic] - When true, nodes lacking the MVF `public` flag are routable. Defaults to false.
9638
9856
  * @returns {DirectionsCollection} A collection of directional features representing the path.
9639
9857
  */
9640
9858
  getDirections({
@@ -9646,7 +9864,8 @@ declare class Navigator {
9646
9864
  disabledConnectionNodeIds,
9647
9865
  simplify,
9648
9866
  multiplicativeDistanceWeightScaling,
9649
- overrideEdgeWeights
9867
+ overrideEdgeWeights,
9868
+ includeNonPublic
9650
9869
  }: {
9651
9870
  originIds: string[];
9652
9871
  destinationNodeIds: string[];
@@ -9657,6 +9876,7 @@ declare class Navigator {
9657
9876
  simplify?: SimplifyDirectionsOptions;
9658
9877
  multiplicativeDistanceWeightScaling?: boolean;
9659
9878
  overrideEdgeWeights?: Map<Edge, number>;
9879
+ includeNonPublic?: boolean;
9660
9880
  }): DirectionsCollection;
9661
9881
  /**
9662
9882
  * Generates a path from a series of edges, constructing a feature collection of directional steps.
@@ -9838,6 +10058,7 @@ declare class DirectionsInternal {
9838
10058
  zones: TDirectionZone[];
9839
10059
  excludedConnections: Connection[];
9840
10060
  connectionIdWeightMap: Record<string, number>;
10061
+ includeNonPublic: boolean;
9841
10062
  }, mapData: MapDataInternal) => Promise<Directions | undefined>;
9842
10063
  /** @deprecated use getDirections instead */
9843
10064
  getDirectionsSync: (from: TNavigationTarget[], to: TNavigationTarget[], options: {
@@ -9846,6 +10067,7 @@ declare class DirectionsInternal {
9846
10067
  zones: TDirectionZone[];
9847
10068
  excludedConnections: Connection[];
9848
10069
  connectionIdWeightMap: Record<string, number>;
10070
+ includeNonPublic: boolean;
9849
10071
  }, mapData: MapDataInternal) => Directions | undefined;
9850
10072
  /**
9851
10073
  * Get the node IDs of connections that do not match the accessibility setting provided.
@@ -10061,6 +10283,10 @@ type TClickPayload = {
10061
10283
  * Interactive {@link Model}s under the pointer.
10062
10284
  */
10063
10285
  models?: Model[];
10286
+ /**
10287
+ * Interactive {@link Image3DView | 3D Image}s under the pointer.
10288
+ */
10289
+ images?: Image3DView[];
10064
10290
  /**
10065
10291
  * Interactive {@link Label}s under the pointer.
10066
10292
  */
@@ -10851,6 +11077,15 @@ type TGetDirectionsOptions = {
10851
11077
  * @default false
10852
11078
  */
10853
11079
  accessible?: boolean;
11080
+ /**
11081
+ * When true, routing may traverse nodes that do not have the MVF `public`
11082
+ * flag set. Intended for emergency or staff-only pathing scenarios.
11083
+ *
11084
+ * Has no effect if the MVF does not declare a `public` navigation flag.
11085
+ *
11086
+ * @default false
11087
+ */
11088
+ includeNonPublic?: boolean;
10854
11089
  /**
10855
11090
  * Enable or disable path smoothing for directions.
10856
11091
  * When enabled, the path is simplified using line-of-sight checks to provide a more visually appealing route and shorter instructions.
@@ -11107,6 +11342,15 @@ type TAddImageOptions = {
11107
11342
  * @default 1024
11108
11343
  */
11109
11344
  maxImageSize?: number;
11345
+ /**
11346
+ * Whether the {@link Image3DView} should be clickable. When `true`, click and hover events
11347
+ * for the image will be dispatched via `MapView.on('click')` and `MapView.on('hover')` under
11348
+ * the `images` property of the event payload. Can be toggled at runtime via
11349
+ * `MapView.updateState(image, { interactive })`.
11350
+ *
11351
+ * @default false
11352
+ */
11353
+ interactive?: boolean;
11110
11354
  };
11111
11355
  /**
11112
11356
  * Options for controlling the behavior of a {@link Marker}.
@@ -12276,8 +12520,8 @@ declare class Area extends DetailedMapData<AreaCollection['features'][number]> i
12276
12520
  */
12277
12521
  get geoJSON(): {
12278
12522
  properties: null;
12279
- type: _mappedin_mvf_v28.FeatureType;
12280
- geometry: _mappedin_mvf_v28.Polygon;
12523
+ type: _mappedin_mvf_v22.FeatureType;
12524
+ geometry: _mappedin_mvf_v22.Polygon;
12281
12525
  };
12282
12526
  /** @internal */
12283
12527
  get focusTarget(): this;
@@ -12379,8 +12623,8 @@ declare class Door extends DetailedMapData<EntranceFeature> implements IGeoJSOND
12379
12623
  */
12380
12624
  get geoJSON(): {
12381
12625
  properties: null;
12382
- type: _mappedin_mvf_v28.FeatureType;
12383
- geometry: _mappedin_mvf_v28.LineString;
12626
+ type: _mappedin_mvf_v22.FeatureType;
12627
+ geometry: _mappedin_mvf_v22.LineString;
12384
12628
  };
12385
12629
  /** @internal */
12386
12630
  get focusTarget(): Coordinate;
@@ -12516,8 +12760,8 @@ declare class Space extends DetailedMapData<SpaceFeature> implements IGeoJSONDat
12516
12760
  */
12517
12761
  get geoJSON(): {
12518
12762
  properties: null;
12519
- type: _mappedin_mvf_v28.FeatureType;
12520
- geometry: _mappedin_mvf_v28.Point | _mappedin_mvf_v28.Polygon | _mappedin_mvf_v28.LineString;
12763
+ type: _mappedin_mvf_v22.FeatureType;
12764
+ geometry: _mappedin_mvf_v22.Point | _mappedin_mvf_v22.LineString | _mappedin_mvf_v22.Polygon;
12521
12765
  };
12522
12766
  /** @internal */
12523
12767
  get focusTarget(): this | Coordinate;
@@ -12603,7 +12847,7 @@ declare class PointOfInterest extends DetailedMapData<FeatureCollection$1<Point$
12603
12847
  */
12604
12848
  get geoJSON(): {
12605
12849
  properties: null;
12606
- type: _mappedin_mvf_v28.FeatureType;
12850
+ type: _mappedin_mvf_v22.FeatureType;
12607
12851
  geometry: Point$1;
12608
12852
  };
12609
12853
  /**
@@ -12717,8 +12961,8 @@ declare class Annotation extends DetailedMapData<AnnotationCollection['features'
12717
12961
  */
12718
12962
  get geoJSON(): {
12719
12963
  properties: null;
12720
- type: _mappedin_mvf_v28.FeatureType;
12721
- geometry: _mappedin_mvf_v28.Point;
12964
+ type: _mappedin_mvf_v22.FeatureType;
12965
+ geometry: _mappedin_mvf_v22.Point;
12722
12966
  };
12723
12967
  /** @internal */
12724
12968
  get focusTarget(): Coordinate;
@@ -12934,8 +13178,8 @@ declare class MapObject extends DetailedMapData<ObstructionFeature> implements I
12934
13178
  */
12935
13179
  get geoJSON(): {
12936
13180
  properties: null;
12937
- type: _mappedin_mvf_v28.FeatureType;
12938
- geometry: _mappedin_mvf_v28.Polygon | _mappedin_mvf_v28.LineString;
13181
+ type: _mappedin_mvf_v22.FeatureType;
13182
+ geometry: _mappedin_mvf_v22.LineString | _mappedin_mvf_v22.Polygon;
12939
13183
  };
12940
13184
  /** @internal */
12941
13185
  get anchorTarget(): Coordinate;
@@ -13248,8 +13492,8 @@ declare class Node extends BaseMetaData implements IGeoJSONData, IFocusable, IAn
13248
13492
  */
13249
13493
  get geoJSON(): {
13250
13494
  properties: null;
13251
- type: _mappedin_mvf_v28.FeatureType;
13252
- geometry: _mappedin_mvf_v28.Point;
13495
+ type: _mappedin_mvf_v22.FeatureType;
13496
+ geometry: _mappedin_mvf_v22.Point;
13253
13497
  };
13254
13498
  /** @internal */
13255
13499
  get focusTarget(): Coordinate;
@@ -15285,7 +15529,7 @@ declare class MapData {
15285
15529
  * console.log(`Current language: ${language.name} (${language.code})`);
15286
15530
  * ```
15287
15531
  */
15288
- get currentLanguage(): _mappedin_mvf_v28.Language | undefined;
15532
+ get currentLanguage(): _mappedin_mvf_v22.Language | undefined;
15289
15533
  /**
15290
15534
  * Gets the natural bearing of the map.
15291
15535
  *
@@ -15898,42 +16142,87 @@ declare class Mask {
15898
16142
  dirty: boolean;
15899
16143
  }
15900
16144
  //#endregion
15901
- //#region ../renderer-three/src/entities/batched-geometry-group.d.ts
16145
+ //#region ../renderer-three/src/entities/feature-collection.d.ts
15902
16146
  /**
15903
- * State representing a Batched Geometry Group, which is a container for Geometries and Models
15904
- * rendered via THREE.js BatchedMesh.
16147
+ * State representing a Feature Collection, which is a conceptual container for
16148
+ * GeoJSON features rendered via one or more THREE.js BatchedMeshes.
16149
+ *
16150
+ * Collection-level `visible` and `altitude` map directly to the wrapping
16151
+ * `FeatureCollectionObject3D` (`.visible` and `.position.z`) and do not
16152
+ * cascade into per-feature styles.
15905
16153
  */
15906
- type BatchedGeometryGroupState = {
16154
+ type FeatureCollectionState = {
15907
16155
  readonly id: string | number;
15908
- readonly type: 'batched-geometry-group';
16156
+ readonly type: 'feature-collection';
15909
16157
  /**
15910
- * The ids of the children of the geometry group
16158
+ * The ids of the children of the feature collection
15911
16159
  */
15912
16160
  readonly children: (string | number)[];
15913
16161
  /**
15914
- * Whether the geometry group is visible
16162
+ * @deprecated The feature collection no longer dictates opacity. Opacity is
16163
+ * per-feature or controlled via the wrapping `GroupContainer`. Read-through
16164
+ * to the first child is preserved for now.
15915
16165
  */
15916
- visible: boolean;
16166
+ opacity?: number;
15917
16167
  /**
15918
- * Whether the geometry group is interactive, which means it can be hovered over and clicked on.
15919
- * This will affect all children of the geometry group and override their interactive state.
15920
- *
15921
- * @example
15922
- * ```javascript
15923
- * renderer.on('click', ({ geometry }) => {});
15924
- * ```
16168
+ * @deprecated The feature collection no longer dictates color. Set color
16169
+ * per-feature via the style callback. Read-through to the first child is
16170
+ * preserved for now.
15925
16171
  */
15926
- interactive: boolean;
15927
- altitude?: number;
15928
- opacity?: number;
15929
16172
  color?: string;
16173
+ /**
16174
+ * @deprecated Per-feature property; read-through to the first child is
16175
+ * preserved for now.
16176
+ */
15930
16177
  height?: number;
16178
+ /**
16179
+ * @deprecated Per-feature property; read-through to the first child is
16180
+ * preserved for now.
16181
+ */
15931
16182
  texture?: string;
16183
+ /**
16184
+ * @deprecated Per-feature property; read-through to the first child is
16185
+ * preserved for now.
16186
+ */
15932
16187
  topColor?: string;
16188
+ /**
16189
+ * @deprecated Per-feature property; read-through to the first child is
16190
+ * preserved for now.
16191
+ */
15933
16192
  topTexture?: string;
16193
+ /**
16194
+ * @deprecated Per-feature property; read-through to the first child is
16195
+ * preserved for now.
16196
+ */
15934
16197
  outline?: boolean;
16198
+ /**
16199
+ * @deprecated Per-feature property; read-through to the first child is
16200
+ * preserved for now.
16201
+ */
15935
16202
  shading?: Shading$1;
16203
+ /**
16204
+ * @deprecated Per-feature property; read-through to the first child is
16205
+ * preserved for now.
16206
+ */
15936
16207
  side?: MaterialSide;
16208
+ /**
16209
+ * @deprecated Per-feature property; read-through to the first child is
16210
+ * preserved for now.
16211
+ */
16212
+ interactive?: boolean;
16213
+ /**
16214
+ * Collection-level visibility. Maps directly to `Object3D.visible` on the
16215
+ * wrapping `FeatureCollectionObject3D`; toggling cascades to children via
16216
+ * three.js's normal scene-graph traversal. Per-feature `StyleComponent.visible`
16217
+ * is a separate axis controlled via `setState` on individual feature entities.
16218
+ */
16219
+ visible?: boolean;
16220
+ /**
16221
+ * Collection-level altitude. Maps directly to `position.z` on the wrapping
16222
+ * `FeatureCollectionObject3D`. Per-feature altitude is a separate axis set
16223
+ * via the style callback or on each child.
16224
+ */
16225
+ altitude?: number;
15937
16226
  /**
15938
16227
  * Bevel configuration for extruded shapes.
15939
16228
  */
@@ -15951,14 +16240,14 @@ type BatchedGeometryGroupState = {
15951
16240
  washOutAmount?: number;
15952
16241
  washOutUseDepth?: boolean;
15953
16242
  /**
15954
- * The position of the geometry group as a GeoJSON Position `[lon, lat]`.
15955
- * Always computable via centroid calculation. Vertical offset is managed by `altitude`.
16243
+ * The position of the feature collection as a GeoJSON Position `[lon, lat]`,
16244
+ * computed from the centroid of its child features. Vertical offset is a
16245
+ * per-feature concern and is not tracked at the collection level.
15956
16246
  */
15957
16247
  position: Position$2;
15958
16248
  };
15959
- declare class BatchedGeometryGroupObject3D extends Object3D {
15960
- visible: boolean;
15961
- readonly type: "batched-geometry-group";
16249
+ declare class FeatureCollectionObject3D extends Object3D {
16250
+ readonly type: "feature-collection";
15962
16251
  components: [Mask?];
15963
16252
  getComponent(type: 'mask'): Mask | undefined;
15964
16253
  userData: {
@@ -15971,14 +16260,15 @@ declare class BatchedGeometryGroupObject3D extends Object3D {
15971
16260
  positionDirty: boolean;
15972
16261
  /** Cached world-space bounding-box center, updated after each position move */
15973
16262
  localCenter?: Vector3;
16263
+ isMerged?: boolean;
15974
16264
  };
15975
- setVisible(visible: boolean): void;
15976
16265
  removeEntity(): void;
15977
16266
  constructor(id: string);
15978
16267
  /**
15979
- * Get first child entity of a group if it's a batched mesh.
15980
- * We use this logic a lot for getting the material of the group, since the group does not have
15981
- * a material and the batched mesh does.
16268
+ * Get first child entity of a collection if it's a batched mesh.
16269
+ * We use this logic for reading representative per-child state (e.g. color,
16270
+ * texture) in getState() because the collection does not directly own a
16271
+ * material; the batched mesh does.
15982
16272
  */
15983
16273
  getfirstChildEntityId(): string | number | undefined;
15984
16274
  }
@@ -16017,9 +16307,9 @@ declare class BatchedStandardMaterial extends MeshLambertMaterial {
16017
16307
  set blendTexture(value: boolean);
16018
16308
  setGradientShading(start: number, end: number, intensity: number): void;
16019
16309
  getGradientShading(): {
16020
- start: any;
16021
- end: any;
16022
- intensity: any;
16310
+ start: number;
16311
+ end: number;
16312
+ intensity: number;
16023
16313
  };
16024
16314
  /**
16025
16315
  * Sets the distance-based effect parameters.
@@ -16069,6 +16359,62 @@ declare class BatchedStandardMaterial extends MeshLambertMaterial {
16069
16359
  clone(params?: MeshLambertMaterialParameters): this;
16070
16360
  }
16071
16361
  //#endregion
16362
+ //#region ../renderer-three/src/systems/batched-mesh/simple-material.d.ts
16363
+ /**
16364
+ * Single-geometry variant of BatchedStandardMaterial.
16365
+ * Uses `uColor`/`uTopColor` uniforms instead of a per-instance data texture,
16366
+ * so no DataTexture is allocated. All gradient, shadow, and visual-effect
16367
+ * uniforms are identical to BatchedStandardMaterial.
16368
+ */
16369
+ declare class SimpleGeometryMaterial extends MeshLambertMaterial {
16370
+ texturesVisible: boolean;
16371
+ private pcfSampleCount;
16372
+ private uniforms;
16373
+ private colorSpace;
16374
+ constructor(params?: MeshLambertMaterialParameters);
16375
+ /**
16376
+ * Sets `color` and `topColor` as uniforms directly (no batchId / data texture).
16377
+ */
16378
+ setColor(color: Color, topColor: Color): void;
16379
+ getColor(): {
16380
+ color: Color;
16381
+ topColor: Color;
16382
+ };
16383
+ get texture(): Texture | null;
16384
+ set texture(texture: Texture | null);
16385
+ get topTexture(): Texture | null;
16386
+ set topTexture(texture: Texture | null);
16387
+ get blendTexture(): boolean;
16388
+ set blendTexture(value: boolean);
16389
+ setGradientShading(start: number, end: number, intensity: number): void;
16390
+ getGradientShading(): {
16391
+ start: number;
16392
+ end: number;
16393
+ intensity: number;
16394
+ };
16395
+ setEffectRange(start: number, distance: number): void;
16396
+ getEffectRange(): {
16397
+ start: number;
16398
+ distance: number;
16399
+ };
16400
+ setVisualEffect(darkenAmount: number, darkenUseDepth: boolean, desaturateAmount: number, desaturateUseDepth: boolean, washOutAmount: number, washOutUseDepth: boolean): void;
16401
+ getVisualEffect(): {
16402
+ darkenAmount: number;
16403
+ darkenUseDepth: number;
16404
+ desaturateAmount: number;
16405
+ desaturateUseDepth: number;
16406
+ washOutAmount: number;
16407
+ washOutUseDepth: number;
16408
+ };
16409
+ get repeatYFactor(): number;
16410
+ set repeatYFactor(value: number);
16411
+ showTextures: (_batchId: number) => void;
16412
+ hideTextures(_batchId: number): void;
16413
+ removeSideTexture(_batchId: number): void;
16414
+ removeTopTexture(_batchId: number): void;
16415
+ setShadowUniforms(shadowMap: Texture, lightMatrix: Matrix4, cameraNear: number, cameraFar: number, shadowBias: number, shadowOpacity: number, baseColor: Color, shadowMapSize: number, pcfSpread: number, pcfSamples: number, sunDir: Vector3, normalBias: number, depthRangeMax: number, shadowEnabled: boolean): void;
16416
+ }
16417
+ //#endregion
16072
16418
  //#region ../renderer-three/src/components/image.d.ts
16073
16419
  declare class EntityMesh$1 extends Mesh {
16074
16420
  userData: {
@@ -16090,6 +16436,11 @@ type ImageStyle = {
16090
16436
  * @default 1024
16091
16437
  */
16092
16438
  maxImageSize?: number;
16439
+ /**
16440
+ * Whether the image is interactive (receives click/hover events).
16441
+ * @default false
16442
+ */
16443
+ interactive?: boolean;
16093
16444
  };
16094
16445
  type ImageProperties = {
16095
16446
  width: number;
@@ -16126,6 +16477,10 @@ type ImageState = {
16126
16477
  * The opacity of the image
16127
16478
  */
16128
16479
  opacity: number;
16480
+ /**
16481
+ * Whether the image is interactive (receives click/hover events).
16482
+ */
16483
+ interactive: boolean;
16129
16484
  };
16130
16485
  declare class ImageComponent {
16131
16486
  mesh: Geometry3DObject3D;
@@ -16152,6 +16507,9 @@ declare class EntityBatchedMesh extends BatchedMesh {
16152
16507
  detached?: boolean;
16153
16508
  };
16154
16509
  }
16510
+ declare class EntityMergedMesh extends Mesh {
16511
+ type: "entityMergedMesh";
16512
+ }
16155
16513
  type MeshComponentProperties = {
16156
16514
  id: string;
16157
16515
  image?: ImageProperties & {
@@ -16177,7 +16535,7 @@ type GeometryState = {
16177
16535
  /**
16178
16536
  * The parent group of the geometry
16179
16537
  */
16180
- readonly parent: EntityId$1<BatchedGeometryGroupState>;
16538
+ readonly parent: EntityId$1<FeatureCollectionState>;
16181
16539
  /**
16182
16540
  * Whether the geometry is visible. This is independent of the visibility of the children, but will affect the visibility of the children if set to false.
16183
16541
  */
@@ -16289,7 +16647,7 @@ type GeometryState = {
16289
16647
  };
16290
16648
  declare class MeshComponent {
16291
16649
  #private;
16292
- mesh?: EntityBatchedMesh;
16650
+ mesh?: EntityBatchedMesh | EntityMergedMesh;
16293
16651
  imageMesh?: Mesh;
16294
16652
  /**
16295
16653
  * holds a pointer to space label text if the polygon has label active.
@@ -16307,10 +16665,10 @@ declare class MeshComponent {
16307
16665
  positionCount: number;
16308
16666
  geometryId: number;
16309
16667
  };
16310
- material?: BatchedStandardMaterial;
16311
- feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>;
16668
+ material?: BatchedStandardMaterial | SimpleGeometryMaterial;
16669
+ feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties> | Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>[];
16312
16670
  currentHeight: number;
16313
- constructor(feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>);
16671
+ constructor(feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties> | Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>[]);
16314
16672
  get visible(): boolean;
16315
16673
  set visible(visible: boolean);
16316
16674
  get renderOrder(): number;
@@ -16339,7 +16697,7 @@ type ModelState = {
16339
16697
  /**
16340
16698
  * The parent container of the marker
16341
16699
  */
16342
- readonly parent?: EntityId$1<BatchedGeometryGroupState> | string | number;
16700
+ readonly parent?: EntityId$1<FeatureCollectionState> | string | number;
16343
16701
  /**
16344
16702
  * The position of the model in [lon, lat]
16345
16703
  */
@@ -16512,6 +16870,17 @@ type PathState$1 = {
16512
16870
  * Configuration for x-ray appearance when path is behind geometry.
16513
16871
  */
16514
16872
  xrayStyle?: XrayStyleConfig;
16873
+ /**
16874
+ * The fraction of the path that has been travelled. This is used to indicate how far the user has walked along the path.
16875
+ * Note: use values between 0 and 1.
16876
+ * @default 0
16877
+ */
16878
+ travelledEndFraction: number;
16879
+ /**
16880
+ * The color of the travelled portion of the path.
16881
+ * @default '#999'
16882
+ */
16883
+ travelledColor: string;
16515
16884
  /**
16516
16885
  * Controls the smoothness of path corners using CatmullRom curve tension. Higher values create smoother curves.
16517
16886
  * Values between 0.1-0.3 provide subtle smoothing suitable for most use cases.
@@ -16662,6 +17031,17 @@ type AddPathOptions = {
16662
17031
  * Configuration for x-ray appearance when path is behind geometry.
16663
17032
  */
16664
17033
  xrayStyle?: XrayStyleConfig;
17034
+ /**
17035
+ * The fraction of the path that has been travelled. This is used to indicate how far the user has walked along the path.
17036
+ * Note: use values between 0 and 1.
17037
+ * @default 0
17038
+ */
17039
+ travelledEndFraction?: number;
17040
+ /**
17041
+ * The color of the travelled portion of the path.
17042
+ * @default '#999'
17043
+ */
17044
+ travelledColor?: string;
16665
17045
  /**
16666
17046
  * Controls the smoothness of path corners using CatmullRom curve tension. Higher values create smoother curves.
16667
17047
  * Values between 0.1-0.3 provide subtle smoothing suitable for most use cases.
@@ -16780,6 +17160,8 @@ declare class PathComponent {
16780
17160
  highlightColor: string;
16781
17161
  xrayOpacity: number;
16782
17162
  xrayStyle?: XrayStyleConfig;
17163
+ travelledEndFraction: number;
17164
+ travelledColor: string;
16783
17165
  dashed: boolean;
16784
17166
  smoothingTension: number;
16785
17167
  smoothingCornerRadius: number;
@@ -17148,7 +17530,7 @@ declare class Geometry3D<M$1 extends MeshComponentTypes = MeshComponent, S exten
17148
17530
  */
17149
17531
  parentId?: string | number;
17150
17532
  get object3d(): M$1["mesh"];
17151
- get parentObject3D(): GroupContainerObject3D | BatchedGeometryGroupObject3D | null;
17533
+ get parentObject3D(): GroupContainerObject3D | FeatureCollectionObject3D | null;
17152
17534
  type: T$1;
17153
17535
  entities2D: Map<string | number, Geometry2D>;
17154
17536
  constructor(meshComponent: M$1, styleComponent: S);
@@ -17269,6 +17651,14 @@ interface PathUniforms {
17269
17651
  type: 'f';
17270
17652
  value: number;
17271
17653
  };
17654
+ travelledEndFraction: {
17655
+ type: 'f';
17656
+ value: number;
17657
+ };
17658
+ travelledColor: {
17659
+ type: 'c';
17660
+ value: Color;
17661
+ };
17272
17662
  dashLength: {
17273
17663
  type: 'f';
17274
17664
  value: number;
@@ -17411,6 +17801,16 @@ declare class Renderer {
17411
17801
  setBackgroundColor(color: any, alpha: any): void;
17412
17802
  domElement(): HTMLCanvasElement | undefined;
17413
17803
  handleWebGLContextCreationError: (event: Event) => void;
17804
+ /**
17805
+ * The browser only fires the subsequent `webglcontextrestored` event if
17806
+ * the page calls `preventDefault()` on the `webglcontextlost` event.
17807
+ * Without this, after the GPU drops the context (e.g. iOS backgrounding,
17808
+ * thermal pressure, or another canvas exhausting the per-process WebGL
17809
+ * context budget), the canvas stays in a permanently lost state and any
17810
+ * subsequent draws produce garbage geometry.
17811
+ *
17812
+ * See: https://registry.khronos.org/webgl/specs/latest/1.0/#5.15.2
17813
+ */
17414
17814
  handleWebGLContextLost: (event: Event) => void;
17415
17815
  handleWebGLContextRestored: (event: Event) => void;
17416
17816
  }
@@ -17562,13 +17962,14 @@ declare class BatchedMeshSystem extends PubSub<{
17562
17962
  'geometry-2d-added': void;
17563
17963
  'geometry-group-added': void;
17564
17964
  }> {
17965
+ #private;
17565
17966
  state: RendererState;
17566
17967
  convertTo3DMapPosition: any;
17567
17968
  constructor(state: RendererState, convertTo3DMapPosition: any);
17568
- createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: (LineStyle$2 | PaintStyle$2) & {
17969
+ createEntityFromFeature(id: string | number, featureOrFeatures: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties> | Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>[], style?: (LineStyle$2 | PaintStyle$2) & {
17569
17970
  focusable?: boolean;
17570
17971
  }): Geometry3D<MeshComponent, StyleComponent, InteractionComponent, "geometry", OutlineComponent | undefined, FocusableComponent | undefined, TextureComponent | undefined, BorderComponent | undefined, ClippingPlaneComponent | undefined>;
17571
- populateEntityMesh(entity: Geometry3D, geometry: BufferGeometry): void;
17972
+ populateEntityMesh(entity: Geometry3D, geometry: BufferGeometry, isMerged?: boolean): void;
17572
17973
  populateEntityGroup(entities: Set<string | number>): Set<string | number>;
17573
17974
  update(): Promise<void>;
17574
17975
  }
@@ -17909,6 +18310,7 @@ declare class CameraSystem extends PubSub<CameraEvents> {
17909
18310
  private cameraMoving;
17910
18311
  private lastCameraMoveTime;
17911
18312
  constructor(camera: PerspectiveCamera, scene: Scene, renderer: WebGLRenderer, rendererState: RendererState, options: CameraControlsOptions);
18313
+ private addMovingStateListeners;
17912
18314
  /**
17913
18315
  * The amount the camera is shifted up/down
17914
18316
  * (corresponds to scroll amount in multifloor mode)
@@ -17986,6 +18388,25 @@ declare class CameraSystem extends PubSub<CameraEvents> {
17986
18388
  * @returns {Number} The time in ms the camera stopped moving.
17987
18389
  */
17988
18390
  lastCameraStoppedMovingTime: () => number;
18391
+ /**
18392
+ * Marks the camera as under active external manipulation (e.g. a Mapbox/MapLibre
18393
+ * overlay gesture) and publishes `pan-start`. While in this state, the per-tick
18394
+ * `*-start`/`*-end` publishes inside setters are gated off, so a burst of
18395
+ * setCenter/setZoom/setRotation/setTilt calls does not flicker
18396
+ * `cameraMoving` between true and false.
18397
+ *
18398
+ * @hidden
18399
+ */
18400
+ beginGesture: () => void;
18401
+ /**
18402
+ * Ends a gesture started by {@link beginGesture} and publishes `pan-end`.
18403
+ * No-op if state is not PAN — guards against stomping a concurrent
18404
+ * user-initiated drag, and against `moveend` firing without a matching
18405
+ * `movestart`.
18406
+ *
18407
+ * @hidden
18408
+ */
18409
+ endGesture: () => void;
17989
18410
  /**
17990
18411
  * Sets the camera anchor to a specifc x/y positon, in the global reference frame. 0,0 will be roughly the middle of the map, and panBounds holds the min/max points.
17991
18412
  *
@@ -18704,7 +19125,7 @@ declare class OutlineInterpolationSystem extends PubSub<{
18704
19125
  * @param options - Optional configuration for outline rendering
18705
19126
  */
18706
19127
  constructor(rendererState: RendererState, options?: OutlinesOptions$1);
18707
- buildOutlines(geometryGroupEntity: BatchedGeometryGroupObject3D): void;
19128
+ buildOutlines(geometryGroupEntity: FeatureCollectionObject3D): void;
18708
19129
  /**
18709
19130
  * Update the outline color of all entities with an outline component.
18710
19131
  * @param zoomLevel - The current zoom level.
@@ -19086,6 +19507,16 @@ declare class Debug$1 {
19086
19507
  }
19087
19508
  //#endregion
19088
19509
  //#region ../renderer-three/src/systems/2d-occlusion/system.d.ts
19510
+ /**
19511
+ * Set to `true` by the visual regression harness (see `e2e/visual/fixtures.ts`)
19512
+ * before page load. When set we bypass the throttle so screenshots are
19513
+ * deterministic. Anything else leaves the throttle in effect.
19514
+ */
19515
+ declare global {
19516
+ interface Window {
19517
+ __MAPPEDIN_E2E__?: boolean;
19518
+ }
19519
+ }
19089
19520
  declare class Occlusion2DSystem {
19090
19521
  private state;
19091
19522
  private renderer;
@@ -19113,7 +19544,17 @@ declare class Occlusion2DSystem {
19113
19544
  resize: () => void;
19114
19545
  private shouldShowByXY;
19115
19546
  activeOccluders: Set<unknown>;
19547
+ private framesSinceLastUpdate;
19548
+ /**
19549
+ * Throttled per-frame entry point called by the render loop. Delegates to
19550
+ * {@link updateImmediately} once every {@link OCCLUSION_SKIP_FRAMES} calls.
19551
+ * Callers that need a guaranteed synchronous pass should use
19552
+ * {@link updateImmediately} directly. When running under the visual
19553
+ * regression harness (`?e2e=true`) the throttle is bypassed so every
19554
+ * render produces a deterministic occlusion state.
19555
+ */
19116
19556
  update: () => void;
19557
+ updateImmediately: () => void;
19117
19558
  destroy(): void;
19118
19559
  }
19119
19560
  //#endregion
@@ -19149,7 +19590,9 @@ declare class BorderSystem {
19149
19590
  convertTo3DMapPosition: Core['convertTo3DMapPosition'];
19150
19591
  constructor(rendererState: RendererState, convertTo3DMapPosition: Core['convertTo3DMapPosition']);
19151
19592
  update(): void;
19593
+ private buildBordersForFeatures;
19152
19594
  private colorToMaterialCache;
19595
+ private getOrCreateMaterials;
19153
19596
  private buildBorder;
19154
19597
  destroy(): void;
19155
19598
  }
@@ -19664,7 +20107,7 @@ declare class ModelSystem extends PubSub<{
19664
20107
  * @param tree - The geometry group container
19665
20108
  * @returns The created Object3D containing the model instances
19666
20109
  */
19667
- populateModelGroup(entities: Set<string | number>, url: string, tree: BatchedGeometryGroupObject3D): Promise<Geometry3DObject3D>;
20110
+ populateModelGroup(entities: Set<string | number>, url: string, tree: FeatureCollectionObject3D): Promise<Geometry3DObject3D>;
19668
20111
  /**
19669
20112
  * Updates the model system, processing any pending model loads and style updates
19670
20113
  * @returns A promise that resolves when all model loading is complete
@@ -19873,7 +20316,7 @@ type MapViewState$1 = {
19873
20316
  };
19874
20317
  declare class Core extends PubSub<MapEvent> {
19875
20318
  #private;
19876
- options: Omit<RendererCoreOptions$1, 'outdoorView'>;
20319
+ options: Omit<RendererCoreOptions$2, 'outdoorView'>;
19877
20320
  container: HTMLElement;
19878
20321
  Debug: Debug$1;
19879
20322
  /**
@@ -19906,7 +20349,7 @@ declare class Core extends PubSub<MapEvent> {
19906
20349
  /**
19907
20350
  * @internal
19908
20351
  */
19909
- constructor(container: HTMLElement, options?: RendererCoreOptions$1);
20352
+ constructor(container: HTMLElement, options?: RendererCoreOptions$2);
19910
20353
  /**
19911
20354
  * Projects a position into screen space. If a Vector3 is provided, the z-coordinate will include the depth from the camera.
19912
20355
  * @param projectVector - The vector to project the position into
@@ -19941,10 +20384,24 @@ declare class Core extends PubSub<MapEvent> {
19941
20384
  registerPlugin(plugin: ISystemPlugin$2): void;
19942
20385
  unregisterPlugin(plugin: ISystemPlugin$2): void;
19943
20386
  /**
19944
- * Add a batched geometry group from GeoJSON data.
19945
- * Features are batched into a single BatchedMesh per material group for efficient rendering.
20387
+ * Add a conceptual feature collection from GeoJSON data.
20388
+ *
20389
+ * Each feature is converted into a batched entity, which may be split across
20390
+ * multiple BatchedMeshes internally based on material. The collection itself
20391
+ * is a lightweight container; visual properties such as color, opacity,
20392
+ * altitude, height, etc. are driven per-feature via the `style` callback.
20393
+ *
20394
+ * To toggle visibility of the whole collection, wrap it in a
20395
+ * `GroupContainer` via the `parent` argument and set visibility on the
20396
+ * container.
20397
+ *
20398
+ * The only collection-level concern honored at creation time is the optional
20399
+ * mask — read from `style(features[0])`.
19946
20400
  */
19947
- addBatchedGeometryGroup<T$1 extends FeatureCollection<Polygon | MultiPolygon | LineString, any>>(id: string, geometry: T$1, style?: (T$1 extends FeatureCollection<LineString, any> ? LineStyle$2 : PaintStyle$2) | ((feature: Feature<Polygon | MultiPolygon | LineString, any>) => T$1 extends FeatureCollection<LineString, any> ? LineStyle$2 : PaintStyle$2), parent?: EntityId$1<GroupContainerState$1> | string | number | null): EntityId$1<BatchedGeometryGroupState>;
20401
+ addFeatureCollection<T$1 extends FeatureCollection<Polygon | MultiPolygon | LineString, any>>(id: string, geometry: T$1, style?: ((feature: Feature<Polygon | MultiPolygon | LineString, any>) => T$1 extends FeatureCollection<LineString, any> ? LineStyle$2 : PaintStyle$2) | (T$1 extends FeatureCollection<LineString, any> ? LineStyle$2 : PaintStyle$2), fcState?: {
20402
+ altitude?: number;
20403
+ visible?: boolean;
20404
+ }, parent?: EntityId$1<GroupContainerState$1> | string | number | null): EntityId$1<FeatureCollectionState>;
19948
20405
  addOccluder<T$1 extends Feature<Polygon | MultiPolygon, any>>(feature: T$1, parent?: EntityId$1<GroupContainerState$1> | string | number | null): number;
19949
20406
  addImage(id: string, geometry: Feature<Point, ImageProperties>, style: ImageStyle, parent?: EntityId$1<GroupContainerState$1> | string | null): EntityId$1<ImageState> | undefined;
19950
20407
  /**
@@ -19956,7 +20413,7 @@ declare class Core extends PubSub<MapEvent> {
19956
20413
  }?: {
19957
20414
  parent?: EntityId$1<GroupContainerState$1> | string | null;
19958
20415
  onComplete?: () => void;
19959
- }): EntityId$1<BatchedGeometryGroupState> | undefined;
20416
+ }): EntityId$1<FeatureCollectionState> | undefined;
19960
20417
  /**
19961
20418
  * Add an HTML Marker at a GeoJSON coordinate.
19962
20419
  */
@@ -20038,9 +20495,9 @@ declare class Core extends PubSub<MapEvent> {
20038
20495
  * Get the current state of the map view, or any entity that was added, regardless of whether it is visible in the scene
20039
20496
  */
20040
20497
  getState(): MapViewState$1;
20041
- getState<T$1 extends EntityId$1<EntityState>>(geometryOrGeometryId: T$1): T$1 extends EntityId$1<LabelState> ? LabelState : T$1 extends EntityId$1<GeometryState> ? GeometryState : T$1 extends EntityId$1<MarkerState$1> ? MarkerState$1 : T$1 extends EntityId$1<BatchedGeometryGroupState> ? BatchedGeometryGroupState : T$1 extends EntityId$1<GroupContainerState$1> ? GroupContainerState$1 : T$1 extends EntityId$1<ModelState> ? ModelState : T$1 extends EntityId$1<PathState$1> ? PathState$1 : T$1 extends EntityId$1<ShapeState> ? ShapeState : T$1 extends EntityId$1<ImageState> ? ImageState : T$1 extends EntityId$1<Text3DState$1> ? Text3DState$1 : EntityState;
20498
+ getState<T$1 extends EntityId$1<EntityState>>(geometryOrGeometryId: T$1): T$1 extends EntityId$1<LabelState> ? LabelState : T$1 extends EntityId$1<GeometryState> ? GeometryState : T$1 extends EntityId$1<MarkerState$1> ? MarkerState$1 : T$1 extends EntityId$1<FeatureCollectionState> ? FeatureCollectionState : T$1 extends EntityId$1<GroupContainerState$1> ? GroupContainerState$1 : T$1 extends EntityId$1<ModelState> ? ModelState : T$1 extends EntityId$1<PathState$1> ? PathState$1 : T$1 extends EntityId$1<ShapeState> ? ShapeState : T$1 extends EntityId$1<ImageState> ? ImageState : T$1 extends EntityId$1<Text3DState$1> ? Text3DState$1 : EntityState;
20042
20499
  getState(geometryOrGeometryId?: Record<string | number, any> | string | number): EntityState;
20043
- getState<T$1 extends EntityState>(geometryOrGeometryId: T$1['id']): T$1 extends LabelState ? LabelState : T$1 extends GeometryState ? GeometryState : T$1 extends MarkerState$1 ? MarkerState$1 : T$1 extends BatchedGeometryGroupState ? BatchedGeometryGroupState : T$1 extends GroupContainerState$1 ? GroupContainerState$1 : T$1 extends ModelState ? ModelState : T$1 extends PathState$1 ? PathState$1 : T$1 extends ShapeState ? ShapeState : T$1 extends ImageState ? ImageState : EntityState;
20500
+ getState<T$1 extends EntityState>(geometryOrGeometryId: T$1['id']): T$1 extends LabelState ? LabelState : T$1 extends GeometryState ? GeometryState : T$1 extends MarkerState$1 ? MarkerState$1 : T$1 extends FeatureCollectionState ? FeatureCollectionState : T$1 extends GroupContainerState$1 ? GroupContainerState$1 : T$1 extends ModelState ? ModelState : T$1 extends PathState$1 ? PathState$1 : T$1 extends ShapeState ? ShapeState : T$1 extends ImageState ? ImageState : EntityState;
20044
20501
  /**
20045
20502
  * Get rendered state for an entity (e.g., runtime rendering state that changes frequently)
20046
20503
  * @param entity The entity to get rendered state for
@@ -20053,7 +20510,7 @@ declare class Core extends PubSub<MapEvent> {
20053
20510
  setState(object: Partial<Omit<MapViewState$1, 'type'>>): void;
20054
20511
  setState<T$1 extends EntityId$1<LabelState>>(object: T$1 | T$1['id'], state: Partial<LabelState>): void;
20055
20512
  setState<T$1 extends EntityId$1<MarkerState$1>>(object: T$1 | T$1['id'], state: Partial<MarkerStateUpdate>): void;
20056
- setState<T$1 extends EntityId$1<BatchedGeometryGroupState>>(object: T$1 | T$1['id'], state: Partial<BatchedGeometryGroupState>): void;
20513
+ setState<T$1 extends EntityId$1<FeatureCollectionState>>(object: T$1 | T$1['id'], state: Partial<FeatureCollectionState>): void;
20057
20514
  setState<T$1 extends EntityId$1<GroupContainerState$1>>(object: T$1 | T$1['id'], state: Partial<GroupContainerState$1>): void;
20058
20515
  setState<T$1 extends EntityId$1<GeometryState>>(object: T$1 | T$1['id'], state: Partial<GeometryState>): void;
20059
20516
  setState<T$1 extends EntityId$1<ShapeState>>(object: T$1 | T$1['id'], state: Partial<ShapeState>): void;
@@ -20239,7 +20696,7 @@ type GroupContainerState$1 = {
20239
20696
  /**
20240
20697
  * The states of the children of the group container
20241
20698
  */
20242
- readonly children: (PathState$1 | MarkerState$1 | LabelState | GroupContainerState$1 | BatchedGeometryGroupState)[];
20699
+ readonly children: (PathState$1 | MarkerState$1 | LabelState | GroupContainerState$1 | FeatureCollectionState)[];
20243
20700
  /**
20244
20701
  * Whether the group container is visible
20245
20702
  */
@@ -20261,7 +20718,7 @@ type GroupContainerState$1 = {
20261
20718
  };
20262
20719
  declare class GroupContainerObject3D extends Object3D {
20263
20720
  childrenIds: Set<string | number>;
20264
- children: (GroupContainerObject3D | BatchedGeometryGroupObject3D | BatchedText$1 | Geometry2D['object3d'] | NonNullable<Geometry3D['object3d']>)[];
20721
+ children: (GroupContainerObject3D | FeatureCollectionObject3D | BatchedText$1 | Geometry2D['object3d'] | NonNullable<Geometry3D['object3d']>)[];
20265
20722
  getComponent(): void;
20266
20723
  readonly type: "group-container";
20267
20724
  userData: {
@@ -20282,7 +20739,7 @@ declare class GroupContainerObject3D extends Object3D {
20282
20739
  components: [InteractionComponent?, FocusableComponent?];
20283
20740
  constructor(id: string);
20284
20741
  addOccluderFeature(feature: Feature<Polygon | MultiPolygon, any>, occluderId: number): void;
20285
- addEntity(entityGroupOrContainer: GroupContainerObject3D | BatchedGeometryGroupObject3D | Geometry2D | Geometry3DTypes): void;
20742
+ addEntity(entityGroupOrContainer: GroupContainerObject3D | FeatureCollectionObject3D | Geometry2D | Geometry3DTypes): void;
20286
20743
  removeEntity(entityGroupOrContainer: EntityTypes): void;
20287
20744
  setVisible(visible: boolean): void;
20288
20745
  setAltitude(altitude: number): void;
@@ -20323,7 +20780,7 @@ declare class Geometry2D {
20323
20780
  type: 'label' | 'marker';
20324
20781
  /** Lightweight entity for the 2D pipeline */
20325
20782
  entity2D: Entity2D;
20326
- get parentObject3D(): GroupContainerObject3D | BatchedGeometryGroupObject3D | null;
20783
+ get parentObject3D(): GroupContainerObject3D | FeatureCollectionObject3D | null;
20327
20784
  /** The geometry3D that this 2D entity is attached to */
20328
20785
  get attachedTo(): string | number | undefined;
20329
20786
  verticalOffset: number;
@@ -20364,14 +20821,14 @@ type Position$2 = [lon: number, lat: number] | [lon: number, lat: number, alt: n
20364
20821
  //#endregion
20365
20822
  //#region ../renderer-three/src/types/options.d.ts
20366
20823
  type EnvMapOptions$2 = 'basic' | false;
20367
- type RendererCoreOptions$1 = Partial<{
20824
+ type RendererCoreOptions$2 = Partial<{
20368
20825
  center?: Position$2;
20369
20826
  zoomLevel?: number;
20370
20827
  pitch?: number;
20371
20828
  bearing?: number;
20372
20829
  naturalBearing?: number;
20373
20830
  outdoorView: {
20374
- headers: {
20831
+ headers?: {
20375
20832
  'x-mappedin-tiles-key': string;
20376
20833
  };
20377
20834
  style?: string;
@@ -20524,7 +20981,7 @@ type ShadowsOptions = {
20524
20981
  /**
20525
20982
  * The state of an entity, which can be a geometry, geometry group, group container, path, model, label, or marker.
20526
20983
  */
20527
- type EntityState = GeometryState | BatchedGeometryGroupState | GroupContainerState$1 | PathState$1 | ModelState | LabelState | MarkerState$1 | ImageState | Text3DState$1 | ShapeState;
20984
+ type EntityState = GeometryState | FeatureCollectionState | GroupContainerState$1 | PathState$1 | ModelState | LabelState | MarkerState$1 | ImageState | Text3DState$1 | ShapeState;
20528
20985
  /**
20529
20986
  * A wrapper object that contains the ID and type of an entity. This is returned when adding entities to the scene, and can be used
20530
20987
  * to `getState` and `setState` of the entity.
@@ -20696,6 +21153,11 @@ type ClickPayload = {
20696
21153
  * An array of 3D models IDs which the user interaction passed through. Will be empty if no models were interacted with.
20697
21154
  */
20698
21155
  models: [string | number] | [];
21156
+ /**
21157
+ * An array of 3D image IDs which the user interaction passed through. Will be empty if no images were interacted with.
21158
+ * Only images added with `interactive: true` are included.
21159
+ */
21160
+ images: [string | number] | [];
20699
21161
  /**
20700
21162
  * An array of label IDs which the user interaction passed through. Will be empty if no labels were interacted with.
20701
21163
  */
@@ -20805,7 +21267,7 @@ type MapEvent = {
20805
21267
  /**
20806
21268
  * All entities in 3D
20807
21269
  */
20808
- type All3DTypes = Geometry3DTypes | BatchedGeometryGroupObject3D | GroupContainerObject3D;
21270
+ type All3DTypes = Geometry3DTypes | FeatureCollectionObject3D | GroupContainerObject3D;
20809
21271
  type RendererState = {
20810
21272
  /**
20811
21273
  * A map of all 3D geometries in the world.
@@ -20836,7 +21298,7 @@ type RendererState = {
20836
21298
  /**
20837
21299
  * IDs of geometry groups that need to be loaded, including preloaded geometry groups that are not in the scene yet
20838
21300
  */
20839
- readonly geometryGroupIdsToLoad: Set<BatchedGeometryGroupObject3D['userData']['entityId']>;
21301
+ readonly geometryGroupIdsToLoad: Set<FeatureCollectionObject3D['userData']['entityId']>;
20840
21302
  readonly geometryScene: GroupContainerObject3D;
20841
21303
  hoverColor: string;
20842
21304
  text3dHoverColor: string;
@@ -20876,7 +21338,7 @@ type RendererState = {
20876
21338
  /**
20877
21339
  * All of the entities in the scene
20878
21340
  */
20879
- type EntityTypes = Geometry3DTypes | Geometry2D | BatchedGeometryGroupObject3D | GroupContainerObject3D;
21341
+ type EntityTypes = Geometry3DTypes | Geometry2D | FeatureCollectionObject3D | GroupContainerObject3D;
20880
21342
  /** @internal */
20881
21343
  type TransformImageRequest = (url: string) => Promise<{
20882
21344
  url: string;
@@ -21014,14 +21476,20 @@ declare class MapLibreOverlay<T$1> extends PubSub<T$1> implements IControl {
21014
21476
  origin?: Position$2;
21015
21477
  map?: Map$1;
21016
21478
  layer?: CustomLayerInterface;
21017
- constructor(origin: Position$2 | undefined, options?: RendererCoreOptions$1);
21479
+ private cameraSystem;
21480
+ constructor(origin: Position$2 | undefined, options?: RendererCoreOptions$2);
21018
21481
  private handleStyleChange;
21482
+ private handleMoveStart;
21019
21483
  private handleMove;
21484
+ private handleMoveEnd;
21020
21485
  private handleError;
21021
21486
  onAdd(map: Map$1): HTMLDivElement;
21022
21487
  onRemove(): void;
21023
21488
  }
21024
21489
  //#endregion
21490
+ //#region ../renderer-three/src/utils/constants.d.ts
21491
+ declare const MAPPEDIN_LAYER_ID = "mappedin";
21492
+ //#endregion
21025
21493
  //#region src/constants.d.ts
21026
21494
  declare const MAPPEDIN_COLORS: {
21027
21495
  orange: string;
@@ -21038,6 +21506,14 @@ declare enum E_SDK_LOG_LEVEL {
21038
21506
  }
21039
21507
  declare function setLoggerLevel(level: E_SDK_LOG_LEVEL): void;
21040
21508
  //#endregion
21509
+ //#region src/utils/convert-renderer-core-options.d.ts
21510
+ /**
21511
+ * Converts TShow3DMapOptions to RendererCoreOptions format.
21512
+ * Transforms outdoorView.token to outdoorView.headers['x-mappedin-tiles-key'].
21513
+ * @internal
21514
+ */
21515
+ declare function convertToRendererCoreOptions(options: TShow3DMapOptions | undefined): Partial<RendererCoreOptions$1> | undefined;
21516
+ //#endregion
21041
21517
  //#region src/api-geojson/multi-floor.d.ts
21042
21518
  type VisibilityState = {
21043
21519
  outdoorOpacity: number | 'initial';
@@ -21516,4 +21992,4 @@ declare const getVersion: () => string | undefined;
21516
21992
  */
21517
21993
  declare const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
21518
21994
  //#endregion
21519
- export { ACTION_TYPE, ANIMATION_TWEENS, type AddText3DOptions, type Analytics, Annotation, Area, type AutoElements, BBox, BEARING_TYPE, CONNECTION_TYPE, type Camera, type CameraBounds, type CameraTransform, type CaptureEventsPayloadMap, type ColorString, Connection, Coordinate, DOORS, type Debug, type DebugState, DetailedMapData, Directions, Door, E_SDK_LOG_LEVEL, EnterpriseCategory, EnterpriseLocation, EnterpriseVenue, type EnvMapOptions, type Environment, type Exporter, Facade, Feature, FeatureCollection, Floor, FloorStack, type FootprintConfig, GeoJSON$1 as GeoJSON, GeoJsonGeometryTypes, GeoJsonObject, GeoJsonProperties, GeoJsonTypes, Geometry, GeometryCollection, GeometryObject, type GlobalState, Hyperlink, type IAnchorable, type IFocusable, type IGeoJSONData, type INavigatable, type ISystemPlugin, type Image3D, type Image3DView, ImageMetaData, type InitializeModelState, type InitializeText3DState, type InsetPadding, type InsetPaddingOption, type InterpolateOn, type Interpolation, type Label, type LabelAppearance, type LabelTextPlacement, type Labels, LineString, type LineStyle, LocationCategory, LocationProfile, type LocationSocial, type LocationState, MAPPEDIN_COLORS, type MapData, type MapDataElements, type MapElementToGetRenderedState, type MapElementToGetState, type MapElementToUpdateState, type MapElementsWithState, type MapFeatureOfType, MapObject, MapView, type MapViewElements, type MapViewState, type MappedinError, type MappedinRenderError, type Marker, type Markers, type MatchInfo, type Model, type Models, type MultiFloorViewEffectState, MultiLineString, MultiPoint, MultiPolygon, type Navigation, type NavigationState, Node, type OpeningHours, type OperationHours, type Outdoor, type OutlinesOptions, type PaintStyle, type Path, type PathSegment$1 as PathSegment, type PathWidth, type Paths, type PixelWidth, type Places, Point, PointOfInterest, Polygon, type Position, type PubSub, type Query, type RendererCoreOptions, type Search, type SearchOptions, type SearchResult, type SearchResultEnterpriseCategory, type SearchResultEnterpriseLocations, type SearchResultItem, type SearchResultPlaces, type Shading, type Shape, type Shapes, type SiblingGroup, Space, type Style, type Suggestion, type TActionType, type TAddImageOptions, type TAddLabelOptions, type TAddMarkerOptions, type TAddModel, type TAddModelOptions, type TAddPathOptions, type TAddText3DAnchorableOptions, type TAddText3DOptions, type TAnalyticsUpdateState, type TAnimateStateResult, type TAnimationOptions, type TAntialiasingOptions, type TBearingType, type TCameraAnimationOptions, type TCameraInteractionsSetOptions, type TCameraTarget, type TCancellablePromise, type TClickPayload, type TCollisionRankingTier, type TConnectionPathOptions, type TConnectionType, type TCoordinateParams, type TCreateMarker, type TDirectionInstruction, type TDirectionInstructionAction, type TDirectionZone, type TDoorsState, type TDoorsUpdateState, type TEasingFunction, type TEventPayload, type TEvents, type TFacadeState, type TFacadeUpdateState, type TFindNearestOptions, type TFindNearestResult, type TFindPreferredLanguageInVenueOptions, type TFloorAltitudeData, type TFloorChangePayload, type TFloorChangeReason, type TFloorState, type TFloorUpdateState, type TFocusOnOptions, type TFocusTarget, type TGeometryState, type TGeometryUpdateState, type TGetDirectionsOptions, type TGetMapDataOptions, type TGetMapDataSharedOptions, type TGetMapDataWithAccessTokenOptions, type TGetMapDataWithCredentialsOptions, type TGetState, type THoverPayload, type THydrateMapDataBundle, type TImage3DState as TImageState, type TImage3DUpdateState as TImageUpdateState, type TLabelState, type TLabelUpdateState, type TMVF, type TMVFLineStringStyle, type TMVFPointStyle, type TMVFPolygonStyle, type TMVFStyle, type TMVFStyleCollection, type TMapDataEvents, type TMapDataObjectTypes, type TMapFeatureTypes, type TMapViewObjectTypes, type TMarkerPlacement, type TMarkerState, type TMarkerUpdateState, type TModelState, type TModelUpdateState, type TMultiFloorViewOptions, type TNavigationOptions, type TNavigationPathOptions, type TNavigationTarget, type TPathSectionHighlightOptions, type TPathState, type TPathUpdateState, type TQueriables, type TQueryAtResult, type RendererState as TRendererState, type TSearchOptions, type TSetFloorOptions, type TShapeState, type TShapeUpdateState, type TShow3DMapOptions, type TSpaceType, type TStateChangedInternalPayload, type TTakeScreenshotOptions, type TText3DState, type TText3DUpdateState, type TUpdateState, type TWallsState, type TWallsUpdateState, TWatermarkOptions, type Text3D, type Text3DView, type UpdateGlobalState, type VisibilityState, WALLS, type WithState, MapLibreOverlay as __INTERNAL__MapLibreOverlay, __setWatermarkOnClickFn, checkWorkerUrls, disableText3DWorker, enableTestMode, findPreferredLanguageInVenue, forceEnterpriseLocations, getMapData, getMapDataEnterprise, getMultiFloorState, getVersion, hydrateMapData, hydrateMapDataFromMVF, parseMVFv2 as parseMVF, preloadFont, setLoggerLevel, setUseEnterpriseAPI, setWorkersUrl, shouldForceEnterpriseLocations, show3dMap, show3dMapGeojson, unzipAndParseMVFv2, unzipMVFv2 as unzipMVF };
21995
+ export { ACTION_TYPE, ANIMATION_TWEENS, type AddText3DOptions, type Analytics, Annotation, Area, type AutoElements, BBox, BEARING_TYPE, CONNECTION_TYPE, type Camera, type CameraBounds, type CameraTransform, type CaptureEventsPayloadMap, type ColorString, Connection, Coordinate, DOORS, type Debug, type DebugState, DetailedMapData, Directions, Door, E_SDK_LOG_LEVEL, EnterpriseCategory, EnterpriseLocation, EnterpriseVenue, type EnvMapOptions, type Environment, type Exporter, Facade, Feature, FeatureCollection, Floor, FloorStack, type FootprintConfig, GeoJSON$1 as GeoJSON, GeoJsonGeometryTypes, GeoJsonObject, GeoJsonProperties, GeoJsonTypes, Geometry, GeometryCollection, GeometryObject, type GlobalState, Hyperlink, type IAnchorable, type IFocusable, type IGeoJSONData, type INavigatable, type ISystemPlugin, type Image3D, type Image3DView, ImageMetaData, type InitializeModelState, type InitializeText3DState, type InsetPadding, type InsetPaddingOption, type InterpolateOn, type Interpolation, type Label, type LabelAppearance, type LabelTextPlacement, type Labels, LineString, type LineStyle, LocationCategory, LocationProfile, type LocationSocial, type LocationState, MAPPEDIN_COLORS, type MapData, type MapDataElements, type MapElementToGetRenderedState, type MapElementToGetState, type MapElementToUpdateState, type MapElementsWithState, type MapFeatureOfType, MapObject, MapView, type MapViewElements, type MapViewState, type MappedinError, type MappedinRenderError, type Marker, type Markers, type MatchInfo, type Model, type Models, type MultiFloorViewEffectState, MultiLineString, MultiPoint, MultiPolygon, type Navigation, type NavigationState, Node, type OpeningHours, type OperationHours, type Outdoor, type OutlinesOptions, type PaintStyle, type Path, type PathSegment$1 as PathSegment, type PathWidth, type Paths, type PixelWidth, type Places, Point, PointOfInterest, Polygon, type Position, type PubSub, type Query, type RendererCoreOptions, type Search, type SearchOptions, type SearchResult, type SearchResultEnterpriseCategory, type SearchResultEnterpriseLocations, type SearchResultItem, type SearchResultPlaces, type Shading, type Shape, type Shapes, type SiblingGroup, Space, type Style, type Suggestion, type TActionType, type TAddImageOptions, type TAddLabelOptions, type TAddMarkerOptions, type TAddModel, type TAddModelOptions, type TAddPathOptions, type TAddText3DAnchorableOptions, type TAddText3DOptions, type TAnalyticsUpdateState, type TAnimateStateResult, type TAnimationOptions, type TAntialiasingOptions, type TBearingType, type TCameraAnimationOptions, type TCameraInteractionsSetOptions, type TCameraTarget, type TCancellablePromise, type TClickPayload, type TCollisionRankingTier, type TConnectionPathOptions, type TConnectionType, type TCoordinateParams, type TCreateMarker, type TDirectionInstruction, type TDirectionInstructionAction, type TDirectionZone, type TDoorsState, type TDoorsUpdateState, type TEasingFunction, type TEventPayload, type TEvents, type TExperimentalDashOptions, type TFacadeState, type TFacadeUpdateState, type TFindNearestOptions, type TFindNearestResult, type TFindPreferredLanguageInVenueOptions, type TFloorAltitudeData, type TFloorChangePayload, type TFloorChangeReason, type TFloorState, type TFloorUpdateState, type TFocusOnOptions, type TFocusTarget, type TGeometryState, type TGeometryUpdateState, type TGetDirectionsOptions, type TGetMapDataOptions, type TGetMapDataSharedOptions, type TGetMapDataWithAccessTokenOptions, type TGetMapDataWithCredentialsOptions, type TGetState, type THoverPayload, type THydrateMapDataBundle, type TImage3DState as TImageState, type TImage3DUpdateState as TImageUpdateState, type TLabelState, type TLabelUpdateState, type TMVF, type TMVFLineStringStyle, type TMVFPointStyle, type TMVFPolygonStyle, type TMVFStyle, type TMVFStyleCollection, type TMapDataEvents, type TMapDataObjectTypes, type TMapFeatureTypes, type TMapViewObjectTypes, type TMarkerPlacement, type TMarkerState, type TMarkerUpdateState, type TModelState, type TModelUpdateState, type TMultiFloorViewOptions, type TNavigationOptions, type TNavigationPathOptions, type TNavigationTarget, type TOutsideThresholdPathStyle, type TPathSectionHighlightOptions, type TPathState, type TPathUpdateState, type TQueriables, type TQueryAtResult, type RendererState as TRendererState, type TSearchOptions, type TSetFloorOptions, type TShapeState, type TShapeUpdateState, type TShow3DMapOptions, type TSpaceType, type TStateChangedInternalPayload, type TTakeScreenshotOptions, type TTetheredOptions as TTetherOptions, type TText3DState, type TText3DUpdateState, type TTrackCoordinateOptions, type TTravelledOptions, type TUpdateState, type TWallsState, type TWallsUpdateState, TWatermarkOptions, type Text3D, type Text3DView, type UpdateGlobalState, type VisibilityState, WALLS, type WithState, MAPPEDIN_LAYER_ID as __INTERNAL__MAPPEDIN_LAYER_ID, MapLibreOverlay as __INTERNAL__MapLibreOverlay, Core as __INTERNAL__RendererCore, convertToRendererCoreOptions as __INTERNAL__convertToRendererCoreOptions, __setWatermarkOnClickFn, checkWorkerUrls, disableText3DWorker, enableTestMode, findPreferredLanguageInVenue, forceEnterpriseLocations, getMapData, getMapDataEnterprise, getMultiFloorState, getVersion, hydrateMapData, hydrateMapDataFromMVF, parseMVFv2 as parseMVF, preloadFont, setLoggerLevel, setUseEnterpriseAPI, setWorkersUrl, shouldForceEnterpriseLocations, show3dMap, show3dMapGeojson, unzipAndParseMVFv2, unzipMVFv2 as unzipMVF };