@weasel-js/core 1.9.3 → 1.10.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 (1139) hide show
  1. package/CHANGELOG.md +1106 -0
  2. package/README.md +7 -5
  3. package/dist/WeaselProvider.js +5 -7
  4. package/dist/WeaselProvider.js.map +1 -1
  5. package/dist/affordances/composeAffordanceLayer.js +91 -93
  6. package/dist/affordances/composeAffordanceLayer.js.map +1 -1
  7. package/dist/affordances/cornerResize.js +27 -18
  8. package/dist/affordances/cornerResize.js.map +1 -1
  9. package/dist/affordances/hitAffordanceRegions.js +65 -104
  10. package/dist/affordances/hitAffordanceRegions.js.map +1 -1
  11. package/dist/affordances/pathAnchors.js.map +1 -1
  12. package/dist/affordances/rotationHandle.js +22 -21
  13. package/dist/affordances/rotationHandle.js.map +1 -1
  14. package/dist/animation/behaviors/coast.js +21 -0
  15. package/dist/animation/behaviors/coast.js.map +1 -0
  16. package/dist/animation/behaviors/coastByWrite.js +107 -0
  17. package/dist/animation/behaviors/coastByWrite.js.map +1 -0
  18. package/dist/animation/behaviors/coastOnTargets.js +94 -0
  19. package/dist/animation/behaviors/coastOnTargets.js.map +1 -0
  20. package/dist/animation/behaviors/momentum.js +38 -88
  21. package/dist/animation/behaviors/momentum.js.map +1 -1
  22. package/dist/animation/clipTargets.js +12 -0
  23. package/dist/animation/clipTargets.js.map +1 -0
  24. package/dist/animation/index.js +15 -20
  25. package/dist/animation/poseHelpers.js +112 -33
  26. package/dist/animation/poseHelpers.js.map +1 -1
  27. package/dist/animation/poseTarget.js +115 -0
  28. package/dist/animation/poseTarget.js.map +1 -0
  29. package/dist/animation/reflow.js +113 -83
  30. package/dist/animation/reflow.js.map +1 -1
  31. package/dist/animation/rewind.js +66 -0
  32. package/dist/animation/rewind.js.map +1 -0
  33. package/dist/animation/rig/bindRig.js +85 -53
  34. package/dist/animation/rig/bindRig.js.map +1 -1
  35. package/dist/animation/rig/rigNode.js +93 -0
  36. package/dist/animation/rig/rigNode.js.map +1 -0
  37. package/dist/animation/rig/rigSeat.js +26 -0
  38. package/dist/animation/rig/rigSeat.js.map +1 -0
  39. package/dist/animation/rig/skinBinding.js +56 -0
  40. package/dist/animation/rig/skinBinding.js.map +1 -0
  41. package/dist/animation/rig/useRig.js +31 -16
  42. package/dist/animation/rig/useRig.js.map +1 -1
  43. package/dist/animation/wrappers/animateLifecycle.js +32 -24
  44. package/dist/animation/wrappers/animateLifecycle.js.map +1 -1
  45. package/dist/animation/wrappers/animateOnSetPose.js +31 -29
  46. package/dist/animation/wrappers/animateOnSetPose.js.map +1 -1
  47. package/dist/animation/wrappers/instantPose.js +13 -0
  48. package/dist/animation/wrappers/instantPose.js.map +1 -0
  49. package/dist/animation/writtenPoseTarget.js +33 -0
  50. package/dist/animation/writtenPoseTarget.js.map +1 -0
  51. package/dist/{autoPoseDescriptor-vCdt55xm.d.ts → autoPoseDescriptor-DHg5KqaJ.d.ts} +1 -1
  52. package/dist/barrel/canvas.js +31 -0
  53. package/dist/barrel/chrome.js +16 -0
  54. package/dist/barrel/input.js +18 -0
  55. package/dist/barrel/interactions.js +38 -0
  56. package/dist/barrel/paint.js +11 -0
  57. package/dist/barrel/paths.js +12 -0
  58. package/dist/barrel/renderer.js +14 -0
  59. package/dist/barrel/routing.js +57 -0
  60. package/dist/barrel/scene.js +37 -0
  61. package/dist/barrel/text.js +9 -0
  62. package/dist/barrel/viewport.js +42 -0
  63. package/dist/canvas/Canvas.js +280 -559
  64. package/dist/canvas/Canvas.js.map +1 -1
  65. package/dist/canvas/CanvasView.js +147 -167
  66. package/dist/canvas/CanvasView.js.map +1 -1
  67. package/dist/canvas/CursorCoordsHud.js +53 -49
  68. package/dist/canvas/CursorCoordsHud.js.map +1 -1
  69. package/dist/canvas/DrawCanvas.js +40 -51
  70. package/dist/canvas/DrawCanvas.js.map +1 -1
  71. package/dist/canvas/ModalityHud.js.map +1 -1
  72. package/dist/canvas/NodeShape.js +55 -374
  73. package/dist/canvas/NodeShape.js.map +1 -1
  74. package/dist/canvas/PickHud.js +50 -47
  75. package/dist/canvas/PickHud.js.map +1 -1
  76. package/dist/canvas/SceneCanvas/DevHuds.js +40 -0
  77. package/dist/canvas/SceneCanvas/DevHuds.js.map +1 -0
  78. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js +126 -0
  79. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js.map +1 -0
  80. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +27 -31
  81. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js.map +1 -1
  82. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js +64 -0
  83. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js.map +1 -0
  84. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js +16 -0
  85. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js.map +1 -0
  86. package/dist/canvas/SceneCanvas/coordTrace.js +46 -0
  87. package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -0
  88. package/dist/canvas/SceneCanvas/defaultNodeProperties.js +138 -85
  89. package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
  90. package/dist/canvas/SceneCanvas/defaultNodeRouting.js +9 -8
  91. package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
  92. package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js.map +1 -1
  93. package/dist/canvas/SceneCanvas/features.js +74 -43
  94. package/dist/canvas/SceneCanvas/features.js.map +1 -1
  95. package/dist/canvas/SceneCanvas/isDev.js +12 -0
  96. package/dist/canvas/SceneCanvas/isDev.js.map +1 -0
  97. package/dist/canvas/SceneCanvas/poseGeometry.js +31 -34
  98. package/dist/canvas/SceneCanvas/poseGeometry.js.map +1 -1
  99. package/dist/canvas/SceneCanvas/poseRegistrars.js +13 -0
  100. package/dist/canvas/SceneCanvas/poseRegistrars.js.map +1 -0
  101. package/dist/canvas/SceneCanvas/props.js +39 -0
  102. package/dist/canvas/SceneCanvas/props.js.map +1 -0
  103. package/dist/canvas/SceneCanvas/toolRegistry.js +23 -0
  104. package/dist/canvas/SceneCanvas/toolRegistry.js.map +1 -0
  105. package/dist/canvas/SceneCanvas/useActionsPropResolver.js +6 -1
  106. package/dist/canvas/SceneCanvas/useActionsPropResolver.js.map +1 -1
  107. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js +21 -62
  108. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
  109. package/dist/canvas/SceneCanvas/useBuiltinTools.js +21 -0
  110. package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -0
  111. package/dist/canvas/SceneCanvas/useCanvasCamera.js +38 -0
  112. package/dist/canvas/SceneCanvas/useCanvasCamera.js.map +1 -0
  113. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js +20 -0
  114. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js.map +1 -0
  115. package/dist/canvas/SceneCanvas/useCanvasSelection.js +16 -0
  116. package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -0
  117. package/dist/canvas/SceneCanvas/useCanvasTools.js +67 -0
  118. package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -0
  119. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js +29 -29
  120. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js.map +1 -1
  121. package/dist/canvas/SceneCanvas/useHeldModifiers.js +20 -0
  122. package/dist/canvas/SceneCanvas/useHeldModifiers.js.map +1 -0
  123. package/dist/canvas/SceneCanvas/useNodeAtPoint.js +26 -0
  124. package/dist/canvas/SceneCanvas/useNodeAtPoint.js.map +1 -0
  125. package/dist/canvas/SceneCanvas/useNodeKinds.js +26 -0
  126. package/dist/canvas/SceneCanvas/useNodeKinds.js.map +1 -0
  127. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +48 -48
  128. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
  129. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +47 -0
  130. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js.map +1 -0
  131. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +66 -0
  132. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -0
  133. package/dist/canvas/SceneCanvas/useSceneChrome.js +59 -0
  134. package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -0
  135. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js +23 -0
  136. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js.map +1 -0
  137. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +74 -78
  138. package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
  139. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js +37 -0
  140. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js.map +1 -0
  141. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js +38 -0
  142. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js.map +1 -0
  143. package/dist/canvas/SceneCanvas/useViewLayerGate.js +20 -0
  144. package/dist/canvas/SceneCanvas/useViewLayerGate.js.map +1 -0
  145. package/dist/canvas/SceneCanvas/useViewportActions.js +9 -1
  146. package/dist/canvas/SceneCanvas/useViewportActions.js.map +1 -1
  147. package/dist/canvas/SceneCanvas/worldPointAt.js +9 -0
  148. package/dist/canvas/SceneCanvas/worldPointAt.js.map +1 -0
  149. package/dist/canvas/SceneCanvas.js +311 -969
  150. package/dist/canvas/SceneCanvas.js.map +1 -1
  151. package/dist/canvas/SceneViewCanvas.js +42 -46
  152. package/dist/canvas/SceneViewCanvas.js.map +1 -1
  153. package/dist/canvas/adapterDerivedPath.js +26 -0
  154. package/dist/canvas/adapterDerivedPath.js.map +1 -0
  155. package/dist/canvas/affordanceAt.js +11 -1
  156. package/dist/canvas/affordanceAt.js.map +1 -1
  157. package/dist/canvas/buildSceneLayer.js +111 -0
  158. package/dist/canvas/buildSceneLayer.js.map +1 -0
  159. package/dist/canvas/buildSceneTree.js +16 -19
  160. package/dist/canvas/buildSceneTree.js.map +1 -1
  161. package/dist/canvas/canvasRenderer.js +67 -55
  162. package/dist/canvas/canvasRenderer.js.map +1 -1
  163. package/dist/canvas/colorOverrides.js.map +1 -1
  164. package/dist/canvas/defaultDrawOne.js +12 -12
  165. package/dist/canvas/defaultDrawOne.js.map +1 -1
  166. package/dist/canvas/deps/areaSelect.js +4 -4
  167. package/dist/canvas/deps/areaSelect.js.map +1 -1
  168. package/dist/canvas/deps/changes.js +13 -0
  169. package/dist/canvas/deps/changes.js.map +1 -0
  170. package/dist/canvas/deps/debug.js.map +1 -1
  171. package/dist/canvas/deps/editAnchors.js +38 -57
  172. package/dist/canvas/deps/editAnchors.js.map +1 -1
  173. package/dist/canvas/deps/geometryProjection.js.map +1 -1
  174. package/dist/canvas/deps/hitTestArea.js +31 -26
  175. package/dist/canvas/deps/hitTestArea.js.map +1 -1
  176. package/dist/canvas/deps/insert.js +130 -91
  177. package/dist/canvas/deps/insert.js.map +1 -1
  178. package/dist/canvas/deps/lassoSelect.js +5 -5
  179. package/dist/canvas/deps/lassoSelect.js.map +1 -1
  180. package/dist/canvas/deps/poseDescriptor.js +1 -1
  181. package/dist/canvas/deps/poseDescriptor.js.map +1 -1
  182. package/dist/canvas/deps/resizePolicy.js.map +1 -1
  183. package/dist/canvas/deps/slice.js +26 -26
  184. package/dist/canvas/deps/slice.js.map +1 -1
  185. package/dist/canvas/deps/textEdit.js +6 -5
  186. package/dist/canvas/deps/textEdit.js.map +1 -1
  187. package/dist/canvas/deps/view.js.map +1 -1
  188. package/dist/canvas/derivedPath.js +47 -22
  189. package/dist/canvas/derivedPath.js.map +1 -1
  190. package/dist/canvas/drawEnvelope.js +8 -4
  191. package/dist/canvas/drawEnvelope.js.map +1 -1
  192. package/dist/canvas/getNodeAtPoint.js +4 -8
  193. package/dist/canvas/getNodeAtPoint.js.map +1 -1
  194. package/dist/canvas/hud.module.js +1 -1
  195. package/dist/canvas/hud.module.js.map +1 -1
  196. package/dist/canvas/insertPreviewExtent.js.map +1 -1
  197. package/dist/canvas/kitRequirements.js +2 -2
  198. package/dist/canvas/kitRequirements.js.map +1 -1
  199. package/dist/canvas/layerOrder.js +13 -6
  200. package/dist/canvas/layerOrder.js.map +1 -1
  201. package/dist/canvas/layerSlots.js +6 -1
  202. package/dist/canvas/layerSlots.js.map +1 -1
  203. package/dist/canvas/nodeShapes/derivedPainter.js +34 -0
  204. package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -0
  205. package/dist/canvas/nodeShapes/imagePainter.js +87 -0
  206. package/dist/canvas/nodeShapes/imagePainter.js.map +1 -0
  207. package/dist/canvas/nodeShapes/memo.js +9 -0
  208. package/dist/canvas/nodeShapes/memo.js.map +1 -0
  209. package/dist/canvas/nodeShapes/nodePaint.js +68 -0
  210. package/dist/canvas/nodeShapes/nodePaint.js.map +1 -0
  211. package/dist/canvas/nodeShapes/pathPainter.js +39 -0
  212. package/dist/canvas/nodeShapes/pathPainter.js.map +1 -0
  213. package/dist/canvas/nodeShapes/poseBox.js +20 -0
  214. package/dist/canvas/nodeShapes/poseBox.js.map +1 -0
  215. package/dist/canvas/nodeShapes/rectFallbackPainter.js +38 -0
  216. package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -0
  217. package/dist/canvas/nodeShapes/shapePainter.js +72 -0
  218. package/dist/canvas/nodeShapes/shapePainter.js.map +1 -0
  219. package/dist/canvas/nodeShapes/textPainter.js +55 -0
  220. package/dist/canvas/nodeShapes/textPainter.js.map +1 -0
  221. package/dist/canvas/overlayRoleStrokes.js.map +1 -1
  222. package/dist/canvas/paintCull.js +11 -14
  223. package/dist/canvas/paintCull.js.map +1 -1
  224. package/dist/{features/cursor → canvas}/paintedCursorLayer.js +2 -2
  225. package/dist/canvas/paintedCursorLayer.js.map +1 -0
  226. package/dist/canvas/pickWalk.js +59 -68
  227. package/dist/canvas/pickWalk.js.map +1 -1
  228. package/dist/canvas/planeClips.js +18 -19
  229. package/dist/canvas/planeClips.js.map +1 -1
  230. package/dist/canvas/poseCascade.js +41 -0
  231. package/dist/canvas/poseCascade.js.map +1 -0
  232. package/dist/canvas/poseRotation.js +9 -23
  233. package/dist/canvas/poseRotation.js.map +1 -1
  234. package/dist/canvas/rasterReadback.js +22 -0
  235. package/dist/canvas/rasterReadback.js.map +1 -0
  236. package/dist/canvas/renderDebugSnapshot.js +11 -11
  237. package/dist/canvas/renderDebugSnapshot.js.map +1 -1
  238. package/dist/canvas/renderNeeds.js +3 -3
  239. package/dist/canvas/renderNeeds.js.map +1 -1
  240. package/dist/canvas/renderSceneToPixels.js +64 -81
  241. package/dist/canvas/renderSceneToPixels.js.map +1 -1
  242. package/dist/canvas/sceneAdapter.js +68 -214
  243. package/dist/canvas/sceneAdapter.js.map +1 -1
  244. package/dist/canvas/sceneClipboard.js +112 -0
  245. package/dist/canvas/sceneClipboard.js.map +1 -0
  246. package/dist/canvas/sceneLayerPaint.js +4 -4
  247. package/dist/canvas/sceneLayerPaint.js.map +1 -1
  248. package/dist/canvas/sceneSlotWiring.js.map +1 -1
  249. package/dist/canvas/sceneViewRender.js +39 -39
  250. package/dist/canvas/sceneViewRender.js.map +1 -1
  251. package/dist/canvas/slopsDebugLayer.js +4 -4
  252. package/dist/canvas/slopsDebugLayer.js.map +1 -1
  253. package/dist/canvas/surface.module.js +6 -0
  254. package/dist/canvas/surface.module.js.map +1 -0
  255. package/dist/canvas/surfaceBox.js +16 -0
  256. package/dist/canvas/surfaceBox.js.map +1 -0
  257. package/dist/canvas/useCanvasRenderer.js +26 -6
  258. package/dist/canvas/useCanvasRenderer.js.map +1 -1
  259. package/dist/canvas/useCanvasSurface.js +31 -0
  260. package/dist/canvas/useCanvasSurface.js.map +1 -0
  261. package/dist/canvas/useCanvasView.js +67 -0
  262. package/dist/canvas/useCanvasView.js.map +1 -0
  263. package/dist/canvas/useFrameLoop.js +39 -31
  264. package/dist/canvas/useFrameLoop.js.map +1 -1
  265. package/dist/canvas/useHostAnchor.js +35 -33
  266. package/dist/canvas/useHostAnchor.js.map +1 -1
  267. package/dist/canvas/useLateContentRedraw.js +8 -8
  268. package/dist/canvas/useLateContentRedraw.js.map +1 -1
  269. package/dist/canvas/useSceneLayerList.js +11 -0
  270. package/dist/canvas/useSceneLayerList.js.map +1 -0
  271. package/dist/canvas/useSurfaceInput.js +42 -0
  272. package/dist/canvas/useSurfaceInput.js.map +1 -0
  273. package/dist/canvas/useToolCursor.js +29 -0
  274. package/dist/canvas/useToolCursor.js.map +1 -0
  275. package/dist/canvas/useViewHelpers.js +46 -85
  276. package/dist/canvas/useViewHelpers.js.map +1 -1
  277. package/dist/canvas/viewInputs.js.map +1 -1
  278. package/dist/canvas/viewRegistry.js +25 -27
  279. package/dist/canvas/viewRegistry.js.map +1 -1
  280. package/dist/canvas/watchElementMove.js +43 -0
  281. package/dist/canvas/watchElementMove.js.map +1 -0
  282. package/dist/canvas/wrapNodeOutput.js.map +1 -1
  283. package/dist/clipboard.d.ts +16 -19
  284. package/dist/{types-B_9g6hMM.d.ts → clone-2a5hVbBd.d.ts} +123 -74
  285. package/dist/clone.d.ts +4 -7
  286. package/dist/clone.js +0 -2
  287. package/dist/core/device/index.js +5 -4
  288. package/dist/core/device/targets.js.map +1 -1
  289. package/dist/core/device/useDeviceProfile.js +38 -44
  290. package/dist/core/device/useDeviceProfile.js.map +1 -1
  291. package/dist/core/device/watchDevicePixelRatio.js +17 -0
  292. package/dist/core/device/watchDevicePixelRatio.js.map +1 -0
  293. package/dist/{interactions/actions/resize → core/geometry}/autoPoseDescriptor.js +8 -7
  294. package/dist/core/geometry/autoPoseDescriptor.js.map +1 -0
  295. package/dist/core/geometry/pathPoseDescriptor.js +88 -0
  296. package/dist/core/geometry/pathPoseDescriptor.js.map +1 -0
  297. package/dist/core/geometry/poseDescriptor.js +68 -19
  298. package/dist/core/geometry/poseDescriptor.js.map +1 -1
  299. package/dist/core/geometry/regionHit.js +31 -34
  300. package/dist/core/geometry/regionHit.js.map +1 -1
  301. package/dist/core/geometry/targetFrame.js +94 -0
  302. package/dist/core/geometry/targetFrame.js.map +1 -0
  303. package/dist/core/geometry/unionBounds.js +30 -29
  304. package/dist/core/geometry/unionBounds.js.map +1 -1
  305. package/dist/core/isPlainObject.js +2 -11
  306. package/dist/core/layers/backgroundFill.js +31 -0
  307. package/dist/core/layers/backgroundFill.js.map +1 -0
  308. package/dist/{features/groups → core/layers}/children.js +1 -1
  309. package/dist/core/layers/children.js.map +1 -0
  310. package/dist/core/layers/gateLayer.js +13 -0
  311. package/dist/core/layers/gateLayer.js.map +1 -0
  312. package/dist/core/layers/layerGroup.js +40 -0
  313. package/dist/core/layers/layerGroup.js.map +1 -0
  314. package/dist/core/layers/render.js +50 -76
  315. package/dist/core/layers/render.js.map +1 -1
  316. package/dist/core/ops/arrange.js +1 -0
  317. package/dist/core/ops/arrange.js.map +1 -1
  318. package/dist/core/ops/create.js +10 -5
  319. package/dist/core/ops/create.js.map +1 -1
  320. package/dist/core/ops/createHistory.js +9 -9
  321. package/dist/core/ops/createHistory.js.map +1 -1
  322. package/dist/core/ops/delete.js +12 -24
  323. package/dist/core/ops/delete.js.map +1 -1
  324. package/dist/core/ops/reorder/index.js +43 -40
  325. package/dist/core/ops/reorder/index.js.map +1 -1
  326. package/dist/core/ops/reorder/setChildOrder.js +34 -0
  327. package/dist/core/ops/reorder/setChildOrder.js.map +1 -0
  328. package/dist/core/paint/meshKind.js +16 -0
  329. package/dist/core/paint/meshKind.js.map +1 -0
  330. package/dist/{features/meshPaint/lazyKind.js → core/paint/meshKindLazy.js} +282 -105
  331. package/dist/core/paint/meshKindLazy.js.map +1 -0
  332. package/dist/core/paint/paintKindEntry.js +8 -0
  333. package/dist/core/paint/paintKindEntry.js.map +1 -0
  334. package/dist/core/paint/paintKinds.js +144 -0
  335. package/dist/core/paint/paintKinds.js.map +1 -0
  336. package/dist/core/paint/registerMesh.js +7 -0
  337. package/dist/core/paint/registerMesh.js.map +1 -0
  338. package/dist/core/scene/NodeProperties.js.map +1 -1
  339. package/dist/core/scene/NodeRouting.js.map +1 -1
  340. package/dist/core/scene/appliedLog.js +37 -0
  341. package/dist/core/scene/appliedLog.js.map +1 -0
  342. package/dist/core/scene/arrivalWindow.js +102 -0
  343. package/dist/core/scene/arrivalWindow.js.map +1 -0
  344. package/dist/core/scene/boundOps.js +40 -0
  345. package/dist/core/scene/boundOps.js.map +1 -0
  346. package/dist/core/scene/composeFrame.js +9 -6
  347. package/dist/core/scene/composeFrame.js.map +1 -1
  348. package/dist/{features/groups → core/scene}/composePose.js +18 -18
  349. package/dist/core/scene/composePose.js.map +1 -0
  350. package/dist/core/scene/depMemo.js +31 -6
  351. package/dist/core/scene/depMemo.js.map +1 -1
  352. package/dist/core/scene/derivedPath.js +19 -20
  353. package/dist/core/scene/derivedPath.js.map +1 -1
  354. package/dist/core/scene/editMode.js +26 -0
  355. package/dist/core/scene/editMode.js.map +1 -0
  356. package/dist/core/scene/effectivePose.js +38 -39
  357. package/dist/core/scene/effectivePose.js.map +1 -1
  358. package/dist/core/scene/fieldEdits.js +98 -0
  359. package/dist/core/scene/fieldEdits.js.map +1 -0
  360. package/dist/core/scene/historyFacade.js +130 -0
  361. package/dist/core/scene/historyFacade.js.map +1 -0
  362. package/dist/core/scene/historyForm.js +6 -0
  363. package/dist/core/scene/historyForm.js.map +1 -0
  364. package/dist/core/scene/kitOps.js +185 -0
  365. package/dist/core/scene/kitOps.js.map +1 -0
  366. package/dist/core/scene/kitRegistry.js.map +1 -1
  367. package/dist/core/scene/layerStack.js +131 -0
  368. package/dist/core/scene/layerStack.js.map +1 -0
  369. package/dist/core/scene/layoutPass.js +58 -59
  370. package/dist/core/scene/layoutPass.js.map +1 -1
  371. package/dist/core/scene/lockGuard.js +37 -0
  372. package/dist/core/scene/lockGuard.js.map +1 -0
  373. package/dist/{features/groups → core/scene}/nestedHit.js +3 -3
  374. package/dist/core/scene/nestedHit.js.map +1 -0
  375. package/dist/core/scene/nodeFnFields.js +10 -11
  376. package/dist/core/scene/nodeFnFields.js.map +1 -1
  377. package/dist/core/scene/nodeMemo.js +45 -19
  378. package/dist/core/scene/nodeMemo.js.map +1 -1
  379. package/dist/core/scene/nodeStore.js +127 -0
  380. package/dist/core/scene/nodeStore.js.map +1 -0
  381. package/dist/core/scene/notifier.js +37 -0
  382. package/dist/core/scene/notifier.js.map +1 -0
  383. package/dist/core/scene/opTable.js +50 -0
  384. package/dist/core/scene/opTable.js.map +1 -0
  385. package/dist/core/scene/outerOps.js +66 -0
  386. package/dist/core/scene/outerOps.js.map +1 -0
  387. package/dist/core/scene/poseFeed.js +38 -38
  388. package/dist/core/scene/poseFeed.js.map +1 -1
  389. package/dist/core/scene/poseHold.js +39 -0
  390. package/dist/core/scene/poseHold.js.map +1 -0
  391. package/dist/core/scene/poseOverrides.js +44 -40
  392. package/dist/core/scene/poseOverrides.js.map +1 -1
  393. package/dist/core/scene/poseSnapshot.js.map +1 -1
  394. package/dist/core/scene/reconcileSpecs.js +3 -2
  395. package/dist/core/scene/reconcileSpecs.js.map +1 -1
  396. package/dist/core/scene/recorder.js +86 -0
  397. package/dist/core/scene/recorder.js.map +1 -0
  398. package/dist/core/scene/renderOrder.js +84 -0
  399. package/dist/core/scene/renderOrder.js.map +1 -0
  400. package/dist/core/scene/scene.js +80 -1266
  401. package/dist/core/scene/scene.js.map +1 -1
  402. package/dist/core/scene/sceneEdits.js +58 -0
  403. package/dist/core/scene/sceneEdits.js.map +1 -0
  404. package/dist/core/scene/sceneMutators.js +49 -0
  405. package/dist/core/scene/sceneMutators.js.map +1 -0
  406. package/dist/core/scene/scenePoseAdapter.js +16 -0
  407. package/dist/core/scene/scenePoseAdapter.js.map +1 -0
  408. package/dist/core/scene/sceneRecording.js +90 -0
  409. package/dist/core/scene/sceneRecording.js.map +1 -0
  410. package/dist/core/scene/sceneSelection.js +28 -0
  411. package/dist/core/scene/sceneSelection.js.map +1 -0
  412. package/dist/core/scene/sceneState.js +49 -0
  413. package/dist/core/scene/sceneState.js.map +1 -0
  414. package/dist/core/scene/serialization.js +71 -0
  415. package/dist/core/scene/serialization.js.map +1 -0
  416. package/dist/core/scene/staleReplay.js +51 -0
  417. package/dist/core/scene/staleReplay.js.map +1 -0
  418. package/dist/core/scene/statedFields.js +9 -0
  419. package/dist/core/scene/statedFields.js.map +1 -0
  420. package/dist/core/scene/treeEdits.js +127 -0
  421. package/dist/core/scene/treeEdits.js.map +1 -0
  422. package/dist/core/scene/treeOrder.js +13 -0
  423. package/dist/core/scene/treeOrder.js.map +1 -0
  424. package/dist/core/scene/treeReads.js +26 -0
  425. package/dist/core/scene/treeReads.js.map +1 -0
  426. package/dist/core/scene/types.js.map +1 -1
  427. package/dist/{features/groups → core/scene}/unionOfChildren.js +3 -3
  428. package/dist/core/scene/unionOfChildren.js.map +1 -0
  429. package/dist/core/scene/unitScopes.js +13 -0
  430. package/dist/core/scene/unitScopes.js.map +1 -0
  431. package/dist/core/scene/useScene.js.map +1 -1
  432. package/dist/core/selection/readOnlySelection.js +32 -0
  433. package/dist/core/selection/readOnlySelection.js.map +1 -0
  434. package/dist/core/selection/usePublishSceneSelection.js +26 -0
  435. package/dist/core/selection/usePublishSceneSelection.js.map +1 -0
  436. package/dist/core/selection/useSelection.js +34 -25
  437. package/dist/core/selection/useSelection.js.map +1 -1
  438. package/dist/core/shapeKinds.js.map +1 -1
  439. package/dist/core/stylus/stylus.js.map +1 -1
  440. package/dist/core/stylus/usePointerStylus.js.map +1 -1
  441. package/dist/core/usePaintKinds.js +1 -1
  442. package/dist/core/usePaintKinds.js.map +1 -1
  443. package/dist/core/viewport/clientToWorld.js.map +1 -1
  444. package/dist/core/viewport/fitViewToBounds.js.map +1 -1
  445. package/dist/core/viewport/parallax.js.map +1 -1
  446. package/dist/core/viewport/screenSlop.js +11 -11
  447. package/dist/core/viewport/screenSlop.js.map +1 -1
  448. package/dist/core/viewport/useCanvasSize.js.map +1 -1
  449. package/dist/core/viewport/useDecayLoop.js +8 -8
  450. package/dist/core/viewport/useDecayLoop.js.map +1 -1
  451. package/dist/core/viewport/useNodeOverlayFrame.js +84 -0
  452. package/dist/core/viewport/useNodeOverlayFrame.js.map +1 -0
  453. package/dist/core/viewport/useViewAnimation.js +102 -43
  454. package/dist/core/viewport/useViewAnimation.js.map +1 -1
  455. package/dist/core/viewport/view.js +9 -9
  456. package/dist/core/viewport/view.js.map +1 -1
  457. package/dist/core/viewport/wheelHandler.js.map +1 -1
  458. package/dist/core/viewport/zoomBounds.js +10 -8
  459. package/dist/core/viewport/zoomBounds.js.map +1 -1
  460. package/dist/{cornerHandles-BCrDp_mH.d.ts → cornerHandles-BEshc4z3.d.ts} +11 -24
  461. package/dist/debug/createDebugOverlayLayer.js +97 -97
  462. package/dist/debug/createDebugOverlayLayer.js.map +1 -1
  463. package/dist/debug/createDebugSink.js.map +1 -1
  464. package/dist/debug/flag.js +2 -41
  465. package/dist/debug/frameStats.js.map +1 -1
  466. package/dist/debug/useDebugSink.js +52 -0
  467. package/dist/debug/useDebugSink.js.map +1 -0
  468. package/dist/features/chrome-caps/buildChromeCtx.js.map +1 -1
  469. package/dist/features/chrome-caps/conditions.js.map +1 -1
  470. package/dist/features/chrome-caps/defaults.js.map +1 -1
  471. package/dist/features/chrome-caps/resolve.js.map +1 -1
  472. package/dist/features/chrome-caps/useChromeCaps.js +54 -0
  473. package/dist/features/chrome-caps/useChromeCaps.js.map +1 -0
  474. package/dist/features/chrome-caps/useHoverTracking.js +22 -17
  475. package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
  476. package/dist/features/ingestion/contentHandlers.js +28 -19
  477. package/dist/features/ingestion/contentHandlers.js.map +1 -1
  478. package/dist/features/ingestion/imageHandler.js +21 -24
  479. package/dist/features/ingestion/imageHandler.js.map +1 -1
  480. package/dist/features/ingestion/openFilePicker.js.map +1 -1
  481. package/dist/features/ingestion/placement.js +16 -0
  482. package/dist/features/ingestion/placement.js.map +1 -0
  483. package/dist/features/ingestion/registerKitHandlers.js +7 -7
  484. package/dist/features/ingestion/svgHandler.js +5 -0
  485. package/dist/features/ingestion/svgHandler.js.map +1 -1
  486. package/dist/features/ingestion/textHandler.js +28 -0
  487. package/dist/features/ingestion/textHandler.js.map +1 -0
  488. package/dist/features/ingestion/useCanvasIngestion.js +48 -0
  489. package/dist/features/ingestion/useCanvasIngestion.js.map +1 -0
  490. package/dist/features/ingestion/weaselJsonHandler.js +22 -14
  491. package/dist/features/ingestion/weaselJsonHandler.js.map +1 -1
  492. package/dist/features/longPress/longPressFeedback.js.map +1 -1
  493. package/dist/features/modes/modeLayers.js +7 -7
  494. package/dist/features/modes/modeLayers.js.map +1 -1
  495. package/dist/features/paths/editablePath.js +47 -0
  496. package/dist/features/paths/editablePath.js.map +1 -0
  497. package/dist/features/paths/index.js +9 -14
  498. package/dist/features/paths/pathEditState.js +41 -0
  499. package/dist/features/paths/pathEditState.js.map +1 -0
  500. package/dist/features/paths/pathEditingOverlayLayer.js +36 -38
  501. package/dist/features/paths/pathEditingOverlayLayer.js.map +1 -1
  502. package/dist/features/paths/pathLayer.js +3 -2
  503. package/dist/features/paths/pathLayer.js.map +1 -1
  504. package/dist/features/paths/penPreviewLayer.js +86 -88
  505. package/dist/features/paths/penPreviewLayer.js.map +1 -1
  506. package/dist/features/paths/usePathEdit.js +34 -0
  507. package/dist/features/paths/usePathEdit.js.map +1 -0
  508. package/dist/features/poseRun/usePoseRun.js +44 -52
  509. package/dist/features/poseRun/usePoseRun.js.map +1 -1
  510. package/dist/features/selection/overlay.js +171 -179
  511. package/dist/features/selection/overlay.js.map +1 -1
  512. package/dist/features/text/index.js +6 -0
  513. package/dist/features/text/textLayer.js +1 -1
  514. package/dist/features/text/textLayer.js.map +1 -1
  515. package/dist/features/text/useSceneTextEdit.js +100 -93
  516. package/dist/features/text/useSceneTextEdit.js.map +1 -1
  517. package/dist/features/viewports/viewportLayer.js +25 -36
  518. package/dist/features/viewports/viewportLayer.js.map +1 -1
  519. package/dist/index.d.ts +8473 -9141
  520. package/dist/index.js +269 -307
  521. package/dist/input/keyState.js +38 -39
  522. package/dist/input/keyState.js.map +1 -1
  523. package/dist/input/useKeyModifiers.js +11 -0
  524. package/dist/input/useKeyModifiers.js.map +1 -0
  525. package/dist/interactions/actions/actionShortcuts.js.map +1 -1
  526. package/dist/interactions/actions/{defaults/align.js → align/action.js} +18 -20
  527. package/dist/interactions/actions/align/action.js.map +1 -0
  528. package/dist/interactions/actions/align/align.js +20 -20
  529. package/dist/interactions/actions/align/align.js.map +1 -1
  530. package/dist/interactions/actions/booleans/action.js +65 -0
  531. package/dist/interactions/actions/booleans/action.js.map +1 -0
  532. package/dist/interactions/actions/booleans/booleans.js +69 -78
  533. package/dist/interactions/actions/booleans/booleans.js.map +1 -1
  534. package/dist/interactions/actions/booleans/operands.js +40 -0
  535. package/dist/interactions/actions/booleans/operands.js.map +1 -0
  536. package/dist/interactions/actions/booleans/pieces.js +45 -0
  537. package/dist/interactions/actions/booleans/pieces.js.map +1 -0
  538. package/dist/interactions/actions/booleans/placement.js +24 -0
  539. package/dist/interactions/actions/booleans/placement.js.map +1 -0
  540. package/dist/interactions/actions/booleans/useBooleans.js +11 -9
  541. package/dist/interactions/actions/booleans/useBooleans.js.map +1 -1
  542. package/dist/interactions/actions/booleans/useBooleansAdapter.js.map +1 -1
  543. package/dist/interactions/actions/{defaults/clipboard.js → clipboard/action.js} +31 -15
  544. package/dist/interactions/actions/clipboard/action.js.map +1 -0
  545. package/dist/interactions/actions/clipboard/clipboardOps.js +44 -42
  546. package/dist/interactions/actions/clipboard/clipboardOps.js.map +1 -1
  547. package/dist/interactions/actions/clipboard/materializePaste.js +10 -7
  548. package/dist/interactions/actions/clipboard/materializePaste.js.map +1 -1
  549. package/dist/interactions/actions/clipboard/wireFormat.js.map +1 -1
  550. package/dist/interactions/actions/clone/action.js +98 -0
  551. package/dist/interactions/actions/clone/action.js.map +1 -0
  552. package/dist/interactions/actions/clone/behaviors.js +52 -0
  553. package/dist/interactions/actions/clone/behaviors.js.map +1 -0
  554. package/dist/interactions/actions/defaultCommitAdapter.js +7 -32
  555. package/dist/interactions/actions/defaultCommitAdapter.js.map +1 -1
  556. package/dist/interactions/actions/defaults/anchorEditing.js +60 -84
  557. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  558. package/dist/interactions/actions/defaults/areaSelect.js +35 -38
  559. package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
  560. package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
  561. package/dist/interactions/actions/defaults/clearSelection.js.map +1 -1
  562. package/dist/interactions/actions/defaults/copySubtree.js +40 -0
  563. package/dist/interactions/actions/defaults/copySubtree.js.map +1 -0
  564. package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
  565. package/dist/interactions/actions/defaults/delete.js.map +1 -1
  566. package/dist/interactions/actions/defaults/duplicate.js +13 -53
  567. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  568. package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
  569. package/dist/interactions/actions/defaults/group.js +40 -50
  570. package/dist/interactions/actions/defaults/group.js.map +1 -1
  571. package/dist/interactions/actions/defaults/icons/booleanIcons.js +24 -1
  572. package/dist/interactions/actions/defaults/icons/booleanIcons.js.map +1 -1
  573. package/dist/interactions/actions/defaults/icons/outlineIcons.js +39 -1
  574. package/dist/interactions/actions/defaults/icons/outlineIcons.js.map +1 -1
  575. package/dist/interactions/actions/defaults/ingest.js +44 -38
  576. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  577. package/dist/interactions/actions/defaults/insertPathAnchor.js +11 -12
  578. package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
  579. package/dist/interactions/actions/defaults/nudge.js +40 -69
  580. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  581. package/dist/interactions/actions/defaults/nudgeSteps.js +37 -0
  582. package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -0
  583. package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
  584. package/dist/interactions/actions/defaults/reorder.js +2 -0
  585. package/dist/interactions/actions/defaults/reorder.js.map +1 -1
  586. package/dist/interactions/actions/defaults/requiresSelection.js.map +1 -1
  587. package/dist/interactions/actions/defaults/setFill.js +14 -8
  588. package/dist/interactions/actions/defaults/setFill.js.map +1 -1
  589. package/dist/interactions/actions/defaults/setFillOpacity.js +7 -4
  590. package/dist/interactions/actions/defaults/setFillOpacity.js.map +1 -1
  591. package/dist/interactions/actions/defaults/setStroke.js +12 -12
  592. package/dist/interactions/actions/defaults/setStroke.js.map +1 -1
  593. package/dist/interactions/actions/defaults/setStrokeOpacity.js +6 -6
  594. package/dist/interactions/actions/defaults/sliceOps.js +8 -10
  595. package/dist/interactions/actions/defaults/sliceOps.js.map +1 -1
  596. package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
  597. package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
  598. package/dist/interactions/actions/defaults/viewportDragPan.js +37 -26
  599. package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
  600. package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
  601. package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
  602. package/dist/interactions/actions/distribute/action.js +66 -0
  603. package/dist/interactions/actions/distribute/action.js.map +1 -0
  604. package/dist/interactions/actions/distribute/distribute.js +11 -11
  605. package/dist/interactions/actions/distribute/distribute.js.map +1 -1
  606. package/dist/interactions/actions/{defaults/editAnchors.js → edit-anchors/action.js} +7 -9
  607. package/dist/interactions/actions/edit-anchors/action.js.map +1 -0
  608. package/dist/interactions/actions/edit-anchors/geometry.js +30 -27
  609. package/dist/interactions/actions/edit-anchors/geometry.js.map +1 -1
  610. package/dist/interactions/actions/flip/action.js +124 -0
  611. package/dist/interactions/actions/flip/action.js.map +1 -0
  612. package/dist/interactions/actions/flip/helpers.js +30 -17
  613. package/dist/interactions/actions/flip/helpers.js.map +1 -1
  614. package/dist/interactions/actions/gestureFrames.js +18 -0
  615. package/dist/interactions/actions/gestureFrames.js.map +1 -0
  616. package/dist/interactions/actions/gestureLifecycle.js +47 -20
  617. package/dist/interactions/actions/gestureLifecycle.js.map +1 -1
  618. package/dist/interactions/actions/hitSelection.js +8 -0
  619. package/dist/interactions/actions/hitSelection.js.map +1 -0
  620. package/dist/interactions/actions/insert/action.js +72 -0
  621. package/dist/interactions/actions/insert/action.js.map +1 -0
  622. package/dist/interactions/actions/insert/commit.js +28 -0
  623. package/dist/interactions/actions/insert/commit.js.map +1 -0
  624. package/dist/interactions/actions/insert/extras.js +65 -0
  625. package/dist/interactions/actions/insert/extras.js.map +1 -0
  626. package/dist/interactions/actions/insert/frame.js +48 -0
  627. package/dist/interactions/actions/insert/frame.js.map +1 -0
  628. package/dist/interactions/actions/insert/geometry.js +35 -0
  629. package/dist/interactions/actions/insert/geometry.js.map +1 -0
  630. package/dist/interactions/actions/insert/rotateAction.js +21 -0
  631. package/dist/interactions/actions/insert/rotateAction.js.map +1 -0
  632. package/dist/interactions/actions/insert/session.js +59 -0
  633. package/dist/interactions/actions/insert/session.js.map +1 -0
  634. package/dist/interactions/actions/insert/shape.js +34 -0
  635. package/dist/interactions/actions/insert/shape.js.map +1 -0
  636. package/dist/interactions/actions/lasso-select/action.js +143 -0
  637. package/dist/interactions/actions/lasso-select/action.js.map +1 -0
  638. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +14 -18
  639. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js.map +1 -1
  640. package/dist/interactions/actions/move/action.js +87 -0
  641. package/dist/interactions/actions/move/action.js.map +1 -0
  642. package/dist/interactions/actions/move/behaviors/layoutDrop.js +51 -0
  643. package/dist/interactions/actions/move/behaviors/layoutDrop.js.map +1 -0
  644. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js +15 -0
  645. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js.map +1 -0
  646. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +5 -5
  647. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js.map +1 -1
  648. package/dist/interactions/actions/move/behaviors/snapToContainer.js +39 -27
  649. package/dist/interactions/actions/move/behaviors/snapToContainer.js.map +1 -1
  650. package/dist/interactions/actions/move/capture.js +99 -0
  651. package/dist/interactions/actions/move/capture.js.map +1 -0
  652. package/dist/interactions/actions/move/commit/index.js +41 -0
  653. package/dist/interactions/actions/move/commit/index.js.map +1 -0
  654. package/dist/interactions/actions/move/commit/layoutDrop.js +44 -0
  655. package/dist/interactions/actions/move/commit/layoutDrop.js.map +1 -0
  656. package/dist/interactions/actions/move/commit/layoutRelease.js +100 -0
  657. package/dist/interactions/actions/move/commit/layoutRelease.js.map +1 -0
  658. package/dist/interactions/actions/move/commit/rebase.js +18 -0
  659. package/dist/interactions/actions/move/commit/rebase.js.map +1 -0
  660. package/dist/interactions/actions/move/commit/reparent.js +65 -0
  661. package/dist/interactions/actions/move/commit/reparent.js.map +1 -0
  662. package/dist/interactions/actions/move/delta.js +51 -0
  663. package/dist/interactions/actions/move/delta.js.map +1 -0
  664. package/dist/interactions/actions/move/frame.js +59 -0
  665. package/dist/interactions/actions/move/frame.js.map +1 -0
  666. package/dist/interactions/actions/move/gestureAdapter.js +22 -30
  667. package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
  668. package/dist/interactions/actions/move/landedDescendants.js +33 -0
  669. package/dist/interactions/actions/move/landedDescendants.js.map +1 -0
  670. package/dist/interactions/actions/move/layout/container.js +94 -0
  671. package/dist/interactions/actions/move/layout/container.js.map +1 -0
  672. package/dist/interactions/actions/move/layout/dragged.js +58 -0
  673. package/dist/interactions/actions/move/layout/dragged.js.map +1 -0
  674. package/dist/interactions/actions/move/layout/dropPass.js +122 -0
  675. package/dist/interactions/actions/move/layout/dropPass.js.map +1 -0
  676. package/dist/interactions/actions/move/layout/exits.js +38 -0
  677. package/dist/interactions/actions/move/layout/exits.js.map +1 -0
  678. package/dist/interactions/actions/move/layout/glide.js +48 -0
  679. package/dist/interactions/actions/move/layout/glide.js.map +1 -0
  680. package/dist/interactions/actions/move/session.js +63 -0
  681. package/dist/interactions/actions/move/session.js.map +1 -0
  682. package/dist/interactions/actions/move/translate.js +61 -0
  683. package/dist/interactions/actions/move/translate.js.map +1 -0
  684. package/dist/interactions/actions/outlines/createOutlines.js +16 -63
  685. package/dist/interactions/actions/outlines/createOutlines.js.map +1 -1
  686. package/dist/interactions/actions/outlines/createOutlinesAction.js +51 -0
  687. package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -0
  688. package/dist/interactions/actions/outlines/outlineStroke.js +72 -0
  689. package/dist/interactions/actions/outlines/outlineStroke.js.map +1 -0
  690. package/dist/interactions/actions/outlines/outlineStrokeAction.js +37 -0
  691. package/dist/interactions/actions/outlines/outlineStrokeAction.js.map +1 -0
  692. package/dist/interactions/actions/outlines/replaceWithPaths.js +54 -0
  693. package/dist/interactions/actions/outlines/replaceWithPaths.js.map +1 -0
  694. package/dist/interactions/actions/outlines/strokeRegion.js +27 -0
  695. package/dist/interactions/actions/outlines/strokeRegion.js.map +1 -0
  696. package/dist/interactions/actions/planeInput.js.map +1 -1
  697. package/dist/interactions/actions/pointerState.js +12 -0
  698. package/dist/interactions/actions/pointerState.js.map +1 -0
  699. package/dist/interactions/actions/poseDescriptorDep.js +16 -4
  700. package/dist/interactions/actions/poseDescriptorDep.js.map +1 -1
  701. package/dist/interactions/actions/poseFrame.js +25 -20
  702. package/dist/interactions/actions/poseFrame.js.map +1 -1
  703. package/dist/interactions/actions/resize/action.js +55 -0
  704. package/dist/interactions/actions/resize/action.js.map +1 -0
  705. package/dist/interactions/actions/resize/behaviors/lockAspect.js.map +1 -1
  706. package/dist/interactions/actions/resize/boxFrame.js +16 -0
  707. package/dist/interactions/actions/resize/boxFrame.js.map +1 -0
  708. package/dist/interactions/actions/resize/capture.js +85 -0
  709. package/dist/interactions/actions/resize/capture.js.map +1 -0
  710. package/dist/interactions/actions/resize/commit.js +69 -0
  711. package/dist/interactions/actions/resize/commit.js.map +1 -0
  712. package/dist/interactions/actions/resize/frame.js +74 -0
  713. package/dist/interactions/actions/resize/frame.js.map +1 -0
  714. package/dist/interactions/actions/resize/pointSnap.js +111 -0
  715. package/dist/interactions/actions/resize/pointSnap.js.map +1 -0
  716. package/dist/interactions/actions/resize/ruleBounds.js +9 -0
  717. package/dist/interactions/actions/resize/ruleBounds.js.map +1 -0
  718. package/dist/interactions/actions/resize/session.js +49 -0
  719. package/dist/interactions/actions/resize/session.js.map +1 -0
  720. package/dist/interactions/actions/resolveOverlays.js.map +1 -1
  721. package/dist/interactions/actions/resolvePreviews.js.map +1 -1
  722. package/dist/interactions/actions/rotate/action.js +56 -0
  723. package/dist/interactions/actions/rotate/action.js.map +1 -0
  724. package/dist/interactions/actions/rotate/behaviors/index.js +7 -0
  725. package/dist/interactions/actions/rotate/behaviors/index.js.map +1 -0
  726. package/dist/interactions/actions/rotate/behaviors/snapRotation.js +12 -0
  727. package/dist/interactions/actions/rotate/behaviors/snapRotation.js.map +1 -0
  728. package/dist/interactions/actions/rotate/commit.js +40 -0
  729. package/dist/interactions/actions/rotate/commit.js.map +1 -0
  730. package/dist/interactions/actions/rotate/frame.js +65 -0
  731. package/dist/interactions/actions/rotate/frame.js.map +1 -0
  732. package/dist/interactions/actions/rotate/handle.js +12 -12
  733. package/dist/interactions/actions/rotate/handle.js.map +1 -1
  734. package/dist/interactions/actions/rotate/session.js +92 -0
  735. package/dist/interactions/actions/rotate/session.js.map +1 -0
  736. package/dist/interactions/actions/selectionSubtree.js +69 -0
  737. package/dist/interactions/actions/selectionSubtree.js.map +1 -0
  738. package/dist/interactions/actions/spatialReference.js.map +1 -1
  739. package/dist/interactions/actions/useStandardActions.js +87 -78
  740. package/dist/interactions/actions/useStandardActions.js.map +1 -1
  741. package/dist/interactions/gestures/dragGesture/dragGesture.js +4 -7
  742. package/dist/interactions/gestures/dragGesture/dragGesture.js.map +1 -1
  743. package/dist/interactions/gestures/dragGesture/dragPointOf.js +23 -0
  744. package/dist/interactions/gestures/dragGesture/dragPointOf.js.map +1 -0
  745. package/dist/interactions/gestures/handleDrag/handleDrag.js +21 -26
  746. package/dist/interactions/gestures/handleDrag/handleDrag.js.map +1 -1
  747. package/dist/interactions/gestures/pointerDrag/pointerDrag.js +62 -41
  748. package/dist/interactions/gestures/pointerDrag/pointerDrag.js.map +1 -1
  749. package/dist/interactions/gestures/shared/originProjection.js +1 -1
  750. package/dist/interactions/gestures/shared/originProjection.js.map +1 -1
  751. package/dist/interactions/gestures/shared/screenTolerance.js +8 -2
  752. package/dist/interactions/gestures/shared/screenTolerance.js.map +1 -1
  753. package/dist/interactions/gestures/shared/snap.js.map +1 -1
  754. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +8 -4
  755. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js.map +1 -1
  756. package/dist/layout/arrivals.js +20 -23
  757. package/dist/layout/arrivals.js.map +1 -1
  758. package/dist/math-CYUjoyyU.d.ts +33 -0
  759. package/dist/math.d.ts +5 -3
  760. package/dist/math.js +6 -6
  761. package/dist/mesh.d.ts +4 -268
  762. package/dist/mesh.js +3 -7
  763. package/dist/move.d.ts +14 -11
  764. package/dist/{originProjection-DEklpDc_.d.ts → originProjection-PPT88jZv.d.ts} +1 -1
  765. package/dist/patterns-builtin.d.ts +1 -118
  766. package/dist/patterns-builtin.js +2 -3
  767. package/dist/{poseDescriptor-D-OH-tu5.d.ts → poseDescriptor-Bqk-11Rl.d.ts} +26 -36
  768. package/dist/renderer.d.ts +1 -91
  769. package/dist/renderer.js +2 -18
  770. package/dist/resize.d.ts +10 -22
  771. package/dist/resize.js +6 -6
  772. package/dist/style.css +1 -1
  773. package/dist/test-hook/install.js +12 -6
  774. package/dist/test-hook/install.js.map +1 -1
  775. package/dist/test-hook/useTestHook.js +22 -0
  776. package/dist/test-hook/useTestHook.js.map +1 -0
  777. package/dist/test-seams-D0pyV3pR.d.ts +149 -0
  778. package/dist/test-seams.d.ts +4 -4
  779. package/dist/test-seams.js +2 -2
  780. package/dist/tools/builtin/bone/boneActions.js +130 -0
  781. package/dist/tools/builtin/bone/boneActions.js.map +1 -0
  782. package/dist/tools/builtin/bone/boneOverlay.js +58 -0
  783. package/dist/tools/builtin/bone/boneOverlay.js.map +1 -0
  784. package/dist/tools/builtin/bone/placedRig.js +24 -0
  785. package/dist/tools/builtin/bone/placedRig.js.map +1 -0
  786. package/dist/tools/builtin/bone/rigEditState.js +21 -0
  787. package/dist/tools/builtin/bone/rigEditState.js.map +1 -0
  788. package/dist/tools/builtin/bone/useBoneTool.js +98 -0
  789. package/dist/tools/builtin/bone/useBoneTool.js.map +1 -0
  790. package/dist/tools/builtin/ellipse/useEllipseTool.js +1 -0
  791. package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
  792. package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
  793. package/dist/tools/builtin/hand/useHandTool.js +1 -0
  794. package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
  795. package/dist/tools/builtin/image/useImageTool.js.map +1 -1
  796. package/dist/tools/builtin/lasso/useLassoTool.js +11 -11
  797. package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
  798. package/dist/tools/builtin/line/useLineTool.js +1 -0
  799. package/dist/tools/builtin/line/useLineTool.js.map +1 -1
  800. package/dist/tools/builtin/pen/usePenTool.js +198 -150
  801. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  802. package/dist/tools/builtin/pencil/usePencilTool.js +1 -0
  803. package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
  804. package/dist/tools/builtin/pickTopMostHit.js.map +1 -1
  805. package/dist/tools/builtin/polygon/usePolygonTool.js +13 -8
  806. package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
  807. package/dist/tools/builtin/rect/useRectTool.js +1 -0
  808. package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
  809. package/dist/tools/builtin/select/adapterPointQuery.js +36 -0
  810. package/dist/tools/builtin/select/adapterPointQuery.js.map +1 -0
  811. package/dist/tools/builtin/select/selectionContributions.js +25 -24
  812. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  813. package/dist/tools/builtin/select/useSelectTool.js +42 -67
  814. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  815. package/dist/tools/builtin/shared/pointerFollower.js +17 -0
  816. package/dist/tools/builtin/shared/pointerFollower.js.map +1 -0
  817. package/dist/tools/builtin/slice/useSliceTool.js +72 -82
  818. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  819. package/dist/tools/builtin/star/useStarTool.js +22 -16
  820. package/dist/tools/builtin/star/useStarTool.js.map +1 -1
  821. package/dist/tools/builtin/text/useTextTool.js +9 -0
  822. package/dist/tools/builtin/text/useTextTool.js.map +1 -1
  823. package/dist/tools/builtin/weight/useWeightTool.js +77 -0
  824. package/dist/tools/builtin/weight/useWeightTool.js.map +1 -0
  825. package/dist/tools/builtin/weight/weightActions.js +112 -0
  826. package/dist/tools/builtin/weight/weightActions.js.map +1 -0
  827. package/dist/tools/builtin/weight/weightOverlay.js +61 -0
  828. package/dist/tools/builtin/weight/weightOverlay.js.map +1 -0
  829. package/dist/tools/overlayBinding.js.map +1 -1
  830. package/dist/tools/useKeybindings.js +12 -22
  831. package/dist/tools/useKeybindings.js.map +1 -1
  832. package/dist/{types-A37hYkeR.d.ts → types-CIKDwlsP.d.ts} +113 -169
  833. package/dist/util/color.js +3 -3
  834. package/dist/util/color.js.map +1 -1
  835. package/dist/util/paint.js +1 -1
  836. package/dist/util/paint.js.map +1 -1
  837. package/dist/version.js +1 -1
  838. package/package.json +28 -21
  839. package/dist/animation/colorHelpers.js +0 -135
  840. package/dist/animation/colorHelpers.js.map +0 -1
  841. package/dist/animation/colorRegistry.js +0 -37
  842. package/dist/animation/colorRegistry.js.map +0 -1
  843. package/dist/animation/engine/axes.js +0 -36
  844. package/dist/animation/engine/axes.js.map +0 -1
  845. package/dist/animation/engine/codec.js +0 -170
  846. package/dist/animation/engine/codec.js.map +0 -1
  847. package/dist/animation/engine/integrator.js +0 -12
  848. package/dist/animation/engine/integrator.js.map +0 -1
  849. package/dist/animation/loop.js +0 -62
  850. package/dist/animation/loop.js.map +0 -1
  851. package/dist/animation/observe.js +0 -23
  852. package/dist/animation/observe.js.map +0 -1
  853. package/dist/animation/rig/blendPoses.js +0 -43
  854. package/dist/animation/rig/blendPoses.js.map +0 -1
  855. package/dist/animation/rig/mirrorPose.js +0 -19
  856. package/dist/animation/rig/mirrorPose.js.map +0 -1
  857. package/dist/animation/rig/resolveSkeleton.js +0 -33
  858. package/dist/animation/rig/resolveSkeleton.js.map +0 -1
  859. package/dist/animation/rig/solveIk.js +0 -103
  860. package/dist/animation/rig/solveIk.js.map +0 -1
  861. package/dist/animation/rig/types.js +0 -12
  862. package/dist/animation/rig/types.js.map +0 -1
  863. package/dist/animation/slew.js +0 -27
  864. package/dist/animation/slew.js.map +0 -1
  865. package/dist/animation/stagger.js +0 -138
  866. package/dist/animation/stagger.js.map +0 -1
  867. package/dist/animation/timeline/booking.js +0 -106
  868. package/dist/animation/timeline/booking.js.map +0 -1
  869. package/dist/animation/timeline/createTimeline.js +0 -116
  870. package/dist/animation/timeline/createTimeline.js.map +0 -1
  871. package/dist/animation/timeline/sampleTrack.js +0 -71
  872. package/dist/animation/timeline/sampleTrack.js.map +0 -1
  873. package/dist/animation/useAnimator.js +0 -378
  874. package/dist/animation/useAnimator.js.map +0 -1
  875. package/dist/builtins-C-VgUlWI.d.ts +0 -4514
  876. package/dist/canvas/MinimapCanvas.js +0 -139
  877. package/dist/canvas/MinimapCanvas.js.map +0 -1
  878. package/dist/canvas/deps/poseComposition.js +0 -11
  879. package/dist/canvas/deps/poseComposition.js.map +0 -1
  880. package/dist/canvas/minimapMath.js +0 -80
  881. package/dist/canvas/minimapMath.js.map +0 -1
  882. package/dist/canvas/toolPreview.js +0 -39
  883. package/dist/canvas/toolPreview.js.map +0 -1
  884. package/dist/core/adapters/arrayAdapter.js +0 -85
  885. package/dist/core/adapters/arrayAdapter.js.map +0 -1
  886. package/dist/core/adapters/useArrayAdapter.js +0 -13
  887. package/dist/core/adapters/useArrayAdapter.js.map +0 -1
  888. package/dist/core/fillInPoseFrame.js +0 -102
  889. package/dist/core/fillInPoseFrame.js.map +0 -1
  890. package/dist/core/geometry/poseRotation.js +0 -58
  891. package/dist/core/geometry/poseRotation.js.map +0 -1
  892. package/dist/core/gradient.js +0 -136
  893. package/dist/core/gradient.js.map +0 -1
  894. package/dist/core/isPlainObject.js.map +0 -1
  895. package/dist/core/markerInset.js +0 -24
  896. package/dist/core/markerInset.js.map +0 -1
  897. package/dist/core/mixed.js +0 -6
  898. package/dist/core/mixed.js.map +0 -1
  899. package/dist/core/paintKinds.js +0 -156
  900. package/dist/core/paintKinds.js.map +0 -1
  901. package/dist/core/strokeMarkerShapes.js +0 -139
  902. package/dist/core/strokeMarkerShapes.js.map +0 -1
  903. package/dist/core/strokeMarkers.js +0 -28
  904. package/dist/core/strokeMarkers.js.map +0 -1
  905. package/dist/core/viewport/meanScale.js +0 -8
  906. package/dist/core/viewport/meanScale.js.map +0 -1
  907. package/dist/core/viewport/pxExtent.js +0 -42
  908. package/dist/core/viewport/pxExtent.js.map +0 -1
  909. package/dist/debug/flag.js.map +0 -1
  910. package/dist/features/cursor/paintedCursorLayer.js.map +0 -1
  911. package/dist/features/focus/gateLayer.js +0 -14
  912. package/dist/features/focus/gateLayer.js.map +0 -1
  913. package/dist/features/focus/useCanvasFocus.js +0 -29
  914. package/dist/features/focus/useCanvasFocus.js.map +0 -1
  915. package/dist/features/groups/children.js.map +0 -1
  916. package/dist/features/groups/composePose.js.map +0 -1
  917. package/dist/features/groups/nestedHit.js.map +0 -1
  918. package/dist/features/groups/unionOfChildren.js.map +0 -1
  919. package/dist/features/images/imageCache.js +0 -94
  920. package/dist/features/images/imageCache.js.map +0 -1
  921. package/dist/features/ingestion/index.js +0 -8
  922. package/dist/features/meshPaint/bake.js +0 -79
  923. package/dist/features/meshPaint/bake.js.map +0 -1
  924. package/dist/features/meshPaint/bakeCache.js +0 -59
  925. package/dist/features/meshPaint/bakeCache.js.map +0 -1
  926. package/dist/features/meshPaint/handles.js +0 -86
  927. package/dist/features/meshPaint/handles.js.map +0 -1
  928. package/dist/features/meshPaint/lazyKind.js.map +0 -1
  929. package/dist/features/meshPaint/meshPaint.js +0 -236
  930. package/dist/features/meshPaint/meshPaint.js.map +0 -1
  931. package/dist/features/meshPaint/meshShader.js +0 -6
  932. package/dist/features/meshPaint/meshShader.js.map +0 -1
  933. package/dist/features/meshPaint/register.js +0 -7
  934. package/dist/features/meshPaint/register.js.map +0 -1
  935. package/dist/features/meshPaint/surface.js +0 -110
  936. package/dist/features/meshPaint/surface.js.map +0 -1
  937. package/dist/features/minimap/actions.js +0 -53
  938. package/dist/features/minimap/actions.js.map +0 -1
  939. package/dist/features/minimap/createMinimapContribution.js +0 -96
  940. package/dist/features/minimap/createMinimapContribution.js.map +0 -1
  941. package/dist/features/minimap/layers.js +0 -103
  942. package/dist/features/minimap/layers.js.map +0 -1
  943. package/dist/features/overlays/useNodeOverlayFrame.js +0 -103
  944. package/dist/features/overlays/useNodeOverlayFrame.js.map +0 -1
  945. package/dist/features/parallax/createParallaxLayer.js +0 -26
  946. package/dist/features/parallax/createParallaxLayer.js.map +0 -1
  947. package/dist/features/parallax/createParallaxPlane.js +0 -26
  948. package/dist/features/parallax/createParallaxPlane.js.map +0 -1
  949. package/dist/features/paths/anchorEdits.js +0 -156
  950. package/dist/features/paths/anchorEdits.js.map +0 -1
  951. package/dist/features/paths/anchors.js +0 -154
  952. package/dist/features/paths/anchors.js.map +0 -1
  953. package/dist/features/paths/booleans.js +0 -2
  954. package/dist/features/paths/markerCommands.js +0 -148
  955. package/dist/features/paths/markerCommands.js.map +0 -1
  956. package/dist/features/paths/markerSites.js +0 -59
  957. package/dist/features/paths/markerSites.js.map +0 -1
  958. package/dist/features/paths/markers.js +0 -95
  959. package/dist/features/paths/markers.js.map +0 -1
  960. package/dist/features/paths/nearestAnchor.js +0 -36
  961. package/dist/features/paths/nearestAnchor.js.map +0 -1
  962. package/dist/features/paths/pathInWorld.js +0 -41
  963. package/dist/features/paths/pathInWorld.js.map +0 -1
  964. package/dist/features/paths/poseDescriptor.js +0 -39
  965. package/dist/features/paths/poseDescriptor.js.map +0 -1
  966. package/dist/features/paths/tessellate/dash.js +0 -52
  967. package/dist/features/paths/tessellate/dash.js.map +0 -1
  968. package/dist/features/paths/tessellate/insets.js +0 -32
  969. package/dist/features/paths/tessellate/insets.js.map +0 -1
  970. package/dist/features/paths/tessellate/metric.js +0 -72
  971. package/dist/features/paths/tessellate/metric.js.map +0 -1
  972. package/dist/features/paths/tessellate/stroke.js +0 -170
  973. package/dist/features/paths/tessellate/stroke.js.map +0 -1
  974. package/dist/features/paths/tessellate/vertexWidths.js +0 -32
  975. package/dist/features/paths/tessellate/vertexWidths.js.map +0 -1
  976. package/dist/features/patterns/index.js +0 -23
  977. package/dist/features/patterns/index.js.map +0 -1
  978. package/dist/features/patterns/patterns-builtin.js +0 -38
  979. package/dist/features/patterns/patterns-builtin.js.map +0 -1
  980. package/dist/features/patterns/resolveSpec.js +0 -57
  981. package/dist/features/patterns/resolveSpec.js.map +0 -1
  982. package/dist/features/patterns/tileGeometry.js +0 -158
  983. package/dist/features/patterns/tileGeometry.js.map +0 -1
  984. package/dist/features/pointer/PointerContext.js +0 -45
  985. package/dist/features/pointer/PointerContext.js.map +0 -1
  986. package/dist/features/selection/SelectionContext.js +0 -46
  987. package/dist/features/selection/SelectionContext.js.map +0 -1
  988. package/dist/features/simulation/createSimulation.js +0 -61
  989. package/dist/features/simulation/createSimulation.js.map +0 -1
  990. package/dist/features/simulation/types.js +0 -6
  991. package/dist/features/simulation/types.js.map +0 -1
  992. package/dist/features/simulation/useSimulation.js +0 -74
  993. package/dist/features/simulation/useSimulation.js.map +0 -1
  994. package/dist/features/text/domRuns.js +0 -258
  995. package/dist/features/text/domRuns.js.map +0 -1
  996. package/dist/features/text/fitTextPose.js +0 -38
  997. package/dist/features/text/fitTextPose.js.map +0 -1
  998. package/dist/features/text/hitTest.js +0 -45
  999. package/dist/features/text/hitTest.js.map +0 -1
  1000. package/dist/features/text/renderLabel.js +0 -14
  1001. package/dist/features/text/renderLabel.js.map +0 -1
  1002. package/dist/features/text/runs/effectiveRangeStyle.js +0 -66
  1003. package/dist/features/text/runs/effectiveRangeStyle.js.map +0 -1
  1004. package/dist/features/text/runs/flagRange.js +0 -53
  1005. package/dist/features/text/runs/flagRange.js.map +0 -1
  1006. package/dist/features/text/runs/rangeStyle.js +0 -135
  1007. package/dist/features/text/runs/rangeStyle.js.map +0 -1
  1008. package/dist/features/text/textCommand.js +0 -59
  1009. package/dist/features/text/textCommand.js.map +0 -1
  1010. package/dist/features/text/textToPath.js +0 -181
  1011. package/dist/features/text/textToPath.js.map +0 -1
  1012. package/dist/features/text/useTextEdit.js +0 -467
  1013. package/dist/features/text/useTextEdit.js.map +0 -1
  1014. package/dist/features/tiling/createTiledLayer.js +0 -63
  1015. package/dist/features/tiling/createTiledLayer.js.map +0 -1
  1016. package/dist/features/tiling/tiledProject.js +0 -14
  1017. package/dist/features/tiling/tiledProject.js.map +0 -1
  1018. package/dist/interactions/actions/clone/behaviors/cloneByAltDrag.js +0 -26
  1019. package/dist/interactions/actions/clone/behaviors/cloneByAltDrag.js.map +0 -1
  1020. package/dist/interactions/actions/defaults/align.js.map +0 -1
  1021. package/dist/interactions/actions/defaults/booleans.js +0 -52
  1022. package/dist/interactions/actions/defaults/booleans.js.map +0 -1
  1023. package/dist/interactions/actions/defaults/clipboard.js.map +0 -1
  1024. package/dist/interactions/actions/defaults/clone.js +0 -107
  1025. package/dist/interactions/actions/defaults/clone.js.map +0 -1
  1026. package/dist/interactions/actions/defaults/createOutlines.js +0 -47
  1027. package/dist/interactions/actions/defaults/createOutlines.js.map +0 -1
  1028. package/dist/interactions/actions/defaults/distribute.js +0 -66
  1029. package/dist/interactions/actions/defaults/distribute.js.map +0 -1
  1030. package/dist/interactions/actions/defaults/editAnchors.js.map +0 -1
  1031. package/dist/interactions/actions/defaults/flip.js +0 -119
  1032. package/dist/interactions/actions/defaults/flip.js.map +0 -1
  1033. package/dist/interactions/actions/defaults/freshNodeId.js +0 -10
  1034. package/dist/interactions/actions/defaults/freshNodeId.js.map +0 -1
  1035. package/dist/interactions/actions/defaults/insert.js +0 -288
  1036. package/dist/interactions/actions/defaults/insert.js.map +0 -1
  1037. package/dist/interactions/actions/defaults/lassoSelect.js +0 -156
  1038. package/dist/interactions/actions/defaults/lassoSelect.js.map +0 -1
  1039. package/dist/interactions/actions/defaults/move.js +0 -760
  1040. package/dist/interactions/actions/defaults/move.js.map +0 -1
  1041. package/dist/interactions/actions/defaults/resize.js +0 -335
  1042. package/dist/interactions/actions/defaults/resize.js.map +0 -1
  1043. package/dist/interactions/actions/defaults/rotate.js +0 -184
  1044. package/dist/interactions/actions/defaults/rotate.js.map +0 -1
  1045. package/dist/interactions/actions/previewOverrides.js +0 -25
  1046. package/dist/interactions/actions/previewOverrides.js.map +0 -1
  1047. package/dist/interactions/actions/resize/autoPoseDescriptor.js.map +0 -1
  1048. package/dist/math-Drrw4ewZ.d.ts +0 -160
  1049. package/dist/registerProgram-BMZRDgrh.d.ts +0 -197
  1050. package/dist/renderer/DrawCommand.js +0 -6
  1051. package/dist/renderer/DrawCommand.js.map +0 -1
  1052. package/dist/renderer/WeaselRenderer.js +0 -331
  1053. package/dist/renderer/WeaselRenderer.js.map +0 -1
  1054. package/dist/renderer/batchClip.js +0 -46
  1055. package/dist/renderer/batchClip.js.map +0 -1
  1056. package/dist/renderer/cache/GLImageCache.js +0 -64
  1057. package/dist/renderer/cache/GLImageCache.js.map +0 -1
  1058. package/dist/renderer/cache/GLMeshCache.js +0 -102
  1059. package/dist/renderer/cache/GLMeshCache.js.map +0 -1
  1060. package/dist/renderer/cache/GLTextureCache.js +0 -51
  1061. package/dist/renderer/cache/GLTextureCache.js.map +0 -1
  1062. package/dist/renderer/cache/GradientRampAtlas.js +0 -82
  1063. package/dist/renderer/cache/GradientRampAtlas.js.map +0 -1
  1064. package/dist/renderer/cache/cache.js +0 -13
  1065. package/dist/renderer/cache/cache.js.map +0 -1
  1066. package/dist/renderer/cache/markerCommandCache.js +0 -63
  1067. package/dist/renderer/cache/markerCommandCache.js.map +0 -1
  1068. package/dist/renderer/cache/outlineMeshCache.js +0 -15
  1069. package/dist/renderer/cache/outlineMeshCache.js.map +0 -1
  1070. package/dist/renderer/cache/outlineStrokeMeshCache.js +0 -36
  1071. package/dist/renderer/cache/outlineStrokeMeshCache.js.map +0 -1
  1072. package/dist/renderer/cache/strokeMeshCache.js +0 -55
  1073. package/dist/renderer/cache/strokeMeshCache.js.map +0 -1
  1074. package/dist/renderer/cullDrawCommands.js +0 -90
  1075. package/dist/renderer/cullDrawCommands.js.map +0 -1
  1076. package/dist/renderer/draw.js +0 -1135
  1077. package/dist/renderer/draw.js.map +0 -1
  1078. package/dist/renderer/drawBatch.js +0 -198
  1079. package/dist/renderer/drawBatch.js.map +0 -1
  1080. package/dist/renderer/effects/EffectTargets.js +0 -45
  1081. package/dist/renderer/effects/EffectTargets.js.map +0 -1
  1082. package/dist/renderer/effects/builtins.js +0 -31
  1083. package/dist/renderer/effects/builtins.js.map +0 -1
  1084. package/dist/renderer/effects/composite.js +0 -9
  1085. package/dist/renderer/effects/composite.js.map +0 -1
  1086. package/dist/renderer/effects/effectPrelude.js +0 -10
  1087. package/dist/renderer/effects/effectPrelude.js.map +0 -1
  1088. package/dist/renderer/effects/types.js +0 -10
  1089. package/dist/renderer/effects/types.js.map +0 -1
  1090. package/dist/renderer/glyphOutlineMesh.js +0 -67
  1091. package/dist/renderer/glyphOutlineMesh.js.map +0 -1
  1092. package/dist/renderer/index.js +0 -19
  1093. package/dist/renderer/math/color.js +0 -341
  1094. package/dist/renderer/math/color.js.map +0 -1
  1095. package/dist/renderer/math/mat3.js +0 -76
  1096. package/dist/renderer/math/mat3.js.map +0 -1
  1097. package/dist/renderer/math/patternSpace.js +0 -22
  1098. package/dist/renderer/math/patternSpace.js.map +0 -1
  1099. package/dist/renderer/math/viewToMat3.js +0 -19
  1100. package/dist/renderer/math/viewToMat3.js.map +0 -1
  1101. package/dist/renderer/paintResources.js +0 -18
  1102. package/dist/renderer/paintResources.js.map +0 -1
  1103. package/dist/renderer/paintScratch.js +0 -37
  1104. package/dist/renderer/paintScratch.js.map +0 -1
  1105. package/dist/renderer/shaders/ShaderProgram.js +0 -74
  1106. package/dist/renderer/shaders/ShaderProgram.js.map +0 -1
  1107. package/dist/renderer/shaders/batchFill.js +0 -119
  1108. package/dist/renderer/shaders/batchFill.js.map +0 -1
  1109. package/dist/renderer/shaders/customPrelude.js +0 -34
  1110. package/dist/renderer/shaders/customPrelude.js.map +0 -1
  1111. package/dist/renderer/shaders/extractUniformNames.js +0 -184
  1112. package/dist/renderer/shaders/extractUniformNames.js.map +0 -1
  1113. package/dist/renderer/shaders/glyphPaint.js +0 -61
  1114. package/dist/renderer/shaders/glyphPaint.js.map +0 -1
  1115. package/dist/renderer/shaders/gradFill.js +0 -30
  1116. package/dist/renderer/shaders/gradFill.js.map +0 -1
  1117. package/dist/renderer/shaders/imageFill.js +0 -14
  1118. package/dist/renderer/shaders/imageFill.js.map +0 -1
  1119. package/dist/renderer/shaders/pathFill.js +0 -13
  1120. package/dist/renderer/shaders/pathFill.js.map +0 -1
  1121. package/dist/renderer/shaders/patternFill.js +0 -24
  1122. package/dist/renderer/shaders/patternFill.js.map +0 -1
  1123. package/dist/renderer/shaders/registerProgram.js +0 -18
  1124. package/dist/renderer/shaders/registerProgram.js.map +0 -1
  1125. package/dist/renderer/spriteSheet.js +0 -14
  1126. package/dist/renderer/spriteSheet.js.map +0 -1
  1127. package/dist/renderer/state/GroupState.js +0 -77
  1128. package/dist/renderer/state/GroupState.js.map +0 -1
  1129. package/dist/renderer/strokeLengths.js +0 -50
  1130. package/dist/renderer/strokeLengths.js.map +0 -1
  1131. package/dist/renderer/syntheticItalic.js +0 -6
  1132. package/dist/renderer/syntheticItalic.js.map +0 -1
  1133. package/dist/renderer/textures/registerTexture.js +0 -14
  1134. package/dist/renderer/textures/registerTexture.js.map +0 -1
  1135. package/dist/scheduling/useVisibleRaf.js +0 -69
  1136. package/dist/scheduling/useVisibleRaf.js.map +0 -1
  1137. package/dist/test-seams-CuIxe0xY.d.ts +0 -356
  1138. package/dist/tools/prefs.js +0 -62
  1139. package/dist/tools/prefs.js.map +0 -1
