@mappedin/maplibre-overlay 6.6.0-beta.0 → 6.7.0-beta.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.
@@ -1,5 +1,5 @@
1
1
  import { Color as Color$1, CompositeExpression, DiffCommand, DiffOperations, Feature as Feature$2, FeatureState, FilterSpecification, FormattedSection, GlobalProperties, ICanonicalTileID, IMercatorCoordinate, LayerSpecification, LightSpecification, ProjectionSpecification, PromoteIdSpecification, PropertyValueSpecification, ResolvedImage, SkySpecification, SourceExpression, SourceSpecification, SpriteSpecification, StylePropertyExpression, StylePropertySpecification, StyleSpecification, TerrainSpecification, TransitionSpecification } from '@maplibre/maplibre-gl-style-spec';
2
- import { AnnotationCollection, AnnotationSymbol, AreaCollection, AreaId, BaseTextAreaProperties, Category as MVFCategory, CategoryId, Connection as MVFConnection, Details, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseCategory as MvfEnterpriseCategory, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocation as MvfEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseLocationInstance, EnterpriseTexture, EnterpriseVenue as MVFEnterpriseVenue, EntranceCollection, EntranceFeature, Facade as MVFFacade, Feature, Feature as MVFFeature, FeatureCollection, FloatingFloorTextProperties, FloorCollection, FloorId, FloorProperties as MVFFloor, FloorProperties as MvfFloor, FloorStack as MVFFloorStack, FloorStack as MvfFloorStack, FloorTextCommonProperties, Geometry, Hyperlink as MVFHyperlink, Image as MVFImage, Language, LineStringStyle, LineStringStyle as TMVFLineStringStyle, Location as MVFLocation, LocationId, LocationLink, LocationSocial, LocationState, MultiPolygon, NavigationFlagDeclarations, NodeCollection, NodeCollection as MVFNodeCollection, NodeId, ObstructionCollection, ObstructionFeature, ObstructionId, ObstructionProperties, OpeningHoursSpecification, OperationHours, ParsedMVF, ParsedMVF as TMVF, ParsedMVFLocalePack, Point, PointStyle, PointStyle as TMVFPointStyle, Polygon, PolygonStyle, PolygonStyle as TMVFPolygonStyle, SiblingGroup, SpaceCollection, SpaceFeature, SpaceId, SpaceProperties, Style as TMVFStyle, StyleCollection, StyleCollection as TMVFStyleCollection, TilesetStyle } from '@mappedin/mvf-v2';
2
+ import { AnnotationCollection, AnnotationSymbol, AreaCollection, AreaId, BaseTextAreaProperties, Category as MVFCategory, CategoryId, Connection as MVFConnection, Details, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseCategory as MvfEnterpriseCategory, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocation as MvfEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseLocationInstance, EnterpriseTexture, EnterpriseVenue as MVFEnterpriseVenue, EnterpriseVenueType, EntranceCollection, EntranceFeature, Facade as MVFFacade, Feature, Feature as MVFFeature, FeatureCollection, FloatingFloorTextProperties, FloorCollection, FloorId, FloorProperties as MVFFloor, FloorProperties as MvfFloor, FloorStack as MVFFloorStack, FloorStack as MvfFloorStack, FloorTextCommonProperties, Geometry, Hyperlink as MVFHyperlink, Image as MVFImage, Language, LineStringStyle, LineStringStyle as TMVFLineStringStyle, Location as MVFLocation, LocationId, LocationLink, LocationSocial, LocationState, MultiPolygon, NavigationFlagDeclarations, NodeCollection, NodeCollection as MVFNodeCollection, NodeId, ObstructionCollection, ObstructionFeature, ObstructionId, ObstructionProperties, OpeningHoursSpecification, OperationHours, ParsedMVF, ParsedMVF as TMVF, ParsedMVFLocalePack, Point, PointStyle, PointStyle as TMVFPointStyle, Polygon, PolygonStyle, PolygonStyle as TMVFPolygonStyle, SiblingGroup, SpaceCollection, SpaceFeature, SpaceId, SpaceProperties, Style as TMVFStyle, StyleCollection, StyleCollection as TMVFStyleCollection, TilesetStyle } from '@mappedin/mvf-v2';
3
3
  import { ParsedMVF } from '@mappedin/mvf-v2/no-validator';
4
4
  import { Group as TweenGroup, Tween } from '@tweenjs/tween.js';
5
5
  import { AmbientLight, BatchedMesh, BatchedMeshGeometryRange, BufferAttribute, BufferGeometry, Camera, Camera as ThreeCamera, Color, DirectionalLight, Group, Intersection, LineSegments, Mesh, MeshLambertMaterial, MeshLambertMaterialParameters, Object3D, Object3DEventMap, PerspectiveCamera, Plane, PlaneGeometry, Raycaster, Scene, ShaderMaterial, Texture, TubeGeometry, Vector2, Vector3, WebGLRenderer } from 'three';
