@eyeon/map 2.0.2 → 2.0.4

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 (183) hide show
  1. package/dist/assets/MapViewer.css +1 -1
  2. package/dist/assets/index.css +1 -1
  3. package/dist/chunks/MapViewer.js +2656 -1290
  4. package/dist/chunks/MapViewer.js.map +1 -1
  5. package/dist/chunks/stacking.js +1496 -873
  6. package/dist/chunks/stacking.js.map +1 -1
  7. package/dist/chunks/wheelZoom.js +259 -0
  8. package/dist/chunks/wheelZoom.js.map +1 -0
  9. package/dist/core/assignment.d.ts +97 -0
  10. package/dist/core/assignment.d.ts.map +1 -0
  11. package/dist/core/color.d.ts +5 -0
  12. package/dist/core/color.d.ts.map +1 -0
  13. package/dist/core/entranceIcon.d.ts +12 -0
  14. package/dist/core/entranceIcon.d.ts.map +1 -0
  15. package/dist/core/filletPolygon.d.ts +10 -0
  16. package/dist/core/filletPolygon.d.ts.map +1 -0
  17. package/dist/core/hostChrome.d.ts +2 -4
  18. package/dist/core/hostChrome.d.ts.map +1 -1
  19. package/dist/core/import/index.d.ts +4 -0
  20. package/dist/core/import/index.d.ts.map +1 -1
  21. package/dist/core/index.d.ts +9 -0
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +160 -219
  24. package/dist/core/index.js.map +1 -1
  25. package/dist/core/labelAlign.d.ts +7 -0
  26. package/dist/core/labelAlign.d.ts.map +1 -0
  27. package/dist/core/layerStyles.d.ts +54 -5
  28. package/dist/core/layerStyles.d.ts.map +1 -1
  29. package/dist/core/mediaUrl.d.ts +3 -0
  30. package/dist/core/mediaUrl.d.ts.map +1 -0
  31. package/dist/core/outdoorDecoration.d.ts +16 -0
  32. package/dist/core/outdoorDecoration.d.ts.map +1 -0
  33. package/dist/core/publish/index.d.ts +6 -4
  34. package/dist/core/publish/index.d.ts.map +1 -1
  35. package/dist/core/routing/graph-tools.d.ts +23 -1
  36. package/dist/core/routing/graph-tools.d.ts.map +1 -1
  37. package/dist/core/routing/pathfinding.d.ts.map +1 -1
  38. package/dist/core/stacking.d.ts +50 -3
  39. package/dist/core/stacking.d.ts.map +1 -1
  40. package/dist/core/types.d.ts +34 -2
  41. package/dist/core/types.d.ts.map +1 -1
  42. package/dist/core/voids.d.ts +41 -0
  43. package/dist/core/voids.d.ts.map +1 -0
  44. package/dist/core/wheelZoom.d.ts +30 -0
  45. package/dist/core/wheelZoom.d.ts.map +1 -0
  46. package/dist/editor/FieldResetButton.d.ts +7 -0
  47. package/dist/editor/FieldResetButton.d.ts.map +1 -0
  48. package/dist/editor/MapEditor.d.ts +13 -3
  49. package/dist/editor/MapEditor.d.ts.map +1 -1
  50. package/dist/editor/canvas/EditorCanvas.d.ts +49 -7
  51. package/dist/editor/canvas/EditorCanvas.d.ts.map +1 -1
  52. package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts +8 -0
  53. package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts.map +1 -0
  54. package/dist/editor/canvas/coords.d.ts +56 -3
  55. package/dist/editor/canvas/coords.d.ts.map +1 -1
  56. package/dist/editor/canvas/editorFill.d.ts +12 -0
  57. package/dist/editor/canvas/editorFill.d.ts.map +1 -0
  58. package/dist/editor/canvas/editorHover.d.ts +18 -0
  59. package/dist/editor/canvas/editorHover.d.ts.map +1 -0
  60. package/dist/editor/canvas/underlayHint.d.ts +13 -0
  61. package/dist/editor/canvas/underlayHint.d.ts.map +1 -0
  62. package/dist/editor/connectorAssignments.d.ts +125 -0
  63. package/dist/editor/connectorAssignments.d.ts.map +1 -0
  64. package/dist/editor/draftOps.d.ts +12 -1
  65. package/dist/editor/draftOps.d.ts.map +1 -1
  66. package/dist/editor/editorSectionReturn.d.ts +12 -0
  67. package/dist/editor/editorSectionReturn.d.ts.map +1 -0
  68. package/dist/editor/ellipseDraw.d.ts +12 -0
  69. package/dist/editor/ellipseDraw.d.ts.map +1 -0
  70. package/dist/editor/entranceIcon.d.ts +15 -0
  71. package/dist/editor/entranceIcon.d.ts.map +1 -0
  72. package/dist/editor/floorsListReturn.d.ts +5 -0
  73. package/dist/editor/floorsListReturn.d.ts.map +1 -0
  74. package/dist/editor/geometryEdit.d.ts +23 -3
  75. package/dist/editor/geometryEdit.d.ts.map +1 -1
  76. package/dist/editor/hexColor.d.ts +6 -0
  77. package/dist/editor/hexColor.d.ts.map +1 -0
  78. package/dist/editor/history.d.ts +31 -0
  79. package/dist/editor/history.d.ts.map +1 -0
  80. package/dist/editor/index.css +1038 -68
  81. package/dist/editor/index.d.ts +6 -4
  82. package/dist/editor/index.d.ts.map +1 -1
  83. package/dist/editor/index.js +8744 -2136
  84. package/dist/editor/index.js.map +1 -1
  85. package/dist/editor/labelText.d.ts +25 -0
  86. package/dist/editor/labelText.d.ts.map +1 -0
  87. package/dist/editor/labels.d.ts +8 -0
  88. package/dist/editor/labels.d.ts.map +1 -1
  89. package/dist/editor/panels/AssignForm.d.ts +17 -0
  90. package/dist/editor/panels/AssignForm.d.ts.map +1 -0
  91. package/dist/editor/panels/AssignmentStyleFields.d.ts +14 -0
  92. package/dist/editor/panels/AssignmentStyleFields.d.ts.map +1 -0
  93. package/dist/editor/panels/BulkAssignForm.d.ts +11 -0
  94. package/dist/editor/panels/BulkAssignForm.d.ts.map +1 -0
  95. package/dist/editor/panels/CatalogKioskForm.d.ts +18 -0
  96. package/dist/editor/panels/CatalogKioskForm.d.ts.map +1 -0
  97. package/dist/editor/panels/ConnectorAssign.d.ts +16 -0
  98. package/dist/editor/panels/ConnectorAssign.d.ts.map +1 -0
  99. package/dist/editor/panels/CopyToLevelButton.d.ts +10 -0
  100. package/dist/editor/panels/CopyToLevelButton.d.ts.map +1 -0
  101. package/dist/editor/panels/EntranceIconForm.d.ts +11 -0
  102. package/dist/editor/panels/EntranceIconForm.d.ts.map +1 -0
  103. package/dist/editor/panels/FloorsPanel.d.ts +4 -0
  104. package/dist/editor/panels/FloorsPanel.d.ts.map +1 -1
  105. package/dist/editor/panels/ImportReviewPanel.d.ts.map +1 -1
  106. package/dist/editor/panels/Inspector.d.ts +24 -2
  107. package/dist/editor/panels/Inspector.d.ts.map +1 -1
  108. package/dist/editor/panels/LeftRail.d.ts +24 -11
  109. package/dist/editor/panels/LeftRail.d.ts.map +1 -1
  110. package/dist/editor/panels/PreviewOverlay.d.ts +9 -3
  111. package/dist/editor/panels/PreviewOverlay.d.ts.map +1 -1
  112. package/dist/editor/panels/TextLabelForm.d.ts +11 -0
  113. package/dist/editor/panels/TextLabelForm.d.ts.map +1 -0
  114. package/dist/editor/panels/formRows.d.ts +41 -0
  115. package/dist/editor/panels/formRows.d.ts.map +1 -0
  116. package/dist/editor/pathRings.d.ts +79 -0
  117. package/dist/editor/pathRings.d.ts.map +1 -0
  118. package/dist/editor/portalSurface.d.ts +37 -3
  119. package/dist/editor/portalSurface.d.ts.map +1 -1
  120. package/dist/editor/previewDocument.d.ts +2 -1
  121. package/dist/editor/previewDocument.d.ts.map +1 -1
  122. package/dist/editor/railAssignments.d.ts +29 -0
  123. package/dist/editor/railAssignments.d.ts.map +1 -0
  124. package/dist/editor/railKiosks.d.ts +27 -0
  125. package/dist/editor/railKiosks.d.ts.map +1 -0
  126. package/dist/editor/railListCopy.d.ts +31 -0
  127. package/dist/editor/railListCopy.d.ts.map +1 -0
  128. package/dist/editor/routeStubs.d.ts +103 -0
  129. package/dist/editor/routeStubs.d.ts.map +1 -0
  130. package/dist/editor/shapeCopy.d.ts +40 -0
  131. package/dist/editor/shapeCopy.d.ts.map +1 -0
  132. package/dist/editor/shapeSelection.d.ts +6 -0
  133. package/dist/editor/shapeSelection.d.ts.map +1 -0
  134. package/dist/editor/snapPoint.d.ts +5 -0
  135. package/dist/editor/snapPoint.d.ts.map +1 -0
  136. package/dist/editor/splitJoin.d.ts +78 -0
  137. package/dist/editor/splitJoin.d.ts.map +1 -0
  138. package/dist/editor/tools.d.ts +46 -7
  139. package/dist/editor/tools.d.ts.map +1 -1
  140. package/dist/fonts/assets.d.ts +4 -0
  141. package/dist/fonts/mapFont.d.ts +5 -0
  142. package/dist/fonts/mapFont.d.ts.map +1 -0
  143. package/dist/fonts/mapFontUrl.d.ts +8 -0
  144. package/dist/fonts/mapFontUrl.d.ts.map +1 -0
  145. package/dist/specialIcons.d.ts +39 -0
  146. package/dist/specialIcons.d.ts.map +1 -0
  147. package/dist/test-maps/shops-at-south-town/BASE - Shops At South Town.ai +6326 -6407
  148. package/dist/test-maps/shops-at-south-town/LF - Shops At South Town.ai +458 -484
  149. package/dist/test-maps/shops-at-south-town/SVG/BASE - Shops At South Town.svg +6 -6
  150. package/dist/test-maps/shops-at-south-town/SVG/LF - Shops At South Town.svg +52 -52
  151. package/dist/test-maps/shops-at-south-town/SVG/UF - Shops At South Town.svg +74 -74
  152. package/dist/test-maps/shops-at-south-town/UF - Shops At South Town.ai +341 -436
  153. package/dist/ui/ModernSelect.d.ts +14 -0
  154. package/dist/ui/ModernSelect.d.ts.map +1 -0
  155. package/dist/ui/selectSearch.d.ts +12 -0
  156. package/dist/ui/selectSearch.d.ts.map +1 -0
  157. package/dist/viewer/MapViewer.d.ts +14 -1
  158. package/dist/viewer/MapViewer.d.ts.map +1 -1
  159. package/dist/viewer/camera.d.ts +85 -1
  160. package/dist/viewer/camera.d.ts.map +1 -1
  161. package/dist/viewer/components/CameraRig.d.ts +18 -1
  162. package/dist/viewer/components/CameraRig.d.ts.map +1 -1
  163. package/dist/viewer/components/LevelMeshes.d.ts +15 -4
  164. package/dist/viewer/components/LevelMeshes.d.ts.map +1 -1
  165. package/dist/viewer/components/MapScene.d.ts +10 -4
  166. package/dist/viewer/components/MapScene.d.ts.map +1 -1
  167. package/dist/viewer/components/OpeningWell.d.ts +7 -0
  168. package/dist/viewer/components/OpeningWell.d.ts.map +1 -0
  169. package/dist/viewer/components/RouteLine.d.ts.map +1 -1
  170. package/dist/viewer/components/SvgVectorLayer.d.ts +5 -3
  171. package/dist/viewer/components/SvgVectorLayer.d.ts.map +1 -1
  172. package/dist/viewer/components/openingGeometry.d.ts +7 -0
  173. package/dist/viewer/components/openingGeometry.d.ts.map +1 -0
  174. package/dist/viewer/index.css +251 -9
  175. package/dist/viewer/index.d.ts +1 -1
  176. package/dist/viewer/index.d.ts.map +1 -1
  177. package/dist/viewer/index.js +5 -5
  178. package/dist/viewer/pointer.d.ts +26 -0
  179. package/dist/viewer/pointer.d.ts.map +1 -0
  180. package/dist/viewer/ui/MapControls.d.ts +11 -3
  181. package/dist/viewer/ui/MapControls.d.ts.map +1 -1
  182. package/dist/viewer/ui/RuntimeChrome.d.ts.map +1 -1
  183. package/package.json +4 -2
