@orbat-mapper/tactical-draw 0.11.0 → 0.12.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.
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as PinOverridePatch, B as resolvePinPresentation, C as makeFillPatternImage, D as PointerEventInfo, E as PointerCallback, F as PinPresentationStatus, I as PinPresentationStatusEvent, L as PinPresentationStore, M as PinPresentationCapability, N as PinPresentationPatch, O as DEFAULT_PIN_PRESENTATION, P as PinPresentationState, R as PinRender, S as isMinePattern, T as EditPointerDriver, _ as HatchPattern, a as LayerId, b as fillPatternImageDimension, c as MapEvent, d as PickHandler, f as PickOptions, g as HATCH_PATTERNS, h as TextStyleOptions, i as ImageOverlayResource, j as PinPresentation, k as PinFootprint, l as MapEventHandler, m as StyleOptions, n as HandleStyle, o as MapAdapter, p as PixelCoordinate, r as IconResource, s as MapCursor, t as FeatureGroup, u as PickEvent, v as MINE_PATTERN_TILE_SIZE, w as parseColor, x as fillPatternImageId, y as Rgba, z as isValidPinNumber } from "./map-adapter-2Cmj-tem.mjs";
1
+ import { A as PinOverridePatch, B as isValidPinNumber, C as makeFillPatternImage, D as PointerEventInfo, E as PointerCallback, F as PinPresentationStatus, H as pinZoomScale, I as PinPresentationStatusEvent, L as PinPresentationStore, M as PinPresentationCapability, N as PinPresentationPatch, O as DEFAULT_PIN_PRESENTATION, P as PinPresentationState, R as PinRender, S as isMinePattern, T as EditPointerDriver, U as resolvePinPresentation, V as pinDistanceScale, _ as HatchPattern, a as LayerId, b as fillPatternImageDimension, c as MapEvent, d as PickHandler, f as PickOptions, g as HATCH_PATTERNS, h as TextStyleOptions, i as ImageOverlayResource, j as PinPresentation, k as PinFootprint, l as MapEventHandler, m as StyleOptions, n as HandleStyle, o as MapAdapter, p as PixelCoordinate, r as IconResource, s as MapCursor, t as FeatureGroup, u as PickEvent, v as MINE_PATTERN_TILE_SIZE, w as parseColor, x as fillPatternImageId, y as Rgba, z as combinePinScale } from "./map-adapter-B8zVKzWH.mjs";
2
2
  import { AmplifierPlacement, AmplifierPlacements, ControlMeasure, ControlMeasureKind, ControlMeasureRender, ControlMeasureStyle, SymbolColors, TextAmplifiers } from "@orbat-mapper/control-measures";
3
3
  import { Feature, Position } from "geojson";
4
4
 
@@ -2252,4 +2252,4 @@ declare function nearestWorldCopyLng(lng: number, refLng: number): number;
2252
2252
  /** `nearestWorldCopyLng` applied to a lon/lat position. */
2253
2253
  declare function nearestWorldCopyPosition(position: Position, refLng: number): Position;
2254
2254
  //#endregion