@@ -918,6 +918,7 @@ declare class BatchedStandardMaterial extends MeshLambertMaterial {
918
918
  removeSideTexture(batchId: number): void;
919
919
  removeTopTexture(batchId: number): void;
920
920
  dispose(): void;
921
+ clone(params?: MeshLambertMaterialParameters): this;
921
922
  }
922
923
  interface StandardSchemaV1<Input = unknown, Output = Input> {
923
924
  /** The Standard Schema properties. */
@@ -4742,6 +4743,44 @@ type PathState = {
4742
4743
  * Only applies when smoothingTension > 0.
4743
4744
  */
4744
4745
  smoothingCornerRadius: number;
4746
+ /**
4747
+ * Whether the path should be rendered as a dashed line.
4748
+ */
4749
+ dashed: boolean;
4750
+ /**
4751
+ * Length of each dash segment as fraction of path (0-1).
4752
+ */
4753
+ dashLength: number;
4754
+ /**
4755
+ * Length of each gap between dashes as fraction of path (0-1).
4756
+ */
4757
+ dashGap: number;
4758
+ /**
4759
+ * When true, dashSize and gapSize are interpreted as multiples of path width.
4760
+ * When false, dashLength and dashGap are used as fractions of path length.
4761
+ */
4762
+ dashRelativeToWidth: boolean;
4763
+ /**
4764
+ * Length of each dash as a multiple of path width. Only used when dashRelativeToWidth is true.
4765
+ */
4766
+ dashSize: number;
4767
+ /**
4768
+ * Length of each gap as a multiple of path width. Only used when dashRelativeToWidth is true.
4769
+ */
4770
+ gapSize: number;
4771
+ /**
4772
+ * When true, dashMeters and gapMeters are used as absolute sizes in meters.
4773
+ * Takes precedence over dashRelativeToWidth.
4774
+ */
4775
+ dashAbsolute: boolean;
4776
+ /**
4777
+ * Length of each dash in meters. Only used when dashAbsolute is true.
4778
+ */
4779
+ dashMeters: number;
4780
+ /**
4781
+ * Length of each gap in meters. Only used when dashAbsolute is true.
4782
+ */
4783
+ gapMeters: number;
4745
4784
  };
4746
4785
  type AddPathOptions = {
4747
4786
  /**
@@ -4813,6 +4852,48 @@ type AddPathOptions = {
4813
4852
  * @default 0.0
4814
4853
  */
4815
4854
  smoothingCornerRadius?: number;
4855
+ /**
4856
+ * Length of each dash segment as fraction of path (0-1).
4857
+ * @default 0.1
4858
+ */
4859
+ dashLength?: number;
4860
+ /**
4861
+ * Length of each gap between dashes as fraction of path (0-1).
4862
+ * @default 0.1
4863
+ */
4864
+ dashGap?: number;
4865
+ /**
4866
+ * When true, dashSize and gapSize are interpreted as multiples of path width (deck.gl style).
4867
+ * When false (default), dashLength and dashGap are used as fractions of path length.
4868
+ * @default false
4869
+ */
4870
+ dashRelativeToWidth?: boolean;
4871
+ /**
4872
+ * Length of each dash as a multiple of path width. Only used when dashRelativeToWidth is true.
4873
+ * @default 3.0
4874
+ */
4875
+ dashSize?: number;
4876
+ /**
4877
+ * Length of each gap as a multiple of path width. Only used when dashRelativeToWidth is true.
4878
+ * @default 2.0
4879
+ */
4880
+ gapSize?: number;
4881
+ /**
4882
+ * When true, dashMeters and gapMeters are used as absolute sizes in meters.
4883
+ * Takes precedence over dashRelativeToWidth.
4884
+ * @default false
4885
+ */
4886
+ dashAbsolute?: boolean;
4887
+ /**
4888
+ * Length of each dash in meters. Only used when dashAbsolute is true.
4889
+ * @default 1.0
4890
+ */
4891
+ dashMeters?: number;
4892
+ /**
4893
+ * Length of each gap in meters. Only used when dashAbsolute is true.
4894
+ * @default 0.5
4895
+ */
4896
+ gapMeters?: number;
4816
4897
  };
4817
4898
  declare class PathComponent {
4818
4899
  #private;
@@ -4841,6 +4922,14 @@ declare class PathComponent {
4841
4922
  dashed: boolean;
4842
4923
  smoothingTension: number;
4843
4924
  smoothingCornerRadius: number;
4925
+ dashLength: number;
4926
+ dashGap: number;
4927
+ dashRelativeToWidth: boolean;
4928
+ dashSize: number;
4929
+ gapSize: number;
4930
+ dashAbsolute: boolean;
4931
+ dashMeters: number;
4932
+ gapMeters: number;
4844
4933
  /**
4845
4934
  * If the path is vertical it will be rebuilt whenever altitudeDirty = true. This will be set during the first render of the path.
4846
4935
  */
@@ -5031,8 +5120,11 @@ declare class OutlineComponent implements Outline {
5031
5120
  }
5032
5121
  declare class FocusableComponent {
5033
5122
  readonly type: "focusable";
5034
- focusMesh?: Mesh;
5035
5123
  dirty: boolean;
5124
+ /**
5125
+ * Vertices of the geometry in world space
5126
+ */
5127
+ vertices?: Vector3[];
5036
5128
  }
5037
5129
  type TextureStyle = {
5038
5130
  texture?: SingleTexture;
@@ -5271,6 +5363,38 @@ interface PathUniforms {
5271
5363
  type: "f";
5272
5364
  value: number;
5273
5365
  };
5366
+ dashLength: {
5367
+ type: "f";
5368
+ value: number;
5369
+ };
5370
+ dashGap: {
5371
+ type: "f";
5372
+ value: number;
5373
+ };
5374
+ dashRelativeToWidth: {
5375
+ type: "b";
5376
+ value: boolean;
5377
+ };
5378
+ dashSize: {
5379
+ type: "f";
5380
+ value: number;
5381
+ };
5382
+ gapSize: {
5383
+ type: "f";
5384
+ value: number;
5385
+ };
5386
+ dashAbsolute: {
5387
+ type: "b";
5388
+ value: boolean;
5389
+ };
5390
+ dashMeters: {
5391
+ type: "f";
5392
+ value: number;
5393
+ };
5394
+ gapMeters: {
5395
+ type: "f";
5396
+ value: number;
5397
+ };
5274
5398
  }
5275
5399
  declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EVENT_PAYLOAD> {
5276
5400
  /**
@@ -5281,13 +5405,37 @@ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EV
5281
5405
  /**
5282
5406
  * @private
5283
5407
  * @internal
5408
+ * AbortController for managing lifecycle and cleanup
5409
+ */
5410
+ private _abortController;
5411
+ /**
5412
+ * @protected
5413
+ * @internal
5414
+ * Tracks all cleanup functions for subscriptions made via on()
5415
+ */
5416
+ protected _cleanupFunctions: Array<() => void>;
5417
+ /**
5418
+ * Returns the AbortSignal for this PubSub instance.
5419
+ * Use this signal with APIs that support cancellation (fetch, addEventListener, etc.)
5420
+ * When the PubSub is destroyed, the signal will be aborted and all listeners using it will be automatically removed.
5421
+ *
5422
+ * @example
5423
+ * ```typescript
5424
+ * // Automatically cleaned up when PubSub is destroyed
5425
+ * pubsub.addEventListener(window, 'resize', handler, { signal: pubsub.signal });
5426
+ * ```
5284
5427
  */
5285
- private _destroyed;
5428
+ get signal(): AbortSignal;
5286
5429
  /**
5287
5430
  * @private
5288
5431
  * @internal
5289
5432
  */
5290
5433
  publish<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, data?: EVENT_PAYLOAD[EVENT_NAME]): void;
5434
+ /**
5435
+ * Subscribe a function to be called when the signal is aborted.
5436
+ * @param fn The function to call when the signal is aborted.
5437
+ */
5438
+ onAbort<T extends (...args: any[]) => void>(fn: T): void;
5291
5439
  /**
5292
5440
  * Subscribe a function to an event.
5293
5441
  *
@@ -5295,6 +5443,9 @@ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EV
5295
5443
  * function.
5296
5444
  * @param fn A callback that gets called when the corresponding event is fired. The
5297
5445
  * callback will get passed an argument with a type that's one of event payloads.
5446
+ * @param options Optional options object. If a signal is provided, the subscription will be
5447
+ * automatically cleaned up when that signal is aborted.
5448
+ * @returns A cleanup function that unsubscribes the event listener when called.
5298
5449
  * @example
5299
5450
  * // Subscribe to the 'click' event
5300
5451
  * const handler = (event) => {
@@ -5306,7 +5457,9 @@ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EV
5306
5457
  */
5307
5458
  on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
5308
5459
  data: null;
5309
- } ? EVENT_PAYLOAD[EVENT_NAME]["data"] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
5460
+ } ? EVENT_PAYLOAD[EVENT_NAME]["data"] : EVENT_PAYLOAD[EVENT_NAME]) => void, options?: {
5461
+ signal?: AbortSignal;
5462
+ }): () => void;
5310
5463
  /**
5311
5464
  * Unsubscribe a function previously subscribed with {@link on}
5312
5465
  *
@@ -5327,6 +5480,7 @@ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EV
5327
5480
  /**
5328
5481
  * @private
5329
5482
  * @internal
5483
+ * Destroys the PubSub instance and automatically unsubscribes all listeners registered via on().
5330
5484
  */