@@ -0,0 +1,25 @@
1
+ import { BBox, ShapeGeometry, ShapeLabel, Vec2, ViewBox } from '../core';
2
+ export declare const DEFAULT_LABEL_TEXT = "Text";
3
+ export declare const DEFAULT_LABEL_SIZE = 48;
4
+ export declare const LABEL_FONT_FAMILY = "Montserrat, sans-serif";
5
+ export declare const LABEL_LINE_HEIGHT = 1.15;
6
+ export declare function isTextLabel(shape: {
7
+ kind: string;
8
+ label?: {
9
+ text?: string;
10
+ } | null;
11
+ }): boolean;
12
+ export declare function defaultLabelSize(_viewbox?: ViewBox): number;
13
+ export declare function labelTextLines(text: string): string[];
14
+ export declare function measureLabelText(text: string, size: number): {
15
+ width: number;
16
+ height: number;
17
+ lines: string[];
18
+ };
19
+ export declare function labelBoxCenter(box: BBox): Vec2;
20
+ export declare function textLabelPolygon(origin: Vec2, text: string, size: number): Vec2[];
21
+ export declare function textLabelGeometry(origin: Vec2, text: string, size: number): ShapeGeometry;
22
+ export declare function defaultTextLabel(text: string, size: number, color?: string): ShapeLabel;
23
+ /** Keep the box anchored at the current bottom-left when the string changes. */
24
+ export declare function geometryForLabelText(geometry: ShapeGeometry, text: string, size: number): ShapeGeometry;
25
+ //# sourceMappingURL=labelText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labelText.d.ts","sourceRoot":"","sources":["../../src/editor/labelText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAK9E,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,iBAAiB,2BAAkB,CAAC;AACjD,eAAO,MAAM,iBAAiB,OAAwB,CAAC;AAIvD,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClC,GAAG,OAAO,CAEV;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGrD;AAeD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAkBpD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAE9C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,CAQjF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,aAAa,CAEf;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAOvF;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,aAAa,CAGf"}
@@ -1,5 +1,13 @@
1
1
  import { ShapeKind, UnitStatus } from '../core';