2255
- export { type AnchoredGraphic, BaseMapAdapter, type CombinedAbort, DEFAULT_LABEL_SIZE_PIXELS, DEFAULT_PIN_PRESENTATION, DEFAULT_TEXT_SIZE_MAX_PIXELS, DEFAULT_TEXT_SIZE_MIN_PIXELS, type DrawImageDraft, type DrawMeasureDraft, type DrawOptions, type DrawPointSymbolDraft, type DrawSession, type EditChangeEvent, type EditManyOptions, type EditMode, type EditOptions, type EditPointerDriver, type EditSession, type FeatureGroup, type Graphic, type GraphicEditChangeEvent, type GraphicEditSession, type GraphicGeometrySnappingOptions, type GraphicRender, type GraphicSnapshot, type GuideStyle, HATCH_PATTERNS, type HandleStyle, type HatchPattern, type IconResource, type ImageCapability, ImageCapabilityRequiredError, type ImageFootprint, type ImageGraphic, type ImageGraphicStyle, type ImageIntrinsicSize, type ImageOverlayResource, type ImageRender, type ImageResource, type ImageSize, type InteractionHit, type InteractionStyle, type LabelExtent, type LayerId, MINE_PATTERN_TILE_SIZE, type MapAdapter, type MapCursor, type MapEvent, type MapEventHandler, type MergedPickFeature, type NativeEventEntry, type OffsetDragModifier, type PickCandidate, type PickCandidateHit, type PickCandidateHitKind, type PickCandidateInput, type PickEvaluationContext, type PickEvent, type PickHandler, type PickOptions, type PickPointerType, PinFootprint, PinOverridePatch, PinPresentation, PinPresentationCapability, PinPresentationPatch, PinPresentationState, PinPresentationStatus, PinPresentationStatusEvent, PinPresentationStore, PinRender, type PixelCoordinate, type PointSymbol, type PointSymbolAnchor, type PointSymbolCapability, PointSymbolCapabilityRequiredError, type PointSymbolColors, type PointSymbolConnector, type PointSymbolFootprint, type PointSymbolGraphicModifiers, type PointSymbolOffset, type PointSymbolOffsetControls, type PointSymbolOffsetLayout, type PointSymbolOffsetStyle, type PointSymbolPlacement, type PointSymbolProjection, type PointSymbolRender, type PointSymbolSize, type PointSymbolStyle, type PointSymbolView, type PointerCallback, PointerCallbackHub, type PointerEventInfo, type ResolvedPickPresentation, type Rgba, type RotatedScreenBounds, type ScreenBounds, type SessionChangeSource, type SessionHistory, type SessionHistoryState, type SettleReason, type SizeAnchor, type SnapCandidate, type SnapCandidateProvider, type SnapCandidateRequest, type SnapInteraction, type SnapResult, type SnappingOptions, type StyleOptions, TEXT_HALO_COLOR, TOUCH_HIT_TOLERANCE_PX, TacticalDraw, TacticalDrawAbortError, type TacticalDrawAbortReason, TacticalDrawDestroyedError, type TacticalDrawLayerOptions, type TacticalDrawOptions, type TextSizeProps, type TextStyleOptions, type ToPixel, type TransformBox, type TransformChangeEvent, type TransformSession, type TransientChangeEvent, type TransientPhase, alignPointSymbolIndicator, bindAbortable, cloneImageGraphic, clonePointSymbol, coerceHandleStyle, combineWithHostSignal, convertPointSymbolPlacement, effectivePointSymbolPixelSize, evaluatePickCandidates, fillPatternImageDimension, fillPatternImageId, getSizeAnchor, hitTestFeature, hitTestIconFeature, ignoreAbort, imageFootprint, imageOpacity, isAnchoredGraphic, isImageGraphic, isMinePattern, isPointSymbol, isTacticalDrawAbortError, isValidPinNumber, makeFillPatternImage, mergeNativeAndCachedPickFeatures, movePointSymbolLocation, nearestWorldCopyLng, nearestWorldCopyPosition, normalizeImageGraphic, parseColor, pickHitTolerance, pickPointerType, placePointSymbol, pointSymbolFootprint, pointSymbolResource, renderOrderToVisualOrder, resizePointSymbolSize, resolveGroundTextSizePixels, resolvePickPresentation, resolvePinPresentation, resolvePointSymbolOffset, resolveTextHaloWidth, resolveTextSizePixels, scalePointSymbolLayout, tryControlMeasureIdFromFeature, validateImageGraphic };
2255
+ export { type AnchoredGraphic, BaseMapAdapter, type CombinedAbort, DEFAULT_LABEL_SIZE_PIXELS, DEFAULT_PIN_PRESENTATION, DEFAULT_TEXT_SIZE_MAX_PIXELS, DEFAULT_TEXT_SIZE_MIN_PIXELS, type DrawImageDraft, type DrawMeasureDraft, type DrawOptions, type DrawPointSymbolDraft, type DrawSession, type EditChangeEvent, type EditManyOptions, type EditMode, type EditOptions, type EditPointerDriver, type EditSession, type FeatureGroup, type Graphic, type GraphicEditChangeEvent, type GraphicEditSession, type GraphicGeometrySnappingOptions, type GraphicRender, type GraphicSnapshot, type GuideStyle, HATCH_PATTERNS, type HandleStyle, type HatchPattern, type IconResource, type ImageCapability, ImageCapabilityRequiredError, type ImageFootprint, type ImageGraphic, type ImageGraphicStyle, type ImageIntrinsicSize, type ImageOverlayResource, type ImageRender, type ImageResource, type ImageSize, type InteractionHit, type InteractionStyle, type LabelExtent, type LayerId, MINE_PATTERN_TILE_SIZE, type MapAdapter, type MapCursor, type MapEvent, type MapEventHandler, type MergedPickFeature, type NativeEventEntry, type OffsetDragModifier, type PickCandidate, type PickCandidateHit, type PickCandidateHitKind, type PickCandidateInput, type PickEvaluationContext, type PickEvent, type PickHandler, type PickOptions, type PickPointerType, PinFootprint, PinOverridePatch, PinPresentation, PinPresentationCapability, PinPresentationPatch, PinPresentationState, PinPresentationStatus, PinPresentationStatusEvent, PinPresentationStore, PinRender, type PixelCoordinate, type PointSymbol, type PointSymbolAnchor, type PointSymbolCapability, PointSymbolCapabilityRequiredError, type PointSymbolColors, type PointSymbolConnector, type PointSymbolFootprint, type PointSymbolGraphicModifiers, type PointSymbolOffset, type PointSymbolOffsetControls, type PointSymbolOffsetLayout, type PointSymbolOffsetStyle, type PointSymbolPlacement, type PointSymbolProjection, type PointSymbolRender, type PointSymbolSize, type PointSymbolStyle, type PointSymbolView, type PointerCallback, PointerCallbackHub, type PointerEventInfo, type ResolvedPickPresentation, type Rgba, type RotatedScreenBounds, type ScreenBounds, type SessionChangeSource, type SessionHistory, type SessionHistoryState, type SettleReason, type SizeAnchor, type SnapCandidate, type SnapCandidateProvider, type SnapCandidateRequest, type SnapInteraction, type SnapResult, type SnappingOptions, type StyleOptions, TEXT_HALO_COLOR, TOUCH_HIT_TOLERANCE_PX, TacticalDraw, TacticalDrawAbortError, type TacticalDrawAbortReason, TacticalDrawDestroyedError, type TacticalDrawLayerOptions, type TacticalDrawOptions, type TextSizeProps, type TextStyleOptions, type ToPixel, type TransformBox, type TransformChangeEvent, type TransformSession, type TransientChangeEvent, type TransientPhase, alignPointSymbolIndicator, bindAbortable, cloneImageGraphic, clonePointSymbol, coerceHandleStyle, combinePinScale, combineWithHostSignal, convertPointSymbolPlacement, effectivePointSymbolPixelSize, evaluatePickCandidates, fillPatternImageDimension, fillPatternImageId, getSizeAnchor, hitTestFeature, hitTestIconFeature, ignoreAbort, imageFootprint, imageOpacity, isAnchoredGraphic, isImageGraphic, isMinePattern, isPointSymbol, isTacticalDrawAbortError, isValidPinNumber, makeFillPatternImage, mergeNativeAndCachedPickFeatures, movePointSymbolLocation, nearestWorldCopyLng, nearestWorldCopyPosition, normalizeImageGraphic, parseColor, pickHitTolerance, pickPointerType, pinDistanceScale, pinZoomScale, placePointSymbol, pointSymbolFootprint, pointSymbolResource, renderOrderToVisualOrder, resizePointSymbolSize, resolveGroundTextSizePixels, resolvePickPresentation, resolvePinPresentation, resolvePointSymbolOffset, resolveTextHaloWidth, resolveTextSizePixels, scalePointSymbolLayout, tryControlMeasureIdFromFeature, validateImageGraphic };
package/dist/index.mjs CHANGED
@@ -1087,13 +1087,28 @@ function createCommitEmitter(listenerErrorsMessage) {
1087
1087
  }