5331
5485
  destroy(): void;
5332
5486
  }
@@ -5561,13 +5715,37 @@ declare class PubSub$1<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof
5561
5715
  /**
5562
5716
  * @private
5563
5717
  * @internal
5718
+ * AbortController for managing lifecycle and cleanup
5719
+ */
5720
+ private _abortController;
5721
+ /**
5722
+ * @protected
5723
+ * @internal
5724
+ * Tracks all cleanup functions for subscriptions made via on()
5725
+ */
5726
+ protected _cleanupFunctions: Array<() => void>;
5727
+ /**
5728
+ * Returns the AbortSignal for this PubSub instance.
5729
+ * Use this signal with APIs that support cancellation (fetch, addEventListener, etc.)
5730
+ * When the PubSub is destroyed, the signal will be aborted and all listeners using it will be automatically removed.
5731
+ *
5732
+ * @example
5733
+ * ```typescript
5734
+ * // Automatically cleaned up when PubSub is destroyed
5735
+ * pubsub.addEventListener(window, 'resize', handler, { signal: pubsub.signal });
5736
+ * ```
5564
5737
  */
5565
- private _destroyed;
5738
+ get signal(): AbortSignal;
5566
5739
  /**
5567
5740
  * @private
5568
5741
  * @internal
5569
5742
  */
