@dxos/react-ui-canvas 0.12.0-next-73daef452f1464b62efdbca75fb0067c1066f264 → 0.13.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 (466) hide show
  1. package/dist/lib/chunk-Grid.mjs +99 -0
  2. package/dist/lib/chunk-Grid.mjs.map +1 -0
  3. package/dist/lib/index.mjs +30 -82
  4. package/dist/lib/index.mjs.map +1 -1
  5. package/dist/lib/scene.mjs +6835 -0
  6. package/dist/lib/scene.mjs.map +1 -0
  7. package/dist/lib/types.mjs +1 -1
  8. package/dist/lib/types.mjs.map +1 -1
  9. package/dist/types/src/{components → archive/components}/Canvas/Canvas.d.ts +3 -3
  10. package/dist/types/src/archive/components/Canvas/Canvas.d.ts.map +1 -0
  11. package/dist/types/src/{components → archive/components}/Canvas/Canvas.stories.d.ts +1 -1
  12. package/dist/types/src/archive/components/Canvas/Canvas.stories.d.ts.map +1 -0
  13. package/dist/types/src/archive/components/Canvas/index.d.ts +2 -0
  14. package/dist/types/src/{components/CellGrid/state → archive/components/Canvas}/index.d.ts.map +1 -1
  15. package/dist/types/src/{components → archive/components}/CellGrid/CellGrid.d.ts +6 -6
  16. package/dist/types/src/archive/components/CellGrid/CellGrid.d.ts.map +1 -0
  17. package/dist/types/src/{components → archive/components}/CellGrid/CellGrid.stories.d.ts +2 -2
  18. package/dist/types/src/archive/components/CellGrid/CellGrid.stories.d.ts.map +1 -0
  19. package/dist/types/src/{components → archive/components}/CellGrid/headers/Ruler.d.ts +1 -1
  20. package/dist/types/src/archive/components/CellGrid/headers/Ruler.d.ts.map +1 -0
  21. package/dist/types/src/{components → archive/components}/CellGrid/headers/TrackHeader.d.ts +1 -1
  22. package/dist/types/src/archive/components/CellGrid/headers/TrackHeader.d.ts.map +1 -0
  23. package/dist/types/src/archive/components/CellGrid/headers/index.d.ts +3 -0
  24. package/dist/types/src/archive/components/CellGrid/headers/index.d.ts.map +1 -0
  25. package/dist/types/src/archive/components/CellGrid/index.d.ts +6 -0
  26. package/dist/types/src/archive/components/CellGrid/index.d.ts.map +1 -0
  27. package/dist/types/src/archive/components/CellGrid/input/index.d.ts +3 -0
  28. package/dist/types/src/archive/components/CellGrid/input/index.d.ts.map +1 -0
  29. package/dist/types/src/{components → archive/components}/CellGrid/input/pointer.d.ts +3 -3
  30. package/dist/types/src/archive/components/CellGrid/input/pointer.d.ts.map +1 -0
  31. package/dist/types/src/{components → archive/components}/CellGrid/input/wheel.d.ts +3 -3
  32. package/dist/types/src/archive/components/CellGrid/input/wheel.d.ts.map +1 -0
  33. package/dist/types/src/archive/components/CellGrid/render/index.d.ts +3 -0
  34. package/dist/types/src/archive/components/CellGrid/render/index.d.ts.map +1 -0
  35. package/dist/types/src/{components → archive/components}/CellGrid/render/overlay-layer.d.ts +1 -1
  36. package/dist/types/src/archive/components/CellGrid/render/overlay-layer.d.ts.map +1 -0
  37. package/dist/types/src/{components → archive/components}/CellGrid/render/static-layer.d.ts +1 -1
  38. package/dist/types/src/archive/components/CellGrid/render/static-layer.d.ts.map +1 -0
  39. package/dist/types/src/{components → archive/components}/CellGrid/state/atoms.d.ts +2 -2
  40. package/dist/types/src/archive/components/CellGrid/state/atoms.d.ts.map +1 -0
  41. package/dist/types/src/archive/components/CellGrid/state/index.d.ts +4 -0
  42. package/dist/types/src/archive/components/CellGrid/state/index.d.ts.map +1 -0
  43. package/dist/types/src/archive/components/CellGrid/state/types.d.ts.map +1 -0
  44. package/dist/types/src/{components → archive/components}/CellGrid/state/viewport.d.ts +1 -1
  45. package/dist/types/src/archive/components/CellGrid/state/viewport.d.ts.map +1 -0
  46. package/dist/types/src/archive/components/CellGrid/state/viewport.test.d.ts.map +1 -0
  47. package/dist/types/src/{components → archive/components}/FPS.d.ts +2 -2
  48. package/dist/types/src/archive/components/FPS.d.ts.map +1 -0
  49. package/dist/types/src/archive/components/Grid/Grid.d.ts +6 -0
  50. package/dist/types/src/archive/components/Grid/Grid.d.ts.map +1 -0
  51. package/dist/types/src/archive/components/Grid/index.d.ts +2 -0
  52. package/dist/types/src/archive/components/Grid/index.d.ts.map +1 -0
  53. package/dist/types/src/archive/components/index.d.ts +5 -0
  54. package/dist/types/src/archive/components/index.d.ts.map +1 -0
  55. package/dist/types/src/archive/hooks/index.d.ts +5 -0
  56. package/dist/types/src/archive/hooks/index.d.ts.map +1 -0
  57. package/dist/types/src/{hooks → archive/hooks}/projection.d.ts +1 -1
  58. package/dist/types/src/archive/hooks/projection.d.ts.map +1 -0
  59. package/dist/types/src/{hooks → archive/hooks}/useCanvasContext.d.ts +1 -1
  60. package/dist/types/src/archive/hooks/useCanvasContext.d.ts.map +1 -0
  61. package/dist/types/src/archive/hooks/useDrag.d.ts.map +1 -0
  62. package/dist/types/src/archive/hooks/useWheel.d.ts +8 -0
  63. package/dist/types/src/archive/hooks/useWheel.d.ts.map +1 -0
  64. package/dist/types/src/archive/index.d.ts +5 -0
  65. package/dist/types/src/archive/index.d.ts.map +1 -0
  66. package/dist/types/src/archive/types.d.ts.map +1 -0
  67. package/dist/types/src/archive/util/index.d.ts +4 -0
  68. package/dist/types/src/archive/util/index.d.ts.map +1 -0
  69. package/dist/types/src/{util → archive/util}/svg-path.d.ts +1 -1
  70. package/dist/types/src/archive/util/svg-path.d.ts.map +1 -0
  71. package/dist/types/src/{util → archive/util}/svg.d.ts +6 -6
  72. package/dist/types/src/archive/util/svg.d.ts.map +1 -0
  73. package/dist/types/src/archive/util/svg.stories.d.ts.map +1 -0
  74. package/dist/types/src/archive/util/util.d.ts.map +1 -0
  75. package/dist/types/src/components/Breadcrumbs/Breadcrumbs.d.ts +10 -0
  76. package/dist/types/src/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  77. package/dist/types/src/components/Breadcrumbs/index.d.ts +2 -0
  78. package/dist/types/src/components/Breadcrumbs/index.d.ts.map +1 -0
  79. package/dist/types/src/components/ControlFrame/ControlFrame.d.ts +33 -0
  80. package/dist/types/src/components/ControlFrame/ControlFrame.d.ts.map +1 -0
  81. package/dist/types/src/components/ControlFrame/index.d.ts +2 -0
  82. package/dist/types/src/components/ControlFrame/index.d.ts.map +1 -0
  83. package/dist/types/src/components/Grid/Grid.d.ts +12 -4
  84. package/dist/types/src/components/Grid/Grid.d.ts.map +1 -1
  85. package/dist/types/src/components/Grid/Grid.stories.d.ts +4 -21
  86. package/dist/types/src/components/Grid/Grid.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/Grid/index.d.ts +1 -1
  88. package/dist/types/src/components/Grid/index.d.ts.map +1 -1
  89. package/dist/types/src/components/LatticeGrid/LatticeGrid.d.ts +16 -0
  90. package/dist/types/src/components/LatticeGrid/LatticeGrid.d.ts.map +1 -0
  91. package/dist/types/src/components/LatticeGrid/index.d.ts +2 -0
  92. package/dist/types/src/components/LatticeGrid/index.d.ts.map +1 -0
  93. package/dist/types/src/components/Palette/Palette.d.ts +30 -0
  94. package/dist/types/src/components/Palette/Palette.d.ts.map +1 -0
  95. package/dist/types/src/components/Palette/index.d.ts +2 -0
  96. package/dist/types/src/components/Palette/index.d.ts.map +1 -0
  97. package/dist/types/src/components/PartEditor/PartEditor.d.ts +12 -0
  98. package/dist/types/src/components/PartEditor/PartEditor.d.ts.map +1 -0
  99. package/dist/types/src/components/PartEditor/index.d.ts +2 -0
  100. package/dist/types/src/components/PartEditor/index.d.ts.map +1 -0
  101. package/dist/types/src/components/Properties/Properties.d.ts +18 -0
  102. package/dist/types/src/components/Properties/Properties.d.ts.map +1 -0
  103. package/dist/types/src/components/Properties/StyleGrid.d.ts +28 -0
  104. package/dist/types/src/components/Properties/StyleGrid.d.ts.map +1 -0
  105. package/dist/types/src/components/Properties/index.d.ts +2 -0
  106. package/dist/types/src/components/Properties/index.d.ts.map +1 -0
  107. package/dist/types/src/components/SceneLayer/SceneLayer.d.ts +66 -0
  108. package/dist/types/src/components/SceneLayer/SceneLayer.d.ts.map +1 -0
  109. package/dist/types/src/components/SceneLayer/index.d.ts +2 -0
  110. package/dist/types/src/components/SceneLayer/index.d.ts.map +1 -0
  111. package/dist/types/src/components/SceneView/Constrained.stories.d.ts +5 -0
  112. package/dist/types/src/components/SceneView/Constrained.stories.d.ts.map +1 -0
  113. package/dist/types/src/components/SceneView/Dynamic.stories.d.ts +5 -0
  114. package/dist/types/src/components/SceneView/Dynamic.stories.d.ts.map +1 -0
  115. package/dist/types/src/components/SceneView/SceneView.d.ts +83 -0
  116. package/dist/types/src/components/SceneView/SceneView.d.ts.map +1 -0
  117. package/dist/types/src/components/SceneView/SceneView.stories.d.ts +40 -0
  118. package/dist/types/src/components/SceneView/SceneView.stories.d.ts.map +1 -0
  119. package/dist/types/src/components/SceneView/SceneViewContext.d.ts +126 -0
  120. package/dist/types/src/components/SceneView/SceneViewContext.d.ts.map +1 -0
  121. package/dist/types/src/components/SceneView/Scored.stories.d.ts +16 -0
  122. package/dist/types/src/components/SceneView/Scored.stories.d.ts.map +1 -0
  123. package/dist/types/src/components/SceneView/index.d.ts +3 -0
  124. package/dist/types/src/components/SceneView/index.d.ts.map +1 -0
  125. package/dist/types/src/components/SceneView/usePointerMachine.d.ts +89 -0
  126. package/dist/types/src/components/SceneView/usePointerMachine.d.ts.map +1 -0
  127. package/dist/types/src/components/SceneView/useSceneCamera.d.ts +30 -0
  128. package/dist/types/src/components/SceneView/useSceneCamera.d.ts.map +1 -0
  129. package/dist/types/src/components/SceneView/useSceneClipboard.d.ts +26 -0
  130. package/dist/types/src/components/SceneView/useSceneClipboard.d.ts.map +1 -0
  131. package/dist/types/src/components/SceneView/useSceneKeys.d.ts +41 -0
  132. package/dist/types/src/components/SceneView/useSceneKeys.d.ts.map +1 -0
  133. package/dist/types/src/components/SceneView/useSceneNavigation.d.ts +44 -0
  134. package/dist/types/src/components/SceneView/useSceneNavigation.d.ts.map +1 -0
  135. package/dist/types/src/components/SceneView/useSceneSnap.d.ts +26 -0
  136. package/dist/types/src/components/SceneView/useSceneSnap.d.ts.map +1 -0
  137. package/dist/types/src/components/Toolbar/Toolbar.d.ts +58 -0
  138. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
  139. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +5 -0
  140. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -0
  141. package/dist/types/src/components/Toolbar/index.d.ts +2 -0
  142. package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
  143. package/dist/types/src/components/index.d.ts +10 -4
  144. package/dist/types/src/components/index.d.ts.map +1 -1
  145. package/dist/types/src/hooks/index.d.ts +4 -4
  146. package/dist/types/src/hooks/index.d.ts.map +1 -1
  147. package/dist/types/src/hooks/useRegistry.d.ts +3 -0
  148. package/dist/types/src/hooks/useRegistry.d.ts.map +1 -0
  149. package/dist/types/src/hooks/useSceneProjection.d.ts +19 -0
  150. package/dist/types/src/hooks/useSceneProjection.d.ts.map +1 -0
  151. package/dist/types/src/hooks/useViewport.d.ts +8 -0
  152. package/dist/types/src/hooks/useViewport.d.ts.map +1 -0
  153. package/dist/types/src/hooks/useWheel.d.ts +7 -7
  154. package/dist/types/src/hooks/useWheel.d.ts.map +1 -1
  155. package/dist/types/src/index.d.ts +1 -4
  156. package/dist/types/src/index.d.ts.map +1 -1
  157. package/dist/types/src/model/atoms.d.ts +133 -0
  158. package/dist/types/src/model/atoms.d.ts.map +1 -0
  159. package/dist/types/src/model/index.d.ts +11 -0
  160. package/dist/types/src/model/index.d.ts.map +1 -0
  161. package/dist/types/src/model/keys.d.ts +35 -0
  162. package/dist/types/src/model/keys.d.ts.map +1 -0
  163. package/dist/types/src/model/keys.test.d.ts +2 -0
  164. package/dist/types/src/model/keys.test.d.ts.map +1 -0
  165. package/dist/types/src/model/node-def.d.ts +5 -0
  166. package/dist/types/src/model/node-def.d.ts.map +1 -0
  167. package/dist/types/src/model/projection.d.ts +44 -0
  168. package/dist/types/src/model/projection.d.ts.map +1 -0
  169. package/dist/types/src/model/projection.test.d.ts +2 -0
  170. package/dist/types/src/model/projection.test.d.ts.map +1 -0
  171. package/dist/types/src/model/projections/constrained.d.ts +54 -0
  172. package/dist/types/src/model/projections/constrained.d.ts.map +1 -0
  173. package/dist/types/src/model/projections/constrained.test.d.ts +2 -0
  174. package/dist/types/src/model/projections/constrained.test.d.ts.map +1 -0
  175. package/dist/types/src/model/projections/dynamic.d.ts +42 -0
  176. package/dist/types/src/model/projections/dynamic.d.ts.map +1 -0
  177. package/dist/types/src/model/projections/dynamic.test.d.ts +2 -0
  178. package/dist/types/src/model/projections/dynamic.test.d.ts.map +1 -0
  179. package/dist/types/src/model/projections/lattice.d.ts +21 -0
  180. package/dist/types/src/model/projections/lattice.d.ts.map +1 -0
  181. package/dist/types/src/model/projections/lattice.test.d.ts +2 -0
  182. package/dist/types/src/model/projections/lattice.test.d.ts.map +1 -0
  183. package/dist/types/src/model/registry.d.ts +86 -0
  184. package/dist/types/src/model/registry.d.ts.map +1 -0
  185. package/dist/types/src/model/registry.test.d.ts +2 -0
  186. package/dist/types/src/model/registry.test.d.ts.map +1 -0
  187. package/dist/types/src/model/store.d.ts +15 -0
  188. package/dist/types/src/model/store.d.ts.map +1 -0
  189. package/dist/types/src/model/types.d.ts +1520 -0
  190. package/dist/types/src/model/types.d.ts.map +1 -0
  191. package/dist/types/src/playwright/SceneManager.d.ts +50 -0
  192. package/dist/types/src/playwright/SceneManager.d.ts.map +1 -0
  193. package/dist/types/src/playwright/create.spec.d.ts +2 -0
  194. package/dist/types/src/playwright/create.spec.d.ts.map +1 -0
  195. package/dist/types/src/playwright/demo.spec.d.ts +2 -0
  196. package/dist/types/src/playwright/demo.spec.d.ts.map +1 -0
  197. package/dist/types/src/playwright/lattice.spec.d.ts +2 -0
  198. package/dist/types/src/playwright/lattice.spec.d.ts.map +1 -0
  199. package/dist/types/src/playwright/playwright.config.d.ts +3 -0
  200. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  201. package/dist/types/src/playwright/scene.spec.d.ts +2 -0
  202. package/dist/types/src/playwright/scene.spec.d.ts.map +1 -0
  203. package/dist/types/src/scene.d.ts +5 -0
  204. package/dist/types/src/scene.d.ts.map +1 -0
  205. package/dist/types/src/utils/builder.d.ts +213 -0
  206. package/dist/types/src/utils/builder.d.ts.map +1 -0
  207. package/dist/types/src/utils/builder.test.d.ts +2 -0
  208. package/dist/types/src/utils/builder.test.d.ts.map +1 -0
  209. package/dist/types/src/utils/camera.d.ts +45 -0
  210. package/dist/types/src/utils/camera.d.ts.map +1 -0
  211. package/dist/types/src/utils/camera.test.d.ts +2 -0
  212. package/dist/types/src/utils/camera.test.d.ts.map +1 -0
  213. package/dist/types/src/utils/clipboard.d.ts +32 -0
  214. package/dist/types/src/utils/clipboard.d.ts.map +1 -0
  215. package/dist/types/src/utils/clipboard.test.d.ts +2 -0
  216. package/dist/types/src/utils/clipboard.test.d.ts.map +1 -0
  217. package/dist/types/src/utils/diagram.d.ts +17 -0
  218. package/dist/types/src/utils/diagram.d.ts.map +1 -0
  219. package/dist/types/src/utils/diagram.test.d.ts +2 -0
  220. package/dist/types/src/utils/diagram.test.d.ts.map +1 -0
  221. package/dist/types/src/utils/dnd.d.ts +6 -0
  222. package/dist/types/src/utils/dnd.d.ts.map +1 -0
  223. package/dist/types/src/utils/gutter-route.d.ts +9 -0
  224. package/dist/types/src/utils/gutter-route.d.ts.map +1 -0
  225. package/dist/types/src/utils/gutter-route.test.d.ts +2 -0
  226. package/dist/types/src/utils/gutter-route.test.d.ts.map +1 -0
  227. package/dist/types/src/utils/hit.d.ts +37 -0
  228. package/dist/types/src/utils/hit.d.ts.map +1 -0
  229. package/dist/types/src/utils/hit.test.d.ts +2 -0
  230. package/dist/types/src/utils/hit.test.d.ts.map +1 -0
  231. package/dist/types/src/utils/index.d.ts +17 -0
  232. package/dist/types/src/utils/index.d.ts.map +1 -0
  233. package/dist/types/src/utils/lattice.d.ts +42 -0
  234. package/dist/types/src/utils/lattice.d.ts.map +1 -0
  235. package/dist/types/src/utils/lattice.test.d.ts +2 -0
  236. package/dist/types/src/utils/lattice.test.d.ts.map +1 -0
  237. package/dist/types/src/utils/layout.d.ts +30 -0
  238. package/dist/types/src/utils/layout.d.ts.map +1 -0
  239. package/dist/types/src/utils/layout.test.d.ts +2 -0
  240. package/dist/types/src/utils/layout.test.d.ts.map +1 -0
  241. package/dist/types/src/utils/order.d.ts +16 -0
  242. package/dist/types/src/utils/order.d.ts.map +1 -0
  243. package/dist/types/src/utils/order.test.d.ts +2 -0
  244. package/dist/types/src/utils/order.test.d.ts.map +1 -0
  245. package/dist/types/src/utils/parts.d.ts +17 -0
  246. package/dist/types/src/utils/parts.d.ts.map +1 -0
  247. package/dist/types/src/utils/parts.test.d.ts +2 -0
  248. package/dist/types/src/utils/parts.test.d.ts.map +1 -0
  249. package/dist/types/src/utils/ports.d.ts +51 -0
  250. package/dist/types/src/utils/ports.d.ts.map +1 -0
  251. package/dist/types/src/utils/ports.test.d.ts +2 -0
  252. package/dist/types/src/utils/ports.test.d.ts.map +1 -0
  253. package/dist/types/src/utils/properties.d.ts +29 -0
  254. package/dist/types/src/utils/properties.d.ts.map +1 -0
  255. package/dist/types/src/utils/properties.test.d.ts +2 -0
  256. package/dist/types/src/utils/properties.test.d.ts.map +1 -0
  257. package/dist/types/src/utils/resize.d.ts +13 -0
  258. package/dist/types/src/utils/resize.d.ts.map +1 -0
  259. package/dist/types/src/utils/resize.test.d.ts +2 -0
  260. package/dist/types/src/utils/resize.test.d.ts.map +1 -0
  261. package/dist/types/src/utils/route.d.ts +55 -0
  262. package/dist/types/src/utils/route.d.ts.map +1 -0
  263. package/dist/types/src/utils/route.test.d.ts +2 -0
  264. package/dist/types/src/utils/route.test.d.ts.map +1 -0
  265. package/dist/types/src/utils/shapes.d.ts +41 -0
  266. package/dist/types/src/utils/shapes.d.ts.map +1 -0
  267. package/dist/types/src/utils/shapes.test.d.ts +2 -0
  268. package/dist/types/src/utils/shapes.test.d.ts.map +1 -0
  269. package/dist/types/src/utils/style.d.ts +30 -0
  270. package/dist/types/src/utils/style.d.ts.map +1 -0
  271. package/dist/types/src/utils/testing.d.ts +18 -0
  272. package/dist/types/src/utils/testing.d.ts.map +1 -0
  273. package/dist/types/src/utils/testing.test.d.ts +2 -0
  274. package/dist/types/src/utils/testing.test.d.ts.map +1 -0
  275. package/dist/types/src/utils/undo.d.ts +20 -0
  276. package/dist/types/src/utils/undo.d.ts.map +1 -0
  277. package/dist/types/src/utils/undo.test.d.ts +2 -0
  278. package/dist/types/src/utils/undo.test.d.ts.map +1 -0
  279. package/dist/types/tsconfig.tsbuildinfo +1 -1
  280. package/package.json +32 -13
  281. package/src/{components → archive/components}/Canvas/Canvas.stories.tsx +6 -6
  282. package/src/{components → archive/components}/Canvas/Canvas.tsx +6 -4
  283. package/src/archive/components/Canvas/index.ts +5 -0
  284. package/src/{components → archive/components}/CellGrid/CellGrid.stories.tsx +7 -7
  285. package/src/{components → archive/components}/CellGrid/CellGrid.tsx +11 -11
  286. package/src/{components → archive/components}/CellGrid/headers/Ruler.tsx +2 -2
  287. package/src/{components → archive/components}/CellGrid/headers/TrackHeader.tsx +1 -1
  288. package/src/archive/components/CellGrid/headers/index.ts +6 -0
  289. package/src/archive/components/CellGrid/index.ts +9 -0
  290. package/src/archive/components/CellGrid/input/index.ts +6 -0
  291. package/src/{components → archive/components}/CellGrid/input/pointer.ts +4 -4
  292. package/src/{components → archive/components}/CellGrid/input/wheel.ts +4 -4
  293. package/src/archive/components/CellGrid/render/index.ts +6 -0
  294. package/src/{components → archive/components}/CellGrid/render/overlay-layer.ts +2 -2
  295. package/src/{components → archive/components}/CellGrid/render/static-layer.ts +2 -2
  296. package/src/{components → archive/components}/CellGrid/state/atoms.ts +2 -2
  297. package/src/archive/components/CellGrid/state/index.ts +7 -0
  298. package/src/{components → archive/components}/CellGrid/state/viewport.test.ts +2 -2
  299. package/src/{components → archive/components}/CellGrid/state/viewport.ts +1 -1
  300. package/src/{components → archive/components}/FPS.tsx +3 -3
  301. package/src/archive/components/Grid/Grid.tsx +17 -0
  302. package/src/{components/Canvas → archive/components/Grid}/index.ts +1 -1
  303. package/src/archive/components/index.ts +8 -0
  304. package/src/archive/hooks/index.ts +8 -0
  305. package/src/{hooks → archive/hooks}/projection.tsx +1 -1
  306. package/src/{hooks → archive/hooks}/useCanvasContext.ts +2 -2
  307. package/src/{hooks → archive/hooks}/useDrag.tsx +1 -1
  308. package/src/{hooks → archive/hooks}/useWheel.tsx +3 -3
  309. package/src/archive/index.ts +8 -0
  310. package/src/archive/util/index.ts +7 -0
  311. package/src/{util → archive/util}/svg-path.ts +1 -1
  312. package/src/{util → archive/util}/svg.stories.tsx +3 -3
  313. package/src/{util → archive/util}/svg.tsx +7 -7
  314. package/src/components/Breadcrumbs/Breadcrumbs.tsx +30 -0
  315. package/src/components/Breadcrumbs/index.ts +5 -0
  316. package/src/components/ControlFrame/ControlFrame.tsx +319 -0
  317. package/src/components/ControlFrame/index.ts +5 -0
  318. package/src/components/Grid/Grid.stories.tsx +110 -17
  319. package/src/components/Grid/Grid.tsx +54 -22
  320. package/src/components/Grid/index.ts +2 -2
  321. package/src/components/LatticeGrid/LatticeGrid.tsx +58 -0
  322. package/src/components/LatticeGrid/index.ts +5 -0
  323. package/src/components/Palette/Palette.tsx +133 -0
  324. package/src/components/Palette/index.ts +5 -0
  325. package/src/components/PartEditor/PartEditor.tsx +126 -0
  326. package/src/components/PartEditor/index.ts +5 -0
  327. package/src/components/Properties/Properties.tsx +218 -0
  328. package/src/components/Properties/StyleGrid.tsx +118 -0
  329. package/src/components/Properties/index.ts +5 -0
  330. package/src/components/SceneLayer/SceneLayer.tsx +454 -0
  331. package/src/components/SceneLayer/index.ts +5 -0
  332. package/src/components/SceneView/Constrained.stories.tsx +97 -0
  333. package/src/components/SceneView/Dynamic.stories.tsx +136 -0
  334. package/src/components/SceneView/SceneView.stories.tsx +206 -0
  335. package/src/components/SceneView/SceneView.tsx +1036 -0
  336. package/src/components/SceneView/SceneViewContext.ts +111 -0
  337. package/src/components/SceneView/Scored.stories.tsx +393 -0
  338. package/src/components/SceneView/index.ts +6 -0
  339. package/src/components/SceneView/usePointerMachine.ts +869 -0
  340. package/src/components/SceneView/useSceneCamera.ts +118 -0
  341. package/src/components/SceneView/useSceneClipboard.ts +101 -0
  342. package/src/components/SceneView/useSceneKeys.ts +236 -0
  343. package/src/components/SceneView/useSceneNavigation.ts +288 -0
  344. package/src/components/SceneView/useSceneSnap.ts +52 -0
  345. package/src/components/Toolbar/Toolbar.stories.tsx +70 -0
  346. package/src/components/Toolbar/Toolbar.tsx +270 -0
  347. package/src/components/Toolbar/index.ts +5 -0
  348. package/src/components/index.ts +11 -5
  349. package/src/hooks/index.ts +5 -5
  350. package/src/hooks/useRegistry.ts +9 -0
  351. package/src/hooks/useSceneProjection.ts +55 -0
  352. package/src/hooks/useViewport.ts +31 -0
  353. package/src/hooks/useWheel.ts +24 -0
  354. package/src/index.ts +3 -4
  355. package/src/model/atoms.ts +119 -0
  356. package/src/model/index.ts +14 -0
  357. package/src/model/keys.test.ts +57 -0
  358. package/src/model/keys.ts +128 -0
  359. package/src/model/node-def.ts +12 -0
  360. package/src/model/projection.test.ts +134 -0
  361. package/src/model/projection.ts +199 -0
  362. package/src/model/projections/constrained.test.ts +138 -0
  363. package/src/model/projections/constrained.ts +336 -0
  364. package/src/model/projections/dynamic.test.ts +75 -0
  365. package/src/model/projections/dynamic.ts +218 -0
  366. package/src/model/projections/lattice.test.ts +114 -0
  367. package/src/model/projections/lattice.ts +171 -0
  368. package/src/model/registry.test.ts +120 -0
  369. package/src/model/registry.ts +227 -0
  370. package/src/model/store.ts +60 -0
  371. package/src/model/types.ts +352 -0
  372. package/src/playwright/SceneManager.ts +141 -0
  373. package/src/playwright/create.spec.ts +117 -0
  374. package/src/playwright/demo.spec.ts +94 -0
  375. package/src/playwright/lattice.spec.ts +121 -0
  376. package/src/playwright/playwright.config.ts +13 -0
  377. package/src/playwright/scene.spec.ts +341 -0
  378. package/src/scene.ts +9 -0
  379. package/src/utils/builder.test.ts +94 -0
  380. package/src/utils/builder.ts +250 -0
  381. package/src/utils/camera.test.ts +158 -0
  382. package/src/utils/camera.ts +195 -0
  383. package/src/utils/clipboard.test.ts +115 -0
  384. package/src/utils/clipboard.ts +122 -0
  385. package/src/utils/diagram.test.ts +58 -0
  386. package/src/utils/diagram.ts +118 -0
  387. package/src/utils/dnd.ts +19 -0
  388. package/src/utils/gutter-route.test.ts +141 -0
  389. package/src/utils/gutter-route.ts +162 -0
  390. package/src/utils/hit.test.ts +83 -0
  391. package/src/utils/hit.ts +117 -0
  392. package/src/utils/index.ts +20 -0
  393. package/src/utils/lattice.test.ts +105 -0
  394. package/src/utils/lattice.ts +152 -0
  395. package/src/utils/layout.test.ts +100 -0
  396. package/src/utils/layout.ts +109 -0
  397. package/src/utils/order.test.ts +46 -0
  398. package/src/utils/order.ts +72 -0
  399. package/src/utils/parts.test.ts +85 -0
  400. package/src/utils/parts.ts +67 -0
  401. package/src/utils/ports.test.ts +190 -0
  402. package/src/utils/ports.ts +179 -0
  403. package/src/utils/properties.test.ts +63 -0
  404. package/src/utils/properties.ts +166 -0
  405. package/src/utils/resize.test.ts +47 -0
  406. package/src/utils/resize.ts +77 -0
  407. package/src/utils/route.test.ts +101 -0
  408. package/src/utils/route.ts +304 -0
  409. package/src/utils/shapes.test.ts +38 -0
  410. package/src/utils/shapes.ts +140 -0
  411. package/src/utils/style.ts +147 -0
  412. package/src/utils/testing.test.ts +101 -0
  413. package/src/utils/testing.ts +228 -0
  414. package/src/utils/undo.test.ts +74 -0
  415. package/src/utils/undo.ts +87 -0
  416. package/dist/types/src/components/Canvas/Canvas.d.ts.map +0 -1
  417. package/dist/types/src/components/Canvas/Canvas.stories.d.ts.map +0 -1
  418. package/dist/types/src/components/Canvas/index.d.ts +0 -2
  419. package/dist/types/src/components/Canvas/index.d.ts.map +0 -1
  420. package/dist/types/src/components/CellGrid/CellGrid.d.ts.map +0 -1
  421. package/dist/types/src/components/CellGrid/CellGrid.stories.d.ts.map +0 -1
  422. package/dist/types/src/components/CellGrid/headers/Ruler.d.ts.map +0 -1
  423. package/dist/types/src/components/CellGrid/headers/TrackHeader.d.ts.map +0 -1
  424. package/dist/types/src/components/CellGrid/headers/index.d.ts +0 -3
  425. package/dist/types/src/components/CellGrid/headers/index.d.ts.map +0 -1
  426. package/dist/types/src/components/CellGrid/index.d.ts +0 -6
  427. package/dist/types/src/components/CellGrid/index.d.ts.map +0 -1
  428. package/dist/types/src/components/CellGrid/input/index.d.ts +0 -3
  429. package/dist/types/src/components/CellGrid/input/index.d.ts.map +0 -1
  430. package/dist/types/src/components/CellGrid/input/pointer.d.ts.map +0 -1
  431. package/dist/types/src/components/CellGrid/input/wheel.d.ts.map +0 -1
  432. package/dist/types/src/components/CellGrid/render/index.d.ts +0 -3
  433. package/dist/types/src/components/CellGrid/render/index.d.ts.map +0 -1
  434. package/dist/types/src/components/CellGrid/render/overlay-layer.d.ts.map +0 -1
  435. package/dist/types/src/components/CellGrid/render/static-layer.d.ts.map +0 -1
  436. package/dist/types/src/components/CellGrid/state/atoms.d.ts.map +0 -1
  437. package/dist/types/src/components/CellGrid/state/index.d.ts +0 -4
  438. package/dist/types/src/components/CellGrid/state/types.d.ts.map +0 -1
  439. package/dist/types/src/components/CellGrid/state/viewport.d.ts.map +0 -1
  440. package/dist/types/src/components/CellGrid/state/viewport.test.d.ts.map +0 -1
  441. package/dist/types/src/components/FPS.d.ts.map +0 -1
  442. package/dist/types/src/hooks/projection.d.ts.map +0 -1
  443. package/dist/types/src/hooks/useCanvasContext.d.ts.map +0 -1
  444. package/dist/types/src/hooks/useDrag.d.ts.map +0 -1
  445. package/dist/types/src/types.d.ts.map +0 -1
  446. package/dist/types/src/util/index.d.ts +0 -4
  447. package/dist/types/src/util/index.d.ts.map +0 -1
  448. package/dist/types/src/util/svg-path.d.ts.map +0 -1
  449. package/dist/types/src/util/svg.d.ts.map +0 -1
  450. package/dist/types/src/util/svg.stories.d.ts.map +0 -1
  451. package/dist/types/src/util/util.d.ts.map +0 -1
  452. package/src/components/CellGrid/headers/index.ts +0 -6
  453. package/src/components/CellGrid/index.ts +0 -9
  454. package/src/components/CellGrid/input/index.ts +0 -6
  455. package/src/components/CellGrid/render/index.ts +0 -6
  456. package/src/components/CellGrid/state/index.ts +0 -7
  457. package/src/util/index.ts +0 -7
  458. /package/dist/types/src/{components → archive/components}/CellGrid/state/types.d.ts +0 -0
  459. /package/dist/types/src/{components → archive/components}/CellGrid/state/viewport.test.d.ts +0 -0
  460. /package/dist/types/src/{hooks → archive/hooks}/useDrag.d.ts +0 -0
  461. /package/dist/types/src/{types.d.ts → archive/types.d.ts} +0 -0
  462. /package/dist/types/src/{util → archive/util}/svg.stories.d.ts +0 -0
  463. /package/dist/types/src/{util → archive/util}/util.d.ts +0 -0
  464. /package/src/{components → archive/components}/CellGrid/state/types.ts +0 -0
  465. /package/src/{types.ts → archive/types.ts} +0 -0
  466. /package/src/{util → archive/util}/util.ts +0 -0
