@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
@@ -0,0 +1,22 @@
1
+ import React, { type PropsWithChildren, type ReactNode } from 'react';
2
+ /** A panel's section in the dock. */
3
+ export type DockSection = {
4
+ id: string;
5
+ title: string;
6
+ icon: string;
7
+ /** Sections stack by it, lowest first. */
8
+ order: number;
9
+ };
10
+ /** Holds the docked sections and their slots for a view's `Dock` and its panels. */
11
+ export declare const DockProvider: ({ children }: PropsWithChildren) => React.JSX.Element;
12
+ /**
13
+ * The dock column: an accordion of the registered sections, any number open, each as tall as its panel, the column
14
+ * scrolling them together. Nothing (and no space) while no panel is docked.
15
+ */
16
+ export declare const Dock: () => React.JSX.Element | null;
17
+ /**
18
+ * Registers a section while `docked`, and renders `panel` into it: docked, the panel's portal into the dock (once its
19
+ * slot mounts); floating, `null`, so the caller renders the panel where it floats.
20
+ */
21
+ export declare const useDockSection: (section: DockSection, docked: boolean, panel: ReactNode) => ReactNode | null;
22
+ //# sourceMappingURL=Dock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dock.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/Dock.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EACZ,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAQf,MAAM,OAAO,CAAC;AAMf,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAaF,oFAAoF;AACpF,eAAO,MAAM,YAAY,iBAAkB,iBAAiB,sBAqB3D,CAAC;AAWF;;;GAGG;AACH,eAAO,MAAM,IAAI,gCAyChB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,YAAa,WAAW,UAAU,OAAO,SAAS,SAAS,KAAG,SAAS,GAAG,IAgBpG,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
2
+ type StoryArgs = {
3
+ /** The element selected, whose properties fill the dock's first section. */
4
+ select?: string;
5
+ };
6
+ declare const meta: Meta<StoryArgs>;
7
+ export default meta;
8
+ type Story = StoryObj<StoryArgs>;
9
+ /** A shape selected: its properties above the scene's layers. */
10
+ export declare const Default: Story;
11
+ /** Nothing selected: the properties section says so rather than going away. */
12
+ export declare const Empty: Story;
13
+ /** Each section's header collapses it. */
14
+ export declare const Test: Story;
15
+ //# sourceMappingURL=Dock.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dock.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/Dock.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA8BjE,KAAK,SAAS,GAAG;IACf,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAsBF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAMzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEjC,iEAAiE;AACjE,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,+EAA+E;AAC/E,eAAO,MAAM,KAAK,EAAE,KAAuC,CAAC;AAE5D,0CAA0C;AAC1C,eAAO,MAAM,IAAI,EAAE,KAgBlB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import React, { type ReactNode } from 'react';
2
2
  import type * as Util from '@dxos/react-ui/Util';
3
- import { type SceneViewAtoms } from '../../model/atoms.ts';
3
+ import { type PanelMode, type SceneViewAtoms } from '../../model/atoms.ts';
4
4
  import { type FreehandProjectionOptions, type Projection } from '../../model/projection.ts';
5
5
  import { type LinkRegistry, type NodeRegistry } from '../../model/registry.ts';
6
6
  import { type SceneStore } from '../../model/store.ts';
7
- import { type SceneId } from '../../model/types.ts';
7
+ import { type Camera, type SceneId } from '../../model/types.ts';
8
8
  import { type PropertiesProps } from '../Properties/Properties.tsx';