5570
5743
  publish<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, data?: EVENT_PAYLOAD[EVENT_NAME]): void;
5744
+ /**
5745
+ * Subscribe a function to be called when the signal is aborted.
5746
+ * @param fn The function to call when the signal is aborted.
5747
+ */
5748
+ onAbort<T extends (...args: any[]) => void>(fn: T): void;
5571
5749
  /**
5572
5750
  * Subscribe a function to an event.
5573
5751
  *
@@ -5575,6 +5753,9 @@ declare class PubSub$1<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof
5575
5753
  * function.
5576
5754
  * @param fn A callback that gets called when the corresponding event is fired. The
5577
5755
  * callback will get passed an argument with a type that's one of event payloads.
5756
+ * @param options Optional options object. If a signal is provided, the subscription will be
5757
+ * automatically cleaned up when that signal is aborted.
5758
+ * @returns A cleanup function that unsubscribes the event listener when called.
5578
5759
  * @example
5579
5760
  * // Subscribe to the 'click' event
5580
5761
  * const handler = (event) => {
@@ -5586,7 +5767,9 @@ declare class PubSub$1<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof
5586
5767
  */
5587
5768
  on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
5588
5769
  data: null;
5589
- } ? EVENT_PAYLOAD[EVENT_NAME]["data"] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
5770
+ } ? EVENT_PAYLOAD[EVENT_NAME]["data"] : EVENT_PAYLOAD[EVENT_NAME]) => void, options?: {
5771
+ signal?: AbortSignal;
5772
+ }): () => void;
5590
5773
  /**
5591
5774
  * Unsubscribe a function previously subscribed with {@link on}
5592
5775
  *
@@ -5607,6 +5790,7 @@ declare class PubSub$1<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof
5607
5790
  /**
5608
5791
  * @private
5609
5792
  * @internal
5793
+ * Destroys the PubSub instance and automatically unsubscribes all listeners registered via on().
5610
5794
  */
5611
5795
  destroy(): void;
5612
5796
  }
@@ -13739,12 +13923,6 @@ declare class DOMVisibilitySystem {
13739
13923
  constructor(state: RendererState, domTree: Entity2DHTMLDivElementContainer);
13740
13924
  update(): void;
13741
13925
  }