@@ -0,0 +1,99 @@
1
+ import { forwardRef, useId, useMemo } from "react";
2
+ import { mx } from "@dxos/ui-theme";
3
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
4
+ import * as Hooks from "@dxos/react-ui/Hooks";
5
+ //#region src/components/Grid/Grid.tsx
6
+ var gridRatios = [
7
+ 1 / 4,
8
+ 1,
9
+ 4,
10
+ 16
11
+ ];
12
+ var defaultGridSize = 16;
13
+ var defaultOffset = {
14
+ x: 0,
15
+ y: 0
16
+ };
17
+ var defaultRange = [defaultGridSize, 128];
18
+ var createId = (parent, grid) => `dx-canvas-grid-${parent}-${grid}`;
19
+ /**
20
+ * A level's line opacity from its on-screen spacing alone: faint at the finest drawn spacing, a step
21
+ * darker per fourfold. A level then fades in as the view zooms rather than popping, and a scene swap
22
+ * that keeps every spacing (drilling through a grid-aligned portal) keeps every line as it was. The
23
+ * step is small and the ceiling low: the grid is a guide under the diagram, so the coarse levels in
24
+ * particular must not read as content.
25
+ */
26
+ var levelOpacity = (size, min) => Math.min(.12, .04 + .02 * Math.log(size / min) / Math.log(4));
27
+ /** Multi-level grid in screen space, fed the camera's scale and offset. */
28
+ var GridComponent = forwardRef(({ size: gridSize = defaultGridSize, scale = 1, offset = defaultOffset, showAxes = true, ratios = gridRatios, range = defaultRange, classNames }, forwardedRef) => {
29
+ const svgRef = Hooks.useForwardedRef(forwardedRef);
30
+ const { width = 0, height = 0 } = svgRef.current?.getBoundingClientRect() ?? {};
31
+ const instanceId = useId();
32
+ const [min, max] = range;
33
+ const grids = useMemo(() => ratios.map((ratio) => ({
34
+ id: ratio,
35
+ size: ratio * gridSize * scale
36
+ })).filter(({ size }) => size >= min && size <= max), [
37
+ ratios,
38
+ gridSize,
39
+ scale,
40
+ min,
41
+ max
42
+ ]);
43
+ return /* @__PURE__ */ jsxs("svg", {
44
+ "data-testid": "dx-canvas-grid",
45
+ ref: svgRef,
46
+ className: mx("dx-cover w-full h-full pointer-events-none touch-none select-none", "stroke-neutral-500", classNames),
47
+ children: [
48
+ /* @__PURE__ */ jsx("defs", { children: grids.map(({ id, size }) => /* @__PURE__ */ jsx(GridPattern, {
49
+ id: createId(instanceId, id),
50
+ offset,
51
+ size
52
+ }, id)) }),
53
+ showAxes && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("line", {
54
+ x1: 0,
55
+ y1: offset.y,
56
+ x2: width,
57
+ y2: offset.y,
58
+ className: "stroke-neutral-500 opacity-40"
59
+ }), /* @__PURE__ */ jsx("line", {
60
+ x1: offset.x,
61
+ y1: 0,
62
+ x2: offset.x,
63
+ y2: height,
64
+ className: "stroke-neutral-500 opacity-40"
65
+ })] }),
66
+ /* @__PURE__ */ jsx("g", { children: grids.map(({ id, size }) => /* @__PURE__ */ jsx("rect", {
67
+ opacity: levelOpacity(size, min),
68
+ fill: `url(#${createId(instanceId, id)})`,
69
+ width: "100%",
70
+ height: "100%"
71
+ }, id)) })
72
+ ]
73
+ });
74
+ });
75
+ GridComponent.displayName = "GridComponent";
76
+ /** One grid level as an SVG pattern of crossing lines, offset so a line sits on the origin. */
77
+ var GridPattern = ({ id, size, offset }) => /* @__PURE__ */ jsxs("pattern", {
78
+ id,
79
+ x: (size / 2 + offset.x) % size,
80
+ y: (size / 2 + offset.y) % size,
81
+ width: size,
82
+ height: size,
83
+ patternUnits: "userSpaceOnUse",
84
+ children: [/* @__PURE__ */ jsx("line", {
85
+ x1: 0,
86
+ y1: size / 2,
87
+ x2: size,
88
+ y2: size / 2
89
+ }), /* @__PURE__ */ jsx("line", {
90
+ x1: size / 2,
91
+ y1: 0,
92
+ x2: size / 2,
93
+ y2: size
94
+ })]
95
+ });
96
+ //#endregion
97
+ export { GridComponent as t };
98
+
99
+ //# sourceMappingURL=chunk-Grid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-Grid.mjs","names":[],"sources":["../../src/components/Grid/Grid.tsx"],"sourcesContent":["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useId, useMemo } from 'react';\n\nimport * as Hooks from '@dxos/react-ui/Hooks';\nimport type * as Util from '@dxos/react-ui/Util';\nimport { mx } from '@dxos/ui-theme';\n\nimport { type Point } from '../../model/types.ts';\n\nconst gridRatios = [1 / 4, 1, 4, 16];\n\nconst defaultGridSize = 16;\nconst defaultOffset: Point = { x: 0, y: 0 };\nconst defaultRange = [defaultGridSize, 128] as const;\n\nconst createId = (parent: string, grid: number) => `dx-canvas-grid-${parent}-${grid}`;\n\n/**\n * A level's line opacity from its on-screen spacing alone: faint at the finest drawn spacing, a step\n * darker per fourfold. A level then fades in as the view zooms rather than popping, and a scene swap\n * that keeps every spacing (drilling through a grid-aligned portal) keeps every line as it was. The\n * step is small and the ceiling low: the grid is a guide under the diagram, so the coarse levels in\n * particular must not read as content.\n */\nconst levelOpacity = (size: number, min: number) => Math.min(0.12, 0.04 + (0.02 * Math.log(size / min)) / Math.log(4));\n\nexport type GridProps = Util.ThemedClassName<{\n size?: number;\n scale?: number;\n offset?: Point;\n showAxes?: boolean;\n /** Grid levels as multiples of `size`, finest first. */\n ratios?: readonly number[];\n /** On-screen cell size (px) outside which a level is not drawn. */\n range?: readonly [min: number, max: number];\n}>;\n\n/** Multi-level grid in screen space, fed the camera's scale and offset. */\nexport const GridComponent = forwardRef<SVGSVGElement, GridProps>(\n (\n {\n size: gridSize = defaultGridSize,\n scale = 1,\n offset = defaultOffset,\n showAxes = true,\n ratios = gridRatios,\n range = defaultRange,\n classNames,\n },\n forwardedRef,\n ) => {\n const svgRef = Hooks.useForwardedRef(forwardedRef);\n const { width = 0, height = 0 } = svgRef.current?.getBoundingClientRect() ?? {};\n\n const instanceId = useId();\n const [min, max] = range;\n const grids = useMemo(\n () =>\n ratios\n .map((ratio) => ({ id: ratio, size: ratio * gridSize * scale }))\n .filter(({ size }) => size >= min && size <= max),\n [ratios, gridSize, scale, min, max],\n );\n\n return (\n <svg\n data-testid='dx-canvas-grid'\n ref={svgRef}\n // `dx-cover` (absolute inset-0) does not stretch a replaced <svg> element — without an explicit\n // size it falls back to the intrinsic 300x150, clipping the 100%-sized grid rects. Force full size.\n className={mx(\n 'dx-cover w-full h-full pointer-events-none touch-none select-none',\n 'stroke-neutral-500',\n classNames,\n )}\n >\n {/* NOTE: The pattern is offset so that the middle of the pattern aligns with the grid. */}\n <defs>\n {grids.map(({ id, size }) => (\n <GridPattern key={id} id={createId(instanceId, id)} offset={offset} size={size} />\n ))}\n </defs>\n {showAxes && (\n <>\n <line x1={0} y1={offset.y} x2={width} y2={offset.y} className='stroke-neutral-500 opacity-40' />\n <line x1={offset.x} y1={0} x2={offset.x} y2={height} className='stroke-neutral-500 opacity-40' />\n </>\n )}\n <g>\n {grids.map(({ id, size }) => (\n <rect\n key={id}\n opacity={levelOpacity(size, min)}\n fill={`url(#${createId(instanceId, id)})`}\n width='100%'\n height='100%'\n />\n ))}\n </g>\n </svg>\n );\n },\n);\n\nGridComponent.displayName = 'GridComponent';\n\n/** One grid level as an SVG pattern of crossing lines, offset so a line sits on the origin. */\nconst GridPattern = ({ id, size, offset }: { id: string; size: number; offset: Point }) => (\n <pattern\n id={id}\n x={(size / 2 + offset.x) % size}\n y={(size / 2 + offset.y) % size}\n width={size}\n height={size}\n patternUnits='userSpaceOnUse'\n >\n <line x1={0} y1={size / 2} x2={size} y2={size / 2} />\n <line x1={size / 2} y1={0} x2={size / 2} y2={size} />\n </pattern>\n);\n"],"mappings":";;;;;AAYA,IAAM,aAAa;CAAC,IAAI;CAAG;CAAG;CAAG;AAAE;AAEnC,IAAM,kBAAkB;AACxB,IAAM,gBAAuB;CAAE,GAAG;CAAG,GAAG;AAAE;AAC1C,IAAM,eAAe,CAAC,iBAAiB,GAAG;AAE1C,IAAM,YAAY,QAAgB,SAAiB,kBAAkB,OAAO,GAAG;;;;;;;;AAS/E,IAAM,gBAAgB,MAAc,QAAgB,KAAK,IAAI,KAAM,MAAQ,MAAO,KAAK,IAAI,OAAO,GAAG,IAAK,KAAK,IAAI,CAAC,CAAC;;AAcrH,IAAa,gBAAgB,YAEzB,EACE,MAAM,WAAW,iBACjB,QAAQ,GACR,SAAS,eACT,WAAW,MACX,SAAS,YACT,QAAQ,cACR,cAEF,iBACG;CACH,MAAM,SAAS,MAAM,gBAAgB,YAAY;CACjD,MAAM,EAAE,QAAQ,GAAG,SAAS,MAAM,OAAO,SAAS,sBAAsB,KAAK,CAAC;CAE9E,MAAM,aAAa,MAAM;CACzB,MAAM,CAAC,KAAK,OAAO;CACnB,MAAM,QAAQ,cAEV,OACG,KAAK,WAAW;EAAE,IAAI;EAAO,MAAM,QAAQ,WAAW;CAAM,EAAE,CAAA,CAC9D,QAAQ,EAAE,WAAW,QAAQ,OAAO,QAAQ,GAAG,GACpD;EAAC;EAAQ;EAAU;EAAO;EAAK;CAAG,CACpC;CAEA,OACE,qBAAC,OAAD;EACE,eAAY;EACZ,KAAK;EAGL,WAAW,GACT,qEACA,sBACA,UACF;EATF,UAAA;GAYE,oBAAC,QAAD,EAAA,UACG,MAAM,KAAK,EAAE,IAAI,WAChB,oBAAC,aAAD;IAAsB,IAAI,SAAS,YAAY,EAAE;IAAW;IAAc;GAAO,GAA/D,EAA+D,CAClF,EACG,CAAA;GACL,YACC,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD;IAAM,IAAI;IAAG,IAAI,OAAO;IAAG,IAAI;IAAO,IAAI,OAAO;IAAG,WAAU;GAAiC,CAAA,GAC/F,oBAAC,QAAD;IAAM,IAAI,OAAO;IAAG,IAAI;IAAG,IAAI,OAAO;IAAG,IAAI;IAAQ,WAAU;GAAiC,CAAA,CAChG,EAAA,CAAA;GAEJ,oBAAC,KAAD,EAAA,UACG,MAAM,KAAK,EAAE,IAAI,WAChB,oBAAC,QAAD;IAEE,SAAS,aAAa,MAAM,GAAG;IAC/B,MAAM,QAAQ,SAAS,YAAY,EAAE,EAAE;IACvC,OAAM;IACN,QAAO;GACR,GALM,EAKN,CACF,EACA,CAAA;EACA;;AAET,CACF;AAEA,cAAc,cAAc;;AAG5B,IAAM,eAAe,EAAE,IAAI,MAAM,aAC/B,qBAAC,WAAD;CACM;CACJ,IAAI,OAAO,IAAI,OAAO,KAAK;CAC3B,IAAI,OAAO,IAAI,OAAO,KAAK;CAC3B,OAAO;CACP,QAAQ;CACR,cAAa;CANf,UAAA,CAQE,oBAAC,QAAD;EAAM,IAAI;EAAG,IAAI,OAAO;EAAG,IAAI;EAAM,IAAI,OAAO;CAAI,CAAA,GACpD,oBAAC,QAAD;EAAM,IAAI,OAAO;EAAG,IAAI;EAAG,IAAI,OAAO;EAAG,IAAI;CAAO,CAAA,CAC7C"}
@@ -1,16 +1,16 @@
1
+ import { t as GridComponent } from "./chunk-Grid.mjs";
1
2
  import { Dimension, Point, Rect } from "./types.mjs";