1088
1088
  //#endregion
1089
1089
  //#region src/pin-presentation.ts
1090
+ /** Nested settings, merged key by key rather than replaced by a patch. */
1091
+ const sections = [
1092
+ "stem",
1093
+ "dot",
1094
+ "halo",
1095
+ "symbolHalo",
1096
+ "plate",
1097
+ "zoomScale",
1098
+ "distanceScale",
1099
+ "sizeLimits"
1100
+ ];
1101
+ const viewWideKeys = [
1102
+ "mode",
1103
+ "occlusion",
1104
+ "prioritizePins",
1105
+ "depthSort",
1106
+ "zoomScale",
1107
+ "distanceScale",
1108
+ "sizeLimits"
1109
+ ];
1090
1110
  function validateOverride(patch) {
1091
- for (const key of [
1092
- "mode",
1093
- "occlusion",
1094
- "prioritizePins",
1095
- "depthSort"
1096
- ]) if (Object.hasOwn(patch, key)) throw new TypeError(`Pin setting ${key} is view-wide only`);
1111
+ for (const key of viewWideKeys) if (Object.hasOwn(patch, key)) throw new TypeError(`Pin setting ${key} is view-wide only`);
1097
1112
  }
1098
1113
  const DEFAULT_PIN_PRESENTATION = Object.freeze({
1099
1114
  enabled: false,
@@ -1132,15 +1147,53 @@ const DEFAULT_PIN_PRESENTATION = Object.freeze({
1132
1147
  padding: 4,
1133
1148
  radius: 4,
1134
1149
  opacity: .95
1150
+ }),
1151
+ zoomScale: Object.freeze({
1152
+ enabled: false,
1153
+ fullSizeZoom: 12,
1154
+ falloff: .85
1155
+ }),
1156
+ distanceScale: Object.freeze({
1157
+ enabled: false,
1158
+ strength: .5
1159
+ }),
1160
+ sizeLimits: Object.freeze({
1161
+ minScale: .45,
1162
+ maxScale: 1.4
1135
1163
  })
1136
1164
  });
