@weasel-js/core 1.9.4 → 1.10.1

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 (1191) hide show
  1. package/CHANGELOG.md +918 -0
  2. package/README.md +38 -3
  3. package/dist/WeaselProvider.js +5 -7
  4. package/dist/WeaselProvider.js.map +1 -1
  5. package/dist/affordances/composeAffordanceLayer.js +92 -84
  6. package/dist/affordances/composeAffordanceLayer.js.map +1 -1
  7. package/dist/affordances/cornerResize.js +3 -2
  8. package/dist/affordances/cornerResize.js.map +1 -1
  9. package/dist/affordances/hitAffordanceRegions.js +71 -101
  10. package/dist/affordances/hitAffordanceRegions.js.map +1 -1
  11. package/dist/affordances/pathAnchors.js +50 -28
  12. package/dist/affordances/pathAnchors.js.map +1 -1
  13. package/dist/affordances/rotateCursor.js +12 -0
  14. package/dist/affordances/rotateCursor.js.map +1 -0
  15. package/dist/affordances/rotationHandle.js +44 -46
  16. package/dist/affordances/rotationHandle.js.map +1 -1
  17. package/dist/animation/behaviors/coast.js +21 -0
  18. package/dist/animation/behaviors/coast.js.map +1 -0
  19. package/dist/animation/behaviors/coastByWrite.js +107 -0
  20. package/dist/animation/behaviors/coastByWrite.js.map +1 -0
  21. package/dist/animation/behaviors/coastOnTargets.js +94 -0
  22. package/dist/animation/behaviors/coastOnTargets.js.map +1 -0
  23. package/dist/animation/behaviors/momentum.js +48 -136
  24. package/dist/animation/behaviors/momentum.js.map +1 -1
  25. package/dist/animation/clipTargets.js +12 -0
  26. package/dist/animation/clipTargets.js.map +1 -0
  27. package/dist/animation/index.js +15 -20
  28. package/dist/animation/poseHelpers.js +112 -33
  29. package/dist/animation/poseHelpers.js.map +1 -1
  30. package/dist/animation/poseTarget.js +115 -0
  31. package/dist/animation/poseTarget.js.map +1 -0
  32. package/dist/animation/reflow.js +113 -83
  33. package/dist/animation/reflow.js.map +1 -1
  34. package/dist/animation/rewind.js +66 -0
  35. package/dist/animation/rewind.js.map +1 -0
  36. package/dist/animation/rig/bindRig.js +85 -53
  37. package/dist/animation/rig/bindRig.js.map +1 -1
  38. package/dist/animation/rig/rigNode.js +99 -0
  39. package/dist/animation/rig/rigNode.js.map +1 -0
  40. package/dist/animation/rig/rigSeat.js +59 -0
  41. package/dist/animation/rig/rigSeat.js.map +1 -0
  42. package/dist/animation/rig/skinBinding.js +64 -0
  43. package/dist/animation/rig/skinBinding.js.map +1 -0
  44. package/dist/animation/rig/useRig.js +31 -16
  45. package/dist/animation/rig/useRig.js.map +1 -1
  46. package/dist/animation/wrappers/animateLifecycle.js +8 -7
  47. package/dist/animation/wrappers/animateLifecycle.js.map +1 -1
  48. package/dist/animation/wrappers/animateOnSetPose.js +31 -31
  49. package/dist/animation/wrappers/animateOnSetPose.js.map +1 -1
  50. package/dist/animation/wrappers/instantPose.js.map +1 -1
  51. package/dist/animation/writtenPoseTarget.js +33 -0
  52. package/dist/animation/writtenPoseTarget.js.map +1 -0
  53. package/dist/autoPoseDescriptor-DHg5KqaJ.d.ts +27 -0
  54. package/dist/barrel/canvas.js +32 -0
  55. package/dist/barrel/chrome.js +10 -10
  56. package/dist/barrel/input.js +16 -17
  57. package/dist/barrel/interactions.js +34 -37
  58. package/dist/barrel/paint.js +11 -18
  59. package/dist/barrel/paths.js +13 -19
  60. package/dist/barrel/renderer.js +14 -20
  61. package/dist/barrel/routing.js +54 -47
  62. package/dist/barrel/scene.js +37 -0
  63. package/dist/barrel/text.js +9 -18
  64. package/dist/barrel/viewport.js +44 -51
  65. package/dist/canvas/Canvas.js +270 -475
  66. package/dist/canvas/Canvas.js.map +1 -1
  67. package/dist/canvas/CanvasView.js +168 -190
  68. package/dist/canvas/CanvasView.js.map +1 -1
  69. package/dist/canvas/CursorCoordsHud.js +24 -25
  70. package/dist/canvas/CursorCoordsHud.js.map +1 -1
  71. package/dist/canvas/DrawCanvas.js +39 -56
  72. package/dist/canvas/DrawCanvas.js.map +1 -1
  73. package/dist/canvas/ModalityHud.js.map +1 -1
  74. package/dist/canvas/NodeShape.js +28 -29
  75. package/dist/canvas/NodeShape.js.map +1 -1
  76. package/dist/canvas/PickHud.js.map +1 -1
  77. package/dist/canvas/SceneCanvas/DevHuds.js +40 -0
  78. package/dist/canvas/SceneCanvas/DevHuds.js.map +1 -0
  79. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js +66 -107
  80. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js.map +1 -1
  81. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +33 -36
  82. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js.map +1 -1
  83. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js +38 -50
  84. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js.map +1 -1
  85. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js +3 -3
  86. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js.map +1 -1
  87. package/dist/canvas/SceneCanvas/coordTrace.js +37 -1
  88. package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -1
  89. package/dist/canvas/SceneCanvas/defaultNodeProperties.js +319 -270
  90. package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
  91. package/dist/canvas/SceneCanvas/defaultNodeRouting.js +1 -1
  92. package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
  93. package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js.map +1 -1
  94. package/dist/canvas/SceneCanvas/features.js +71 -62
  95. package/dist/canvas/SceneCanvas/features.js.map +1 -1
  96. package/dist/canvas/SceneCanvas/insertPreviewCommands.js +97 -0
  97. package/dist/canvas/SceneCanvas/insertPreviewCommands.js.map +1 -0
  98. package/dist/canvas/SceneCanvas/isDev.js.map +1 -1
  99. package/dist/canvas/SceneCanvas/poseGeometry.js +33 -37
  100. package/dist/canvas/SceneCanvas/poseGeometry.js.map +1 -1
  101. package/dist/canvas/SceneCanvas/props.js +15 -14
  102. package/dist/canvas/SceneCanvas/props.js.map +1 -1
  103. package/dist/canvas/SceneCanvas/scenePointQuery.js +50 -0
  104. package/dist/canvas/SceneCanvas/scenePointQuery.js.map +1 -0
  105. package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js +52 -0
  106. package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js.map +1 -0
  107. package/dist/canvas/SceneCanvas/toolRegistry.js +23 -0
  108. package/dist/canvas/SceneCanvas/toolRegistry.js.map +1 -0
  109. package/dist/canvas/SceneCanvas/useActionTunings.js +17 -0
  110. package/dist/canvas/SceneCanvas/useActionTunings.js.map +1 -0
  111. package/dist/canvas/SceneCanvas/useActionsPropResolver.js +6 -1
  112. package/dist/canvas/SceneCanvas/useActionsPropResolver.js.map +1 -1
  113. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
  114. package/dist/canvas/SceneCanvas/useBuiltinTools.js +21 -0
  115. package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -0
  116. package/dist/canvas/SceneCanvas/useCanvasCamera.js +46 -0
  117. package/dist/canvas/SceneCanvas/useCanvasCamera.js.map +1 -0
  118. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js +20 -0
  119. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js.map +1 -0
  120. package/dist/canvas/SceneCanvas/useCanvasSelection.js +16 -0
  121. package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -0
  122. package/dist/canvas/SceneCanvas/useCanvasTools.js +67 -0
  123. package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -0
  124. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js +49 -113
  125. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js.map +1 -1
  126. package/dist/canvas/SceneCanvas/useHeldModifiers.js +20 -0
  127. package/dist/canvas/SceneCanvas/useHeldModifiers.js.map +1 -0
  128. package/dist/canvas/SceneCanvas/useNodeAtPoint.js +26 -0
  129. package/dist/canvas/SceneCanvas/useNodeAtPoint.js.map +1 -0
  130. package/dist/canvas/SceneCanvas/useNodeKinds.js +26 -0
  131. package/dist/canvas/SceneCanvas/useNodeKinds.js.map +1 -0
  132. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +51 -41
  133. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
  134. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +47 -0
  135. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js.map +1 -0
  136. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +66 -0
  137. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -0
  138. package/dist/canvas/SceneCanvas/useSceneChrome.js +59 -0
  139. package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -0
  140. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js +23 -0
  141. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js.map +1 -0
  142. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +65 -101
  143. package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
  144. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js +37 -0
  145. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js.map +1 -0
  146. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js +38 -0
  147. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js.map +1 -0
  148. package/dist/canvas/SceneCanvas/useViewLayerGate.js +20 -0
  149. package/dist/canvas/SceneCanvas/useViewLayerGate.js.map +1 -0
  150. package/dist/canvas/SceneCanvas/useViewportActions.js +9 -1
  151. package/dist/canvas/SceneCanvas/useViewportActions.js.map +1 -1
  152. package/dist/canvas/SceneCanvas/worldPointAt.js +8 -0
  153. package/dist/canvas/SceneCanvas/worldPointAt.js.map +1 -0
  154. package/dist/canvas/SceneCanvas.js +301 -708
  155. package/dist/canvas/SceneCanvas.js.map +1 -1
  156. package/dist/canvas/SceneViewCanvas.js +41 -47
  157. package/dist/canvas/SceneViewCanvas.js.map +1 -1
  158. package/dist/canvas/SurfaceCanvas.js +40 -0
  159. package/dist/canvas/SurfaceCanvas.js.map +1 -0
  160. package/dist/canvas/adapterDerivedPath.js +26 -0
  161. package/dist/canvas/adapterDerivedPath.js.map +1 -0
  162. package/dist/canvas/adapterPickSource.js +34 -0
  163. package/dist/canvas/adapterPickSource.js.map +1 -0
  164. package/dist/canvas/affordanceAt.js +12 -2
  165. package/dist/canvas/affordanceAt.js.map +1 -1
  166. package/dist/canvas/buildSceneLayer.js +81 -61
  167. package/dist/canvas/buildSceneLayer.js.map +1 -1
  168. package/dist/canvas/buildSceneTree.js +56 -34
  169. package/dist/canvas/buildSceneTree.js.map +1 -1
  170. package/dist/canvas/canvasRenderer.js +40 -44
  171. package/dist/canvas/canvasRenderer.js.map +1 -1
  172. package/dist/canvas/colorOverrides.js.map +1 -1
  173. package/dist/canvas/copiesAbove.js +27 -0
  174. package/dist/canvas/copiesAbove.js.map +1 -0
  175. package/dist/canvas/defaultDrawOne.js +25 -24
  176. package/dist/canvas/defaultDrawOne.js.map +1 -1
  177. package/dist/canvas/deps/areaSelect.js +4 -4
  178. package/dist/canvas/deps/areaSelect.js.map +1 -1
  179. package/dist/canvas/deps/debug.js.map +1 -1
  180. package/dist/canvas/deps/editAnchors.js +47 -71
  181. package/dist/canvas/deps/editAnchors.js.map +1 -1
  182. package/dist/canvas/deps/geometryProjection.js.map +1 -1
  183. package/dist/canvas/deps/hitTestArea.js +45 -25
  184. package/dist/canvas/deps/hitTestArea.js.map +1 -1
  185. package/dist/canvas/deps/insert.js +149 -104
  186. package/dist/canvas/deps/insert.js.map +1 -1
  187. package/dist/canvas/deps/lassoSelect.js +5 -5
  188. package/dist/canvas/deps/lassoSelect.js.map +1 -1
  189. package/dist/canvas/deps/layout.js +9 -15
  190. package/dist/canvas/deps/layout.js.map +1 -1
  191. package/dist/canvas/deps/poseDescriptor.js +1 -1
  192. package/dist/canvas/deps/poseDescriptor.js.map +1 -1
  193. package/dist/canvas/deps/resizePolicy.js.map +1 -1
  194. package/dist/canvas/deps/slice.js +44 -45
  195. package/dist/canvas/deps/slice.js.map +1 -1
  196. package/dist/canvas/deps/textEdit.js +8 -8
  197. package/dist/canvas/deps/textEdit.js.map +1 -1
  198. package/dist/canvas/deps/view.js.map +1 -1
  199. package/dist/canvas/derivedPath.js +69 -43
  200. package/dist/canvas/derivedPath.js.map +1 -1
  201. package/dist/canvas/drawEnvelope.js +8 -4
  202. package/dist/canvas/drawEnvelope.js.map +1 -1
  203. package/dist/canvas/getNodeAtPoint.js +2 -6
  204. package/dist/canvas/getNodeAtPoint.js.map +1 -1
  205. package/dist/canvas/hud.module.js.map +1 -1
  206. package/dist/canvas/insertPreviewExtent.js +33 -31
  207. package/dist/canvas/insertPreviewExtent.js.map +1 -1
  208. package/dist/canvas/layerOrder.js.map +1 -1
  209. package/dist/canvas/layerSlots.js +6 -1
  210. package/dist/canvas/layerSlots.js.map +1 -1
  211. package/dist/canvas/nodeShapes/derivedPainter.js +12 -12
  212. package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -1
  213. package/dist/canvas/nodeShapes/imagePainter.js +10 -10
  214. package/dist/canvas/nodeShapes/imagePainter.js.map +1 -1
  215. package/dist/canvas/nodeShapes/memo.js.map +1 -1
  216. package/dist/canvas/nodeShapes/nodePaint.js +34 -23
  217. package/dist/canvas/nodeShapes/nodePaint.js.map +1 -1
  218. package/dist/canvas/nodeShapes/pathPainter.js +23 -22
  219. package/dist/canvas/nodeShapes/pathPainter.js.map +1 -1
  220. package/dist/canvas/nodeShapes/poseBox.js +6 -6
  221. package/dist/canvas/nodeShapes/poseBox.js.map +1 -1
  222. package/dist/canvas/nodeShapes/rectFallbackPainter.js +8 -8
  223. package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -1
  224. package/dist/canvas/nodeShapes/shapePainter.js +16 -16
  225. package/dist/canvas/nodeShapes/shapePainter.js.map +1 -1
  226. package/dist/canvas/nodeShapes/textPainter.js +1 -1
  227. package/dist/canvas/nodeShapes/textPainter.js.map +1 -1
  228. package/dist/canvas/overChildren.js +29 -0
  229. package/dist/canvas/overChildren.js.map +1 -0
  230. package/dist/canvas/overlayRoleStrokes.js.map +1 -1
  231. package/dist/canvas/paintCull.js +6 -8
  232. package/dist/canvas/paintCull.js.map +1 -1
  233. package/dist/{features/cursor → canvas}/paintedCursorLayer.js +2 -2
  234. package/dist/canvas/paintedCursorLayer.js.map +1 -0
  235. package/dist/canvas/pickReach.js +23 -0
  236. package/dist/canvas/pickReach.js.map +1 -0
  237. package/dist/canvas/pickWalk.js +43 -70
  238. package/dist/canvas/pickWalk.js.map +1 -1
  239. package/dist/canvas/planeClips.js +18 -19
  240. package/dist/canvas/planeClips.js.map +1 -1
  241. package/dist/canvas/poseCascade.js +41 -0
  242. package/dist/canvas/poseCascade.js.map +1 -0
  243. package/dist/canvas/poseRotation.js +1 -3
  244. package/dist/canvas/poseRotation.js.map +1 -1
  245. package/dist/canvas/rasterReadback.js +22 -0
  246. package/dist/canvas/rasterReadback.js.map +1 -0
  247. package/dist/canvas/renderDebugSnapshot.js +12 -12
  248. package/dist/canvas/renderDebugSnapshot.js.map +1 -1
  249. package/dist/canvas/renderNeeds.js +3 -3
  250. package/dist/canvas/renderNeeds.js.map +1 -1
  251. package/dist/canvas/renderSceneToPixels.js +64 -83
  252. package/dist/canvas/renderSceneToPixels.js.map +1 -1
  253. package/dist/canvas/sceneAdapter.js +59 -144
  254. package/dist/canvas/sceneAdapter.js.map +1 -1
  255. package/dist/canvas/sceneClipboard.js +1 -1
  256. package/dist/canvas/sceneClipboard.js.map +1 -1
  257. package/dist/canvas/sceneLayerPaint.js +4 -4
  258. package/dist/canvas/sceneLayerPaint.js.map +1 -1
  259. package/dist/canvas/sceneSlotWiring.js +10 -9
  260. package/dist/canvas/sceneSlotWiring.js.map +1 -1
  261. package/dist/canvas/sceneViewRender.js +37 -42
  262. package/dist/canvas/sceneViewRender.js.map +1 -1
  263. package/dist/canvas/slopsDebugLayer.js +4 -4
  264. package/dist/canvas/slopsDebugLayer.js.map +1 -1
  265. package/dist/canvas/useCanvasRenderer.js +23 -11
  266. package/dist/canvas/useCanvasRenderer.js.map +1 -1
  267. package/dist/canvas/useCanvasSurface.js +31 -0
  268. package/dist/canvas/useCanvasSurface.js.map +1 -0
  269. package/dist/canvas/useCanvasView.js +51 -44
  270. package/dist/canvas/useCanvasView.js.map +1 -1
  271. package/dist/canvas/useFrameLoop.js +11 -12
  272. package/dist/canvas/useFrameLoop.js.map +1 -1
  273. package/dist/canvas/useHostAnchor.js +35 -33
  274. package/dist/canvas/useHostAnchor.js.map +1 -1
  275. package/dist/canvas/useLateContentRedraw.js +8 -8
  276. package/dist/canvas/useLateContentRedraw.js.map +1 -1
  277. package/dist/canvas/useSceneAdapter.js +22 -0
  278. package/dist/canvas/useSceneAdapter.js.map +1 -0
  279. package/dist/canvas/useSceneLayerList.js +4 -14
  280. package/dist/canvas/useSceneLayerList.js.map +1 -1
  281. package/dist/canvas/useSurfaceInput.js +39 -0
  282. package/dist/canvas/useSurfaceInput.js.map +1 -0
  283. package/dist/canvas/useToolCursor.js +29 -0
  284. package/dist/canvas/useToolCursor.js.map +1 -0
  285. package/dist/canvas/useViewHelpers.js +46 -85
  286. package/dist/canvas/useViewHelpers.js.map +1 -1
  287. package/dist/canvas/viewInputs.js.map +1 -1
  288. package/dist/canvas/viewRegistry.js +40 -34
  289. package/dist/canvas/viewRegistry.js.map +1 -1
  290. package/dist/canvas/watchElementMove.js +43 -0
  291. package/dist/canvas/watchElementMove.js.map +1 -0
  292. package/dist/canvas/wrapNodeOutput.js +7 -2
  293. package/dist/canvas/wrapNodeOutput.js.map +1 -1
  294. package/dist/clipboard.d.ts +7 -14
  295. package/dist/{types-B4iJRHC3.d.ts → clone-C0eADtS0.d.ts} +129 -84
  296. package/dist/clone.d.ts +4 -8
  297. package/dist/clone.js +0 -2
  298. package/dist/core/device/targets.js.map +1 -1
  299. package/dist/core/device/useDeviceProfile.js +13 -13
  300. package/dist/core/device/useDeviceProfile.js.map +1 -1
  301. package/dist/{interactions/actions/resize → core/geometry}/autoPoseDescriptor.js +8 -7
  302. package/dist/core/geometry/autoPoseDescriptor.js.map +1 -0
  303. package/dist/core/geometry/pathPoseDescriptor.js +88 -0
  304. package/dist/core/geometry/pathPoseDescriptor.js.map +1 -0
  305. package/dist/core/geometry/poseDescriptor.js +102 -29
  306. package/dist/core/geometry/poseDescriptor.js.map +1 -1
  307. package/dist/core/geometry/regionHit.js +35 -37
  308. package/dist/core/geometry/regionHit.js.map +1 -1
  309. package/dist/core/geometry/targetFrame.js +94 -0
  310. package/dist/core/geometry/targetFrame.js.map +1 -0
  311. package/dist/core/geometry/unionBounds.js +4 -5
  312. package/dist/core/geometry/unionBounds.js.map +1 -1
  313. package/dist/core/layers/backgroundFill.js +31 -0
  314. package/dist/core/layers/backgroundFill.js.map +1 -0
  315. package/dist/{features/groups → core/layers}/children.js +2 -4
  316. package/dist/core/layers/children.js.map +1 -0
  317. package/dist/{features/focus → core/layers}/gateLayer.js +2 -2
  318. package/dist/core/layers/gateLayer.js.map +1 -0
  319. package/dist/core/layers/layerGroup.js +40 -0
  320. package/dist/core/layers/layerGroup.js.map +1 -0
  321. package/dist/core/layers/render.js +50 -76
  322. package/dist/core/layers/render.js.map +1 -1
  323. package/dist/core/ops/create.js +2 -2
  324. package/dist/core/ops/create.js.map +1 -1
  325. package/dist/core/ops/createHistory.js +9 -9
  326. package/dist/core/ops/createHistory.js.map +1 -1
  327. package/dist/core/ops/delete.js +19 -23
  328. package/dist/core/ops/delete.js.map +1 -1
  329. package/dist/core/ops/reorder/index.js +3 -7
  330. package/dist/core/ops/reorder/index.js.map +1 -1
  331. package/dist/core/ops/reorder/setChildOrder.js +2 -4
  332. package/dist/core/ops/reorder/setChildOrder.js.map +1 -1
  333. package/dist/core/ops/reparent.js +0 -1
  334. package/dist/core/ops/reparent.js.map +1 -1
  335. package/dist/core/ops/slot.js +3 -6
  336. package/dist/core/ops/slot.js.map +1 -1
  337. package/dist/core/pages/fitViewToPage.js +15 -0
  338. package/dist/core/pages/fitViewToPage.js.map +1 -0
  339. package/dist/core/pages/pages.js +65 -0
  340. package/dist/core/pages/pages.js.map +1 -0
  341. package/dist/core/pages/pagesLayer.js +27 -0
  342. package/dist/core/pages/pagesLayer.js.map +1 -0
  343. package/dist/core/paint/meshKind.js +16 -0
  344. package/dist/core/paint/meshKind.js.map +1 -0
  345. package/dist/{features/meshPaint/lazyKind.js → core/paint/meshKindLazy.js} +104 -93
  346. package/dist/core/paint/meshKindLazy.js.map +1 -0
  347. package/dist/core/paint/paintKindEntry.js +8 -0
  348. package/dist/core/paint/paintKindEntry.js.map +1 -0
  349. package/dist/core/paint/paintKinds.js +144 -0
  350. package/dist/core/paint/paintKinds.js.map +1 -0
  351. package/dist/core/paint/registerMesh.js +7 -0
  352. package/dist/core/paint/registerMesh.js.map +1 -0
  353. package/dist/core/scene/NodeProperties.js.map +1 -1
  354. package/dist/core/scene/NodeRouting.js.map +1 -1
  355. package/dist/core/scene/arrivalWindow.js +65 -64
  356. package/dist/core/scene/arrivalWindow.js.map +1 -1
  357. package/dist/core/scene/boundOps.js +40 -0
  358. package/dist/core/scene/boundOps.js.map +1 -0
  359. package/dist/core/scene/composeFrame.js +9 -6
  360. package/dist/core/scene/composeFrame.js.map +1 -1
  361. package/dist/core/scene/composePose.js +105 -0
  362. package/dist/core/scene/composePose.js.map +1 -0
  363. package/dist/core/scene/depMemo.js +31 -6
  364. package/dist/core/scene/depMemo.js.map +1 -1
  365. package/dist/core/scene/derivedPath.js +19 -20
  366. package/dist/core/scene/derivedPath.js.map +1 -1
  367. package/dist/core/scene/editMode.js +26 -0
  368. package/dist/core/scene/editMode.js.map +1 -0
  369. package/dist/core/scene/effectivePose.js +42 -39
  370. package/dist/core/scene/effectivePose.js.map +1 -1
  371. package/dist/core/scene/fieldEdits.js +98 -0
  372. package/dist/core/scene/fieldEdits.js.map +1 -0
  373. package/dist/core/scene/historyFacade.js +122 -70
  374. package/dist/core/scene/historyFacade.js.map +1 -1
  375. package/dist/core/scene/historyForm.js +6 -0
  376. package/dist/core/scene/historyForm.js.map +1 -0
  377. package/dist/core/scene/kitOps.js +83 -71
  378. package/dist/core/scene/kitOps.js.map +1 -1
  379. package/dist/core/scene/kitRegistry.js.map +1 -1
  380. package/dist/core/scene/layerStack.js +105 -12
  381. package/dist/core/scene/layerStack.js.map +1 -1
  382. package/dist/core/scene/layoutPass.js +58 -59
  383. package/dist/core/scene/layoutPass.js.map +1 -1
  384. package/dist/{features/groups → core/scene}/nestedHit.js +3 -3
  385. package/dist/core/scene/nestedHit.js.map +1 -0
  386. package/dist/core/scene/nodeFnFields.js +16 -9
  387. package/dist/core/scene/nodeFnFields.js.map +1 -1
  388. package/dist/core/scene/nodeMemo.js.map +1 -1
  389. package/dist/core/scene/nodeStore.js +72 -71
  390. package/dist/core/scene/nodeStore.js.map +1 -1
  391. package/dist/core/scene/notifier.js +37 -0
  392. package/dist/core/scene/notifier.js.map +1 -0
  393. package/dist/core/scene/opTable.js +50 -0
  394. package/dist/core/scene/opTable.js.map +1 -0
  395. package/dist/core/scene/outerOps.js +67 -0
  396. package/dist/core/scene/outerOps.js.map +1 -0
  397. package/dist/core/scene/poseHold.js +39 -0
  398. package/dist/core/scene/poseHold.js.map +1 -0
  399. package/dist/core/scene/poseOverrides.js +44 -36
  400. package/dist/core/scene/poseOverrides.js.map +1 -1
  401. package/dist/core/scene/poseSnapshot.js.map +1 -1
  402. package/dist/core/scene/reconcileSpecs.js +4 -3
  403. package/dist/core/scene/reconcileSpecs.js.map +1 -1
  404. package/dist/core/scene/recorder.js +86 -0
  405. package/dist/core/scene/recorder.js.map +1 -0
  406. package/dist/core/scene/renderOrder.js.map +1 -1
  407. package/dist/core/scene/scene.js +81 -690
  408. package/dist/core/scene/scene.js.map +1 -1
  409. package/dist/core/scene/sceneEdits.js +58 -0
  410. package/dist/core/scene/sceneEdits.js.map +1 -0
  411. package/dist/core/scene/sceneMutators.js +49 -0
  412. package/dist/core/scene/sceneMutators.js.map +1 -0
  413. package/dist/core/scene/scenePoseAdapter.js +16 -0
  414. package/dist/core/scene/scenePoseAdapter.js.map +1 -0
  415. package/dist/core/scene/sceneRecording.js +91 -0
  416. package/dist/core/scene/sceneRecording.js.map +1 -0
  417. package/dist/core/scene/sceneSelection.js +28 -0
  418. package/dist/core/scene/sceneSelection.js.map +1 -0
  419. package/dist/core/scene/sceneState.js +49 -0
  420. package/dist/core/scene/sceneState.js.map +1 -0
  421. package/dist/core/scene/serialization.js +8 -5
  422. package/dist/core/scene/serialization.js.map +1 -1
  423. package/dist/core/scene/staleReplay.js +51 -0
  424. package/dist/core/scene/staleReplay.js.map +1 -0
  425. package/dist/core/scene/statedFields.js +9 -0
  426. package/dist/core/scene/statedFields.js.map +1 -0
  427. package/dist/core/scene/treeEdits.js +127 -0
  428. package/dist/core/scene/treeEdits.js.map +1 -0
  429. package/dist/core/scene/treeReads.js +26 -0
  430. package/dist/core/scene/treeReads.js.map +1 -0
  431. package/dist/core/scene/types.js.map +1 -1
  432. package/dist/{features/groups → core/scene}/unionOfChildren.js +3 -3
  433. package/dist/core/scene/unionOfChildren.js.map +1 -0
  434. package/dist/core/scene/unitScopes.js +13 -0
  435. package/dist/core/scene/unitScopes.js.map +1 -0
  436. package/dist/core/scene/useScene.js.map +1 -1
  437. package/dist/core/selection/readOnlySelection.js +32 -0
  438. package/dist/core/selection/readOnlySelection.js.map +1 -0
  439. package/dist/core/selection/usePublishSceneSelection.js +26 -0
  440. package/dist/core/selection/usePublishSceneSelection.js.map +1 -0
  441. package/dist/core/selection/useSelection.js +34 -25
  442. package/dist/core/selection/useSelection.js.map +1 -1
  443. package/dist/core/shapeKinds.js.map +1 -1
  444. package/dist/core/stylus/stylus.js.map +1 -1
  445. package/dist/core/stylus/usePointerStylus.js.map +1 -1
  446. package/dist/core/usePaintKinds.js +1 -1
  447. package/dist/core/usePaintKinds.js.map +1 -1
  448. package/dist/core/viewport/clientToWorld.js.map +1 -1
  449. package/dist/core/viewport/fitViewToBounds.js.map +1 -1
  450. package/dist/core/viewport/parallax.js.map +1 -1
  451. package/dist/core/viewport/screenSlop.js +11 -11
  452. package/dist/core/viewport/screenSlop.js.map +1 -1
  453. package/dist/core/viewport/useCanvasSize.js.map +1 -1
  454. package/dist/core/viewport/useDecayLoop.js +31 -33
  455. package/dist/core/viewport/useDecayLoop.js.map +1 -1
  456. package/dist/core/viewport/useNodeOverlayFrame.js +84 -0
  457. package/dist/core/viewport/useNodeOverlayFrame.js.map +1 -0
  458. package/dist/core/viewport/useViewAnimation.js +113 -53
  459. package/dist/core/viewport/useViewAnimation.js.map +1 -1
  460. package/dist/core/viewport/view.js +14 -11
  461. package/dist/core/viewport/view.js.map +1 -1
  462. package/dist/core/viewport/wheelHandler.js.map +1 -1
  463. package/dist/core/viewport/zoomAt.js +11 -2
  464. package/dist/core/viewport/zoomAt.js.map +1 -1
  465. package/dist/{cornerHandles-CtCb8a3G.d.ts → cornerHandles-BSKbyuvQ.d.ts} +11 -24
  466. package/dist/debug/createDebugOverlayLayer.js +100 -100
  467. package/dist/debug/createDebugOverlayLayer.js.map +1 -1
  468. package/dist/debug/createDebugSink.js.map +1 -1
  469. package/dist/debug/frameStats.js.map +1 -1
  470. package/dist/debug/useDebugSink.js +52 -0
  471. package/dist/debug/useDebugSink.js.map +1 -0
  472. package/dist/features/chrome-caps/buildChromeCtx.js.map +1 -1
  473. package/dist/features/chrome-caps/conditions.js.map +1 -1
  474. package/dist/features/chrome-caps/defaults.js.map +1 -1
  475. package/dist/features/chrome-caps/resolve.js.map +1 -1
  476. package/dist/features/chrome-caps/useChromeCaps.js +54 -0
  477. package/dist/features/chrome-caps/useChromeCaps.js.map +1 -0
  478. package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
  479. package/dist/features/ingestion/contentHandlers.js +25 -19
  480. package/dist/features/ingestion/contentHandlers.js.map +1 -1
  481. package/dist/features/ingestion/imageHandler.js +21 -24
  482. package/dist/features/ingestion/imageHandler.js.map +1 -1
  483. package/dist/features/ingestion/openFilePicker.js.map +1 -1
  484. package/dist/features/ingestion/placement.js +16 -0
  485. package/dist/features/ingestion/placement.js.map +1 -0
  486. package/dist/features/ingestion/svgHandler.js +5 -0
  487. package/dist/features/ingestion/svgHandler.js.map +1 -1
  488. package/dist/features/ingestion/textHandler.js +28 -0
  489. package/dist/features/ingestion/textHandler.js.map +1 -0
  490. package/dist/features/ingestion/useCanvasIngestion.js +48 -0
  491. package/dist/features/ingestion/useCanvasIngestion.js.map +1 -0
  492. package/dist/features/ingestion/weaselJsonHandler.js +5 -0
  493. package/dist/features/ingestion/weaselJsonHandler.js.map +1 -1
  494. package/dist/features/longPress/longPressFeedback.js.map +1 -1
  495. package/dist/features/modes/modeLayers.js +7 -7
  496. package/dist/features/modes/modeLayers.js.map +1 -1
  497. package/dist/features/paths/editablePath.js +63 -0
  498. package/dist/features/paths/editablePath.js.map +1 -0
  499. package/dist/features/paths/index.js +9 -16
  500. package/dist/features/paths/pathEditState.js +41 -0
  501. package/dist/features/paths/pathEditState.js.map +1 -0
  502. package/dist/features/paths/pathEditingOverlayLayer.js +36 -38
  503. package/dist/features/paths/pathEditingOverlayLayer.js.map +1 -1
  504. package/dist/features/paths/pathLayer.js +3 -2
  505. package/dist/features/paths/pathLayer.js.map +1 -1
  506. package/dist/features/paths/penPreviewLayer.js +86 -88
  507. package/dist/features/paths/penPreviewLayer.js.map +1 -1
  508. package/dist/features/paths/shapeGenerator.js +89 -0
  509. package/dist/features/paths/shapeGenerator.js.map +1 -0
  510. package/dist/features/paths/usePathEdit.js +34 -0
  511. package/dist/features/paths/usePathEdit.js.map +1 -0
  512. package/dist/features/poseRun/usePoseRun.js +44 -57
  513. package/dist/features/poseRun/usePoseRun.js.map +1 -1
  514. package/dist/features/selection/overlay.js +170 -178
  515. package/dist/features/selection/overlay.js.map +1 -1
  516. package/dist/features/text/index.js +6 -0
  517. package/dist/features/text/textLayer.js +1 -1
  518. package/dist/features/text/textLayer.js.map +1 -1
  519. package/dist/features/text/useSceneTextEdit.js +119 -88
  520. package/dist/features/text/useSceneTextEdit.js.map +1 -1
  521. package/dist/features/viewports/viewResolver.js +28 -24
  522. package/dist/features/viewports/viewResolver.js.map +1 -1
  523. package/dist/features/viewports/viewportLayer.js +25 -36
  524. package/dist/features/viewports/viewportLayer.js.map +1 -1
  525. package/dist/icons/SliceIcon.js +24 -0
  526. package/dist/icons/SliceIcon.js.map +1 -0
  527. package/dist/index.d.ts +5200 -8777
  528. package/dist/index.js +284 -320
  529. package/dist/input/keyState.js +14 -14
  530. package/dist/interactions/actions/actionShortcuts.js.map +1 -1
  531. package/dist/interactions/actions/{defaults/align.js → align/action.js} +15 -16
  532. package/dist/interactions/actions/align/action.js.map +1 -0
  533. package/dist/interactions/actions/align/align.js +24 -24
  534. package/dist/interactions/actions/align/align.js.map +1 -1
  535. package/dist/interactions/actions/booleans/action.js +65 -0
  536. package/dist/interactions/actions/booleans/action.js.map +1 -0
  537. package/dist/interactions/actions/booleans/booleans.js +74 -83
  538. package/dist/interactions/actions/booleans/booleans.js.map +1 -1
  539. package/dist/interactions/actions/booleans/operands.js +40 -0
  540. package/dist/interactions/actions/booleans/operands.js.map +1 -0
  541. package/dist/interactions/actions/booleans/pieces.js +45 -0
  542. package/dist/interactions/actions/booleans/pieces.js.map +1 -0
  543. package/dist/interactions/actions/booleans/placement.js +24 -0
  544. package/dist/interactions/actions/booleans/placement.js.map +1 -0
  545. package/dist/interactions/actions/booleans/useBooleans.js +11 -9
  546. package/dist/interactions/actions/booleans/useBooleans.js.map +1 -1
  547. package/dist/interactions/actions/booleans/useBooleansAdapter.js.map +1 -1
  548. package/dist/interactions/actions/{defaults/clipboard.js → clipboard/action.js} +19 -19
  549. package/dist/interactions/actions/clipboard/action.js.map +1 -0
  550. package/dist/interactions/actions/clipboard/clipboardOps.js +15 -15
  551. package/dist/interactions/actions/clipboard/clipboardOps.js.map +1 -1
  552. package/dist/interactions/actions/clipboard/wireFormat.js.map +1 -1
  553. package/dist/interactions/actions/clone/action.js +103 -0
  554. package/dist/interactions/actions/clone/action.js.map +1 -0
  555. package/dist/interactions/actions/clone/behaviors.js +52 -0
  556. package/dist/interactions/actions/clone/behaviors.js.map +1 -0
  557. package/dist/interactions/actions/defaultCommitAdapter.js +10 -37
  558. package/dist/interactions/actions/defaultCommitAdapter.js.map +1 -1
  559. package/dist/interactions/actions/defaults/anchorEditing.js +69 -74
  560. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  561. package/dist/interactions/actions/defaults/anchorHandles.js +42 -0
  562. package/dist/interactions/actions/defaults/anchorHandles.js.map +1 -0
  563. package/dist/interactions/actions/defaults/anchorJoin.js +92 -0
  564. package/dist/interactions/actions/defaults/anchorJoin.js.map +1 -0
  565. package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
  566. package/dist/interactions/actions/defaults/bendSegment.js +46 -0
  567. package/dist/interactions/actions/defaults/bendSegment.js.map +1 -0
  568. package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
  569. package/dist/interactions/actions/defaults/clearSelection.js.map +1 -1
  570. package/dist/interactions/actions/defaults/copySubtree.js +1 -1
  571. package/dist/interactions/actions/defaults/copySubtree.js.map +1 -1
  572. package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
  573. package/dist/interactions/actions/defaults/delete.js.map +1 -1
  574. package/dist/interactions/actions/defaults/duplicate.js +36 -21
  575. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  576. package/dist/interactions/actions/defaults/enterPathEdit.js +19 -7
  577. package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
  578. package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
  579. package/dist/interactions/actions/defaults/group.js +35 -40
  580. package/dist/interactions/actions/defaults/group.js.map +1 -1
  581. package/dist/interactions/actions/defaults/icons/anchorIcons.js +75 -0
  582. package/dist/interactions/actions/defaults/icons/anchorIcons.js.map +1 -0
  583. package/dist/interactions/actions/defaults/icons/booleanIcons.js +24 -1
  584. package/dist/interactions/actions/defaults/icons/booleanIcons.js.map +1 -1
  585. package/dist/interactions/actions/defaults/icons/editIcons.js +35 -8
  586. package/dist/interactions/actions/defaults/icons/editIcons.js.map +1 -1
  587. package/dist/interactions/actions/defaults/icons/outlineIcons.js +39 -1
  588. package/dist/interactions/actions/defaults/icons/outlineIcons.js.map +1 -1
  589. package/dist/interactions/actions/defaults/ingest.js +19 -15
  590. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  591. package/dist/interactions/actions/defaults/insertPathAnchor.js +18 -34
  592. package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
  593. package/dist/interactions/actions/defaults/nudge.js +43 -39
  594. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  595. package/dist/interactions/actions/defaults/pinchZoom.js +29 -29
  596. package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
  597. package/dist/interactions/actions/defaults/requiresSelection.js.map +1 -1
  598. package/dist/interactions/actions/defaults/segmentUnder.js +22 -0
  599. package/dist/interactions/actions/defaults/segmentUnder.js.map +1 -0
  600. package/dist/interactions/actions/defaults/setFill.js +9 -3
  601. package/dist/interactions/actions/defaults/setFill.js.map +1 -1
  602. package/dist/interactions/actions/defaults/setFillOpacity.js +4 -1
  603. package/dist/interactions/actions/defaults/setFillOpacity.js.map +1 -1
  604. package/dist/interactions/actions/defaults/setStroke.js.map +1 -1
  605. package/dist/interactions/actions/defaults/sliceOps.js +20 -22
  606. package/dist/interactions/actions/defaults/sliceOps.js.map +1 -1
  607. package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
  608. package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
  609. package/dist/interactions/actions/defaults/viewportDragPan.js +1 -1
  610. package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
  611. package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
  612. package/dist/interactions/actions/defaults/viewportZoom.js +82 -79
  613. package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
  614. package/dist/interactions/actions/{defaults/distribute.js → distribute/action.js} +18 -19
  615. package/dist/interactions/actions/distribute/action.js.map +1 -0
  616. package/dist/interactions/actions/distribute/distribute.js +15 -15
  617. package/dist/interactions/actions/distribute/distribute.js.map +1 -1
  618. package/dist/interactions/actions/edit-anchors/action.js +101 -0
  619. package/dist/interactions/actions/edit-anchors/action.js.map +1 -0
  620. package/dist/interactions/actions/edit-anchors/geometry.js +2 -4
  621. package/dist/interactions/actions/edit-anchors/geometry.js.map +1 -1
  622. package/dist/interactions/actions/edit-anchors/preview.js +26 -0
  623. package/dist/interactions/actions/edit-anchors/preview.js.map +1 -0
  624. package/dist/interactions/actions/edit-anchors/symmetry.js +11 -0
  625. package/dist/interactions/actions/edit-anchors/symmetry.js.map +1 -0
  626. package/dist/interactions/actions/flip/action.js +124 -0
  627. package/dist/interactions/actions/flip/action.js.map +1 -0
  628. package/dist/interactions/actions/flip/helpers.js +1 -1
  629. package/dist/interactions/actions/flip/helpers.js.map +1 -1
  630. package/dist/interactions/actions/geometryProjection.js.map +1 -1
  631. package/dist/interactions/actions/gestureFrames.js +18 -0
  632. package/dist/interactions/actions/gestureFrames.js.map +1 -0
  633. package/dist/interactions/actions/gestureLifecycle.js +47 -20
  634. package/dist/interactions/actions/gestureLifecycle.js.map +1 -1
  635. package/dist/interactions/actions/insert/action.js +79 -0
  636. package/dist/interactions/actions/insert/action.js.map +1 -0
  637. package/dist/interactions/actions/insert/commit.js +28 -0
  638. package/dist/interactions/actions/insert/commit.js.map +1 -0
  639. package/dist/interactions/actions/insert/extras.js +65 -0
  640. package/dist/interactions/actions/insert/extras.js.map +1 -0
  641. package/dist/interactions/actions/insert/frame.js +55 -0
  642. package/dist/interactions/actions/insert/frame.js.map +1 -0
  643. package/dist/interactions/actions/insert/geometry.js +35 -0
  644. package/dist/interactions/actions/insert/geometry.js.map +1 -0
  645. package/dist/interactions/actions/insert/repositionAction.js +31 -0
  646. package/dist/interactions/actions/insert/repositionAction.js.map +1 -0
  647. package/dist/interactions/actions/insert/rotateAction.js +21 -0
  648. package/dist/interactions/actions/insert/rotateAction.js.map +1 -0
  649. package/dist/interactions/actions/insert/session.js +59 -0
  650. package/dist/interactions/actions/insert/session.js.map +1 -0
  651. package/dist/interactions/actions/insert/shape.js +34 -0
  652. package/dist/interactions/actions/insert/shape.js.map +1 -0
  653. package/dist/interactions/actions/lasso-select/action.js +143 -0
  654. package/dist/interactions/actions/lasso-select/action.js.map +1 -0
  655. package/dist/interactions/actions/move/action.js +91 -0
  656. package/dist/interactions/actions/move/action.js.map +1 -0
  657. package/dist/interactions/actions/move/behaviors/layoutDrop.js +51 -0
  658. package/dist/interactions/actions/move/behaviors/layoutDrop.js.map +1 -0
  659. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js +15 -0
  660. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js.map +1 -0
  661. package/dist/interactions/actions/move/behaviors/snapToContainer.js +35 -28
  662. package/dist/interactions/actions/move/behaviors/snapToContainer.js.map +1 -1
  663. package/dist/interactions/actions/move/capture.js +108 -0
  664. package/dist/interactions/actions/move/capture.js.map +1 -0
  665. package/dist/interactions/actions/move/commit/index.js +41 -0
  666. package/dist/interactions/actions/move/commit/index.js.map +1 -0
  667. package/dist/interactions/actions/move/commit/layoutDrop.js +44 -0
  668. package/dist/interactions/actions/move/commit/layoutDrop.js.map +1 -0
  669. package/dist/interactions/actions/move/commit/layoutRelease.js +100 -0
  670. package/dist/interactions/actions/move/commit/layoutRelease.js.map +1 -0
  671. package/dist/interactions/actions/move/commit/rebase.js +18 -0
  672. package/dist/interactions/actions/move/commit/rebase.js.map +1 -0
  673. package/dist/interactions/actions/move/commit/reparent.js +65 -0
  674. package/dist/interactions/actions/move/commit/reparent.js.map +1 -0
  675. package/dist/interactions/actions/move/delta.js +51 -0
  676. package/dist/interactions/actions/move/delta.js.map +1 -0
  677. package/dist/interactions/actions/move/frame.js +47 -0
  678. package/dist/interactions/actions/move/frame.js.map +1 -0
  679. package/dist/interactions/actions/move/gestureAdapter.js +15 -40
  680. package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
  681. package/dist/interactions/actions/move/landedDescendants.js +8 -8
  682. package/dist/interactions/actions/move/layout/container.js +94 -0
  683. package/dist/interactions/actions/move/layout/container.js.map +1 -0
  684. package/dist/interactions/actions/move/layout/dragged.js +58 -0
  685. package/dist/interactions/actions/move/layout/dragged.js.map +1 -0
  686. package/dist/interactions/actions/move/layout/dropPass.js +122 -0
  687. package/dist/interactions/actions/move/layout/dropPass.js.map +1 -0
  688. package/dist/interactions/actions/move/layout/exits.js +38 -0
  689. package/dist/interactions/actions/move/layout/exits.js.map +1 -0
  690. package/dist/interactions/actions/move/layout/glide.js +48 -0
  691. package/dist/interactions/actions/move/layout/glide.js.map +1 -0
  692. package/dist/interactions/actions/move/session.js +63 -0
  693. package/dist/interactions/actions/move/session.js.map +1 -0
  694. package/dist/interactions/actions/move/translate.js +61 -0
  695. package/dist/interactions/actions/move/translate.js.map +1 -0
  696. package/dist/interactions/actions/outlines/createOutlines.js +17 -64
  697. package/dist/interactions/actions/outlines/createOutlines.js.map +1 -1
  698. package/dist/interactions/actions/outlines/createOutlinesAction.js +51 -0
  699. package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -0
  700. package/dist/interactions/actions/outlines/outlineStroke.js +72 -0
  701. package/dist/interactions/actions/outlines/outlineStroke.js.map +1 -0
  702. package/dist/interactions/actions/outlines/outlineStrokeAction.js +37 -0
  703. package/dist/interactions/actions/outlines/outlineStrokeAction.js.map +1 -0
  704. package/dist/interactions/actions/outlines/replaceWithPaths.js +54 -0
  705. package/dist/interactions/actions/outlines/replaceWithPaths.js.map +1 -0
  706. package/dist/interactions/actions/outlines/strokeRegion.js +27 -0
  707. package/dist/interactions/actions/outlines/strokeRegion.js.map +1 -0
  708. package/dist/interactions/actions/pathCommands/cutJoin.js +102 -0
  709. package/dist/interactions/actions/pathCommands/cutJoin.js.map +1 -0
  710. package/dist/interactions/actions/pathCommands/livePathEdit.js +64 -0
  711. package/dist/interactions/actions/pathCommands/livePathEdit.js.map +1 -0
  712. package/dist/interactions/actions/pathCommands/pathNodes.js +99 -0
  713. package/dist/interactions/actions/pathCommands/pathNodes.js.map +1 -0
  714. package/dist/interactions/actions/pathCommands/simplifyOffset.js +42 -0
  715. package/dist/interactions/actions/pathCommands/simplifyOffset.js.map +1 -0
  716. package/dist/interactions/actions/planeInput.js.map +1 -1
  717. package/dist/interactions/actions/pointerState.js +12 -0
  718. package/dist/interactions/actions/pointerState.js.map +1 -0
  719. package/dist/interactions/actions/poseDescriptorDep.js +1 -1
  720. package/dist/interactions/actions/poseDescriptorDep.js.map +1 -1
  721. package/dist/interactions/actions/poseFrame.js +26 -26
  722. package/dist/interactions/actions/poseFrame.js.map +1 -1
  723. package/dist/interactions/actions/resize/action.js +66 -0
  724. package/dist/interactions/actions/resize/action.js.map +1 -0
  725. package/dist/interactions/actions/resize/behaviors/lockAspect.js.map +1 -1
  726. package/dist/interactions/actions/resize/boxFrame.js +16 -0
  727. package/dist/interactions/actions/resize/boxFrame.js.map +1 -0
  728. package/dist/interactions/actions/resize/capture.js +85 -0
  729. package/dist/interactions/actions/resize/capture.js.map +1 -0
  730. package/dist/interactions/actions/resize/commit.js +69 -0
  731. package/dist/interactions/actions/resize/commit.js.map +1 -0
  732. package/dist/interactions/actions/resize/frame.js +88 -0
  733. package/dist/interactions/actions/resize/frame.js.map +1 -0
  734. package/dist/interactions/actions/resize/pointSnap.js +111 -0
  735. package/dist/interactions/actions/resize/pointSnap.js.map +1 -0
  736. package/dist/interactions/actions/resize/replay.js +47 -0
  737. package/dist/interactions/actions/resize/replay.js.map +1 -0
  738. package/dist/interactions/actions/resize/ruleBounds.js +9 -0
  739. package/dist/interactions/actions/resize/ruleBounds.js.map +1 -0
  740. package/dist/interactions/actions/resize/session.js +63 -0
  741. package/dist/interactions/actions/resize/session.js.map +1 -0
  742. package/dist/interactions/actions/resolveOverlays.js +2 -1
  743. package/dist/interactions/actions/resolveOverlays.js.map +1 -1
  744. package/dist/interactions/actions/resolvePreviews.js.map +1 -1
  745. package/dist/interactions/actions/rotate/action.js +71 -0
  746. package/dist/interactions/actions/rotate/action.js.map +1 -0
  747. package/dist/interactions/actions/rotate/behaviors/index.js +7 -0
  748. package/dist/interactions/actions/rotate/behaviors/index.js.map +1 -0
  749. package/dist/interactions/actions/rotate/behaviors/snapRotation.js +12 -0
  750. package/dist/interactions/actions/rotate/behaviors/snapRotation.js.map +1 -0
  751. package/dist/interactions/actions/rotate/commit.js +40 -0
  752. package/dist/interactions/actions/rotate/commit.js.map +1 -0
  753. package/dist/interactions/actions/rotate/frame.js +65 -0
  754. package/dist/interactions/actions/rotate/frame.js.map +1 -0
  755. package/dist/interactions/actions/rotate/handle.js +12 -12
  756. package/dist/interactions/actions/rotate/handle.js.map +1 -1
  757. package/dist/interactions/actions/rotate/replay.js +22 -0
  758. package/dist/interactions/actions/rotate/replay.js.map +1 -0
  759. package/dist/interactions/actions/rotate/session.js +102 -0
  760. package/dist/interactions/actions/rotate/session.js.map +1 -0
  761. package/dist/interactions/actions/spatialReference.js.map +1 -1
  762. package/dist/interactions/actions/transform-again/action.js +63 -0
  763. package/dist/interactions/actions/transform-again/action.js.map +1 -0
  764. package/dist/interactions/actions/transform-again/memory.js +35 -0
  765. package/dist/interactions/actions/transform-again/memory.js.map +1 -0
  766. package/dist/interactions/actions/useStandardActions.js +84 -61
  767. package/dist/interactions/actions/useStandardActions.js.map +1 -1
  768. package/dist/interactions/gestures/pointerDrag/pointerDrag.js +61 -42
  769. package/dist/interactions/gestures/pointerDrag/pointerDrag.js.map +1 -1
  770. package/dist/interactions/gestures/shared/originProjection.js +1 -1
  771. package/dist/interactions/gestures/shared/originProjection.js.map +1 -1
  772. package/dist/interactions/gestures/shared/screenTolerance.js +8 -2
  773. package/dist/interactions/gestures/shared/screenTolerance.js.map +1 -1
  774. package/dist/interactions/gestures/shared/snap.js.map +1 -1
  775. package/dist/math-CYUjoyyU.d.ts +33 -0
  776. package/dist/math.d.ts +5 -2
  777. package/dist/math.js +6 -6
  778. package/dist/mesh.d.ts +4 -268
  779. package/dist/mesh.js +3 -7
  780. package/dist/move.d.ts +6 -4
  781. package/dist/{originProjection-gHnOup4e.d.ts → originProjection-CoNVpITV.d.ts} +1 -1
  782. package/dist/patterns-builtin.d.ts +1 -118
  783. package/dist/patterns-builtin.js +2 -3
  784. package/dist/poseDescriptor-Bqk-11Rl.d.ts +73 -0
  785. package/dist/renderer.d.ts +1 -92
  786. package/dist/renderer.js +2 -19
  787. package/dist/resize.d.ts +11 -22
  788. package/dist/resize.js +1 -1
  789. package/dist/style.css +1 -1
  790. package/dist/test-hook/install.js.map +1 -1
  791. package/dist/test-hook/useTestHook.js +22 -0
  792. package/dist/test-hook/useTestHook.js.map +1 -0
  793. package/dist/test-seams-D0pyV3pR.d.ts +149 -0
  794. package/dist/test-seams.d.ts +4 -4
  795. package/dist/test-seams.js +2 -2
  796. package/dist/tools/builtin/bone/boneActions.js +130 -0
  797. package/dist/tools/builtin/bone/boneActions.js.map +1 -0
  798. package/dist/tools/builtin/bone/boneOverlay.js +58 -0
  799. package/dist/tools/builtin/bone/boneOverlay.js.map +1 -0
  800. package/dist/tools/builtin/bone/placedRig.js +24 -0
  801. package/dist/tools/builtin/bone/placedRig.js.map +1 -0
  802. package/dist/tools/builtin/bone/rigEditState.js +21 -0
  803. package/dist/tools/builtin/bone/rigEditState.js.map +1 -0
  804. package/dist/tools/builtin/bone/useBoneTool.js +98 -0
  805. package/dist/tools/builtin/bone/useBoneTool.js.map +1 -0
  806. package/dist/tools/builtin/ellipse/useEllipseTool.js +16 -15
  807. package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
  808. package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
  809. package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
  810. package/dist/tools/builtin/image/useImageTool.js.map +1 -1
  811. package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
  812. package/dist/tools/builtin/line/useLineTool.js +16 -15
  813. package/dist/tools/builtin/line/useLineTool.js.map +1 -1
  814. package/dist/tools/builtin/pen/usePenTool.js +162 -164
  815. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  816. package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
  817. package/dist/tools/builtin/pickTopMostHit.js +11 -14
  818. package/dist/tools/builtin/pickTopMostHit.js.map +1 -1
  819. package/dist/tools/builtin/polygon/usePolygonTool.js +17 -15
  820. package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
  821. package/dist/tools/builtin/rect/useRectTool.js +15 -14
  822. package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
  823. package/dist/tools/builtin/select/adapterPointQuery.js +40 -0
  824. package/dist/tools/builtin/select/adapterPointQuery.js.map +1 -0
  825. package/dist/tools/builtin/select/selectionContributions.js +5 -5
  826. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  827. package/dist/tools/builtin/select/useSelectTool.js +44 -71
  828. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  829. package/dist/tools/builtin/shared/pointerFollower.js.map +1 -1
  830. package/dist/tools/builtin/slice/useSliceTool.js +69 -72
  831. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  832. package/dist/tools/builtin/star/useStarTool.js +18 -16
  833. package/dist/tools/builtin/star/useStarTool.js.map +1 -1
  834. package/dist/tools/builtin/text/useTextTool.js +10 -2
  835. package/dist/tools/builtin/text/useTextTool.js.map +1 -1
  836. package/dist/tools/builtin/weight/useWeightTool.js +77 -0
  837. package/dist/tools/builtin/weight/useWeightTool.js.map +1 -0
  838. package/dist/tools/builtin/weight/weightActions.js +112 -0
  839. package/dist/tools/builtin/weight/weightActions.js.map +1 -0
  840. package/dist/tools/builtin/weight/weightOverlay.js +61 -0
  841. package/dist/tools/builtin/weight/weightOverlay.js.map +1 -0
  842. package/dist/tools/overlayBinding.js.map +1 -1
  843. package/dist/tools/useKeybindings.js +20 -14
  844. package/dist/tools/useKeybindings.js.map +1 -1
  845. package/dist/{types-k-5Oqh-U.d.ts → types-DBbbCy0i.d.ts} +103 -176
  846. package/dist/util/paint.js +1 -1
  847. package/dist/util/paint.js.map +1 -1
  848. package/dist/version.js +1 -1
  849. package/package.json +26 -21
  850. package/dist/animation/colorHelpers.js +0 -135
  851. package/dist/animation/colorHelpers.js.map +0 -1
  852. package/dist/animation/colorRegistry.js +0 -37
  853. package/dist/animation/colorRegistry.js.map +0 -1
  854. package/dist/animation/engine/axes.js +0 -36
  855. package/dist/animation/engine/axes.js.map +0 -1
  856. package/dist/animation/engine/codec.js +0 -170
  857. package/dist/animation/engine/codec.js.map +0 -1
  858. package/dist/animation/engine/integrator.js +0 -12
  859. package/dist/animation/engine/integrator.js.map +0 -1
  860. package/dist/animation/loop.js +0 -60
  861. package/dist/animation/loop.js.map +0 -1
  862. package/dist/animation/observe.js +0 -23
  863. package/dist/animation/observe.js.map +0 -1
  864. package/dist/animation/rig/blendPoses.js +0 -43
  865. package/dist/animation/rig/blendPoses.js.map +0 -1
  866. package/dist/animation/rig/mirrorPose.js +0 -19
  867. package/dist/animation/rig/mirrorPose.js.map +0 -1
  868. package/dist/animation/rig/resolveSkeleton.js +0 -33
  869. package/dist/animation/rig/resolveSkeleton.js.map +0 -1
  870. package/dist/animation/rig/solveIk.js +0 -103
  871. package/dist/animation/rig/solveIk.js.map +0 -1
  872. package/dist/animation/rig/types.js +0 -12
  873. package/dist/animation/rig/types.js.map +0 -1
  874. package/dist/animation/slew.js +0 -27
  875. package/dist/animation/slew.js.map +0 -1
  876. package/dist/animation/stagger.js +0 -146
  877. package/dist/animation/stagger.js.map +0 -1
  878. package/dist/animation/timeline/booking.js +0 -114
  879. package/dist/animation/timeline/booking.js.map +0 -1
  880. package/dist/animation/timeline/createTimeline.js +0 -125
  881. package/dist/animation/timeline/createTimeline.js.map +0 -1
  882. package/dist/animation/timeline/sampleTrack.js +0 -79
  883. package/dist/animation/timeline/sampleTrack.js.map +0 -1
  884. package/dist/animation/useAnimator.js +0 -388
  885. package/dist/animation/useAnimator.js.map +0 -1
  886. package/dist/autoPoseDescriptor-Ct7yqivU.d.ts +0 -108
  887. package/dist/builtins-DPcdghtB.d.ts +0 -1223
  888. package/dist/canvas/MinimapCanvas.js +0 -140
  889. package/dist/canvas/MinimapCanvas.js.map +0 -1
  890. package/dist/canvas/deps/poseComposition.js +0 -11
  891. package/dist/canvas/deps/poseComposition.js.map +0 -1
  892. package/dist/canvas/minimapMath.js +0 -82
  893. package/dist/canvas/minimapMath.js.map +0 -1
  894. package/dist/canvas/toolPreview.js +0 -39
  895. package/dist/canvas/toolPreview.js.map +0 -1
  896. package/dist/core/adapters/arrayAdapter.js +0 -94
  897. package/dist/core/adapters/arrayAdapter.js.map +0 -1
  898. package/dist/core/adapters/useArrayAdapter.js +0 -13
  899. package/dist/core/adapters/useArrayAdapter.js.map +0 -1
  900. package/dist/core/fillInPoseFrame.js +0 -102
  901. package/dist/core/fillInPoseFrame.js.map +0 -1
  902. package/dist/core/geometry/poseFrame.js +0 -44
  903. package/dist/core/geometry/poseFrame.js.map +0 -1
  904. package/dist/core/geometry/poseRotation.js +0 -58
  905. package/dist/core/geometry/poseRotation.js.map +0 -1
  906. package/dist/core/gradient.js +0 -136
  907. package/dist/core/gradient.js.map +0 -1
  908. package/dist/core/markerInset.js +0 -24
  909. package/dist/core/markerInset.js.map +0 -1
  910. package/dist/core/mixed.js +0 -6
  911. package/dist/core/mixed.js.map +0 -1
  912. package/dist/core/paintKinds.js +0 -156
  913. package/dist/core/paintKinds.js.map +0 -1
  914. package/dist/core/scene/pickability.js +0 -6
  915. package/dist/core/scene/pickability.js.map +0 -1
  916. package/dist/core/strokeMarkerShapes.js +0 -139
  917. package/dist/core/strokeMarkerShapes.js.map +0 -1
  918. package/dist/core/strokeMarkers.js +0 -28
  919. package/dist/core/strokeMarkers.js.map +0 -1
  920. package/dist/core/viewport/meanScale.js +0 -8
  921. package/dist/core/viewport/meanScale.js.map +0 -1
  922. package/dist/core/viewport/pxExtent.js +0 -42
  923. package/dist/core/viewport/pxExtent.js.map +0 -1
  924. package/dist/features/cursor/paintedCursorLayer.js.map +0 -1
  925. package/dist/features/focus/gateLayer.js.map +0 -1
  926. package/dist/features/focus/useCanvasFocus.js +0 -29
  927. package/dist/features/focus/useCanvasFocus.js.map +0 -1
  928. package/dist/features/groups/children.js.map +0 -1
  929. package/dist/features/groups/composePose.js +0 -67
  930. package/dist/features/groups/composePose.js.map +0 -1
  931. package/dist/features/groups/nestedHit.js.map +0 -1
  932. package/dist/features/groups/unionOfChildren.js.map +0 -1
  933. package/dist/features/images/imageCache.js +0 -104
  934. package/dist/features/images/imageCache.js.map +0 -1
  935. package/dist/features/ingestion/index.js +0 -8
  936. package/dist/features/meshPaint/bake.js +0 -79
  937. package/dist/features/meshPaint/bake.js.map +0 -1
  938. package/dist/features/meshPaint/bakeCache.js +0 -59
  939. package/dist/features/meshPaint/bakeCache.js.map +0 -1
  940. package/dist/features/meshPaint/handles.js +0 -86
  941. package/dist/features/meshPaint/handles.js.map +0 -1
  942. package/dist/features/meshPaint/lazyKind.js.map +0 -1
  943. package/dist/features/meshPaint/meshPaint.js +0 -239
  944. package/dist/features/meshPaint/meshPaint.js.map +0 -1
  945. package/dist/features/meshPaint/meshShader.js +0 -6
  946. package/dist/features/meshPaint/meshShader.js.map +0 -1
  947. package/dist/features/meshPaint/register.js +0 -7
  948. package/dist/features/meshPaint/register.js.map +0 -1
  949. package/dist/features/meshPaint/surface.js +0 -110
  950. package/dist/features/meshPaint/surface.js.map +0 -1
  951. package/dist/features/minimap/actions.js +0 -53
  952. package/dist/features/minimap/actions.js.map +0 -1
  953. package/dist/features/minimap/createMinimapContribution.js +0 -96
  954. package/dist/features/minimap/createMinimapContribution.js.map +0 -1
  955. package/dist/features/minimap/layers.js +0 -85
  956. package/dist/features/minimap/layers.js.map +0 -1
  957. package/dist/features/overlays/useNodeOverlayFrame.js +0 -103
  958. package/dist/features/overlays/useNodeOverlayFrame.js.map +0 -1
  959. package/dist/features/parallax/createParallaxLayer.js +0 -26
  960. package/dist/features/parallax/createParallaxLayer.js.map +0 -1
  961. package/dist/features/parallax/createParallaxPlane.js +0 -22
  962. package/dist/features/parallax/createParallaxPlane.js.map +0 -1
  963. package/dist/features/paths/anchorEdits.js +0 -167
  964. package/dist/features/paths/anchorEdits.js.map +0 -1
  965. package/dist/features/paths/anchors.js +0 -159
  966. package/dist/features/paths/anchors.js.map +0 -1
  967. package/dist/features/paths/booleans.js +0 -2
  968. package/dist/features/paths/markerCommands.js +0 -149
  969. package/dist/features/paths/markerCommands.js.map +0 -1
  970. package/dist/features/paths/markerSites.js +0 -59
  971. package/dist/features/paths/markerSites.js.map +0 -1
  972. package/dist/features/paths/markers.js +0 -95
  973. package/dist/features/paths/markers.js.map +0 -1
  974. package/dist/features/paths/nearestAnchor.js +0 -36
  975. package/dist/features/paths/nearestAnchor.js.map +0 -1
  976. package/dist/features/paths/pathInWorld.js +0 -41
  977. package/dist/features/paths/pathInWorld.js.map +0 -1
  978. package/dist/features/paths/poseDescriptor.js +0 -39
  979. package/dist/features/paths/poseDescriptor.js.map +0 -1
  980. package/dist/features/paths/strokeToPath.js +0 -40
  981. package/dist/features/paths/strokeToPath.js.map +0 -1
  982. package/dist/features/paths/tessellate/dash.js +0 -52
  983. package/dist/features/paths/tessellate/dash.js.map +0 -1
  984. package/dist/features/paths/tessellate/insets.js +0 -32
  985. package/dist/features/paths/tessellate/insets.js.map +0 -1
  986. package/dist/features/paths/tessellate/metric.js +0 -72
  987. package/dist/features/paths/tessellate/metric.js.map +0 -1
  988. package/dist/features/paths/tessellate/stroke.js +0 -170
  989. package/dist/features/paths/tessellate/stroke.js.map +0 -1
  990. package/dist/features/paths/tessellate/vertexWidths.js +0 -32
  991. package/dist/features/paths/tessellate/vertexWidths.js.map +0 -1
  992. package/dist/features/patterns/commandPaint.js +0 -18
  993. package/dist/features/patterns/commandPaint.js.map +0 -1
  994. package/dist/features/patterns/index.js +0 -11
  995. package/dist/features/patterns/index.js.map +0 -1
  996. package/dist/features/patterns/patterns-builtin.js +0 -38
  997. package/dist/features/patterns/patterns-builtin.js.map +0 -1
  998. package/dist/features/patterns/rasterizeTile.js +0 -17
  999. package/dist/features/patterns/rasterizeTile.js.map +0 -1
  1000. package/dist/features/patterns/resolveSpec.js +0 -65
  1001. package/dist/features/patterns/resolveSpec.js.map +0 -1
  1002. package/dist/features/patterns/tileGeometry.js +0 -158
  1003. package/dist/features/patterns/tileGeometry.js.map +0 -1
  1004. package/dist/features/pointer/PointerContext.js +0 -45
  1005. package/dist/features/pointer/PointerContext.js.map +0 -1
  1006. package/dist/features/selection/SelectionContext.js +0 -51
  1007. package/dist/features/selection/SelectionContext.js.map +0 -1
  1008. package/dist/features/simulation/createSimulation.js +0 -61
  1009. package/dist/features/simulation/createSimulation.js.map +0 -1
  1010. package/dist/features/simulation/types.js +0 -6
  1011. package/dist/features/simulation/types.js.map +0 -1
  1012. package/dist/features/simulation/useSimulation.js +0 -74
  1013. package/dist/features/simulation/useSimulation.js.map +0 -1
  1014. package/dist/features/text/domOffsets.js +0 -82
  1015. package/dist/features/text/domOffsets.js.map +0 -1
  1016. package/dist/features/text/domRuns.js +0 -230
  1017. package/dist/features/text/domRuns.js.map +0 -1
  1018. package/dist/features/text/fitTextPose.js +0 -38
  1019. package/dist/features/text/fitTextPose.js.map +0 -1
  1020. package/dist/features/text/hitTest.js +0 -48
  1021. package/dist/features/text/hitTest.js.map +0 -1
  1022. package/dist/features/text/isTextData.js +0 -8
  1023. package/dist/features/text/isTextData.js.map +0 -1
  1024. package/dist/features/text/overlayDirection.js +0 -15
  1025. package/dist/features/text/overlayDirection.js.map +0 -1
  1026. package/dist/features/text/renderLabel.js +0 -14
  1027. package/dist/features/text/renderLabel.js.map +0 -1
  1028. package/dist/features/text/runs/effectiveRangeStyle.js +0 -66
  1029. package/dist/features/text/runs/effectiveRangeStyle.js.map +0 -1
  1030. package/dist/features/text/runs/flagRange.js +0 -53
  1031. package/dist/features/text/runs/flagRange.js.map +0 -1
  1032. package/dist/features/text/runs/rangeStyle.js +0 -133
  1033. package/dist/features/text/runs/rangeStyle.js.map +0 -1
  1034. package/dist/features/text/textCommand.js +0 -60
  1035. package/dist/features/text/textCommand.js.map +0 -1
  1036. package/dist/features/text/textToPath.js +0 -181
  1037. package/dist/features/text/textToPath.js.map +0 -1
  1038. package/dist/features/text/useTextEdit.js +0 -491
  1039. package/dist/features/text/useTextEdit.js.map +0 -1
  1040. package/dist/features/tiling/createTiledLayer.js +0 -65
  1041. package/dist/features/tiling/createTiledLayer.js.map +0 -1
  1042. package/dist/features/tiling/tiledProject.js +0 -14
  1043. package/dist/features/tiling/tiledProject.js.map +0 -1
  1044. package/dist/interactions/actions/clone/behaviors/cloneByAltDrag.js +0 -26
  1045. package/dist/interactions/actions/clone/behaviors/cloneByAltDrag.js.map +0 -1
  1046. package/dist/interactions/actions/defaults/align.js.map +0 -1
  1047. package/dist/interactions/actions/defaults/booleans.js +0 -52
  1048. package/dist/interactions/actions/defaults/booleans.js.map +0 -1
  1049. package/dist/interactions/actions/defaults/clipboard.js.map +0 -1
  1050. package/dist/interactions/actions/defaults/clone.js +0 -91
  1051. package/dist/interactions/actions/defaults/clone.js.map +0 -1
  1052. package/dist/interactions/actions/defaults/createOutlines.js +0 -47
  1053. package/dist/interactions/actions/defaults/createOutlines.js.map +0 -1
  1054. package/dist/interactions/actions/defaults/distribute.js.map +0 -1
  1055. package/dist/interactions/actions/defaults/editAnchors.js +0 -100
  1056. package/dist/interactions/actions/defaults/editAnchors.js.map +0 -1
  1057. package/dist/interactions/actions/defaults/flip.js +0 -125
  1058. package/dist/interactions/actions/defaults/flip.js.map +0 -1
  1059. package/dist/interactions/actions/defaults/insert.js +0 -287
  1060. package/dist/interactions/actions/defaults/insert.js.map +0 -1
  1061. package/dist/interactions/actions/defaults/lassoSelect.js +0 -153
  1062. package/dist/interactions/actions/defaults/lassoSelect.js.map +0 -1
  1063. package/dist/interactions/actions/defaults/move.js +0 -778
  1064. package/dist/interactions/actions/defaults/move.js.map +0 -1
  1065. package/dist/interactions/actions/defaults/resize.js +0 -341
  1066. package/dist/interactions/actions/defaults/resize.js.map +0 -1
  1067. package/dist/interactions/actions/defaults/rotate.js +0 -185
  1068. package/dist/interactions/actions/defaults/rotate.js.map +0 -1
  1069. package/dist/interactions/actions/previewOverrides.js +0 -25
  1070. package/dist/interactions/actions/previewOverrides.js.map +0 -1
  1071. package/dist/interactions/actions/resize/autoPoseDescriptor.js.map +0 -1
  1072. package/dist/layout/arrivals.js +0 -36
  1073. package/dist/layout/arrivals.js.map +0 -1
  1074. package/dist/math-J-ACHyEg.d.ts +0 -159
  1075. package/dist/registerProgram-T9S_PfAX.d.ts +0 -208
  1076. package/dist/renderer/DrawCommand.js +0 -6
  1077. package/dist/renderer/DrawCommand.js.map +0 -1
  1078. package/dist/renderer/WeaselRenderer.js +0 -333
  1079. package/dist/renderer/WeaselRenderer.js.map +0 -1
  1080. package/dist/renderer/batchClip.js +0 -46
  1081. package/dist/renderer/batchClip.js.map +0 -1
  1082. package/dist/renderer/cache/GLImageCache.js +0 -74
  1083. package/dist/renderer/cache/GLImageCache.js.map +0 -1
  1084. package/dist/renderer/cache/GLMeshCache.js +0 -102
  1085. package/dist/renderer/cache/GLMeshCache.js.map +0 -1
  1086. package/dist/renderer/cache/GLTextureCache.js +0 -68
  1087. package/dist/renderer/cache/GLTextureCache.js.map +0 -1
  1088. package/dist/renderer/cache/GradientRampAtlas.js +0 -82
  1089. package/dist/renderer/cache/GradientRampAtlas.js.map +0 -1
  1090. package/dist/renderer/cache/cache.js +0 -13
  1091. package/dist/renderer/cache/cache.js.map +0 -1
  1092. package/dist/renderer/cache/markerCommandCache.js +0 -63
  1093. package/dist/renderer/cache/markerCommandCache.js.map +0 -1
  1094. package/dist/renderer/cache/outlineMeshCache.js +0 -15
  1095. package/dist/renderer/cache/outlineMeshCache.js.map +0 -1
  1096. package/dist/renderer/cache/outlineStrokeMeshCache.js +0 -36
  1097. package/dist/renderer/cache/outlineStrokeMeshCache.js.map +0 -1
  1098. package/dist/renderer/cache/strokeMeshCache.js +0 -55
  1099. package/dist/renderer/cache/strokeMeshCache.js.map +0 -1
  1100. package/dist/renderer/cullDrawCommands.js +0 -90
  1101. package/dist/renderer/cullDrawCommands.js.map +0 -1
  1102. package/dist/renderer/draw/batch.js +0 -133
  1103. package/dist/renderer/draw/batch.js.map +0 -1
  1104. package/dist/renderer/draw/clip.js +0 -89
  1105. package/dist/renderer/draw/clip.js.map +0 -1
  1106. package/dist/renderer/draw/customShader.js +0 -230
  1107. package/dist/renderer/draw/customShader.js.map +0 -1
  1108. package/dist/renderer/draw/drawTriangles.js +0 -8
  1109. package/dist/renderer/draw/drawTriangles.js.map +0 -1
  1110. package/dist/renderer/draw/effects.js +0 -28
  1111. package/dist/renderer/draw/effects.js.map +0 -1
  1112. package/dist/renderer/draw/flushBatch.js +0 -35
  1113. package/dist/renderer/draw/flushBatch.js.map +0 -1
  1114. package/dist/renderer/draw/gradient.js +0 -90
  1115. package/dist/renderer/draw/gradient.js.map +0 -1
  1116. package/dist/renderer/draw/image.js +0 -38
  1117. package/dist/renderer/draw/image.js.map +0 -1
  1118. package/dist/renderer/draw/mesh.js +0 -16
  1119. package/dist/renderer/draw/mesh.js.map +0 -1
  1120. package/dist/renderer/draw/paintBind.js +0 -70
  1121. package/dist/renderer/draw/paintBind.js.map +0 -1
  1122. package/dist/renderer/draw/pathPaint.js +0 -142
  1123. package/dist/renderer/draw/pathPaint.js.map +0 -1
  1124. package/dist/renderer/draw/scratchPass.js +0 -83
  1125. package/dist/renderer/draw/scratchPass.js.map +0 -1
  1126. package/dist/renderer/draw/stencil.js +0 -28
  1127. package/dist/renderer/draw/stencil.js.map +0 -1
  1128. package/dist/renderer/draw/text.js +0 -167
  1129. package/dist/renderer/draw/text.js.map +0 -1
  1130. package/dist/renderer/draw/uniforms.js +0 -77
  1131. package/dist/renderer/draw/uniforms.js.map +0 -1
  1132. package/dist/renderer/draw.js +0 -79
  1133. package/dist/renderer/draw.js.map +0 -1
  1134. package/dist/renderer/drawBatch.js +0 -198
  1135. package/dist/renderer/drawBatch.js.map +0 -1
  1136. package/dist/renderer/effects/EffectTargets.js +0 -48
  1137. package/dist/renderer/effects/EffectTargets.js.map +0 -1
  1138. package/dist/renderer/effects/builtins.js +0 -31
  1139. package/dist/renderer/effects/builtins.js.map +0 -1
  1140. package/dist/renderer/effects/composite.js +0 -11
  1141. package/dist/renderer/effects/composite.js.map +0 -1
  1142. package/dist/renderer/effects/effectPrelude.js +0 -10
  1143. package/dist/renderer/effects/effectPrelude.js.map +0 -1
  1144. package/dist/renderer/effects/types.js +0 -10
  1145. package/dist/renderer/effects/types.js.map +0 -1
  1146. package/dist/renderer/glyphOutlineMesh.js +0 -67
  1147. package/dist/renderer/glyphOutlineMesh.js.map +0 -1
  1148. package/dist/renderer/index.js +0 -20
  1149. package/dist/renderer/math/color.js +0 -321
  1150. package/dist/renderer/math/color.js.map +0 -1
  1151. package/dist/renderer/math/mat3.js +0 -80
  1152. package/dist/renderer/math/mat3.js.map +0 -1
  1153. package/dist/renderer/math/patternSpace.js +0 -22
  1154. package/dist/renderer/math/patternSpace.js.map +0 -1
  1155. package/dist/renderer/math/viewToMat3.js +0 -19
  1156. package/dist/renderer/math/viewToMat3.js.map +0 -1
  1157. package/dist/renderer/paintResources.js +0 -18
  1158. package/dist/renderer/paintResources.js.map +0 -1
  1159. package/dist/renderer/paintScratch.js +0 -37
  1160. package/dist/renderer/paintScratch.js.map +0 -1
  1161. package/dist/renderer/shaders/ShaderProgram.js +0 -74
  1162. package/dist/renderer/shaders/ShaderProgram.js.map +0 -1
  1163. package/dist/renderer/shaders/batchFill.js +0 -119
  1164. package/dist/renderer/shaders/batchFill.js.map +0 -1
  1165. package/dist/renderer/shaders/customPrelude.js +0 -34
  1166. package/dist/renderer/shaders/customPrelude.js.map +0 -1
  1167. package/dist/renderer/shaders/extractUniformNames.js +0 -184
  1168. package/dist/renderer/shaders/extractUniformNames.js.map +0 -1
  1169. package/dist/renderer/shaders/glyphPaint.js +0 -61
  1170. package/dist/renderer/shaders/glyphPaint.js.map +0 -1
  1171. package/dist/renderer/shaders/gradFill.js +0 -31
  1172. package/dist/renderer/shaders/gradFill.js.map +0 -1
  1173. package/dist/renderer/shaders/pathFill.js +0 -14
  1174. package/dist/renderer/shaders/pathFill.js.map +0 -1
  1175. package/dist/renderer/shaders/patternFill.js +0 -25
  1176. package/dist/renderer/shaders/patternFill.js.map +0 -1
  1177. package/dist/renderer/shaders/registerProgram.js +0 -18
  1178. package/dist/renderer/shaders/registerProgram.js.map +0 -1
  1179. package/dist/renderer/spriteSheet.js +0 -14
  1180. package/dist/renderer/spriteSheet.js.map +0 -1
  1181. package/dist/renderer/state/GroupState.js +0 -77
  1182. package/dist/renderer/state/GroupState.js.map +0 -1
  1183. package/dist/renderer/strokeLengths.js +0 -50
  1184. package/dist/renderer/strokeLengths.js.map +0 -1
  1185. package/dist/renderer/syntheticItalic.js +0 -6
  1186. package/dist/renderer/syntheticItalic.js.map +0 -1
  1187. package/dist/renderer/textures/registerTexture.js +0 -34
  1188. package/dist/renderer/textures/registerTexture.js.map +0 -1
  1189. package/dist/scheduling/useVisibleRaf.js +0 -69
  1190. package/dist/scheduling/useVisibleRaf.js.map +0 -1
  1191. package/dist/test-seams-DM2B87-g.d.ts +0 -356
