@eyeon/map 2.0.1 → 2.0.3

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 (139) hide show
  1. package/README.md +18 -1
  2. package/dist/assets/MapViewer.css +1 -1
  3. package/dist/assets/index.css +1 -1
  4. package/dist/chunks/MapViewer.js +1988 -358
  5. package/dist/chunks/MapViewer.js.map +1 -1
  6. package/dist/chunks/graph-tools.js +202 -109
  7. package/dist/chunks/graph-tools.js.map +1 -1
  8. package/dist/chunks/stacking.js +1426 -0
  9. package/dist/chunks/stacking.js.map +1 -0
  10. package/dist/core/filletPolygon.d.ts +10 -0
  11. package/dist/core/filletPolygon.d.ts.map +1 -0
  12. package/dist/core/geometry/index.d.ts +41 -4
  13. package/dist/core/geometry/index.d.ts.map +1 -1
  14. package/dist/core/hostChrome.d.ts +20 -0
  15. package/dist/core/hostChrome.d.ts.map +1 -0
  16. package/dist/core/import/index.d.ts +52 -3
  17. package/dist/core/import/index.d.ts.map +1 -1
  18. package/dist/core/import/svgStyle.d.ts +21 -0
  19. package/dist/core/import/svgStyle.d.ts.map +1 -0
  20. package/dist/core/import/svgTransform.d.ts +49 -0
  21. package/dist/core/import/svgTransform.d.ts.map +1 -0
  22. package/dist/core/index.d.ts +6 -0
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/index.js +89 -279
  25. package/dist/core/index.js.map +1 -1
  26. package/dist/core/layerStyles.d.ts +44 -0
  27. package/dist/core/layerStyles.d.ts.map +1 -0
  28. package/dist/core/mediaUrl.d.ts +3 -0
  29. package/dist/core/mediaUrl.d.ts.map +1 -0
  30. package/dist/core/outdoorDecoration.d.ts +16 -0
  31. package/dist/core/outdoorDecoration.d.ts.map +1 -0
  32. package/dist/core/publish/index.d.ts +8 -2
  33. package/dist/core/publish/index.d.ts.map +1 -1
  34. package/dist/core/routing/graph-tools.d.ts +28 -2
  35. package/dist/core/routing/graph-tools.d.ts.map +1 -1
  36. package/dist/core/routing/pathfinding.d.ts.map +1 -1
  37. package/dist/core/stacking.d.ts +61 -0
  38. package/dist/core/stacking.d.ts.map +1 -0
  39. package/dist/core/types.d.ts +31 -0
  40. package/dist/core/types.d.ts.map +1 -1
  41. package/dist/editor/MapEditor.d.ts +28 -16
  42. package/dist/editor/MapEditor.d.ts.map +1 -1
  43. package/dist/editor/canvas/EditorCanvas.d.ts +56 -6
  44. package/dist/editor/canvas/EditorCanvas.d.ts.map +1 -1
  45. package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts +7 -0
  46. package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts.map +1 -0
  47. package/dist/editor/canvas/coords.d.ts +51 -0
  48. package/dist/editor/canvas/coords.d.ts.map +1 -0
  49. package/dist/editor/canvas/editorFill.d.ts +10 -0
  50. package/dist/editor/canvas/editorFill.d.ts.map +1 -0
  51. package/dist/editor/canvas/editorHover.d.ts +14 -0
  52. package/dist/editor/canvas/editorHover.d.ts.map +1 -0
  53. package/dist/editor/canvas/underlayHint.d.ts +5 -0
  54. package/dist/editor/canvas/underlayHint.d.ts.map +1 -0
  55. package/dist/editor/connectorAssignments.d.ts +64 -0
  56. package/dist/editor/connectorAssignments.d.ts.map +1 -0
  57. package/dist/editor/draftOps.d.ts +22 -0
  58. package/dist/editor/draftOps.d.ts.map +1 -0
  59. package/dist/editor/editorSectionReturn.d.ts +12 -0
  60. package/dist/editor/editorSectionReturn.d.ts.map +1 -0
  61. package/dist/editor/floorsListReturn.d.ts +5 -0
  62. package/dist/editor/floorsListReturn.d.ts.map +1 -0
  63. package/dist/editor/geometryEdit.d.ts +54 -0
  64. package/dist/editor/geometryEdit.d.ts.map +1 -0
  65. package/dist/editor/hexColor.d.ts +4 -0
  66. package/dist/editor/hexColor.d.ts.map +1 -0
  67. package/dist/editor/history.d.ts +31 -0
  68. package/dist/editor/history.d.ts.map +1 -0
  69. package/dist/editor/index.css +1497 -143
  70. package/dist/editor/index.d.ts +9 -3
  71. package/dist/editor/index.d.ts.map +1 -1
  72. package/dist/editor/index.js +6377 -601
  73. package/dist/editor/index.js.map +1 -1
  74. package/dist/editor/labelText.d.ts +15 -0
  75. package/dist/editor/labelText.d.ts.map +1 -0
  76. package/dist/editor/labels.d.ts +5 -0
  77. package/dist/editor/labels.d.ts.map +1 -0
  78. package/dist/editor/panels/ConnectorAssign.d.ts +12 -0
  79. package/dist/editor/panels/ConnectorAssign.d.ts.map +1 -0
  80. package/dist/editor/panels/FloorsPanel.d.ts +64 -0
  81. package/dist/editor/panels/FloorsPanel.d.ts.map +1 -0
  82. package/dist/editor/panels/ImportReviewPanel.d.ts +22 -0
  83. package/dist/editor/panels/ImportReviewPanel.d.ts.map +1 -0
  84. package/dist/editor/panels/Inspector.d.ts +6 -3
  85. package/dist/editor/panels/Inspector.d.ts.map +1 -1
  86. package/dist/editor/panels/LeftRail.d.ts +26 -11
  87. package/dist/editor/panels/LeftRail.d.ts.map +1 -1
  88. package/dist/editor/panels/PreviewOverlay.d.ts +11 -2
  89. package/dist/editor/panels/PreviewOverlay.d.ts.map +1 -1
  90. package/dist/editor/pathRings.d.ts +79 -0
  91. package/dist/editor/pathRings.d.ts.map +1 -0
  92. package/dist/editor/portalSurface.d.ts +37 -0
  93. package/dist/editor/portalSurface.d.ts.map +1 -0
  94. package/dist/editor/previewDocument.d.ts +9 -0
  95. package/dist/editor/previewDocument.d.ts.map +1 -0
  96. package/dist/editor/railAssignments.d.ts +22 -0
  97. package/dist/editor/railAssignments.d.ts.map +1 -0
  98. package/dist/editor/routeStubs.d.ts +103 -0
  99. package/dist/editor/routeStubs.d.ts.map +1 -0
  100. package/dist/editor/snapPoint.d.ts +5 -0
  101. package/dist/editor/snapPoint.d.ts.map +1 -0
  102. package/dist/editor/splitJoin.d.ts +78 -0
  103. package/dist/editor/splitJoin.d.ts.map +1 -0
  104. package/dist/editor/tools.d.ts +49 -0
  105. package/dist/editor/tools.d.ts.map +1 -0
  106. package/dist/test-maps/shops-at-south-town/BASE - Shops At South Town.ai +26703 -28
  107. package/dist/test-maps/shops-at-south-town/LF - Shops At South Town.ai +4459 -0
  108. package/dist/test-maps/shops-at-south-town/SVG/BASE - Shops At South Town.svg +567 -0
  109. package/dist/test-maps/shops-at-south-town/SVG/LF - Shops At South Town.svg +238 -0
  110. package/dist/test-maps/shops-at-south-town/SVG/UF - Shops At South Town.svg +276 -0
  111. package/dist/test-maps/shops-at-south-town/UF - Shops At South Town.ai +4131 -1
  112. package/dist/ui/ModernSelect.d.ts +14 -0
  113. package/dist/ui/ModernSelect.d.ts.map +1 -0
  114. package/dist/ui/selectSearch.d.ts +9 -0
  115. package/dist/ui/selectSearch.d.ts.map +1 -0
  116. package/dist/viewer/MapViewer.d.ts +14 -3
  117. package/dist/viewer/MapViewer.d.ts.map +1 -1
  118. package/dist/viewer/camera.d.ts +37 -0
  119. package/dist/viewer/camera.d.ts.map +1 -0
  120. package/dist/viewer/components/CameraRig.d.ts +18 -0
  121. package/dist/viewer/components/CameraRig.d.ts.map +1 -0
  122. package/dist/viewer/components/LevelMeshes.d.ts +6 -1
  123. package/dist/viewer/components/LevelMeshes.d.ts.map +1 -1
  124. package/dist/viewer/components/MapScene.d.ts +6 -1
  125. package/dist/viewer/components/MapScene.d.ts.map +1 -1
  126. package/dist/viewer/components/SvgVectorLayer.d.ts +18 -0
  127. package/dist/viewer/components/SvgVectorLayer.d.ts.map +1 -0
  128. package/dist/viewer/index.css +236 -37
  129. package/dist/viewer/index.d.ts +4 -0
  130. package/dist/viewer/index.d.ts.map +1 -1
  131. package/dist/viewer/index.js +9 -4
  132. package/dist/viewer/index.js.map +1 -1
  133. package/dist/viewer/ui/MapControls.d.ts +22 -0
  134. package/dist/viewer/ui/MapControls.d.ts.map +1 -0
  135. package/dist/viewer/ui/RuntimeChrome.d.ts +3 -3
  136. package/dist/viewer/ui/RuntimeChrome.d.ts.map +1 -1
  137. package/package.json +7 -3
  138. package/dist/chunks/pathfinding.js +0 -343
  139. package/dist/chunks/pathfinding.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { AutoConnectResult, CmAnchor, CmRouteEdge, SkeletonSuggestion, Vec2, WeldResult } from '../types';