2
- import { createContext, forwardRef, useContext, useEffect, useId, useImperativeHandle, useMemo, useReducer, useRef, useState } from "react";
3
+ import { createContext, forwardRef, useContext, useEffect, useImperativeHandle, useMemo, useReducer, useRef, useState } from "react";
3
4
  import { useResizeDetector } from "react-resize-detector";
4
5
  import { mx } from "@dxos/ui-theme";
5
6
  import { easeSinOut, interpolate, interpolateObject, transition } from "d3";
6
7
  import { applyToPoints, compose, identity, inverse, scale, translate } from "transformation-matrix";
7
8
  import { raise } from "@dxos/debug";
8
9
  import { bind, bindAll } from "bind-event-listener";
9
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
11
  import { RegistryContext } from "@effect/atom-react/RegistryContext";
11
- import * as Atom from "effect/unstable/reactivity/Atom";
12
- import { useForwardedRef } from "@dxos/react-ui";
13
- //#region src/hooks/projection.tsx
12
+ import * as Atom from "effect/reactivity/Atom";
13
+ //#region src/archive/hooks/projection.tsx
14
14
  var defaultOrigin = {
15
15
  x: 0,
16
16
  y: 0
@@ -101,7 +101,7 @@ var zoomTo = (setTransform, current, next, delay = 200, cb = noop) => {
101
101
  }).on("end", cb);