@@ -0,0 +1,64 @@
1
+ import { boundsOfPath as e, pathInWorld as t, remapPointValues as n } from "@weasel-js/geom";
2
+ import { skinPath as r } from "@weasel-js/animator";
3
+ //#region src/animation/rig/skinBinding.ts
4
+ function i(e) {
5
+ let n = e.data?.path;
6
+ return n ? t(n, e.pose) : null;
7
+ }
8
+ function a(e, t) {
9
+ let r = {};
10
+ for (let i in e) {
11
+ let a = n(e[i], t);
12
+ a.some((e) => e > 0) && (r[i] = a);
13
+ }
14
+ return r;
15
+ }
16
+ function o(t, n, i, a) {
17
+ let o = [], s = /* @__PURE__ */ new Set();
18
+ for (let [e, r] of Object.entries(n)) {
19
+ let n = t.get(e);
20
+ if (!n) throw Error(`bindRig: a skin names node "${e}", which the scene lacks.`);
21
+ let a = i(n);
22
+ if (!a) throw Error(`bindRig: node "${e}" has no path to skin.`);
23
+ for (let e in r) s.add(e);
24
+ o.push({
25
+ node: e,
26
+ skin: r,
27
+ rest: a,
28
+ restPose: n.pose,
29
+ entry: {}
30
+ });
31
+ }
32
+ let c = !1;
33
+ return {
34
+ joints: [...s],
35
+ show(n) {
36
+ for (let i of o) {
37
+ let o = r(i.rest, i.skin, n);
38
+ i.entry.path = o, i.entry.pose = a.fromBounds(e(o), i.restPose), c || t.overrides.set(i.node, i.entry);
39
+ }
40
+ c = !0;
41
+ },
42
+ write() {
43
+ for (let e of o) {
44
+ let { path: n, pose: r } = e.entry;
45
+ if (n === void 0 || r === void 0) continue;
46
+ let i = t.get(e.node)?.data;
47
+ t.update(e.node, { data: {
48
+ ...i,
49
+ path: n
50
+ } }), t.setPose(e.node, r);
51
+ }
52
+ },
53
+ release() {
54
+ if (c) {
55
+ c = !1;
56
+ for (let e of o) t.overrides.clear(e.node);
57
+ }
58
+ }
59
+ };
60
+ }
61
+ //#endregion
62
+ export { o as bindSkins, i as dataRestPath, a as remapSkin };
63
+
64
+ //# sourceMappingURL=skinBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skinBinding.js","names":["dataRestPath","path","node","pathInWorld","remapSkin","next","joint","skin","weights","remapPointValues","origins","w","bindSkins","skinned","joints","id","skins","scene","rest","restPath","installed","s","skinPath","motions","descriptor","boundsOfPath","pose","data"],"sources":["../../../src/animation/rig/skinBinding.ts"],"sourcesContent":["import {\n boundsOfPath, pathInWorld, remapPointValues,\n type GlMat3, type Path, type PathInWorldPose, type PointOrigin,\n} from '@weasel-js/geom';\nimport type { PoseDescriptor } from '../../core/geometry/poseDescriptor';\nimport type { NodeId, PoseOverride, PoseOverrides } from '../../core/scene/types';\nimport { skinPath, type Skin } from '@weasel-js/animator';\n\n/** The part of a scene a rig's skins read and write. */\nexport interface SkinScene<TPose> {\n get(id: NodeId): { pose: TPose; data?: unknown } | undefined;\n readonly overrides: PoseOverrides<TPose>;\n setPose(id: NodeId, pose: TPose): void;\n update(id: NodeId, patch: { data: never }): void;\n}\n\n/** Where a node's path is drawn, for a skin to bend: `null` for a node with none. */\nexport type RestPath<TPose> = (node: { pose: TPose; data?: unknown }) => Path | null;\n\n/** The path in a node's `data.path`, carried through its pose as `kit:path` paints it. */\nexport function dataRestPath<TPose>(node: { pose: TPose; data?: unknown }): Path | null {\n const path = (node.data as { path?: Path } | null | undefined)?.path;\n return path ? pathInWorld(path, node.pose as PathInWorldPose) : null;\n}\n\n/**\n * `skin` after an edit to the points of the path it weighs: `origins` says where each point\n * of the new path came from, as `editAnchorSetTracked` answers. A point the edit made takes\n * weights between those of the points it lies between, and a joint left weighing nothing is\n * dropped.\n */\nexport function remapSkin(skin: Skin, origins: readonly (PointOrigin | null)[]): Skin {\n const next: Record<string, number[]> = {};\n for (const joint in skin) {\n const weights = remapPointValues(skin[joint], origins);\n if (weights.some((w) => w > 0)) next[joint] = weights;\n }\n return next;\n}\n\ninterface Skinned<TPose> {\n node: NodeId;\n skin: Skin;\n rest: Path;\n restPose: TPose;\n entry: PoseOverride<TPose>;\n}\n\n/** A rig's skinned nodes, as `bindSkins` returns them. */\nexport interface SkinBinding {\n /** Every joint a skin weighs. */\n readonly joints: readonly string[];\n /** Bend each skinned path by `motions`, which holds every one of `joints`, into its node's\n * pose override. The caller commits the overrides. */\n show(motions: ReadonlyMap<string, GlMat3>): void;\n /** Write each bent path and its bounds into the document. */\n write(): void;\n release(): void;\n}\n\n/** Read each skinned node's rest path and ready an override for it. */\nexport function bindSkins<TPose>(\n scene: SkinScene<TPose>,\n skins: Readonly<Record<NodeId, Skin>>,\n restPath: RestPath<TPose>,\n descriptor: PoseDescriptor<TPose>,\n): SkinBinding {\n const skinned: Skinned<TPose>[] = [];\n const joints = new Set<string>();\n for (const [id, skin] of Object.entries(skins) as [NodeId, Skin][]) {\n const node = scene.get(id);\n if (!node) throw new Error(`bindRig: a skin names node \"${id}\", which the scene lacks.`);\n const rest = restPath(node);\n if (!rest) throw new Error(`bindRig: node \"${id}\" has no path to skin.`);\n for (const joint in skin) joints.add(joint);\n skinned.push({ node: id, skin, rest, restPose: node.pose, entry: {} });\n }\n let installed = false;\n return {\n joints: [...joints],\n show(motions) {\n for (const s of skinned) {\n const path = skinPath(s.rest, s.skin, motions);\n s.entry.path = path;\n s.entry.pose = descriptor.fromBounds(boundsOfPath(path), s.restPose);\n if (!installed) scene.overrides.set(s.node, s.entry);\n }\n installed = true;\n },\n write() {\n for (const s of skinned) {\n const { path, pose } = s.entry;\n if (path === undefined || pose === undefined) continue;\n const data = scene.get(s.node)?.data;\n scene.update(s.node, { data: { ...(data as object), path } as never });\n scene.setPose(s.node, pose);\n }\n },\n release() {\n if (!installed) return;\n installed = false;\n for (const s of skinned) scene.overrides.clear(s.node);\n },\n };\n}\n"],"mappings":";;;AAoBA,SAAgBA,EAAoB,GAAoD;CACtF,IAAMC,IAAQC,EAAK,MAA6C;CAChE,OAAOD,IAAOE,EAAYF,GAAMC,EAAK,IAAuB,IAAI;AAClE;AAQA,SAAgBE,EAAU,GAAY,GAAgD;CACpF,IAAMC,IAAiC,CAAC;CACxC,KAAK,IAAMC,KAASC,GAAM;EACxB,IAAMC,IAAUC,EAAiBF,EAAKD,IAAQI,CAAO;EACrD,AAAIF,EAAQ,MAAM,MAAMG,IAAI,CAAC,MAAG,EAAKL,KAASE;CAChD;CACA,OAAOH;AACT;AAuBA,SAAgBO,EACd,GACA,GACA,GACA,GACa;CACb,IAAMC,IAA4B,CAAC,GAC7BC,oBAAS,IAAI,IAAY;CAC/B,KAAK,IAAM,CAACC,GAAIR,MAAS,OAAO,QAAQS,CAAK,GAAuB;EAClE,IAAMd,IAAOe,EAAM,IAAIF,CAAE;EACzB,IAAI,CAACb,GAAM,MAAU,MAAM,+BAA+Ba,EAAG,0BAA0B;EACvF,IAAMG,IAAOC,EAASjB,CAAI;EAC1B,IAAI,CAACgB,GAAM,MAAU,MAAM,kBAAkBH,EAAG,uBAAuB;EACvE,KAAK,IAAMT,KAASC,GAAM,EAAO,IAAID,CAAK;EAC1C,EAAQ,KAAK;GAAE,MAAMS;GAAI;GAAM;GAAM,UAAUb,EAAK;GAAM,OAAO,CAAC;EAAE,CAAC;CACvE;CACA,IAAIkB,IAAY;CAChB,OAAO;EACL,QAAQ,CAAC,GAAGN,CAAM;EAClB,KAAK,GAAS;GACZ,KAAK,IAAMO,KAAKR,GAAS;IACvB,IAAMZ,IAAOqB,EAASD,EAAE,MAAMA,EAAE,MAAME,CAAO;IAG7C,AAFA,EAAE,MAAM,OAAOtB,GACf,EAAE,MAAM,OAAOuB,EAAW,WAAWC,EAAaxB,CAAI,GAAGoB,EAAE,QAAQ,GAC9DD,KAAWH,EAAM,UAAU,IAAII,EAAE,MAAMA,EAAE,KAAK;GACrD;GACA,IAAY;EACd;EACA,QAAQ;GACN,KAAK,IAAMA,KAAKR,GAAS;IACvB,IAAM,EAAE,SAAM,YAASQ,EAAE;IACzB,IAAIpB,MAAS,KAAA,KAAayB,MAAS,KAAA,GAAW;IAC9C,IAAMC,IAAOV,EAAM,IAAII,EAAE,IAAI,CAAC,EAAE;IAEhC,AADAJ,EAAM,OAAOI,EAAE,MAAM,EAAE,MAAM;KAAE,GAAIM;KAAiB;IAAK,EAAW,CAAC,GACrEV,EAAM,QAAQI,EAAE,MAAMK,CAAI;GAC5B;EACF;EACA,UAAU;GACR,IAAKN,GACL;QAAY;IACZ,KAAK,IAAMC,KAAKR,GAAS,EAAM,UAAU,MAAMQ,EAAE,IAAI;GADzC;EAEd;CACF;AACF"}
@@ -1,23 +1,38 @@
1
- import { bindRig as e } from "./bindRig.js";
2
- import { useEffect as t, useMemo as n } from "react";
1
+ import { createRigSeat as e, seatBinding as t } from "./rigSeat.js";
2
+ import { bindRigOn as n } from "./bindRig.js";
3
+ import { useEffect as r, useMemo as i } from "react";
3
4
  //#region src/animation/rig/useRig.ts
