@dxos/react-ui-canvas 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/index.mjs +9044 -1135
  3. package/dist/lib/index.mjs.map +1 -1
  4. package/dist/types/src/components/About/About.d.ts +13 -0
  5. package/dist/types/src/components/About/About.d.ts.map +1 -0
  6. package/dist/types/src/components/About/About.stories.d.ts +7 -0
  7. package/dist/types/src/components/About/About.stories.d.ts.map +1 -0
  8. package/dist/types/src/components/About/index.d.ts +2 -0
  9. package/dist/types/src/components/About/index.d.ts.map +1 -0
  10. package/dist/types/src/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  11. package/dist/types/src/components/ControlFrame/ControlFrame.d.ts +8 -2
  12. package/dist/types/src/components/ControlFrame/ControlFrame.d.ts.map +1 -1
  13. package/dist/types/src/components/Layers/Layers.d.ts +30 -0
  14. package/dist/types/src/components/Layers/Layers.d.ts.map +1 -0
  15. package/dist/types/src/components/Layers/Layers.stories.d.ts +11 -0
  16. package/dist/types/src/components/Layers/Layers.stories.d.ts.map +1 -0
  17. package/dist/types/src/components/Layers/index.d.ts +2 -0
  18. package/dist/types/src/components/Layers/index.d.ts.map +1 -0
  19. package/dist/types/src/components/Palette/Palette.d.ts +20 -4
  20. package/dist/types/src/components/Palette/Palette.d.ts.map +1 -1
  21. package/dist/types/src/components/Palette/Palette.stories.d.ts +22 -0
  22. package/dist/types/src/components/Palette/Palette.stories.d.ts.map +1 -0
  23. package/dist/types/src/components/PartEditor/PartEditor.d.ts.map +1 -1
  24. package/dist/types/src/components/Properties/AlignField.d.ts +23 -0
  25. package/dist/types/src/components/Properties/AlignField.d.ts.map +1 -0
  26. package/dist/types/src/components/Properties/ClassField.d.ts +23 -0
  27. package/dist/types/src/components/Properties/ClassField.d.ts.map +1 -0
  28. package/dist/types/src/components/Properties/FontField.d.ts +7 -0
  29. package/dist/types/src/components/Properties/FontField.d.ts.map +1 -0
  30. package/dist/types/src/components/Properties/LayerField.d.ts +17 -0
  31. package/dist/types/src/components/Properties/LayerField.d.ts.map +1 -0
  32. package/dist/types/src/components/Properties/Properties.d.ts +27 -3
  33. package/dist/types/src/components/Properties/Properties.d.ts.map +1 -1
  34. package/dist/types/src/components/Properties/Properties.stories.d.ts +20 -0
  35. package/dist/types/src/components/Properties/Properties.stories.d.ts.map +1 -0
  36. package/dist/types/src/components/Properties/SceneField.d.ts +8 -0
  37. package/dist/types/src/components/Properties/SceneField.d.ts.map +1 -0
  38. package/dist/types/src/components/Properties/StyleGrid.d.ts +15 -5
  39. package/dist/types/src/components/Properties/StyleGrid.d.ts.map +1 -1
  40. package/dist/types/src/components/Properties/StyleGrid.stories.d.ts +7 -0
  41. package/dist/types/src/components/Properties/StyleGrid.stories.d.ts.map +1 -0
  42. package/dist/types/src/components/SceneLayer/SceneLayer.d.ts +31 -7
  43. package/dist/types/src/components/SceneLayer/SceneLayer.d.ts.map +1 -1
  44. package/dist/types/src/components/SceneView/Dock.d.ts +22 -0
  45. package/dist/types/src/components/SceneView/Dock.d.ts.map +1 -0
  46. package/dist/types/src/components/SceneView/Dock.stories.d.ts +15 -0
  47. package/dist/types/src/components/SceneView/Dock.stories.d.ts.map +1 -0
  48. package/dist/types/src/components/SceneView/SceneView.d.ts +33 -7
  49. package/dist/types/src/components/SceneView/SceneView.d.ts.map +1 -1
  50. package/dist/types/src/components/SceneView/SceneView.stories.d.ts +16 -6
  51. package/dist/types/src/components/SceneView/SceneView.stories.d.ts.map +1 -1
  52. package/dist/types/src/components/SceneView/SceneViewContext.d.ts +36 -4
  53. package/dist/types/src/components/SceneView/SceneViewContext.d.ts.map +1 -1
  54. package/dist/types/src/components/SceneView/Scored.stories.d.ts +4 -4
  55. package/dist/types/src/components/SceneView/Scored.stories.d.ts.map +1 -1
  56. package/dist/types/src/components/SceneView/usePointerMachine.d.ts +3 -1
  57. package/dist/types/src/components/SceneView/usePointerMachine.d.ts.map +1 -1
  58. package/dist/types/src/components/SceneView/useSceneCamera.d.ts +2 -2
  59. package/dist/types/src/components/SceneView/useSceneCamera.d.ts.map +1 -1
  60. package/dist/types/src/components/SceneView/useSceneClipboard.d.ts.map +1 -1
  61. package/dist/types/src/components/SceneView/useSceneKeys.d.ts.map +1 -1
  62. package/dist/types/src/components/SceneView/useSceneNavigation.d.ts +7 -4
  63. package/dist/types/src/components/SceneView/useSceneNavigation.d.ts.map +1 -1
  64. package/dist/types/src/components/Toolbar/Toolbar.d.ts +2 -0
  65. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  66. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  67. package/dist/types/src/components/index.d.ts +2 -0
  68. package/dist/types/src/components/index.d.ts.map +1 -1
  69. package/dist/types/src/hooks/useWheel.d.ts +5 -0
  70. package/dist/types/src/hooks/useWheel.d.ts.map +1 -1
  71. package/dist/types/src/index.d.ts +4 -1
  72. package/dist/types/src/index.d.ts.map +1 -1
  73. package/dist/types/src/model/atoms.d.ts +21 -3
  74. package/dist/types/src/model/atoms.d.ts.map +1 -1
  75. package/dist/types/src/model/projection.d.ts.map +1 -1
  76. package/dist/types/src/model/projections/constrained.d.ts +2 -1
  77. package/dist/types/src/model/projections/constrained.d.ts.map +1 -1
  78. package/dist/types/src/model/projections/dynamic.d.ts.map +1 -1
  79. package/dist/types/src/model/projections/lattice.d.ts.map +1 -1
  80. package/dist/types/src/model/registry.d.ts +21 -3
  81. package/dist/types/src/model/registry.d.ts.map +1 -1
  82. package/dist/types/src/model/store.d.ts +10 -2
  83. package/dist/types/src/model/store.d.ts.map +1 -1
  84. package/dist/types/src/model/types.d.ts +699 -338
  85. package/dist/types/src/model/types.d.ts.map +1 -1
  86. package/dist/types/src/playwright/SceneManager.d.ts +1 -1
  87. package/dist/types/src/playwright/SceneManager.d.ts.map +1 -1
  88. package/dist/types/src/utils/builder.d.ts +22 -41
  89. package/dist/types/src/utils/builder.d.ts.map +1 -1
  90. package/dist/types/src/utils/camera.d.ts +19 -10
  91. package/dist/types/src/utils/camera.d.ts.map +1 -1
  92. package/dist/types/src/utils/clipboard.d.ts +4 -2
  93. package/dist/types/src/utils/clipboard.d.ts.map +1 -1
  94. package/dist/types/src/utils/diagram.d.ts.map +1 -1
  95. package/dist/types/src/utils/group.d.ts +14 -0
  96. package/dist/types/src/utils/group.d.ts.map +1 -0
  97. package/dist/types/src/utils/group.test.d.ts +2 -0
  98. package/dist/types/src/utils/group.test.d.ts.map +1 -0
  99. package/dist/types/src/utils/gutter-route.d.ts +7 -0
  100. package/dist/types/src/utils/gutter-route.d.ts.map +1 -1
  101. package/dist/types/src/utils/hit.d.ts +3 -20
  102. package/dist/types/src/utils/hit.d.ts.map +1 -1
  103. package/dist/types/src/utils/index.d.ts +3 -0
  104. package/dist/types/src/utils/index.d.ts.map +1 -1
  105. package/dist/types/src/utils/lattice.d.ts +5 -0
  106. package/dist/types/src/utils/lattice.d.ts.map +1 -1
  107. package/dist/types/src/utils/layers.d.ts +35 -0
  108. package/dist/types/src/utils/layers.d.ts.map +1 -0
  109. package/dist/types/src/utils/layers.test.d.ts +2 -0
  110. package/dist/types/src/utils/layers.test.d.ts.map +1 -0
  111. package/dist/types/src/utils/parts.d.ts +25 -9
  112. package/dist/types/src/utils/parts.d.ts.map +1 -1
  113. package/dist/types/src/utils/ports.d.ts +2 -0
  114. package/dist/types/src/utils/ports.d.ts.map +1 -1
  115. package/dist/types/src/utils/properties.d.ts +4 -3
  116. package/dist/types/src/utils/properties.d.ts.map +1 -1
  117. package/dist/types/src/utils/route.d.ts +5 -0
  118. package/dist/types/src/utils/route.d.ts.map +1 -1
  119. package/dist/types/src/utils/scenes.d.ts +14 -0
  120. package/dist/types/src/utils/scenes.d.ts.map +1 -0
  121. package/dist/types/src/utils/scenes.test.d.ts +2 -0
  122. package/dist/types/src/utils/scenes.test.d.ts.map +1 -0
  123. package/dist/types/src/utils/shapes.d.ts +23 -9
  124. package/dist/types/src/utils/shapes.d.ts.map +1 -1
  125. package/dist/types/src/utils/style.d.ts +29 -6
  126. package/dist/types/src/utils/style.d.ts.map +1 -1
  127. package/dist/types/src/utils/style.test.d.ts +2 -0
  128. package/dist/types/src/utils/style.test.d.ts.map +1 -0
  129. package/dist/types/src/utils/testing.d.ts +2 -2
  130. package/dist/types/src/utils/testing.d.ts.map +1 -1
  131. package/dist/types/src/utils/undo.d.ts +15 -4
  132. package/dist/types/src/utils/undo.d.ts.map +1 -1
  133. package/dist/types/tsconfig.tsbuildinfo +1 -1
  134. package/package.json +20 -26
  135. package/src/components/About/About.stories.tsx +32 -0
  136. package/src/components/About/About.tsx +38 -0
  137. package/src/components/About/index.ts +5 -0
  138. package/src/components/Breadcrumbs/Breadcrumbs.tsx +17 -3
  139. package/src/components/ControlFrame/ControlFrame.tsx +138 -82
  140. package/src/components/Grid/Grid.stories.tsx +1 -1
  141. package/src/components/Layers/Layers.stories.tsx +131 -0
  142. package/src/components/Layers/Layers.tsx +216 -0
  143. package/src/components/Layers/index.ts +5 -0
  144. package/src/components/Palette/Palette.stories.tsx +135 -0
  145. package/src/components/Palette/Palette.tsx +230 -39
  146. package/src/components/PartEditor/PartEditor.tsx +4 -3
  147. package/src/components/Properties/AlignField.tsx +117 -0
  148. package/src/components/Properties/ClassField.tsx +44 -0
  149. package/src/components/Properties/FontField.tsx +73 -0
  150. package/src/components/Properties/LayerField.tsx +61 -0
  151. package/src/components/Properties/Properties.stories.tsx +113 -0
  152. package/src/components/Properties/Properties.tsx +240 -60
  153. package/src/components/Properties/SceneField.tsx +22 -0
  154. package/src/components/Properties/StyleGrid.stories.tsx +50 -0
  155. package/src/components/Properties/StyleGrid.tsx +54 -26
  156. package/src/components/SceneLayer/SceneLayer.tsx +497 -188
  157. package/src/components/SceneView/Constrained.stories.tsx +1 -1
  158. package/src/components/SceneView/Dock.stories.tsx +95 -0
  159. package/src/components/SceneView/Dock.tsx +146 -0
  160. package/src/components/SceneView/Dynamic.stories.tsx +1 -1
  161. package/src/components/SceneView/SceneView.stories.tsx +170 -18
  162. package/src/components/SceneView/SceneView.tsx +565 -151
  163. package/src/components/SceneView/SceneViewContext.ts +23 -2
  164. package/src/components/SceneView/Scored.stories.tsx +11 -11
  165. package/src/components/SceneView/usePointerMachine.ts +80 -20
  166. package/src/components/SceneView/useSceneCamera.ts +15 -8
  167. package/src/components/SceneView/useSceneClipboard.ts +4 -0
  168. package/src/components/SceneView/useSceneKeys.ts +6 -4
  169. package/src/components/SceneView/useSceneNavigation.ts +44 -33
  170. package/src/components/Toolbar/Toolbar.stories.tsx +14 -15
  171. package/src/components/Toolbar/Toolbar.tsx +15 -4
  172. package/src/components/index.ts +2 -0
  173. package/src/hooks/useWheel.ts +35 -0
  174. package/src/index.ts +4 -3
  175. package/src/model/atoms.ts +27 -3
  176. package/src/model/projection.ts +5 -0
  177. package/src/model/projections/constrained.test.ts +18 -10
  178. package/src/model/projections/constrained.ts +19 -8
  179. package/src/model/projections/dynamic.ts +5 -2
  180. package/src/model/projections/lattice.ts +15 -3
  181. package/src/model/registry.test.ts +14 -9
  182. package/src/model/registry.ts +39 -34
  183. package/src/model/store.ts +12 -2
  184. package/src/model/types.ts +124 -36
  185. package/src/playwright/SceneManager.ts +2 -2
  186. package/src/playwright/create.spec.ts +5 -3
  187. package/src/playwright/demo.spec.ts +2 -2
  188. package/src/playwright/lattice.spec.ts +4 -5
  189. package/src/playwright/scene.spec.ts +27 -25
  190. package/src/utils/builder.test.ts +46 -9
  191. package/src/utils/builder.ts +42 -18
  192. package/src/utils/camera.test.ts +22 -51
  193. package/src/utils/camera.ts +39 -32
  194. package/src/utils/clipboard.test.ts +23 -2
  195. package/src/utils/clipboard.ts +8 -4
  196. package/src/utils/diagram.test.ts +3 -1
  197. package/src/utils/diagram.ts +3 -25
  198. package/src/utils/group.test.ts +69 -0
  199. package/src/utils/group.ts +94 -0
  200. package/src/utils/gutter-route.test.ts +49 -0
  201. package/src/utils/gutter-route.ts +142 -16
  202. package/src/utils/hit.test.ts +4 -38
  203. package/src/utils/hit.ts +4 -26
  204. package/src/utils/index.ts +3 -0
  205. package/src/utils/lattice.ts +7 -1
  206. package/src/utils/layers.test.ts +139 -0
  207. package/src/utils/layers.ts +175 -0
  208. package/src/utils/parts.test.ts +66 -32
  209. package/src/utils/parts.ts +63 -41
  210. package/src/utils/ports.ts +7 -4
  211. package/src/utils/properties.test.ts +23 -6
  212. package/src/utils/properties.ts +66 -16
  213. package/src/utils/route.test.ts +51 -2
  214. package/src/utils/route.ts +133 -23
  215. package/src/utils/scenes.test.ts +38 -0
  216. package/src/utils/scenes.ts +54 -0
  217. package/src/utils/shapes.test.ts +33 -8
  218. package/src/utils/shapes.ts +51 -35
  219. package/src/utils/style.test.ts +54 -0
  220. package/src/utils/style.ts +153 -40
  221. package/src/utils/testing.test.ts +3 -3
  222. package/src/utils/testing.ts +21 -30
  223. package/src/utils/undo.test.ts +25 -2
  224. package/src/utils/undo.ts +50 -13
  225. package/dist/lib/chunk-Grid.mjs +0 -99
  226. package/dist/lib/chunk-Grid.mjs.map +0 -1
  227. package/dist/lib/scene.mjs +0 -6835
  228. package/dist/lib/scene.mjs.map +0 -1
  229. package/dist/lib/types.mjs +0 -16
  230. package/dist/lib/types.mjs.map +0 -1
  231. package/dist/types/src/archive/components/Canvas/Canvas.d.ts +0 -15
  232. package/dist/types/src/archive/components/Canvas/Canvas.d.ts.map +0 -1
  233. package/dist/types/src/archive/components/Canvas/Canvas.stories.d.ts +0 -18
  234. package/dist/types/src/archive/components/Canvas/Canvas.stories.d.ts.map +0 -1
  235. package/dist/types/src/archive/components/Canvas/index.d.ts +0 -2
  236. package/dist/types/src/archive/components/Canvas/index.d.ts.map +0 -1
  237. package/dist/types/src/archive/components/CellGrid/CellGrid.d.ts +0 -21
  238. package/dist/types/src/archive/components/CellGrid/CellGrid.d.ts.map +0 -1
  239. package/dist/types/src/archive/components/CellGrid/CellGrid.stories.d.ts +0 -21
  240. package/dist/types/src/archive/components/CellGrid/CellGrid.stories.d.ts.map +0 -1
  241. package/dist/types/src/archive/components/CellGrid/headers/Ruler.d.ts +0 -15
  242. package/dist/types/src/archive/components/CellGrid/headers/Ruler.d.ts.map +0 -1
  243. package/dist/types/src/archive/components/CellGrid/headers/TrackHeader.d.ts +0 -19
  244. package/dist/types/src/archive/components/CellGrid/headers/TrackHeader.d.ts.map +0 -1
  245. package/dist/types/src/archive/components/CellGrid/headers/index.d.ts +0 -3
  246. package/dist/types/src/archive/components/CellGrid/headers/index.d.ts.map +0 -1
  247. package/dist/types/src/archive/components/CellGrid/index.d.ts +0 -6
  248. package/dist/types/src/archive/components/CellGrid/index.d.ts.map +0 -1
  249. package/dist/types/src/archive/components/CellGrid/input/index.d.ts +0 -3
  250. package/dist/types/src/archive/components/CellGrid/input/index.d.ts.map +0 -1
  251. package/dist/types/src/archive/components/CellGrid/input/pointer.d.ts +0 -33
  252. package/dist/types/src/archive/components/CellGrid/input/pointer.d.ts.map +0 -1
  253. package/dist/types/src/archive/components/CellGrid/input/wheel.d.ts +0 -14
  254. package/dist/types/src/archive/components/CellGrid/input/wheel.d.ts.map +0 -1
  255. package/dist/types/src/archive/components/CellGrid/render/index.d.ts +0 -3
  256. package/dist/types/src/archive/components/CellGrid/render/index.d.ts.map +0 -1
  257. package/dist/types/src/archive/components/CellGrid/render/overlay-layer.d.ts +0 -21
  258. package/dist/types/src/archive/components/CellGrid/render/overlay-layer.d.ts.map +0 -1
  259. package/dist/types/src/archive/components/CellGrid/render/static-layer.d.ts +0 -36
  260. package/dist/types/src/archive/components/CellGrid/render/static-layer.d.ts.map +0 -1
  261. package/dist/types/src/archive/components/CellGrid/state/atoms.d.ts +0 -23
  262. package/dist/types/src/archive/components/CellGrid/state/atoms.d.ts.map +0 -1
  263. package/dist/types/src/archive/components/CellGrid/state/index.d.ts +0 -4
  264. package/dist/types/src/archive/components/CellGrid/state/index.d.ts.map +0 -1
  265. package/dist/types/src/archive/components/CellGrid/state/types.d.ts +0 -39
  266. package/dist/types/src/archive/components/CellGrid/state/types.d.ts.map +0 -1
  267. package/dist/types/src/archive/components/CellGrid/state/viewport.d.ts +0 -52
  268. package/dist/types/src/archive/components/CellGrid/state/viewport.d.ts.map +0 -1
  269. package/dist/types/src/archive/components/CellGrid/state/viewport.test.d.ts +0 -2
  270. package/dist/types/src/archive/components/CellGrid/state/viewport.test.d.ts.map +0 -1
  271. package/dist/types/src/archive/components/FPS.d.ts +0 -9
  272. package/dist/types/src/archive/components/FPS.d.ts.map +0 -1
  273. package/dist/types/src/archive/components/Grid/Grid.d.ts +0 -6
  274. package/dist/types/src/archive/components/Grid/Grid.d.ts.map +0 -1
  275. package/dist/types/src/archive/components/Grid/index.d.ts +0 -2
  276. package/dist/types/src/archive/components/Grid/index.d.ts.map +0 -1
  277. package/dist/types/src/archive/components/index.d.ts +0 -5
  278. package/dist/types/src/archive/components/index.d.ts.map +0 -1
  279. package/dist/types/src/archive/hooks/index.d.ts +0 -5
  280. package/dist/types/src/archive/hooks/index.d.ts.map +0 -1
  281. package/dist/types/src/archive/hooks/projection.d.ts +0 -60
  282. package/dist/types/src/archive/hooks/projection.d.ts.map +0 -1
  283. package/dist/types/src/archive/hooks/useCanvasContext.d.ts +0 -13
  284. package/dist/types/src/archive/hooks/useCanvasContext.d.ts.map +0 -1
  285. package/dist/types/src/archive/hooks/useDrag.d.ts +0 -6
  286. package/dist/types/src/archive/hooks/useDrag.d.ts.map +0 -1
  287. package/dist/types/src/archive/hooks/useWheel.d.ts +0 -8
  288. package/dist/types/src/archive/hooks/useWheel.d.ts.map +0 -1
  289. package/dist/types/src/archive/index.d.ts +0 -5
  290. package/dist/types/src/archive/index.d.ts.map +0 -1
  291. package/dist/types/src/archive/types.d.ts +0 -19
  292. package/dist/types/src/archive/types.d.ts.map +0 -1
  293. package/dist/types/src/archive/util/index.d.ts +0 -4
  294. package/dist/types/src/archive/util/index.d.ts.map +0 -1
  295. package/dist/types/src/archive/util/svg-path.d.ts +0 -4
  296. package/dist/types/src/archive/util/svg-path.d.ts.map +0 -1
  297. package/dist/types/src/archive/util/svg.d.ts +0 -32
  298. package/dist/types/src/archive/util/svg.d.ts.map +0 -1
  299. package/dist/types/src/archive/util/svg.stories.d.ts +0 -15
  300. package/dist/types/src/archive/util/svg.stories.d.ts.map +0 -1
  301. package/dist/types/src/archive/util/util.d.ts +0 -17
  302. package/dist/types/src/archive/util/util.d.ts.map +0 -1
  303. package/dist/types/src/scene.d.ts +0 -5
  304. package/dist/types/src/scene.d.ts.map +0 -1
  305. package/src/archive/components/Canvas/Canvas.stories.tsx +0 -111
  306. package/src/archive/components/Canvas/Canvas.tsx +0 -87
  307. package/src/archive/components/Canvas/index.ts +0 -5
  308. package/src/archive/components/CellGrid/CellGrid.stories.tsx +0 -239
  309. package/src/archive/components/CellGrid/CellGrid.tsx +0 -270
  310. package/src/archive/components/CellGrid/headers/Ruler.tsx +0 -71
  311. package/src/archive/components/CellGrid/headers/TrackHeader.tsx +0 -58
  312. package/src/archive/components/CellGrid/headers/index.ts +0 -6
  313. package/src/archive/components/CellGrid/index.ts +0 -9
  314. package/src/archive/components/CellGrid/input/index.ts +0 -6
  315. package/src/archive/components/CellGrid/input/pointer.ts +0 -236
  316. package/src/archive/components/CellGrid/input/wheel.ts +0 -68
  317. package/src/archive/components/CellGrid/render/index.ts +0 -6
  318. package/src/archive/components/CellGrid/render/overlay-layer.ts +0 -66
  319. package/src/archive/components/CellGrid/render/static-layer.ts +0 -112
  320. package/src/archive/components/CellGrid/state/atoms.ts +0 -43
  321. package/src/archive/components/CellGrid/state/index.ts +0 -7
  322. package/src/archive/components/CellGrid/state/types.ts +0 -40
  323. package/src/archive/components/CellGrid/state/viewport.test.ts +0 -50
  324. package/src/archive/components/CellGrid/state/viewport.ts +0 -94
  325. package/src/archive/components/FPS.tsx +0 -98
  326. package/src/archive/components/Grid/Grid.tsx +0 -17
  327. package/src/archive/components/Grid/index.ts +0 -5
  328. package/src/archive/components/index.ts +0 -8
  329. package/src/archive/hooks/index.ts +0 -8
  330. package/src/archive/hooks/projection.tsx +0 -156
  331. package/src/archive/hooks/useCanvasContext.ts +0 -32
  332. package/src/archive/hooks/useDrag.tsx +0 -96
  333. package/src/archive/hooks/useWheel.tsx +0 -80
  334. package/src/archive/index.ts +0 -8
  335. package/src/archive/types.ts +0 -14
  336. package/src/archive/util/index.ts +0 -7
  337. package/src/archive/util/svg-path.ts +0 -13
  338. package/src/archive/util/svg.stories.tsx +0 -46
  339. package/src/archive/util/svg.tsx +0 -128
  340. package/src/archive/util/util.ts +0 -50
  341. package/src/scene.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/model/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/model/types.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare class SceneManager {
17
17
  nodeCount(): Promise<number>;
18
18
  /** Right edge of the rightmost node in screen space: canvas beyond it is empty whatever the layout. */
19
19
  nodesRight(): Promise<number>;
20
- /** The debug bar's zoom readout, as whole percent; the navigation bar carries the path and depth. */
20
+ /** The debug bar's zoom readout, as whole percent; the navigation bar carries the path. */
21
21
  zoom(): Promise<number>;
22
22
  /** Ids of the nodes whose frame shows the selection border. */
23
23
  selectedNodes(): Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"SceneManager.d.ts","sourceRoot":"","sources":["../../../../src/playwright/SceneManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE3D,KAAK,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,8GAA8G;AAC9G,qBAAa,YAAY;;IAGX,QAAQ,CAAC,IAAI,EAAE,IAAI;IAF/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAEvB,YAAqB,IAAI,EAAE,IAAI,EAE9B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAI3B;IAEK,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAMxC;IAED,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAExB;IAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3B;IAED,uGAAuG;IACjG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlC;IAED,qGAAqG;IAC/F,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAO5B;IAED,+DAA+D;IAC/D,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAMjC;IAED,+DAA+D;IAC/D,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3B;IAEK,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzC;IAED,uDAAuD;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5B;IAED,kEAAkE;IAC5D,MAAM,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAErC;IAEK,OAAO,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtC;IASD,iGAAiG;IAC3F,IAAI,CAAC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAazG;IAED,oFAAoF;IAC9E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAmBtE;CACF"}
1
+ {"version":3,"file":"SceneManager.d.ts","sourceRoot":"","sources":["../../../../src/playwright/SceneManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE3D,KAAK,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,8GAA8G;AAC9G,qBAAa,YAAY;;IAGX,QAAQ,CAAC,IAAI,EAAE,IAAI;IAF/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAEvB,YAAqB,IAAI,EAAE,IAAI,EAE9B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAI3B;IAEK,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAMxC;IAED,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAExB;IAED,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3B;IAED,uGAAuG;IACjG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlC;IAED,2FAA2F;IACrF,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAO5B;IAED,+DAA+D;IAC/D,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAMjC;IAED,+DAA+D;IAC/D,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAE3B;IAEK,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzC;IAED,uDAAuD;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5B;IAED,kEAAkE;IAC5D,MAAM,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAErC;IAEK,OAAO,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtC;IASD,iGAAiG;IAC3F,IAAI,CAAC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAazG;IAED,oFAAoF;IAC9E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAmBtE;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { type NodeRegistry } from '../model/registry.ts';
2
- import { type BuiltinNode, type BuiltinNodeType, type Link, type LinkType, type NodeBase, type PortalNode, type Scene, type SceneId } from '../model/types.ts';
2
+ import { type BuiltinNode, type BuiltinNodeType, type FrameNode, type Link, type LinkType, type NodeBase, type Scene, type SceneId } from '../model/types.ts';
3
3
  /** Top-left box geometry; the builder stores the centre. */
4
4
  export type Box = {
5
5
  x: number;
@@ -50,15 +50,15 @@ export declare class SceneElement {
50
50
  readonly elements: readonly BuilderElement[];
51
51
  readonly frame?: Box | undefined;
52
52
  readonly sceneName?: string | undefined;
53
- readonly portal: NodeProperties<PortalNode>;
53
+ readonly portal: NodeProperties<FrameNode>;
54
54
  readonly kind = "scene";
55
- constructor(id: SceneId, elements: readonly BuilderElement[], frame?: Box | undefined, sceneName?: string | undefined, portal?: NodeProperties<PortalNode>);
55
+ constructor(id: SceneId, elements: readonly BuilderElement[], frame?: Box | undefined, sceneName?: string | undefined, portal?: NodeProperties<FrameNode>);
56
56
  /** The scene's name (breadcrumbs, previews). */
57
57
  name(name: string): SceneElement;
58
58
  /** Where the scene shape sits in its parent scene; required for a nested scene. */
59
59
  at(box: Box): SceneElement;
60
60
  /** The scene shape's own properties (label, contents, style). */
61
- properties(values: NodeProperties<PortalNode>): SceneElement;
61
+ properties(values: NodeProperties<FrameNode>): SceneElement;
62
62
  /** Every scene of the tree, the root first, checked against `registry`'s node schemas. */
63
63
  build(registry?: NodeRegistry): SceneTree;
64
64
  }
@@ -96,15 +96,20 @@ export declare const SceneBuilder: {
96
96
  readonly accepts?: "any" | "in" | "out" | undefined;
97
97
  }[] | undefined;
98
98
  readonly portsPerSide?: number | undefined;
99
+ readonly layer?: string | undefined;
100
+ readonly class?: string | undefined;
99
101
  readonly style?: {
100
102
  readonly hue?: string | undefined;
103
+ readonly lineStyle?: "dashed" | "dotted" | "solid" | undefined;
101
104
  readonly tone?: 0 | 1 | 2 | 3 | undefined;
102
105
  readonly rounded?: boolean | undefined;
103
106
  readonly fill?: boolean | undefined;
104
107
  readonly border?: boolean | undefined;
105
108
  readonly guide?: boolean | undefined;
109
+ readonly fontFamily?: "default" | "monospace" | undefined;
106
110
  readonly fontSize?: number | undefined;
107
- readonly className?: string | undefined;
111
+ readonly alignHorizontal?: "center" | "left" | "right" | undefined;
112
+ readonly alignVertical?: "bottom" | "middle" | "top" | undefined;
108
113
  } | undefined;
109
114
  readonly label?: string | undefined;
110
115
  readonly type: "rect";
@@ -128,53 +133,24 @@ export declare const SceneBuilder: {
128
133
  readonly accepts?: "any" | "in" | "out" | undefined;
129
134
  }[] | undefined;
130
135
  readonly portsPerSide?: number | undefined;
136
+ readonly layer?: string | undefined;
137
+ readonly class?: string | undefined;
131
138
  readonly style?: {
132
139
  readonly hue?: string | undefined;
140
+ readonly lineStyle?: "dashed" | "dotted" | "solid" | undefined;
133
141
  readonly tone?: 0 | 1 | 2 | 3 | undefined;
134
142
  readonly rounded?: boolean | undefined;
135
143
  readonly fill?: boolean | undefined;
136
144
  readonly border?: boolean | undefined;
137
145
  readonly guide?: boolean | undefined;
146
+ readonly fontFamily?: "default" | "monospace" | undefined;
138
147
  readonly fontSize?: number | undefined;
139
- readonly className?: string | undefined;
148
+ readonly alignHorizontal?: "center" | "left" | "right" | undefined;
149
+ readonly alignVertical?: "bottom" | "middle" | "top" | undefined;
140
150
  } | undefined;
141
151
  readonly type: "ellipse";
142
152
  readonly label?: string | undefined;
143
153
  }>;
144
- class: (id: string, box: Box) => NodeElement<{
145
- readonly id: string;
146
- readonly z: string;
147
- readonly locked?: boolean | undefined;
148
- readonly center: {
149
- readonly x: number;
150
- readonly y: number;
151
- };
152
- readonly size: {
153
- readonly width: number;
154
- readonly height: number;
155
- };
156
- readonly ports?: readonly {
157
- readonly id: string;
158
- readonly side: "e" | "n" | "s" | "w";
159
- readonly offset: number;
160
- readonly accepts?: "any" | "in" | "out" | undefined;
161
- }[] | undefined;
162
- readonly portsPerSide?: number | undefined;
163
- readonly style?: {
164
- readonly hue?: string | undefined;
165
- readonly tone?: 0 | 1 | 2 | 3 | undefined;
166
- readonly rounded?: boolean | undefined;
167
- readonly fill?: boolean | undefined;
168
- readonly border?: boolean | undefined;
169
- readonly guide?: boolean | undefined;
170
- readonly fontSize?: number | undefined;
171
- readonly className?: string | undefined;
172
- } | undefined;
173
- readonly type: "class";
174
- readonly name: string;
175
- readonly attributes: readonly string[];
176
- readonly methods: readonly string[];
177
- }>;
178
154
  note: (id: string, box: Box) => NodeElement<{
179
155
  readonly id: string;
180
156
  readonly z: string;
@@ -194,15 +170,20 @@ export declare const SceneBuilder: {
194
170
  readonly accepts?: "any" | "in" | "out" | undefined;
195
171
  }[] | undefined;
196
172
  readonly portsPerSide?: number | undefined;
173
+ readonly layer?: string | undefined;
174
+ readonly class?: string | undefined;
197
175
  readonly style?: {
198
176
  readonly hue?: string | undefined;
177
+ readonly lineStyle?: "dashed" | "dotted" | "solid" | undefined;
199
178
  readonly tone?: 0 | 1 | 2 | 3 | undefined;
200
179
  readonly rounded?: boolean | undefined;
201
180
  readonly fill?: boolean | undefined;
202
181
  readonly border?: boolean | undefined;
203
182
  readonly guide?: boolean | undefined;
183
+ readonly fontFamily?: "default" | "monospace" | undefined;
204
184
  readonly fontSize?: number | undefined;
205
- readonly className?: string | undefined;
185
+ readonly alignHorizontal?: "center" | "left" | "right" | undefined;
186
+ readonly alignVertical?: "bottom" | "middle" | "top" | undefined;
206
187
  } | undefined;
207
188
  readonly type: "note";
208
189
  readonly text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../src/utils/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../src/utils/builder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { type Bounds, type Camera, type Node, type Point, type Size } from '../model/types.ts';
2
2
  export declare const MIN_ZOOM: number;
3
3
  export declare const MAX_ZOOM = 32;
4
+ /** True size: one scene px is one screen px, at every level. Fit never zooms past it. */
5
+ export declare const NOMINAL_ZOOM = 1;
4
6
  export declare const clampZoom: (zoom: number) => number;
5
7
  export declare const sceneToScreen: (camera: Camera, point: Point) => Point;
6
8
  export declare const screenToScene: (camera: Camera, point: Point) => Point;
@@ -18,15 +20,14 @@ export declare const fitBounds: (bounds: Bounds, viewport: Size, inset?: number,
18
20
  /** Uniform scale that maps a child-space region into the portal node (letterboxed). */
19
21
  export declare const portalScale: (portal: Node, region: Bounds) => number;
20
22
  /**
21
- * The frame a portal gives its child: the child-space region that maps exactly onto the portal. It is
22
- * the portal's box scaled by the smallest power of the grid ratio, at least one, that contains the child's
23
- * derived bounds, placed on the major grid scaled by that factor as near their centre as containing them
24
- * allows. A power of the ratio maps every child grid level onto a parent level (the child's major grid is
25
- * the parent's minor one, one level down), and placing the frame on the scaled grid puts the child's lines
26
- * on the parent's, not merely at their spacing, so the grids stay aligned through a drill-in. Drilling in
27
- * shows this frame; a portal draws the child centred in it.
23
+ * The frame a portal gives its child: the child-space region, of the portal's proportions, that maps onto
24
+ * the portal's box. It is the child's content (`child`) centred in the smallest such region that holds it,
25
+ * and never smaller than the box itself, so the preview shrinks a large scene to fit but never magnifies a
26
+ * small one. Every scene keeps its own scale: the frame only says where the child sits under the portal,
27
+ * and entering it maps the camera through the frame, so a shape is the same size at the same zoom on any
28
+ * level. An empty child is the box itself, centred on its origin.
28
29
  */
29
- export declare const portalFrame: (portal: Node, child: Bounds, unit?: number, ratio?: number) => Bounds;
30
+ export declare const portalFrame: (portal: Node, child: Bounds | undefined) => Bounds;
30
31
  /** Child-scene CSS transform inside a portal node whose own origin is the node's top-left. */
31
32
  export declare const portalTransform: (portal: Node, frame: Bounds) => string;
32
33
  /**
@@ -36,10 +37,18 @@ export declare const portalTransform: (portal: Node, frame: Bounds) => string;
36
37
  export declare const enterPortal: (camera: Camera, portal: Node, child: Bounds) => Camera;
37
38
  /** Inverse of `enterPortal`. */
38
39
  export declare const exitPortal: (camera: Camera, portal: Node, child: Bounds) => Camera;
40
+ /**
41
+ * The opacity of a layer around a portal, from how much of the viewport the portal fills on its tighter axis:
42
+ * 1 while it is small, falling to 0 as it grows towards filling the view. A wheel zoom, a drill-in and a
43
+ * drill-out all move the camera, so all three fade alike.
44
+ */
45
+ export declare const layerOpacity: (camera: Camera, bounds: Bounds, viewport: Size) => number;
39
46
  /** Fraction of the viewport covered by the bounds' screen rectangle. */
40
47
  export declare const coverage: (camera: Camera, bounds: Bounds, viewport: Size) => number;
41
48
  export declare const MIN_ANIMATION_MS = 250;
42
49
  export declare const MAX_ANIMATION_MS = 800;
43
- /** Animate between cameras; returns a cancel function. */
44
- export declare const animateCamera: (from: Camera, to: Camera, viewport: Size, apply: (camera: Camera) => void, done?: () => void) => (() => void);
50
+ /** How long a drill in or out takes, either way, so entering and leaving a scene feel the same. */
51
+ export declare const DRILL_ANIMATION_MS = 1000;
52
+ /** Animate between cameras, over `fixedDuration` ms or a time fitted to the distance; returns a cancel function. */
53
+ export declare const animateCamera: (from: Camera, to: Camera, viewport: Size, apply: (camera: Camera) => void, done?: () => void, fixedDuration?: number) => (() => void);
45
54
  //# sourceMappingURL=camera.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../src/utils/camera.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,MAAM,EAGX,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,IAAI,EACV,MAAM,mBAAmB,CAAC;AAG3B,eAAO,MAAM,QAAQ,QAAS,CAAC;AAC/B,eAAO,MAAM,QAAQ,KAAK,CAAC;AAE3B,eAAO,MAAM,SAAS,SAAU,MAAM,WAAiD,CAAC;AAExF,eAAO,MAAM,aAAa,WAAY,MAAM,SAAS,KAAK,KAAG,KAG3D,CAAC;AAEH,eAAO,MAAM,aAAa,WAAY,MAAM,SAAS,KAAK,KAAG,KAG3D,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,MAAM,WAAY,MAAM,UAAU,KAAK,QAAQ,MAAM,KAAG,MAIpE,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,MAAM,SAAS,KAAK,KAAG,MAInD,CAAC;AAEH,eAAO,MAAM,eAAe,WAAY,MAAM,WAAoE,CAAC;AAEnH,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,KAG5C,CAAC;AAEH,eAAO,MAAM,YAAY,WAAY,MAAM,UAAU,MAAM,KAAG,MAG7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,WAAY,MAAM,YAAY,IAAI,uCAAkC,MASzF,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,WAAY,IAAI,UAAU,MAAM,WAGvD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,WAAY,IAAI,SAAS,MAAM,oCAAgD,MAYtG,CAAC;AASF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,WAAY,IAAI,SAAS,MAAM,WAG1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,WAAY,MAAM,UAAU,IAAI,SAAS,MAAM,KAAG,MAQzE,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,UAAU,WAAY,MAAM,UAAU,IAAI,SAAS,MAAM,KAAG,MAQxE,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,QAAQ,WAAY,MAAM,UAAU,MAAM,YAAY,IAAI,WAQtE,CAAC;AAcF,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,0DAA0D;AAC1D,eAAO,MAAM,aAAa,SAClB,MAAM,MACR,MAAM,YACA,IAAI,SACP,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,SACxB,MAAM,IAAI,KAChB,CAAC,MAAM,IAAI,CAiBb,CAAC"}
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../src/utils/camera.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG/F,eAAO,MAAM,QAAQ,QAAS,CAAC;AAC/B,eAAO,MAAM,QAAQ,KAAK,CAAC;AAE3B,yFAAyF;AACzF,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,eAAO,MAAM,SAAS,SAAU,MAAM,WAAiD,CAAC;AAExF,eAAO,MAAM,aAAa,WAAY,MAAM,SAAS,KAAK,KAAG,KAG3D,CAAC;AAEH,eAAO,MAAM,aAAa,WAAY,MAAM,SAAS,KAAK,KAAG,KAG3D,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,MAAM,WAAY,MAAM,UAAU,KAAK,QAAQ,MAAM,KAAG,MAIpE,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,MAAM,SAAS,KAAK,KAAG,MAInD,CAAC;AAEH,eAAO,MAAM,eAAe,WAAY,MAAM,WAAoE,CAAC;AAEnH,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,KAG5C,CAAC;AAEH,eAAO,MAAM,YAAY,WAAY,MAAM,UAAU,MAAM,KAAG,MAG7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,WAAY,MAAM,YAAY,IAAI,uCAAkC,MASzF,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,WAAW,WAAY,IAAI,UAAU,MAAM,WAGvD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,WAAY,IAAI,SAAS,MAAM,GAAG,SAAS,KAAG,MAUrE,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,WAAY,IAAI,SAAS,MAAM,WAG1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,WAAY,MAAM,UAAU,IAAI,SAAS,MAAM,KAAG,MAQzE,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,UAAU,WAAY,MAAM,UAAU,IAAI,SAAS,MAAM,KAAG,MAQxE,CAAC;AAOF;;;;GAIG;AACH,eAAO,MAAM,YAAY,WAAY,MAAM,UAAU,MAAM,YAAY,IAAI,KAAG,MAM7E,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,QAAQ,WAAY,MAAM,UAAU,MAAM,YAAY,IAAI,WAQtE,CAAC;AAcF,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,oHAAoH;AACpH,eAAO,MAAM,aAAa,SAClB,MAAM,MACR,MAAM,YACA,IAAI,SACP,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,SACxB,MAAM,IAAI,kBACD,MAAM,KACrB,CAAC,MAAM,IAAI,CAiBb,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type Bounds, type ElementId, type Intent, type Link, type Node, type Point, type Scene } from '../model/types.ts';
1
+ import { type Bounds, type ElementId, type Intent, type LayerId, type Link, type Node, type Point, type Scene } from '../model/types.ts';
2
2
  export type Clipboard = {
3
3
  nodes: Node[];
4
4
  /** Links whose both ends are in `nodes`. */
@@ -17,13 +17,15 @@ export type PasteOptions = {
17
17
  /** Z keys for the pasted nodes and links, above the scene. */
18
18
  nodeZ: (index: number) => string;
19
19
  linkZ: (index: number) => string;
20
+ /** The layer the pasted elements go on; unset, each keeps its own. */
21
+ layer?: LayerId;
20
22
  };
21
23
  export type Paste = {
22
24
  intent: Intent;
23
25
  ids: ElementId[];
24
26
  };
25
27
  /** The batch that recreates the fragment with fresh ids at `offset`, and the ids it will create. */
26
- export declare const pasteFragment: ({ clipboard, offset, createId, nodeZ, linkZ }: PasteOptions) => Paste;
28
+ export declare const pasteFragment: ({ clipboard, offset, createId, nodeZ, linkZ, layer }: PasteOptions) => Paste;
27
29
  /**
28
30
  * The batch that copies the selected nodes (and the links between them) `offset` away, above everything
29
31
  * else, and the ids it creates; nothing when the selection holds no node.
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../../src/utils/clipboard.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,SAAS,EAEd,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,KAAK,EAEX,MAAM,mBAAmB,CAAC;AAK3B,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,4CAA4C;IAC5C,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,aAAa,UAAW,KAAK,aAAa,QAAQ,CAAC,SAAS,CAAC,KAAG,SAAS,GAAG,SAexF,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,MAAM,GAAG,SAClB,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,kEAAkE;IAClE,MAAM,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,8DAA8D;IAC9D,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAEzD,oGAAoG;AACpG,eAAO,MAAM,aAAa,kDAAmD,YAAY,KAAG,KA6B3F,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,UACtB,KAAK,aACD,QAAQ,CAAC,SAAS,CAAC,UACtB,KAAK,YACH,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KACnC,KAAK,GAAG,SAcV,CAAC"}
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../../src/utils/clipboard.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,SAAS,EAEd,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,KAAK,EAEX,MAAM,mBAAmB,CAAC;AAK3B,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,4CAA4C;IAC5C,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,aAAa,UAAW,KAAK,aAAa,QAAQ,CAAC,SAAS,CAAC,KAAG,SAAS,GAAG,SAexF,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,MAAM,GAAG,SAClB,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,kEAAkE;IAClE,MAAM,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,8DAA8D;IAC9D,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAEzD,oGAAoG;AACpG,eAAO,MAAM,aAAa,yDAA0D,YAAY,KAAG,KA8BlG,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,UACtB,KAAK,aACD,QAAQ,CAAC,SAAS,CAAC,UACtB,KAAK,YACH,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KACnC,KAAK,GAAG,SAcV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../../../src/utils/diagram.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,KAAK,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,KAAK,SAAS,EAId,KAAK,KAAK,EAKX,MAAM,mBAAmB,CAAC;AAO3B,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC/B,mGAAmG;IACnG,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC3C,CAAC;AAwCF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,YAAY,YAAY,KAAG,cAgCvE,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,kBAAmB,cAAc,QAAQ,SAAS,MAAM,EAAE,KAAG,SAAS,EAIjG,CAAC"}
1
+ {"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../../../src/utils/diagram.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,KAAK,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,SAAS,EAAyB,KAAK,KAAK,EAAiB,MAAM,mBAAmB,CAAC;AAQrG,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC/B,mGAAmG;IACnG,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC3C,CAAC;AA2BF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,YAAY,YAAY,KAAG,cAgCvE,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,kBAAmB,cAAc,QAAQ,SAAS,MAAM,EAAE,KAAG,SAAS,EAIjG,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type ElementId, type Intent, type LayerId, type Scene } from '../model/types.ts';
2
+ /** What grouping a selection makes: the new scene, and the intents that replace the selection with its shape. */
3
+ export type SceneGroup = {
4
+ child: Scene;
5
+ intents: Intent[];
6
+ };
7
+ /**
8
+ * Moves the selected nodes into a new scene `id`, opened by a scene shape of the same id where they were. A link
9
+ * between two grouped nodes moves with them; one crossing out of the group stays here, re-attached to the shape.
10
+ * The nodes keep their coordinates: the shape frames whatever the child holds. None when no node is selected, or
11
+ * when a selected node is locked. The shape goes on `layer`; the new scene has the layers its elements were on.
12
+ */
13
+ export declare const groupIntoScene: (scene: Scene, ids: Iterable<ElementId>, id: string, layer?: LayerId) => SceneGroup | undefined;
14
+ //# sourceMappingURL=group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../../src/utils/group.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,SAAS,EAGd,KAAK,MAAM,EACX,KAAK,OAAO,EAEZ,KAAK,KAAK,EAEX,MAAM,mBAAmB,CAAC;AAM3B,iHAAiH;AACjH,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAQ7D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAClB,KAAK,OACP,QAAQ,CAAC,SAAS,CAAC,MACpB,MAAM,UACF,OAAO,KACd,UAAU,GAAG,SAqDf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=group.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/group.test.ts"],"names":[],"mappings":""}
@@ -6,4 +6,11 @@ import { type RouteEnd } from './route.ts';
6
6
  * gutters offer no way round (the caller then falls back to the plain smart route).
7
7
  */
8
8
  export declare const gutterRoute: (nodes: readonly Node[], spec: LatticeSpec, from: RouteEnd, to: RouteEnd) => Point[] | undefined;
9
+ /** A gutter route and what it cost the search: `TURN_COST` a bend, plus its length. */
10
+ export type GutterRoute = {
11
+ points: Point[];
12
+ cost: number;
13
+ };
14
+ /** {@link gutterRoute} with its cost, so routes between different ports can be compared. */
15
+ export declare const gutterRouteWithCost: (nodes: readonly Node[], spec: LatticeSpec, from: RouteEnd, to: RouteEnd) => GutterRoute | undefined;
9
16
  //# sourceMappingURL=gutter-route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gutter-route.d.ts","sourceRoot":"","sources":["../../../../src/utils/gutter-route.ts"],"names":[],"mappings":"AAYA,OAAO,EAAe,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAyC3C;;;GAGG;AACH,eAAO,MAAM,WAAW,UACf,SAAS,IAAI,EAAE,QAChB,WAAW,QACX,QAAQ,MACV,QAAQ,KACX,KAAK,EAAE,GAAG,SAkFZ,CAAC"}
1
+ {"version":3,"file":"gutter-route.d.ts","sourceRoot":"","sources":["../../../../src/utils/gutter-route.ts"],"names":[],"mappings":"AAYA,OAAO,EAAe,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,KAAK,WAAW,EAAa,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwF3C;;;GAGG;AACH,eAAO,MAAM,WAAW,UACf,SAAS,IAAI,EAAE,QAChB,WAAW,QACX,QAAQ,MACV,QAAQ,KACX,KAAK,EAAE,GAAG,SAA+D,CAAC;AAE7E,uFAAuF;AACvF,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,UACvB,SAAS,IAAI,EAAE,QAChB,WAAW,QACX,QAAQ,MACV,QAAQ,KACX,WAAW,GAAG,SAShB,CAAC"}
@@ -1,11 +1,4 @@
1
1
  import { type Bounds, type Node, type Point, type Scene } from '../model/types.ts';
2
- /**
3
- * Centred on the origin, not anchored at it: a scene is laid out around (0, 0), so an extent running
4
- * from the origin to (1600, 1024) puts its own centre well below and right of the content and the
5
- * initial fit — which centres the frame — pushes everything into the top-left corner. Each half is a
6
- * whole number of major cells, so the frame still lands on grid lines.
7
- */
8
- export declare const DEFAULT_EXTENT: Bounds;
9
2
  export declare const BOUNDS_PADDING: number;
10
3
  export declare const containsPoint: (bounds: Bounds, point: Point) => boolean;
11
4
  export declare const intersects: (left: Bounds, right: Bounds) => boolean;
@@ -16,20 +9,10 @@ export declare const boundsFromPoints: (from: Point, to: Point) => Bounds;
16
9
  export declare const alignBounds: (bounds: Bounds, unit: number) => Bounds;
17
10
  export declare const nodeList: (scene: Scene) => Node[];
18
11
  /**
19
- * Derived scene bounds (decision 6): the union of nodes plus padding, grown to the major grid so the
20
- * frame sits on grid lines. The default extent is a floor rather than a fallback for an empty scene:
21
- * content only ever grows the frame, so drawing the first node does not collapse the scene around it.
22
- *
23
- * This is the frame of a scene shown on its own — the surface the user edits on. A scene shown through
24
- * a portal is framed by {@link contentBounds} instead.
25
- */
26
- export declare const sceneBounds: (scene: Scene, padding?: number, unit?: number) => Bounds;
27
- /**
28
- * What a scene is worth showing: the same frame without the floor under it, so a child drawn in a portal
29
- * fills its tile rather than being shrunk to fit an editing surface it is not being edited on. An empty
30
- * scene has no content to frame, so there the floor is the frame.
12
+ * What a scene holds (decision 6): the union of its nodes plus padding, grown to the major grid. Fit and a
13
+ * portal's preview frame it; an empty scene has none.
31
14
  */
32
- export declare const contentBounds: (scene: Scene, padding?: number, unit?: number) => Bounds;
15
+ export declare const contentBounds: (scene: Scene, padding?: number, unit?: number) => Bounds | undefined;
33
16
  /** Topmost node under `point`, or none; `margin` widens every node, e.g. to reach its ports. */
34
17
  export declare const hitTest: (scene: Scene, point: Point, margin?: number) => Node | undefined;
35
18
  /** Nodes whose bounds intersect `bounds` (marquee semantics). */
@@ -1 +1 @@
1
- {"version":3,"file":"hit.d.ts","sourceRoot":"","sources":["../../../../src/utils/hit.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAAc,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/F;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,MAAwD,CAAC;AACtF,eAAO,MAAM,cAAc,QAAa,CAAC;AAEzC,eAAO,MAAM,aAAa,WAAY,MAAM,SAAS,KAAK,YAIrB,CAAC;AAEtC,eAAO,MAAM,UAAU,SAAU,MAAM,SAAS,MAAM,YAItB,CAAC;AAEjC,eAAO,MAAM,WAAW,SAAU,SAAS,MAAM,EAAE,KAAG,MAAM,GAAG,SAe9D,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,MAAM,WAAW,MAAM,KAAG,MAK1D,CAAC;AAEH,eAAO,MAAM,gBAAgB,SAAU,KAAK,MAAM,KAAK,KAAG,MAKxD,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,WAAW,WAAY,MAAM,QAAQ,MAAM,KAAG,MAS1D,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,KAAK,KAAG,IAAI,EAAgC,CAAC;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK,sCAAgD,MAIvF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,UAAW,KAAK,sCAAgD,MAGzF,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,OAAO,UAAW,KAAK,SAAS,KAAK,sBAAe,IAAI,GAAG,SAQvE,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,UAAW,KAAK,UAAU,MAAM,KAAG,IAAI,EACG,CAAC"}
1
+ {"version":3,"file":"hit.d.ts","sourceRoot":"","sources":["../../../../src/utils/hit.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAAc,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/F,eAAO,MAAM,cAAc,QAAa,CAAC;AAEzC,eAAO,MAAM,aAAa,WAAY,MAAM,SAAS,KAAK,YAIrB,CAAC;AAEtC,eAAO,MAAM,UAAU,SAAU,MAAM,SAAS,MAAM,YAItB,CAAC;AAEjC,eAAO,MAAM,WAAW,SAAU,SAAS,MAAM,EAAE,KAAG,MAAM,GAAG,SAe9D,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,MAAM,WAAW,MAAM,KAAG,MAK1D,CAAC;AAEH,eAAO,MAAM,gBAAgB,SAAU,KAAK,MAAM,KAAK,KAAG,MAKxD,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,WAAW,WAAY,MAAM,QAAQ,MAAM,KAAG,MAS1D,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,KAAK,KAAG,IAAI,EAAgC,CAAC;AAE7E;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,KAAK,sCAAgD,MAAM,GAAG,SAGlG,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,OAAO,UAAW,KAAK,SAAS,KAAK,sBAAe,IAAI,GAAG,SAQvE,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,UAAW,KAAK,UAAU,MAAM,KAAG,IAAI,EACG,CAAC"}
@@ -3,14 +3,17 @@ export * from './camera.ts';
3
3
  export * from './clipboard.ts';
4
4
  export * from './diagram.ts';
5
5
  export * from './dnd.ts';
6
+ export * from './group.ts';
6
7
  export * from './hit.ts';
7
8
  export * from './lattice.ts';
9
+ export * from './layers.ts';
8
10
  export * from './layout.ts';
9
11
  export * from './order.ts';
10
12
  export * from './parts.ts';
11
13
  export * from './ports.ts';
12
14
  export * from './resize.ts';
13
15
  export * from './route.ts';
16
+ export * from './scenes.ts';
14
17
  export * from './shapes.ts';
15
18
  export * from './style.ts';
16
19
  export * from './undo.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
@@ -31,6 +31,11 @@ export declare const quantize: (bounds: Bounds, spec: LatticeSpec) => Bounds;
31
31
  export declare const coveredCells: ({ col, row, spanX, spanY }: LatticeCell) => string[];
32
32
  /** Which node covers each lattice position, for the nodes not in `except` (those being moved or resized). */
33
33
  export type Occupancy = ReadonlyMap<string, ElementId>;
34
+ /**
35
+ * Whether a node takes part in the lattice: a guide (a group's backdrop) or a bare caption annotates the shapes rather
36
+ * than being one, so it neither snaps, occupies cells nor blocks a gutter route.
37
+ */
38
+ export declare const onLattice: (node: Node) => boolean;
34
39
  export declare const occupancy: (nodes: Iterable<Node>, spec: LatticeSpec, except?: ReadonlySet<ElementId>) => Occupancy;
35
40
  /** Whether a cell overlaps a position another node already covers. */
36
41
  export declare const collides: (cell: LatticeCell, occupied: Occupancy) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"lattice.d.ts","sourceRoot":"","sources":["../../../../src/utils/lattice.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG3E,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,eAAO,MAAM,eAAe,EAAE,WAAoE,CAAC;AAEnG,kGAAkG;AAClG,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AASrF,iHAAiH;AACjH,eAAO,MAAM,MAAM,WAAY,MAAM,QAAQ,WAAW,KAAG,WAU1D,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,UAAU,+BAAgC,WAAW,QAAQ,WAAW,KAAG,MAKtF,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAU,WAAW,QAAQ,MAAM,MAAM,MAAM,QAAQ,WAAW,KAAG,WAoC3F,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,QAAQ,WAAY,MAAM,QAAQ,WAAW,KAAG,MAAgD,CAAC;AAI9G,+DAA+D;AAC/D,eAAO,MAAM,YAAY,+BAAgC,WAAW,KAAG,MAAM,EAQ5E,CAAC;AAEF,6GAA6G;AAC7G,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEvD,eAAO,MAAM,SAAS,UACb,QAAQ,CAAC,IAAI,CAAC,QACf,WAAW,WACT,WAAW,CAAC,SAAS,CAAC,KAC7B,SAUF,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,QAAQ,SAAU,WAAW,YAAY,SAAS,KAAG,OACb,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,WAAW,SAAU,WAAW,YAAY,SAAS,yBAAmB,WAAW,GAAG,SAelG,CAAC"}
1
+ {"version":3,"file":"lattice.d.ts","sourceRoot":"","sources":["../../../../src/utils/lattice.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG3E,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,eAAO,MAAM,eAAe,EAAE,WAAoE,CAAC;AAEnG,kGAAkG;AAClG,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AASrF,iHAAiH;AACjH,eAAO,MAAM,MAAM,WAAY,MAAM,QAAQ,WAAW,KAAG,WAU1D,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,UAAU,+BAAgC,WAAW,QAAQ,WAAW,KAAG,MAKtF,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAU,WAAW,QAAQ,MAAM,MAAM,MAAM,QAAQ,WAAW,KAAG,WAoC3F,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,QAAQ,WAAY,MAAM,QAAQ,WAAW,KAAG,MAAgD,CAAC;AAI9G,+DAA+D;AAC/D,eAAO,MAAM,YAAY,+BAAgC,WAAW,KAAG,MAAM,EAQ5E,CAAC;AAEF,6GAA6G;AAC7G,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,SAAS,SAAU,IAAI,KAAG,OAA6D,CAAC;AAErG,eAAO,MAAM,SAAS,UACb,QAAQ,CAAC,IAAI,CAAC,QACf,WAAW,WACT,WAAW,CAAC,SAAS,CAAC,KAC7B,SAUF,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,QAAQ,SAAU,WAAW,YAAY,SAAS,KAAG,OACb,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,WAAW,SAAU,WAAW,YAAY,SAAS,yBAAmB,WAAW,GAAG,SAelG,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { type Element, type Intent, type Layer, type LayerId, type Node, type Scene } from '../model/types.ts';
2
+ /** The layer of a scene that names none: every element is on it. */
3
+ export declare const DEFAULT_LAYER: Layer;
4
+ /** A scene's layers, bottom first; a scene with none has the implicit `DEFAULT_LAYER`. */
5
+ export declare const sceneLayers: (scene: Scene) => Layer[];
6
+ /** The layer an element is on: its own, else (unset, or a layer the scene does not have) the bottom one. */
7
+ export declare const elementLayer: (element: Element, layers: readonly Layer[]) => LayerId;
8
+ /** The layer new elements go on: the active one when the scene has it, else the top layer. */
9
+ export declare const activeLayer: (scene: Scene, active: LayerId | undefined) => LayerId;
10
+ /** Nodes in paint order: by their layer's order, then by their own `z`. */
11
+ export declare const layerOrder: (nodes: readonly Node[], layers: readonly Layer[]) => Node[];
12
+ /**
13
+ * The scene as drawn and hit: without the elements of hidden layers, or the links to a node that is hidden. The same
14
+ * scene when no layer is hidden, so a memo over it holds.
15
+ */
16
+ export declare const visibleScene: (scene: Scene) => Scene;
17
+ /**
18
+ * The scene with its layers named and every element on one by name: an element with no layer, or one the scene does not
19
+ * have, takes the layer it is drawn on (`elementLayer`). The same scene when nothing changes, so a memo over it holds.
20
+ */
21
+ export declare const pinLayers: (scene: Scene) => Scene;
22
+ /** Applies a layer intent to the scene (`reduceIntent` delegates here). */
23
+ export declare const reduceLayerIntent: (scene: Scene, intent: Extract<Intent, {
24
+ kind: 'layer' | 'removeLayer';
25
+ }>) => Scene;
26
+ /** A new layer below the others, so it ends the top-first list, named after the first `Layer <n>` not taken. */
27
+ export declare const createLayer: (scene: Scene, id: LayerId) => Layer;
28
+ /** The layer moved to `index` in the bottom-first order. */
29
+ export declare const moveLayer: (scene: Scene, id: LayerId, index: number) => Layer | undefined;
30
+ /**
31
+ * Merging layers into `into`, as one batch: the elements of every layer in `from` move onto `into`, keeping their own
32
+ * order, and those layers are removed. None unless `into` and at least one other of `from` are layers of the scene.
33
+ */
34
+ export declare const mergeLayersIntent: (scene: Scene, from: readonly LayerId[], into: LayerId) => Intent | undefined;
35
+ //# sourceMappingURL=layers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../../../src/utils/layers.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,OAAO,EAEZ,KAAK,IAAI,EACT,KAAK,KAAK,EAEX,MAAM,mBAAmB,CAAC;AAG3B,oEAAoE;AACpE,eAAO,MAAM,aAAa,EAAE,KAAsD,CAAC;AAEnF,0FAA0F;AAC1F,eAAO,MAAM,WAAW,UAAW,KAAK,KAAG,KAAK,EAG/C,CAAC;AAEF,4GAA4G;AAC5G,eAAO,MAAM,YAAY,YAAa,OAAO,UAAU,SAAS,KAAK,EAAE,KAAG,OAGjC,CAAC;AAE1C,8FAA8F;AAC9F,eAAO,MAAM,WAAW,UAAW,KAAK,UAAU,OAAO,GAAG,SAAS,KAAG,OAGvE,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,UAAU,UAAW,SAAS,IAAI,EAAE,UAAU,SAAS,KAAK,EAAE,KAAG,IAAI,EAIjF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,UAAW,KAAK,KAAG,KAiB3C,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,SAAS,UAAW,KAAK,KAAG,KAmBxC,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,UAAW,KAAK,UAAU,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,GAAG,aAAa,CAAA;CAAE,CAAC,KAAG,KAyB5G,CAAC;AAEF,gHAAgH;AAChH,eAAO,MAAM,WAAW,UAAW,KAAK,MAAM,OAAO,KAAG,KAQvD,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,SAAS,UAAW,KAAK,MAAM,OAAO,SAAS,MAAM,KAAG,KAAK,GAAG,SAQ5E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAW,KAAK,QAAQ,SAAS,OAAO,EAAE,QAAQ,OAAO,KAAG,MAAM,GAAG,SAmBlG,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=layers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/layers.test.ts"],"names":[],"mappings":""}
@@ -1,17 +1,33 @@
1
+ import { type NodeRegistry } from '../model/registry.ts';
1
2
  import { type Node, type NodeValues } from '../model/types.ts';
2
- export type PartKey = 'label' | 'text' | 'name' | 'attributes' | 'methods';
3
+ /** A part's name: the node property it edits. */
4
+ export type PartKey = string;
5
+ /** A text property of a node type, as its definition declares it. */
6
+ export type PartField = {
7
+ /** The node property the part edits. */
8
+ field: PartKey;
9
+ /** A list of strings, one per line; implies `multiline`. */
10
+ lines?: boolean;
11
+ /** Enter breaks the line and Mod-Enter commits, rather than Enter committing. */
12
+ multiline?: boolean;
13
+ };
3
14
  /** A part edited in place: which one, and how the editor hands its result back. */
4
15
  export type PartEditing = {
5
16
  part: PartKey;
17
+ multiline: boolean;
6
18
  commit: (text: string) => void;
7
19
  cancel: () => void;
8
20
  };
9
- /** The part a `data-part` attribute names, if it names one. */
10
- export declare const partKey: (value: string | null | undefined) => PartKey | undefined;
11
- /** Enter inserts a line in a multi-line part; Mod-Enter commits. */
12
- export declare const isMultiline: (part: PartKey) => boolean;
13
- /** The part's text, or none when the node type has no such part. */
14
- export declare const partText: (node: Node, part: PartKey) => string | undefined;
15
- /** The `update` values that set the part's text, or none when the node type has no such part. */
16
- export declare const partValues: (node: Node, part: PartKey, text: string) => NodeValues | undefined;
21
+ /** The parts a node's type declares; a type the registry does not know has the core base's label. */
22
+ export declare const nodeParts: (registry: NodeRegistry, node: Node) => readonly PartField[];
23
+ /** Whether the part takes several lines. */
24
+ export declare const isMultiline: (part: PartField) => boolean;
25
+ /** The part's text, or none when the node's type has no such part. */
26
+ export declare const partText: (registry: NodeRegistry, node: Node, part: PartKey) => string | undefined;
27
+ /** The `update` values that set the part's text, or none when the node's type has no such part. */
28
+ export declare const partValues: (registry: NodeRegistry, node: Node, part: PartKey, text: string) => NodeValues | undefined;
29
+ /** A node's main text: its first part's, which a diagram or a DSL export shows as the node's name. */
30
+ export declare const nodeTitle: (registry: NodeRegistry, node: Node) => string | undefined;
31
+ /** The node with its main text (its first part) set; a type without parts is returned as is. */
32
+ export declare const withTitle: <N extends Node>(registry: NodeRegistry, node: N, text: string) => N;
17
33
  //# sourceMappingURL=parts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../src/utils/parts.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,UAAU,EAAqD,MAAM,mBAAmB,CAAC;AAElH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;AAE3E,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAIF,+DAA+D;AAC/D,eAAO,MAAM,OAAO,UAAW,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,OAAO,GAAG,SAAiD,CAAC;AAIvH,oEAAoE;AACpE,eAAO,MAAM,WAAW,SAAU,OAAO,KAAG,OAA+B,CAAC;AAQ5E,oEAAoE;AACpE,eAAO,MAAM,QAAQ,SAAU,IAAI,QAAQ,OAAO,KAAG,MAAM,GAAG,SAa7D,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,UAAU,SAAU,IAAI,QAAQ,OAAO,QAAQ,MAAM,KAAG,UAAU,GAAG,SAajF,CAAC"}
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../src/utils/parts.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/D,iDAAiD;AACjD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,qEAAqE;AACrE,MAAM,MAAM,SAAS,GAAG;IACtB,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAWF,qGAAqG;AACrG,eAAO,MAAM,SAAS,aAAc,YAAY,QAAQ,IAAI,KAAG,SAAS,SAAS,EAGhF,CAAC;AAKF,4CAA4C;AAC5C,eAAO,MAAM,WAAW,SAAU,SAAS,KAAG,OAAyD,CAAC;AAExG,sEAAsE;AACtE,eAAO,MAAM,QAAQ,aAAc,YAAY,QAAQ,IAAI,QAAQ,OAAO,KAAG,MAAM,GAAG,SAUrF,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,UAAU,aAAc,YAAY,QAAQ,IAAI,QAAQ,OAAO,QAAQ,MAAM,KAAG,UAAU,GAAG,SAMzG,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,SAAS,aAAc,YAAY,QAAQ,IAAI,KAAG,MAAM,GAAG,SAGvE,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,IAAI,YAAY,YAAY,QAAQ,CAAC,QAAQ,MAAM,KAAG,CAGzF,CAAC"}
@@ -48,4 +48,6 @@ export type PortPair = {
48
48
  export declare const pairPorts: (source: PortTerminal, target: PortTerminal) => PortPair | undefined;
49
49
  /** The port of `terminal` closest to `point` among those taking `direction`, for a link whose other end is free. */
50
50
  export declare const nearestPort: (terminal: PortTerminal, point: Point, direction: Exclude<PortDirection, 'any'>) => Port | undefined;
51
+ /** The ports an end may use: those accepting its direction, narrowed to the pinned one when it is among them. */
52
+ export declare const portCandidates: ({ ports, port }: PortTerminal, direction: Exclude<PortDirection, 'any'>) => readonly Port[];
51
53
  //# sourceMappingURL=ports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../../src/utils/ports.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGjH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAAyB,CAAC;AAE3D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,yGAAyG;AACzG,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAKpC;;;GAGG;AACH,eAAO,MAAM,MAAM,SAAU,IAAI,qBAAc,MAA2B,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,SAAS,sBAAqC,SAAS,IAAI,EAQvE,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,SAAS,IAAI,EAAgB,CAAC;AAEzD,uGAAuG;AACvG,eAAO,MAAM,cAAc,aAAc,YAAY,QAAQ,IAAI,KAAG,MAC8B,CAAC;AAEnG;;;;GAIG;AACH,eAAO,MAAM,SAAS,aAAc,YAAY,QAAQ,IAAI,KAAG,SAAS,IAAI,EAkB3E,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,SAAS,WAAY,MAAM,QAAQ,IAAI,KAAG,KAYtD,CAAC;AAIF,eAAO,MAAM,YAAY,SAAU,IAAI,KAAG,IAAsB,CAAC;AAEjE,qCAAqC;AACrC,eAAO,MAAM,UAAU,SAAU,IAAI,KAAG,KAWvC,CAAC;AAEF,uHAAuH;AACvH,eAAO,MAAM,WAAW,SAAU,IAAI,aAAa,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KAAG,OAClB,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC;AAItD;;;;GAIG;AACH,eAAO,MAAM,SAAS,WAAY,YAAY,UAAU,YAAY,KAAG,QAAQ,GAAG,SAmBjF,CAAC;AAEF,oHAAoH;AACpH,eAAO,MAAM,WAAW,aACZ,YAAY,SACf,KAAK,aACD,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KACvC,IAAI,GAAG,SAWT,CAAC"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../../src/utils/ports.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGjH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAAyB,CAAC;AAE3D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,yGAAyG;AACzG,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAKpC;;;GAGG;AACH,eAAO,MAAM,MAAM,SAAU,IAAI,qBAAc,MAA2B,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,SAAS,sBAAqC,SAAS,IAAI,EAQvE,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,SAAS,IAAI,EAAgB,CAAC;AAEzD,uGAAuG;AACvG,eAAO,MAAM,cAAc,aAAc,YAAY,QAAQ,IAAI,KAAG,MAC8B,CAAC;AAEnG;;;;GAIG;AACH,eAAO,MAAM,SAAS,aAAc,YAAY,QAAQ,IAAI,KAAG,SAAS,IAAI,EAkB3E,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,SAAS,WAAY,MAAM,QAAQ,IAAI,KAAG,KAYtD,CAAC;AAIF,eAAO,MAAM,YAAY,SAAU,IAAI,KAAG,IAAsB,CAAC;AAEjE,qCAAqC;AACrC,eAAO,MAAM,UAAU,SAAU,IAAI,KAAG,KAWvC,CAAC;AAEF,uHAAuH;AACvH,eAAO,MAAM,WAAW,SAAU,IAAI,aAAa,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KAAG,OAClB,CAAC;AAElE,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC;AAItD;;;;GAIG;AACH,eAAO,MAAM,SAAS,WAAY,YAAY,UAAU,YAAY,KAAG,QAAQ,GAAG,SAmBjF,CAAC;AAEF,oHAAoH;AACpH,eAAO,MAAM,WAAW,aACZ,YAAY,SACf,KAAK,aACD,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KACvC,IAAI,GAAG,SAWT,CAAC;AAEF,iHAAiH;AACjH,eAAO,MAAM,cAAc,oBACR,YAAY,aAClB,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KACvC,SAAS,IAAI,EASf,CAAC"}