102
102
  };
103
103
  //#endregion
104
- //#region src/hooks/useCanvasContext.ts
104
+ //#region src/archive/hooks/useCanvasContext.ts
105
105
  /**
106
106
  * @internal
107
107
  */
@@ -110,7 +110,7 @@ var useCanvasContext = () => {
110
110
  return useContext(CanvasContext) ?? raise(/* @__PURE__ */ new Error("Missing CanvasContext"));
111
111
  };
112
112
  //#endregion
113
- //#region src/hooks/useDrag.tsx
113
+ //#region src/archive/hooks/useDrag.tsx
114
114
  /**
115
115
  * Handle drag events to update the transform state (offset).
116
116
  */
@@ -167,7 +167,7 @@ var useDrag = (_options = {}) => {
167
167
  }, [root]);
168
168
  };
169
169
  //#endregion
170
- //#region src/util/svg-path.ts
170
+ //#region src/archive/util/svg-path.ts
171
171
  /** https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths */
172
172
  var createPath = (points, join = false) => {
173
173
  return [
@@ -177,13 +177,13 @@ var createPath = (points, join = false) => {
177
177
  ].join(" ");
178
178
  };
179
179
  //#endregion
180
- //#region src/util/svg.tsx
180
+ //#region src/archive/util/svg.tsx
181
181
  /**
182
182
  * https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
183
183
  * NOTE: Leave space around shape for line width.
184
184
  */
185
185
  var Markers = ({ id = "dx-marker", classNames }) => {
186
- return /* @__PURE__ */ jsxs(Fragment, { children: [
186
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
187
187
  /* @__PURE__ */ jsx(Arrow, {
188
188
  id: `${id}-arrow-start`,
189
189
  dir: "start",
@@ -310,7 +310,7 @@ var GridPattern = ({ classNames, id, size, offset }) => /* @__PURE__ */ jsx("pat
310
310
  })
311
311
  });
312
312
  //#endregion
313
- //#region src/util/util.ts
313
+ //#region src/archive/util/util.ts
314
314
  var logged = false;
315
315
  /**
316
316
  * Get the relative point of the cursor.
@@ -350,7 +350,7 @@ var inspectElement = (el) => {
350
350
  };
351
351
  var DATA_TEST_ID = "data-test-id";
352
352
  //#endregion
353
- //#region src/hooks/useWheel.tsx
353
+ //#region src/archive/hooks/useWheel.tsx
354
354
  var defaultOptions = { zoom: true };
355
355
  /**
356
356
  * Handle wheel events to update the transform state (zoom and offset).
@@ -398,7 +398,7 @@ var isWheelZooming = (ev) => {
398
398
  return false;
399
399
  };
400
400
  //#endregion
401
- //#region src/components/Canvas/Canvas.tsx
401
+ //#region src/archive/components/Canvas/Canvas.tsx
402
402
  /**
403
403
  * Root canvas component.
404
404
  * Manages CSS projection.
@@ -463,14 +463,14 @@ var Canvas = forwardRef(({ children, classNames, scale: scaleProp = 1, offset: o
463
463
  },
464
464
  children: /* @__PURE__ */ jsx("div", {
465
465
  ...props,
466
- className: mx("absolute inset-0 overflow-hidden", classNames),
466
+ className: mx("dx-cover overflow-hidden", classNames),
467
467
  ref,
468
468
  children: ready ? children : null
469
469
  })
470
470
  });
471
471
  });