9
9
  export type SceneViewRootProps = Util.ThemedClassName<{
10
10
  store: SceneStore;
@@ -17,19 +17,25 @@ export type SceneViewRootProps = Util.ThemedClassName<{
17
17
  projection?: Projection;
18
18
  /** Externally owned view state, e.g. to drive two views or persist the camera. */
19
19
  atoms?: SceneViewAtoms;
20
+ /** Where the camera starts on the root scene, e.g. as last left; the scene is fitted when unset. */
21
+ initialCamera?: Camera;
22
+ /** Called once the camera settles on the root scene, so a host can persist it. */
23
+ onCameraChange?: (camera: Camera) => void;
20
24
  /** Minor grid spacing in scene px; moves snap to it, creation and resizing to the major grid, `MAJOR_GRID_RATIO` times it. */
21
25
  grid?: number;
22
- /** Least gap between the scene's frame and each viewport edge when fitting, in whole major cells. */
26
+ /** Least gap between the scene's frame and each viewport edge when fitting, in major cells. */
23
27
  margin?: number;
24
28
  /**
25
29
  * Look, select and navigate only: no gesture or key reaches the model, and no handle or port is drawn,
26
30
  * whatever the projection would allow.
27
31
  */
28
32
  readonly?: boolean;
33
+ /** Where the properties and layers panels sit: docked in a column beside the canvas, or floating over it. */
34
+ panels?: PanelMode;
29
35
  children?: ReactNode;
30
36
  }>;
31
37
  declare const SceneViewRoot: {
32
- ({ classNames, store, root, nodes: nodeRegistry, links: linkRegistry, createProjection, projection: projectionProp, atoms: atomsProp, grid, margin, readonly, children, }: SceneViewRootProps): React.JSX.Element;
38
+ ({ classNames, store, root, nodes: nodeRegistry, links: linkRegistry, createProjection, projection: projectionProp, atoms: atomsProp, initialCamera, onCameraChange, grid, margin, readonly, panels, children, }: SceneViewRootProps): React.JSX.Element;
33
39
  displayName: string;
34
40
  };
35
41
  export type SceneViewCanvasProps = {
@@ -51,7 +57,7 @@ declare const SceneViewNavigation: {
51
57
  };
52
58
  /** Everything that changes the view or the scene. */
53
59
  declare const SceneViewActions: {
54
- ({ classNames }: SceneViewBarProps): React.JSX.Element;
60
+ ({ classNames }: SceneViewBarProps): React.JSX.Element | null;
55
61
  displayName: string;
56
62
  };
57
63
  /** The camera's controls and numbers; nothing here changes the scene. */
@@ -64,10 +70,28 @@ declare const SceneViewPalette: {
64
70
  ({ classNames }: SceneViewBarProps): React.JSX.Element;
65
71
  displayName: string;
66
72
  };
67
- export type SceneViewPropertiesProps = Util.ThemedClassName<Pick<PropertiesProps, 'fields'>>;
73
+ export type SceneViewPropertiesProps = Util.ThemedClassName<Pick<PropertiesProps, 'fields' | 'db' | 'getOptions' | 'overrides'> & {
74
+ /** Narrows the scenes a scene shape may open (e.g. to the host's own, not those it shows from elsewhere). */
75
+ sceneFilter?: (id: SceneId) => boolean;
76
+ }>;
68
77
  /** The selected element's properties as a floating panel; absent while nothing is selected. */
69
78
  declare const SceneViewProperties: {
70
- ({ classNames, fields, }: SceneViewPropertiesProps): React.JSX.Element | null;
79
+ ({ classNames, fields, db, getOptions, overrides, sceneFilter, }: SceneViewPropertiesProps): string | number | bigint | boolean | React.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | null | undefined> | null | undefined;
80
+ displayName: string;
81
+ };
82
+ export type SceneViewLayersProps = Util.ThemedClassName<{}>;
83
+ /**
84
+ * The current scene's layers as a floating panel where the properties panel goes, shown while nothing is selected
85
+ * (the two take turns). Each edit is one intent, so one undo step.
86
+ */
87
+ declare const SceneViewLayers: {
88
+ ({ classNames }: SceneViewLayersProps): string | number | bigint | boolean | React.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | null | undefined> | null | undefined;
89
+ displayName: string;
90
+ };
91
+ export type SceneViewAboutProps = Util.ThemedClassName<{}>;
92
+ /** Counts of the scene's objects and the drawing's scenes; a dock section only, since it has no place over the canvas. */
93
+ declare const SceneViewAbout: {
94
+ ({ classNames }: SceneViewAboutProps): ReactNode;
71
95
  displayName: string;
72
96
  };
73
97
  export declare const SceneView: {
@@ -78,6 +102,8 @@ export declare const SceneView: {
78
102
  Debug: typeof SceneViewDebug;
79
103
  Palette: typeof SceneViewPalette;
80
104
  Properties: typeof SceneViewProperties;
105
+ Layers: typeof SceneViewLayers;
106
+ About: typeof SceneViewAbout;
81
107
  };
82
108
  export {};
83
109
  //# sourceMappingURL=SceneView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneView.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAA4D,MAAM,OAAO,CAAC;AAGxG,OAAO,KAAK,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAKjD,OAAO,EAAa,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAE5F,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,UAAU,EAGhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EAGlB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EASL,KAAK,OAAO,EAEb,MAAM,sBAAsB,CAAC;AAa9B,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAoBhF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;IACpD,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,UAAU,CAAC;IACtE,iGAAiG;IACjG,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kFAAkF;IAClF,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,8HAA8H;IAC9H,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qGAAqG;IACrG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,QAAA,MAAM,aAAa;+KAahB,kBAAkB;;CAylBpB,CAAC;AAQF,MAAM,MAAM,oBAAoB,GAAG;IACjC,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4GAA4G;IAC5G,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,8GAA8G;AAC9G,QAAA,MAAM,eAAe;6BAA6C,oBAAoB;;CA4LrF,CAAC;AAQF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAQzD,2CAA2C;AAC3C,QAAA,MAAM,mBAAmB;qBAAqC,iBAAiB;;CAO9E,CAAC;AAIF,qDAAqD;AACrD,QAAA,MAAM,gBAAgB;qBAA2D,iBAAiB;;CAOjG,CAAC;AAIF,yEAAyE;AACzE,QAAA,MAAM,cAAc;qBAAwC,iBAAiB;;CAS5E,CAAC;AAQF,sDAAsD;AACtD,QAAA,MAAM,gBAAgB;qBAA+C,iBAAiB;;CAarF,CAAC;AAQF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7F,+FAA+F;AAC/F,QAAA,MAAM,mBAAmB;8BAGtB,wBAAwB;;CAgB1B,CAAC;AAIF,eAAO,MAAM,SAAS;IACpB,IAAI;IACJ,MAAM;IACN,UAAU;IACV,OAAO;IACP,KAAK;IACL,OAAO;IACP,UAAU;CACX,CAAC"}
1
+ {"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneView.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type Meta, type StoryObj } from '@storybook/react-vite';
2
+ import { type PanelMode } from '../../model/atoms.ts';
2
3
  /**
3
4
  * Test:
4
5
  * 1. Ctrl/cmd+wheel zooms about the cursor; wheel or hand-tool drag pans; drag on empty canvas draws a marquee.
@@ -7,9 +8,9 @@ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
8
  * 3. L / K / P pick the line, curve or spline link tool: every port shows; dropping onto empty canvas creates a
8
9
  * rectangle and links to it. A selected spline shows a diamond per control point and a dot per span midpoint:
9
10
  * drag a diamond to move a point, drag a dot to add one there, alt-click a diamond to remove one.
10
- * 4. R / E / C / T / S then drag draws a rectangle, ellipse, UML class, text or nested scene; Delete removes the
11
- * selection (nodes or links).
12
- * 5. Double-click a portal (or zoom until it fills the view) drills in; Escape, Up or the breadcrumb drills out.
11
+ * 4. R / E / T / F then drag draws a rectangle, ellipse, text or frame (the UML class is plugin-uml's);
12
+ * Delete removes the selection (nodes or links).
13
+ * 5. Double-click a frame (or zoom until it fills the view) drills in; Escape, Up or the breadcrumb drills out.
13
14
  * 6. G (or the Grid button) toggles the grid; with it off nothing snaps. The floating panel (top right) edits the
14
15
  * selected element.
15
16
  */
@@ -17,7 +18,8 @@ type StoryArgs = {
17
18
  depth: number;
18
19
  liveDepth: number;
19
20
  readonly?: boolean;
20
- fixture?: 'elements' | 'classes' | 'square' | 'lattice';
21
+ fixture?: 'elements' | 'model' | 'square' | 'lattice' | 'scenes' | 'frame';
22
+ panels?: PanelMode;
21
23
  };
22
24
  declare const meta: Meta<StoryArgs>;
23
25
  export default meta;
@@ -30,11 +32,19 @@ export declare const Freehand: Story;
30
32
  export declare const Nested: Story;
31
33
  /** The same scene to look at: select, pan, zoom and drill, but no handle, port, tool or key changes it. */
32
34
  export declare const Readonly: Story;
33
- /** A three-level class model: drill into a subsystem's portal to open its own classes. */
34
- export declare const Classes: Story;
35
+ /** A three-level model, a box per class: drill into a subsystem's portal to open its own. */
36
+ export declare const Model: Story;
35
37
  /**
36
38
  * Lattice mode (DESIGN §8b): shapes snap to whole cells of a 256x128 lattice with 128x64 gutters, span any number
37
39
  * of cells, and may not overlap; a drag onto occupied cells previews in red and is refused.
38
40
  */
41
+ /** A, an empty scene B and C in a column: open B, draw in it, and compare sizes at 100% on both levels. */
42
+ export declare const Scenes: Story;
39
43
  export declare const Lattice: Story;
44
+ /** The panels dock by default: one accordion section each beside the canvas; a section collapses to its header. */
45
+ export declare const Docked: Story;
46
+ /** Floating panels: no dock, the layers over the canvas until something is selected. */
47
+ export declare const Floating: Story;
48
+ /** A frame onto a nested scene: its open control drills into the child scene, and Up returns. */
49
+ export declare const Frame: Story;
40
50
  //# sourceMappingURL=SceneView.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SceneView.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneView.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAgBjE;;;;;;;;;;;;;GAaG;AACH,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;CACzD,CAAC;AAiHF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAgBzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,8FAA8F;AAC9F,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,iHAAiH;AACjH,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC"}
1
+ {"version":3,"file":"SceneView.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneView.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAUtD;;;;;;;;;;;;;GAaG;AACH,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3E,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AA8MF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAqBzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,8FAA8F;AAC9F,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,iHAAiH;AACjH,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC;AAEF;;;GAGG;AACH,2GAA2G;AAC3G,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,mHAAmH;AACnH,eAAO,MAAM,MAAM,EAAE,KAgBpB,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,KAAK,EAAE,KAYnB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { type KeyboardEvent, type MouseEvent, type RefObject } from 'react';
2
2
  import { type useRegistry } from '../../hooks/index.ts';
3
- import { type ControlPointRef, type Drag, type EditingPart, type SceneViewAtoms } from '../../model/atoms.ts';
3
+ import { type ControlPointRef, type Drag, type EditingPart, type PanelMode, type SceneViewAtoms } from '../../model/atoms.ts';
4
4
  import { type Projection } from '../../model/projection.ts';
5
5
  import { type LinkRegistry, type NodeRegistry } from '../../model/registry.ts';
6
6
  import { type SceneStore } from '../../model/store.ts';
7
- import { type Bounds, type Camera, type Capabilities, type ElementId, type Scene, type SceneId, type Tool } from '../../model/types.ts';
7
+ import { type Bounds, type Camera, type Capabilities, type ElementId, type LinkId, type NodeId, type Scene, type SceneId, type Tool } from '../../model/types.ts';
8
8
  import { type Clipboard } from '../../utils/clipboard.ts';
9
9
  import { type ElementHandlers } from '../SceneLayer/SceneLayer.tsx';
10
10
  import { type ToolbarActions } from '../Toolbar/Toolbar.tsx';
@@ -23,6 +23,8 @@ export type SceneViewContextValue = {
23
23
  store: SceneStore;
24
24
  projection: Projection;
25
25
  capabilities: Capabilities;
26
+ /** The scene is only looked at: the parts that edit it (selection frame, ports, actions, properties) hide. */
27
+ readonly: boolean;
26
28
  nodeRegistry: NodeRegistry;
27
29
  linkRegistry: LinkRegistry;
28
30
  /** The scene as stored, and as it is drawn while a gesture is in flight. */
@@ -32,10 +34,11 @@ export type SceneViewContextValue = {
32
34
  blocked: boolean;
33
35
  /** The current scene's frame. */
34
36
  bounds: Bounds;
37
+ /** The scene's frame and the visible viewport together, for the lattice cells. */
38
+ latticeBounds: Bounds;
35
39
  path: SceneId[];
36
40
  camera: Camera;
37
41
  /** The zoom against this level's own 1:1 rather than the root's; display only. */
38
- nominalZoom: number;
39
42
  /** The centre of the view in scene coordinates. */
40
43
  pointer: {
41
44
  x: number;
@@ -45,6 +48,11 @@ export type SceneViewContextValue = {
45
48
  measured: boolean;
46
49
  /** One screen pixel in scene units, for chrome that should not grow with the camera. */
47
50
  frameUnit: number;
51
+ /** The portal filling most of the view and the opacity of the rest of the layer around it (`layerOpacity`). */
52
+ focus: {
53
+ id: ElementId;
54
+ opacity: number;
55
+ } | undefined;
48
56
  /** Minor grid spacing in scene px. */
49
57
  grid: number;
50
58
  snapEnabled: boolean;
@@ -55,13 +63,21 @@ export type SceneViewContextValue = {
55
63
  hover: ElementId | undefined;
56
64
  selectedPoint: ControlPointRef | undefined;
57
65
  editing: EditingPart | undefined;
66
+ /** The node whose embedded content takes input. */
67
+ active: NodeId | undefined;
58
68
  clipboard: Clipboard | undefined;
59
69
  drag: Drag | undefined;
60
70
  tool: Tool;
61
71
  debug: boolean;
72
+ /** Where the properties and layers panels sit. */
73
+ panels: PanelMode;
62
74
  /** The bounds a create gesture would land, drawn whether or not the node itself previews. */
63
75
  createFrame: Bounds | undefined;
76
+ /** Where the nodes of a move in flight will land, while they follow the pointer. */
77
+ landing: readonly Bounds[] | undefined;
64
78
  handlers: ElementHandlers;
79
+ /** The link under the pointer. */
80
+ linkHover: LinkId | undefined;
65
81
  select: (ids: Iterable<ElementId>) => void;
66
82
  toolbarActions: ToolbarActions;
67
83
  } & Pick<SceneCamera, 'navigating' | 'opening'> & Pick<SceneNavigation, 'drillIn'> & Pick<SceneClipboard, 'copy' | 'cut' | 'paste'> & Pick<PointerMachine, 'onBackgroundPointerDown' | 'onPointerMove' | 'onPointerUp' | 'onContextMenu' | 'cancelDrag' | 'updateHover' | 'onHandlePointerDown' | 'onPortPointerDown' | 'onEndPointerDown' | 'onPointPointerDown' | 'onMidpointPointerDown' | 'onPointContextMenu' | 'setTool' | 'removePoint' | 'menu' | 'closeMenu' | 'menuAnchorRef'> & {
@@ -75,6 +91,8 @@ export declare const SceneViewProvider: import("react").FC<{
75
91
  store: SceneStore;
76
92
  projection: Projection;
77
93
  capabilities: Capabilities;
94
+ /** The scene is only looked at: the parts that edit it (selection frame, ports, actions, properties) hide. */
95
+ readonly: boolean;
78
96
  nodeRegistry: NodeRegistry;
79
97
  linkRegistry: LinkRegistry;
80
98
  /** The scene as stored, and as it is drawn while a gesture is in flight. */
@@ -84,10 +102,11 @@ export declare const SceneViewProvider: import("react").FC<{
84
102
  blocked: boolean;
85
103
  /** The current scene's frame. */
86
104
  bounds: Bounds;
105
+ /** The scene's frame and the visible viewport together, for the lattice cells. */
106
+ latticeBounds: Bounds;
87
107
  path: SceneId[];
88
108
  camera: Camera;
89
109
  /** The zoom against this level's own 1:1 rather than the root's; display only. */
90
- nominalZoom: number;
91
110
  /** The centre of the view in scene coordinates. */
92
111
  pointer: {
93
112
  x: number;
@@ -97,6 +116,11 @@ export declare const SceneViewProvider: import("react").FC<{
97
116
  measured: boolean;
98
117
  /** One screen pixel in scene units, for chrome that should not grow with the camera. */
99
118
  frameUnit: number;
119
+ /** The portal filling most of the view and the opacity of the rest of the layer around it (`layerOpacity`). */
120
+ focus: {
121
+ id: ElementId;
122
+ opacity: number;
123
+ } | undefined;
100
124
  /** Minor grid spacing in scene px. */
101
125
  grid: number;
102
126
  snapEnabled: boolean;
@@ -107,13 +131,21 @@ export declare const SceneViewProvider: import("react").FC<{
107
131
  hover: ElementId | undefined;
108
132
  selectedPoint: ControlPointRef | undefined;
109
133
  editing: EditingPart | undefined;
134
+ /** The node whose embedded content takes input. */
135
+ active: NodeId | undefined;
110
136
  clipboard: Clipboard | undefined;
111
137
  drag: Drag | undefined;
112
138
  tool: Tool;
113
139
  debug: boolean;
140
+ /** Where the properties and layers panels sit. */
141
+ panels: PanelMode;
114
142
  /** The bounds a create gesture would land, drawn whether or not the node itself previews. */
115
143
  createFrame: Bounds | undefined;
144
+ /** Where the nodes of a move in flight will land, while they follow the pointer. */
145
+ landing: readonly Bounds[] | undefined;
116
146
  handlers: ElementHandlers;
147
+ /** The link under the pointer. */
148
+ linkHover: LinkId | undefined;
117
149
  select: (ids: Iterable<ElementId>) => void;
118
150
  toolbarActions: ToolbarActions;
119
151
  } & Pick<SceneCamera, "navigating" | "opening"> & Pick<SceneNavigation, "drillIn"> & Pick<SceneClipboard, "copy" | "cut" | "paste"> & Pick<PointerMachine, "cancelDrag" | "closeMenu" | "menu" | "menuAnchorRef" | "onBackgroundPointerDown" | "onContextMenu" | "onEndPointerDown" | "onHandlePointerDown" | "onMidpointPointerDown" | "onPointContextMenu" | "onPointPointerDown" | "onPointerMove" | "onPointerUp" | "onPortPointerDown" | "removePoint" | "setTool" | "updateHover"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"SceneViewContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneViewContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SceneViewContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/SceneViewContext.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { type Meta, type StoryObj } from '@storybook/react-vite';
2
2
  type StoryArgs = {
3
- /** Mermaid flowchart laid out by the engine; ignored when `fixture` is `classes`. */
3
+ /** Mermaid flowchart laid out by the engine; ignored when `fixture` is `model`. */
4
4
  source?: string;
5
- fixture?: 'mermaid' | 'classes';
5
+ fixture?: 'mermaid' | 'model';
6
6
  };
7
7
  declare const meta: Meta<StoryArgs>;
8
8
  export default meta;
@@ -11,6 +11,6 @@ type Story = StoryObj<typeof meta>;
11
11
  export declare const Default: Story;
12
12
  /** The platform block diagram: subgraph frames and a back edge. */
13
13
  export declare const Platform: Story;
14
- /** The scene engine's own class fixture, graded as drawn. */
15
- export declare const Classes: Story;
14
+ /** The scene engine's own model fixture, graded as drawn. */
15
+ export declare const Model: Story;
16
16
  //# sourceMappingURL=Scored.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scored.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/Scored.stories.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA0TjE,KAAK,SAAS,GAAG;IACf,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AAyCF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAQzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,gGAAgG;AAChG,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC"}
1
+ {"version":3,"file":"Scored.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/Scored.stories.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA0TjE,KAAK,SAAS,GAAG;IACf,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B,CAAC;AAyCF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAQzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,gGAAgG;AAChG,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC"}
@@ -37,6 +37,8 @@ export type UsePointerMachineOptions = {
37
37
  /** Set once the user takes the camera over, which stops the view re-fitting itself. */
38
38
  interactedRef: MutableRefObject<boolean>;
39
39
  select: (ids: Iterable<ElementId>) => void;
40
+ /** Scene px of one nominal unit (the model's major grid cell), which a new node's default size is counted in. */
41
+ cell: number;
40
42
  } & Pick<SceneCamera, 'setCamera' | 'cancelAnimation' | 'isNavigating'> & Pick<SceneSnap, 'minor' | 'major' | 'snap' | 'snapMinor'>;
41
43
  export type PointerMachine = {
42
44
  /** Root element handlers. */
@@ -85,5 +87,5 @@ export type PointerMachine = {
85
87
  * is continuing rather than the one the last render closed over, and the view renders the drag by
86
88
  * projecting it onto a copy of the scene.
87
89
  */
88
- export declare const usePointerMachine: ({ registry, atoms, store, scene, nodeRegistry, projection, capabilities, camera, rootRef, interactedRef, select, setCamera, cancelAnimation, isNavigating, minor, major, snap, snapMinor, }: UsePointerMachineOptions) => PointerMachine;
90
+ export declare const usePointerMachine: ({ registry, atoms, store, scene, nodeRegistry, projection, capabilities, camera, rootRef, interactedRef, select, setCamera, cancelAnimation, isNavigating, cell, minor, major, snap, snapMinor, }: UsePointerMachineOptions) => PointerMachine;
89
91
  //# sourceMappingURL=usePointerMachine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePointerMachine.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/usePointerMachine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePointerMachine.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/usePointerMachine.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ import { type Camera, type ElementId, type Size } from '../../model/types.ts';
4
4
  export type SceneCamera = {
5
5
  /** Write the camera, from a value or from its predecessor. */
6
6
  setCamera: (next: Camera | ((camera: Camera) => Camera)) => void;
7
- /** Animate to `target`, calling `done` when the last frame lands. */
8
- animateTo: (target: Camera, done?: () => void) => void;
7
+ /** Animate to `target`, calling `done` when the last frame lands; `duration` fixes its length in ms. */
8
+ animateTo: (target: Camera, done?: () => void, duration?: number) => void;
9
9
  /** Abandon an animation in flight, leaving the camera where it reached. */
10
10
  cancelAnimation: () => void;
11
11
  /** The camera is moving on its own, so the canvas ignores the pointer. */
@@ -1 +1 @@
1
- {"version":3,"file":"useSceneCamera.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneCamera.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAM9E,MAAM,MAAM,WAAW,GAAG;IACxB,8DAA8D;IAC9D,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,qEAAqE;IACrE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACvD,2EAA2E;IAC3E,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;IACpB,sGAAsG;IACtG,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,gFAAgF;IAChF,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,wFAAwF;IACxF,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,0DAA0D;IAC1D,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,aACf,UAAU,CAAC,OAAO,WAAW,CAAC,SACjC,cAAc,YACX,IAAI,KACb,WAyEF,CAAC"}
1
+ {"version":3,"file":"useSceneCamera.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneCamera.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAM9E,MAAM,MAAM,WAAW,GAAG;IACxB,8DAA8D;IAC9D,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC;IACjE,wGAAwG;IACxG,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,2EAA2E;IAC3E,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;IACpB,sGAAsG;IACtG,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,gFAAgF;IAChF,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,wFAAwF;IACxF,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,0DAA0D;IAC1D,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,aACf,UAAU,CAAC,OAAO,WAAW,CAAC,SACjC,cAAc,YACX,IAAI,KACb,WAgFF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSceneClipboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneClipboard.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGjG,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG;IAC3B,oGAAoG;IACpG,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yFAU3B,wBAAwB,KAAG,cAuD7B,CAAC"}
1
+ {"version":3,"file":"useSceneClipboard.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneClipboard.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIjG,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG;IAC3B,oGAAoG;IACpG,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yFAU3B,wBAAwB,KAAG,cA0D7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSceneKeys.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneKeys.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK7G,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACf,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAChC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC,GAC3D,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GACxB,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,GAC9C,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,YAAY,uSA8BtB,mBAAmB,KAAG,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAqJvD,CAAC"}
1
+ {"version":3,"file":"useSceneKeys.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneKeys.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK7G,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACf,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAChC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC,GAC3D,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GACxB,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,GAC9C,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,YAAY,uSA8BtB,mBAAmB,KAAG,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAuJvD,CAAC"}
@@ -1,12 +1,14 @@
1
1
  import { type MutableRefObject } from 'react';
2
2
  import { type useRegistry } from '../../hooks/index.ts';
3
3
  import { type Drag, type HistoryEntry, type SceneViewAtoms } from '../../model/atoms.ts';
4
+ import { type NodeRegistry } from '../../model/registry.ts';
4
5
  import { type SceneStore } from '../../model/store.ts';
5
6
  import { type Bounds, type Camera, type ElementId, type Node, type Scene, type SceneId, type Size } from '../../model/types.ts';
6
7
  import { type SceneCamera } from './useSceneCamera.ts';
7
8
  export type UseSceneNavigationOptions = {
8
9
  registry: ReturnType<typeof useRegistry>;
9
10
  atoms: SceneViewAtoms;
11
+ nodeRegistry: NodeRegistry;
10
12
  store: SceneStore;
11
13
  scenes: Record<SceneId, Scene>;
12
14
  scene: Scene;
@@ -24,13 +26,14 @@ export type SceneNavigation = {
24
26
  nameOf: (id: SceneId) => string;
25
27
  /** The portal in `parent` that shows `childId`, if any. */
26
28
  portalTo: (parentId: SceneId | undefined, childId: SceneId) => Node | undefined;
27
- /** The frame of the scene at the head of `path`: its parent portal's frame, or its derived bounds. */
29
+ /** What fitting the scene at the head of `path` shows: its parent portal's frame, or its content. */
28
30
  frameOf: (path: SceneId[], scene: Scene) => Bounds;
29
31
  /** The current scene's frame, held for the visit rather than re-derived as its content changes. */
30
32
  bounds: Bounds;
31
- /** The zoom against this level's own 1:1 rather than the root's; display only. */
32
- nominalZoom: number;
33
+ /** What Fit shows: the current scene's shapes themselves (the margin is the fit's own inset). */
34
+ fitTarget: Bounds;
33
35
  pushHistory: (entry: HistoryEntry) => void;
36
+ /** Drills into a frame's scene, or opens the node in the host when its type has `hostOpen` for it. */
34
37
  drillIn: (portal: Node, animate?: boolean) => void;
35
38
  drillOut: (levels?: number, animate?: boolean) => void;
36
39
  goHistory: (offset: number) => void;
@@ -40,5 +43,5 @@ export type SceneNavigation = {
40
43
  * swap the root under a camera transition. Auto-drill lives here too, since it is the same two moves
41
44
  * driven by how much of the viewport a portal covers rather than by a gesture.
42
45
  */
43
- export declare const useSceneNavigation: ({ registry, atoms, scenes, scene, path, camera, viewport, inset, drag, interactedRef, select, animateTo, setCamera, setOpening, isAnimating, }: UseSceneNavigationOptions) => SceneNavigation;
46
+ export declare const useSceneNavigation: ({ registry, atoms, nodeRegistry, scenes, scene, path, camera, viewport, inset, drag, interactedRef, select, animateTo, setCamera, setOpening, isAnimating, }: UseSceneNavigationOptions) => SceneNavigation;
44
47
  //# sourceMappingURL=useSceneNavigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSceneNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneNavigation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAA2C,MAAM,OAAO,CAAC;AAEvF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,IAAI,EAEV,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOvD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,uFAAuF;IACvF,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;CAC5C,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;AAEhF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,SAAS,CAAC;IAChF,sGAAsG;IACtG,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IACnD,mGAAmG;IACnG,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,mJAgB5B,yBAAyB,KAAG,eA4M9B,CAAC"}
1
+ {"version":3,"file":"useSceneNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/SceneView/useSceneNavigation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAA2C,MAAM,OAAO,CAAC;AAEvF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,IAAI,EAEV,MAAM,sBAAsB,CAAC;AAY9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAavD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,uFAAuF;IACvF,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;CAC5C,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;AAEhF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,SAAS,CAAC;IAChF,qGAAqG;IACrG,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IACnD,mGAAmG;IACnG,MAAM,EAAE,MAAM,CAAC;IACf,iGAAiG;IACjG,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,sGAAsG;IACtG,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,iKAiB5B,yBAAyB,KAAG,eAoM9B,CAAC"}
@@ -9,6 +9,8 @@ export type ToolbarActions = {
9
9
  nameOf: (id: SceneId) => string;
10
10
  onPath: (index: number) => void;
11
11
  fit: () => void;
12
+ /** Back to true size (100%), about the view's centre. */
13
+ zoomReset: () => void;
12
14
  zoomIn: () => void;
13
15
  zoomOut: () => void;
14
16
  snap: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK9C,OAAO,KAAK,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAIjD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGtF,6FAA6F;AAC7F,MAAM,MAAM,cAAc,GAAG;IAC3B,iFAAiF;IACjF,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,sDAAsD;IACtD,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAQF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC;IACxD,OAAO,EAAE,cAAc,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,sCAAuC,sBAAsB,sBAqB1F,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEzG,wFAAwF;AACxF,eAAO,MAAM,aAAa,sCAAuC,kBAAkB,sBA+BlF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC,CAAC;AAEH,4FAA4F;AAC5F,eAAO,MAAM,aAAa,iDAAkD,kBAAkB,sBAoI7F,CAAC"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/components/Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK9C,OAAO,KAAK,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAIjD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGtF,6FAA6F;AAC7F,MAAM,MAAM,cAAc,GAAG;IAC3B,iFAAiF;IACjF,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,yDAAyD;IACzD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,sDAAsD;IACtD,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAQF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC;IACxD,OAAO,EAAE,cAAc,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEH,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,sCAAuC,sBAAsB,sBAsB1F,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEzG,wFAAwF;AACxF,eAAO,MAAM,aAAa,sCAAuC,kBAAkB,sBAuClF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;IACpD,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC,CAAC;AAEH,4FAA4F;AAC5F,eAAO,MAAM,aAAa,iDAAkD,kBAAkB,sBAoI7F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Toolbar/Toolbar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAyDjE,QAAA,MAAM,IAAI,EAAE,IAIX,CAAC;eAEa,IAAI;AAEnB,eAAO,MAAM,OAAO,EAAE,QAAa,CAAC"}
1
+ {"version":3,"file":"Toolbar.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/Toolbar/Toolbar.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAwDjE,QAAA,MAAM,IAAI,EAAE,IAIX,CAAC;eAEa,IAAI;AAEnB,eAAO,MAAM,OAAO,EAAE,QAAa,CAAC"}
@@ -1,7 +1,9 @@
1
+ export * from './About/index.ts';
1
2
  export * from './Breadcrumbs/index.ts';
2
3
  export * from './ControlFrame/index.ts';
3
4
  export * from './Grid/index.ts';
4
5
  export * from './LatticeGrid/index.ts';
6
+ export * from './Layers/index.ts';
5
7
  export * from './Palette/index.ts';
6
8
  export * from './PartEditor/index.ts';
7
9
  export * from './Properties/index.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
@@ -3,6 +3,11 @@ export type WheelHandler = (event: WheelEvent, pointer: {
3
3
  x: number;
4
4
  y: number;
5
5
  }) => void;
6
+ /**
7
+ * Marks content whose own scrolling takes the wheel rather than the canvas panning: a floating panel over the canvas
8
+ * (the properties form), or a host's content embedded in a node (an object's surface in a frame).
9
+ */
10
+ export declare const SCENE_OVERLAY_ATTRIBUTE = "data-scene-overlay";
6
11
  /** Non-passive wheel listener with the pointer in element coordinates, so the page never scrolls. */
7
12
  export declare const useWheel: (ref: RefObject<HTMLElement | null>, handler: WheelHandler) => void;
8
13
  //# sourceMappingURL=useWheel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWheel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useWheel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE1F,qGAAqG;AACrG,eAAO,MAAM,QAAQ,QAAS,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,YAAY,SAcjF,CAAC"}
1
+ {"version":3,"file":"useWheel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useWheel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAE1F;;;GAGG;AACH,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAqB5D,qGAAqG;AACrG,eAAO,MAAM,QAAQ,QAAS,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,YAAY,SAwBjF,CAAC"}
@@ -1,2 +1,5 @@
1
- export * from './archive/index.ts';
1
+ export * from './components/index.ts';
2
+ export * from './hooks/index.ts';
3
+ export * from './model/index.ts';
4
+ export * from './utils/index.ts';
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}