@@ -1,1280 +1,94 @@
1
- import { dropPoseKeyedMemoSlots as e } from "./nodeMemo.js";
2
- import { createDependentsIndex as t, sameDependsOn as n } from "./dependents.js";
3
- import { asNodeId as r } from "./types.js";
4
- import { SceneArrivalRefused as i } from "./arrivals.js";
5
- import { rebuildOp as a } from "../ops/registry.js";
6
- import { NODE_FN_FIELDS as o, createNodeFnFields as s, fnKeysOf as c, restoreFn as ee } from "./nodeFnFields.js";
7
- import { withKitRegistry as te } from "./kitRegistry.js";
8
- import { dwarn as l } from "../../debug/flag.js";
9
- import { createArrangeOp as ne } from "../ops/arrange.js";
10
- import { createPoseOverrides as re } from "./poseOverrides.js";
11
- import { resized as ie, resolveLayoutFrame as ae, runLayoutPass as oe } from "./layoutPass.js";
12
- import { createHistory as se } from "@weasel-js/history";
1
+ import { IDENTITY_POSE_COMPOSITION as e } from "./composeFrame.js";
2
+ import { asNodeId as t } from "./types.js";
3
+ import { withKitRegistry as n } from "./kitRegistry.js";
4
+ import { createPoseOverrides as r } from "./poseOverrides.js";
5
+ import { createArrivalWindow as i } from "./arrivalWindow.js";
6
+ import { createNotifier as a } from "./notifier.js";
7
+ import { createEditMode as o } from "./editMode.js";
8
+ import { resolveLayoutFrame as s, runLayoutPass as c } from "./layoutPass.js";
9
+ import { systemLayerRecord as l } from "./layerStack.js";
10
+ import { createSceneEdits as u } from "./sceneEdits.js";
11
+ import { createSceneRecording as d } from "./sceneRecording.js";
12
+ import { createSceneSelection as f } from "./sceneSelection.js";
13
+ import { layerFromSerialized as p, specsFromSerialized as m } from "./serialization.js";
14
+ import { createSceneState as h } from "./sceneState.js";
13
15
  //#region src/core/scene/scene.ts