2
2
  export declare const SHAPE_KIND_LABELS: Record<ShapeKind, string>;
3
+ /**
4
+ * Types staff set in Edit Map. Text and entrance markers come from
5
+ * their own tools, not this dropdown.
6
+ */
7
+ export declare const EDITOR_TYPE_KINDS: ShapeKind[];
8
+ export declare function inspectorShowsType(kind: ShapeKind): boolean;
9
+ /** Type dropdown: curated kinds, and the current kind if it is outside that list. */
10
+ export declare function inspectorTypeKinds(current?: ShapeKind | null): ShapeKind[];
3
11
  export declare const UNIT_STATUS_LABELS: Record<UnitStatus, string>;
4
12
  export declare function shapeKindLabel(kind: string): string;
5
13
  //# sourceMappingURL=labels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/editor/labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAkBvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKzD,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/editor/labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAkBvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,EAMxC,CAAC;AAIF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EAAE,CAS1E;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKzD,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,17 @@
1
+ import { default as React, ReactNode } from 'react';
2
+ import { CmAmenityCatalogItem, CmShape, CmShapeAssignment, MapAssignKiosk, MapAssignRetailer } from '../../core';
3
+ export interface AssignFormProps {
4
+ shape: CmShape;
5
+ assignment: CmShapeAssignment | null;
6
+ amenities: CmAmenityCatalogItem[];
7
+ retailers: MapAssignRetailer[];
8
+ kiosks?: MapAssignKiosk[];
9
+ canEdit: boolean;
10
+ storeDefaultColor: string;
11
+ storeTextColor: string;
12
+ onChange: (assignment: CmShapeAssignment) => void;
13
+ onClear: () => void;
14
+ copyAction?: ReactNode;
15
+ }
16
+ export declare function AssignForm({ shape, assignment, amenities, retailers, kiosks, canEdit, storeDefaultColor, storeTextColor, onChange, onClear, copyAction, }: AssignFormProps): React.JSX.Element | null;
17
+ //# sourceMappingURL=AssignForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssignForm.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/AssignForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjG,OAAO,KAAK,EAEV,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EAEjB,cAAc,EACd,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAyBpB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,MAAW,EACX,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,eAAe,4BAsQjB"}
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ import { CmShapeAssignment } from '../../core';
3
+ export interface AssignmentStyleFieldsProps {
4
+ form: Pick<CmShapeAssignment, 'size' | 'rotate' | 'offsetX' | 'offsetY' | 'bgColor' | 'textColor'>;
5
+ canEdit: boolean;
6
+ storeDefaultColor: string;
7
+ storeTextColor: string;
8
+ textColorLabel?: string;
9
+ showTextColor?: boolean;
10
+ onPatch: (partial: Partial<CmShapeAssignment>) => void;
11
+ }
12
+ /** Size, rotate, offset, and colors — shared by kiosk / store / escalator assign. */
13
+ export declare function AssignmentStyleFields({ form, canEdit, storeDefaultColor, storeTextColor, textColorLabel, showTextColor, onPatch, }: AssignmentStyleFieldsProps): React.JSX.Element;
14
+ //# sourceMappingURL=AssignmentStyleFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssignmentStyleFields.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/AssignmentStyleFields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKpD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,IAAI,CACR,iBAAiB,EACjB,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CACpE,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACxD;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,cAA6B,EAC7B,aAAoB,EACpB,OAAO,GACR,EAAE,0BAA0B,qBAoG5B"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { CmShape, CmShapeAssignment, BulkAssignPatch } from '../../core';
3
+ export declare function BulkAssignForm({ shapes, assignments, canEdit, storeDefaultColor, storeTextColor, onPatch, }: {
4
+ shapes: CmShape[];
5
+ assignments: CmShapeAssignment[];
6
+ canEdit: boolean;
7
+ storeDefaultColor: string;
8
+ storeTextColor: string;
9
+ onPatch: (patch: BulkAssignPatch) => void;
10
+ }): React.JSX.Element;
11
+ //# sourceMappingURL=BulkAssignForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkAssignForm.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/BulkAssignForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAUpB,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,OAAO,GACR,EAAE;IACD,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CAC3C,qBA2CA"}
@@ -0,0 +1,18 @@
1
+ import { default as React } from 'react';
2
+ import { MapAssignKiosk } from '../../core';
3
+ /**
4
+ * Link a shared display_kiosks device to a New-map kiosk_screen shape.
5
+ * Does NOT delete the physical kiosk — that would break Classic placements,
6
+ * kiosk-electron identity, and display ads. Use Unlink / Remove from New Map.
7
+ */
8
+ export declare function CatalogKioskForm({ kiosk, shapeOptions, assignedShapeId, canEdit, onAssign, }: {
9
+ kiosk: MapAssignKiosk;
10
+ shapeOptions: Array<{
11
+ value: string;
12
+ label: string;
13
+ }>;
14
+ assignedShapeId: number | null;
15
+ canEdit: boolean;
16
+ onAssign: (shapeId: number | null) => void;
17
+ }): React.JSX.Element;
18
+ //# sourceMappingURL=CatalogKioskForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatalogKioskForm.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/CatalogKioskForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,YAAY,EACZ,eAAe,EACf,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5C,qBAmCA"}
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+ import { BatchOp, CmShape, CmShapeAssignment } from '../../core';
3
+ import { ConnectorPlanContext, VerticalRailKind } from '../connectorAssignments';
4
+ export interface ConnectorAssignProps {
5
+ shape: CmShape;
6
+ railKind: VerticalRailKind;
7
+ ctx: ConnectorPlanContext;
8
+ canEdit: boolean;
9
+ assignment?: CmShapeAssignment | null;
10
+ storeDefaultColor: string;
11
+ storeTextColor: string;
12
+ onApplyOps: (ops: BatchOp[]) => void;
13
+ onSaveAssignment?: (assignment: CmShapeAssignment) => void;
14
+ }
15
+ export declare function ConnectorAssign({ shape, railKind, ctx, canEdit, assignment, storeDefaultColor, storeTextColor, onApplyOps, onSaveAssignment, }: ConnectorAssignProps): React.JSX.Element;
16
+ //# sourceMappingURL=ConnectorAssign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectorAssign.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/ConnectorAssign.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAItE,OAAO,EAUL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,GAAG,EAAE,oBAAoB,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC5D;AAgBD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,OAAO,EACP,UAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,gBAAgB,GACjB,EAAE,oBAAoB,qBAmStB"}
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ export declare function CopyToLevelButton({ destinations, disabled, onCopyToLevel, }: {
3
+ destinations: Array<{
4
+ id: number;
5
+ name: string;
6
+ }>;
7
+ disabled?: boolean;
8
+ onCopyToLevel: (levelId: number) => string | null;
9
+ }): React.JSX.Element | null;
10
+ //# sourceMappingURL=CopyToLevelButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyToLevelButton.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/CopyToLevelButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAE/E,OAAO,4BAA4B,CAAC;AAuBpC,wBAAgB,iBAAiB,CAAC,EAChC,YAAY,EACZ,QAAgB,EAChB,aAAa,GACd,EAAE;IACD,YAAY,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACnD,4BAyIA"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { ShapeLabel } from '../../core';
3
+ export declare function EntranceIconForm({ label, canEdit, storeTextColor, onChange, }: {
4
+ label: ShapeLabel;
5
+ canEdit: boolean;
6
+ storeTextColor: string;
7
+ onChange: (label: ShapeLabel, opts?: {
8
+ live?: boolean;
9
+ }) => void;
10
+ }): React.JSX.Element;
11
+ //# sourceMappingURL=EntranceIconForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntranceIconForm.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/EntranceIconForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAa7C,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,cAAc,EACd,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAClE,qBAmHA"}
@@ -35,6 +35,10 @@ export declare function visibleFloorCount(levels: Array<{
35
35
  export declare function placeLevelId(ids: number[], movedId: number, targetId: number, place: 'before' | 'after'): number[];
36
36
  /** Move `movedId` to `toIndex` in the list with that id removed. */
37
37
  export declare function moveLevelId(ids: number[], movedId: number, toIndex: number): number[];
38
+ /** Slot index from pointer Y. Uses the list box, not live row midpoints. */
39
+ export declare function insertIndexFromY(clientY: number, listTop: number, rowHeight: number, count: number): number;
40
+ /** Overlay Y for the drop line. Null when the item would stay put. */
41
+ export declare function dropLineTop(fromIndex: number, dropIndex: number, rowHeight: number, rowInnerHeight: number): number | null;
38
42
  export interface FloorsPanelProps {
39
43
  levels: CmLevel[];
40
44
  buildings: CmBuilding[];
@@ -1 +1 @@
1
- {"version":3,"file":"FloorsPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/FloorsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FloorsPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/FloorsPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImportReviewPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/ImportReviewPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,CAAC,OAAO,EAAE;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9D,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAiBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,cAAsB,EACtB,cAAc,EACd,IAAY,EACZ,OAAO,EACP,QAAQ,GACT,EAAE,iBAAiB,qBAoJnB"}
1
+ {"version":3,"file":"ImportReviewPanel.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/ImportReviewPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AAG7D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,CAAC,OAAO,EAAE;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9D,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAiBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,cAAsB,EACtB,cAAc,EACd,IAAY,EACZ,OAAO,EACP,QAAQ,GACT,EAAE,iBAAiB,qBAuJnB"}
@@ -1,16 +1,38 @@
1
1
  import { default as React } from 'react';
2
- import { CmAmenityCatalogItem, CmShape, CmShapeAssignment, ShapeKind } from '../../core';
2
+ import { BulkAssignPatch, CmAmenityCatalogItem, CmShape, CmShapeAssignment, MapAssignKiosk, MapAssignRetailer, ShapeKind, ShapeLabel } from '../../core';
3
3
  export interface InspectorProps {
4
4
  shape: CmShape | null;
5
5
  assignment: CmShapeAssignment | null;
6
6
  amenities: CmAmenityCatalogItem[];
7
+ retailers?: MapAssignRetailer[];
8
+ kiosks?: MapAssignKiosk[];
7
9
  /** Other shape keys on the same level — used for uniqueness validation. */
8
10
  levelShapeKeys?: string[];
9
11
  canEdit: boolean;
12
+ /** Retailer / amenity / kiosk assignment. Off in Edit Map (ID and Type only). */
13
+ showAssignment?: boolean;
14
+ /** Empty-state copy when nothing is selected. */
15
+ emptyHint?: string;
10
16
  onRename: (key: string) => void;
11
17
  onChangeKind: (kind: ShapeKind) => void;
18
+ onChangeLevel?: (levelId: number) => string | null;
19
+ /** Duplicate the selected shape onto another floor or Outdoor. */
20
+ onCopyToLevel?: (levelId: number) => string | null;
21
+ levels?: Array<{
22
+ id: number;
23
+ name: string;
24
+ }>;
12
25
  onDelete?: () => void;
26
+ onClearAssignment?: () => void;
13
27
  onSaveAssignment: (assignment: CmShapeAssignment) => void;
28
+ onUpdateLabel?: (label: ShapeLabel, opts?: {
29
+ live?: boolean;
30
+ }) => void;
31
+ selectedShapes?: CmShape[];
32
+ selectedAssignments?: CmShapeAssignment[];
33
+ onBulkAssign?: (patch: BulkAssignPatch) => void;
34
+ storeDefaultColor: string;
35
+ storeTextColor: string;
14
36
  }
15
- export declare function Inspector({ shape, assignment, amenities, levelShapeKeys, canEdit, onRename, onChangeKind, onDelete, onSaveAssignment, }: InspectorProps): React.JSX.Element;
37
+ export declare function Inspector({ shape, assignment, amenities, retailers, kiosks, levelShapeKeys, canEdit, showAssignment, emptyHint, onRename, onChangeKind, onChangeLevel, onCopyToLevel, levels, onDelete, onClearAssignment, onSaveAssignment, onUpdateLabel, selectedShapes, selectedAssignments, onBulkAssign, storeDefaultColor, storeTextColor, }: InspectorProps): React.JSX.Element | null;
16
38
  //# sourceMappingURL=Inspector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Inspector.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/Inspector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EACV,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,SAAS,EAEV,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC3D;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,UAAU,EACV,SAAS,EACT,cAAmB,EACnB,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,gBAAgB,GACjB,EAAE,cAAc,qBAuNhB"}
1
+ {"version":3,"file":"Inspector.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/Inspector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,UAAU,EACX,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACnD,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gBAAgB,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAc,EACd,MAAW,EACX,cAAmB,EACnB,OAAO,EACP,cAAqB,EACrB,SAAuE,EACvE,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,MAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,cAAmB,EACnB,mBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,cAAc,GACf,EAAE,cAAc,4BAsMhB"}
@@ -1,7 +1,7 @@
1
1
  import { default as React, ReactNode } from 'react';
2
- import { CmAmenityCatalogItem, CmLevel, CmBuilding, ThemeDefaults } from '../../core';
2
+ import { CmAmenityCatalogItem, CmAnchor, CmConnector, CmLevel, CmRouteEdge, CmBuilding, CmShapeAssignment, MapAssignKiosk, MapAssignRetailer, ThemeDefaults } from '../../core';
3
3
  import { CreateLevelInput, UpdateLevelInput } from './FloorsPanel';
4
- export type RailSection = 'floors' | 'stores' | 'amenities' | 'kiosks' | 'paths' | 'style' | 'selection' | 'edit-map';
4
+ export type RailSection = 'floors' | 'stores' | 'amenities' | 'kiosks' | 'escalators' | 'elevators' | 'paths' | 'style' | 'selection' | 'unassigned' | 'edit-map' | 'wayfinding';
5
5
  /** @deprecated Use RailSection */
6
6
  export type RailTab = RailSection;
7
7
  export interface LeftRailDraft {
@@ -12,16 +12,14 @@ export interface LeftRailDraft {
12
12
  levelId: number;
13
13
  key: string;
14
14
  kind: string;
15
+ sourceSvgId?: string | null;
15
16
  orphanedAt?: string | null;
16
17
  }>;
17
- anchors: Array<{
18
- id: number;
19
- levelId: number;
20
- }>;
21
- edges: Array<{
22
- id: number;
23
- }>;
18
+ anchors: Array<Pick<CmAnchor, 'id' | 'levelId' | 'shapeId' | 'connectorId'>>;
19
+ edges: Array<Pick<CmRouteEdge, 'id' | 'kind' | 'directed' | 'fromAnchorId' | 'toAnchorId'>>;
20
+ connectors: CmConnector[];
24
21
  amenities: CmAmenityCatalogItem[];
22
+ assignments: CmShapeAssignment[];
25
23
  }
26
24
  export interface LeftRailProps {
27
25
  section: RailSection | null;
@@ -29,7 +27,14 @@ export interface LeftRailProps {
29
27
  draft: LeftRailDraft;
30
28
  activeLevelId: number | null;
31
29
  selectedShapeId: number | null;
32
- onSelectShape: (id: number) => void;
30
+ selectedShapeIds?: number[];
31
+ onSelectShape: (id: number | null, opts?: {
32
+ additive?: boolean;
33
+ }) => void;
34
+ onHoverShape?: (id: number | null) => void;
35
+ onListFocus?: () => void;
36
+ retailers?: MapAssignRetailer[];
37
+ kiosks?: MapAssignKiosk[];
33
38
  canFloors: boolean;
34
39
  canSettings: boolean;
35
40
  onImportSvg?: (levelId: number, file: File) => Promise<void>;
@@ -41,9 +46,17 @@ export interface LeftRailProps {
41
46
  theme: ThemeDefaults;
42
47
  onThemeChange: (partial: Partial<ThemeDefaults>) => void;
43
48
  assignPanel: ReactNode;
49
+ /** Saved display_kiosks: pick a kiosk shape or delete. */
50
+ catalogKioskPanel?: ReactNode;
51
+ selectedCatalogKioskId?: number | null;
52
+ onSelectCatalogKiosk?: (id: number | null) => void;
44
53
  /** Draw/tools UI for Edit Map (icons + inspector). */
45
54
  editMapPanel?: ReactNode;
55
+ /** Route tools and path stats for Wayfinding. */
56
+ wayfindingPanel?: ReactNode;
46
57
  footer?: ReactNode;
58
+ /** PORTAL: switch this center back to Classic (v1) map. */
59
+ onUseClassicMap?: () => void;
47
60
  }
48
- export declare function LeftRail({ section, onSectionChange, draft, activeLevelId, selectedShapeId, onSelectShape, canFloors, canSettings, onCreateLevel, onUpdateLevel, onDeleteLevel, onReorderLevels, onAutoroute, theme, onThemeChange, assignPanel, editMapPanel, footer, }: LeftRailProps): React.JSX.Element;
61
+ export declare function LeftRail({ section, onSectionChange, draft, activeLevelId, selectedShapeId, selectedShapeIds, onSelectShape, onHoverShape, onListFocus, retailers, kiosks, canFloors, canSettings, onCreateLevel, onUpdateLevel, onDeleteLevel, onReorderLevels, onAutoroute, theme, onThemeChange, assignPanel, catalogKioskPanel, selectedCatalogKioskId, onSelectCatalogKiosk, editMapPanel, wayfindingPanel, footer, onUseClassicMap, }: LeftRailProps): React.JSX.Element;
49
62
  //# sourceMappingURL=LeftRail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeftRail.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/LeftRail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,KAAK,EACV,oBAAoB,EACpB,OAAO,EACP,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAIL,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,OAAO,GACP,WAAW,GACX,UAAU,CAAC;AAEf,kCAAkC;AAClC,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7B,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACzD,WAAW,EAAE,SAAS,CAAC;IACvB,sDAAsD;IACtD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAoED,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,eAAe,EACf,KAAK,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAS,EACT,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,KAAK,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,MAAM,GACP,EAAE,aAAa,qBAyQf"}
1
+ {"version":3,"file":"LeftRail.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/LeftRail.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  import { default as React } from 'react';
2
2
  import { MapViewerHost, PublishedDocument } from '../../core';
3
- export declare function PreviewOverlay({ document, host, onSelectShape, activeLevelId, onActiveLevelChange, routeOnSelect, imageProxyUrl, }: {
3
+ export declare function PreviewOverlay({ document, host, onSelectShape, selectedShapeId, selectedShapeIds, hoveredShapeId, focusNonce, activeLevelId, onActiveLevelChange, routeOnSelect, imageProxyUrl, }: {
4
4
  document: PublishedDocument;
5
- /** Assign mode hides search. Public preview can be added later as WEBSITE. */
5
+ /** Assign mode and public website hide search. */
6
6
  host?: Extract<MapViewerHost, 'PORTAL_ASSIGN' | 'WEBSITE'>;
7
- onSelectShape?: (shapeId: number) => void;
7
+ onSelectShape?: (shapeId: number | null, opts?: {
8
+ additive?: boolean;
9
+ }) => void;
10
+ selectedShapeId?: number | null;
11
+ selectedShapeIds?: number[];
12
+ hoveredShapeId?: number | null;
13
+ focusNonce?: number;
8
14
  activeLevelId?: number | null;
9
15
  onActiveLevelChange?: (levelId: number) => void;
10
16
  /** Default true (public navigate). False when assigning in PORTAL. */
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewOverlay.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/PreviewOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGnE,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,IAAsB,EACtB,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,aAAa,GACd,EAAE;IACD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,eAAe,GAAG,SAAS,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,qBAiBA"}
1
+ {"version":3,"file":"PreviewOverlay.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/PreviewOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGnE,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,IAAsB,EACtB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,aAAa,GACd,EAAE;IACD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,eAAe,GAAG,SAAS,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAChF,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,sEAAsE;IACtE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,qBAqBA"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { ShapeLabel } from '../../core';
3
+ export declare function TextLabelForm({ label, canEdit, storeTextColor, onChange, }: {
4
+ label: ShapeLabel;
5
+ canEdit: boolean;
6
+ storeTextColor: string;
7
+ onChange: (label: ShapeLabel, opts?: {
8
+ live?: boolean;
9
+ }) => void;
10
+ }): React.JSX.Element;
11
+ //# sourceMappingURL=TextLabelForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextLabelForm.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/TextLabelForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAcpB,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EACP,cAAc,EACd,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAClE,qBA2JA"}
@@ -0,0 +1,41 @@
1
+ import { default as React } from 'react';
2
+ import { LabelAlign } from '../../core';
3
+ export declare function StepperRow({ label, value, disabled, extra, onChange, onStep, onHoldStart, onHoldEnd, }: {
4
+ label: string;
5
+ value: number;
6
+ disabled: boolean;
7
+ extra?: React.ReactNode;
8
+ onChange: (value: number) => void;
9
+ onStep: (delta: number) => void;
10
+ onHoldStart: (delta: number) => void;
11
+ onHoldEnd: () => void;
12
+ }): React.JSX.Element;
13
+ export declare function ColorSwatch({ label, hex, swatch, fallback, disabled, emptyIsTransparent, onHexChange, onCommit, onPick, }: {
14
+ label: string;
15
+ hex: string;
16
+ swatch: string;
17
+ fallback?: string;
18
+ disabled?: boolean;
19
+ emptyIsTransparent?: boolean;
20
+ onHexChange: (value: string) => void;
21
+ onCommit: () => void;
22
+ onPick: (hex: string) => void;
23
+ }): React.JSX.Element;
24
+ export declare function ColorRow({ label, value, fallback, disabled, onChange, onReset, }: {
25
+ label: string;
26
+ value: string;
27
+ fallback: string;
28
+ disabled: boolean;
29
+ onChange: (hex: string) => void;
30
+ onReset?: () => void;
31
+ }): React.JSX.Element;
32
+ export declare function AlignRow({ value, disabled, onChange, }: {
33
+ value?: LabelAlign;
34
+ disabled: boolean;
35
+ onChange: (align: LabelAlign) => void;
36
+ }): React.JSX.Element;
37
+ export declare function RotateIcon(): React.JSX.Element;
38
+ export declare function nextQuarterTurn(value: number): number;
39
+ /** +/- drops the fraction, then steps by whole numbers. Typed decimals stay until then. */
40
+ export declare function stepWholeNumber(value: number, delta: number): number;
41
+ //# sourceMappingURL=formRows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formRows.d.ts","sourceRoot":"","sources":["../../../src/editor/panels/formRows.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AASpB,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,qBA+EA;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,GAAG,EACH,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,kBAAyB,EACzB,WAAW,EACX,QAAQ,EACR,MAAM,GACP,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,qBA8IA;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,qBA4CA;AA+CD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC,qBAuBA;AAED,wBAAgB,UAAU,sBAczB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpE"}
@@ -0,0 +1,79 @@
1
+ import { ShapeGeometry, Vec2 } from '../core';
2
+ export type PathEdge = {
3
+ kind: 'line';
4
+ } | {
5
+ kind: 'cubic';
6
+ c1: Vec2;
7
+ c2: Vec2;
8
+ };
9
+ /** One closed or open subpath as corner anchors + one edge between each pair. */
10
+ export interface PathRing {
11
+ closed: boolean;
12
+ anchors: Vec2[];
13
+ /** `edges[i]` runs from `anchors[i]` to the next anchor (wraps when closed). */
14
+ edges: PathEdge[];
15
+ }
16
+ export declare function vecEq(a: Vec2, b: Vec2, eps?: number): boolean;
17
+ export declare function cloneVec(p: Vec2): Vec2;
18
+ export declare function addVec(a: Vec2, b: Vec2): Vec2;
19
+ export declare function subVec(a: Vec2, b: Vec2): Vec2;
20
+ export declare function scaleVec(a: Vec2, s: number): Vec2;
21
+ export declare function lerpVec(a: Vec2, b: Vec2, t: number): Vec2;
22
+ export declare function edgeCount(ring: PathRing): number;
23
+ export declare function edgeFrom(ring: PathRing, edgeIndex: number): Vec2;
24
+ export declare function edgeTo(ring: PathRing, edgeIndex: number): Vec2;
25
+ export declare function edgeToPathD(ring: PathRing, edgeIndex: number): string;
26
+ export declare function fmtCoord(n: number): string;
27
+ export declare function ringFromPolygon(poly: Vec2[], closed?: boolean): PathRing;
28
+ /**
29
+ * Quadratic (p0, q, p2) → cubic handles.
30
+ */
31
+ export declare function quadraticToCubic(p0: Vec2, q: Vec2, p2: Vec2): {
32
+ c1: Vec2;
33
+ c2: Vec2;
34
+ };
35
+ /**
36
+ * Symmetric cubic that passes through `pull` at t = 0.5.
37
+ * Used when the user drags a straight side into an arch.
38
+ */
39
+ export declare function cubicHandlesForPull(from: Vec2, to: Vec2, pull: Vec2): {
40
+ c1: Vec2;
41
+ c2: Vec2;
42
+ };
43
+ export declare function cubicPoint(p0: Vec2, c1: Vec2, c2: Vec2, p3: Vec2, t: number): Vec2;
44
+ export declare function splitCubic(p0: Vec2, c1: Vec2, c2: Vec2, p3: Vec2, t: number): {
45
+ left: {
46
+ c1: Vec2;
47
+ c2: Vec2;
48
+ to: Vec2;
49
+ };
50
+ right: {
51
+ c1: Vec2;
52
+ c2: Vec2;
53
+ to: Vec2;
54
+ };
55
+ };
56
+ /**
57
+ * Split an SVG elliptical arc into cubics (one per ≤90° sweep) so Edit Map
58
+ * can treat each arch as two anchors + two handles.
59
+ */
60
+ export declare function ellipticalArcToCubics(p0: Vec2, rx: number, ry: number, xAxisRotationDeg: number, largeArc: boolean, sweep: boolean, p1: Vec2): Array<{
61
+ c1: Vec2;
62
+ c2: Vec2;
63
+ to: Vec2;
64
+ }>;
65
+ export declare function parsePathToRings(d: string): PathRing[];
66
+ export declare function ringToPathD(ring: PathRing): string;
67
+ export declare function ringsToGeometry(rings: PathRing[]): ShapeGeometry;
68
+ /** A cubic whose bulge is much longer than its chord is a leftover loop, not an arch. */
69
+ export declare function cubicIsRunaway(from: Vec2, c1: Vec2, c2: Vec2, to: Vec2): boolean;
70
+ export declare function collapseLineRunsToCubics(ring: PathRing): PathRing;
71
+ export declare function geometryToRings(geometry: ShapeGeometry): PathRing[];
72
+ /** Closest point on one ring edge — keeps the add-anchor preview on the line. */
73
+ export declare function pointOnRingEdge(ring: PathRing, edgeIndex: number, point: Vec2): Vec2;
74
+ export declare function nearestTOnCubic(point: Vec2, p0: Vec2, c1: Vec2, c2: Vec2, p3: Vec2): {
75
+ t: number;
76
+ point: Vec2;
77
+ distance: number;
78
+ };
79
+ //# sourceMappingURL=pathRings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathRings.d.ts","sourceRoot":"","sources":["../../src/editor/pathRings.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,45 @@
1
- import { MapEditorHost } from '../core';
1
+ import { MapEditorHost, StackLevel } from '../core';
2
2
  import { RailSection } from './panels/LeftRail';
3
3
  /** What occupies the PORTAL center pane (rail is always Map options). */
4
4
  export type PortalCenterSurface = 'viewer' | 'editor';
5
+ /** Geometry canvas: Edit Map (shapes) or Wayfinding (routes). */
6
+ export declare function isEditorSection(section: RailSection | null): boolean;
5
7
  /**
6
8
  * PORTAL default is MapViewer (assign on the real map, no editor grid).
7
- * Edit Map swaps in EditorCanvas + grid. Non-PORTAL editor hosts stay on
8
- * the geometry canvas.
9
+ * Edit Map and Wayfinding swap in EditorCanvas + grid. Non-PORTAL editor
10
+ * hosts stay on the geometry canvas.
9
11
  */
10
12
  export declare function portalCenterSurface(host: MapEditorHost, section: RailSection | null): PortalCenterSurface;
13
+ /** Building floors only — Outdoor is not routed. */
14
+ export declare function wayfindingSelectableLevels<T extends StackLevel>(levels: T[]): T[];
15
+ /** Floors in admin list order, then Outdoor at the bottom. */
16
+ export declare function editMapSelectableLevels<T extends StackLevel>(levels: T[]): T[];
17
+ /** Lowest building floor (bottom of the Floors list). */
18
+ export declare function defaultEditorFloorId(levels: StackLevel[]): number | null;
19
+ /**
20
+ * Wayfinding always opens on the ground floor (bottom of the Floors list),
21
+ * not Outdoor or the floor last used in Edit Map.
22
+ */
23
+ export declare function levelIdOnEnterWayfinding(levels: StackLevel[]): number | null;
24
+ /** Edit Map opens on the lowest building floor; Outdoor only if there are no floors. */
25
+ export declare function levelIdOnEnterEditMap(levels: StackLevel[]): number | null;
26
+ /**
27
+ * PORTAL default map always lands on the ground floor. Outdoor as the
28
+ * active level hides building floors (`viewerLevelStack`).
29
+ */
30
+ export declare function levelIdOnEnterDefaultMap(levels: StackLevel[]): number | null;
31
+ /**
32
+ * Top-right floor switcher. Edit Map lists floors then Outdoor.
33
+ * Wayfinding lists building floors only.
34
+ */
35
+ export declare function editorFloorControlLevels<T extends StackLevel & {
36
+ name: string;
37
+ }>(section: RailSection | null, levels: T[]): Array<{
38
+ id: number;
39
+ name: string;
40
+ }>;
41
+ /** Outdoor can be viewed in Wayfinding but routes and drawing stay off. */
42
+ export declare function wayfindingOutdoorReadOnly(section: RailSection | null, level: {
43
+ kind?: string;
44
+ } | null | undefined): boolean;
11
45
  //# sourceMappingURL=portalSurface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"portalSurface.d.ts","sourceRoot":"","sources":["../../src/editor/portalSurface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,yEAAyE;AACzE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,WAAW,GAAG,IAAI,GAC1B,mBAAmB,CAGrB"}
1
+ {"version":3,"file":"portalSurface.d.ts","sourceRoot":"","sources":["../../src/editor/portalSurface.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,yEAAyE;AACzE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,WAAW,GAAG,IAAI,GAC1B,mBAAmB,CAGrB;AAED,oDAAoD;AACpD,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEjF;AAED,8DAA8D;AAC9D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAG9E;AAED,yDAAyD;AACzD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAExE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAM5E;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAMzE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAE5E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9E,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,MAAM,EAAE,CAAC,EAAE,GACV,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CASrC;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC1C,OAAO,CAET"}
@@ -1,9 +1,10 @@
1
- import { CmConnector, PublishedDocument } from '../core';
1
+ import { CmConnector, MapAssignRetailer, PublishedDocument } from '../core';
2
2
  import { EditorDraftState } from './draftOps';
3
3
  export declare function compileEditorPreview(draft: EditorDraftState, extras?: {
4
4
  revisionId?: number;
5
5
  revisionNumber?: number;
6
6
  connectors?: CmConnector[];
7
7
  publishedAt?: string;
8
+ retailers?: MapAssignRetailer[];
8
9
  }): PublishedDocument;
9
10
  //# sourceMappingURL=previewDocument.d.ts.map