1137
- const sections = [
1138
- "stem",
1139
- "dot",
1140
- "halo",
1141
- "symbolHalo",
1142
- "plate"
1143
- ];
1165
+ /**
1166
+ * Multiplier for screen-space pin dimensions at `zoom`, never above 1; 1 when zoom
1167
+ * scaling is off. Unbounded below: combinePinScale applies `sizeLimits`.
1168
+ */
1169
+ function pinZoomScale(presentation, zoom) {
1170
+ const { enabled, fullSizeZoom, falloff } = presentation.zoomScale;
1171
+ if (!enabled || zoom >= fullSizeZoom) return 1;
1172
+ return Math.min(1, falloff ** (fullSizeZoom - zoom));
1173
+ }
1174
+ /**
1175
+ * Perspective multiplier for a pin at camera depth `depth` (clip-space w), relative
1176
+ * to the view center at `referenceDepth`; 1 when distance scaling is off. Unbounded:
1177
+ * combinePinScale applies `sizeLimits`. Engines that scale on the GPU must mirror
1178
+ * this formula in their shader.
1179
+ */
1180
+ function pinDistanceScale(presentation, depth, referenceDepth) {
1181
+ const { enabled, strength } = presentation.distanceScale;
1182
+ if (!enabled || !(depth > 0) || !(referenceDepth > 0)) return 1;
1183
+ return (referenceDepth / depth) ** strength;
1184
+ }
1185
+ /**
1186
+ * Combined screen-space pin scale from the two mode factors (as returned by
1187
+ * pinZoomScale and pinDistanceScale), bounded by `sizeLimits` while either mode is
1188
+ * enabled; if its `minScale` exceeds `maxScale`, `maxScale` wins. Engines that
1189
+ * scale on the GPU must mirror this in their shader.
1190
+ */
1191
+ function combinePinScale(presentation, zoomScale, distanceScale) {
1192
+ const scale = zoomScale * distanceScale;
1193
+ if (!presentation.zoomScale.enabled && !presentation.distanceScale.enabled) return scale;
1194
+ const { minScale, maxScale } = presentation.sizeLimits;
1195
+ return Math.min(maxScale, Math.max(minScale, scale));
1196
+ }
1144
1197
  /**
1145
1198
  * Whether `value` is an acceptable number for the pin setting named `key`.
1146
1199
  * Exported so a host's input handling can reject a value with the same rules
@@ -9350,4 +9403,4 @@ function nearestWorldCopyPosition(position, refLng) {
9350
9403
  return [nearestWorldCopyLng(position[0], refLng), ...position.slice(1)];
9351
9404
  }
9352
9405
  //#endregion
9353
- export { BaseMapAdapter, DEFAULT_LABEL_SIZE_PIXELS, DEFAULT_PIN_PRESENTATION, DEFAULT_TEXT_SIZE_MAX_PIXELS, DEFAULT_TEXT_SIZE_MIN_PIXELS, HATCH_PATTERNS, ImageCapabilityRequiredError, MINE_PATTERN_TILE_SIZE, PinPresentationStore, PointSymbolCapabilityRequiredError, PointerCallbackHub, TEXT_HALO_COLOR, TOUCH_HIT_TOLERANCE_PX, TacticalDraw, TacticalDrawAbortError, TacticalDrawDestroyedError, alignPointSymbolIndicator, bindAbortable, cloneImageGraphic, clonePointSymbol, coerceHandleStyle, combineWithHostSignal, convertPointSymbolPlacement, effectivePointSymbolPixelSize, evaluatePickCandidates, fillPatternImageDimension, fillPatternImageId, getSizeAnchor, hitTestFeature, hitTestIconFeature, ignoreAbort, imageFootprint, imageOpacity, isAnchoredGraphic, isImageGraphic, isMinePattern, isPointSymbol, isTacticalDrawAbortError, isValidPinNumber, makeFillPatternImage, mergeNativeAndCachedPickFeatures, movePointSymbolLocation, nearestWorldCopyLng, nearestWorldCopyPosition, normalizeImageGraphic, parseColor, pickHitTolerance, pickPointerType, placePointSymbol, pointSymbolFootprint, pointSymbolResource, renderOrderToVisualOrder, resizePointSymbolSize, resolveGroundTextSizePixels, resolvePickPresentation, resolvePinPresentation, resolvePointSymbolOffset, resolveTextHaloWidth, resolveTextSizePixels, scalePointSymbolLayout, tryControlMeasureIdFromFeature, validateImageGraphic };
9406
+ export { BaseMapAdapter, DEFAULT_LABEL_SIZE_PIXELS, DEFAULT_PIN_PRESENTATION, DEFAULT_TEXT_SIZE_MAX_PIXELS, DEFAULT_TEXT_SIZE_MIN_PIXELS, HATCH_PATTERNS, ImageCapabilityRequiredError, MINE_PATTERN_TILE_SIZE, PinPresentationStore, PointSymbolCapabilityRequiredError, PointerCallbackHub, TEXT_HALO_COLOR, TOUCH_HIT_TOLERANCE_PX, TacticalDraw, TacticalDrawAbortError, TacticalDrawDestroyedError, alignPointSymbolIndicator, bindAbortable, cloneImageGraphic, clonePointSymbol, coerceHandleStyle, combinePinScale, combineWithHostSignal, convertPointSymbolPlacement, effectivePointSymbolPixelSize, evaluatePickCandidates, fillPatternImageDimension, fillPatternImageId, getSizeAnchor, hitTestFeature, hitTestIconFeature, ignoreAbort, imageFootprint, imageOpacity, isAnchoredGraphic, isImageGraphic, isMinePattern, isPointSymbol, isTacticalDrawAbortError, isValidPinNumber, makeFillPatternImage, mergeNativeAndCachedPickFeatures, movePointSymbolLocation, nearestWorldCopyLng, nearestWorldCopyPosition, normalizeImageGraphic, parseColor, pickHitTolerance, pickPointerType, pinDistanceScale, pinZoomScale, placePointSymbol, pointSymbolFootprint, pointSymbolResource, renderOrderToVisualOrder, resizePointSymbolSize, resolveGroundTextSizePixels, resolvePickPresentation, resolvePinPresentation, resolvePointSymbolOffset, resolveTextHaloWidth, resolveTextSizePixels, scalePointSymbolLayout, tryControlMeasureIdFromFeature, validateImageGraphic };
@@ -42,16 +42,42 @@ interface PinPresentation {
42
42
  radius: number;
43
43
  opacity: number;
44
44
  };
45
+ /**
46
+ * View-wide zoom-out shrinking of the screen-space pin (symbol, plate, halos,
47
+ * dot and screen lift; stem width stays constant). Below `fullSizeZoom` the
48
+ * pin is multiplied by `falloff` per zoom level; `sizeLimits` sets the floor.
49
+ */
50
+ zoomScale: {
51
+ enabled: boolean;
52
+ fullSizeZoom: number;
53
+ falloff: number;
54
+ };
55
+ /**
56
+ * View-wide perspective sizing: pins nearer the camera than the view center
57
+ * grow and farther ones shrink, by `(centerDepth / pinDepth) ^ strength`
58
+ * (1 = true perspective). Multiplies with `zoomScale`; scales the same parts.
59
+ */
60
+ distanceScale: {
61
+ enabled: boolean;
62
+ strength: number;
63
+ };
64
+ /**
65
+ * View-wide bounds on the pin scale (zoom × distance), applied only while either
66
+ * scaling mode is enabled: the one place that decides how small or large pins get.
67
+ * If `minScale` exceeds `maxScale`, `maxScale` wins.
68
+ */
69
+ sizeLimits: {
70
+ minScale: number;
71
+ maxScale: number;
72
+ };
45
73
  }
