@weasel-js/core 1.7.0 → 1.7.2

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