14
- var u = 0, ce = () => r(`n${(u++).toString(36)}-${Math.random().toString(36).slice(2, 8)}`);
15
- function le(e, t) {
16
- t === void 0 ? delete e.parallax : e.parallax = t;
16
+ var g = 0, _ = () => t(`n${(g++).toString(36)}-${Math.random().toString(36).slice(2, 8)}`);
17
+ function v(e) {
18
+ return y(e, (e.systemLayers ?? []).map(l), () => e.initial);
17
19
  }
18
- function ue(e) {
19
- let t = {
20
- id: e.id,
21
- visible: e.visible ?? !0,
22
- locked: e.locked ?? !1,
23
- ...e.parallax ? { parallax: e.parallax } : {}
24
- };
25
- return e.kind === "user" ? {
26
- ...t,
27
- kind: "user",
28
- name: e.name ?? e.id
29
- } : {
30
- ...t,
31
- kind: "system"
32
- };
33
- }
34
- function d(o) {
35
- if (!o.systemLayers || o.systemLayers.length === 0) throw Error("useScene: systemLayers must declare at least one layer");
36
- let u = {
37
- nodes: /* @__PURE__ */ new Map(),
38
- roots: [],
39
- layers: [],
40
- layerIndex: /* @__PURE__ */ new Map()
41
- }, d = te(o.registry ?? {}), f = s(d), p = (e) => f.find((t) => t.spec.field === e), fe = ae(o.layoutFrame), pe = !1;
42
- {
43
- let e = p("layout"), t = e.write;
44
- e.write = (e, n) => {
45
- e.kind === "container" && (pe = !0), t(e, n);
46
- };
47
- }
48
- function me(e) {
49
- let t = u.nodes.get(e);
50
- return t?.kind === "container" ? t.layout ?? null : null;
51
- }
52
- let m = t(), h = /* @__PURE__ */ new Set();
53
- function g(t) {
54
- if (_(u.nodes.get(t)?.parent ?? null), m.isEmpty()) return;
55
- let n = [t];
56
- q(t, n);
57
- for (let t of n) for (let n of m.transitiveDependentsOf(t)) {
58
- let t = u.nodes.get(n);
59
- t !== void 0 && e(t);
60
- }
61
- }
62
- function _(t) {
63
- if (h.size === 0) return;
64
- let n = t;
65
- for (; n !== null;) {
66
- let t = u.nodes.get(n);
67
- if (t === void 0) return;
68
- if (h.has(n)) {
69
- e(t);
70
- for (let t of m.transitiveDependentsOf(n)) {
71
- let n = u.nodes.get(t);
72
- n !== void 0 && e(n);
73
- }
74
- }
75
- n = t.parent;
76
- }
77
- }
78
- function he(e, t) {
79
- t === "children" ? h.add(e) : h.delete(e);
80
- }
81
- function ge(t, n) {
82
- let r = B(t);
83
- n === void 0 ? delete r.dependsOn : r.dependsOn = n, m.add(t, n === void 0 || n === "children" ? [] : n), he(t, n), e(B(t)), g(t);
84
- }
85
- for (let e = 0; e < o.systemLayers.length; e++) {
86
- let t = o.systemLayers[e];
87
- if (u.layerIndex.has(t.id)) throw Error(`useScene: duplicate system layer id "${t.id}"`);
88
- u.layers.push({
89
- kind: "system",
90
- id: t.id,
91
- visible: t.visible ?? !0,
92
- locked: t.locked ?? !1,
93
- ...t.parallax ? { parallax: t.parallax } : {}
94
- }), u.layerIndex.set(t.id, e);
95
- }
96
- let _e = o.generateId ?? ce, v = /* @__PURE__ */ new Set(), y = /* @__PURE__ */ new Map(), ve = null;
97
- function ye(e) {
98
- return {
99
- name: e.name,
100
- args: e.args,
101
- label: e.label,
102
- coalesceKey: e.coalesceKey,
103
- apply: () => {
104
- let t = ve;
105
- if (!t) return l("scene", `restored op "${e.name ?? "?"}" has no history adapter — skipping (setHistoryAdapter was not wired)`), "noop";
106
- try {
107
- return e.apply(t());
108
- } catch (t) {
109
- return l("scene", `restored op "${e.name ?? "?"}" failed against the history adapter — skipping: ${String(t)}`), "noop";
110
- }
111
- },
112
- invert: () => ye(e.invert())
113
- };
114
- }
115
- let b = [], be = re((e) => u.nodes.get(e), g), x = se(void 0, {
116
- selection: {
117
- get: () => b,
118
- set: (e) => {
119
- b = Be(e), z();
120
- }
121
- },
122
- ...o.coalesceWindowMs === void 0 ? {} : { coalesceWindowMs: o.coalesceWindowMs },
123
- ...o.historyLimit === void 0 ? {} : { historyLimit: o.historyLimit },
124
- onEvict: (e) => {
125
- Ve(e.forwardOps), Ve(e.baseOps);
126
- },
127
- rebuildOp: (e, t) => {
128
- if (y.has(e)) return Y(e, t);
129
- if (e === "arrange") return ne(t, void 0, Pe);
130
- let n = a(e, t);
131
- return n === null ? null : ye(n);
132
- }
133
- }), S = 0, xe = /* @__PURE__ */ new WeakMap(), Se = 1, C = 0, w = null, T = !1, Ce = 0, E = 0, D = null, O = !1, we = o.getActiveJournal ?? null, Te = null, k = null, A = /* @__PURE__ */ new Map(), j = /* @__PURE__ */ new Set(), M = null, Ee = /* @__PURE__ */ new Set(), De = (e, t, n) => oe($, me, e, t, fe, n);
134
- function Oe() {
135
- return Te ?? (pe ? De : null);
136
- }
137
- function ke(e, t, n) {
138
- if (k === null || t === null || t === n) return;
139
- j.add(t);
140
- let r = k.get(t);
141
- r === void 0 ? k.set(t, [e]) : r.includes(e) || r.push(e);
142
- }
143
- function Ae(e, t, n) {
144
- if (k === null || t === null || t === n || (j.add(t), k.get(t)?.includes(e))) return;
145
- let r = A.get(t);
146
- r === void 0 ? A.set(t, [e]) : r.includes(e) || r.push(e);
147
- }
148
- function N(e) {
149
- k !== null && e !== null && j.add(e);
150
- }
151
- function P() {
152
- return Oe() !== null && k === null && C === 0 && !T;
153
- }
154
- function je(e = !1) {
155
- return k !== null || !e && Oe() === null ? !1 : (k = /* @__PURE__ */ new Map(), A = /* @__PURE__ */ new Map(), j = /* @__PURE__ */ new Set(), M = null, !0);
156
- }
157
- function Me() {
158
- let e = M;
159
- if (M = null, e !== null && e.length !== 0) for (let t of [...Ee]) t(e);
160
- }
161
- function Ne() {
162
- let e = k;
163
- k = null;
164
- let t = Oe();
165
- if (e === null || t === null) return [];
166
- let n = /* @__PURE__ */ new Map();
167
- for (let [t, r] of e) {
168
- let e = r.filter((e) => u.nodes.get(e)?.parent === t);
169
- e.length > 0 && u.nodes.has(t) && n.set(t, e);
170
- }
171
- let r = /* @__PURE__ */ new Map();
172
- for (let [e, t] of A) {
173
- let n = t.filter((t) => u.nodes.get(t)?.parent !== e);
174
- n.length > 0 && u.nodes.has(e) && r.set(e, n);
175
- }
176
- A = /* @__PURE__ */ new Map();
177
- let a = new Set([...j].filter((e) => u.nodes.get(e)?.kind === "container"));
178
- if (n.size === 0 && a.size === 0) return [];
179
- let o = t(n, a, r);
180
- if (o === null) throw new i(n);
181
- let s = [];
182
- for (let [e, t] of o) {
183
- let n = u.nodes.get(e);
184
- n && s.push({
185
- id: e,
186
- from: n.pose,
187
- to: t
188
- });
189
- }
190
- return M = s, s;
191
- }
192
- function Pe(e, t) {
193
- $.setPose(r(e), t);
194
- }
195
- function Fe(e) {
196
- return e.name === "setLayout" && e.args?.to != null;
197
- }
198
- function Ie(e) {
199
- return je(e.some(Fe)) ? {
200
- ops: [...e, ne({}, Ne, Pe)],
201
- owned: !0
202
- } : {
203
- ops: e,
204
- owned: !1
205
- };
206
- }
207
- function F(e, t) {
208
- let { ops: n, owned: r } = Ie(e);
209
- try {
210
- t(n), r && Me();
211
- } catch (e) {
212
- if (!(e instanceof i)) throw e;
213
- } finally {
214
- r && (k = null, M = null);
215
- }
216
- }
217
- function Le(e) {
218
- if (!u.layers.some((e) => e.locked)) return !1;
219
- let t = u.nodes.get(e);
220
- for (; t !== void 0;) {
221
- if (u.layers[u.layerIndex.get(t.layer) ?? -1]?.locked) return !0;
222
- t = t.parent === null ? void 0 : u.nodes.get(t.parent);
223
- }
224
- return !1;
225
- }
226
- function Re(e) {
227
- if (Ce > 0) throw Error(`Scene: cannot ${e} inside untracked() — it records`);
228
- }
229
- function I(e, t) {
230
- if (!(E > 0 || !Le(e))) throw Error(`Scene: cannot ${t} "${e}" — it is on a locked layer`);
231
- }
232
- function ze(e, t) {
233
- if (!(E > 0 || !u.layers[u.layerIndex.get(e) ?? -1]?.locked)) throw Error(`Scene: cannot ${t} layer "${e}" — it is locked`);
234
- }
235
- function Be(e) {
236
- return u.layers.some((e) => e.locked) ? e.filter((e) => !Le(e)) : e;
237
- }
238
- function L(e) {
239
- E++;
240
- try {
241
- return e();
242
- } finally {
243
- E--;
244
- }
245
- }
246
- function R(e, t) {
247
- let n = D, r = [], i = b;
248
- D = r;
249
- try {
250
- let i = e();
251
- return n && !t() && n.push(...r), i;
252
- } catch (e) {
253
- throw D = null, L(() => {
254
- for (let e = r.length - 1; e >= 0; e--) {
255
- let { kind: t, payload: n } = r[e];
256
- y.get(t).revert(n);
257
- }
258
- }), b = i, r.length > 0 && z(), e;
259
- } finally {
260
- D = n;
261
- }
262
- }
263
- function z() {
264
- if (S++, C > 0) {
265
- O = !0;
266
- return;
267
- }
268
- for (let e of v) e();
269
- }
270
- function Ve(e) {
271
- if (!f.every((e) => e.pending.size === 0)) for (let t of e) {
272
- if (t.name !== "kit:add") continue;
273
- let e = t.args?.id;
274
- if (e && !u.nodes.has(e)) for (let t of f) t.pending.delete(e);
275
- }
276
- }
277
- function B(e) {
278
- let t = u.nodes.get(e);
279
- if (!t) throw Error(`Scene: unknown node id "${e}"`);
280
- return t;
281
- }
282
- function V(e) {
283
- let t = u.layerIndex.get(e);
284
- if (t === void 0) throw Error(`Scene: unknown layer "${e}"`);
285
- return t;
286
- }
287
- function H() {
288
- Q(), u.layerIndex.clear();
289
- for (let e = 0; e < u.layers.length; e++) u.layerIndex.set(u.layers[e].id, e);
290
- }
291
- function U(e, t, n, r, i = "place") {
292
- if (V(t) < V(r)) {
293
- let a = i === "place" ? `cannot place node '${e ?? "<new>"}' on layer '${t}' under parent '${n}' on layer '${r}'` : `cannot setLayer('${e ?? "<new>"}', '${t}') — node has parent '${n}' on layer '${r}'`;
294
- throw Error(`Scene: ${a} — a child may not render below its parent's layer`);
295
- }
296
- }
297
- function W(e) {
298
- if (e === null) return u.roots;
299
- let t = B(e);
300
- if (t.kind !== "container") throw Error(`Scene: parent "${e}" is not a container`);
301
- return t.children;
302
- }
303
- function G(e) {
304
- let t = B(e), n = W(t.parent), r = n.indexOf(e);
305
- if (r < 0) throw Error(`Scene: node "${e}" not found in its parent's children`);
306
- return n.splice(r, 1), Q(), {
307
- parent: t.parent,
308
- index: r
309
- };
310
- }
311
- function K(e, t, n) {
312
- let r = W(t), i = Math.max(0, Math.min(n, r.length));
313
- r.splice(i, 0, e);
314
- let a = B(e);
315
- a.parent = t, Q();
316
- }
317
- function q(e, t) {
318
- let n = u.nodes.get(e);
319
- if (n && n.kind === "container") for (let e of n.children) t.push(e), q(e, t);
320
- }
321
- function He(e) {
322
- let t = [], n = /* @__PURE__ */ new Set();
323
- function r(e) {
324
- if (n.has(e)) return;
325
- n.add(e), t.push(e);
326
- let r = [];
327
- q(e, r);
328
- for (let e of r) n.has(e) || (n.add(e), t.push(e));
329
- }
330
- for (let t of e) r(t);
331
- for (let e = 0; e < t.length; e++) for (let n of m.transitiveDependentsOf(t[e])) r(n);
332
- return {
333
- ids: t,
334
- removing: n
335
- };
336
- }
337
- function Ue(e, t, { cacheForRedo: n }) {
338
- let r = u.nodes.get(t);
339
- if (r !== void 0) for (let i of f) {
340
- let a = e[i.spec.field];
341
- a !== void 0 && (i.spec.containersOnly && e.kind !== "container" || (i.write(r, a), n && i.pending.set(t, a)));
342
- }
343
- }
344
- function We(e, t) {
345
- if (!t) return;
346
- let n = e;
347
- for (let e of f) {
348
- if (e.read(n) !== void 0) continue;
349
- let r = t[e.spec.opKey];
350
- r !== void 0 && ee(e, n, r, "kit:remove", l);
351
- }
352
- }
353
- function J(e, t) {
354
- y.set(e, t);
355
- }
356
- J("kit:add", {
357
- apply: (e) => {
358
- if (u.nodes.has(e.id)) throw Error(`Scene: id collision on "${e.id}"`);
359
- let t = e.kind === "container" ? {
360
- kind: "container",
361
- id: e.id,
362
- layer: e.layer,
363
- pose: e.pose,
364
- data: e.data,
365
- parent: e.parent,
366
- children: []
367
- } : {
368
- kind: "leaf",
369
- id: e.id,
370
- layer: e.layer,
371
- pose: e.pose,
372
- data: e.data,
373
- parent: e.parent
374
- };
375
- u.nodes.set(e.id, t), K(e.id, e.parent, e.index), e.dependsOn !== void 0 && (t.dependsOn = e.dependsOn), e.pickable !== void 0 && (t.pickable = e.pickable), m.add(e.id, e.dependsOn === "children" ? [] : e.dependsOn ?? []), he(e.id, e.dependsOn);
376
- let n = t;
377
- for (let t of f) {
378
- let r = t.pending.get(e.id);
379
- if (r !== void 0) {
380
- t.write(n, r);
381
- continue;
382
- }
383
- let i = e[t.spec.opKey];
384
- i !== void 0 && ee(t, n, i, "kit:add", l);
385
- }
386
- g(e.id);
387
- },
388
- revert: (e) => {
389
- G(e.id), u.nodes.delete(e.id), m.remove(e.id), h.delete(e.id), _(e.parent), g(e.id);
390
- }
391
- }), J("kit:remove", {
392
- apply: (e) => {
393
- for (let t of e.detached) G(t.id);
394
- for (let t of e.nodes) u.nodes.delete(t.id), m.remove(t.id), h.delete(t.id);
395
- for (let t of e.detached) _(t.parent);
396
- },
397
- revert: (e) => {
398
- let t = new Map((e.fnKeys ?? []).map((e) => [e.id, e]));
399
- for (let n of e.nodes) {
400
- let e = n.kind === "container" ? {
401
- ...n,
402
- children: [...n.children]
403
- } : { ...n };
404
- We(e, t.get(n.id)), u.nodes.set(n.id, e), m.add(n.id, e.dependsOn === "children" ? [] : e.dependsOn ?? []), he(n.id, e.dependsOn);
405
- }
406
- for (let t of e.detached) K(t.id, t.parent, t.index);
407
- for (let t of e.detached) _(t.parent);
408
- }
409
- }), J("kit:setPose", {
410
- apply: (e) => {
411
- B(e.id).pose = e.to, g(e.id);
412
- },
413
- revert: (e) => {
414
- B(e.id).pose = e.from, g(e.id);
415
- }
416
- }), J("kit:setData", {
417
- apply: (e) => {
418
- B(e.id).data = e.to, g(e.id);
419
- },
420
- revert: (e) => {
421
- B(e.id).data = e.from, g(e.id);
422
- }
423
- }), J("kit:setLayer", {
424
- apply: (e) => {
425
- V(e.to), B(e.id).layer = e.to, Q(), g(e.id);
426
- },
427
- revert: (e) => {
428
- B(e.id).layer = e.from, Q(), g(e.id);
429
- }
430
- }), J("kit:setDependsOn", {
431
- apply: (e) => {
432
- ge(e.id, e.to);
433
- },
434
- revert: (e) => {
435
- ge(e.id, e.from);
436
- }
437
- });
438
- let Ge = /* @__PURE__ */ new WeakMap();
439
- function Ke(e, t) {
440
- let n = B(e.id), r = p("layout"), i = Ge.get(e), a = t === "from" ? e.fromKey : e.toKey;
441
- if (i === void 0 && a !== void 0) {
442
- delete n.layout, ee(r, n, a, "kit:setLayout", l);
443
- return;
444
- }
445
- let o = i?.[t] ?? null;
446
- o === null ? delete n.layout : r.write(n, o);
447
- }
448
- J("kit:setLayout", {
449
- apply: (e) => {
450
- Ke(e, "to");
451
- },
452
- revert: (e) => {
453
- Ke(e, "from");
454
- }
455
- }), J("kit:move", {
456
- apply: (e) => {
457
- G(e.id), K(e.id, e.toParent, e.toIndex), _(e.fromParent), g(e.id);
458
- },
459
- revert: (e) => {
460
- G(e.id), K(e.id, e.fromParent, e.fromIndex), _(e.toParent), g(e.id);
461
- }
462
- }), J("kit:setLayerVisible", {
463
- apply: (e) => {
464
- u.layers[V(e.layer)].visible = e.to;
465
- },
466
- revert: (e) => {
467
- u.layers[V(e.layer)].visible = e.from;
468
- }
469
- }), J("kit:setLayerLocked", {
470
- apply: (e) => {
471
- u.layers[V(e.layer)].locked = e.to, e.to && (b = Be(b));
472
- },
473
- revert: (e) => {
474
- u.layers[V(e.layer)].locked = e.from;
475
- }
476
- }), J("kit:setLayerParallax", {
477
- apply: (e) => {
478
- le(u.layers[V(e.layer)], e.to);
479
- },
480
- revert: (e) => {
481
- le(u.layers[V(e.layer)], e.from);
482
- }
483
- }), J("kit:addLayer", {
484
- apply: (e) => {
485
- u.layers.splice(e.index, 0, { ...e.record }), H();
486
- },
487
- revert: (e) => {
488
- u.layers.splice(e.index, 1), H();
489
- }
490
- }), J("kit:removeLayer", {
491
- apply: (e) => {
492
- u.layers.splice(e.index, 1), H();
493
- },
494
- revert: (e) => {
495
- u.layers.splice(e.index, 0, { ...e.record }), H();
496
- }
497
- }), J("kit:renameLayer", {
498
- apply: (e) => {
499
- u.layers[V(e.layer)].name = e.to;
500
- },
501
- revert: (e) => {
502
- u.layers[V(e.layer)].name = e.from;
503
- }
504
- }), J("kit:moveLayer", {
505
- apply: (e) => {
506
- let [t] = u.layers.splice(e.from, 1);
507
- u.layers.splice(e.to, 0, t), H();
508
- },
509
- revert: (e) => {
510
- let [t] = u.layers.splice(e.to, 1);
511
- u.layers.splice(e.from, 0, t), H();
512
- }
20
+ function y(l, g, v) {
21
+ if (g.length === 0) throw Error("Scene: systemLayers must declare at least one layer");
22
+ let y = n(l.registry ?? {}), b = h(y, g, () => O.layoutDeclared()), { state: x, locks: S, reads: C } = b, w = a(), T = o(), E = (e, n) => {
23
+ P.setPose(t(e), n);
24
+ }, D = s(l.layoutFrame), O = i({
25
+ nodes: x.nodes,
26
+ layoutPass: (e, t, n) => c(P, C.layoutOf, e, t, D, n),
27
+ recordsBareEdits: () => !T.open(),
28
+ writePose: E
29
+ }), k = l.generateId ?? _, A = f(S.reachable);
30
+ A.subscribe(w.notify);
31
+ let j = r((e) => x.nodes.get(e), b.store.invalidateDependents), M = d({
32
+ notifier: w,
33
+ mode: T,
34
+ stale: b.stale,
35
+ lifted: S.lifted,
36
+ selection: A,
37
+ arrivals: O,
38
+ writePose: E,
39
+ config: l
40
+ }), N = u({
41
+ state: x,
42
+ store: b.store,
43
+ locks: S,
44
+ layers: b.layers,
45
+ invalidateOrder: b.order.invalidate,
46
+ fnFields: b.fnFields,
47
+ ops: M.ops,
48
+ recorder: M.recorder,
49
+ arrivals: O,
50
+ layoutFrame: D,
51
+ generateId: k,
52
+ narrowSelection: A.narrow,
53
+ clearOverride: j.clear
513
54
  });
514
- function qe(e, t) {
515
- let n = y.get(e);
516
- if (!n) throw Error(`Scene: no registered op for kind "${e}"`);
517
- n.apply(t);
518
- }
519
- function Y(e, t, n = "fwd") {
520
- if (!y.has(e)) throw Error(`Scene: no registered op for kind "${e}"`);
521
- return {
522
- name: e,
523
- args: t,
524
- coalesceKey: Ye(e, t),
525
- apply: () => {
526
- let r = y.get(e);
527
- if (!r) throw Error(`Scene: no registered op for kind "${e}"`);
528
- (n === "fwd" ? r.apply : r.revert)(t);
529
- },
530
- invert: () => Y(e, t, n === "fwd" ? "rev" : "fwd")
531
- };
532
- }
533
- function Je(e, t) {
534
- return {
535
- name: e.name,
536
- args: e.args,
537
- label: e.label,
538
- coalesceKey: e.coalesceKey,
539
- apply: () => e.apply(t),
540
- invert: () => Je(e.invert(), t)
541
- };
542
- }
543
- function Ye(e, t) {
544
- if (typeof t != "object" || !t) return;
545
- let n = t, r = typeof n.id == "string" ? n.id : typeof n.layer == "string" ? n.layer : void 0;
546
- return r === void 0 ? void 0 : `${e}:${r}`;
547
- }
548
- function X(e) {
549
- let t = T;
550
- T = !0, C++;
551
- let n = O;
552
- try {
553
- return e();
554
- } finally {
555
- C--, T = t, O = n;
556
- }
557
- }
558
- function Z(e, t, n) {
559
- if (T) {
560
- qe(e, t), D?.push({
561
- kind: e,
562
- payload: t
563
- }), z();
564
- return;
565
- }
566
- if (w) {
567
- qe(e, t), D?.push({
568
- kind: e,
569
- payload: t
570
- }), w.ops.push(Y(e, t)), z();
571
- return;
572
- }
573
- x.applyOps([Y(e, t)], n), z();
574
- }
575
- if (o.ops) for (let [e, t] of Object.entries(o.ops)) y.set(e, t);
576
- function Xe() {
577
- return u.layers.length === 1 ? nt() : it();
578
- }
579
- function Ze() {
580
- return u.layers.length === 1 ? rt() : at();
581
- }
582
- let Qe = 0, $e = { gen: 0 };
583
- function Q() {
584
- Qe++;
585
- }
586
- let et = [];
587
- function tt() {
588
- return $e.gen !== Qe && ($e = { gen: Qe }), $e;
589
- }
590
- function nt() {
591
- let e = u.layers[0].id, t = [], n = [...u.roots].reverse();
592
- for (; n.length > 0;) {
593
- let r = n.pop(), i = u.nodes.get(r);
594
- if (i && (i.layer === e && t.push(r), i.kind === "container")) for (let e = i.children.length - 1; e >= 0; e--) n.push(i.children[e]);
595
- }
596
- return t;
597
- }
598
- function rt() {
599
- let e = u.layers[0].id, t = [], n = [...u.roots].reverse();
600
- for (; n.length > 0;) {
601
- let r = n.pop(), i = u.nodes.get(r);
602
- if (i && (i.layer === e && t.push(i), i.kind === "container")) for (let e = i.children.length - 1; e >= 0; e--) n.push(i.children[e]);
603
- }
604
- return t;
605
- }
606
- function it() {
607
- let e = u.layers.map(() => []), t = [...u.roots].reverse();
608
- for (; t.length > 0;) {
609
- let n = t.pop(), r = u.nodes.get(n);
610
- if (!r) continue;
611
- let i = e[u.layerIndex.get(r.layer) ?? -1];
612
- if (i && i.push(n), r.kind === "container") for (let e = r.children.length - 1; e >= 0; e--) t.push(r.children[e]);
613
- }
614
- let n = [];
615
- for (let t of e) for (let e of t) n.push(e);
616
- return n;
617
- }
618
- function at() {
619
- let e = u.layers.map(() => []), t = [...u.roots].reverse();
620
- for (; t.length > 0;) {
621
- let n = t.pop(), r = u.nodes.get(n);
622
- if (!r) continue;
623
- let i = e[u.layerIndex.get(r.layer) ?? -1];
624
- if (i && i.push(r), r.kind === "container") for (let e = r.children.length - 1; e >= 0; e--) t.push(r.children[e]);
625
- }
626
- let n = [];
627
- for (let t of e) for (let e of t) n.push(e);
628
- return n;
629
- }
630
- let ot = /* @__PURE__ */ new WeakMap();
631
- function st(e) {
632
- let t = {
633
- targetId: e.targetId,
634
- forkedAtEntryId: e.forkedAtEntryId,
635
- applyBatch(t, n) {
636
- F(t, (t) => {
637
- R(() => X(() => e.applyBatch(t, n)), () => !0), z();
638
- });
639
- },
640
- undo() {
641
- L(() => X(() => e.undo())), z();
642
- },
643
- redo() {
644
- L(() => X(() => e.redo())), z();
645
- },
646
- canUndo: () => e.canUndo(),
647
- canRedo: () => e.canRedo(),
648
- entries: () => e.entries(),
649
- seal: () => e.seal(),
650
- getVersion: () => e.getVersion(),
651
- subscribe: (t) => e.subscribe(t),
652
- commit(t) {
653
- e.commit(t), z();
654
- },
655
- cancel() {
656
- L(() => X(() => e.cancel())), z();
657
- },
658
- suspend: () => e.suspend(),
659
- isActive: () => e.isActive()
660
- };
661
- return ot.set(t, e), t;
662
- }
663
- let ct = {
664
- apply(e, t) {
665
- Re("history.apply"), F([e], (n) => {
666
- let r = () => n.length === 1 ? x.apply(e, t) : x.applyOps(n, t ?? e.label ?? "");
667
- R(() => X(r), () => !0), z();
668
- });
669
- },
670
- applyOps(e, t) {
671
- Re("history.applyOps"), F(e, (e) => {
672
- R(() => X(() => x.applyOps(e, t)), () => !0), z();
673
- });
674
- },
675
- undo: () => {
676
- $.undo();
677
- },
678
- redo: () => {
679
- $.redo();
680
- },
681
- goto: (e) => {
682
- $.jumpToHistoryIndex(e);
683
- },
684
- clear() {
685
- x.clear(), z();
686
- },
687
- recordEntry(e, t, n) {
688
- x.recordEntry(e, t, n), z();
689
- },
690
- prune(e) {
691
- x.prune(e), z();
692
- },
693
- switchBranch(e) {
694
- x.switchBranch(e), z();
695
- },
696
- restore: (e) => {
697
- $.restoreHistory(e);
698
- },
699
- canUndo: () => x.canUndo(),
700
- canRedo: () => x.canRedo(),
701
- undoDepth: () => x.undoDepth(),
702
- redoDepth: () => x.redoDepth(),
703
- entries: () => x.entries(),
704
- timestampAt: (e) => x.timestampAt(e),
705
- depthAt: (e) => x.depthAt(e),
706
- branches: () => x.branches(),
707
- getVersion: () => x.getVersion(),
708
- subscribe: (e) => x.subscribe(e),
709
- serialize: () => x.serialize(),
710
- allForwardOps: () => x.allForwardOps(),
711
- seal: () => x.seal(),
712
- currentEntryId: () => x.currentEntryId(),
713
- beginJournal: (e) => st(x.beginJournal(e)),
714
- resumeJournal: (e) => x.resumeJournal(ot.get(e) ?? e)
715
- };
716
- function lt(e, t, n) {
717
- let r = (we ?? (() => null))(), i = T, a = O;
718
- T = !0, C++, O = !1;
719
- try {
720
- R(() => {
721
- r ? r.applyBatch(e, t) : x.applyOps(e.map((e) => Je(e, n)), t);
722
- }, () => !0);
723
- } finally {
724
- if (C--, T = i, O ||= a, C === 0 && O) {
725
- O = !1;
726
- for (let e of v) e();
727
- }
728
- }
729
- }
730
- let $ = {
55
+ for (let [e, t] of Object.entries(l.ops ?? {})) M.ops.register(e, t);
56
+ let P = {
731
57
  get nodes() {
732
- return u.nodes;
58
+ return x.nodes;
733
59
  },
734
60
  get roots() {
735
- return u.roots;
61
+ return x.roots;
736
62
  },
737
63
  get layers() {
738
- return u.layers;
739
- },
740
- registry: d,
741
- get(e) {
742
- return u.nodes.get(e);
743
- },
744
- incarnation(e) {
745
- let t = u.nodes.get(e);
746
- if (!t) return;
747
- let n = xe.get(t);
748
- return n === void 0 && (n = Se++, xe.set(t, n)), n;
749
- },
750
- childrenOf(e) {
751
- let t = u.nodes.get(e);
752
- return t && t.kind === "container" ? t.children : [];
753
- },
754
- ancestorsOf(e) {
755
- let t = [], n = u.nodes.get(e)?.parent ?? null;
756
- for (; n !== null;) t.push(n), n = u.nodes.get(n)?.parent ?? null;
757
- return t;
758
- },
759
- renderOrder() {
760
- let e = tt();
761
- return e.ids ??= Xe();
762
- },
763
- renderOrderNodes() {
764
- let e = tt();
765
- return e.nodes ??= Ze();
766
- },
767
- nodesOnLayer(e) {
768
- let t = tt(), n = t.byLayer;
769
- if (!n) {
770
- n = /* @__PURE__ */ new Map();
771
- for (let e of t.nodes ??= Ze()) {
772
- let t = n.get(e.layer);
773
- t || n.set(e.layer, t = []), t.push(e);
774
- }
775
- t.byLayer = n;
776
- }
777
- return n.get(e) ?? et;
778
- },
779
- add(e) {
780
- let t = e.id ?? _e();
781
- if (u.nodes.has(t)) throw Error(`Scene: id collision on "${t}"`);
782
- V(e.layer), ze(e.layer, "add to");
783
- let n = e.parent ?? null;
784
- if (n !== null) {
785
- let t = B(n);
786
- if (t.kind !== "container") throw Error(`Scene: parent "${n}" is not a container`);
787
- U(e.id, e.layer, n, t.layer), I(n, "add under");
788
- }
789
- if (n !== null && P()) return $.batch(`add ${e.kind}`, () => $.add(e));
790
- let r = W(n), i = e.index ?? r.length;
791
- return ke(t, n, null), Z("kit:add", {
792
- id: t,
793
- kind: e.kind,
794
- layer: e.layer,
795
- pose: e.pose,
796
- data: e.data,
797
- parent: n,
798
- index: i,
799
- ...e.dependsOn === void 0 ? {} : { dependsOn: e.dependsOn },
800
- ...e.pickable === void 0 ? {} : { pickable: e.pickable },
801
- ...c(f, {
802
- ...e,
803
- id: t,
804
- kind: e.kind
805
- }, "opKey")
806
- }, `add ${e.kind}`), Ue(e, t, { cacheForRedo: !0 }), t;
807
- },
808
- remove(e) {
809
- $.removeMany([e]);
810
- },
811
- removalClosure(e) {
812
- return He(e).ids;
813
- },
814
- removeMany(e) {
815
- if (e.length === 0) return;
816
- let { ids: t, removing: n } = He(e);
817
- for (let e of t) I(e, "remove");
818
- let r = t.map((e) => {
819
- let t = B(e);
820
- return t.kind === "container" ? {
821
- ...t,
822
- children: [...t.children]
823
- } : { ...t };
824
- }), i = r.filter((e) => e.parent === null || !n.has(e.parent)).map((e) => ({
825
- id: e.id,
826
- parent: e.parent,
827
- index: W(e.parent).indexOf(e.id)
828
- })).sort((e, t) => e.index - t.index);
829
- for (let e of t) be.clear(e);
830
- let a = r.flatMap((e) => {
831
- let t = c(f, e, "opKey");
832
- return Object.keys(t).length === 0 ? [] : [{
833
- id: e.id,
834
- ...t
835
- }];
836
- }), o = {
837
- nodes: r,
838
- detached: i,
839
- ...a.length > 0 ? { fnKeys: a } : {}
840
- };
841
- if (i.some((e) => e.parent !== null) && P()) {
842
- $.batch("remove", () => $.removeMany(e));
843
- return;
844
- }
845
- for (let e of i) Ae(e.id, e.parent, null);
846
- Z("kit:remove", o, "remove");
847
- },
848
- update(e, t) {
849
- let n = B(e);
850
- I(e, "update"), Z("kit:setData", {
851
- id: e,
852
- from: n.data,
853
- to: t.data
854
- }, "update");
855
- },
856
- setPose(e, t) {
857
- let n = B(e);
858
- if (I(e, "set the pose of"), n.kind === "container" && ie(fe, e, n.pose, t)) {
859
- if (P()) {
860
- $.batch("setPose", () => $.setPose(e, t));
861
- return;
862
- }
863
- N(e);
864
- }
865
- Z("kit:setPose", {
866
- id: e,
867
- from: n.pose,
868
- to: t
869
- }, "setPose");
870
- },
871
- setLayer(e, t) {
872
- V(t);
873
- let n = B(e);
874
- if (I(e, "relayer"), n.layer !== t && ze(t, "move nodes onto"), n.parent !== null) {
875
- let r = B(n.parent);
876
- U(e, t, n.parent, r.layer, "relayer");
877
- }
878
- if (n.layer === t) return;
879
- let r = [], i = [e];
880
- for (; i.length > 0;) {
881
- let e = i.pop(), t = u.nodes.get(e);
882
- if (t && (r.push(e), I(e, "relayer"), t.kind === "container")) for (let e = t.children.length - 1; e >= 0; e--) i.push(t.children[e]);
883
- }
884
- r.length === 1 ? Z("kit:setLayer", {
885
- id: e,
886
- from: n.layer,
887
- to: t
888
- }, "setLayer") : $.batch("setLayer", () => {
889
- for (let e of r) {
890
- let n = B(e);
891
- n.layer !== t && Z("kit:setLayer", {
892
- id: e,
893
- from: n.layer,
894
- to: t
895
- }, "setLayer");
896
- }
897
- });
898
- },
899
- setDependsOn(e, t) {
900
- let r = B(e);
901
- I(e, "retarget"), !n(r.dependsOn, t) && Z("kit:setDependsOn", {
902
- id: e,
903
- from: r.dependsOn,
904
- to: t
905
- }, "setDependsOn");
906
- },
907
- setLayout(e, t) {
908
- let n = B(e);
909
- if (n.kind !== "container") throw Error(`Scene: "${e}" is not a container`);
910
- I(e, "set the layout of");
911
- let r = p("layout"), i;
912
- if (typeof t == "string") {
913
- if (i = r.fnOf(t) ?? null, i === null) throw Error(`Scene: no layout "${t}" in this scene's registry`);
914
- } else i = t;
915
- let a = n.layout ?? null;
916
- if (a === i) return;
917
- if (i !== null && (pe = !0), P()) {
918
- $.batch("setLayout", () => $.setLayout(e, i));
919
- return;
920
- }
921
- N(e);
922
- let o = a === null ? void 0 : r.keyOf(a), s = i === null ? void 0 : r.keyOf(i), c = {
923
- id: e,
924
- ...o === void 0 ? {} : { fromKey: o },
925
- ...s === void 0 ? {} : { toKey: s }
926
- };
927
- Ge.set(c, {
928
- from: a,
929
- to: i
930
- }), Z("kit:setLayout", c, "setLayout");
931
- },
932
- move(e, t, n) {
933
- let r = B(e);
934
- if (I(e, "move"), t !== null) {
935
- I(t, "move nodes into");
936
- let n = B(t);
937
- if (n.kind !== "container") throw Error(`Scene: parent "${t}" is not a container`);
938
- if (U(e, r.layer, t, n.layer), t === e) throw Error("Scene: cannot parent a node to itself");
939
- let i = [];
940
- if (q(e, i), i.includes(t)) throw Error("Scene: cannot parent a node to its own descendant");
941
- }
942
- if ((t !== null || r.parent !== null) && P()) {
943
- $.batch("move", () => $.move(e, t, n));
944
- return;
945
- }
946
- let i = W(r.parent), a = i.indexOf(e), o = t === r.parent ? i : W(t), s = n ?? o.length;
947
- ke(e, t, r.parent), Ae(e, r.parent, t), N(r.parent), Z("kit:move", {
948
- id: e,
949
- fromParent: r.parent,
950
- fromIndex: a,
951
- toParent: t,
952
- toIndex: s
953
- }, "move");
954
- },
955
- reorder(e, t) {
956
- let n = B(e);
957
- if (I(e, "reorder"), n.parent !== null && P()) {
958
- $.batch("reorder", () => $.reorder(e, t));
959
- return;
960
- }
961
- N(n.parent);
962
- let r = W(n.parent).indexOf(e);
963
- Z("kit:move", {
964
- id: e,
965
- fromParent: n.parent,
966
- fromIndex: r,
967
- toParent: n.parent,
968
- toIndex: t
969
- }, "reorder");
970
- },
971
- setLayerVisible(e, t) {
972
- let n = V(e);
973
- Z("kit:setLayerVisible", {
974
- layer: e,
975
- from: u.layers[n].visible,
976
- to: t
977
- }, "setLayerVisible");
978
- },
979
- setLayerLocked(e, t) {
980
- let n = V(e);
981
- Z("kit:setLayerLocked", {
982
- layer: e,
983
- from: u.layers[n].locked,
984
- to: t
985
- }, "setLayerLocked");
986
- },
987
- setLayerParallax(e, t) {
988
- let n = V(e);
989
- Z("kit:setLayerParallax", {
990
- layer: e,
991
- from: u.layers[n].parallax,
992
- to: t
993
- }, "setLayerParallax");
994
- },
995
- isLocked: (e) => Le(e),
996
- unlocked: (e) => L(e),
997
- addLayer(e) {
998
- if (u.layerIndex.has(e.id)) throw Error(`Scene: duplicate layer id "${e.id}"`);
999
- let t = e.index ?? u.layers.length, n = Math.max(0, Math.min(t, u.layers.length));
1000
- Z("kit:addLayer", {
1001
- record: {
1002
- kind: "user",
1003
- id: e.id,
1004
- name: e.name,
1005
- visible: e.visible ?? !0,
1006
- locked: e.locked ?? !1,
1007
- ...e.parallax ? { parallax: e.parallax } : {}
1008
- },
1009
- index: n
1010
- }, "addLayer");
1011
- },
1012
- removeLayer(e) {
1013
- let t = V(e), n = u.layers[t];
1014
- if (n.kind !== "user") throw Error(`Scene: cannot remove system layer "${e}"`);
1015
- L(() => $.batch("removeLayer", () => {
1016
- let t = [];
1017
- for (let [n, r] of u.nodes) r.layer === e && t.push(n);
1018
- $.removeMany(t);
1019
- let r = V(e);
1020
- Z("kit:removeLayer", {
1021
- record: n,
1022
- index: r
1023
- }, "removeLayer");
1024
- }));
1025
- },
1026
- renameLayer(e, t) {
1027
- let n = u.layers[V(e)];
1028
- if (n.kind !== "user") throw Error(`Scene: cannot rename system layer "${e}"`);
1029
- Z("kit:renameLayer", {
1030
- layer: e,
1031
- from: n.name,
1032
- to: t
1033
- }, "renameLayer");
1034
- },
1035
- moveLayer(e, t) {
1036
- let n = V(e), r = Math.max(0, Math.min(t, u.layers.length - 1));
1037
- if (n === r) return;
1038
- let i = [...u.layers], [a] = i.splice(n, 1);
1039
- i.splice(r, 0, a);
1040
- let o = /* @__PURE__ */ new Map();
1041
- for (let e = 0; e < i.length; e++) o.set(i[e].id, e);
1042
- for (let n of u.nodes.values()) {
1043
- if (n.parent === null) continue;
1044
- let r = u.nodes.get(n.parent);
1045
- if (r && o.get(n.layer) < o.get(r.layer)) throw Error(`Scene: moveLayer("${e}", ${t}) — a child may not render below its parent's layer`);
1046
- }
1047
- Z("kit:moveLayer", {
1048
- layer: e,
1049
- from: n,
1050
- to: r
1051
- }, "moveLayer");
1052
- },
1053
- registerOp(e, t) {
1054
- if (e.startsWith("kit:")) throw Error(`Scene: op kind "${e}" is reserved (kit:* prefix)`);
1055
- y.set(e, t);
1056
- },
1057
- recordOp(e) {
1058
- Z(e.kind, e.payload, e.kind);
1059
- },
1060
- setActiveJournalAccessor(e) {
1061
- we = e;
1062
- },
1063
- applyBatch(e, t, n) {
1064
- Re("applyBatch"), F(e, (e) => lt(e, t, n));
1065
- },
1066
- setArrivalHandler(e) {
1067
- return Te = e, () => {
1068
- Te === e && (Te = null);
1069
- };
1070
- },
1071
- layoutOf(e) {
1072
- return me(e);
1073
- },
1074
- onReflow(e) {
1075
- return Ee.add(e), () => {
1076
- Ee.delete(e);
1077
- };
1078
- },
1079
- overrides: be,
1080
- getSelection: () => b,
1081
- setSelection(e) {
1082
- b = Be([...e]), z();
1083
- },
1084
- history: ct,
1085
- undo() {
1086
- return x.canUndo() ? (L(() => X(() => x.undo())), z(), !0) : !1;
1087
- },
1088
- redo() {
1089
- return x.canRedo() ? (L(() => X(() => x.redo())), z(), !0) : !1;
1090
- },
1091
- canUndo: () => x.canUndo(),
1092
- canRedo: () => x.canRedo(),
1093
- historyEntries() {
1094
- let { undo: e, redo: t } = x.entries(), n = [];
1095
- for (let t of e) n.push({
1096
- id: String(t.id),
1097
- label: t.label
1098
- });
1099
- for (let e of t) n.push({
1100
- id: String(e.id),
1101
- label: e.label
1102
- });
1103
- return n;
1104
- },
1105
- historyIndex: () => x.undoDepth(),
1106
- jumpToHistoryIndex(e) {
1107
- let t = x.undoDepth() + x.redoDepth(), n = Math.max(0, Math.min(t, e));
1108
- return n !== x.undoDepth() && (L(() => X(() => x.goto(n))), z(), !0);
1109
- },
1110
- serializeHistory: () => x.serialize(),
1111
- restoreHistory(e) {
1112
- x.restore(e), z();
1113
- },
1114
- setHistoryAdapter(e) {
1115
- ve = e;
1116
- },
1117
- batch(e, t) {
1118
- let n = C === 0;
1119
- n && (w = {
1120
- label: e,
1121
- ops: [],
1122
- selectionBefore: b
1123
- });
1124
- let i = n && je(!0);
1125
- C++;
1126
- try {
1127
- if (!n) return t();
1128
- try {
1129
- let e = R(() => {
1130
- let e = t();
1131
- if (i) for (let e of Ne()) $.setPose(r(e.id), e.to);
1132
- return e;
1133
- }, () => (w?.ops.length ?? 0) > 0);
1134
- return i && Me(), e;
1135
- } catch (e) {
1136
- throw w = null, e;
1137
- }
1138
- } finally {
1139
- if (C--, i && (k = null, M = null), C === 0) {
1140
- if (w) {
1141
- let e = w;
1142
- w = null, e.ops.length > 0 && x.recordEntry(e.ops, e.label, { selectionBefore: e.selectionBefore });
1143
- }
1144
- if (O) {
1145
- O = !1;
1146
- for (let e of v) e();
1147
- }
1148
- }
1149
- }
1150
- },
1151
- untracked(e) {
1152
- let t = T, n = S;
1153
- T = !0, Ce++;
1154
- let i = je(!0);
1155
- C++;
1156
- try {
1157
- let t = R(() => {
1158
- let t = e();
1159
- if (i) for (let e of Ne()) $.setPose(r(e.id), e.to);
1160
- return t;
1161
- }, () => !1);
1162
- return i && Me(), t;
1163
- } finally {
1164
- if (C--, i && (k = null, M = null), Ce--, T = t, S !== n && x.seal(), C === 0 && O) {
1165
- O = !1;
1166
- for (let e of v) e();
1167
- }
1168
- }
1169
- },
1170
- toJSON() {
1171
- let e = [];
1172
- for (let t of Ze()) {
1173
- let n = t.id, r = {
1174
- id: n,
1175
- kind: t.kind,
1176
- layer: t.layer,
1177
- pose: t.pose,
1178
- data: t.data
1179
- };
1180
- t.parent != null && (r.parent = t.parent), t.dependsOn === "children" ? r.dependsOn = "children" : t.dependsOn && t.dependsOn.length > 0 && (r.dependsOn = t.dependsOn), t.pickable === !1 && (r.pickable = !1), Object.assign(r, c(f, t, "jsonKey", (e) => {
1181
- throw Error(`Scene.toJSON: node '${n}' has ${e.spec.field} but no matching registry key. The function must be registered via createScene's registry option to round-trip.`);
1182
- })), e.push(r);
1183
- }
1184
- return {
1185
- version: 1,
1186
- systemLayers: u.layers.map((e) => {
1187
- let t = { id: e.id };
1188
- return e.visible === !1 && (t.visible = !1), e.locked === !0 && (t.locked = !0), e.parallax && (t.parallax = e.parallax), e.kind === "user" && (t.kind = "user", t.name = e.name), t;
1189
- }),
1190
- nodes: e
1191
- };
1192
- },
64
+ return x.layers;
65
+ },
66
+ registry: y,
67
+ ...C,
68
+ mintId: k,
69
+ composition: l.composition ?? e,
70
+ ...N.methods,
71
+ ...M.methods,
72
+ unlocked: (e) => S.lifted(e),
73
+ setArrivalHandler: O.setHandler,
74
+ onReflow: O.onReflow,
75
+ overrides: j,
76
+ getSelection: A.get,
77
+ setSelection: (e) => A.set([...e]),
1193
78
  loadState(e) {
1194
- let t = de(e, d);
1195
- m.clear(), u.nodes.clear(), u.roots.length = 0, u.layers.length = 0, u.layerIndex.clear(), Q();
1196
- for (let t = 0; t < e.systemLayers.length; t++) {
1197
- let n = e.systemLayers[t];
1198
- if (u.layerIndex.has(n.id)) throw Error(`Scene.loadState: duplicate system layer id "${n.id}"`);
1199
- u.layers.push(ue(n)), u.layerIndex.set(n.id, t);
1200
- }
1201
- x.clear();
1202
- for (let e of f) e.pending.clear();
1203
- w = null, C = 0, O = !1, ut(t), z();
1204
- },
1205
- subscribe(e) {
1206
- return v.add(e), () => v.delete(e);
1207
- },
1208
- getVersion: () => S
1209
- };
1210
- function ut(e) {
1211
- for (let t of e) {
1212
- let e = t.id ?? _e();
1213
- if (u.nodes.has(e)) throw Error(`Scene: id collision on "${e}"`);
1214
- V(t.layer);
1215
- let n = t.parent ?? null;
1216
- if (n !== null) {
1217
- let e = B(n);
1218
- if (e.kind !== "container") throw Error(`Scene: parent "${n}" is not a container`);
1219
- U(t.id, t.layer, n, e.layer);
1220
- }
1221
- let r = W(n), i = t.index ?? r.length;
1222
- qe("kit:add", {
1223
- id: e,
1224
- kind: t.kind,
1225
- layer: t.layer,
1226
- pose: t.pose,
1227
- data: t.data,
1228
- parent: n,
1229
- index: i,
1230
- ...t.dependsOn === void 0 ? {} : { dependsOn: t.dependsOn },
1231
- ...t.pickable === void 0 ? {} : { pickable: t.pickable }
1232
- }), Ue(t, e, { cacheForRedo: !1 });
1233
- }
1234
- }
1235
- return o.initial && (ut(o.initial), z()), $.__clipCacheSize = () => p("clipFromPose").pending.size, $.__derivePathCacheSize = () => p("derivePath").pending.size, $.__derivePoseCacheSize = () => p("derivePose").pending.size, $;
79
+ let t = m(e, y);
80
+ if (T.open()) throw Error("Scene: cannot loadState inside another edit — it replaces the state that edit would revert to");
81
+ j.clearAll(), b.reset(e.systemLayers.map(p)), M.clearHistory(), N.construct(t), A.replace(S.reachable(A.get().filter((e) => x.nodes.has(e)))), w.notify();
82
+ },
83
+ subscribe: w.subscribe,
84
+ getVersion: w.version
85
+ }, F = v(y);
86
+ return F && (N.construct(F), w.notify()), P;
1236
87
  }
1237
- function de(e, t) {
1238
- if (e.version !== 1) throw Error(`Scene: unsupported version ${e.version}; only v1 supported`);
1239
- return e.nodes.map((e) => {
1240
- let n = {
1241
- id: e.id,
1242
- kind: e.kind,
1243
- layer: e.layer,
1244
- pose: e.pose,
1245
- data: e.data
1246
- };
1247
- e.parent !== void 0 && (n.parent = e.parent), e.pickable !== void 0 && (n.pickable = e.pickable), e.dependsOn !== void 0 && (n.dependsOn = e.dependsOn === "children" ? "children" : e.dependsOn);
1248
- let r = e;
1249
- for (let e of o) {
1250
- let i = r[e.jsonKey];
1251
- if (i === void 0) continue;
1252
- let a = t[e.field]?.[i];
1253
- if (!a) throw Error(`Scene: unknown ${e.field} key '${i}'. Register a function with this key in the registry option.`);
1254
- n[e.field] = a;
1255
- }
1256
- return n;
1257
- });
1258
- }
1259
- function f(e) {
1260
- return {
1261
- get: () => e.getSelection(),
1262
- set: (t) => e.setSelection(t)
1263
- };
1264
- }
1265
- function p(e, t = {}) {
1266
- let n = t.registry ?? {}, r = d({
1267
- systemLayers: e.systemLayers.map((e) => ({ id: e.id })),
1268
- registry: n,
1269
- ...t.historyLimit === void 0 ? {} : { historyLimit: t.historyLimit },
1270
- ...t.coalesceWindowMs === void 0 ? {} : { coalesceWindowMs: t.coalesceWindowMs },
1271
- ...t.generateId === void 0 ? {} : { generateId: t.generateId },
1272
- ...t.ops === void 0 ? {} : { ops: t.ops },
1273
- ...t.layoutFrame === void 0 ? {} : { layoutFrame: t.layoutFrame }
1274
- });
1275
- return r.loadState(e), r;
88
+ function b(e, t = {}) {
89
+ return y(t, e.systemLayers.map(p), (t) => m(e, t));
1276
90
  }
1277
91
  //#endregion
1278
- export { d as createScene, p as sceneFromJSON, f as sceneSelectionStore };
92
+ export { v as createScene, b as sceneFromJSON };
1279
93
 
1280
94
  //# sourceMappingURL=scene.js.map