46
- type PinPresentationPatch = Partial<Omit<PinPresentation, "stem" | "dot" | "halo" | "symbolHalo" | "plate">> & {
47
- stem?: Partial<PinPresentation["stem"]>;
48
- dot?: Partial<PinPresentation["dot"]>;
49
- halo?: Partial<PinPresentation["halo"]>;
50
- symbolHalo?: Partial<PinPresentation["symbolHalo"]>;
51
- plate?: Partial<PinPresentation["plate"]>;
52
- };
74
+ /** Nested settings, merged key by key rather than replaced by a patch. */
75
+ declare const sections: readonly ["stem", "dot", "halo", "symbolHalo", "plate", "zoomScale", "distanceScale", "sizeLimits"];
76
+ type PinSection = (typeof sections)[number];
77
+ declare const viewWideKeys: readonly ["mode", "occlusion", "prioritizePins", "depthSort", "zoomScale", "distanceScale", "sizeLimits"];
78
+ type PinPresentationPatch = Partial<Omit<PinPresentation, PinSection>> & { [K in PinSection]?: Partial<PinPresentation[K]> };
53
79
  /** Per-unit appearance and dimensions; spatial rules belong to the view. */
54
- type PinOverridePatch = Omit<PinPresentationPatch, "mode" | "occlusion" | "prioritizePins" | "depthSort">;
80
+ type PinOverridePatch = Omit<PinPresentationPatch, (typeof viewWideKeys)[number]>;
55
81
  interface PinPresentationState {
56
82
  defaults: PinPresentationPatch;
57
83
  overrides: Record<string, PinOverridePatch>;
@@ -84,6 +110,25 @@ interface PinFootprint {
84
110
  max: PixelCoordinate;
85
111
  }
86
112
  declare const DEFAULT_PIN_PRESENTATION: Readonly<PinPresentation>;
113
+ /**
114
+ * Multiplier for screen-space pin dimensions at `zoom`, never above 1; 1 when zoom
115
+ * scaling is off. Unbounded below: combinePinScale applies `sizeLimits`.
116
+ */
117
+ declare function pinZoomScale(presentation: PinPresentation, zoom: number): number;
118
+ /**
119
+ * Perspective multiplier for a pin at camera depth `depth` (clip-space w), relative
120
+ * to the view center at `referenceDepth`; 1 when distance scaling is off. Unbounded:
121
+ * combinePinScale applies `sizeLimits`. Engines that scale on the GPU must mirror
122
+ * this formula in their shader.
123
+ */
124
+ declare function pinDistanceScale(presentation: PinPresentation, depth: number, referenceDepth: number): number;
125
+ /**
126
+ * Combined screen-space pin scale from the two mode factors (as returned by
127
+ * pinZoomScale and pinDistanceScale), bounded by `sizeLimits` while either mode is
128
+ * enabled; if its `minScale` exceeds `maxScale`, `maxScale` wins. Engines that
129
+ * scale on the GPU must mirror this in their shader.
130
+ */
131
+ declare function combinePinScale(presentation: PinPresentation, zoomScale: number, distanceScale: number): number;
87
132
  /**
88
133
  * Whether `value` is an acceptable number for the pin setting named `key`.
89
134
  * Exported so a host's input handling can reject a value with the same rules
@@ -515,4 +560,4 @@ interface MapAdapter {
515
560
  getLayerFeatures(layerId: LayerId): readonly Feature[];
516
561
  }
517
562
  //#endregion
518
- export { PinOverridePatch as A, resolvePinPresentation as B, makeFillPatternImage as C, PointerEventInfo as D, PointerCallback as E, PinPresentationStatus as F, PinPresentationStatusEvent as I, PinPresentationStore as L, PinPresentationCapability as M, PinPresentationPatch as N, DEFAULT_PIN_PRESENTATION as O, PinPresentationState as P, PinRender as R, isMinePattern as S, EditPointerDriver as T, HatchPattern as _, LayerId as a, fillPatternImageDimension as b, MapEvent as c, PickHandler as d, PickOptions as f, HATCH_PATTERNS as g, TextStyleOptions as h, ImageOverlayResource as i, PinPresentation as j, PinFootprint as k, MapEventHandler as l, StyleOptions as m, HandleStyle as n, MapAdapter as o, PixelCoordinate as p, IconResource as r, MapCursor as s, FeatureGroup as t, PickEvent as u, MINE_PATTERN_TILE_SIZE as v, parseColor as w, fillPatternImageId as x, Rgba as y, isValidPinNumber as z };
563
+ export { PinOverridePatch as A, isValidPinNumber as B, makeFillPatternImage as C, PointerEventInfo as D, PointerCallback as E, PinPresentationStatus as F, pinZoomScale as H, PinPresentationStatusEvent as I, PinPresentationStore as L, PinPresentationCapability as M, PinPresentationPatch as N, DEFAULT_PIN_PRESENTATION as O, PinPresentationState as P, PinRender as R, isMinePattern as S, EditPointerDriver as T, resolvePinPresentation as U, pinDistanceScale as V, HatchPattern as _, LayerId as a, fillPatternImageDimension as b, MapEvent as c, PickHandler as d, PickOptions as f, HATCH_PATTERNS as g, TextStyleOptions as h, ImageOverlayResource as i, PinPresentation as j, PinFootprint as k, MapEventHandler as l, StyleOptions as m, HandleStyle as n, MapAdapter as o, PixelCoordinate as p, IconResource as r, MapCursor as s, FeatureGroup as t, PickEvent as u, MINE_PATTERN_TILE_SIZE as v, parseColor as w, fillPatternImageId as x, Rgba as y, combinePinScale as z };
@@ -1,4 +1,4 @@
1
- import { a as LayerId, o as MapAdapter, p as PixelCoordinate } from "./map-adapter-2Cmj-tem.mjs";
1
+ import { a as LayerId, o as MapAdapter, p as PixelCoordinate } from "./map-adapter-B8zVKzWH.mjs";
2
2
  import { Feature } from "geojson";
3
3
 
4
4
  //#region src/testing/feature-group-conformance.d.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbat-mapper/tactical-draw",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Engine-agnostic draw/edit core for tactical control measures (MIL-STD-2525 / APP-6). The MapAdapter ABI and bring-your-own-engine entry point for the tactical-draw package family.",
5
5
  "license": "MIT",
6
6
  "author": "Orbat Mapper",
@@ -39,7 +39,7 @@
39
39
  "access": "public"
40
40
  },
41
41
  "dependencies": {
42
- "@orbat-mapper/control-measures": "^0.29.0"
42
+ "@orbat-mapper/control-measures": "^0.30.1"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "vitest": ">=4.0.0"