4
- function r(r) {
5
- let { scene: i, skeleton: a, bindings: o, apply: s, descriptor: c } = r, l = n(() => e({
6
- scene: i,
7
- skeleton: a,
8
- bindings: o,
9
- apply: s,
10
- descriptor: c
11
- }), [
12
- i,
13
- a,
14
- o,
5
+ function a(e) {
6
+ return o(e, null);
7
+ }
8
+ function o(a, o) {
9
+ let { scene: s, skeleton: c, bindings: l, skins: u, restPath: d, apply: f, descriptor: p } = a, m = i(() => {
10
+ let t = o ?? e(c), r = n({
11
+ scene: s,
12
+ skeleton: c,
13
+ bindings: l,
14
+ skins: u,
15
+ restPath: d,
16
+ apply: f,
17
+ descriptor: p
18
+ }, t);
19
+ return t.binding ??= r.binding, {
20
+ seat: t,
21
+ ...r
22
+ };
23
+ }, [
15
24
  s,
16
- c
25
+ c,
26
+ l,
27
+ u,
28
+ d,
29
+ f,
30
+ p,
31
+ o
17
32
  ]);
18
- return t(() => () => l.release(), [l]), l;
33
+ return r(() => (t(m.seat, m.binding), () => m.binding.drop()), [m]), m.rig;
19
34
  }
20
35
  //#endregion
21
- export { r as useRig };
36
+ export { a as useRig, o as useSeatedRig };
22
37
 
23
38
  //# sourceMappingURL=useRig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRig.js","names":["useRig","options","rig","useMemo","bindRig","scene","skeleton","bindings","apply","descriptor","useEffect"],"sources":["../../../src/animation/rig/useRig.ts"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { bindRig, type BindRigOptions, type Rig } from './bindRig';\n\n/**\n * A {@link Rig} bound for the component's lifetime, its overrides dropped on\n * unmount. Rebinds — re-reading every node's rest pose — whenever an option's\n * identity changes, so hoist or memoize `skeleton` and `bindings`.\n */\nexport function useRig<TPose>(options: BindRigOptions<TPose>): Rig {\n const { scene, skeleton, bindings, apply, descriptor } = options;\n const rig = useMemo(\n () => bindRig({ scene, skeleton, bindings, apply, descriptor }),\n [scene, skeleton, bindings, apply, descriptor],\n );\n useEffect(() => () => rig.release(), [rig]);\n return rig;\n}\n"],"mappings":";;;AAQA,SAAgBA,EAAc,GAAqC;CACjE,IAAM,EAAE,UAAO,aAAU,aAAU,UAAO,kBAAeC,GACnDC,IAAMC,QACJC,EAAQ;EAAE;EAAO;EAAU;EAAU;EAAO;CAAW,CAAC,GAC9D;EAACC;EAAOC;EAAUC;EAAUC;EAAOC;CAAU,CAC/C;CAEA,OADAC,cAAsBR,EAAI,QAAQ,GAAG,CAACA,CAAG,CAAC,GACnCA;AACT"}
1
+ {"version":3,"file":"useRig.js","names":["useRig","useSeatedRig","options","made","useMemo","seat","kept","createRigSeat","skeleton","bound","bindRigOn","scene","bindings","skins","restPath","apply","descriptor","useEffect","seatBinding"],"sources":["../../../src/animation/rig/useRig.ts"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { bindRigOn, type BindRigOptions, type Rig } from './bindRig';\nimport { createRigSeat, seatBinding, type RigSeat } from './rigSeat';\n\n/**\n * A {@link Rig} bound for the component's lifetime, its overrides dropped on\n * unmount. Rebinds — re-reading every node's rest pose — whenever an option's\n * identity changes, so hoist or memoize `skeleton`, `bindings`, and `skins`.\n */\nexport function useRig<TPose>(options: BindRigOptions<TPose>): Rig {\n return useSeatedRig(options, null);\n}\n\n/** {@link useRig} on a seat that outlives a rebind; `null` makes a seat for each binding. */\nexport function useSeatedRig<TPose>(options: BindRigOptions<TPose>, kept: RigSeat | null): Rig {\n const { scene, skeleton, bindings, skins, restPath, apply, descriptor } = options;\n const made = useMemo(() => {\n const seat = kept ?? createRigSeat(skeleton);\n const bound = bindRigOn({ scene, skeleton, bindings, skins, restPath, apply, descriptor }, seat);\n seat.binding ??= bound.binding;\n return { seat, ...bound };\n }, [scene, skeleton, bindings, skins, restPath, apply, descriptor, kept]);\n useEffect(() => {\n seatBinding(made.seat, made.binding);\n return () => made.binding.drop();\n }, [made]);\n return made.rig;\n}\n"],"mappings":";;;;AASA,SAAgBA,EAAc,GAAqC;CACjE,OAAOC,EAAaC,GAAS,IAAI;AACnC;AAGA,SAAgBD,EAAoB,GAAgC,GAA2B;CAC7F,IAAM,EAAE,UAAO,aAAU,aAAU,UAAO,aAAU,UAAO,kBAAeC,GACpEC,IAAOC,QAAc;EACzB,IAAMC,IAAOC,KAAQC,EAAcC,CAAQ,GACrCC,IAAQC,EAAU;GAAE;GAAO;GAAU;GAAU;GAAO;GAAU;GAAO;EAAW,GAAGL,CAAI;EAE/F,OADA,EAAK,YAAYI,EAAM,SAChB;GAAE;GAAM,GAAGA;EAAM;CAC1B,GAAG;EAACE;EAAOH;EAAUI;EAAUC;EAAOC;EAAUC;EAAOC;EAAYV;CAAI,CAAC;CAKxE,OAJAW,SACEC,EAAYf,EAAK,MAAMA,EAAK,OAAO,SACtBA,EAAK,QAAQ,KAAK,IAC9B,CAACA,CAAI,CAAC,GACFA,EAAK;AACd"}
@@ -8,8 +8,9 @@ function n(n, r, i) {
8
8
  insertNode(o, s) {
9
9
  if (n.insertNode(o, s), !i.enterFrom) return;
10
10
  let c = n.getPose(o.id), l = i.enterFrom(c);
11
- t(n, o.id, l), e(r, n, {
11
+ n.poseTarget?.(o.id, i.geometry) || t(n, o.id, l), e(r, n, {
12
12
  id: o.id,
13
+ from: l,
13
14
  to: c,
14
15
  ms: a,
15
16
  easing: i.easing,
@@ -24,19 +25,19 @@ function n(n, r, i) {
24
25
  }
25
26
  if (o.has(t)) return;
26
27
  o.add(t);
27
- let s = () => {}, c = () => {
28
- o.delete(t) && (s(), n.removeNode(t));
29
- }, l = n.getPose(t), u = e(r, n, {
28
+ let s = () => {}, c = n.poseTarget?.(t, i.geometry), l = c?.committed(), u = () => {
29
+ o.delete(t) && (s(), c && c.commit(l), n.removeNode(t));
30
+ }, d = n.getPose(t), f = e(r, n, {
30
31
  id: t,
31
- to: i.exitTo(l),
32
+ to: i.exitTo(d),
32
33
  ms: a,
33
34
  easing: i.easing,
34
35
  geometry: i.geometry,
35
36
  recordOp: !1,
36
- onDone: c
37
+ onDone: u
37
38
  });
38
39
  s = r.watch((e) => {
39
- (e.type === "cancel" || e.type === "interrupt") && e.animation.id === u.id && c();
40
+ (e.type === "cancel" || e.type === "interrupt") && e.animation.id === f.id && u();
40
41
  });
41
42
  }
42
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"animateLifecycle.js","names":["animateLifecycle","ms","opts","leaving","adapter","object","index","final","start","setPoseInstant","tweenPose","animator","id","unwatch","remove","current","handle","event"],"sources":["../../../src/animation/wrappers/animateLifecycle.ts"],"sourcesContent":["import { tweenPose } from '../poseHelpers';\nimport { setPoseInstant } from './instantPose';\nimport type { PoseDescriptor } from 'interactions/actions/resize/geometry';\nimport type { SceneAdapter } from 'core/adapters/types';\nimport type { Animator, EasingSpec } from '../types';\n\n/** How nodes enter and leave. `enterFrom` derives the pose a new node starts\n * at, given where it belongs; `exitTo` derives the pose a departing node\n * animates to before it is actually removed. Omit either to leave that\n * transition instant. */\nexport interface LifecycleAnimation<TPose> {\n /** Pose to animate the new object FROM at insert. */\n enterFrom?: (final: TPose) => TPose;\n /** Pose to animate the existing object TO at remove. */\n exitTo?: (current: TPose) => TPose;\n ms?: number;\n easing?: EasingSpec;\n geometry?: PoseDescriptor<TPose>;\n}\n\n/** Wrap an adapter so inserts and removals animate — the scene-graph\n * equivalent of CSS enter/leave transitions. */\nexport function animateLifecycle<TNode extends { id: string; pose?: TPose }, TPose>(\n adapter: SceneAdapter<TNode, TPose>,\n animator: Animator,\n opts: LifecycleAnimation<TPose>,\n): SceneAdapter<TNode, TPose> {\n const ms = opts.ms ?? 200;\n const leaving = new Set<string>();\n\n return {\n ...adapter,\n insertNode(object: TNode, index?: number): void {\n adapter.insertNode(object, index);\n if (!opts.enterFrom) return;\n const final = adapter.getPose(object.id);\n const start = opts.enterFrom(final);\n setPoseInstant(adapter, object.id, start);\n tweenPose(animator, adapter as never, {\n id: object.id,\n to: final,\n ms,\n easing: opts.easing,\n geometry: opts.geometry,\n recordOp: false,\n });\n },\n removeNode(id: string): void {\n if (!opts.exitTo) {\n adapter.removeNode(id);\n return;\n }\n if (leaving.has(id)) return;\n leaving.add(id);\n let unwatch = (): void => {};\n const remove = (): void => {\n if (!leaving.delete(id)) return;\n unwatch();\n adapter.removeNode(id);\n };\n const current = adapter.getPose(id);\n const handle = tweenPose(animator, adapter as never, {\n id,\n to: opts.exitTo(current),\n ms,\n easing: opts.easing,\n geometry: opts.geometry,\n recordOp: false,\n onDone: remove,\n });\n // A canceled tween never calls onDone, and the node still has to go.\n unwatch = animator.watch((event) => {\n if ((event.type === 'cancel' || event.type === 'interrupt') && event.animation.id === handle.id) remove();\n });\n },\n };\n}\n"],"mappings":";;;AAsBA,SAAgBA,EACd,GACA,GACA,GAC4B;CAC5B,IAAMC,IAAKC,EAAK,MAAM,KAChBC,oBAAU,IAAI,IAAY;CAEhC,OAAO;EACL,GAAGC;EACH,WAAW,GAAe,GAAsB;GAE9C,IADAA,EAAQ,WAAWC,GAAQC,CAAK,GAC5B,CAACJ,EAAK,WAAW;GACrB,IAAMK,IAAQH,EAAQ,QAAQC,EAAO,EAAE,GACjCG,IAAQN,EAAK,UAAUK,CAAK;GAElC,AADAE,EAAeL,GAASC,EAAO,IAAIG,CAAK,GACxCE,EAAUC,GAAUP,GAAkB;IACpC,IAAIC,EAAO;IACX,IAAIE;IACJ;IACA,QAAQL,EAAK;IACb,UAAUA,EAAK;IACf,UAAU;GACZ,CAAC;EACH;EACA,WAAW,GAAkB;GAC3B,IAAI,CAACA,EAAK,QAAQ;IAChB,EAAQ,WAAWU,CAAE;IACrB;GACF;GACA,IAAIT,EAAQ,IAAIS,CAAE,GAAG;GACrB,EAAQ,IAAIA,CAAE;GACd,IAAIC,UAAsB,CAAC,GACrBC,UAAqB;IACzB,AAAKX,EAAQ,OAAOS,CAAE,MACtBC,EAAQ,GACRT,EAAQ,WAAWQ,CAAE;GACvB,GACMG,IAAUX,EAAQ,QAAQQ,CAAE,GAC5BI,IAASN,EAAUC,GAAUP,GAAkB;IACnD;IACA,IAAIF,EAAK,OAAOa,CAAO;IACvB;IACA,QAAQb,EAAK;IACb,UAAUA,EAAK;IACf,UAAU;IACV,QAAQY;GACV,CAAC;GAED,IAAUH,EAAS,OAAO,MAAU;IAClC,CAAKM,EAAM,SAAS,YAAYA,EAAM,SAAS,gBAAgBA,EAAM,UAAU,OAAOD,EAAO,MAAIF,EAAO;GAC1G,CAAC;EACH;CACF;AACF"}
1
+ {"version":3,"file":"animateLifecycle.js","names":["animateLifecycle","ms","opts","leaving","adapter","object","index","final","start","setPoseInstant","tweenPose","animator","id","unwatch","target","home","remove","current","handle","event"],"sources":["../../../src/animation/wrappers/animateLifecycle.ts"],"sourcesContent":["import { tweenPose, type PoseAnimationAdapter } from '../poseHelpers';\nimport { setPoseInstant } from './instantPose';\nimport type { PoseDescriptor } from 'interactions/actions/resize/geometry';\nimport type { Animator, EasingSpec } from '@weasel-js/animator';\n\n/** How nodes enter and leave. `enterFrom` derives the pose a new node starts\n * at, given where it belongs; `exitTo` derives the pose a departing node\n * animates to before it is actually removed. Omit either to leave that\n * transition instant. */\nexport interface LifecycleAnimation<TPose> {\n /** Pose to animate the new object FROM at insert. */\n enterFrom?: (final: TPose) => TPose;\n /** Pose to animate the existing object TO at remove. */\n exitTo?: (current: TPose) => TPose;\n ms?: number;\n easing?: EasingSpec;\n geometry?: PoseDescriptor<TPose>;\n}\n\n/** The part of an adapter `animateLifecycle` reads and wraps. The adapter `sceneToAdapter` and\n * `useSceneAdapter` build is one. */\nexport interface LifecycleAdapter<TNode extends { id: string }, TPose> extends PoseAnimationAdapter<TPose> {\n insertNode(node: TNode, index?: number): void;\n removeNode(id: string): void;\n}\n\n/** Wrap an adapter so inserts and removals animate — the scene-graph\n * equivalent of CSS enter/leave transitions. The result is the adapter it\n * was given, with `insertNode` and `removeNode` replaced. */\nexport function animateLifecycle<\n TNode extends { id: string },\n TPose,\n A extends LifecycleAdapter<TNode, TPose> = LifecycleAdapter<TNode, TPose>,\n>(\n adapter: A & LifecycleAdapter<TNode, TPose>,\n animator: Animator,\n opts: LifecycleAnimation<TPose>,\n): A {\n const ms = opts.ms ?? 200;\n const leaving = new Set<string>();\n\n return {\n ...adapter,\n insertNode(object: TNode, index?: number): void {\n adapter.insertNode(object, index);\n if (!opts.enterFrom) return;\n const final = adapter.getPose(object.id);\n const start = opts.enterFrom(final);\n // A pose target shows the start pose itself; without one it has to be written.\n if (!adapter.poseTarget?.(object.id, opts.geometry)) setPoseInstant(adapter, object.id, start);\n tweenPose(animator, adapter, {\n id: object.id,\n from: start,\n to: final,\n ms,\n easing: opts.easing,\n geometry: opts.geometry,\n recordOp: false,\n });\n },\n removeNode(id: string): void {\n if (!opts.exitTo) {\n adapter.removeNode(id);\n return;\n }\n if (leaving.has(id)) return;\n leaving.add(id);\n let unwatch = (): void => {};\n const target = adapter.poseTarget?.(id, opts.geometry);\n const home = target?.committed();\n const remove = (): void => {\n if (!leaving.delete(id)) return;\n unwatch();\n // The exit pose was only for show: the node is removed as it stood, so undo restores that.\n if (target) target.commit(home as TPose);\n adapter.removeNode(id);\n };\n const current = adapter.getPose(id);\n const handle = tweenPose(animator, adapter, {\n id,\n to: opts.exitTo(current),\n ms,\n easing: opts.easing,\n geometry: opts.geometry,\n recordOp: false,\n onDone: remove,\n });\n // A canceled tween never calls onDone, and the node still has to go.\n unwatch = animator.watch((event) => {\n if ((event.type === 'cancel' || event.type === 'interrupt') && event.animation.id === handle.id) remove();\n });\n },\n } as A;\n}\n"],"mappings":";;;AA6BA,SAAgBA,EAKd,GACA,GACA,GACG;CACH,IAAMC,IAAKC,EAAK,MAAM,KAChBC,oBAAU,IAAI,IAAY;CAEhC,OAAO;EACL,GAAGC;EACH,WAAW,GAAe,GAAsB;GAE9C,IADAA,EAAQ,WAAWC,GAAQC,CAAK,GAC5B,CAACJ,EAAK,WAAW;GACrB,IAAMK,IAAQH,EAAQ,QAAQC,EAAO,EAAE,GACjCG,IAAQN,EAAK,UAAUK,CAAK;GAGlC,AADKH,EAAQ,aAAaC,EAAO,IAAIH,EAAK,QAAQ,KAAGO,EAAeL,GAASC,EAAO,IAAIG,CAAK,GAC7FE,EAAUC,GAAUP,GAAS;IAC3B,IAAIC,EAAO;IACX,MAAMG;IACN,IAAID;IACJ;IACA,QAAQL,EAAK;IACb,UAAUA,EAAK;IACf,UAAU;GACZ,CAAC;EACH;EACA,WAAW,GAAkB;GAC3B,IAAI,CAACA,EAAK,QAAQ;IAChB,EAAQ,WAAWU,CAAE;IACrB;GACF;GACA,IAAIT,EAAQ,IAAIS,CAAE,GAAG;GACrB,EAAQ,IAAIA,CAAE;GACd,IAAIC,UAAsB,CAAC,GACrBC,IAASV,EAAQ,aAAaQ,GAAIV,EAAK,QAAQ,GAC/Ca,IAAOD,GAAQ,UAAU,GACzBE,UAAqB;IACzB,AAAKb,EAAQ,OAAOS,CAAE,MACtBC,EAAQ,GAEJC,KAAQA,EAAO,OAAOC,CAAa,GACvCX,EAAQ,WAAWQ,CAAE;GACvB,GACMK,IAAUb,EAAQ,QAAQQ,CAAE,GAC5BM,IAASR,EAAUC,GAAUP,GAAS;IAC1C;IACA,IAAIF,EAAK,OAAOe,CAAO;IACvB;IACA,QAAQf,EAAK;IACb,UAAUA,EAAK;IACf,UAAU;IACV,QAAQc;GACV,CAAC;GAED,IAAUL,EAAS,OAAO,MAAU;IAClC,CAAKQ,EAAM,SAAS,YAAYA,EAAM,SAAS,gBAAgBA,EAAM,UAAU,OAAOD,EAAO,MAAIF,EAAO;GAC1G,CAAC;EACH;CACF;AACF"}
@@ -1,46 +1,46 @@
1
- import { springPose as e, tweenPose as t } from "../poseHelpers.js";
2
- import { instantPoseWrite as n } from "./instantPose.js";
1
+ import { poseKey as e, springPose as t, tweenPose as n } from "../poseHelpers.js";
2
+ import { instantPoseWrite as r } from "./instantPose.js";
3
3
  //#region src/animation/wrappers/animateOnSetPose.ts
4
- function r(r, i, a = {}) {
5
- let o = a.ms ?? 200, s = (e, t, n) => a.shouldAnimate ? !a.shouldAnimate(e, t, n) : !!(a.skipDuringGesture && a.gestureScope?.has(e));
4
+ function i(i, a, o = {}) {
5
+ let s = o.ms ?? 200, c = (e, t, n) => o.shouldAnimate ? !o.shouldAnimate(e, t, n) : !!(o.skipDuringGesture && o.gestureScope?.has(e));
6
6
  return {
7
- ...r,
8
- ...n(r),
9
- setPose(n, c) {
10
- let l = r.getPose(n);
11
- if (s(n, l, c)) {
12
- r.setPose(n, c);
7
+ ...i,
8
+ ...r(i),
9
+ setPose(r, l) {
10
+ let u = i.getPose(r);
11
+ if (c(r, u, l)) {
12
+ i.setPose(r, l);
13
13
  return;
14
14
  }
15
- if (i.isTicking()) {
16
- r.setPose(n, c);
15
+ if (a.isTicking()) {
16
+ i.setPose(r, l);
17
17
  return;
18
18
  }
19
- if (i.isActive("pose:" + n)) {
20
- i.cancelKey("pose:" + n), r.setPose(n, c);
19
+ if (!i.poseTarget?.(r, o.geometry) && a.isActive(e(r))) {
20
+ a.cancelKey(e(r)), i.setPose(r, l);
21
21
  return;
22
22
  }
23
- a.spring ? e(i, r, {
24
- id: n,
25
- to: c,
26
- preset: a.spring.preset,
27
- stiffness: a.spring.stiffness,
28
- damping: a.spring.damping,
29
- mass: a.spring.mass,
30
- geometry: a.geometry,
31
- opLabel: a.opLabel
32
- }) : t(i, r, {
33
- id: n,
34
- to: c,
35
- ms: o,
36
- easing: a.easing,
37
- geometry: a.geometry,
38
- opLabel: a.opLabel
23
+ o.spring ? t(a, i, {
24
+ id: r,
25
+ to: l,
26
+ preset: o.spring.preset,
27
+ stiffness: o.spring.stiffness,
28
+ damping: o.spring.damping,
29
+ mass: o.spring.mass,
30
+ geometry: o.geometry,
31
+ opLabel: o.opLabel
32
+ }) : n(a, i, {
33
+ id: r,
34
+ to: l,
35
+ ms: s,
36
+ easing: o.easing,
37
+ geometry: o.geometry,
38
+ opLabel: o.opLabel
39
39
  });
40
40
  }
41
41
  };
42
42
  }
43
43
  //#endregion
44
- export { r as animateOnSetPose };
44
+ export { i as animateOnSetPose };
45
45
 
46
46
  //# sourceMappingURL=animateOnSetPose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animateOnSetPose.js","names":["animateOnSetPose","ms","opts","skipPredicate","id","from","to","adapter","instantPoseWrite","pose","animator","springPose","tweenPose"],"sources":["../../../src/animation/wrappers/animateOnSetPose.ts"],"sourcesContent":["import { tweenPose, springPose } from '../poseHelpers';\nimport { instantPoseWrite } from './instantPose';\nimport type { PoseDescriptor } from 'interactions/actions/resize/geometry';\nimport type { SceneAdapter } from 'core/adapters/types';\nimport type { Animator, EasingSpec, SpringPresetName } from '../types';\n\n/** Options for `animateOnSetPose`. */\nexport interface AnimateOnSetPoseOptions<TPose> {\n /** Default: 200ms tween with easeOut. */\n ms?: number;\n easing?: EasingSpec;\n /** Use a spring instead of a duration tween. Mutually exclusive with ms/easing. */\n spring?: {\n preset?: SpringPresetName;\n stiffness?: number;\n damping?: number;\n mass?: number;\n };\n geometry?: PoseDescriptor<TPose>;\n /** Predicate: return false to skip animation and write through immediately. */\n shouldAnimate?: (id: string, from: TPose, to: TPose) => boolean;\n /** Convenience: when true, auto-skip animation if the id is currently being\n * manipulated by an active gesture. Implementation: see `gestureScope` —\n * the wrapper consults a shared \"in-flight ids\" Set if one is provided,\n * otherwise this option is a no-op (treat as `shouldAnimate` returning true).\n * Mutually exclusive with `shouldAnimate`. */\n skipDuringGesture?: boolean;\n /** Optional: a Set the kit (or app) populates with ids currently being\n * manipulated by a gesture. When `skipDuringGesture` is true and the id\n * is in this Set, the wrapper writes through immediately. */\n gestureScope?: ReadonlySet<string>;\n /** Op label for the recorded transform op. Default: `'animate'`. */\n opLabel?: string;\n}\n\n/**\n * Wrap an adapter so every `setPose` animates to the new pose instead of\n * jumping to it. Anything that moves a node — a layout strategy, an action, a\n * consumer's own code — is animated without knowing it, since the adapter is\n * the single write path.\n *\n * Poses written from inside another animation's tick, and (optionally) poses\n * written for a node currently under a gesture, are passed straight through:\n * animating those would fight whatever is already driving the node.\n *\n * Writing a node again while its glide is still running ends the glide: the\n * new pose is written at once and stands.\n */\nexport function animateOnSetPose<TNode extends { id: string }, TPose>(\n adapter: SceneAdapter<TNode, TPose>,\n animator: Animator,\n opts: AnimateOnSetPoseOptions<TPose> = {},\n): SceneAdapter<TNode, TPose> {\n const ms = opts.ms ?? 200;\n const skipPredicate = (id: string, from: TPose, to: TPose): boolean => {\n if (opts.shouldAnimate) return !opts.shouldAnimate(id, from, to);\n if (opts.skipDuringGesture && opts.gestureScope?.has(id)) return true;\n return false;\n };\n\n return {\n ...adapter,\n ...instantPoseWrite(adapter),\n setPose(id: string, pose: TPose): void {\n const from = adapter.getPose(id);\n if (skipPredicate(id, from, pose)) {\n adapter.setPose(id, pose);\n return;\n }\n // Re-entrant short-circuit (a): the caller IS another animation's tick\n // (momentum decay, in-flight tween, spring) writing setPose ~60×/sec.\n // Wrapping each call in a fresh 250ms tween fights the caller — the\n // new tween's t=0 sample writes back the previous `from`, undoing\n // this onTick — and when each wrap-tween settles, the very next\n // caller-tick spawns another, looping visibly forever (cards never\n // stop after a flick). Detect via animator.isTicking() and write\n // through.\n if (animator.isTicking()) {\n adapter.setPose(id, pose);\n return;\n }\n if (animator.isActive('pose:' + id)) {\n animator.cancelKey('pose:' + id);\n adapter.setPose(id, pose);\n return;\n }\n if (opts.spring) {\n springPose(animator, adapter as never, {\n id,\n to: pose,\n preset: opts.spring.preset,\n stiffness: opts.spring.stiffness,\n damping: opts.spring.damping,\n mass: opts.spring.mass,\n geometry: opts.geometry,\n opLabel: opts.opLabel,\n });\n } else {\n tweenPose(animator, adapter as never, {\n id,\n to: pose,\n ms,\n easing: opts.easing,\n geometry: opts.geometry,\n opLabel: opts.opLabel,\n });\n }\n },\n };\n}\n"],"mappings":";;;AAgDA,SAAgBA,EACd,GACA,GACA,IAAuC,CAAC,GACZ;CAC5B,IAAMC,IAAKC,EAAK,MAAM,KAChBC,KAAiB,GAAY,GAAa,MAC1CD,EAAK,gBAAsB,CAACA,EAAK,cAAcE,GAAIC,GAAMC,CAAE,IAC/D,GAAIJ,EAAK,qBAAqBA,EAAK,cAAc,IAAIE,CAAE;CAIzD,OAAO;EACL,GAAGG;EACH,GAAGC,EAAiBD,CAAO;EAC3B,QAAQ,GAAY,GAAmB;GACrC,IAAMF,IAAOE,EAAQ,QAAQH,CAAE;GAC/B,IAAID,EAAcC,GAAIC,GAAMI,CAAI,GAAG;IACjC,EAAQ,QAAQL,GAAIK,CAAI;IACxB;GACF;GASA,IAAIC,EAAS,UAAU,GAAG;IACxB,EAAQ,QAAQN,GAAIK,CAAI;IACxB;GACF;GACA,IAAIC,EAAS,SAAS,UAAUN,CAAE,GAAG;IAEnC,AADAM,EAAS,UAAU,UAAUN,CAAE,GAC/BG,EAAQ,QAAQH,GAAIK,CAAI;IACxB;GACF;GACA,AAAIP,EAAK,SACPS,EAAWD,GAAUH,GAAkB;IACrC;IACA,IAAIE;IACJ,QAAQP,EAAK,OAAO;IACpB,WAAWA,EAAK,OAAO;IACvB,SAASA,EAAK,OAAO;IACrB,MAAMA,EAAK,OAAO;IAClB,UAAUA,EAAK;IACf,SAASA,EAAK;GAChB,CAAC,IAEDU,EAAUF,GAAUH,GAAkB;IACpC;IACA,IAAIE;IACJ;IACA,QAAQP,EAAK;IACb,UAAUA,EAAK;IACf,SAASA,EAAK;GAChB,CAAC;EAEL;CACF;AACF"}
1
+ {"version":3,"file":"animateOnSetPose.js","names":["animateOnSetPose","ms","opts","skipPredicate","id","from","to","adapter","instantPoseWrite","pose","animator","poseKey","springPose","tweenPose"],"sources":["../../../src/animation/wrappers/animateOnSetPose.ts"],"sourcesContent":["import { poseKey, tweenPose, springPose, type PoseAnimationAdapter } from '../poseHelpers';\nimport { instantPoseWrite } from './instantPose';\nimport type { PoseDescriptor } from 'interactions/actions/resize/geometry';\nimport type { Animator, EasingSpec, SpringPresetName } from '@weasel-js/animator';\n\n/** Options for `animateOnSetPose`. */\nexport interface AnimateOnSetPoseOptions<TPose> {\n /** Default: 200ms tween with easeOut. */\n ms?: number;\n easing?: EasingSpec;\n /** Use a spring instead of a duration tween. Mutually exclusive with ms/easing. */\n spring?: {\n preset?: SpringPresetName;\n stiffness?: number;\n damping?: number;\n mass?: number;\n };\n geometry?: PoseDescriptor<TPose>;\n /** Predicate: return false to skip animation and write through immediately. */\n shouldAnimate?: (id: string, from: TPose, to: TPose) => boolean;\n /** When true, write through immediately for an id in `gestureScope`. A no-op\n * without `gestureScope`, and ignored when `shouldAnimate` is set. */\n skipDuringGesture?: boolean;\n /** The ids currently being manipulated by a gesture, for `skipDuringGesture`. */\n gestureScope?: ReadonlySet<string>;\n /** Op label for the recorded transform op. Default: `'animate'`. */\n opLabel?: string;\n}\n\n/**\n * Wrap an adapter so every `setPose` animates to the new pose instead of\n * jumping to it. The result is the adapter it was given, with that one method\n * replaced.\n *\n * Poses written from inside another animation's tick, and (optionally) poses\n * written for a node currently under a gesture, are passed straight through.\n *\n * Over a scene-backed adapter the document takes each pose as it is written\n * and only the node on screen glides; a store behind `createWrittenPoseTarget`\n * holds the pose on screen, and takes the written one as the glide ends. Writing a node again while it glides\n * bends the glide toward the new pose, or under `spring` carries its velocity\n * into the new one. Over an adapter with no `poseTarget`, a second write ends\n * the glide: the new pose is written at once and stands.\n */\nexport function animateOnSetPose<TPose, A extends PoseAnimationAdapter<TPose> = PoseAnimationAdapter<TPose>>(\n adapter: A & PoseAnimationAdapter<TPose>,\n animator: Animator,\n opts: AnimateOnSetPoseOptions<TPose> = {},\n): A {\n const ms = opts.ms ?? 200;\n const skipPredicate = (id: string, from: TPose, to: TPose): boolean => {\n if (opts.shouldAnimate) return !opts.shouldAnimate(id, from, to);\n if (opts.skipDuringGesture && opts.gestureScope?.has(id)) return true;\n return false;\n };\n\n return {\n ...adapter,\n ...instantPoseWrite(adapter),\n setPose(id: string, pose: TPose): void {\n const from = adapter.getPose(id);\n if (skipPredicate(id, from, pose)) {\n adapter.setPose(id, pose);\n return;\n }\n // The caller is another animation's tick writing setPose every frame.\n // Wrapping each call in a fresh tween fights it — the new tween's t=0\n // sample writes back the previous `from` — and never settles.\n if (animator.isTicking()) {\n adapter.setPose(id, pose);\n return;\n }\n // Without a pose target a second glide would fight the first, so the write ends it.\n if (!adapter.poseTarget?.(id, opts.geometry) && animator.isActive(poseKey(id))) {\n animator.cancelKey(poseKey(id));\n adapter.setPose(id, pose);\n return;\n }\n if (opts.spring) {\n springPose(animator, adapter, {\n id,\n to: pose,\n preset: opts.spring.preset,\n stiffness: opts.spring.stiffness,\n damping: opts.spring.damping,\n mass: opts.spring.mass,\n geometry: opts.geometry,\n opLabel: opts.opLabel,\n });\n } else {\n tweenPose(animator, adapter, {\n id,\n to: pose,\n ms,\n easing: opts.easing,\n geometry: opts.geometry,\n opLabel: opts.opLabel,\n });\n }\n },\n } as A;\n}\n"],"mappings":";;;AA4CA,SAAgBA,EACd,GACA,GACA,IAAuC,CAAC,GACrC;CACH,IAAMC,IAAKC,EAAK,MAAM,KAChBC,KAAiB,GAAY,GAAa,MAC1CD,EAAK,gBAAsB,CAACA,EAAK,cAAcE,GAAIC,GAAMC,CAAE,IAC/D,GAAIJ,EAAK,qBAAqBA,EAAK,cAAc,IAAIE,CAAE;CAIzD,OAAO;EACL,GAAGG;EACH,GAAGC,EAAiBD,CAAO;EAC3B,QAAQ,GAAY,GAAmB;GACrC,IAAMF,IAAOE,EAAQ,QAAQH,CAAE;GAC/B,IAAID,EAAcC,GAAIC,GAAMI,CAAI,GAAG;IACjC,EAAQ,QAAQL,GAAIK,CAAI;IACxB;GACF;GAIA,IAAIC,EAAS,UAAU,GAAG;IACxB,EAAQ,QAAQN,GAAIK,CAAI;IACxB;GACF;GAEA,IAAI,CAACF,EAAQ,aAAaH,GAAIF,EAAK,QAAQ,KAAKQ,EAAS,SAASC,EAAQP,CAAE,CAAC,GAAG;IAE9E,AADAM,EAAS,UAAUC,EAAQP,CAAE,CAAC,GAC9BG,EAAQ,QAAQH,GAAIK,CAAI;IACxB;GACF;GACA,AAAIP,EAAK,SACPU,EAAWF,GAAUH,GAAS;IAC5B;IACA,IAAIE;IACJ,QAAQP,EAAK,OAAO;IACpB,WAAWA,EAAK,OAAO;IACvB,SAASA,EAAK,OAAO;IACrB,MAAMA,EAAK,OAAO;IAClB,UAAUA,EAAK;IACf,SAASA,EAAK;GAChB,CAAC,IAEDW,EAAUH,GAAUH,GAAS;IAC3B;IACA,IAAIE;IACJ;IACA,QAAQP,EAAK;IACb,UAAUA,EAAK;IACf,SAASA,EAAK;GAChB,CAAC;EAEL;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"instantPose.js","names":["INSTANT","instantPoseWrite","setPoseInstant","inner","id","pose","instant","adapter"],"sources":["../../../src/animation/wrappers/instantPose.ts"],"sourcesContent":["import type { SceneAdapter } from 'core/adapters/types';\n\nconst INSTANT = Symbol('weasel.setPoseInstant');\n\ntype PoseWrite<TPose> = (id: string, pose: TPose) => void;\ntype WithInstant<TPose> = { [INSTANT]?: PoseWrite<TPose> };\n\n/** The member an adapter wrapper that animates `setPose` spreads into what it\n * returns, so the write that does not animate survives any wrapper above it\n * that copies the adapter. */\nexport function instantPoseWrite<TNode extends { id: string }, TPose>(\n inner: SceneAdapter<TNode, TPose>,\n): object {\n return { [INSTANT]: (id: string, pose: TPose) => setPoseInstant(inner, id, pose) };\n}\n\n/** Write a pose at once, past every wrapper that would animate it. */\nexport function setPoseInstant<TNode extends { id: string }, TPose>(\n adapter: SceneAdapter<TNode, TPose>,\n id: string,\n pose: TPose,\n): void {\n const instant = (adapter as WithInstant<TPose>)[INSTANT];\n if (instant) instant(id, pose);\n else adapter.setPose(id, pose);\n}\n"],"mappings":";AAEA,IAAMA,IAAU,OAAO,uBAAuB;AAQ9C,SAAgBC,EACd,GACQ;CACR,OAAO,GAAGD,KAAW,GAAY,MAAgBE,EAAeC,GAAOC,GAAIC,CAAI,EAAE;AACnF;AAGA,SAAgBH,EACd,GACA,GACA,GACM;CACN,IAAMI,IAAWC,EAA+BP;CAChD,AAAIM,IAASA,EAAQF,GAAIC,CAAI,IACxBE,EAAQ,QAAQH,GAAIC,CAAI;AAC/B"}
1
+ {"version":3,"file":"instantPose.js","names":["INSTANT","instantPoseWrite","setPoseInstant","inner","id","pose","instant","adapter"],"sources":["../../../src/animation/wrappers/instantPose.ts"],"sourcesContent":["const INSTANT = Symbol('weasel.setPoseInstant');\n\ntype PoseWrite<TPose> = (id: string, pose: TPose) => void;\ntype WithInstant<TPose> = { [INSTANT]?: PoseWrite<TPose> };\n\n/** The member an adapter wrapper that animates `setPose` spreads into what it\n * returns, so the write that does not animate survives any wrapper above it\n * that copies the adapter. */\nexport function instantPoseWrite<TPose>(inner: { setPose: PoseWrite<TPose> }): object {\n return { [INSTANT]: (id: string, pose: TPose) => setPoseInstant(inner, id, pose) };\n}\n\n/** Write a pose at once, past every wrapper that would animate it. */\nexport function setPoseInstant<TPose>(adapter: { setPose: PoseWrite<TPose> }, id: string, pose: TPose): void {\n const instant = (adapter as WithInstant<TPose>)[INSTANT];\n if (instant) instant(id, pose);\n else adapter.setPose(id, pose);\n}\n"],"mappings":";AAAA,IAAMA,IAAU,OAAO,uBAAuB;AAQ9C,SAAgBC,EAAwB,GAA8C;CACpF,OAAO,GAAGD,KAAW,GAAY,MAAgBE,EAAeC,GAAOC,GAAIC,CAAI,EAAE;AACnF;AAGA,SAAgBH,EAAsB,GAAwC,GAAY,GAAmB;CAC3G,IAAMI,IAAWC,EAA+BP;CAChD,AAAIM,IAASA,EAAQF,GAAIC,CAAI,IACxBE,EAAQ,QAAQH,GAAIC,CAAI;AAC/B"}
@@ -0,0 +1,33 @@
1
+ import { liveAxes as e } from "./poseTarget.js";
2
+ import { createTarget as t } from "@weasel-js/animator";
3
+ //#region src/animation/writtenPoseTarget.ts
4
+ function n(n) {
5
+ let r = n.read();
6
+ if (r === void 0) return null;
7
+ let i = r, a = null, o = () => a === null ? (i = n.read() ?? i, i) : a, s = e(n.descriptor, o);
8
+ if (!s) return null;
9
+ let c = t({
10
+ axes: s,
11
+ get: o,
12
+ set(e) {
13
+ if (c.active) {
14
+ a = e;
15
+ return;
16
+ }
17
+ a = null, n.write(e);
18
+ },
19
+ show(e) {
20
+ if (c.active) {
21
+ a === null && (a = o()), n.write(e);
22
+ return;
23
+ }
24
+ let t = a;
25
+ a = null, t !== null && n.write(t), n.onRest?.();
26
+ }
27
+ });
28
+ return c;
29
+ }
30
+ //#endregion
31
+ export { n as createWrittenPoseTarget };
32
+
33
+ //# sourceMappingURL=writtenPoseTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writtenPoseTarget.js","names":["createWrittenPoseTarget","first","opts","last","committed","get","axes","liveAxes","target","createTarget","pose","landed"],"sources":["../../src/animation/writtenPoseTarget.ts"],"sourcesContent":["import type { PoseDescriptor } from '../core/geometry/poseDescriptor';\nimport { liveAxes } from './poseTarget';\nimport { createTarget, type Target } from '@weasel-js/animator';\n\n/** What {@link createWrittenPoseTarget} takes. */\nexport interface WrittenPoseTargetOptions<TPose> {\n /** The pose the store holds for the node, or undefined once the node is gone. */\n read(): TPose | undefined;\n /** Writes the node's pose to the store. */\n write(pose: TPose): void;\n /** Supplies the pose's axes, as for `createPoseTarget`. */\n descriptor?: PoseDescriptor<TPose>;\n /** Called each time the node comes to rest. */\n onRest?(): void;\n}\n\n/**\n * A {@link Target} over a pose whose store holds one value and has no overrides table to show a\n * moving pose through: an array in React state, a plain record. While the node moves, the\n * committed pose is kept here and the store is written the pose on screen each frame; at rest\n * the store holds the committed pose again.\n *\n * Something else writing the store mid-flight is not seen, and the next frame writes over it.\n * Null for a node the store does not hold, or a pose with no axes.\n */\nexport function createWrittenPoseTarget<TPose>(opts: WrittenPoseTargetOptions<TPose>): Target<TPose> | null {\n const first = opts.read();\n if (first === undefined) return null;\n let last = first;\n /** The committed pose while it is apart from the store's; null while the store holds it. */\n let committed: TPose | null = null;\n const get = (): TPose => {\n if (committed !== null) return committed;\n last = opts.read() ?? last;\n return last;\n };\n const axes = liveAxes(opts.descriptor, get);\n if (!axes) return null;\n const target: Target<TPose> = createTarget<TPose>({\n axes,\n get,\n set(pose) {\n if (target.active) {\n committed = pose;\n return;\n }\n committed = null;\n opts.write(pose);\n },\n show(pose) {\n if (target.active) {\n if (committed === null) committed = get();\n opts.write(pose);\n return;\n }\n const landed = committed;\n committed = null;\n if (landed !== null) opts.write(landed);\n opts.onRest?.();\n },\n });\n return target;\n}\n"],"mappings":";;;AAyBA,SAAgBA,EAA+B,GAA6D;CAC1G,IAAMC,IAAQC,EAAK,KAAK;CACxB,IAAID,MAAU,KAAA,GAAW,OAAO;CAChC,IAAIE,IAAOF,GAEPG,IAA0B,MACxBC,UACAD,MAAc,QAClB,IAAOF,EAAK,KAAK,KAAKC,GACfA,KAFwBC,GAI3BE,IAAOC,EAASL,EAAK,YAAYG,CAAG;CAC1C,IAAI,CAACC,GAAM,OAAO;CAClB,IAAME,IAAwBC,EAAoB;EAChD;EACA;EACA,IAAI,GAAM;GACR,IAAID,EAAO,QAAQ;IACjB,IAAYE;IACZ;GACF;GAEA,AADA,IAAY,MACZR,EAAK,MAAMQ,CAAI;EACjB;EACA,KAAK,GAAM;GACT,IAAIF,EAAO,QAAQ;IAEjB,AADIJ,MAAc,SAAM,IAAYC,EAAI,IACxCH,EAAK,MAAMQ,CAAI;IACf;GACF;GACA,IAAMC,IAASP;GAGf,AAFA,IAAY,MACRO,MAAW,QAAMT,EAAK,MAAMS,CAAM,GACtCT,EAAK,SAAS;EAChB;CACF,CAAC;CACD,OAAOM;AACT"}
@@ -0,0 +1,27 @@
1
+ import { Path } from '@weasel-js/geom';
2
+ import { P as PoseDescriptor } from './poseDescriptor-Bqk-11Rl.js';
3
+
4
+ /** True for Path-shaped poses (`{kind: 'polygon' | 'rect'}`). Useful for
5
+ * callers that need to fork between `pathPoseDescriptor` and
6
+ * `RECT_POSE_DESCRIPTOR` without forcing the consumer to wire
7
+ * `poseDescriptor` explicitly. */
8
+ declare function isPathLike(p: unknown): p is Path;
9
+ /** True for a pose with numeric top-level `x`/`y`/`width`/`height` — the only
10
+ * shape the rect descriptor and the kit's built-in painters can read. */
11
+ declare function isRectPose(p: unknown): p is {
12
+ x: number;
13
+ y: number;
14
+ width: number;
15
+ height: number;
16
+ rotation?: number;
17
+ };
18
+ /** Per-call dispatch: if the pose looks like a Path, route to
19
+ * `pathPoseDescriptor`; otherwise treat as a plain rect pose. Avoids forcing
20
+ * demos with Path TPose to wire `poseDescriptor={pathPoseDescriptor}`
21
+ * explicitly. `getRotation` surfaces a `pose.rotation` field on non-Path poses
22
+ * so demos using rect-with-rotation shapes (e.g. `RotatedPose`) don't have to
23
+ * wire `poseDescriptor={ROTATED_POSE_DESCRIPTOR}` just to get rotated
24
+ * selection chrome and rotation-aware corner hit-tests. */
25
+ declare const AUTO_POSE_DESCRIPTOR: PoseDescriptor<unknown>;
26
+
27
+ export { AUTO_POSE_DESCRIPTOR as A, isRectPose as a, isPathLike as i };
@@ -0,0 +1,32 @@
1
+ import { depsUnchanged as e, drawLayers as t, drawOneLayer as n, isLayerPainted as r, isLayerVisible as i, paintedLayers as a, subscribeToSources as o } from "../core/layers/render.js";
2
+ import { dlog as s, dwarn as c, isDebugEnabled as l } from "../debug/flag.js";
3
+ import { insertPreviewExtent as u } from "../canvas/insertPreviewExtent.js";
4
+ import { isOverChildren as d, overChildren as f, splitOverChildren as p } from "../canvas/overChildren.js";
5
+ import { DEFAULT_INK as m, findNodeShape as h, findShapeBounds as g, findShapeInk as _, findShapeSilhouette as v, getNodeShapes as y, registerNodeShape as b, shapeCoversPoint as x } from "../canvas/NodeShape.js";
6
+ import { sceneToAdapter as S } from "../canvas/sceneAdapter.js";
7
+ import { defaultDrawOne as C, defaultPaintBounds as w } from "../canvas/defaultDrawOne.js";
8
+ import { DEFAULT_DEBUG_STROKES as T, DEFAULT_DEBUG_THEME as E } from "../debug/defaultTheme.js";
9
+ import { buildDebugOverlayCommands as D, createDebugOverlayLayer as O } from "../debug/createDebugOverlayLayer.js";
10
+ import { parseDebugFlags as k } from "../debug/parseDebugFlags.js";
11
+ import { createDebugSink as A } from "../debug/createDebugSink.js";
12
+ import { registerContentHandler as j } from "../features/ingestion/contentHandlers.js";
13
+ import { hostAnchorCss as M, hostAnchorRect as N } from "../canvas/hostAnchor.js";
14
+ import { useHostAnchor as P } from "../canvas/useHostAnchor.js";
15
+ import { CursorCoordsHud as F } from "../canvas/CursorCoordsHud.js";
16
+ import { PickHud as I } from "../canvas/PickHud.js";
17
+ import { DEFAULT_HANDLE_SIZE as L } from "../canvas/SceneCanvas/props.js";
18
+ import { createNodeRouting as R } from "../core/scene/NodeRouting.js";
19
+ import { defaultNodeRouting as z, inferredNodeRouting as B } from "../canvas/SceneCanvas/defaultNodeRouting.js";
20
+ import { resolveOverlays as V } from "../interactions/actions/resolveOverlays.js";
21
+ import { flattenPreviews as H, resolvePreviews as U } from "../interactions/actions/resolvePreviews.js";
22
+ import { useSceneAdapter as W } from "../canvas/useSceneAdapter.js";
23
+ import { SceneCanvas as G } from "../canvas/SceneCanvas.js";
24
+ import { createNodeProperties as K } from "../core/scene/NodeProperties.js";
25
+ import { defaultNodeProperties as q, inferredNodeProperties as J, rotationDegreesUnit as Y } from "../canvas/SceneCanvas/defaultNodeProperties.js";
26
+ import { kitTextHandler as X } from "../features/ingestion/textHandler.js";
27
+ import { openFilePicker as Z } from "../features/ingestion/openFilePicker.js";
28
+ import { WeaselProvider as Q } from "../WeaselProvider.js";
29
+ import { modeDecorationLayer as $, workspaceTintLayer as ee } from "../features/modes/modeLayers.js";
30
+ import { createChildrenLayer as te } from "../core/layers/children.js";
31
+ import { getImageBitmap as ne, imageStatus as re, isVectorImageSrc as ie, releaseImage as ae, retryImage as oe, setImageCacheBudget as se, subscribeImageReady as ce } from "@weasel-js/renderer";
32
+ export { F as CursorCoordsHud, T as DEFAULT_DEBUG_STROKES, E as DEFAULT_DEBUG_THEME, L as DEFAULT_HANDLE_SIZE, m as DEFAULT_INK, I as PickHud, G as SceneCanvas, Q as WeaselProvider, D as buildDebugOverlayCommands, te as createChildrenLayer, O as createDebugOverlayLayer, A as createDebugSink, K as createNodeProperties, R as createNodeRouting, C as defaultDrawOne, q as defaultNodeProperties, z as defaultNodeRouting, w as defaultPaintBounds, e as depsUnchanged, s as dlog, t as drawLayers, n as drawOneLayer, c as dwarn, h as findNodeShape, g as findShapeBounds, _ as findShapeInk, v as findShapeSilhouette, H as flattenPreviews, ne as getImageBitmap, y as getNodeShapes, M as hostAnchorCss, N as hostAnchorRect, re as imageStatus, J as inferredNodeProperties, B as inferredNodeRouting, u as insertPreviewExtent, l as isDebugEnabled, r as isLayerPainted, i as isLayerVisible, d as isOverChildren, ie as isVectorImageSrc, X as kitTextHandler, $ as modeDecorationLayer, Z as openFilePicker, f as overChildren, a as paintedLayers, k as parseDebugFlags, j as registerContentHandler, b as registerNodeShape, ae as releaseImage, V as resolveOverlays, U as resolvePreviews, oe as retryImage, Y as rotationDegreesUnit, S as sceneToAdapter, se as setImageCacheBudget, x as shapeCoversPoint, p as splitOverChildren, ce as subscribeImageReady, o as subscribeToSources, P as useHostAnchor, W as useSceneAdapter, ee as workspaceTintLayer };
@@ -4,13 +4,13 @@ import { createCornerResizeAffordance as i } from "../affordances/cornerResize.j
4
4
  import { createRotationAffordance as a } from "../affordances/rotationHandle.js";
5
5
  import { PATH_ANCHOR_CHROME_ID as o, createPathAnchorAffordances as s } from "../affordances/pathAnchors.js";
6
6
  import { actionIs as c, always as l, and as u, canHover as d, capabilityAll as f, capabilityIn as p, capabilityIs as m, capabilityNot as h, coarsePointer as g, cond as _, focused as v, gesturing as y, hovering as b, hoveringSelected as x, modeIn as S, modeIs as C, modeNot as w, modifierHeld as T, multiActive as E, never as D, not as O, or as k, selectionAtLeast as A, selectionEmpty as j, selectionIs as M, when as N, zoomAtLeast as P } from "../features/chrome-caps/conditions.js";
7
- import { defaultVisibilityRules as F } from "../features/chrome-caps/defaults.js";
8
- import { resolveVisibility as I } from "../features/chrome-caps/resolve.js";
9
- import { buildChromeCtx as L } from "../features/chrome-caps/buildChromeCtx.js";
10
- import { useHoverTracking as R } from "../features/chrome-caps/useHoverTracking.js";
11
- import { ALWAYS as z, DEFAULT_ALLOWED_CAPABILITIES as B, NEVER as V, buildRuleCtx as H, describeRule as U, evaluate as W } from "../features/chrome-caps/index.js";
12
- import { SelectionContextProvider as G, SelectionContextProviderIfRoot as K, usePublishSelection as q, useSelectionContext as J } from "../features/selection/SelectionContext.js";
13
- import { composeSelectionPose as Y, createSelectionHandlesLayer as X, createSelectionOutlineLayer as Z, createSelectionOverlayLayer as Q } from "../features/selection/overlay.js";
14
- import { composeAffordanceLayer as $ } from "../affordances/composeAffordanceLayer.js";
15
- import { ANGLE_RADIANS as ee, IMPERIAL_INCHES as te, METRIC_MM as ne, PIXELS as re, formatUnit as ie, resolveUnit as ae, unitScale as oe } from "@weasel-js/quantity";
16
- export { z as ALWAYS, ee as ANGLE_RADIANS, B as DEFAULT_ALLOWED_CAPABILITIES, te as IMPERIAL_INCHES, ne as METRIC_MM, V as NEVER, o as PATH_ANCHOR_CHROME_ID, re as PIXELS, G as SelectionContextProvider, K as SelectionContextProviderIfRoot, c as actionIs, l as always, u as and, t as annulusSemiAxes, L as buildChromeCtx, H as buildRuleCtx, d as canHover, f as capabilityAll, p as capabilityIn, m as capabilityIs, h as capabilityNot, g as coarsePointer, $ as composeAffordanceLayer, Y as composeSelectionPose, _ as cond, i as createCornerResizeAffordance, s as createPathAnchorAffordances, a as createRotationAffordance, X as createSelectionHandlesLayer, Z as createSelectionOutlineLayer, Q as createSelectionOverlayLayer, F as defaultVisibilityRules, U as describeRule, W as evaluate, v as focused, ie as formatUnit, y as gesturing, n as hitAffordanceRegions, b as hovering, x as hoveringSelected, S as modeIn, C as modeIs, w as modeNot, T as modifierHeld, E as multiActive, D as never, O as not, k as or, r as pointRegionFrame, ae as resolveUnit, I as resolveVisibility, A as selectionAtLeast, j as selectionEmpty, M as selectionIs, oe as unitScale, R as useHoverTracking, q as usePublishSelection, e as useSelection, J as useSelectionContext, N as when, P as zoomAtLeast };
7
+ import { composeSelectionPose as F, createSelectionHandlesLayer as I, createSelectionOutlineLayer as L, createSelectionOverlayLayer as R } from "../features/selection/overlay.js";
8
+ import { defaultVisibilityRules as z } from "../features/chrome-caps/defaults.js";
9
+ import { resolveVisibility as B } from "../features/chrome-caps/resolve.js";
10
+ import { buildChromeCtx as V } from "../features/chrome-caps/buildChromeCtx.js";
11
+ import { useHoverTracking as H } from "../features/chrome-caps/useHoverTracking.js";
12
+ import { ALWAYS as U, DEFAULT_ALLOWED_CAPABILITIES as W, NEVER as G, buildRuleCtx as K, describeRule as q, evaluate as J } from "../features/chrome-caps/index.js";
13
+ import { composeAffordanceLayer as Y } from "../affordances/composeAffordanceLayer.js";
14
+ import { SelectionContextProvider as X, SelectionContextProviderIfRoot as Z, usePublishSelection as Q, useSelectionContext as $ } from "@weasel-js/routing/react";
15
+ import { ANGLE_RADIANS as ee, IMPERIAL_INCHES as te, METRIC_MM as ne, PIXELS as re, axisUnits as ie, formatAxes as ae, formatScoped as oe, formatUnit as se, fromRoot as ce, parseUnitExpr as le, resolveAxes as ue, resolveScoped as de, resolveUnit as fe, resolveUnitExpr as pe, scopesOf as me, toRoot as he, unitScale as ge } from "@weasel-js/quantity";
16
+ export { U as ALWAYS, ee as ANGLE_RADIANS, W as DEFAULT_ALLOWED_CAPABILITIES, te as IMPERIAL_INCHES, ne as METRIC_MM, G as NEVER, o as PATH_ANCHOR_CHROME_ID, re as PIXELS, X as SelectionContextProvider, Z as SelectionContextProviderIfRoot, c as actionIs, l as always, u as and, t as annulusSemiAxes, ie as axisUnits, V as buildChromeCtx, K as buildRuleCtx, d as canHover, f as capabilityAll, p as capabilityIn, m as capabilityIs, h as capabilityNot, g as coarsePointer, Y as composeAffordanceLayer, F as composeSelectionPose, _ as cond, i as createCornerResizeAffordance, s as createPathAnchorAffordances, a as createRotationAffordance, I as createSelectionHandlesLayer, L as createSelectionOutlineLayer, R as createSelectionOverlayLayer, z as defaultVisibilityRules, q as describeRule, J as evaluate, v as focused, ae as formatAxes, oe as formatScoped, se as formatUnit, ce as fromRoot, y as gesturing, n as hitAffordanceRegions, b as hovering, x as hoveringSelected, S as modeIn, C as modeIs, w as modeNot, T as modifierHeld, E as multiActive, D as never, O as not, k as or, le as parseUnitExpr, r as pointRegionFrame, ue as resolveAxes, de as resolveScoped, fe as resolveUnit, pe as resolveUnitExpr, B as resolveVisibility, me as scopesOf, A as selectionAtLeast, j as selectionEmpty, M as selectionIs, he as toRoot, ge as unitScale, H as useHoverTracking, Q as usePublishSelection, e as useSelection, $ as useSelectionContext, N as when, P as zoomAtLeast };
@@ -1,19 +1,18 @@
1
1
  import { releaseCanvasRenderer as e } from "../canvas/canvasRenderer.js";
2
2
  import { buildSceneViewCommands as t, renderSceneToCanvas as n } from "../canvas/sceneViewRender.js";
3
- import { PointerContextProvider as r, createPointerStore as i, usePointerContext as a, usePointerPosition as o } from "../features/pointer/PointerContext.js";
4
- import { PointerProviderIfRoot as s } from "../canvas/SceneCanvas/PointerProviderIfRoot.js";
5
- import { FALLBACK_FIT_VIEW as c, computeFitView as l, computeIndicatorCommand as u } from "../canvas/minimapMath.js";
6
- import { forEachCoalesced as d, getStylusData as f, pressureToWidth as p } from "../core/stylus/stylus.js";
7
- import { usePointerStylus as m } from "../core/stylus/usePointerStylus.js";
8
- import { createKeyState as h } from "../input/keyState.js";
9
- import { useKeyState as g } from "../input/useKeyState.js";
10
- import { useKeyModifiers as _ } from "../input/useKeyModifiers.js";
11
- import { LONG_PRESS_FEEDBACK_ID as v, createLongPressFeedbackContribution as y } from "../features/longPress/longPressFeedback.js";
12
- import { renderNeeds as b } from "../canvas/renderNeeds.js";
13
- import { createRasterSession as x, planPixelRender as S, renderSceneToPixels as C, warmRender as w } from "../canvas/renderSceneToPixels.js";
14
- import { debugSnapshotArgs as T, renderDebugSnapshot as E } from "../canvas/renderDebugSnapshot.js";
15
- import { rasterToPng as D } from "../canvas/rasterToPng.js";
16
- import { ActionsProviderIfRoot as O } from "../canvas/SceneCanvas/ActionsProviderIfRoot.js";
17
- import { DepRegistryProviderIfRoot as k } from "../canvas/SceneCanvas/DepRegistryProviderIfRoot.js";
18
- import { LONG_PRESS_MS as A, activatesFocusedControl as j, createLongPressStore as M, historyKey as N, isEditableTarget as P, matchesKeyBinding as F } from "@weasel-js/routing";
19
- export { O as ActionsProviderIfRoot, k as DepRegistryProviderIfRoot, c as FALLBACK_FIT_VIEW, v as LONG_PRESS_FEEDBACK_ID, A as LONG_PRESS_MS, r as PointerContextProvider, s as PointerProviderIfRoot, j as activatesFocusedControl, t as buildSceneViewCommands, l as computeFitView, u as computeIndicatorCommand, h as createKeyState, y as createLongPressFeedbackContribution, M as createLongPressStore, i as createPointerStore, x as createRasterSession, T as debugSnapshotArgs, d as forEachCoalesced, f as getStylusData, N as historyKey, P as isEditableTarget, F as matchesKeyBinding, S as planPixelRender, p as pressureToWidth, D as rasterToPng, e as releaseCanvasRenderer, E as renderDebugSnapshot, b as renderNeeds, n as renderSceneToCanvas, C as renderSceneToPixels, _ as useKeyModifiers, g as useKeyState, a as usePointerContext, o as usePointerPosition, m as usePointerStylus, w as warmRender };
3
+ import { forEachCoalesced as r, getStylusData as i, pressureToWidth as a } from "../core/stylus/stylus.js";
4
+ import { usePointerStylus as o } from "../core/stylus/usePointerStylus.js";
5
+ import { createKeyState as s } from "../input/keyState.js";
6
+ import { useKeyState as c } from "../input/useKeyState.js";
7
+ import { useKeyModifiers as l } from "../input/useKeyModifiers.js";
8
+ import { LONG_PRESS_FEEDBACK_ID as u, createLongPressFeedbackContribution as d } from "../features/longPress/longPressFeedback.js";
9
+ import { renderNeeds as f } from "../canvas/renderNeeds.js";
10
+ import { createRasterSession as p, planPixelRender as m, renderSceneToPixels as h, warmRender as g } from "../canvas/renderSceneToPixels.js";
11
+ import { debugSnapshotArgs as _, renderDebugSnapshot as v } from "../canvas/renderDebugSnapshot.js";
12
+ import { rasterToPng as y } from "../canvas/rasterToPng.js";
13
+ import { PointerProviderIfRoot as b } from "../canvas/SceneCanvas/PointerProviderIfRoot.js";
14
+ import { ActionsProviderIfRoot as x } from "../canvas/SceneCanvas/ActionsProviderIfRoot.js";
15
+ import { DepRegistryProviderIfRoot as S } from "../canvas/SceneCanvas/DepRegistryProviderIfRoot.js";
16
+ import { LONG_PRESS_MS as C, activatesFocusedControl as w, createLongPressStore as T, focusedControlOwnsKey as E, historyKey as D, isEditableTarget as O, matchesKeyBinding as k } from "@weasel-js/routing";
17
+ import { PointerContextProvider as A, createPointerStore as j, usePointerContext as M, usePointerPosition as N } from "@weasel-js/routing/react";
18
+ export { x as ActionsProviderIfRoot, S as DepRegistryProviderIfRoot, u as LONG_PRESS_FEEDBACK_ID, C as LONG_PRESS_MS, A as PointerContextProvider, b as PointerProviderIfRoot, w as activatesFocusedControl, t as buildSceneViewCommands, s as createKeyState, d as createLongPressFeedbackContribution, T as createLongPressStore, j as createPointerStore, p as createRasterSession, _ as debugSnapshotArgs, E as focusedControlOwnsKey, r as forEachCoalesced, i as getStylusData, D as historyKey, O as isEditableTarget, k as matchesKeyBinding, m as planPixelRender, a as pressureToWidth, y as rasterToPng, e as releaseCanvasRenderer, v as renderDebugSnapshot, f as renderNeeds, n as renderSceneToCanvas, h as renderSceneToPixels, l as useKeyModifiers, c as useKeyState, M as usePointerContext, N as usePointerPosition, o as usePointerStylus, g as warmRender };