1
+ import { AnchorKind, AutoConnectResult, CmAnchor, CmRouteEdge, ShapeGeometry, ShapeKind, SkeletonSuggestion, Vec2, WeldResult } from '../types';
2
2
  export interface AnchorLike {
3
3
  id: number;
4
4
  x: number;
@@ -21,6 +21,15 @@ export declare function weldAnchors(anchors: AnchorLike[], edges: EdgeLike[], ca
21
21
  * Find all pairs of anchors within tolerance that should be welded.
22
22
  */
23
23
  export declare function findWeldCandidates(anchors: AnchorLike[], tolerance?: number): number[][];
24
+ /**
25
+ * Merge coincident anchors and drop overlapping undirected edges.
26
+ * Two SVG imports of the same ROUTES layer stack a second copy on top of
27
+ * the first — dragging one junction then leaves the twin behind.
28
+ */
29
+ export declare function collapseDuplicateRouteGraph<A extends AnchorLike, E extends EdgeLike>(anchors: A[], edges: E[], tolerance?: number): {
30
+ anchors: A[];
31
+ edges: E[];
32
+ };
24
33
  /**
25
34
  * Auto-connect a unit anchor to the nearest walkable segment via perpendicular projection.
26
35
  */
@@ -38,10 +47,27 @@ export declare function buildAutoSkeleton(walkablePolygons: Vec2[][], voidPolygo
38
47
  /**
39
48
  * Convert route-path SVG line endpoints into welded anchors + edges.
40
49
  * This is the key converter step that repairs coincident-but-disconnected joins.
50
+ *
51
+ * Anchors land in raw SVG user space (Y down), the same space as shape
52
+ * geometry. There is intentionally no viewbox-height flip here — mirroring
53
+ * routes without mirroring shapes would silently desynchronise the two.
41
54
  */
42
- export declare function importRoutePaths(pathDs: string[], levelId: number, mapId: number, startId: number, weldTolerance?: number, viewboxHeight?: number): {
55
+ export declare function importRoutePaths(pathDs: string[], levelId: number, mapId: number, startId: number, weldTolerance?: number): {
43
56
  anchors: CmAnchor[];
44
57
  edges: CmRouteEdge[];
45
58
  nextId: number;
46
59
  };
60
+ export declare function routeAnchorKindForShape(kind: ShapeKind): AnchorKind;
61
+ export interface AttachableImportShape {
62
+ id: number;
63
+ kind: ShapeKind;
64
+ geometry: Pick<ShapeGeometry, 'polygons'>;
65
+ }
66
+ /**
67
+ * Same rule as v1 `assign_route_nodes_to_stores`: a route vertex that sits
68
+ * inside (or on) an interactive shape is that store / amenity / entrance's
69
+ * destination. Prefer a dedicated spur leaf; otherwise take the closest
70
+ * vertex. Corridor through-points keep `walk` edges so the path stays joined.
71
+ */
72
+ export declare function attachImportedRouteAnchors(anchors: CmAnchor[], edges: CmRouteEdge[], shapes: AttachableImportShape[], insideTolerance?: number): number;
47
73
  //# sourceMappingURL=graph-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-tools.d.ts","sourceRoot":"","sources":["../../../src/core/routing/graph-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACX,MAAM,UAAU,CAAC;AASlB,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,QAAQ,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,SAAyB,GACjC,UAAU,GAAG,IAAI,CA2CnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,UAAU,EAAE,EACrB,SAAS,SAAyB,GACjC,MAAM,EAAE,EAAE,CAuBZ;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAC3B,iBAAiB,EAAE,UAAU,EAAE,EAC/B,aAAa,SAAyB,GACrC,iBAAiB,GAAG,IAAI,CA6B1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,GACb,QAAQ,GAAG,IAAI,CAyBjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAC1B,YAAY,EAAE,IAAI,EAAE,EAAE,EACtB,QAAQ,SAAK,GACZ,kBAAkB,CA4DpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,aAAa,SAAyB,EACtC,aAAa,CAAC,EAAE,MAAM,GACrB;IAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoD/D"}
1
+ {"version":3,"file":"graph-tools.d.ts","sourceRoot":"","sources":["../../../src/core/routing/graph-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACX,MAAM,UAAU,CAAC;AASlB,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,QAAQ,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,SAAyB,GACjC,UAAU,GAAG,IAAI,CA2CnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,UAAU,EAAE,EACrB,SAAS,SAAyB,GACjC,MAAM,EAAE,EAAE,CAuBZ;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,QAAQ,EAElB,OAAO,EAAE,CAAC,EAAE,EACZ,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,SAAyB,GACjC;IAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,CAAA;CAAE,CAuB9B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAC3B,iBAAiB,EAAE,UAAU,EAAE,EAC/B,aAAa,SAAyB,GACrC,iBAAiB,GAAG,IAAI,CA6B1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,GACb,QAAQ,GAAG,IAAI,CAyBjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAC1B,YAAY,EAAE,IAAI,EAAE,EAAE,EACtB,QAAQ,SAAK,GACZ,kBAAkB,CA4DpB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,aAAa,SAAyB,GACrC;IAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAqD/D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAInE;AAiCD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,QAAQ,EAAE,EACnB,KAAK,EAAE,WAAW,EAAE,EACpB,MAAM,EAAE,qBAAqB,EAAE,EAC/B,eAAe,SAA6B,GAC3C,MAAM,CAwDR"}
@@ -1 +1 @@
1
- {"version":3,"file":"pathfinding.d.ts","sourceRoot":"","sources":["../../../src/core/routing/pathfinding.ts"],"names":[],"mappings":"AAAA,OAAoB,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAIlB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACnC;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,QAAQ,EAAE,EACnB,KAAK,EAAE,WAAW,EAAE,EACpB,UAAU,GAAE,WAAW,EAAO,GAC7B,aAAa,CA2Df;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,eAAoB,GAC5B,UAAU,GAAG,IAAI,CAoDnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE,eAAoB,GAC5B,UAAU,GAAG,IAAI,CAUnB"}
1
+ {"version":3,"file":"pathfinding.d.ts","sourceRoot":"","sources":["../../../src/core/routing/pathfinding.ts"],"names":[],"mappings":"AAAA,OAAoB,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAIlB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACnC;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,QAAQ,EAAE,EACnB,KAAK,EAAE,WAAW,EAAE,EACpB,UAAU,GAAE,WAAW,EAAO,GAC7B,aAAa,CA2Df;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,eAAoB,GAC5B,UAAU,GAAG,IAAI,CAqDnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE,eAAoB,GAC5B,UAAU,GAAG,IAAI,CAUnB"}
@@ -0,0 +1,61 @@
1
+ import { LevelKind, PublishedLevel, ViewBox } from './types';
2
+ export interface StackLevel {
3
+ id: number;
4
+ kind: LevelKind;
5
+ ordering: number;
6
+ levelIndex: number;
7
+ }
8
+ /** Same comparator as admin FloorsPanel `buildingFloors`. */
9
+ export declare function compareBuildingFloors(a: {
10
+ ordering: number;
11
+ levelIndex: number;
12
+ }, b: {
13
+ ordering: number;
14
+ levelIndex: number;
15
+ }): number;
16
+ export interface SceneBounds {
17
+ minX: number;
18
+ minY: number;
19
+ maxX: number;
20
+ maxY: number;
21
+ cx: number;
22
+ cy: number;
23
+ size: number;
24
+ }
25
+ export declare function isOutdoorLevel(level: {
26
+ kind: string;
27
+ }): boolean;
28
+ /**
29
+ * Persistent base + optional building-floor overlay.
30
+ * Outdoor/base is never dropped when a floor is selected.
31
+ * Selecting Outdoor hides building floors (base stays).
32
+ */
33
+ export declare function viewerLevelStack<T extends {
34
+ id: number;
35
+ kind: string;
36
+ }>(levels: T[], activeLevelId: number | null): T[];
37
+ /** Building floors only, same order as the admin Floors list. */
38
+ export declare function floorSwitcherLevels<T extends StackLevel>(levels: T[]): T[];
39
+ /**
40
+ * Switcher buttons top-to-bottom — same order as the admin Floors list.
41
+ * Do not reverse: staff order the list (upper level at the top) and the map
42
+ * must match that.
43
+ */
44
+ export declare function floorSwitcherDisplayLevels<T extends StackLevel>(levels: T[]): T[];
45
+ /** Hide the map floor list when there is only one building floor. */
46
+ export declare function shouldShowFloorSwitcher<T extends StackLevel>(levels: T[]): boolean;
47
+ /**
48
+ * Prefer the last building floor in admin Floors order (bottom of the list).
49
+ * The list stays upper-to-ground top-to-bottom; visitors should land on ground.
50
+ */
51
+ export declare function defaultViewerLevelId(levels: Array<{
52
+ id: number;
53
+ kind: string;
54
+ ordering: number;
55
+ levelIndex: number;
56
+ }>): number | null;
57
+ export declare function viewBoxToBounds(viewbox: ViewBox): SceneBounds;
58
+ export declare function expandBounds(target: SceneBounds, next: SceneBounds): SceneBounds;
59
+ export declare function boundsFromStackedLevels(levels: PublishedLevel[], activeLevelId: number | null, baseViewbox?: ViewBox | null): SceneBounds;
60
+ export declare function unionViewBox(primary: ViewBox | null | undefined, secondary: ViewBox | null | undefined): ViewBox;
61
+ //# sourceMappingURL=stacking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stacking.d.ts","sourceRoot":"","sources":["../../src/core/stacking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6DAA6D;AAC7D,wBAAgB,qBAAqB,CACnC,CAAC,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3C,CAAC,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C,MAAM,CAER;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACrE,MAAM,EAAE,CAAC,EAAE,EACX,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,CAAC,EAAE,CAeL;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEjF;AAED,qEAAqE;AACrE,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAElF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAChF,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAU7D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,WAAW,CAchF;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,EAAE,EACxB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,GAC3B,WAAW,CA2Bb;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACnC,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GACpC,OAAO,CAST"}
@@ -3,6 +3,23 @@
3
3
  * Pure TypeScript; no React / Three.js.
4
4
  */
5
5
  export type MapVersion = 1 | 2;
6
+ /**
7
+ * Surface the map is embedded in.
8
+ *
9
+ * - `PORTAL` — admin Center Map editor (`MapEditor`). Left rail is Map options
10
+ * (Floors, Kiosks, Settings) plus Edit Map — never viewer chrome. Default
11
+ * center is MapViewer (click-to-assign, no editor grid). Edit Map swaps
12
+ * in the geometry canvas and grid.
13
+ * - `PORTAL_ASSIGN` — admin editor default center (`MapViewer` for click-to-
14
+ * assign). Floors + zoom only — no search / amenities.
15
+ * - `WEBSITE` — public website (`MapViewer`).
16
+ * - `DISPLAY_APP` — kiosk (`MapViewer`).
17
+ */
18
+ export type MapHost = 'PORTAL' | 'PORTAL_ASSIGN' | 'WEBSITE' | 'DISPLAY_APP';
19
+ /** Staff editor host. `PORTAL` always shows Map options inside the library. */
20
+ export type MapEditorHost = Extract<MapHost, 'PORTAL' | 'WEBSITE'>;
21
+ /** Public / assign viewer. Never includes Map options. */
22
+ export type MapViewerHost = Extract<MapHost, 'WEBSITE' | 'DISPLAY_APP' | 'PORTAL_ASSIGN'>;
6
23
  export type LevelKind = 'outdoor' | 'floor';
7
24
  export type ShapeKind = 'unit' | 'amenity' | 'kiosk_screen' | 'connector' | 'entrance' | 'walkable' | 'void' | 'wall' | 'boundary' | 'floorplate' | 'decor' | 'label' | 'zone' | 'parking_zone' | 'green_area' | 'water' | 'parking_icon';
8
25
  export type AnchorKind = 'unit' | 'junction' | 'connector' | 'entrance';
@@ -77,6 +94,8 @@ export interface ThemeDefaults {
77
94
  STORE_DEFAULT_COLOR: string;
78
95
  STORE_TEXT_COLOR: string;
79
96
  STORE_HEIGHT: number;
97
+ /** Viewer-only corner radius for store (`unit`) polygons. Edit Map stays sharp. */
98
+ STORE_RADIUS: number;
80
99
  WALL_COLOR: string;
81
100
  WALL_THICKNESS: number;
82
101
  BOUNDARY_COLOR: string;
@@ -94,6 +113,9 @@ export interface ThemeDefaults {
94
113
  CAMERA_MIN_DISTANCE: number;
95
114
  }
96
115
  export declare const DEFAULT_THEME: ThemeDefaults;
116
+ /** Non-negative store corner radius in SVG units. Invalid values become 0. */
117
+ export declare function clampStoreRadius(value: unknown): number;
118
+ export declare function mergeTheme(...partials: Array<Partial<ThemeDefaults> | null | undefined>): ThemeDefaults;
97
119
  export interface CmMap {
98
120
  id: number;
99
121
  centerId: number;
@@ -101,6 +123,7 @@ export interface CmMap {
101
123
  baseViewbox: ViewBox | null;
102
124
  unitsPerMeter: number;
103
125
  theme: Partial<ThemeDefaults>;
126
+ /** Current production document row in cm_revisions (overwritten in place). */
104
127
  publishedRevisionId: number | null;
105
128
  draftUpdatedAt: string | null;
106
129
  createdAt: string;
@@ -120,6 +143,8 @@ export interface CmLevel {
120
143
  levelIndex: number;
121
144
  ordering: number;
122
145
  sourceSvgKey: string | null;
146
+ /** Resolved CDN URL for editor preview (not persisted). */
147
+ sourceSvgUrl?: string | null;
123
148
  sourceViewbox: ViewBox | null;
124
149
  transform: LevelTransform;
125
150
  isActive: boolean;
@@ -136,6 +161,10 @@ export interface CmShape {
136
161
  label: ShapeLabel;
137
162
  sourceSvgId: string | null;
138
163
  origin: ShapeOrigin;
164
+ /** When true, outdoor re-import never overwrites geometry/bbox. */
165
+ geometryLocked?: boolean;
166
+ /** Set when sourceSvgId disappeared from a re-upload; filtered from public docs. */
167
+ orphanedAt?: string | null;
139
168
  }
140
169
  export interface CmShapeAssignment {
141
170
  shapeId: number;
@@ -273,6 +302,8 @@ export interface ImportDiffItem {
273
302
  assignment?: boolean;
274
303
  anchors?: boolean;
275
304
  };
305
+ /** True when portal Edit Map owns this shape's geometry. */
306
+ geometryLocked?: boolean;
276
307
  }
277
308
  export interface ImportDiff {
278
309
  items: ImportDiffItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
- import { default as React } from 'react';
2
- import { BatchOp, CmAmenityCatalogItem, CmAnchor, CmBuilding, CmLevel, CmRouteEdge, CmShape, CmShapeAssignment, PublishedDocument, ThemeDefaults } from '../core';
3
- export interface EditorDraftState {
4
- mapId: number;
5
- centerId: number;
6
- theme: Partial<ThemeDefaults>;
7
- buildings: CmBuilding[];
8
- levels: CmLevel[];
9
- shapes: CmShape[];
10
- assignments: CmShapeAssignment[];
11
- anchors: CmAnchor[];
12
- edges: CmRouteEdge[];
13
- amenities: CmAmenityCatalogItem[];
14
- baseSvgUrl?: string | null;
15
- }
1
+ import { default as React, ReactNode } from 'react';
2
+ import { BatchOp, MapEditorHost, PublishedDocument } from '../core';
3
+ import { EditorDraftState } from './draftOps';
4
+ import { CreateLevelInput, UpdateLevelInput } from './panels/FloorsPanel';
5
+ export type { EditorDraftState } from './draftOps';
6
+ export type { MapEditorHost } from '../core';
7
+ export type { EditorTool } from './tools';
16
8
  export interface MapEditorProps {
9
+ /**
10
+ * Where the editor is embedded. `PORTAL` (default) always includes Map
11
+ * options (LeftRail: Floors, Kiosks, Settings, plus Edit Map — never viewer
12
+ * chrome). Default center is MapViewer (click-to-assign, no grid). Edit
13
+ * Map swaps in the geometry canvas and editor grid. `WEBSITE` is canvas +
14
+ * toolbar only — public sites should use `MapViewer`, not this editor.
15
+ */
16
+ host?: MapEditorHost;
17
17
  draft: EditorDraftState;
18
18
  webApiURI: string;
19
19
  canEdit?: boolean;
@@ -22,10 +22,22 @@ export interface MapEditorProps {
22
22
  onBatch?: (ops: BatchOp[]) => Promise<void>;
23
23
  onPublish?: () => Promise<void>;
24
24
  onImportSvg?: (levelId: number, file: File) => Promise<void>;
25
+ onCreateLevel?: (input: CreateLevelInput) => Promise<number | void>;
26
+ onUpdateLevel?: (input: UpdateLevelInput) => Promise<void>;
27
+ onDeleteLevel?: (levelId: number) => Promise<void>;
28
+ onReorderLevels?: (orderedIds: number[]) => Promise<void>;
25
29
  onAutoroute?: (levelId: number) => Promise<void>;
26
30
  previewDocument?: PublishedDocument | null;
31
+ /**
32
+ * Media proxy base, same contract as v1 `IMAGE_PROXY_URL` (base + encoded
33
+ * URL). Required whenever the outdoor SVG is served from a origin that does
34
+ * not send CORS headers, otherwise its decoration silently fails to load.
35
+ */
36
+ imageProxyUrl?: string | null;
27
37
  className?: string;
38
+ /** Quiet extra actions under the left rail (e.g. developer Classic Map). */
39
+ sidebarFooter?: ReactNode;
28
40
  }
29
- export declare function MapEditor({ draft, canEdit, canFloors, canSettings, onBatch, onPublish, onImportSvg, onAutoroute, previewDocument, className, }: MapEditorProps): React.JSX.Element;
41
+ export declare function MapEditor({ host, draft, canEdit, canFloors, canSettings, onBatch, onPublish, onImportSvg, onCreateLevel, onUpdateLevel, onDeleteLevel, onReorderLevels, onAutoroute, previewDocument, imageProxyUrl, className, sidebarFooter, }: MapEditorProps): React.JSX.Element;
30
42
  export default MapEditor;
31
43
  //# sourceMappingURL=MapEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapEditor.d.ts","sourceRoot":"","sources":["../../src/editor/MapEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EACV,OAAO,EACP,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EAEjB,aAAa,EACd,MAAM,SAAS,CAAC;AAMjB,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,OAAc,EACd,SAAgB,EAChB,WAAkB,EAClB,OAAO,EACP,SAAS,EACT,WAAW,EACX,WAAW,EACX,eAAe,EACf,SAAS,GACV,EAAE,cAAc,qBAsOhB;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"MapEditor.d.ts","sourceRoot":"","sources":["../../src/editor/MapEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAMZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAiBjB,OAAO,EAAkC,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA2C/E,OAAO,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,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,eAAe,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAe,EACf,KAAK,EACL,OAAc,EACd,SAAgB,EAChB,WAAkB,EAClB,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,eAAe,EACf,aAAa,EACb,SAAS,EACT,aAAa,GACd,EAAE,cAAc,qBA+1BhB;AAED,eAAe,SAAS,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { default as React } from 'react';
2
- import { CmAnchor, CmLevel, CmRouteEdge, CmShape, CmShapeAssignment, ShapeGeometry, ShapeKind, ThemeDefaults, Vec2 } from '../../core';
2
+ import { CmAnchor, CmLevel, CmRouteEdge, CmShape, CmShapeAssignment, ShapeGeometry, ShapeKind, ShapeLabel, ThemeDefaults, Vec2, ViewBox } from '../../core';
3
+ import { EditorTool } from '../tools';
4
+ import { ShapeBatchEdit } from '../splitJoin';
3
5
  export interface EditorCanvasProps {
4
6
  level: CmLevel | null;
5
7
  shapes: CmShape[];
@@ -7,16 +9,64 @@ export interface EditorCanvasProps {
7
9
  edges: CmRouteEdge[];
8
10
  assignments: CmShapeAssignment[];
9
11
  theme: ThemeDefaults;
10
- tool: 'select' | 'draw-unit' | 'draw-route' | 'pan';
11
- baseAngle: number;
12
+ tool: EditorTool;
12
13
  selectedShapeId: number | null;
13
14
  selectedAnchorIds: number[];
15
+ /** Outdoor SVG underlay (designer-owned). */
14
16
  baseSvgUrl: string | null;
17
+ baseViewbox?: ViewBox | null;
18
+ /**
19
+ * Live outdoor SVG. Drawn on every Edit Map floor (and Outdoor) so
20
+ * green areas, parking lanes, and icons match the assign view.
21
+ */
22
+ outdoorSvgUrl?: string | null;
23
+ /** Same proxy as MapViewer — required when the SVG is cross-origin. */
24
+ imageProxyUrl?: string | null;
25
+ /** @deprecated Use outdoorSvgUrl. Kept so existing hosts keep compiling. */
26
+ levelSvgUrl?: string | null;
27
+ /** Outdoor/base shapes drawn behind the active building floor (non-interactive). */
28
+ underlayShapes?: CmShape[];
29
+ /** When true (outdoor), only interactive shapes are editable. */
30
+ interactiveOnly?: boolean;
31
+ /** Graph-paper grid. PORTAL only mounts this canvas after Edit Map. */
32
+ showGrid?: boolean;
33
+ /** Wayfinding section: Select also shows and edits the route graph. */
34
+ routeMode?: boolean;
35
+ /** Pan and zoom only — used for Outdoor in Wayfinding. */
36
+ readOnly?: boolean;
15
37
  onSelectShape: (id: number | null) => void;
16
38
  onSelectAnchors: (ids: number[]) => void;
17
- onCreateRoutePoint: (point: Vec2, prevAnchorId: number | null) => void;
39
+ onCreateRoutePoint: (point: Vec2, prevAnchorId: number | null) => number | null | void;
40
+ /** First committed Create Route segment (two points + one edge). */
41
+ onCreateRouteSegment: (start: Vec2, end: Vec2) => number | null | void;
42
+ /** Connect two existing junctions with a walk edge. */
43
+ onLinkRouteAnchors?: (fromAnchorId: number, toAnchorId: number) => void;
44
+ onInsertRouteJunction: (edgeId: number, point: Vec2) => number | null | void;
45
+ /** Esc on a route draft uses the same path as the Undo control. */
46
+ onUndo?: () => void;
47
+ onRouteDraftActiveChange?: (active: boolean) => void;
48
+ /** Esc on Multi Route (or Create Route) used to return to Select. */
49
+ onToolChange?: (tool: EditorTool) => void;
50
+ onDeleteRouteAnchor: (anchorId: number) => void;
51
+ onConnectShapeToRoute: (shapeId: number, from: Vec2, drop: Vec2, maxDist: number) => void;
52
+ /** Click inside a store to place its orange destination at that point. */
53
+ onEnsureShapeAnchor: (shapeId: number, point: Vec2) => number | null | void;
18
54
  onMoveAnchor: (anchorId: number, x: number, y: number) => void;
19
- onCreateShape: (kind: ShapeKind, geometry: ShapeGeometry) => void;
55
+ onCreateShape: (kind: ShapeKind, geometry: ShapeGeometry, extras?: {
56
+ label?: ShapeLabel;
57
+ }) => void;
58
+ onUpdateShapeGeometry: (shapeId: number, geometry: ShapeGeometry, opts?: {
59
+ live?: boolean;
60
+ }) => void;
61
+ onBatchShapeEdits?: (edits: ShapeBatchEdit[]) => void;
62
+ /** End a live drag so the next edit starts a new undo step. */
63
+ onHistoryGestureEnd?: () => void;
20
64
  }
21
- export declare function EditorCanvas({ level, shapes, anchors, edges, theme, tool, baseAngle, selectedShapeId, selectedAnchorIds, baseSvgUrl, onSelectShape, onSelectAnchors, onCreateRoutePoint, onMoveAnchor, onCreateShape, }: EditorCanvasProps): React.JSX.Element;
65
+ export interface EditorCanvasHandle {
66
+ consumeRouteUndo: () => 'clear-only' | 'clear-and-undo';
67
+ zoomIn: () => void;
68
+ zoomOut: () => void;
69
+ resetView: () => void;
70
+ }
71
+ export declare const EditorCanvas: React.ForwardRefExoticComponent<EditorCanvasProps & React.RefAttributes<EditorCanvasHandle>>;
22
72
  //# sourceMappingURL=EditorCanvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorCanvas.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/EditorCanvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,aAAa,EACb,IAAI,EACL,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzC,kBAAkB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvE,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,aAAa,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CACnE;AAcD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,aAAa,GACd,EAAE,iBAAiB,qBAyOnB"}
1
+ {"version":3,"file":"EditorCanvas.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/EditorCanvas.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ export declare function OutdoorSvgUnderlay({ url, imageProxyUrl, suppressIds, }: {
3
+ url: string;
4
+ imageProxyUrl?: string | null;
5
+ suppressIds?: ReadonlySet<string>;
6
+ }): React.JSX.Element | null;
7
+ //# sourceMappingURL=OutdoorSvgUnderlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutdoorSvgUnderlay.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/OutdoorSvgUnderlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAO5D,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,aAAa,EACb,WAAW,GACZ,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC,4BAoDA"}
@@ -0,0 +1,51 @@
1
+ import { Vec2 } from '../../core';
2
+ /** 2D affine matrix in DOMMatrix / SVGMatrix layout (a c e / b d f). */
3
+ export interface Affine2 {
4
+ a: number;
5
+ b: number;
6
+ c: number;
7
+ d: number;
8
+ e: number;
9
+ f: number;
10
+ }
11
+ /**
12
+ * Map a client (CSS pixel) point through the inverse of an SVG screen CTM.
13
+ * That converts pointer coordinates into SVG user / viewBox space so pan
14
+ * deltas match what is drawn, even when the viewBox is larger than the
15
+ * canvas CSS box (or letterboxed by preserveAspectRatio).
16
+ */
17
+ export declare function clientToUser(ctm: Affine2, clientX: number, clientY: number): Vec2;
18
+ export declare function clientToSvgUser(svg: SVGSVGElement, clientX: number, clientY: number): Vec2;
19
+ /** Invert `translate(pan) scale(zoom)` so a user-space point becomes world geometry. */
20
+ export declare function userToWorld(user: Vec2, pan: Vec2, zoom: number): Vec2;
21
+ export declare const EDITOR_MIN_ZOOM = 0.2;
22
+ /** High enough that designers can park on a single storefront or route node. */
23
+ export declare const EDITOR_MAX_ZOOM = 128;
24
+ export declare function clampEditorZoom(zoom: number): number;
25
+ /** CSS pixels per SVG user unit from a screen CTM (ignores translation). */
26
+ export declare function pxPerUserFromCtm(ctm: Affine2): number;
27
+ /** World-space length that draws as `px` CSS pixels after `scale(zoom)`. */
28
+ export declare function screenPxToWorld(px: number, zoom: number, pxPerUser: number): number;
29
+ /**
30
+ * Next pan so `user` (cursor or pinch midpoint in viewBox space) stays over
31
+ * the same world point after `zoom` → `nextZoom`. Without this, SVG
32
+ * `scale()` pivots around the viewBox origin (top-left).
33
+ */
34
+ export declare function panAfterZoom(user: Vec2, pan: Vec2, zoom: number, nextZoom: number): Vec2;
35
+ /** Pan that keeps a known world point under `user` at `zoom`. */
36
+ export declare function panKeepingWorldAtUser(user: Vec2, world: Vec2, zoom: number): Vec2;
37
+ export declare const EDITOR_ZOOM_ANIM_MS = 240;
38
+ export declare function easeOutCubic(t: number): number;
39
+ export declare function lerp(a: number, b: number, t: number): number;
40
+ /** Interpolate pan + zoom for a smooth +/− / Reset. */
41
+ export declare function interpolateView(from: {
42
+ pan: Vec2;
43
+ zoom: number;
44
+ }, to: {
45
+ pan: Vec2;
46
+ zoom: number;
47
+ }, t: number): {
48
+ pan: Vec2;
49
+ zoom: number;
50
+ };
51
+ //# sourceMappingURL=coords.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coords.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/coords.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,wEAAwE;AACxE,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CASjF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI1F;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMrE;AAED,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,gFAAgF;AAChF,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAErD;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAInF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,IAAI,CAMN;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAKjF;AAED,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAC7B,IAAI,EAAE;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjC,EAAE,EAAE;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/B,CAAC,EAAE,MAAM,GACR;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAS7B"}
@@ -0,0 +1,10 @@
1
+ import { ShapeKind, ThemeDefaults } from '../../core';
2
+ /** Edit Map fills stay translucent so the grid shows through for alignment. */
3
+ export declare function editorShapeFillOpacity(kind: ShapeKind): number;
4
+ export declare function editorShapeFill(shape: {
5
+ kind: ShapeKind;
6
+ style?: {
7
+ fill?: string;
8
+ };
9
+ }, theme: ThemeDefaults): string;
10
+ //# sourceMappingURL=editorFill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorFill.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/editorFill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3D,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAI9D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EACrD,KAAK,EAAE,aAAa,GACnB,MAAM,CAMR"}
@@ -0,0 +1,14 @@
1
+ import { ShapeKind } from '../../core';
2
+ import { EditorTool } from '../tools';
3
+ /** Stores and other assignable items — pointer + highlight, not the pan hand. */
4
+ export declare function isHoverHighlightShape(kind: ShapeKind): boolean;
5
+ export declare function editorSelectCursor(args: {
6
+ tool: EditorTool;
7
+ selected: boolean;
8
+ highlightable: boolean;
9
+ dragging?: boolean;
10
+ /** Wayfinding: + cursor — click places an orange store destination. */
11
+ wayfinding?: boolean;
12
+ }): 'pointer' | 'grab' | 'grabbing' | 'cell' | undefined;
13
+ export declare function editorHoverFillOpacity(kind: ShapeKind, base: number, hovered: boolean): number;
14
+ //# sourceMappingURL=editorHover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorHover.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/editorHover.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAYvD;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,MAAM,CAGR"}
@@ -0,0 +1,5 @@
1
+ import { ShapeKind } from '../../core';
2
+ /** Outdoor underlay items that look clickable on a floor. */
3
+ export declare function isUnderlayHintShape(kind: ShapeKind): boolean;
4
+ export declare function underlaySwitchHint(kind: ShapeKind): string;
5
+ //# sourceMappingURL=underlayHint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"underlayHint.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/underlayHint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAW1D"}
@@ -0,0 +1,64 @@
1
+ import { BatchOp, CmAnchor, CmConnector, CmLevel, CmRouteEdge, CmShape, ConnectorDirection, ConnectorKind, Vec2 } from '../core';
2
+ export type VerticalRailKind = 'escalator' | 'elevator';
3
+ export interface ParsedConnectorSource {
4
+ family: ConnectorKind;
5
+ group: string;
6
+ direction?: 'up' | 'down';
7
+ role?: 'start' | 'end';
8
+ }
9
+ /** Parse v1-style ids: `escalator-5-up-start`, `elevator-2`. */
10
+ export declare function parseConnectorSourceId(value: string | null | undefined): ParsedConnectorSource | null;
11
+ export declare function guessConnectorKind(shape: {
12
+ kind: string;
13
+ key: string;
14
+ sourceSvgId?: string | null;
15
+ }): ConnectorKind | null;
16
+ export declare function connectorIdForShape(shapeId: number, anchors: Array<Pick<CmAnchor, 'shapeId' | 'connectorId'>>): number | null;
17
+ export declare function connectorForShape(shapeId: number, anchors: Array<Pick<CmAnchor, 'shapeId' | 'connectorId'>>, connectors: CmConnector[]): CmConnector | null;
18
+ export declare function resolvedConnectorKind(shape: {
19
+ id: number;
20
+ kind: string;
21
+ key: string;
22
+ sourceSvgId?: string | null;
23
+ }, anchors: Array<Pick<CmAnchor, 'shapeId' | 'connectorId'>>, connectors: CmConnector[]): ConnectorKind | null;
24
+ export declare function railConnectorShapes<T extends {
25
+ id: number;
26
+ kind: string;
27
+ key: string;
28
+ sourceSvgId?: string | null;
29
+ orphanedAt?: string | null;
30
+ }>(shapes: T[], kind: VerticalRailKind, anchors: Array<Pick<CmAnchor, 'shapeId' | 'connectorId'>>, connectors: CmConnector[]): T[];
31
+ export declare function landingAnchor(shapeId: number, anchors: CmAnchor[]): CmAnchor | undefined;
32
+ export declare function shapeLandingPoint(shape: Pick<CmShape, 'geometry'>): Vec2;
33
+ export declare function inferTravelDirection(fromLevelIndex: number, toLevelIndex: number, hint?: 'up' | 'down'): ConnectorDirection;
34
+ export declare function defaultConnectorName(kind: VerticalRailKind, shapes: Array<{
35
+ key: string;
36
+ sourceSvgId?: string | null;
37
+ }>): string;
38
+ export declare function nearestWalkAnchor(anchors: CmAnchor[], levelId: number, point: Vec2, excludeIds?: ReadonlySet<number>): CmAnchor | null;
39
+ export declare function memberShapeIds(connectorId: number, anchors: Array<Pick<CmAnchor, 'shapeId' | 'connectorId'>>): number[];
40
+ export interface ConnectorPlanContext {
41
+ mapId: number;
42
+ levels: CmLevel[];
43
+ shapes: CmShape[];
44
+ anchors: CmAnchor[];
45
+ edges: CmRouteEdge[];
46
+ connectors: CmConnector[];
47
+ allocId: () => number;
48
+ }
49
+ export declare function buildUnlinkConnectorOps(ctx: ConnectorPlanContext, connectorId: number): BatchOp[];
50
+ export declare function buildEscalatorLinkOps(ctx: ConnectorPlanContext, fromShape: CmShape, toShape: CmShape, options?: {
51
+ name?: string;
52
+ direction?: 'up' | 'down';
53
+ }): BatchOp[];
54
+ export declare function buildElevatorShaftOps(ctx: ConnectorPlanContext, memberShapes: CmShape[], options?: {
55
+ name?: string;
56
+ accessible?: boolean;
57
+ connectorId?: number;
58
+ }): BatchOp[];
59
+ export declare function suggestEscalatorPairs(shapes: CmShape[], levels: CmLevel[], anchors: Array<Pick<CmAnchor, 'shapeId' | 'connectorId'>>): Array<{
60
+ fromShapeId: number;
61
+ toShapeId: number;
62
+ label: string;
63
+ }>;
64
+ //# sourceMappingURL=connectorAssignments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorAssignments.d.ts","sourceRoot":"","sources":["../../src/editor/connectorAssignments.ts"],"names":[],"mappings":"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"}