472
472
  //#endregion
473
- //#region src/components/CellGrid/state/viewport.ts
473
+ //#region src/archive/components/CellGrid/state/viewport.ts
474
474
  var cellKey = (col, row) => `${col},${row}`;
475
475
  var cellWidth = (viewport) => viewport.baseCellWidth * viewport.zoomX;
476
476
  /**
@@ -530,7 +530,7 @@ var visibleCells = function* (cells, range) {
530
530
  }
531
531
  };
532
532
  //#endregion
533
- //#region src/components/CellGrid/headers/Ruler.tsx
533
+ //#region src/archive/components/CellGrid/headers/Ruler.tsx
534
534
  /**
535
535
  * Frozen top ruler. Ticks reflect the current viewport scroll and zoom.
536
536
  */
@@ -569,7 +569,7 @@ var Ruler = ({ viewport, headers, width, majorEvery = 4, classNames }) => {
569
569
  });
570
570
  };
571
571
  //#endregion
572
- //#region src/components/CellGrid/headers/TrackHeader.tsx
572
+ //#region src/archive/components/CellGrid/headers/TrackHeader.tsx
573
573
  /**
574
574
  * Frozen left column listing row labels. Translates vertically in sync with viewport scroll.
575
575
  *
@@ -601,7 +601,7 @@ var TrackHeader = ({ viewport, headers, rows, height, classNames }) => {
601
601
  });
602
602
  };
603
603
  //#endregion
604
- //#region src/components/CellGrid/input/pointer.ts
604
+ //#region src/archive/components/CellGrid/input/pointer.ts
605
605
  /**
606
606
  * Attach pointer handlers to an element. Returns an unsubscribe.
607
607
  */