13742
- declare class TwoDProjectionSystem {
13743
- state: RendererState;
13744
- project: (projection: Vector2, position: Vector3) => void;
13745
- constructor(state: RendererState, project: (projection: Vector2, position: Vector3) => void);
13746
- update(): void;
13747
- }
13748
13926
  declare enum PINVISIBILITY {
13749
13927
  /** The pin is visible. */
13750
13928
  ACTIVE = 1,
@@ -13897,7 +14075,11 @@ type AnimateToOptions = AnimationOptions$1 & {
13897
14075
  elevation?: number;
13898
14076
  interruptible?: boolean;
13899
14077
  };
13900
- declare class Camera$2 {
14078
+ declare class Camera$2 extends PubSub$1<{
14079
+ "padding-change": {
14080
+ padding: InsetPadding;
14081
+ };
14082
+ }> {
13901
14083
  #private;
13902
14084
  /**
13903
14085
  * @internal
@@ -14164,39 +14346,7 @@ declare class OutlineInterpolationSystem extends PubSub$1<{
14164
14346
  update(zoomLevel: number, isCameraZoomDirty?: boolean): void;
14165
14347
  destroy(): void;
14166
14348
  }
14167
- declare class GeometryInFocusSystem extends PubSub$1<{
14168
- /**
14169
- * Returns the list of entities that are likely in focus, sorted by the weight of the raycast.
14170
- */
14171
- "geometry-in-focus": string[];
14172
- }> {
14173
- #private;
14174
- cameraDirty: boolean;
14175
- focusablesDirty: boolean;
14176
- private state;
14177
- private camera;
14178
- private debugEl;
14179
- private raycasters;
14180
- private collisions;
14181
- private focusableEntities;
14182
- private debugRaycasters;
14183
- constructor(state: RendererState, camera: PerspectiveCamera);
14184
- resize(): void;
14185
- /**
14186
- * Build 5 raycasters, one for the center of the screen, and one for each corner of the screen.
14187
- * the center one has the highest weight, and the corners have the lowest weight.
14188
- * this allows us to detect focus closer to the center of the screen more easily.
14189
- */
14190
- private buildRaycasters;
14191
- private updateFocusableEntities;
14192
- update: (cameraIsMoving?: boolean, cameraStoppedMovingTime?: number) => void;
14193
- updateRaf(): void;
14194
- raycast(): void;
14195
- showRaycasters(): void;
14196
- hideRaycasters(): void;
14197
- destroy(): void;
14198
- }
14199
- declare class OutdoorLayers {
14349
+ declare class OutdoorLayers extends PubSub<{}> {
14200
14350
  #private;
14201
14351
  idleQueue: IdleQueue;
14202
14352
  hideLayersIntersectingPolygons(polygons: Feature$1<Polygon$1 | MultiPolygon$1, any>[], layers: string[]): void;
@@ -14395,6 +14545,12 @@ declare class Core extends PubSub<MapEvent> {
14395
14545
  * @internal
14396
14546
  */
14397
14547
  constructor(container: HTMLElement, options?: RendererCoreOptions);
14548
+ /**
14549
+ * Projects a position into screen space. If a Vector3 is provided, the z-coordinate will include the depth from the camera.
14550
+ * @param projectVector - The vector to project the position into
14551
+ * @param position - The position to project
14552
+ */
14553
+ private project;
14398
14554
  /**
14399
14555
  * Add a container that can hold other containers, geometry groups, markers, labels and paths. Use this to group entities together.
14400
14556
  */
@@ -14648,16 +14804,7 @@ declare class Core extends PubSub<MapEvent> {
14648
14804
  /**
14649
14805
  * Remove a MapLibre event listener
14650
14806
  */
14651
- offMapLibreEvent(event: keyof MapEventType, handler: (...args: any[]) => void): void;
14652
- /**
14653
- * Returns true if the renderer has been aborted.
14654
- */
14655
- get aborted(): boolean;
14656
- /**
14657
- * Register a handler once to be called when the renderer is aborted.
14658
- * The handler will be removed after it is called.
14659
- */
14660
- onAbort(handler: () => void): void;
14807
+ offMapLibreEvent(event: LiteralUnion<keyof MapEventType, string>, handler: (...args: any[]) => void): void;
14661
14808
  /**
14662
14809
  * @internal for testing
14663
14810
  */
@@ -14686,7 +14833,7 @@ declare class Core extends PubSub<MapEvent> {
14686
14833
  * };
14687
14834
  * map.on('click', handler);
14688
14835
  */
14689
- on: <EventName extends keyof MapEvent>(eventName: EventName, fn: (payload: MapEventPayload<EventName>) => void) => void;
14836
+ on: PubSub<MapEvent>["on"];
14690
14837
  /**
14691
14838
  * Unsubscribe a function previously subscribed with {@link on}
14692
14839
  *
@@ -14701,7 +14848,7 @@ declare class Core extends PubSub<MapEvent> {
14701
14848
  * };
14702
14849
  * map.off('click', handler);
14703
14850
  */
14704
- off: <EventName extends keyof MapEvent>(eventName: EventName, fn: (payload: MapEventPayload<EventName>) => void) => void;
14851
+ off: PubSub<MapEvent>["off"];
14705
14852
  /**
14706
14853
  * @hidden
14707
14854
  * Returns the current cursor decided by Mappedin. This is useful when integrating with other overlays to show the correct user interaction.
@@ -15233,6 +15380,12 @@ type MapEvent = {
15233
15380
  * If outdoor view is enabled, this is fired when the style first loads or changes.
15234
15381
  */
15235
15382
  "outdoor-style-loaded": undefined;
15383
+ /**
15384
+ * Fired when outdoor style loading fails. The map will fall back to indoor-only rendering.
15385
+ */
15386
+ "outdoor-style-error": {
15387
+ error: unknown;
15388
+ };
15236
15389
  /**
15237
15390
  * Fired when the user starts interacting with the map.
15238
15391
  */
@@ -15263,9 +15416,6 @@ type MapEvent = {
15263
15416
  resize: undefined;
15264
15417
  "pan-bounds-change": PanBounds;
15265
15418
  };
15266
- type MapEventPayload<EventName extends keyof MapEvent> = MapEvent[EventName] extends {
15267
- data: null;
15268
- } ? MapEvent[EventName]["data"] : MapEvent[EventName];
15269
15419
  type All3DTypes = Geometry3DTypes | GeometryGroupObject3D | GroupContainerObject3D;
15270
15420
  type RendererState = {
15271
15421
  /**
@@ -16012,7 +16162,10 @@ declare class FloorObject implements MVFFloor {
16012
16162
  facadesByStyleId: Map<string, string[]>;
16013
16163
  get geoJSONBoundingBox(): BBox | undefined;
16014
16164
  constructor(parentId: string, floor: MVFFloor, mapObject: GeojsonApiMapObject, multiFloorView: Required<TShow3DMapOptions["multiFloorView"]>, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap, mapDataInternal?: MapDataInternal);
16015
- load: () => this;
16165
+ /**
16166
+ * @param focusable - Whether the floor is part of a building and should be focusable. This will be set on the geometry layer.
16167
+ */
16168
+ load: (focusable?: boolean) => this;
16016
16169
  /**
16017
16170
  * Add an occluder to the floor if it has a footprint.
16018
16171
  */
@@ -16023,6 +16176,7 @@ declare class FloorObject implements MVFFloor {
16023
16176
  get hasFacadeGeometry(): boolean;
16024
16177
  get visible(): boolean;
16025
16178
  setVisible(visible: boolean): void;
16179
+ setBatchedTextVisible(visible: boolean): void;
16026
16180
  }
16027
16181
  declare class FloorStackObject implements Omit<MVFFloorStack, "maps" | "floors" | "defaultFloor" | "footprint"> {
16028
16182
  #private;
@@ -16038,7 +16192,6 @@ declare class FloorStackObject implements Omit<MVFFloorStack, "maps" | "floors"
16038
16192
  metadata?: MVFFloorStack["metadata"];
16039
16193
  containerId: string;
16040
16194
  facade?: MVFFacade;
16041
- private renderer;
16042
16195
  constructor(floorStack: MVFFloorStack, parentId: string, renderer: Core, facade?: MVFFacade);
16043
16196
  get defaultFloor(): FloorObject;
16044
16197
  /**
@@ -17845,6 +17998,9 @@ declare const floorStateSchemaPartial: z.ZodObject<{
17845
17998
  type: z.ZodOptional<z.ZodDefault<z.ZodLiteral<"floor.areas">>>;
17846
17999
  visible: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
17847
18000
  }, z.core.$strip>>;
18001
+ text3d: z.ZodOptional<z.ZodObject<{
18002
+ visible: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
18003
+ }, z.core.$strip>>;
17848
18004
  type: z.ZodOptional<z.ZodDefault<z.ZodLiteral<"floor">>>;
17849
18005
  visible: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
17850
18006
  altitude: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
@@ -17892,6 +18048,9 @@ declare const floorStateSchemaStrict: z.ZodObject<{
17892
18048
  type: z.ZodDefault<z.ZodLiteral<"floor.areas">>;
17893
18049
  visible: z.ZodDefault<z.ZodBoolean>;
17894
18050
  }, z.core.$strict>;
18051
+ text3d: z.ZodObject<{
18052
+ visible: z.ZodDefault<z.ZodBoolean>;
18053
+ }, z.core.$strict>;
17895
18054
  type: z.ZodDefault<z.ZodLiteral<"floor">>;
17896
18055
  visible: z.ZodDefault<z.ZodBoolean>;
17897
18056
  altitude: z.ZodDefault<z.ZodNumber>;
@@ -18120,6 +18279,24 @@ declare const pathStateSchemaPartial: z.ZodObject<{
18120
18279
  xrayOpacity: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
18121
18280
  __EXPERIMENTAL_SMOOTHING_TENSION: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
18122
18281
  __EXPERIMENTAL_SMOOTHING_CORNER_RADIUS: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
18282
+ dashed: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
18283
+ __EXPERIMENTAL_DASH_OPTIONS: z.ZodOptional<z.ZodOptional<z.ZodDiscriminatedUnion<[
18284
+ z.ZodObject<{
18285
+ __EXPERIMENTAL_DASH_MODE: z.ZodLiteral<"length-scaling">;
18286
+ __EXPERIMENTAL_DASH_LENGTH: z.ZodDefault<z.ZodNumber>;
18287
+ __EXPERIMENTAL_DASH_GAP: z.ZodDefault<z.ZodNumber>;
18288
+ }, z.core.$strip>,
18289
+ z.ZodObject<{
18290
+ __EXPERIMENTAL_DASH_MODE: z.ZodLiteral<"width-scaling">;
18291
+ __EXPERIMENTAL_DASH_SIZE: z.ZodDefault<z.ZodNumber>;
18292
+ __EXPERIMENTAL_GAP_SIZE: z.ZodDefault<z.ZodNumber>;
18293
+ }, z.core.$strip>,
18294
+ z.ZodObject<{
18295
+ __EXPERIMENTAL_DASH_MODE: z.ZodLiteral<"absolute">;
18296
+ __EXPERIMENTAL_DASH_METERS: z.ZodDefault<z.ZodNumber>;
18297
+ __EXPERIMENTAL_GAP_METERS: z.ZodDefault<z.ZodNumber>;
18298
+ }, z.core.$strip>
18299
+ ], "__EXPERIMENTAL_DASH_MODE">>>;
18123
18300
  }, z.core.$strip>;
18124
18301
  declare const pathStateSchemaStrict: z.ZodObject<{
18125
18302
  type: z.ZodDefault<z.ZodLiteral<"path">>;
@@ -18136,9 +18313,27 @@ declare const pathStateSchemaStrict: z.ZodObject<{
18136
18313
  xrayOpacity: z.ZodDefault<z.ZodNumber>;
18137
18314
  __EXPERIMENTAL_SMOOTHING_TENSION: z.ZodDefault<z.ZodNumber>;
18138
18315
  __EXPERIMENTAL_SMOOTHING_CORNER_RADIUS: z.ZodDefault<z.ZodNumber>;
18316
+ dashed: z.ZodDefault<z.ZodBoolean>;
18317
+ __EXPERIMENTAL_DASH_OPTIONS: z.ZodOptional<z.ZodDiscriminatedUnion<[
18318
+ z.ZodObject<{
18319
+ __EXPERIMENTAL_DASH_MODE: z.ZodLiteral<"length-scaling">;
18320
+ __EXPERIMENTAL_DASH_LENGTH: z.ZodDefault<z.ZodNumber>;
18321
+ __EXPERIMENTAL_DASH_GAP: z.ZodDefault<z.ZodNumber>;
18322
+ }, z.core.$strip>,
18323
+ z.ZodObject<{
18324
+ __EXPERIMENTAL_DASH_MODE: z.ZodLiteral<"width-scaling">;
18325
+ __EXPERIMENTAL_DASH_SIZE: z.ZodDefault<z.ZodNumber>;
18326
+ __EXPERIMENTAL_GAP_SIZE: z.ZodDefault<z.ZodNumber>;
18327
+ }, z.core.$strip>,
18328
+ z.ZodObject<{
18329
+ __EXPERIMENTAL_DASH_MODE: z.ZodLiteral<"absolute">;
18330
+ __EXPERIMENTAL_DASH_METERS: z.ZodDefault<z.ZodNumber>;
18331
+ __EXPERIMENTAL_GAP_METERS: z.ZodDefault<z.ZodNumber>;
18332
+ }, z.core.$strip>
18333
+ ], "__EXPERIMENTAL_DASH_MODE">>;
18139
18334
  }, z.core.$strict>;
18140
18335
  type TPathState = z.infer<typeof pathStateSchemaStrict>;
18141
- type TPathUpdateState = z.infer<typeof pathStateSchemaPartial>;
18336
+ type TPathUpdateState = z.input<typeof pathStateSchemaPartial>;
18142
18337
  declare const shapeStateSchemaPartial: z.ZodObject<{
18143
18338
  type: z.ZodOptional<z.ZodDefault<z.ZodLiteral<"shape">>>;
18144
18339
  visible: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
@@ -18683,6 +18878,12 @@ type GreedyLosOptions = BaseSimplifyOptions & {
18683
18878
  };
18684
18879
  type RdpOptions = BaseSimplifyOptions & {
18685
18880
  __EXPERIMENTAL_METHOD: "rdp";
18881
+ /**
18882
+ * Whether to include door-adjacent nodes (predecessor/successor of doors) in the must-include set.
18883
+ * When true, nodes immediately before and after doors are preserved during simplification.
18884
+ * @default true
18885
+ */
18886
+ mustIncludeDoorBufferNodes?: boolean;
18686
18887
  };
18687
18888
  type DpOptimalOptions = BaseSimplifyOptions & {
18688
18889
  __EXPERIMENTAL_METHOD: "dp-optimal";
@@ -19178,6 +19379,52 @@ type TDirectionZone = {
19178
19379
  */
19179
19380
  floor?: Floor;
19180
19381
  };
19382
+ type TExperimentalDashOptions = {
19383
+ /**
19384
+ * Length-scaling mode: dash/gap as fractions of path length (0-1)
19385
+ */
19386
+ __EXPERIMENTAL_DASH_MODE: "length-scaling";
19387
+ /**
19388
+ * Dash length as fraction of path (0-1).
19389
+ * @default 0.1
19390
+ */
19391
+ __EXPERIMENTAL_DASH_LENGTH?: number;
19392
+ /**
19393
+ * Gap length as fraction of path (0-1).
19394
+ * @default 0.1
19395
+ */
19396
+ __EXPERIMENTAL_DASH_GAP?: number;
19397
+ } | {
19398
+ /**
19399
+ * Width-scaling mode: dash/gap as multiples of path width (deck.gl style)
19400
+ */
19401
+ __EXPERIMENTAL_DASH_MODE: "width-scaling";
19402
+ /**
19403
+ * Dash size as multiple of path width.
19404
+ * @default 3.0
19405
+ */
19406
+ __EXPERIMENTAL_DASH_SIZE?: number;
19407
+ /**
19408
+ * Gap size as multiple of path width.
19409
+ * @default 2.0
19410
+ */
19411
+ __EXPERIMENTAL_GAP_SIZE?: number;
19412
+ } | {
19413
+ /**
19414
+ * Absolute mode: dash/gap in meters (deterministic regardless of path length)
19415
+ */
19416
+ __EXPERIMENTAL_DASH_MODE: "absolute";
19417
+ /**
19418
+ * Dash length in meters.
19419
+ * @default 1.0
19420
+ */
19421
+ __EXPERIMENTAL_DASH_METERS?: number;
19422
+ /**
19423
+ * Gap length in meters.
19424
+ * @default 0.5
19425
+ */
19426
+ __EXPERIMENTAL_GAP_METERS?: number;
19427
+ };
19181
19428
  type TAddPathOptions = {
19182
19429
  /**
19183
19430
  * Path Colour. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
@@ -19297,6 +19544,13 @@ type TAddPathOptions = {
19297
19544
  * @defaultValue 0.5
19298
19545
  */
19299
19546
  __EXPERIMENTAL_SMOOTHING_CORNER_RADIUS?: number;
19547
+ /**
19548
+ * @experimental
19549
+ * Dash configuration. When dashed=true, controls dash/gap sizing.
19550
+ * Uses discriminated union - mode determines which properties are valid.
19551
+ * @see TExperimentalDashOptions
19552
+ */
19553
+ __EXPERIMENTAL_DASH_OPTIONS?: TExperimentalDashOptions;
19300
19554
  };
19301
19555
  type TCollisionRankingTier = "low" | "medium" | "high" | "always-visible";
19302
19556
  type TMarkerPlacement = MarkerPlacement;
@@ -19399,6 +19653,13 @@ type TGetDirectionsOptions = {
19399
19653
  * Always uses line-of-sight validation (cannot be disabled).
19400
19654
  */
19401
19655
  __EXPERIMENTAL_METHOD: "rdp";
19656
+ /**
19657
+ * @experimental
19658
+ * Whether to include door-adjacent nodes (predecessor/successor of doors) in the must-include set.
19659
+ * When true (default), nodes immediately before and after doors are preserved during simplification.
19660
+ * @default true
19661
+ */
19662
+ __EXPERIMENTAL_MUST_INCLUDE_DOOR_BUFFER_NODES?: boolean;
19402
19663
  } | {
19403
19664
  /**
19404
19665
  * Enable or disable path smoothing.
@@ -21679,6 +21940,10 @@ declare class EnterpriseVenue extends BaseMetaData implements MVFEnterpriseVenue
21679
21940
  * The default map of the venue.
21680
21941
  */
21681
21942
  get defaultMap(): string;
21943
+ /**
21944
+ * The enterprise venue type.
21945
+ */
21946
+ get enterpriseType(): EnterpriseVenueType | undefined;
21682
21947
  /**
21683
21948
  * Serializes the EnterpriseVenue data to JSON.
21684
21949
  *