@@ -760,7 +760,7 @@ var toggleCell = (registry, atoms, coord, factory, mode = "toggle") => {
760
760
  });
761
761
  };
762
762
  //#endregion
763
- //#region src/components/CellGrid/input/wheel.ts
763
+ //#region src/archive/components/CellGrid/input/wheel.ts
764
764
  var MIN_ZOOM = .25;
765
765
  var MAX_ZOOM = 8;
766
766
  /**
@@ -806,7 +806,7 @@ var attachWheelHandlers = (element, { registry, atoms, headers }) => {
806
806
  return () => element.removeEventListener("wheel", onWheel);
807
807
  };
808
808
  //#endregion
809
- //#region src/components/CellGrid/render/overlay-layer.ts
809
+ //#region src/archive/components/CellGrid/render/overlay-layer.ts
810
810
  var drawOverlay = ({ ctx, size, viewport, headers, selection, playhead, style }) => {
811
811
  ctx.clearRect(0, 0, size.width, size.height);
812
812
  ctx.save();
@@ -850,7 +850,7 @@ var drawOverlay = ({ ctx, size, viewport, headers, selection, playhead, style })
850
850
  ctx.restore();
851
851
  };
852
852
  //#endregion
853
- //#region src/components/CellGrid/render/static-layer.ts
853
+ //#region src/archive/components/CellGrid/render/static-layer.ts
854
854
  /**
855
855
  * Paint the static layer: background, gridlines, alternating row bands, and cells.
856
856
  * Pure with respect to its inputs (writes only to the supplied ctx).
@@ -903,7 +903,7 @@ var drawCells = ({ ctx, size, viewport, headers, rows, cells, renderCell, style
903
903
  ctx.restore();
904
904
  };
905
905
  //#endregion
906
- //#region src/components/CellGrid/CellGrid.tsx
906
+ //#region src/archive/components/CellGrid/CellGrid.tsx
907
907
  var defaultHeaders = {
908
908
  left: 80,
909
909
  top: 24
@@ -1106,11 +1106,11 @@ var CellGrid = ({ atoms, rows, renderCell, headers: headersProp, staticStyle: st
1106
1106
  ]);
1107
1107
  return /* @__PURE__ */ jsxs("div", {
1108
1108
  ref: containerRef,
1109
- className: mx("relative w-full h-full overflow-hidden dx-base-surface", classNames),
1109
+ className: mx("relative dx-fill overflow-hidden dx-base-surface", classNames),
1110
1110
  children: [
1111
1111
  /* @__PURE__ */ jsx("canvas", {
1112
1112
  ref: staticCanvasRef,
1113
- className: "absolute inset-0 pointer-events-none",
1113
+ className: "dx-cover pointer-events-none",
1114
1114
  style: {
1115
1115
  top: -1,
1116
1116
  left: -1
@@ -1118,7 +1118,7 @@ var CellGrid = ({ atoms, rows, renderCell, headers: headersProp, staticStyle: st
1118
1118
  }),
1119
1119
  /* @__PURE__ */ jsx("canvas", {
1120
1120
  ref: overlayCanvasRef,
1121
- className: "absolute inset-0 pointer-events-none",
1121
+ className: "dx-cover pointer-events-none",
1122
1122
  style: {
1123
1123
  top: -1,
1124
1124
  left: -1
@@ -1126,7 +1126,7 @@ var CellGrid = ({ atoms, rows, renderCell, headers: headersProp, staticStyle: st
1126
1126
  }),
1127
1127
  /* @__PURE__ */ jsx("div", {
1128
1128
  ref: overlayInputRef,
1129
- className: "absolute inset-0 touch-none",
1129
+ className: "dx-cover touch-none",
1130
1130
  style: {
1131
1131
  paddingLeft: headers.left,
1132
1132
  paddingTop: headers.top
@@ -1154,7 +1154,7 @@ var CellGrid = ({ atoms, rows, renderCell, headers: headersProp, staticStyle: st
1154
1154
  });
1155
1155
  };
1156
1156
  //#endregion
1157
- //#region src/components/CellGrid/state/atoms.ts
1157
+ //#region src/archive/components/CellGrid/state/atoms.ts
1158
1158
  var defaultViewport = (options = {}) => ({
1159
1159
  scrollX: 0,
1160
1160
  scrollY: 0,
@@ -1177,7 +1177,7 @@ var createCellGridAtoms = (options = {}) => ({
1177
1177
  tool: Atom.keepAlive(Atom.make("toggle"))
1178
1178
  });
1179
1179
  //#endregion
1180
- //#region src/components/FPS.tsx
1180
+ //#region src/archive/components/FPS.tsx
1181
1181
  var SEC = 1e3;
1182
1182
  var FPS = ({ classNames, width = 60, height = 30, bar = "bg-cyan-500" }) => {
1183
1183
  const [{ fps, max, len }, dispatch] = useReducer((state) => {
@@ -1215,7 +1215,7 @@ var FPS = ({ classNames, width = 60, height = 30, bar = "bg-cyan-500" }) => {
1215
1215
  }, []);
1216
1216
  return /* @__PURE__ */ jsxs("div", {
1217
1217
  style: { width: width + 6 },
1218
- className: mx("relative flex flex-col p-0.5", "bg-base-surface text-xs text-subdued font-thin pointer-events-none border border-separator", classNames),
1218
+ className: mx("relative flex flex-col p-0.5", "bg-base-surface text-xs text-fg-subtle font-thin pointer-events-none border border-separator", classNames),
1219
1219
  children: [/* @__PURE__ */ jsxs("div", { children: [fps[len - 1], " FPS"] }), /* @__PURE__ */ jsx("div", {
1220
1220
  className: "w-full relative",
1221
1221
  style: { height },
@@ -1233,19 +1233,7 @@ var FPS = ({ classNames, width = 60, height = 30, bar = "bg-cyan-500" }) => {
1233
1233
  });
1234
1234
  };
1235
1235
  //#endregion
1236
- //#region src/components/Grid/Grid.tsx
1237
- var gridRatios = [
1238
- 1 / 4,
1239
- 1,
1240
- 4,
1241
- 16
1242
- ];
1243
- var defaultGridSize = 16;
1244
- var defaultOffset = {
1245
- x: 0,
1246
- y: 0
1247
- };
1248
- var createId = (parent, grid) => `dx-canvas-grid-${parent}-${grid}`;
1236
+ //#region src/archive/components/Grid/Grid.tsx
1249
1237
  var Grid = (props) => {
1250
1238
  const { scale, offset } = useCanvasContext();
1251
1239
  return /* @__PURE__ */ jsx(GridComponent, {
@@ -1254,46 +1242,6 @@ var Grid = (props) => {
1254
1242
  offset
1255
1243
  });
1256
1244
  };
1257
- var GridComponent = forwardRef(({ size: gridSize = defaultGridSize, scale = 1, offset = defaultOffset, showAxes = true, classNames }, forwardedRef) => {
1258
- const svgRef = useForwardedRef(forwardedRef);
1259
- const { width = 0, height = 0 } = svgRef.current?.getBoundingClientRect() ?? {};
1260
- const instanceId = useId();
1261
- const grids = useMemo(() => gridRatios.map((ratio) => ({
1262
- id: ratio,
1263
- size: ratio * gridSize * scale
1264
- })).filter(({ size }) => size >= gridSize && size <= 128), [gridSize, scale]);
1265
- return /* @__PURE__ */ jsxs("svg", {
1266
- ...testId("dx-canvas-grid"),
1267
- ref: svgRef,
1268
- className: mx("dx-fullscreen w-full h-full pointer-events-none touch-none select-none", "stroke-neutral-500", classNames),
1269
- children: [
1270
- /* @__PURE__ */ jsx("defs", { children: grids.map(({ id, size }) => /* @__PURE__ */ jsx(GridPattern, {
1271
- id: createId(instanceId, id),
1272
- offset,
1273
- size
1274
- }, id)) }),
1275
- showAxes && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("line", {
1276
- x1: 0,
1277
- y1: offset.y,
1278
- x2: width,
1279
- y2: offset.y,
1280
- className: "stroke-neutral-500 opacity-40"
1281
- }), /* @__PURE__ */ jsx("line", {
1282
- x1: offset.x,
1283
- y1: 0,
1284
- x2: offset.x,
1285
- y2: height,
1286
- className: "stroke-neutral-500 opacity-40"
1287
- })] }),
1288
- /* @__PURE__ */ jsx("g", { children: grids.map(({ id }, i) => /* @__PURE__ */ jsx("rect", {
1289
- opacity: .1 + i * .05,
1290
- fill: `url(#${createId(instanceId, id)})`,
1291
- width: "100%",
1292
- height: "100%"
1293
- }, id)) })
1294
- ]
1295
- });
1296
- });
1297
1245
  //#endregion
1298
1246
  export { Arrow, Canvas, CanvasContext, CellGrid, DATA_TEST_ID, Dimension, FPS, Grid, GridComponent, GridPattern, Marker, Markers, Point, ProjectionMapper, Rect, Ruler, TrackHeader, attachPointerHandlers, attachWheelHandlers, cellKey, cellWidth, createCellGridAtoms, createPath, defaultOrigin, defaultViewport, drawCells, drawOverlay, getRelativePoint, getZoomTransform, hitTestCell, inspectElement, screenToWorld, testId, toggleCell, useCanvasContext, useDrag, useWheel, visibleCellRange, visibleCells, worldToScreen, zoomInPlace, zoomTo };
1299
1247