@weasel-js/core 1.10.1 → 1.11.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 (1501) hide show
  1. package/CHANGELOG.md +1014 -0
  2. package/README.md +16 -15
  3. package/dist/WeaselProvider.js +25 -9
  4. package/dist/WeaselProvider.js.map +1 -1
  5. package/dist/affordances/composeAffordanceLayer.js +217 -140
  6. package/dist/affordances/composeAffordanceLayer.js.map +1 -1
  7. package/dist/affordances/cornerResize.js +92 -50
  8. package/dist/affordances/cornerResize.js.map +1 -1
  9. package/dist/affordances/hitAffordanceRegions.js +147 -84
  10. package/dist/affordances/hitAffordanceRegions.js.map +1 -1
  11. package/dist/affordances/pathAnchors.js +140 -65
  12. package/dist/affordances/pathAnchors.js.map +1 -1
  13. package/dist/affordances/rotateCursor.js +10 -4
  14. package/dist/affordances/rotateCursor.js.map +1 -1
  15. package/dist/affordances/rotationHandle.js +83 -60
  16. package/dist/affordances/rotationHandle.js.map +1 -1
  17. package/dist/animation/behaviors/coast.js +20 -14
  18. package/dist/animation/behaviors/coast.js.map +1 -1
  19. package/dist/animation/behaviors/coastByWrite.js +98 -70
  20. package/dist/animation/behaviors/coastByWrite.js.map +1 -1
  21. package/dist/animation/behaviors/coastOnTargets.js +115 -67
  22. package/dist/animation/behaviors/coastOnTargets.js.map +1 -1
  23. package/dist/animation/behaviors/momentum.js +88 -53
  24. package/dist/animation/behaviors/momentum.js.map +1 -1
  25. package/dist/animation/clipTargets.js +14 -7
  26. package/dist/animation/clipTargets.js.map +1 -1
  27. package/dist/animation/departures.js +116 -0
  28. package/dist/animation/departures.js.map +1 -0
  29. package/dist/animation/index.js +18 -15
  30. package/dist/animation/poseHelpers.js +147 -107
  31. package/dist/animation/poseHelpers.js.map +1 -1
  32. package/dist/animation/poseTarget.js +158 -85
  33. package/dist/animation/poseTarget.js.map +1 -1
  34. package/dist/animation/poseTransition.js +64 -0
  35. package/dist/animation/poseTransition.js.map +1 -0
  36. package/dist/animation/reflow.js +208 -120
  37. package/dist/animation/reflow.js.map +1 -1
  38. package/dist/animation/rewind.js +76 -45
  39. package/dist/animation/rewind.js.map +1 -1
  40. package/dist/animation/rig/bindRig.js +135 -82
  41. package/dist/animation/rig/bindRig.js.map +1 -1
  42. package/dist/animation/rig/rigNode.js +120 -75
  43. package/dist/animation/rig/rigNode.js.map +1 -1
  44. package/dist/animation/rig/rigSeat.js +61 -41
  45. package/dist/animation/rig/rigSeat.js.map +1 -1
  46. package/dist/animation/rig/skinBinding.js +57 -45
  47. package/dist/animation/rig/skinBinding.js.map +1 -1
  48. package/dist/animation/rig/useRig.js +44 -30
  49. package/dist/animation/rig/useRig.js.map +1 -1
  50. package/dist/animation/wrappers/animateLifecycle.js +51 -35
  51. package/dist/animation/wrappers/animateLifecycle.js.map +1 -1
  52. package/dist/animation/wrappers/animateOnSetPose.js +55 -32
  53. package/dist/animation/wrappers/animateOnSetPose.js.map +1 -1
  54. package/dist/animation/wrappers/instantPose.js +13 -8
  55. package/dist/animation/wrappers/instantPose.js.map +1 -1
  56. package/dist/animation/writtenPoseTarget.js +44 -22
  57. package/dist/animation/writtenPoseTarget.js.map +1 -1
  58. package/dist/{autoPoseDescriptor-DHg5KqaJ.d.ts → autoPoseDescriptor-CZ1eXbzY.d.ts} +1 -1
  59. package/dist/barrel/canvas.js +45 -32
  60. package/dist/barrel/chrome.js +19 -16
  61. package/dist/barrel/icons.js +6 -0
  62. package/dist/barrel/input.js +19 -18
  63. package/dist/barrel/interactions.js +41 -39
  64. package/dist/barrel/paint.js +12 -11
  65. package/dist/barrel/paths.js +39 -13
  66. package/dist/barrel/renderer.js +25 -14
  67. package/dist/barrel/routing.js +64 -58
  68. package/dist/barrel/scene.js +51 -37
  69. package/dist/barrel/text.js +10 -9
  70. package/dist/barrel/viewport.js +48 -45
  71. package/dist/canvas/Canvas.js +191 -306
  72. package/dist/canvas/Canvas.js.map +1 -1
  73. package/dist/canvas/CanvasView.js +273 -199
  74. package/dist/canvas/CanvasView.js.map +1 -1
  75. package/dist/canvas/CursorCoordsHud.js +103 -64
  76. package/dist/canvas/CursorCoordsHud.js.map +1 -1
  77. package/dist/canvas/DrawCanvas.js +68 -41
  78. package/dist/canvas/DrawCanvas.js.map +1 -1
  79. package/dist/canvas/LeanSceneCanvas.js +23 -0
  80. package/dist/canvas/LeanSceneCanvas.js.map +1 -0
  81. package/dist/canvas/ModalityHud.js +58 -43
  82. package/dist/canvas/ModalityHud.js.map +1 -1
  83. package/dist/canvas/NodeShape.js +137 -60
  84. package/dist/canvas/NodeShape.js.map +1 -1
  85. package/dist/canvas/PickHud.js +77 -59
  86. package/dist/canvas/PickHud.js.map +1 -1
  87. package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js +9 -6
  88. package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js.map +1 -1
  89. package/dist/canvas/SceneCanvas/CanvasKitProviders.js +25 -0
  90. package/dist/canvas/SceneCanvas/CanvasKitProviders.js.map +1 -0
  91. package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js +10 -6
  92. package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js.map +1 -1
  93. package/dist/canvas/SceneCanvas/DevHuds.js +47 -32
  94. package/dist/canvas/SceneCanvas/DevHuds.js.map +1 -1
  95. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +72 -37
  96. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js.map +1 -1
  97. package/dist/canvas/SceneCanvas/SceneCanvasInput.js +124 -0
  98. package/dist/canvas/SceneCanvas/SceneCanvasInput.js.map +1 -0
  99. package/dist/canvas/SceneCanvas/brushOverlay.js +36 -0
  100. package/dist/canvas/SceneCanvas/brushOverlay.js.map +1 -0
  101. package/dist/canvas/SceneCanvas/builtinToolSets.js +30 -0
  102. package/dist/canvas/SceneCanvas/builtinToolSets.js.map +1 -0
  103. package/dist/canvas/SceneCanvas/canvasPassThrough.js +73 -0
  104. package/dist/canvas/SceneCanvas/canvasPassThrough.js.map +1 -0
  105. package/dist/canvas/SceneCanvas/contributionFrameHooks.js +54 -32
  106. package/dist/canvas/SceneCanvas/contributionFrameHooks.js.map +1 -1
  107. package/dist/canvas/SceneCanvas/coordTrace.js +26 -30
  108. package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -1
  109. package/dist/canvas/SceneCanvas/defaultNodeProperties.js +323 -159
  110. package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
  111. package/dist/canvas/SceneCanvas/defaultNodeRouting.js +39 -13
  112. package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
  113. package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js +83 -47
  114. package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js.map +1 -1
  115. package/dist/canvas/SceneCanvas/features.js +123 -106
  116. package/dist/canvas/SceneCanvas/features.js.map +1 -1
  117. package/dist/canvas/SceneCanvas/insertPreviewCommands.js +80 -62
  118. package/dist/canvas/SceneCanvas/insertPreviewCommands.js.map +1 -1
  119. package/dist/canvas/SceneCanvas/mergeLayers.js +43 -0
  120. package/dist/canvas/SceneCanvas/mergeLayers.js.map +1 -0
  121. package/dist/canvas/SceneCanvas/namedPresets.js +56 -0
  122. package/dist/canvas/SceneCanvas/namedPresets.js.map +1 -0
  123. package/dist/canvas/SceneCanvas/poseGeometry.js +66 -31
  124. package/dist/canvas/SceneCanvas/poseGeometry.js.map +1 -1
  125. package/dist/canvas/SceneCanvas/poseRegistrars.js +18 -8
  126. package/dist/canvas/SceneCanvas/poseRegistrars.js.map +1 -1
  127. package/dist/canvas/SceneCanvas/presets/arrange.js +27 -0
  128. package/dist/canvas/SceneCanvas/presets/arrange.js.map +1 -0
  129. package/dist/canvas/SceneCanvas/presets/chrome.js +14 -0
  130. package/dist/canvas/SceneCanvas/presets/chrome.js.map +1 -0
  131. package/dist/canvas/SceneCanvas/presets/edit.js +59 -0
  132. package/dist/canvas/SceneCanvas/presets/edit.js.map +1 -0
  133. package/dist/canvas/SceneCanvas/presets/ingest.js +13 -0
  134. package/dist/canvas/SceneCanvas/presets/ingest.js.map +1 -0
  135. package/dist/canvas/SceneCanvas/presets/paths.js +67 -0
  136. package/dist/canvas/SceneCanvas/presets/paths.js.map +1 -0
  137. package/dist/canvas/SceneCanvas/presets/select.js +19 -0
  138. package/dist/canvas/SceneCanvas/presets/select.js.map +1 -0
  139. package/dist/canvas/SceneCanvas/presets/toolDriven.js +20 -0
  140. package/dist/canvas/SceneCanvas/presets/toolDriven.js.map +1 -0
  141. package/dist/canvas/SceneCanvas/presets/transform.js +41 -0
  142. package/dist/canvas/SceneCanvas/presets/transform.js.map +1 -0
  143. package/dist/canvas/SceneCanvas/presets/view.js +14 -0
  144. package/dist/canvas/SceneCanvas/presets/view.js.map +1 -0
  145. package/dist/canvas/SceneCanvas/props.js +9 -35
  146. package/dist/canvas/SceneCanvas/props.js.map +1 -1
  147. package/dist/canvas/SceneCanvas/scenePointQuery.js +43 -35
  148. package/dist/canvas/SceneCanvas/scenePointQuery.js.map +1 -1
  149. package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js +22 -15
  150. package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js.map +1 -1
  151. package/dist/canvas/SceneCanvas/toolRegistry.js +34 -15
  152. package/dist/canvas/SceneCanvas/toolRegistry.js.map +1 -1
  153. package/dist/canvas/SceneCanvas/useActionTunings.js +14 -11
  154. package/dist/canvas/SceneCanvas/useActionTunings.js.map +1 -1
  155. package/dist/canvas/SceneCanvas/useActionsPropResolver.js +59 -36
  156. package/dist/canvas/SceneCanvas/useActionsPropResolver.js.map +1 -1
  157. package/dist/canvas/SceneCanvas/useBakedScene.js +17 -0
  158. package/dist/canvas/SceneCanvas/useBakedScene.js.map +1 -0
  159. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js +47 -23
  160. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
  161. package/dist/canvas/SceneCanvas/useBuiltinTools.js +22 -14
  162. package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -1
  163. package/dist/canvas/SceneCanvas/useCanvasCamera.js +53 -38
  164. package/dist/canvas/SceneCanvas/useCanvasCamera.js.map +1 -1
  165. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js +93 -0
  166. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js.map +1 -0
  167. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js +24 -14
  168. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js.map +1 -1
  169. package/dist/canvas/SceneCanvas/useCanvasSelection.js +35 -12
  170. package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -1
  171. package/dist/canvas/SceneCanvas/useCanvasTools.js +112 -53
  172. package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -1
  173. package/dist/canvas/SceneCanvas/useChromeAffordances.js +31 -0
  174. package/dist/canvas/SceneCanvas/useChromeAffordances.js.map +1 -0
  175. package/dist/canvas/SceneCanvas/useContributionRoles.js +107 -56
  176. package/dist/canvas/SceneCanvas/useContributionRoles.js.map +1 -1
  177. package/dist/canvas/SceneCanvas/useDepartureGhostLayer.js +64 -0
  178. package/dist/canvas/SceneCanvas/useDepartureGhostLayer.js.map +1 -0
  179. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js +104 -71
  180. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js.map +1 -1
  181. package/dist/canvas/SceneCanvas/useHeldModifiers.js +21 -14
  182. package/dist/canvas/SceneCanvas/useHeldModifiers.js.map +1 -1
  183. package/dist/canvas/SceneCanvas/useNodeAtPoint.js +21 -19
  184. package/dist/canvas/SceneCanvas/useNodeAtPoint.js.map +1 -1
  185. package/dist/canvas/SceneCanvas/useNodeKinds.js +28 -19
  186. package/dist/canvas/SceneCanvas/useNodeKinds.js.map +1 -1
  187. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +91 -59
  188. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
  189. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +62 -35
  190. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js.map +1 -1
  191. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +121 -50
  192. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -1
  193. package/dist/canvas/SceneCanvas/useSceneCanvasPathEdit.js +30 -0
  194. package/dist/canvas/SceneCanvas/useSceneCanvasPathEdit.js.map +1 -0
  195. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +38 -0
  196. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js.map +1 -0
  197. package/dist/canvas/SceneCanvas/useSceneChrome.js +99 -44
  198. package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -1
  199. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +165 -0
  200. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js.map +1 -0
  201. package/dist/canvas/SceneCanvas/useScenePicking.js +68 -0
  202. package/dist/canvas/SceneCanvas/useScenePicking.js.map +1 -0
  203. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js +28 -17
  204. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js.map +1 -1
  205. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +160 -80
  206. package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
  207. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js +38 -26
  208. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js.map +1 -1
  209. package/dist/canvas/SceneCanvas/useSceneStandardActions.js +107 -0
  210. package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -0
  211. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js +40 -27
  212. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js.map +1 -1
  213. package/dist/canvas/SceneCanvas/useSurfaceRouting.js +29 -0
  214. package/dist/canvas/SceneCanvas/useSurfaceRouting.js.map +1 -0
  215. package/dist/canvas/SceneCanvas/useSurfaceViewInputs.js +44 -0
  216. package/dist/canvas/SceneCanvas/useSurfaceViewInputs.js.map +1 -0
  217. package/dist/canvas/SceneCanvas/useToolKeybindings.js +28 -0
  218. package/dist/canvas/SceneCanvas/useToolKeybindings.js.map +1 -0
  219. package/dist/canvas/SceneCanvas/useViewportActions.js +52 -28
  220. package/dist/canvas/SceneCanvas/useViewportActions.js.map +1 -1
  221. package/dist/canvas/SceneCanvas/worldPointAt.js +10 -4
  222. package/dist/canvas/SceneCanvas/worldPointAt.js.map +1 -1
  223. package/dist/canvas/SceneCanvas.js +276 -312
  224. package/dist/canvas/SceneCanvas.js.map +1 -1
  225. package/dist/canvas/SceneViewCanvas.js +68 -42
  226. package/dist/canvas/SceneViewCanvas.js.map +1 -1
  227. package/dist/canvas/SurfaceCanvas.js +38 -33
  228. package/dist/canvas/SurfaceCanvas.js.map +1 -1
  229. package/dist/canvas/accentColor.js +8 -5
  230. package/dist/canvas/accentColor.js.map +1 -1
  231. package/dist/canvas/adapterDerivedPath.js +33 -18
  232. package/dist/canvas/adapterDerivedPath.js.map +1 -1
  233. package/dist/canvas/adapterPickSource.js +49 -23
  234. package/dist/canvas/adapterPickSource.js.map +1 -1
  235. package/dist/canvas/affordanceAt.js +106 -50
  236. package/dist/canvas/affordanceAt.js.map +1 -1
  237. package/dist/canvas/buildSceneLayer.js +111 -80
  238. package/dist/canvas/buildSceneLayer.js.map +1 -1
  239. package/dist/canvas/buildSceneTree.js +101 -59
  240. package/dist/canvas/buildSceneTree.js.map +1 -1
  241. package/dist/canvas/canvasRenderer.js +161 -72
  242. package/dist/canvas/canvasRenderer.js.map +1 -1
  243. package/dist/canvas/colorOverrides.js +18 -10
  244. package/dist/canvas/colorOverrides.js.map +1 -1
  245. package/dist/canvas/contextAttributes.js +14 -0
  246. package/dist/canvas/contextAttributes.js.map +1 -0
  247. package/dist/canvas/copiesAbove.js +24 -14
  248. package/dist/canvas/copiesAbove.js.map +1 -1
  249. package/dist/canvas/defaultDrawOne.js +55 -31
  250. package/dist/canvas/defaultDrawOne.js.map +1 -1
  251. package/dist/canvas/deps/areaSelect.js +30 -12
  252. package/dist/canvas/deps/areaSelect.js.map +1 -1
  253. package/dist/canvas/deps/booleans.js +104 -0
  254. package/dist/canvas/deps/booleans.js.map +1 -0
  255. package/dist/canvas/deps/changes.js +17 -9
  256. package/dist/canvas/deps/changes.js.map +1 -1
  257. package/dist/canvas/deps/debug.js +12 -5
  258. package/dist/canvas/deps/debug.js.map +1 -1
  259. package/dist/canvas/deps/dispatchSources.js +27 -0
  260. package/dist/canvas/deps/dispatchSources.js.map +1 -0
  261. package/dist/canvas/deps/dispatcher.js +18 -7
  262. package/dist/canvas/deps/dispatcher.js.map +1 -1
  263. package/dist/canvas/deps/editAnchors.js +150 -64
  264. package/dist/canvas/deps/editAnchors.js.map +1 -1
  265. package/dist/canvas/deps/geometryProjection.js +13 -7
  266. package/dist/canvas/deps/geometryProjection.js.map +1 -1
  267. package/dist/canvas/deps/hitTestArea.js +78 -53
  268. package/dist/canvas/deps/hitTestArea.js.map +1 -1
  269. package/dist/canvas/deps/ingestion.js +18 -13
  270. package/dist/canvas/deps/ingestion.js.map +1 -1
  271. package/dist/canvas/deps/insert.js +178 -116
  272. package/dist/canvas/deps/insert.js.map +1 -1
  273. package/dist/canvas/deps/kitSettings.js +16 -0
  274. package/dist/canvas/deps/kitSettings.js.map +1 -0
  275. package/dist/canvas/deps/lassoSelect.js +25 -13
  276. package/dist/canvas/deps/lassoSelect.js.map +1 -1
  277. package/dist/canvas/deps/layout.js +32 -20
  278. package/dist/canvas/deps/layout.js.map +1 -1
  279. package/dist/canvas/deps/nodeAtPoint.js +28 -14
  280. package/dist/canvas/deps/nodeAtPoint.js.map +1 -1
  281. package/dist/canvas/deps/pathEditCommits.js +193 -0
  282. package/dist/canvas/deps/pathEditCommits.js.map +1 -0
  283. package/dist/canvas/deps/pathLeaf.js +66 -0
  284. package/dist/canvas/deps/pathLeaf.js.map +1 -0
  285. package/dist/canvas/deps/pathLeafDeps.js +13 -0
  286. package/dist/canvas/deps/pathLeafDeps.js.map +1 -0
  287. package/dist/canvas/deps/poseDescriptor.js +10 -8
  288. package/dist/canvas/deps/poseDescriptor.js.map +1 -1
  289. package/dist/canvas/deps/previewPaths.js +44 -0
  290. package/dist/canvas/deps/previewPaths.js.map +1 -0
  291. package/dist/canvas/deps/resizePolicy.js +32 -25
  292. package/dist/canvas/deps/resizePolicy.js.map +1 -1
  293. package/dist/canvas/deps/slice.js +73 -87
  294. package/dist/canvas/deps/slice.js.map +1 -1
  295. package/dist/canvas/deps/snap.js +61 -7
  296. package/dist/canvas/deps/snap.js.map +1 -1
  297. package/dist/canvas/deps/surface.js +30 -0
  298. package/dist/canvas/deps/surface.js.map +1 -0
  299. package/dist/canvas/deps/textEdit.js +21 -13
  300. package/dist/canvas/deps/textEdit.js.map +1 -1
  301. package/dist/canvas/deps/transformFollowers.js +20 -0
  302. package/dist/canvas/deps/transformFollowers.js.map +1 -0
  303. package/dist/canvas/deps/view.js +46 -34
  304. package/dist/canvas/deps/view.js.map +1 -1
  305. package/dist/canvas/derivedPath.js +173 -70
  306. package/dist/canvas/derivedPath.js.map +1 -1
  307. package/dist/canvas/doubleClickTarget.js +20 -0
  308. package/dist/canvas/doubleClickTarget.js.map +1 -0
  309. package/dist/canvas/drawEnvelope.js +26 -17
  310. package/dist/canvas/drawEnvelope.js.map +1 -1
  311. package/dist/canvas/drawnBounds.js +142 -0
  312. package/dist/canvas/drawnBounds.js.map +1 -0
  313. package/dist/canvas/getNodeAtPoint.js +11 -8
  314. package/dist/canvas/getNodeAtPoint.js.map +1 -1
  315. package/dist/canvas/hostAnchor.js +35 -18
  316. package/dist/canvas/hostAnchor.js.map +1 -1
  317. package/dist/canvas/hud.module.js +25 -14
  318. package/dist/canvas/hud.module.js.map +1 -1
  319. package/dist/canvas/insertPreviewExtent.js +82 -61
  320. package/dist/canvas/insertPreviewExtent.js.map +1 -1
  321. package/dist/canvas/kitRequirements.js +154 -115
  322. package/dist/canvas/kitRequirements.js.map +1 -1
  323. package/dist/canvas/layerHover.js +28 -0
  324. package/dist/canvas/layerHover.js.map +1 -0
  325. package/dist/canvas/layerOrder.js +107 -57
  326. package/dist/canvas/layerOrder.js.map +1 -1
  327. package/dist/canvas/layerSlots.js +16 -9
  328. package/dist/canvas/layerSlots.js.map +1 -1
  329. package/dist/canvas/mountedCanvases.js +23 -13
  330. package/dist/canvas/mountedCanvases.js.map +1 -1
  331. package/dist/canvas/nodeShapes/derivedPainter.js +73 -25
  332. package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -1
  333. package/dist/canvas/nodeShapes/imagePainter.js +69 -53
  334. package/dist/canvas/nodeShapes/imagePainter.js.map +1 -1
  335. package/dist/canvas/nodeShapes/measurePainter.js +58 -0
  336. package/dist/canvas/nodeShapes/measurePainter.js.map +1 -0
  337. package/dist/canvas/nodeShapes/memo.js +16 -5
  338. package/dist/canvas/nodeShapes/memo.js.map +1 -1
  339. package/dist/canvas/nodeShapes/nodePaint.js +125 -46
  340. package/dist/canvas/nodeShapes/nodePaint.js.map +1 -1
  341. package/dist/canvas/nodeShapes/pathPainter.js +42 -27
  342. package/dist/canvas/nodeShapes/pathPainter.js.map +1 -1
  343. package/dist/canvas/nodeShapes/poseBox.js +20 -13
  344. package/dist/canvas/nodeShapes/poseBox.js.map +1 -1
  345. package/dist/canvas/nodeShapes/rectFallbackPainter.js +26 -22
  346. package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -1
  347. package/dist/canvas/nodeShapes/shapePainter.js +67 -46
  348. package/dist/canvas/nodeShapes/shapePainter.js.map +1 -1
  349. package/dist/canvas/nodeShapes/strokedBounds.js +177 -0
  350. package/dist/canvas/nodeShapes/strokedBounds.js.map +1 -0
  351. package/dist/canvas/nodeShapes/textPainter.js +170 -37
  352. package/dist/canvas/nodeShapes/textPainter.js.map +1 -1
  353. package/dist/canvas/overChildren.js +29 -18
  354. package/dist/canvas/overChildren.js.map +1 -1
  355. package/dist/canvas/overlayRoleStrokes.js +32 -3
  356. package/dist/canvas/overlayRoleStrokes.js.map +1 -1
  357. package/dist/canvas/paintCull.js +24 -12
  358. package/dist/canvas/paintCull.js.map +1 -1
  359. package/dist/canvas/paintedCursorLayer.js +59 -35
  360. package/dist/canvas/paintedCursorLayer.js.map +1 -1
  361. package/dist/canvas/pathOverlay.js +83 -0
  362. package/dist/canvas/pathOverlay.js.map +1 -0
  363. package/dist/canvas/pickReach.js +34 -17
  364. package/dist/canvas/pickReach.js.map +1 -1
  365. package/dist/canvas/pickWalk.js +151 -102
  366. package/dist/canvas/pickWalk.js.map +1 -1
  367. package/dist/canvas/planeClips.js +39 -22
  368. package/dist/canvas/planeClips.js.map +1 -1
  369. package/dist/canvas/poseCascade.js +51 -27
  370. package/dist/canvas/poseCascade.js.map +1 -1
  371. package/dist/canvas/poseRotation.js +24 -14
  372. package/dist/canvas/poseRotation.js.map +1 -1
  373. package/dist/canvas/rasterReadback.js +23 -15
  374. package/dist/canvas/rasterReadback.js.map +1 -1
  375. package/dist/canvas/rasterToPng.js +21 -15
  376. package/dist/canvas/rasterToPng.js.map +1 -1
  377. package/dist/canvas/renderDebugSnapshot.js +37 -19
  378. package/dist/canvas/renderDebugSnapshot.js.map +1 -1
  379. package/dist/canvas/renderNeeds.js +33 -18
  380. package/dist/canvas/renderNeeds.js.map +1 -1
  381. package/dist/canvas/renderSceneToPixels.js +203 -87
  382. package/dist/canvas/renderSceneToPixels.js.map +1 -1
  383. package/dist/canvas/sceneAdapter.js +96 -75
  384. package/dist/canvas/sceneAdapter.js.map +1 -1
  385. package/dist/canvas/sceneClipboard.js +141 -92
  386. package/dist/canvas/sceneClipboard.js.map +1 -1
  387. package/dist/canvas/sceneLayerPaint.js +56 -27
  388. package/dist/canvas/sceneLayerPaint.js.map +1 -1
  389. package/dist/canvas/sceneSlotWiring.js +24 -14
  390. package/dist/canvas/sceneSlotWiring.js.map +1 -1
  391. package/dist/canvas/sceneViewRender.js +85 -49
  392. package/dist/canvas/sceneViewRender.js.map +1 -1
  393. package/dist/canvas/slopsDebugLayer.js +58 -49
  394. package/dist/canvas/slopsDebugLayer.js.map +1 -1
  395. package/dist/canvas/surfaceContribution.js +22 -10
  396. package/dist/canvas/surfaceContribution.js.map +1 -1
  397. package/dist/canvas/useCanvasElements.js +31 -0
  398. package/dist/canvas/useCanvasElements.js.map +1 -0
  399. package/dist/canvas/useCanvasHandle.js +69 -0
  400. package/dist/canvas/useCanvasHandle.js.map +1 -0
  401. package/dist/canvas/useCanvasPaint.js +92 -0
  402. package/dist/canvas/useCanvasPaint.js.map +1 -0
  403. package/dist/canvas/useCanvasRenderer.js +45 -23
  404. package/dist/canvas/useCanvasRenderer.js.map +1 -1
  405. package/dist/canvas/useCanvasSurface.js +41 -23
  406. package/dist/canvas/useCanvasSurface.js.map +1 -1
  407. package/dist/canvas/useCanvasView.js +80 -48
  408. package/dist/canvas/useCanvasView.js.map +1 -1
  409. package/dist/canvas/useClientToWorld.js +27 -0
  410. package/dist/canvas/useClientToWorld.js.map +1 -0
  411. package/dist/canvas/useExtraLayers.js +45 -0
  412. package/dist/canvas/useExtraLayers.js.map +1 -0
  413. package/dist/canvas/useFrameLoop.js +109 -49
  414. package/dist/canvas/useFrameLoop.js.map +1 -1
  415. package/dist/canvas/useHitObserver.js +22 -15
  416. package/dist/canvas/useHitObserver.js.map +1 -1
  417. package/dist/canvas/useHostAnchor.js +83 -53
  418. package/dist/canvas/useHostAnchor.js.map +1 -1
  419. package/dist/canvas/useInFlightBounds.js +52 -0
  420. package/dist/canvas/useInFlightBounds.js.map +1 -0
  421. package/dist/canvas/useLateContentRedraw.js +21 -14
  422. package/dist/canvas/useLateContentRedraw.js.map +1 -1
  423. package/dist/canvas/useLayerStack.js +72 -0
  424. package/dist/canvas/useLayerStack.js.map +1 -0
  425. package/dist/canvas/usePaintedCursor.js +28 -0
  426. package/dist/canvas/usePaintedCursor.js.map +1 -0
  427. package/dist/canvas/useRedrawOn.js +24 -14
  428. package/dist/canvas/useRedrawOn.js.map +1 -1
  429. package/dist/canvas/useSceneAdapter.js +21 -16
  430. package/dist/canvas/useSceneAdapter.js.map +1 -1
  431. package/dist/canvas/useSceneLayerList.js +15 -7
  432. package/dist/canvas/useSceneLayerList.js.map +1 -1
  433. package/dist/canvas/useSurfaceInput.js +46 -27
  434. package/dist/canvas/useSurfaceInput.js.map +1 -1
  435. package/dist/canvas/useSurfaceSize.js +43 -0
  436. package/dist/canvas/useSurfaceSize.js.map +1 -0
  437. package/dist/canvas/useToolCursor.js +30 -21
  438. package/dist/canvas/useToolCursor.js.map +1 -1
  439. package/dist/canvas/useViewHelpers.js +110 -61
  440. package/dist/canvas/useViewHelpers.js.map +1 -1
  441. package/dist/canvas/useViewLayerGate.js +29 -0
  442. package/dist/canvas/useViewLayerGate.js.map +1 -0
  443. package/dist/canvas/useViewNesting.js +104 -0
  444. package/dist/canvas/useViewNesting.js.map +1 -0
  445. package/dist/canvas/useViewRegistrySurface.js +44 -0
  446. package/dist/canvas/useViewRegistrySurface.js.map +1 -0
  447. package/dist/canvas/viewInputs.js +14 -11
  448. package/dist/canvas/viewInputs.js.map +1 -1
  449. package/dist/canvas/viewRegistry.js +140 -42
  450. package/dist/canvas/viewRegistry.js.map +1 -1
  451. package/dist/canvas/watchElementMove.js +71 -33
  452. package/dist/canvas/watchElementMove.js.map +1 -1
  453. package/dist/canvas/wrapNodeOutput.js +20 -13
  454. package/dist/canvas/wrapNodeOutput.js.map +1 -1
  455. package/dist/clipboard.d.ts +9 -4
  456. package/dist/clipboard.js +4 -3
  457. package/dist/{clone-C0eADtS0.d.ts → clone-C3e0OTuF.d.ts} +27 -73
  458. package/dist/clone.d.ts +7 -5
  459. package/dist/core/adapters/testing/rootsTree.js +17 -0
  460. package/dist/core/adapters/testing/rootsTree.js.map +1 -0
  461. package/dist/core/applyOps.js +23 -7
  462. package/dist/core/applyOps.js.map +1 -1
  463. package/dist/core/device/index.js +6 -5
  464. package/dist/core/device/targets.js +29 -8
  465. package/dist/core/device/targets.js.map +1 -1
  466. package/dist/core/device/useDeviceProfile.js +86 -52
  467. package/dist/core/device/useDeviceProfile.js.map +1 -1
  468. package/dist/core/device/useTargetBasePx.js +23 -0
  469. package/dist/core/device/useTargetBasePx.js.map +1 -0
  470. package/dist/core/device/watchDevicePixelRatio.js +27 -10
  471. package/dist/core/device/watchDevicePixelRatio.js.map +1 -1
  472. package/dist/core/geometry/autoPoseDescriptor.js +38 -24
  473. package/dist/core/geometry/autoPoseDescriptor.js.map +1 -1
  474. package/dist/core/geometry/inkExtents.js +60 -0
  475. package/dist/core/geometry/inkExtents.js.map +1 -0
  476. package/dist/core/geometry/pathPoseDescriptor.js +101 -76
  477. package/dist/core/geometry/pathPoseDescriptor.js.map +1 -1
  478. package/dist/core/geometry/poseDescriptor.js +199 -136
  479. package/dist/core/geometry/poseDescriptor.js.map +1 -1
  480. package/dist/core/geometry/regionHit.js +127 -79
  481. package/dist/core/geometry/regionHit.js.map +1 -1
  482. package/dist/core/geometry/targetFrame.js +84 -60
  483. package/dist/core/geometry/targetFrame.js.map +1 -1
  484. package/dist/core/geometry/unionBounds.js +103 -48
  485. package/dist/core/geometry/unionBounds.js.map +1 -1
  486. package/dist/core/isPlainObject.js +3 -2
  487. package/dist/core/layers/backgroundFill.js +23 -15
  488. package/dist/core/layers/backgroundFill.js.map +1 -1
  489. package/dist/core/layers/children.js +16 -13
  490. package/dist/core/layers/children.js.map +1 -1
  491. package/dist/core/layers/gateLayer.js +24 -9
  492. package/dist/core/layers/gateLayer.js.map +1 -1
  493. package/dist/core/layers/layerGroup.js +42 -29
  494. package/dist/core/layers/layerGroup.js.map +1 -1
  495. package/dist/core/layers/redrawSource.js +15 -0
  496. package/dist/core/layers/redrawSource.js.map +1 -0
  497. package/dist/core/layers/render.js +183 -93
  498. package/dist/core/layers/render.js.map +1 -1
  499. package/dist/core/layers/retain.js +38 -0
  500. package/dist/core/layers/retain.js.map +1 -0
  501. package/dist/core/ops/arrange.js +30 -19
  502. package/dist/core/ops/arrange.js.map +1 -1
  503. package/dist/core/ops/create.js +32 -23
  504. package/dist/core/ops/create.js.map +1 -1
  505. package/dist/core/ops/createHistory.js +23 -14
  506. package/dist/core/ops/createHistory.js.map +1 -1
  507. package/dist/core/ops/delete.js +80 -53
  508. package/dist/core/ops/delete.js.map +1 -1
  509. package/dist/core/ops/nodeFlags.js +44 -0
  510. package/dist/core/ops/nodeFlags.js.map +1 -0
  511. package/dist/core/ops/registry.js +26 -11
  512. package/dist/core/ops/registry.js.map +1 -1
  513. package/dist/core/ops/reorder/algorithms.js +62 -38
  514. package/dist/core/ops/reorder/algorithms.js.map +1 -1
  515. package/dist/core/ops/reorder/index.js +124 -84
  516. package/dist/core/ops/reorder/index.js.map +1 -1
  517. package/dist/core/ops/reorder/setChildOrder.js +32 -23
  518. package/dist/core/ops/reorder/setChildOrder.js.map +1 -1
  519. package/dist/core/ops/reparent.js +63 -37
  520. package/dist/core/ops/reparent.js.map +1 -1
  521. package/dist/core/ops/select.js +23 -20
  522. package/dist/core/ops/select.js.map +1 -1
  523. package/dist/core/ops/setData.js +23 -21
  524. package/dist/core/ops/setData.js.map +1 -1
  525. package/dist/core/ops/setDependsOn.js +37 -0
  526. package/dist/core/ops/setDependsOn.js.map +1 -0
  527. package/dist/core/ops/setLayer.js +26 -21
  528. package/dist/core/ops/setLayer.js.map +1 -1
  529. package/dist/core/ops/setLayout.js +27 -18
  530. package/dist/core/ops/setLayout.js.map +1 -1
  531. package/dist/core/ops/setPath.js +60 -41
  532. package/dist/core/ops/setPath.js.map +1 -1
  533. package/dist/core/ops/setText.js +26 -21
  534. package/dist/core/ops/setText.js.map +1 -1
  535. package/dist/core/ops/slot.js +36 -22
  536. package/dist/core/ops/slot.js.map +1 -1
  537. package/dist/core/ops/transform.js +35 -28
  538. package/dist/core/ops/transform.js.map +1 -1
  539. package/dist/core/ops/writtenBy.js +53 -0
  540. package/dist/core/ops/writtenBy.js.map +1 -0
  541. package/dist/core/pages/fitViewToPage.js +24 -11
  542. package/dist/core/pages/fitViewToPage.js.map +1 -1
  543. package/dist/core/pages/pageEdits.js +164 -0
  544. package/dist/core/pages/pageEdits.js.map +1 -0
  545. package/dist/core/pages/pages.js +102 -42
  546. package/dist/core/pages/pages.js.map +1 -1
  547. package/dist/core/pages/pagesLayer.js +19 -13
  548. package/dist/core/pages/pagesLayer.js.map +1 -1
  549. package/dist/core/paint/meshKind.js +16 -11
  550. package/dist/core/paint/meshKind.js.map +1 -1
  551. package/dist/core/paint/meshKindLazy.js +1 -1
  552. package/dist/core/paint/meshKindLazy.js.map +1 -1
  553. package/dist/core/paint/paintKindEntry.js +13 -4
  554. package/dist/core/paint/paintKindEntry.js.map +1 -1
  555. package/dist/core/paint/paintKinds.js +149 -88
  556. package/dist/core/paint/paintKinds.js.map +1 -1
  557. package/dist/core/paint/registerMesh.js +6 -4
  558. package/dist/core/paint/registerMesh.js.map +1 -1
  559. package/dist/core/scene/NodeProperties.js +15 -10
  560. package/dist/core/scene/NodeProperties.js.map +1 -1
  561. package/dist/core/scene/NodeRouting.js +22 -13
  562. package/dist/core/scene/NodeRouting.js.map +1 -1
  563. package/dist/core/scene/annotation.js +28 -0
  564. package/dist/core/scene/annotation.js.map +1 -0
  565. package/dist/core/scene/appliedLog.js +31 -23
  566. package/dist/core/scene/appliedLog.js.map +1 -1
  567. package/dist/core/scene/arrivalWindow.js +120 -75
  568. package/dist/core/scene/arrivalWindow.js.map +1 -1
  569. package/dist/core/scene/arrivals.js +17 -6
  570. package/dist/core/scene/arrivals.js.map +1 -1
  571. package/dist/core/scene/boundOps.js +42 -23
  572. package/dist/core/scene/boundOps.js.map +1 -1
  573. package/dist/core/scene/carryDescendants.js +51 -0
  574. package/dist/core/scene/carryDescendants.js.map +1 -0
  575. package/dist/core/scene/composeFrame.js +51 -21
  576. package/dist/core/scene/composeFrame.js.map +1 -1
  577. package/dist/core/scene/composePose.js +114 -62
  578. package/dist/core/scene/composePose.js.map +1 -1
  579. package/dist/core/scene/depFrame.js +94 -0
  580. package/dist/core/scene/depFrame.js.map +1 -0
  581. package/dist/core/scene/depMemo.js +44 -19
  582. package/dist/core/scene/depMemo.js.map +1 -1
  583. package/dist/core/scene/dependents.js +73 -45
  584. package/dist/core/scene/dependents.js.map +1 -1
  585. package/dist/core/scene/derivedParts.js +58 -0
  586. package/dist/core/scene/derivedParts.js.map +1 -0
  587. package/dist/core/scene/derivedPath.js +52 -22
  588. package/dist/core/scene/derivedPath.js.map +1 -1
  589. package/dist/core/scene/docValues.js +57 -0
  590. package/dist/core/scene/docValues.js.map +1 -0
  591. package/dist/core/scene/editMode.js +11 -11
  592. package/dist/core/scene/editMode.js.map +1 -1
  593. package/dist/core/scene/editPass.js +111 -0
  594. package/dist/core/scene/editPass.js.map +1 -0
  595. package/dist/core/scene/effectivePose.js +173 -51
  596. package/dist/core/scene/effectivePose.js.map +1 -1
  597. package/dist/core/scene/fieldEdits.js +98 -75
  598. package/dist/core/scene/fieldEdits.js.map +1 -1
  599. package/dist/core/scene/historyFacade.js +127 -87
  600. package/dist/core/scene/historyFacade.js.map +1 -1
  601. package/dist/core/scene/historyForm.js +7 -3
  602. package/dist/core/scene/historyForm.js.map +1 -1
  603. package/dist/core/scene/kitOps.js +203 -131
  604. package/dist/core/scene/kitOps.js.map +1 -1
  605. package/dist/core/scene/kitRegistry.js +49 -22
  606. package/dist/core/scene/kitRegistry.js.map +1 -1
  607. package/dist/core/scene/layerStack.js +123 -92
  608. package/dist/core/scene/layerStack.js.map +1 -1
  609. package/dist/core/scene/layoutPass.js +143 -72
  610. package/dist/core/scene/layoutPass.js.map +1 -1
  611. package/dist/core/scene/lockGuard.js +32 -24
  612. package/dist/core/scene/lockGuard.js.map +1 -1
  613. package/dist/core/scene/minSize.js +17 -0
  614. package/dist/core/scene/minSize.js.map +1 -0
  615. package/dist/core/scene/nestedHit.js +45 -31
  616. package/dist/core/scene/nestedHit.js.map +1 -1
  617. package/dist/core/scene/nodeFlags.js +43 -0
  618. package/dist/core/scene/nodeFlags.js.map +1 -0
  619. package/dist/core/scene/nodeFnFields.js +58 -41
  620. package/dist/core/scene/nodeFnFields.js.map +1 -1
  621. package/dist/core/scene/nodeGates.js +58 -0
  622. package/dist/core/scene/nodeGates.js.map +1 -0
  623. package/dist/core/scene/nodeMemo.js +92 -40
  624. package/dist/core/scene/nodeMemo.js.map +1 -1
  625. package/dist/core/scene/nodeStore.js +179 -99
  626. package/dist/core/scene/nodeStore.js.map +1 -1
  627. package/dist/core/scene/notifier.js +30 -19
  628. package/dist/core/scene/notifier.js.map +1 -1
  629. package/dist/core/scene/opTable.js +42 -36
  630. package/dist/core/scene/opTable.js.map +1 -1
  631. package/dist/core/scene/outerOps.js +49 -43
  632. package/dist/core/scene/outerOps.js.map +1 -1
  633. package/dist/core/scene/pathEffects/blend.js +80 -0
  634. package/dist/core/scene/pathEffects/blend.js.map +1 -0
  635. package/dist/core/scene/pathEffects/derive.js +112 -0
  636. package/dist/core/scene/pathEffects/derive.js.map +1 -0
  637. package/dist/core/scene/pathEffects/effects.js +40 -0
  638. package/dist/core/scene/pathEffects/effects.js.map +1 -0
  639. package/dist/core/scene/poseFeed.js +95 -60
  640. package/dist/core/scene/poseFeed.js.map +1 -1
  641. package/dist/core/scene/poseHold.js +33 -24
  642. package/dist/core/scene/poseHold.js.map +1 -1
  643. package/dist/core/scene/poseOverrides.js +86 -49
  644. package/dist/core/scene/poseOverrides.js.map +1 -1
  645. package/dist/core/scene/poseRemovals.js +58 -0
  646. package/dist/core/scene/poseRemovals.js.map +1 -0
  647. package/dist/core/scene/poseSnapshot.js +62 -41
  648. package/dist/core/scene/poseSnapshot.js.map +1 -1
  649. package/dist/core/scene/poseWrites.js +151 -0
  650. package/dist/core/scene/poseWrites.js.map +1 -0
  651. package/dist/core/scene/reconcileSpecs.js +63 -34
  652. package/dist/core/scene/reconcileSpecs.js.map +1 -1
  653. package/dist/core/scene/recorder.js +99 -57
  654. package/dist/core/scene/recorder.js.map +1 -1
  655. package/dist/core/scene/renderOrder.js +105 -59
  656. package/dist/core/scene/renderOrder.js.map +1 -1
  657. package/dist/core/scene/scene.js +139 -80
  658. package/dist/core/scene/scene.js.map +1 -1
  659. package/dist/core/scene/sceneChanges.js +13 -0
  660. package/dist/core/scene/sceneChanges.js.map +1 -0
  661. package/dist/core/scene/sceneEdits.js +69 -49
  662. package/dist/core/scene/sceneEdits.js.map +1 -1
  663. package/dist/core/scene/sceneMutators.js +45 -36
  664. package/dist/core/scene/sceneMutators.js.map +1 -1
  665. package/dist/core/scene/scenePoseAdapter.js +13 -9
  666. package/dist/core/scene/scenePoseAdapter.js.map +1 -1
  667. package/dist/core/scene/sceneRecording.js +106 -73
  668. package/dist/core/scene/sceneRecording.js.map +1 -1
  669. package/dist/core/scene/sceneSelection.js +26 -16
  670. package/dist/core/scene/sceneSelection.js.map +1 -1
  671. package/dist/core/scene/sceneState.js +61 -37
  672. package/dist/core/scene/sceneState.js.map +1 -1
  673. package/dist/core/scene/serialization.js +89 -50
  674. package/dist/core/scene/serialization.js.map +1 -1
  675. package/dist/core/scene/staleReplay.js +35 -26
  676. package/dist/core/scene/staleReplay.js.map +1 -1
  677. package/dist/core/scene/statedFields.js +10 -5
  678. package/dist/core/scene/statedFields.js.map +1 -1
  679. package/dist/core/scene/treeEdits.js +129 -98
  680. package/dist/core/scene/treeEdits.js.map +1 -1
  681. package/dist/core/scene/treeOrder.js +13 -8
  682. package/dist/core/scene/treeOrder.js.map +1 -1
  683. package/dist/core/scene/treeReads.js +25 -16
  684. package/dist/core/scene/treeReads.js.map +1 -1
  685. package/dist/core/scene/types.js +4 -3
  686. package/dist/core/scene/types.js.map +1 -1
  687. package/dist/core/scene/unionOfChildren.js +20 -10
  688. package/dist/core/scene/unionOfChildren.js.map +1 -1
  689. package/dist/core/scene/unitScopes.js +33 -8
  690. package/dist/core/scene/unitScopes.js.map +1 -1
  691. package/dist/core/scene/useScene.js +32 -24
  692. package/dist/core/scene/useScene.js.map +1 -1
  693. package/dist/core/selection/chromeState.js +41 -17
  694. package/dist/core/selection/chromeState.js.map +1 -1
  695. package/dist/core/selection/readOnlySelection.js +39 -24
  696. package/dist/core/selection/readOnlySelection.js.map +1 -1
  697. package/dist/core/selection/selectionTarget.js +14 -3
  698. package/dist/core/selection/selectionTarget.js.map +1 -1
  699. package/dist/core/selection/usePublishSceneSelection.js +20 -19
  700. package/dist/core/selection/usePublishSceneSelection.js.map +1 -1
  701. package/dist/core/selection/useSelection.js +90 -57
  702. package/dist/core/selection/useSelection.js.map +1 -1
  703. package/dist/core/shapeKinds.js +57 -28
  704. package/dist/core/shapeKinds.js.map +1 -1
  705. package/dist/core/stableStringify.js +5 -4
  706. package/dist/core/stableStringify.js.map +1 -1
  707. package/dist/core/stylus/stylus.js +49 -25
  708. package/dist/core/stylus/stylus.js.map +1 -1
  709. package/dist/core/stylus/usePointerStylus.js +61 -34
  710. package/dist/core/stylus/usePointerStylus.js.map +1 -1
  711. package/dist/core/usePaintKinds.js +21 -11
  712. package/dist/core/usePaintKinds.js.map +1 -1
  713. package/dist/core/viewport/clampView.js +31 -15
  714. package/dist/core/viewport/clampView.js.map +1 -1
  715. package/dist/core/viewport/clientToWorld.js +15 -4
  716. package/dist/core/viewport/clientToWorld.js.map +1 -1
  717. package/dist/core/viewport/createVelocityTracker.js +23 -19
  718. package/dist/core/viewport/createVelocityTracker.js.map +1 -1
  719. package/dist/core/viewport/fitToBounds.js +28 -11
  720. package/dist/core/viewport/fitToBounds.js.map +1 -1
  721. package/dist/core/viewport/fitViewToBounds.js +45 -19
  722. package/dist/core/viewport/fitViewToBounds.js.map +1 -1
  723. package/dist/core/viewport/interpolateView.js +40 -20
  724. package/dist/core/viewport/interpolateView.js.map +1 -1
  725. package/dist/core/viewport/parallax.js +89 -56
  726. package/dist/core/viewport/parallax.js.map +1 -1
  727. package/dist/core/viewport/sceneNodeClientRect.js +21 -12
  728. package/dist/core/viewport/sceneNodeClientRect.js.map +1 -1
  729. package/dist/core/viewport/screenSlop.js +40 -17
  730. package/dist/core/viewport/screenSlop.js.map +1 -1
  731. package/dist/core/viewport/useAutoCenter.js +36 -22
  732. package/dist/core/viewport/useAutoCenter.js.map +1 -1
  733. package/dist/core/viewport/useCanvasSize.js +43 -22
  734. package/dist/core/viewport/useCanvasSize.js.map +1 -1
  735. package/dist/core/viewport/useDecayLoop.js +120 -48
  736. package/dist/core/viewport/useDecayLoop.js.map +1 -1
  737. package/dist/core/viewport/useNodeOverlayFrame.js +93 -58
  738. package/dist/core/viewport/useNodeOverlayFrame.js.map +1 -1
  739. package/dist/core/viewport/useVelocityTracker.js +9 -6
  740. package/dist/core/viewport/useVelocityTracker.js.map +1 -1
  741. package/dist/core/viewport/useViewAnimation.js +143 -84
  742. package/dist/core/viewport/useViewAnimation.js.map +1 -1
  743. package/dist/core/viewport/view.js +48 -24
  744. package/dist/core/viewport/view.js.map +1 -1
  745. package/dist/core/viewport/viewTransform.js +8 -6
  746. package/dist/core/viewport/viewTransform.js.map +1 -1
  747. package/dist/core/viewport/viewportWorldRect.js +15 -7
  748. package/dist/core/viewport/viewportWorldRect.js.map +1 -1
  749. package/dist/core/viewport/wheelHandler.js +31 -20
  750. package/dist/core/viewport/wheelHandler.js.map +1 -1
  751. package/dist/core/viewport/zoomAt.js +47 -19
  752. package/dist/core/viewport/zoomAt.js.map +1 -1
  753. package/dist/core/viewport/zoomBounds.js +33 -17
  754. package/dist/core/viewport/zoomBounds.js.map +1 -1
  755. package/dist/cornerHandles-BHuoMs1o.d.ts +169 -0
  756. package/dist/debug/createDebugOverlayLayer.js +251 -258
  757. package/dist/debug/createDebugOverlayLayer.js.map +1 -1
  758. package/dist/debug/createDebugSink.js +69 -47
  759. package/dist/debug/createDebugSink.js.map +1 -1
  760. package/dist/debug/defaultTheme.js +20 -6
  761. package/dist/debug/defaultTheme.js.map +1 -1
  762. package/dist/debug/features.js +17 -0
  763. package/dist/debug/features.js.map +1 -0
  764. package/dist/debug/flag.js +3 -2
  765. package/dist/debug/frameStats.js +11 -9
  766. package/dist/debug/frameStats.js.map +1 -1
  767. package/dist/debug/overlayPanels.js +117 -0
  768. package/dist/debug/overlayPanels.js.map +1 -0
  769. package/dist/debug/parseDebugFlags.js +26 -27
  770. package/dist/debug/parseDebugFlags.js.map +1 -1
  771. package/dist/debug/useDebugSink.js +52 -33
  772. package/dist/debug/useDebugSink.js.map +1 -1
  773. package/dist/depSchema-BpZNOv7q.d.ts +2803 -0
  774. package/dist/devtools/handlers.js +112 -0
  775. package/dist/devtools/handlers.js.map +1 -0
  776. package/dist/devtools/history.js +71 -0
  777. package/dist/devtools/history.js.map +1 -0
  778. package/dist/devtools/hook.js +74 -0
  779. package/dist/devtools/hook.js.map +1 -0
  780. package/dist/devtools/label.js +25 -0
  781. package/dist/devtools/label.js.map +1 -0
  782. package/dist/devtools/notices.js +58 -0
  783. package/dist/devtools/notices.js.map +1 -0
  784. package/dist/devtools/protocol.js +7 -0
  785. package/dist/devtools/protocol.js.map +1 -0
  786. package/dist/devtools/registry.js +90 -0
  787. package/dist/devtools/registry.js.map +1 -0
  788. package/dist/devtools/root.js +80 -0
  789. package/dist/devtools/root.js.map +1 -0
  790. package/dist/devtools/serialize.js +86 -0
  791. package/dist/devtools/serialize.js.map +1 -0
  792. package/dist/devtools/session.js +111 -0
  793. package/dist/devtools/session.js.map +1 -0
  794. package/dist/devtools/transport.js +67 -0
  795. package/dist/devtools/transport.js.map +1 -0
  796. package/dist/devtools/useDevtoolsRoot.js +81 -0
  797. package/dist/devtools/useDevtoolsRoot.js.map +1 -0
  798. package/dist/devtools-protocol.d.ts +435 -0
  799. package/dist/devtools-protocol.js +7 -0
  800. package/dist/devtools.d.ts +8 -0
  801. package/dist/devtools.js +12 -0
  802. package/dist/devtools.js.map +1 -0
  803. package/dist/features/chrome-caps/buildChromeCtx.js +12 -10
  804. package/dist/features/chrome-caps/buildChromeCtx.js.map +1 -1
  805. package/dist/features/chrome-caps/conditions.js +103 -25
  806. package/dist/features/chrome-caps/conditions.js.map +1 -1
  807. package/dist/features/chrome-caps/defaults.js +18 -10
  808. package/dist/features/chrome-caps/defaults.js.map +1 -1
  809. package/dist/features/chrome-caps/index.js +8 -7
  810. package/dist/features/chrome-caps/resolve.js +28 -16
  811. package/dist/features/chrome-caps/resolve.js.map +1 -1
  812. package/dist/features/chrome-caps/useChromeCaps.js +52 -44
  813. package/dist/features/chrome-caps/useChromeCaps.js.map +1 -1
  814. package/dist/features/chrome-caps/useHoverTracking.js +58 -26
  815. package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
  816. package/dist/features/ingestion/contentHandlers.js +105 -36
  817. package/dist/features/ingestion/contentHandlers.js.map +1 -1
  818. package/dist/features/ingestion/imageHandler.js +49 -29
  819. package/dist/features/ingestion/imageHandler.js.map +1 -1
  820. package/dist/features/ingestion/openFilePicker.js +27 -9
  821. package/dist/features/ingestion/openFilePicker.js.map +1 -1
  822. package/dist/features/ingestion/placement.js +20 -11
  823. package/dist/features/ingestion/placement.js.map +1 -1
  824. package/dist/features/ingestion/registerKitHandlers.js +35 -18
  825. package/dist/features/ingestion/registerKitHandlers.js.map +1 -1
  826. package/dist/features/ingestion/svgHandler.js +60 -34
  827. package/dist/features/ingestion/svgHandler.js.map +1 -1
  828. package/dist/features/ingestion/textHandler.js +37 -16
  829. package/dist/features/ingestion/textHandler.js.map +1 -1
  830. package/dist/features/ingestion/useCanvasIngestion.js +57 -39
  831. package/dist/features/ingestion/useCanvasIngestion.js.map +1 -1
  832. package/dist/features/ingestion/weaselJsonHandler.js +38 -28
  833. package/dist/features/ingestion/weaselJsonHandler.js.map +1 -1
  834. package/dist/features/longPress/longPressFeedback.js +110 -81
  835. package/dist/features/longPress/longPressFeedback.js.map +1 -1
  836. package/dist/features/measure/actionIds.js +22 -0
  837. package/dist/features/measure/actionIds.js.map +1 -0
  838. package/dist/features/measure/measureCommands.js +180 -0
  839. package/dist/features/measure/measureCommands.js.map +1 -0
  840. package/dist/features/measure/measureContribution.js +57 -0
  841. package/dist/features/measure/measureContribution.js.map +1 -0
  842. package/dist/features/measure/measureEdits.js +82 -0
  843. package/dist/features/measure/measureEdits.js.map +1 -0
  844. package/dist/features/measure/measureGestures.js +185 -0
  845. package/dist/features/measure/measureGestures.js.map +1 -0
  846. package/dist/features/measure/measureHit.js +80 -0
  847. package/dist/features/measure/measureHit.js.map +1 -0
  848. package/dist/features/measure/measureLayer.js +86 -0
  849. package/dist/features/measure/measureLayer.js.map +1 -0
  850. package/dist/features/measure/measurement.js +79 -0
  851. package/dist/features/measure/measurement.js.map +1 -0
  852. package/dist/features/measure/measurements.js +41 -0
  853. package/dist/features/measure/measurements.js.map +1 -0
  854. package/dist/features/modes/modeLayers.js +81 -55
  855. package/dist/features/modes/modeLayers.js.map +1 -1
  856. package/dist/features/modes/modeTriggers.js +66 -0
  857. package/dist/features/modes/modeTriggers.js.map +1 -0
  858. package/dist/features/pathEffects/index.js +35 -0
  859. package/dist/features/pathEffects/index.js.map +1 -0
  860. package/dist/features/pathEffects/readSource.js +46 -0
  861. package/dist/features/pathEffects/readSource.js.map +1 -0
  862. package/dist/features/paths/anchorData.js +65 -0
  863. package/dist/features/paths/anchorData.js.map +1 -0
  864. package/dist/features/paths/anchorMarkers.js +137 -0
  865. package/dist/features/paths/anchorMarkers.js.map +1 -0
  866. package/dist/features/paths/editablePath.js +149 -46
  867. package/dist/features/paths/editablePath.js.map +1 -1
  868. package/dist/features/paths/index.js +12 -9
  869. package/dist/features/paths/originProjection.js +16 -9
  870. package/dist/features/paths/originProjection.js.map +1 -1
  871. package/dist/features/paths/pathEditExtension.js +26 -0
  872. package/dist/features/paths/pathEditExtension.js.map +1 -0
  873. package/dist/features/paths/pathEditState.js +107 -26
  874. package/dist/features/paths/pathEditState.js.map +1 -1
  875. package/dist/features/paths/pathEditingOverlayLayer.js +58 -110
  876. package/dist/features/paths/pathEditingOverlayLayer.js.map +1 -1
  877. package/dist/features/paths/pathLayer.js +79 -29
  878. package/dist/features/paths/pathLayer.js.map +1 -1
  879. package/dist/features/paths/pathRepresentation.js +27 -0
  880. package/dist/features/paths/pathRepresentation.js.map +1 -0
  881. package/dist/features/paths/pathSnap/glyphs.js +39 -0
  882. package/dist/features/paths/pathSnap/glyphs.js.map +1 -0
  883. package/dist/features/paths/pathSnap/pathSnapSource.js +82 -0
  884. package/dist/features/paths/pathSnap/pathSnapSource.js.map +1 -0
  885. package/dist/features/paths/pathSnap/sceneIndex.js +85 -0
  886. package/dist/features/paths/pathSnap/sceneIndex.js.map +1 -0
  887. package/dist/features/paths/pathSnap/snapGeometry.js +47 -0
  888. package/dist/features/paths/pathSnap/snapGeometry.js.map +1 -0
  889. package/dist/features/paths/penPreviewLayer.js +135 -102
  890. package/dist/features/paths/penPreviewLayer.js.map +1 -1
  891. package/dist/features/paths/shapeGenerator.js +112 -60
  892. package/dist/features/paths/shapeGenerator.js.map +1 -1
  893. package/dist/features/paths/strokeOutline.js +15 -0
  894. package/dist/features/paths/strokeOutline.js.map +1 -0
  895. package/dist/features/paths/useAnchorFields.js +35 -0
  896. package/dist/features/paths/useAnchorFields.js.map +1 -0
  897. package/dist/features/paths/usePathEdit.js +58 -28
  898. package/dist/features/paths/usePathEdit.js.map +1 -1
  899. package/dist/features/poseRun/usePoseRun.js +110 -43
  900. package/dist/features/poseRun/usePoseRun.js.map +1 -1
  901. package/dist/features/selection/handleCommands.js +116 -0
  902. package/dist/features/selection/handleCommands.js.map +1 -0
  903. package/dist/features/selection/overlay.js +288 -328
  904. package/dist/features/selection/overlay.js.map +1 -1
  905. package/dist/features/selection/selectionPose.js +112 -0
  906. package/dist/features/selection/selectionPose.js.map +1 -0
  907. package/dist/features/snap/angle2d.js +158 -0
  908. package/dist/features/snap/angle2d.js.map +1 -0
  909. package/dist/features/snap/debugCandidates.js +27 -0
  910. package/dist/features/snap/debugCandidates.js.map +1 -0
  911. package/dist/features/snap/gather.js +79 -0
  912. package/dist/features/snap/gather.js.map +1 -0
  913. package/dist/features/snap/inputSubspace.js +46 -0
  914. package/dist/features/snap/inputSubspace.js.map +1 -0
  915. package/dist/features/snap/lazySession.js +17 -0
  916. package/dist/features/snap/lazySession.js.map +1 -0
  917. package/dist/features/snap/marks.js +29 -0
  918. package/dist/features/snap/marks.js.map +1 -0
  919. package/dist/features/snap/outcomeStore.js +25 -0
  920. package/dist/features/snap/outcomeStore.js.map +1 -0
  921. package/dist/features/snap/pointSnap.js +48 -0
  922. package/dist/features/snap/pointSnap.js.map +1 -0
  923. package/dist/features/snap/probes2d.js +99 -0
  924. package/dist/features/snap/probes2d.js.map +1 -0
  925. package/dist/features/snap/readoutDraw.js +93 -0
  926. package/dist/features/snap/readoutDraw.js.map +1 -0
  927. package/dist/features/snap/readoutLayer.js +49 -0
  928. package/dist/features/snap/readoutLayer.js.map +1 -0
  929. package/dist/features/snap/registry.js +27 -0
  930. package/dist/features/snap/registry.js.map +1 -0
  931. package/dist/features/snap/resizeBox.js +137 -0
  932. package/dist/features/snap/resizeBox.js.map +1 -0
  933. package/dist/features/snap/roles.js +32 -0
  934. package/dist/features/snap/roles.js.map +1 -0
  935. package/dist/features/snap/rotationSource.js +47 -0
  936. package/dist/features/snap/rotationSource.js.map +1 -0
  937. package/dist/features/snap/sceneReads.js +45 -0
  938. package/dist/features/snap/sceneReads.js.map +1 -0
  939. package/dist/features/snap/sceneSession2d.js +81 -0
  940. package/dist/features/snap/sceneSession2d.js.map +1 -0
  941. package/dist/features/snap/screen.js +23 -0
  942. package/dist/features/snap/screen.js.map +1 -0
  943. package/dist/features/snap/session2d.js +143 -0
  944. package/dist/features/snap/session2d.js.map +1 -0
  945. package/dist/features/snap/spanSnap.js +80 -0
  946. package/dist/features/snap/spanSnap.js.map +1 -0
  947. package/dist/features/snap/stepAngles.js +15 -0
  948. package/dist/features/snap/stepAngles.js.map +1 -0
  949. package/dist/features/text/editingDrawOne.js +32 -0
  950. package/dist/features/text/editingDrawOne.js.map +1 -0
  951. package/dist/features/text/index.js +7 -6
  952. package/dist/features/text/textHitAt.js +51 -0
  953. package/dist/features/text/textHitAt.js.map +1 -0
  954. package/dist/features/text/textLayer.js +21 -27
  955. package/dist/features/text/textLayer.js.map +1 -1
  956. package/dist/features/text/useSceneTextEdit.js +190 -128
  957. package/dist/features/text/useSceneTextEdit.js.map +1 -1
  958. package/dist/features/viewports/viewResolver.js +48 -39
  959. package/dist/features/viewports/viewResolver.js.map +1 -1
  960. package/dist/features/viewports/viewportLayer.js +60 -29
  961. package/dist/features/viewports/viewportLayer.js.map +1 -1
  962. package/dist/iconRegistry/IconRegistryProvider.js +73 -0
  963. package/dist/iconRegistry/IconRegistryProvider.js.map +1 -0
  964. package/dist/iconRegistry/useIconGlyph.js +14 -0
  965. package/dist/iconRegistry/useIconGlyph.js.map +1 -0
  966. package/dist/iconRegistry/useIconVariant.js +29 -0
  967. package/dist/iconRegistry/useIconVariant.js.map +1 -0
  968. package/dist/icons.d.ts +6 -0
  969. package/dist/icons.js +3 -0
  970. package/dist/icons.table.js +13 -0
  971. package/dist/icons.table.js.map +1 -0
  972. package/dist/icons.table.json +546 -0
  973. package/dist/icons2.table.js +9 -0
  974. package/dist/icons2.table.js.map +1 -0
  975. package/dist/index.d.ts +4856 -5666
  976. package/dist/index.js +346 -285
  977. package/dist/input/keyState.js +118 -54
  978. package/dist/input/keyState.js.map +1 -1
  979. package/dist/input/useKeyModifiers.js +13 -7
  980. package/dist/input/useKeyModifiers.js.map +1 -1
  981. package/dist/input/useKeyState.js +23 -16
  982. package/dist/input/useKeyState.js.map +1 -1
  983. package/dist/interactions/actions/align/action.js +78 -45
  984. package/dist/interactions/actions/align/action.js.map +1 -1
  985. package/dist/interactions/actions/align/align.js +86 -48
  986. package/dist/interactions/actions/align/align.js.map +1 -1
  987. package/dist/interactions/actions/booleans/action.js +73 -33
  988. package/dist/interactions/actions/booleans/action.js.map +1 -1
  989. package/dist/interactions/actions/booleans/booleans.js +77 -70
  990. package/dist/interactions/actions/booleans/booleans.js.map +1 -1
  991. package/dist/interactions/actions/booleans/commit.js +49 -0
  992. package/dist/interactions/actions/booleans/commit.js.map +1 -0
  993. package/dist/interactions/actions/booleans/custom.js +48 -0
  994. package/dist/interactions/actions/booleans/custom.js.map +1 -0
  995. package/dist/interactions/actions/booleans/operands.js +43 -32
  996. package/dist/interactions/actions/booleans/operands.js.map +1 -1
  997. package/dist/interactions/actions/booleans/pieces.js +29 -23
  998. package/dist/interactions/actions/booleans/pieces.js.map +1 -1
  999. package/dist/interactions/actions/booleans/placement.js +30 -17
  1000. package/dist/interactions/actions/booleans/placement.js.map +1 -1
  1001. package/dist/interactions/actions/booleans/useBooleans.js +30 -17
  1002. package/dist/interactions/actions/booleans/useBooleans.js.map +1 -1
  1003. package/dist/interactions/actions/booleans/useBooleansAdapter.js +8 -5
  1004. package/dist/interactions/actions/booleans/useBooleansAdapter.js.map +1 -1
  1005. package/dist/interactions/actions/clipboard/action.js +81 -40
  1006. package/dist/interactions/actions/clipboard/action.js.map +1 -1
  1007. package/dist/interactions/actions/clipboard/clipboardOps.js +100 -72
  1008. package/dist/interactions/actions/clipboard/clipboardOps.js.map +1 -1
  1009. package/dist/interactions/actions/clipboard/materializePaste.js +38 -19
  1010. package/dist/interactions/actions/clipboard/materializePaste.js.map +1 -1
  1011. package/dist/interactions/actions/clipboard/wireFormat.js +66 -28
  1012. package/dist/interactions/actions/clipboard/wireFormat.js.map +1 -1
  1013. package/dist/interactions/actions/clone/action.js +102 -70
  1014. package/dist/interactions/actions/clone/action.js.map +1 -1
  1015. package/dist/interactions/actions/clone/behaviors.js +55 -38
  1016. package/dist/interactions/actions/clone/behaviors.js.map +1 -1
  1017. package/dist/interactions/actions/defaultCommitAdapter.js +32 -10
  1018. package/dist/interactions/actions/defaultCommitAdapter.js.map +1 -1
  1019. package/dist/interactions/actions/defaults/anchorEditing.js +252 -111
  1020. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  1021. package/dist/interactions/actions/defaults/anchorFields.js +54 -0
  1022. package/dist/interactions/actions/defaults/anchorFields.js.map +1 -0
  1023. package/dist/interactions/actions/defaults/anchorHandles.js +31 -27
  1024. package/dist/interactions/actions/defaults/anchorHandles.js.map +1 -1
  1025. package/dist/interactions/actions/defaults/anchorJoin.js +55 -37
  1026. package/dist/interactions/actions/defaults/anchorJoin.js.map +1 -1
  1027. package/dist/interactions/actions/defaults/areaSelect.js +56 -40
  1028. package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
  1029. package/dist/interactions/actions/defaults/bendSegment.js +67 -31
  1030. package/dist/interactions/actions/defaults/bendSegment.js.map +1 -1
  1031. package/dist/interactions/actions/defaults/cancelGesture.js +12 -5
  1032. package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
  1033. package/dist/interactions/actions/defaults/clearSelection.js +22 -7
  1034. package/dist/interactions/actions/defaults/clearSelection.js.map +1 -1
  1035. package/dist/interactions/actions/defaults/contextMenu.js +149 -0
  1036. package/dist/interactions/actions/defaults/contextMenu.js.map +1 -0
  1037. package/dist/interactions/actions/defaults/copySubtree.js +43 -29
  1038. package/dist/interactions/actions/defaults/copySubtree.js.map +1 -1
  1039. package/dist/interactions/actions/defaults/createPaintAction.js +79 -54
  1040. package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
  1041. package/dist/interactions/actions/defaults/delete.js +92 -55
  1042. package/dist/interactions/actions/defaults/delete.js.map +1 -1
  1043. package/dist/interactions/actions/defaults/duplicate.js +60 -32
  1044. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  1045. package/dist/interactions/actions/defaults/enterPathEdit.js +22 -18
  1046. package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
  1047. package/dist/interactions/actions/defaults/enterTextEdit.js +20 -8
  1048. package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
  1049. package/dist/interactions/actions/defaults/escape.js +16 -7
  1050. package/dist/interactions/actions/defaults/escape.js.map +1 -1
  1051. package/dist/interactions/actions/defaults/exitPathEdit.js +6 -6
  1052. package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
  1053. package/dist/interactions/actions/defaults/group.js +122 -73
  1054. package/dist/interactions/actions/defaults/group.js.map +1 -1
  1055. package/dist/interactions/actions/defaults/ingest.js +58 -39
  1056. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  1057. package/dist/interactions/actions/defaults/insertPathAnchor.js +43 -22
  1058. package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
  1059. package/dist/interactions/actions/defaults/nudge.js +57 -55
  1060. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  1061. package/dist/interactions/actions/defaults/nudgeSteps.js +17 -12
  1062. package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -1
  1063. package/dist/interactions/actions/defaults/pathEditMarks.js +60 -0
  1064. package/dist/interactions/actions/defaults/pathEditMarks.js.map +1 -0
  1065. package/dist/interactions/actions/defaults/pathEditTools.js +57 -0
  1066. package/dist/interactions/actions/defaults/pathEditTools.js.map +1 -0
  1067. package/dist/interactions/actions/defaults/pinchZoom.js +55 -39
  1068. package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
  1069. package/dist/interactions/actions/defaults/reorder.js +71 -40
  1070. package/dist/interactions/actions/defaults/reorder.js.map +1 -1
  1071. package/dist/interactions/actions/defaults/requiresSelection.js +13 -6
  1072. package/dist/interactions/actions/defaults/requiresSelection.js.map +1 -1
  1073. package/dist/interactions/actions/defaults/segmentUnder.js +24 -16
  1074. package/dist/interactions/actions/defaults/segmentUnder.js.map +1 -1
  1075. package/dist/interactions/actions/defaults/selectAll.js +21 -7
  1076. package/dist/interactions/actions/defaults/selectAll.js.map +1 -1
  1077. package/dist/interactions/actions/defaults/setFill.js +37 -21
  1078. package/dist/interactions/actions/defaults/setFill.js.map +1 -1
  1079. package/dist/interactions/actions/defaults/setFillOpacity.js +19 -10
  1080. package/dist/interactions/actions/defaults/setFillOpacity.js.map +1 -1
  1081. package/dist/interactions/actions/defaults/setStroke.js +46 -25
  1082. package/dist/interactions/actions/defaults/setStroke.js.map +1 -1
  1083. package/dist/interactions/actions/defaults/setStrokeOpacity.js +19 -11
  1084. package/dist/interactions/actions/defaults/setStrokeOpacity.js.map +1 -1
  1085. package/dist/interactions/actions/defaults/slice.js +42 -17
  1086. package/dist/interactions/actions/defaults/slice.js.map +1 -1
  1087. package/dist/interactions/actions/defaults/sliceOps.js +63 -42
  1088. package/dist/interactions/actions/defaults/sliceOps.js.map +1 -1
  1089. package/dist/interactions/actions/defaults/toolActivate.js +34 -16
  1090. package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
  1091. package/dist/interactions/actions/defaults/toolResetToDefault.js +29 -10
  1092. package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
  1093. package/dist/interactions/actions/defaults/undoRedo.js +26 -20
  1094. package/dist/interactions/actions/defaults/undoRedo.js.map +1 -1
  1095. package/dist/interactions/actions/defaults/viewportDragPan.js +91 -58
  1096. package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
  1097. package/dist/interactions/actions/defaults/viewportWheelPan.js +42 -23
  1098. package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
  1099. package/dist/interactions/actions/defaults/viewportZoom.js +107 -59
  1100. package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
  1101. package/dist/interactions/actions/distribute/action.js +64 -39
  1102. package/dist/interactions/actions/distribute/action.js.map +1 -1
  1103. package/dist/interactions/actions/distribute/distribute.js +53 -34
  1104. package/dist/interactions/actions/distribute/distribute.js.map +1 -1
  1105. package/dist/interactions/actions/distribute/plan.js +40 -22
  1106. package/dist/interactions/actions/distribute/plan.js.map +1 -1
  1107. package/dist/interactions/actions/drawnBoxes.js +32 -0
  1108. package/dist/interactions/actions/drawnBoxes.js.map +1 -0
  1109. package/dist/interactions/actions/edit-anchors/action.js +245 -72
  1110. package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
  1111. package/dist/interactions/actions/edit-anchors/extensionDrags.js +50 -0
  1112. package/dist/interactions/actions/edit-anchors/extensionDrags.js.map +1 -0
  1113. package/dist/interactions/actions/edit-anchors/geometry.js +74 -47
  1114. package/dist/interactions/actions/edit-anchors/geometry.js.map +1 -1
  1115. package/dist/interactions/actions/edit-anchors/handleDrag.js +101 -0
  1116. package/dist/interactions/actions/edit-anchors/handleDrag.js.map +1 -0
  1117. package/dist/interactions/actions/edit-anchors/handles.js +41 -27
  1118. package/dist/interactions/actions/edit-anchors/handles.js.map +1 -1
  1119. package/dist/interactions/actions/edit-anchors/params.js +12 -0
  1120. package/dist/interactions/actions/edit-anchors/params.js.map +1 -0
  1121. package/dist/interactions/actions/edit-anchors/preview.js +93 -18
  1122. package/dist/interactions/actions/edit-anchors/preview.js.map +1 -1
  1123. package/dist/interactions/actions/edit-anchors/symmetry.js +12 -7
  1124. package/dist/interactions/actions/edit-anchors/symmetry.js.map +1 -1
  1125. package/dist/interactions/actions/flip/action.js +121 -61
  1126. package/dist/interactions/actions/flip/action.js.map +1 -1
  1127. package/dist/interactions/actions/flip/helpers.js +69 -36
  1128. package/dist/interactions/actions/flip/helpers.js.map +1 -1
  1129. package/dist/interactions/actions/geometryProjection.js +17 -12
  1130. package/dist/interactions/actions/geometryProjection.js.map +1 -1
  1131. package/dist/interactions/actions/gestureFrames.js +20 -11
  1132. package/dist/interactions/actions/gestureFrames.js.map +1 -1
  1133. package/dist/interactions/actions/gestureLifecycle.js +96 -48
  1134. package/dist/interactions/actions/gestureLifecycle.js.map +1 -1
  1135. package/dist/interactions/actions/hitSelection.js +6 -4
  1136. package/dist/interactions/actions/hitSelection.js.map +1 -1
  1137. package/dist/interactions/actions/insert/action.js +70 -42
  1138. package/dist/interactions/actions/insert/action.js.map +1 -1
  1139. package/dist/interactions/actions/insert/commit.js +44 -22
  1140. package/dist/interactions/actions/insert/commit.js.map +1 -1
  1141. package/dist/interactions/actions/insert/extras.js +60 -38
  1142. package/dist/interactions/actions/insert/extras.js.map +1 -1
  1143. package/dist/interactions/actions/insert/frame.js +58 -39
  1144. package/dist/interactions/actions/insert/frame.js.map +1 -1
  1145. package/dist/interactions/actions/insert/geometry.js +29 -25
  1146. package/dist/interactions/actions/insert/geometry.js.map +1 -1
  1147. package/dist/interactions/actions/insert/parent.js +11 -0
  1148. package/dist/interactions/actions/insert/parent.js.map +1 -0
  1149. package/dist/interactions/actions/insert/placeAction.js +113 -0
  1150. package/dist/interactions/actions/insert/placeAction.js.map +1 -0
  1151. package/dist/interactions/actions/insert/repositionAction.js +26 -11
  1152. package/dist/interactions/actions/insert/repositionAction.js.map +1 -1
  1153. package/dist/interactions/actions/insert/rotateAction.js +19 -8
  1154. package/dist/interactions/actions/insert/rotateAction.js.map +1 -1
  1155. package/dist/interactions/actions/insert/session.js +61 -41
  1156. package/dist/interactions/actions/insert/session.js.map +1 -1
  1157. package/dist/interactions/actions/insert/shape.js +83 -25
  1158. package/dist/interactions/actions/insert/shape.js.map +1 -1
  1159. package/dist/interactions/actions/lasso-select/action.js +160 -100
  1160. package/dist/interactions/actions/lasso-select/action.js.map +1 -1
  1161. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +44 -25
  1162. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js.map +1 -1
  1163. package/dist/interactions/actions/move/action.js +91 -52
  1164. package/dist/interactions/actions/move/action.js.map +1 -1
  1165. package/dist/interactions/actions/move/behaviors/layoutDrop.js +55 -36
  1166. package/dist/interactions/actions/move/behaviors/layoutDrop.js.map +1 -1
  1167. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js +20 -10
  1168. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js.map +1 -1
  1169. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +40 -24
  1170. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js.map +1 -1
  1171. package/dist/interactions/actions/move/behaviors/snapToContainer.js +102 -64
  1172. package/dist/interactions/actions/move/behaviors/snapToContainer.js.map +1 -1
  1173. package/dist/interactions/actions/move/capture.js +103 -78
  1174. package/dist/interactions/actions/move/capture.js.map +1 -1
  1175. package/dist/interactions/actions/move/commit/index.js +41 -34
  1176. package/dist/interactions/actions/move/commit/index.js.map +1 -1
  1177. package/dist/interactions/actions/move/commit/layoutDrop.js +43 -32
  1178. package/dist/interactions/actions/move/commit/layoutDrop.js.map +1 -1
  1179. package/dist/interactions/actions/move/commit/layoutRelease.js +97 -77
  1180. package/dist/interactions/actions/move/commit/layoutRelease.js.map +1 -1
  1181. package/dist/interactions/actions/move/commit/rebase.js +16 -13
  1182. package/dist/interactions/actions/move/commit/rebase.js.map +1 -1
  1183. package/dist/interactions/actions/move/commit/reparent.js +89 -57
  1184. package/dist/interactions/actions/move/commit/reparent.js.map +1 -1
  1185. package/dist/interactions/actions/move/delta.js +58 -36
  1186. package/dist/interactions/actions/move/delta.js.map +1 -1
  1187. package/dist/interactions/actions/move/frame.js +66 -35
  1188. package/dist/interactions/actions/move/frame.js.map +1 -1
  1189. package/dist/interactions/actions/move/gestureAdapter.js +30 -20
  1190. package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
  1191. package/dist/interactions/actions/move/landedDescendants.js +43 -25
  1192. package/dist/interactions/actions/move/landedDescendants.js.map +1 -1
  1193. package/dist/interactions/actions/move/layout/container.js +93 -72
  1194. package/dist/interactions/actions/move/layout/container.js.map +1 -1
  1195. package/dist/interactions/actions/move/layout/dragged.js +61 -39
  1196. package/dist/interactions/actions/move/layout/dragged.js.map +1 -1
  1197. package/dist/interactions/actions/move/layout/dropPass.js +153 -94
  1198. package/dist/interactions/actions/move/layout/dropPass.js.map +1 -1
  1199. package/dist/interactions/actions/move/layout/exits.js +58 -30
  1200. package/dist/interactions/actions/move/layout/exits.js.map +1 -1
  1201. package/dist/interactions/actions/move/layout/glide.js +55 -34
  1202. package/dist/interactions/actions/move/layout/glide.js.map +1 -1
  1203. package/dist/interactions/actions/move/session.js +96 -56
  1204. package/dist/interactions/actions/move/session.js.map +1 -1
  1205. package/dist/interactions/actions/move/translate.js +37 -51
  1206. package/dist/interactions/actions/move/translate.js.map +1 -1
  1207. package/dist/interactions/actions/moveNodes.js +87 -0
  1208. package/dist/interactions/actions/moveNodes.js.map +1 -0
  1209. package/dist/interactions/actions/outlines/createOutlines.js +28 -20
  1210. package/dist/interactions/actions/outlines/createOutlines.js.map +1 -1
  1211. package/dist/interactions/actions/outlines/createOutlinesAction.js +43 -31
  1212. package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -1
  1213. package/dist/interactions/actions/outlines/outlineStroke.js +68 -45
  1214. package/dist/interactions/actions/outlines/outlineStroke.js.map +1 -1
  1215. package/dist/interactions/actions/outlines/outlineStrokeAction.js +24 -19
  1216. package/dist/interactions/actions/outlines/outlineStrokeAction.js.map +1 -1
  1217. package/dist/interactions/actions/outlines/replaceWithPaths.js +57 -42
  1218. package/dist/interactions/actions/outlines/replaceWithPaths.js.map +1 -1
  1219. package/dist/interactions/actions/outlines/strokeRegion.js +37 -22
  1220. package/dist/interactions/actions/outlines/strokeRegion.js.map +1 -1
  1221. package/dist/interactions/actions/outlines/useCreateOutlinesAdapter.js +8 -5
  1222. package/dist/interactions/actions/outlines/useCreateOutlinesAdapter.js.map +1 -1
  1223. package/dist/interactions/actions/pathCommands/cutJoin.js +119 -72
  1224. package/dist/interactions/actions/pathCommands/cutJoin.js.map +1 -1
  1225. package/dist/interactions/actions/pathCommands/livePathEdit.js +74 -40
  1226. package/dist/interactions/actions/pathCommands/livePathEdit.js.map +1 -1
  1227. package/dist/interactions/actions/pathCommands/pathNodes.js +91 -82
  1228. package/dist/interactions/actions/pathCommands/pathNodes.js.map +1 -1
  1229. package/dist/interactions/actions/pathCommands/simplifyOffset.js +52 -28
  1230. package/dist/interactions/actions/pathCommands/simplifyOffset.js.map +1 -1
  1231. package/dist/interactions/actions/pathGestureTags.js +29 -0
  1232. package/dist/interactions/actions/pathGestureTags.js.map +1 -0
  1233. package/dist/interactions/actions/planeInput.js +198 -123
  1234. package/dist/interactions/actions/planeInput.js.map +1 -1
  1235. package/dist/interactions/actions/pointerState.js +12 -7
  1236. package/dist/interactions/actions/pointerState.js.map +1 -1
  1237. package/dist/interactions/actions/poseDescriptorDep.js +24 -14
  1238. package/dist/interactions/actions/poseDescriptorDep.js.map +1 -1
  1239. package/dist/interactions/actions/poseFrame.js +45 -28
  1240. package/dist/interactions/actions/poseFrame.js.map +1 -1
  1241. package/dist/interactions/actions/resize/action.js +103 -63
  1242. package/dist/interactions/actions/resize/action.js.map +1 -1
  1243. package/dist/interactions/actions/resize/aspect.js +44 -0
  1244. package/dist/interactions/actions/resize/aspect.js.map +1 -0
  1245. package/dist/interactions/actions/resize/behaviors/clampMinSize.js +38 -13
  1246. package/dist/interactions/actions/resize/behaviors/clampMinSize.js.map +1 -1
  1247. package/dist/interactions/actions/resize/boxFrame.js +15 -11
  1248. package/dist/interactions/actions/resize/boxFrame.js.map +1 -1
  1249. package/dist/interactions/actions/resize/capture.js +105 -62
  1250. package/dist/interactions/actions/resize/capture.js.map +1 -1
  1251. package/dist/interactions/actions/resize/commit.js +76 -56
  1252. package/dist/interactions/actions/resize/commit.js.map +1 -1
  1253. package/dist/interactions/actions/resize/cornerHandles.js +154 -17
  1254. package/dist/interactions/actions/resize/cornerHandles.js.map +1 -1
  1255. package/dist/interactions/actions/resize/frame.js +133 -66
  1256. package/dist/interactions/actions/resize/frame.js.map +1 -1
  1257. package/dist/interactions/actions/resize/minimum.js +35 -0
  1258. package/dist/interactions/actions/resize/minimum.js.map +1 -0
  1259. package/dist/interactions/actions/resize/replay.js +40 -30
  1260. package/dist/interactions/actions/resize/replay.js.map +1 -1
  1261. package/dist/interactions/actions/resize/ruleBounds.js +8 -5
  1262. package/dist/interactions/actions/resize/ruleBounds.js.map +1 -1
  1263. package/dist/interactions/actions/resize/session.js +97 -50
  1264. package/dist/interactions/actions/resize/session.js.map +1 -1
  1265. package/dist/interactions/actions/resolveOverlays.js +48 -33
  1266. package/dist/interactions/actions/resolveOverlays.js.map +1 -1
  1267. package/dist/interactions/actions/resolvePreviews.js +63 -46
  1268. package/dist/interactions/actions/resolvePreviews.js.map +1 -1
  1269. package/dist/interactions/actions/rotate/action.js +71 -42
  1270. package/dist/interactions/actions/rotate/action.js.map +1 -1
  1271. package/dist/interactions/actions/rotate/commit.js +40 -31
  1272. package/dist/interactions/actions/rotate/commit.js.map +1 -1
  1273. package/dist/interactions/actions/rotate/frame.js +75 -47
  1274. package/dist/interactions/actions/rotate/frame.js.map +1 -1
  1275. package/dist/interactions/actions/rotate/geometry.js +36 -24
  1276. package/dist/interactions/actions/rotate/geometry.js.map +1 -1
  1277. package/dist/interactions/actions/rotate/handle.js +28 -15
  1278. package/dist/interactions/actions/rotate/handle.js.map +1 -1
  1279. package/dist/interactions/actions/rotate/replay.js +22 -18
  1280. package/dist/interactions/actions/rotate/replay.js.map +1 -1
  1281. package/dist/interactions/actions/rotate/session.js +117 -76
  1282. package/dist/interactions/actions/rotate/session.js.map +1 -1
  1283. package/dist/interactions/actions/selectionSubtree.js +135 -53
  1284. package/dist/interactions/actions/selectionSubtree.js.map +1 -1
  1285. package/dist/interactions/actions/spatialReference.js +33 -26
  1286. package/dist/interactions/actions/spatialReference.js.map +1 -1
  1287. package/dist/interactions/actions/testUtils.js +53 -0
  1288. package/dist/interactions/actions/testUtils.js.map +1 -0
  1289. package/dist/interactions/actions/transform-again/action.js +49 -35
  1290. package/dist/interactions/actions/transform-again/action.js.map +1 -1
  1291. package/dist/interactions/actions/transform-again/memory.js +32 -21
  1292. package/dist/interactions/actions/transform-again/memory.js.map +1 -1
  1293. package/dist/interactions/actions/transformFinish.js +106 -0
  1294. package/dist/interactions/actions/transformFinish.js.map +1 -0
  1295. package/dist/interactions/actions/useActionSet.js +83 -0
  1296. package/dist/interactions/actions/useActionSet.js.map +1 -0
  1297. package/dist/interactions/actions/useStandardActions.js +23 -165
  1298. package/dist/interactions/actions/useStandardActions.js.map +1 -1
  1299. package/dist/interactions/gestures/dragGesture/dragGesture.js +109 -68
  1300. package/dist/interactions/gestures/dragGesture/dragGesture.js.map +1 -1
  1301. package/dist/interactions/gestures/dragGesture/dragPointOf.js +17 -10
  1302. package/dist/interactions/gestures/dragGesture/dragPointOf.js.map +1 -1
  1303. package/dist/interactions/gestures/dragRadial/dragRadial.js +129 -93
  1304. package/dist/interactions/gestures/dragRadial/dragRadial.js.map +1 -1
  1305. package/dist/interactions/gestures/dragRect/dragRect.js +155 -111
  1306. package/dist/interactions/gestures/dragRect/dragRect.js.map +1 -1
  1307. package/dist/interactions/gestures/handleDrag/handleDrag.js +52 -30
  1308. package/dist/interactions/gestures/handleDrag/handleDrag.js.map +1 -1
  1309. package/dist/interactions/gestures/pointerDrag/pointerDrag.js +168 -97
  1310. package/dist/interactions/gestures/pointerDrag/pointerDrag.js.map +1 -1
  1311. package/dist/interactions/gestures/shared/originProjection.js +32 -25
  1312. package/dist/interactions/gestures/shared/originProjection.js.map +1 -1
  1313. package/dist/interactions/gestures/shared/screenTolerance.js +26 -17
  1314. package/dist/interactions/gestures/shared/screenTolerance.js.map +1 -1
  1315. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +39 -21
  1316. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js.map +1 -1
  1317. package/dist/kitSettingsSchema.js +76 -0
  1318. package/dist/kitSettingsSchema.js.map +1 -0
  1319. package/dist/{math-CYUjoyyU.d.ts → math-CrJULaZI.d.ts} +5 -6
  1320. package/dist/math.d.ts +4 -5
  1321. package/dist/math.js +7 -6
  1322. package/dist/mesh.js +3 -2
  1323. package/dist/move.d.ts +9 -7
  1324. package/dist/move.js +4 -3
  1325. package/dist/{originProjection-CoNVpITV.d.ts → options-DBxEryYq.d.ts} +4 -27
  1326. package/dist/originProjection-gY0jb4Wb.d.ts +24 -0
  1327. package/dist/patterns-builtin.js +3 -2
  1328. package/dist/{poseDescriptor-Bqk-11Rl.d.ts → poseDescriptor-DN2yfnq_.d.ts} +7 -7
  1329. package/dist/renderer.d.ts +1 -1
  1330. package/dist/renderer.js +3 -2
  1331. package/dist/resize.d.ts +11 -28
  1332. package/dist/resize.js +6 -7
  1333. package/dist/routing.d.ts +1 -1
  1334. package/dist/routing.js +3 -2
  1335. package/dist/style.css +88 -1
  1336. package/dist/test-hook/createTestHook.js +23 -20
  1337. package/dist/test-hook/createTestHook.js.map +1 -1
  1338. package/dist/test-hook/install.js +32 -13
  1339. package/dist/test-hook/install.js.map +1 -1
  1340. package/dist/test-hook/useTestHook.js +23 -16
  1341. package/dist/test-hook/useTestHook.js.map +1 -1
  1342. package/dist/test-seams.d.ts +168 -1
  1343. package/dist/test-seams.js +8 -3
  1344. package/dist/tools/builtin/ellipse/useEllipseTool.js +22 -17
  1345. package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
  1346. package/dist/tools/builtin/eyedropper/useEyedropperTool.js +44 -28
  1347. package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
  1348. package/dist/tools/builtin/hand/dragPanContribution.js +12 -7
  1349. package/dist/tools/builtin/hand/dragPanContribution.js.map +1 -1
  1350. package/dist/tools/builtin/hand/useHandTool.js +21 -13
  1351. package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
  1352. package/dist/tools/builtin/image/useImageTool.js +28 -19
  1353. package/dist/tools/builtin/image/useImageTool.js.map +1 -1
  1354. package/dist/tools/builtin/lasso/useLassoTool.js +48 -36
  1355. package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
  1356. package/dist/tools/builtin/line/useLineTool.js +24 -17
  1357. package/dist/tools/builtin/line/useLineTool.js.map +1 -1
  1358. package/dist/tools/builtin/measure/useMeasureTool.js +84 -0
  1359. package/dist/tools/builtin/measure/useMeasureTool.js.map +1 -0
  1360. package/dist/tools/builtin/pen/penHandle.js +58 -0
  1361. package/dist/tools/builtin/pen/penHandle.js.map +1 -0
  1362. package/dist/tools/builtin/pen/usePenTool.js +461 -303
  1363. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  1364. package/dist/tools/builtin/pencil/usePencilTool.js +20 -15
  1365. package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
  1366. package/dist/tools/builtin/pickTopMostHit.js +51 -31
  1367. package/dist/tools/builtin/pickTopMostHit.js.map +1 -1
  1368. package/dist/tools/builtin/polygon/usePolygonTool.js +45 -28
  1369. package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
  1370. package/dist/tools/builtin/rect/useRectTool.js +24 -16
  1371. package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
  1372. package/dist/tools/builtin/select/adapterPointQuery.js +47 -30
  1373. package/dist/tools/builtin/select/adapterPointQuery.js.map +1 -1
  1374. package/dist/tools/builtin/select/selectionContributions.js +94 -56
  1375. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  1376. package/dist/tools/builtin/select/useSelectTool.js +155 -108
  1377. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  1378. package/dist/tools/builtin/shared/insertToolOptions.js +5 -4
  1379. package/dist/tools/builtin/shared/insertToolOptions.js.map +1 -1
  1380. package/dist/tools/builtin/shared/pointerFollower.js +15 -8
  1381. package/dist/tools/builtin/shared/pointerFollower.js.map +1 -1
  1382. package/dist/tools/builtin/slice/useSliceTool.js +148 -101
  1383. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  1384. package/dist/tools/builtin/star/useStarTool.js +48 -31
  1385. package/dist/tools/builtin/star/useStarTool.js.map +1 -1
  1386. package/dist/tools/builtin/sticky/stickyNode.js +49 -0
  1387. package/dist/tools/builtin/sticky/stickyNode.js.map +1 -0
  1388. package/dist/tools/builtin/sticky/useStickyTool.js +86 -0
  1389. package/dist/tools/builtin/sticky/useStickyTool.js.map +1 -0
  1390. package/dist/tools/builtin/text/useTextTool.js +59 -34
  1391. package/dist/tools/builtin/text/useTextTool.js.map +1 -1
  1392. package/dist/tools/index.js +26 -0
  1393. package/dist/tools/overlayBinding.js +7 -5
  1394. package/dist/tools/overlayBinding.js.map +1 -1
  1395. package/dist/tools/useKeybindings.js +62 -46
  1396. package/dist/tools/useKeybindings.js.map +1 -1
  1397. package/dist/{types-DBbbCy0i.d.ts → types-7puAuVD2.d.ts} +5 -264
  1398. package/dist/types-BN9hbdMI.d.ts +184 -0
  1399. package/dist/types-CniVctmk.d.ts +949 -0
  1400. package/dist/types-oFeQ5VjV.d.ts +264 -0
  1401. package/dist/util/color.js +39 -18
  1402. package/dist/util/color.js.map +1 -1
  1403. package/dist/util/paint.js +93 -38
  1404. package/dist/util/paint.js.map +1 -1
  1405. package/dist/version.js +11 -3
  1406. package/dist/version.js.map +1 -1
  1407. package/package.json +46 -24
  1408. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js +0 -126
  1409. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js.map +0 -1
  1410. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js +0 -55
  1411. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js.map +0 -1
  1412. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js +0 -16
  1413. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js.map +0 -1
  1414. package/dist/canvas/SceneCanvas/isDev.js +0 -12
  1415. package/dist/canvas/SceneCanvas/isDev.js.map +0 -1
  1416. package/dist/canvas/SceneCanvas/useViewLayerGate.js +0 -20
  1417. package/dist/canvas/SceneCanvas/useViewLayerGate.js.map +0 -1
  1418. package/dist/cornerHandles-BSKbyuvQ.d.ts +0 -104
  1419. package/dist/icons/ArrowIcon.js +0 -23
  1420. package/dist/icons/ArrowIcon.js.map +0 -1
  1421. package/dist/icons/EllipseIcon.js +0 -21
  1422. package/dist/icons/EllipseIcon.js.map +0 -1
  1423. package/dist/icons/EyedropperIcon.js +0 -49
  1424. package/dist/icons/EyedropperIcon.js.map +0 -1
  1425. package/dist/icons/HandIcon.js +0 -59
  1426. package/dist/icons/HandIcon.js.map +0 -1
  1427. package/dist/icons/ImageIcon.js +0 -34
  1428. package/dist/icons/ImageIcon.js.map +0 -1
  1429. package/dist/icons/LassoIcon.js +0 -22
  1430. package/dist/icons/LassoIcon.js.map +0 -1
  1431. package/dist/icons/LineIcon.js +0 -22
  1432. package/dist/icons/LineIcon.js.map +0 -1
  1433. package/dist/icons/PenIcon.js +0 -36
  1434. package/dist/icons/PenIcon.js.map +0 -1
  1435. package/dist/icons/PencilIcon.js +0 -25
  1436. package/dist/icons/PencilIcon.js.map +0 -1
  1437. package/dist/icons/PolygonIcon.js +0 -19
  1438. package/dist/icons/PolygonIcon.js.map +0 -1
  1439. package/dist/icons/RectIcon.js +0 -37
  1440. package/dist/icons/RectIcon.js.map +0 -1
  1441. package/dist/icons/SelectIcon.js +0 -20
  1442. package/dist/icons/SelectIcon.js.map +0 -1
  1443. package/dist/icons/SliceIcon.js +0 -24
  1444. package/dist/icons/SliceIcon.js.map +0 -1
  1445. package/dist/icons/StarIcon.js +0 -19
  1446. package/dist/icons/StarIcon.js.map +0 -1
  1447. package/dist/icons/TextIcon.js +0 -19
  1448. package/dist/icons/TextIcon.js.map +0 -1
  1449. package/dist/icons/UnknownIcon.js +0 -33
  1450. package/dist/icons/UnknownIcon.js.map +0 -1
  1451. package/dist/icons/_base.js +0 -12
  1452. package/dist/icons/_base.js.map +0 -1
  1453. package/dist/interactions/actions/actionShortcuts.js +0 -32
  1454. package/dist/interactions/actions/actionShortcuts.js.map +0 -1
  1455. package/dist/interactions/actions/defaults/icons/actionGlyphIcons.js +0 -40
  1456. package/dist/interactions/actions/defaults/icons/actionGlyphIcons.js.map +0 -1
  1457. package/dist/interactions/actions/defaults/icons/actionGlyphs.js +0 -10
  1458. package/dist/interactions/actions/defaults/icons/actionGlyphs.js.map +0 -1
  1459. package/dist/interactions/actions/defaults/icons/alignIcons.js +0 -173
  1460. package/dist/interactions/actions/defaults/icons/alignIcons.js.map +0 -1
  1461. package/dist/interactions/actions/defaults/icons/anchorIcons.js +0 -75
  1462. package/dist/interactions/actions/defaults/icons/anchorIcons.js.map +0 -1
  1463. package/dist/interactions/actions/defaults/icons/booleanIcons.js +0 -194
  1464. package/dist/interactions/actions/defaults/icons/booleanIcons.js.map +0 -1
  1465. package/dist/interactions/actions/defaults/icons/distributeIcons.js +0 -63
  1466. package/dist/interactions/actions/defaults/icons/distributeIcons.js.map +0 -1
  1467. package/dist/interactions/actions/defaults/icons/editIcons.js +0 -307
  1468. package/dist/interactions/actions/defaults/icons/editIcons.js.map +0 -1
  1469. package/dist/interactions/actions/defaults/icons/outlineIcons.js +0 -91
  1470. package/dist/interactions/actions/defaults/icons/outlineIcons.js.map +0 -1
  1471. package/dist/interactions/actions/resize/behaviors/index.js +0 -8
  1472. package/dist/interactions/actions/resize/behaviors/index.js.map +0 -1
  1473. package/dist/interactions/actions/resize/behaviors/lockAspect.js +0 -24
  1474. package/dist/interactions/actions/resize/behaviors/lockAspect.js.map +0 -1
  1475. package/dist/interactions/actions/resize/pointSnap.js +0 -111
  1476. package/dist/interactions/actions/resize/pointSnap.js.map +0 -1
  1477. package/dist/interactions/actions/rotate/behaviors/index.js +0 -7
  1478. package/dist/interactions/actions/rotate/behaviors/index.js.map +0 -1
  1479. package/dist/interactions/actions/rotate/behaviors/snapRotation.js +0 -12
  1480. package/dist/interactions/actions/rotate/behaviors/snapRotation.js.map +0 -1
  1481. package/dist/interactions/gestures/shared/snap.js +0 -24
  1482. package/dist/interactions/gestures/shared/snap.js.map +0 -1
  1483. package/dist/test-seams-D0pyV3pR.d.ts +0 -149
  1484. package/dist/tools/builtin/bone/boneActions.js +0 -130
  1485. package/dist/tools/builtin/bone/boneActions.js.map +0 -1
  1486. package/dist/tools/builtin/bone/boneOverlay.js +0 -58
  1487. package/dist/tools/builtin/bone/boneOverlay.js.map +0 -1
  1488. package/dist/tools/builtin/bone/placedRig.js +0 -24
  1489. package/dist/tools/builtin/bone/placedRig.js.map +0 -1
  1490. package/dist/tools/builtin/bone/rigEditState.js +0 -21
  1491. package/dist/tools/builtin/bone/rigEditState.js.map +0 -1
  1492. package/dist/tools/builtin/bone/useBoneTool.js +0 -98
  1493. package/dist/tools/builtin/bone/useBoneTool.js.map +0 -1
  1494. package/dist/tools/builtin/weight/useWeightTool.js +0 -77
  1495. package/dist/tools/builtin/weight/useWeightTool.js.map +0 -1
  1496. package/dist/tools/builtin/weight/weightActions.js +0 -112
  1497. package/dist/tools/builtin/weight/weightActions.js.map +0 -1
  1498. package/dist/tools/builtin/weight/weightOverlay.js +0 -61
  1499. package/dist/tools/builtin/weight/weightOverlay.js.map +0 -1
  1500. package/dist/util/constrainTo45.js +0 -17
  1501. package/dist/util/constrainTo45.js.map +0 -1
@@ -1,35 +1,46 @@
1
1
  //#region src/interactions/actions/transform-again/memory.ts
2
- var e = /* @__PURE__ */ new WeakMap();
3
- function t(e, t) {
4
- if (e.length !== t.length) return !1;
5
- let n = new Set(e);
6
- return t.every((e) => n.has(e));
2
+ var LAST = /* @__PURE__ */ new WeakMap();
3
+ function sameIds(a, b) {
4
+ if (a.length !== b.length) return false;
5
+ const set = new Set(a);
6
+ return b.every((id) => set.has(id));
7
7
  }
8
- function n(t) {
9
- return e.get(t)?.transform;
8
+ /**
9
+ * The last transform recorded against `scene`, which `transformAgain` repeats.
10
+ */
11
+ function lastTransform(scene) {
12
+ return LAST.get(scene)?.transform;
10
13
  }
11
- function r(n, r, i) {
12
- let a = e.get(n);
13
- if (r.kind === "translate" && a?.transform.kind === "duplicate" && t(a.subject, i)) {
14
- e.set(n, {
14
+ /**
15
+ * Remember `transform` as the last one `scene` underwent, `subject` being the
16
+ * ids selected once it landed. A translate of exactly the copies a
17
+ * `duplicate` just made folds into it, so the copies' offset from their
18
+ * sources is what repeats: duplicate, drag the copy, and each repeat steps
19
+ * one more copy along.
20
+ */
21
+ function recordTransform(scene, transform, subject) {
22
+ const prev = LAST.get(scene);
23
+ if (transform.kind === "translate" && prev?.transform.kind === "duplicate" && sameIds(prev.subject, subject)) {
24
+ LAST.set(scene, {
15
25
  transform: {
16
26
  kind: "duplicate",
17
- dx: a.transform.dx + r.dx,
18
- dy: a.transform.dy + r.dy
27
+ dx: prev.transform.dx + transform.dx,
28
+ dy: prev.transform.dy + transform.dy
19
29
  },
20
- subject: [...i]
30
+ subject: [...subject]
21
31
  });
22
32
  return;
23
33
  }
24
- e.set(n, {
25
- transform: r,
26
- subject: [...i]
34
+ LAST.set(scene, {
35
+ transform,
36
+ subject: [...subject]
27
37
  });
28
38
  }
29
- function i(t) {
30
- e.delete(t);
39
+ /** Drop what `scene` remembers, so `transformAgain` has nothing to repeat. */
40
+ function forgetTransform(scene) {
41
+ LAST.delete(scene);
31
42
  }
32
- //#endregion
33
- export { i as forgetTransform, n as lastTransform, r as recordTransform };
34
43
 
44
+ //#endregion
45
+ export { forgetTransform, lastTransform, recordTransform };
35
46
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","names":["LAST","sameIds","a","b","set","id","lastTransform","scene","recordTransform","prev","transform","subject","forgetTransform"],"sources":["../../../../src/interactions/actions/transform-again/memory.ts"],"sourcesContent":["import type { ResizeAnchor } from '@weasel-js/routing';\nimport type { Bounds } from 'core/viewport/fitViewToBounds';\n\n/**\n * @experimental\n * A transform the selection underwent, kept relative so it can be applied to\n * whatever is selected next.\n *\n * - `translate`: a world offset.\n * - `rotate`: radians about the selection's center, or about each node's own\n * center (`pivot: 'each'`).\n * - `scale`: the box the selection was resized to, in units of the box it\n * started as (`{ x: 0, y: 0, width: 1, height: 1 }` is no change), and the\n * anchor the resize held fixed.\n * - `duplicate`: copy the selection, offset by `(dx, dy)`, and select the copies.\n */\nexport type RepeatableTransform =\n | { readonly kind: 'translate'; readonly dx: number; readonly dy: number }\n | { readonly kind: 'rotate'; readonly angle: number; readonly pivot: 'union' | 'each' }\n | { readonly kind: 'scale'; readonly to: Bounds; readonly anchor: ResizeAnchor }\n | { readonly kind: 'duplicate'; readonly dx: number; readonly dy: number };\n\ninterface Entry {\n readonly transform: RepeatableTransform;\n /** The ids selected once it landed. */\n readonly subject: readonly string[];\n}\n\nconst LAST = new WeakMap<object, Entry>();\n\nfunction sameIds(a: readonly string[], b: readonly string[]): boolean {\n if (a.length !== b.length) return false;\n const set = new Set(a);\n return b.every((id) => set.has(id));\n}\n\n/**\n * @experimental\n * The last transform recorded against `scene`, which `transformAgain` repeats.\n */\nexport function lastTransform(scene: object): RepeatableTransform | undefined {\n return LAST.get(scene)?.transform;\n}\n\n/**\n * @experimental\n * Remember `transform` as the last one `scene` underwent, `subject` being the\n * ids selected once it landed. A translate of exactly the copies a\n * `duplicate` just made folds into it, so the copies' offset from their\n * sources is what repeats: duplicate, drag the copy, and each repeat steps\n * one more copy along.\n */\nexport function recordTransform(\n scene: object,\n transform: RepeatableTransform,\n subject: readonly string[],\n): void {\n const prev = LAST.get(scene);\n if (\n transform.kind === 'translate'\n && prev?.transform.kind === 'duplicate'\n && sameIds(prev.subject, subject)\n ) {\n LAST.set(scene, {\n transform: { kind: 'duplicate', dx: prev.transform.dx + transform.dx, dy: prev.transform.dy + transform.dy },\n subject: [...subject],\n });\n return;\n }\n LAST.set(scene, { transform, subject: [...subject] });\n}\n\n/** @experimental Drop what `scene` remembers, so `transformAgain` has nothing to repeat. */\nexport function forgetTransform(scene: object): void {\n LAST.delete(scene);\n}\n"],"mappings":";AA4BA,IAAMA,oBAAO,IAAI,QAAuB;AAExC,SAASC,EAAQ,GAAsB,GAA+B;CACpE,IAAIC,EAAE,WAAWC,EAAE,QAAQ,OAAO;CAClC,IAAMC,IAAM,IAAI,IAAIF,CAAC;CACrB,OAAOC,EAAE,OAAO,MAAOC,EAAI,IAAIC,CAAE,CAAC;AACpC;AAMA,SAAgBC,EAAc,GAAgD;CAC5E,OAAON,EAAK,IAAIO,CAAK,CAAC,EAAE;AAC1B;AAUA,SAAgBC,EACd,GACA,GACA,GACM;CACN,IAAMC,IAAOT,EAAK,IAAIO,CAAK;CAC3B,IACEG,EAAU,SAAS,eAChBD,GAAM,UAAU,SAAS,eACzBR,EAAQQ,EAAK,SAASE,CAAO,GAChC;EACA,EAAK,IAAIJ,GAAO;GACd,WAAW;IAAE,MAAM;IAAa,IAAIE,EAAK,UAAU,KAAKC,EAAU;IAAI,IAAID,EAAK,UAAU,KAAKC,EAAU;GAAG;GAC3G,SAAS,CAAC,GAAGC,CAAO;EACtB,CAAC;EACD;CACF;CACA,EAAK,IAAIJ,GAAO;EAAE;EAAW,SAAS,CAAC,GAAGI,CAAO;CAAE,CAAC;AACtD;AAGA,SAAgBC,EAAgB,GAAqB;CACnD,EAAK,OAAOL,CAAK;AACnB"}
1
+ {"version":3,"file":"memory.js","names":[],"sources":["../../../../src/interactions/actions/transform-again/memory.ts"],"sourcesContent":["import type { ResizeAnchor } from '@weasel-js/routing';\nimport type { Bounds } from 'core/viewport/fitViewToBounds';\n\n/**\n * A transform the selection underwent, kept relative so it can be applied to\n * whatever is selected next.\n *\n * - `translate`: a world offset.\n * - `rotate`: radians about the selection's center, or about each node's own\n * center (`pivot: 'each'`).\n * - `scale`: the box the selection was resized to, in units of the box it\n * started as (`{ x: 0, y: 0, width: 1, height: 1 }` is no change), and the\n * anchor the resize held fixed.\n * - `duplicate`: copy the selection, offset by the world offset `(dx, dy)`, and\n * select the copies.\n *\n * Offsets are world, so a repeat inside a turned group steps the way the drag\n * or nudge it repeats did on screen.\n */\nexport type RepeatableTransform =\n | { readonly kind: 'translate'; readonly dx: number; readonly dy: number }\n | { readonly kind: 'rotate'; readonly angle: number; readonly pivot: 'union' | 'each' }\n | { readonly kind: 'scale'; readonly to: Bounds; readonly anchor: ResizeAnchor }\n | { readonly kind: 'duplicate'; readonly dx: number; readonly dy: number };\n\ninterface Entry {\n readonly transform: RepeatableTransform;\n /** The ids selected once it landed. */\n readonly subject: readonly string[];\n}\n\nconst LAST = new WeakMap<object, Entry>();\n\nfunction sameIds(a: readonly string[], b: readonly string[]): boolean {\n if (a.length !== b.length) return false;\n const set = new Set(a);\n return b.every((id) => set.has(id));\n}\n\n/**\n * The last transform recorded against `scene`, which `transformAgain` repeats.\n */\nexport function lastTransform(scene: object): RepeatableTransform | undefined {\n return LAST.get(scene)?.transform;\n}\n\n/**\n * Remember `transform` as the last one `scene` underwent, `subject` being the\n * ids selected once it landed. A translate of exactly the copies a\n * `duplicate` just made folds into it, so the copies' offset from their\n * sources is what repeats: duplicate, drag the copy, and each repeat steps\n * one more copy along.\n */\nexport function recordTransform(\n scene: object,\n transform: RepeatableTransform,\n subject: readonly string[],\n): void {\n const prev = LAST.get(scene);\n if (\n transform.kind === 'translate'\n && prev?.transform.kind === 'duplicate'\n && sameIds(prev.subject, subject)\n ) {\n LAST.set(scene, {\n transform: { kind: 'duplicate', dx: prev.transform.dx + transform.dx, dy: prev.transform.dy + transform.dy },\n subject: [...subject],\n });\n return;\n }\n LAST.set(scene, { transform, subject: [...subject] });\n}\n\n/** Drop what `scene` remembers, so `transformAgain` has nothing to repeat. */\nexport function forgetTransform(scene: object): void {\n LAST.delete(scene);\n}\n"],"mappings":";AA+BA,IAAM,uBAAO,IAAI,QAAuB;AAExC,SAAS,QAAQ,GAAsB,GAA+B;CACpE,IAAI,EAAE,WAAW,EAAE,QAAQ,OAAO;CAClC,MAAM,MAAM,IAAI,IAAI,CAAC;CACrB,OAAO,EAAE,OAAO,OAAO,IAAI,IAAI,EAAE,CAAC;AACpC;;;;AAKA,SAAgB,cAAc,OAAgD;CAC5E,OAAO,KAAK,IAAI,KAAK,CAAC,EAAE;AAC1B;;;;;;;;AASA,SAAgB,gBACd,OACA,WACA,SACM;CACN,MAAM,OAAO,KAAK,IAAI,KAAK;CAC3B,IACE,UAAU,SAAS,eAChB,MAAM,UAAU,SAAS,eACzB,QAAQ,KAAK,SAAS,OAAO,GAChC;EACA,KAAK,IAAI,OAAO;GACd,WAAW;IAAE,MAAM;IAAa,IAAI,KAAK,UAAU,KAAK,UAAU;IAAI,IAAI,KAAK,UAAU,KAAK,UAAU;GAAG;GAC3G,SAAS,CAAC,GAAG,OAAO;EACtB,CAAC;EACD;CACF;CACA,KAAK,IAAI,OAAO;EAAE;EAAW,SAAS,CAAC,GAAG,OAAO;CAAE,CAAC;AACtD;;AAGA,SAAgB,gBAAgB,OAAqB;CACnD,KAAK,OAAO,KAAK;AACnB"}
@@ -0,0 +1,106 @@
1
+ import { commitOps } from "./defaultCommitAdapter.js";
2
+
3
+ //#region src/interactions/actions/transformFinish.ts
4
+ /** Every follower in `deps.transformFollowers` finishing the batch in turn, as a {@link TransformFinisher}; undefined with none. */
5
+ function transformFinisher(deps) {
6
+ const followers = deps?.transformFollowers;
7
+ if (followers === void 0 || followers.length === 0) return void 0;
8
+ return (ops, label) => {
9
+ let all = ops;
10
+ for (const follower of followers) {
11
+ const next = follower.finish(all, label);
12
+ if (next === null) return null;
13
+ all = next;
14
+ }
15
+ return all;
16
+ };
17
+ }
18
+ /** `ops` finished as a whole-node transform's batch under `deps`; null when the transform should not happen. */
19
+ function finishTransformOps(deps, ops, label) {
20
+ const finish = transformFinisher(deps);
21
+ return finish && ops.length > 0 ? finish(ops, label) : ops;
22
+ }
23
+ /** Commit `ops`, a whole-node transform's batch, finished under `deps`, as
24
+ * one undo entry. Returns whether anything was committed. */
25
+ function commitTransformOps(deps, ops, label) {
26
+ const all = finishTransformOps(deps, ops, label);
27
+ if (!all || all.length === 0) return false;
28
+ commitOps(deps, all, label);
29
+ return true;
30
+ }
31
+ /** What a whole-node transform commits its batch through: `deps.applyOps`
32
+ * when nothing finishes transforms, else a commit that finishes it first. */
33
+ function transformApplyOps(deps) {
34
+ if (!transformFinisher(deps)) return deps.applyOps;
35
+ return (ops, label) => {
36
+ commitTransformOps(deps, ops, label);
37
+ };
38
+ }
39
+ /** Every follower's preview of `frame`, each reading the frame with the poses and data the ones before it previewed. */
40
+ function previewFollowers(followers, frame) {
41
+ const out = /* @__PURE__ */ new Map();
42
+ let seen = frame;
43
+ const data = /* @__PURE__ */ new Map();
44
+ for (const follower of followers) {
45
+ const more = follower.preview(seen, data);
46
+ if (more.length === 0) continue;
47
+ const next = new Map(seen);
48
+ for (const node of more) {
49
+ const had = out.get(node.id);
50
+ out.set(node.id, node.data === void 0 && had?.data !== void 0 ? {
51
+ ...node,
52
+ data: had.data
53
+ } : node);
54
+ if (node.data !== void 0) data.set(node.id, node.data);
55
+ next.set(node.id, node.pose);
56
+ }
57
+ seen = next;
58
+ }
59
+ return [...out.values()];
60
+ }
61
+ /**
62
+ * A transform drag's preview over `previews`, its frame's stored poses by id,
63
+ * with the nodes `deps.transformFollowers` say change with each frame added:
64
+ * they follow the drag as the commit will leave them. Pose goes to the
65
+ * scene's overrides through {@link TransformPreview.poses}, never on the
66
+ * handle; readers resolve it with `effectivePose`. Each frame is read once,
67
+ * keyed on the map.
68
+ */
69
+ function transformPreview(deps, scene, previews) {
70
+ const followers = deps?.transformFollowers ?? [];
71
+ let seen = null;
72
+ let others = /* @__PURE__ */ new Map();
73
+ let posed = /* @__PURE__ */ new Map();
74
+ const read = () => {
75
+ const now = previews();
76
+ if (now !== seen) {
77
+ seen = now;
78
+ others = followers.length === 0 || now.size === 0 ? /* @__PURE__ */ new Map() : new Map(previewFollowers(followers, now).map((o) => [o.id, o]));
79
+ let moved = null;
80
+ for (const [id, node] of others) {
81
+ const nid = id;
82
+ if (now.has(nid) || node.pose === scene.get(nid)?.pose) continue;
83
+ moved ??= new Map(now);
84
+ moved.set(nid, node.pose);
85
+ }
86
+ posed = moved ?? now;
87
+ }
88
+ return others;
89
+ };
90
+ return {
91
+ poses: () => {
92
+ read();
93
+ return posed;
94
+ },
95
+ previewIds: () => {
96
+ const more = read();
97
+ const own = previews();
98
+ return more.size === 0 || own.size === 0 ? own.keys() : [...own.keys(), ...[...more.keys()].filter((id) => !own.has(id))];
99
+ },
100
+ previewData: (id) => read().get(id)?.data ?? null
101
+ };
102
+ }
103
+
104
+ //#endregion
105
+ export { commitTransformOps, finishTransformOps, transformApplyOps, transformFinisher, transformPreview };
106
+ //# sourceMappingURL=transformFinish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformFinish.js","names":[],"sources":["../../../src/interactions/actions/transformFinish.ts"],"sourcesContent":["import type { ActionDeps } from '@weasel-js/routing';\nimport type { Op } from 'core/ops/types';\nimport type { NodeId } from 'core/scene/types';\nimport { commitOps } from './defaultCommitAdapter';\n\n/** Finishes a whole-node transform's batch: the batch with the ops for the\n * other nodes that change with it, or null when the transform should not\n * happen. */\nexport type TransformFinisher = (ops: Op[], label: string) => Op[] | null;\n\n/** A node as a transform frame previews it: its stored pose, and its data where that changes. */\nexport interface TransformPreviewNode {\n id: string;\n pose: unknown;\n data?: unknown;\n}\n\n/**\n * Something that changes other nodes along with a whole-node transform — a\n * move, resize, rotate, flip, align, distribute, or nudge. The\n * `transformFollowers` dep holds every one, and each transform runs them all,\n * in order.\n */\nexport interface TransformFollower {\n /** The other nodes a drag's frame changes, given the stored pose the frame\n * puts each transformed node in: what `finish` would commit for it.\n * `data` holds the data the followers before this one previewed, by id. */\n preview(frame: ReadonlyMap<string, unknown>, data: ReadonlyMap<string, unknown>): readonly TransformPreviewNode[];\n /** `ops`, the batch so far, with this follower's ops added after it; null\n * when it refuses the transform. */\n finish(ops: readonly Op[], label: string): Op[] | null;\n}\n\n/** Every follower in `deps.transformFollowers` finishing the batch in turn, as a {@link TransformFinisher}; undefined with none. */\nexport function transformFinisher(deps: ActionDeps | undefined): TransformFinisher | undefined {\n const followers = deps?.transformFollowers;\n if (followers === undefined || followers.length === 0) return undefined;\n return (ops, label) => {\n let all: Op[] = ops;\n for (const follower of followers) {\n const next = follower.finish(all, label);\n if (next === null) return null;\n all = next;\n }\n return all;\n };\n}\n\n/** `ops` finished as a whole-node transform's batch under `deps`; null when the transform should not happen. */\nexport function finishTransformOps(deps: ActionDeps | undefined, ops: Op[], label: string): Op[] | null {\n const finish = transformFinisher(deps);\n return finish && ops.length > 0 ? finish(ops, label) : ops;\n}\n\n/** Commit `ops`, a whole-node transform's batch, finished under `deps`, as\n * one undo entry. Returns whether anything was committed. */\nexport function commitTransformOps(deps: ActionDeps, ops: Op[], label: string): boolean {\n const all = finishTransformOps(deps, ops, label);\n if (!all || all.length === 0) return false;\n commitOps(deps, all, label);\n return true;\n}\n\n/** What a whole-node transform commits its batch through: `deps.applyOps`\n * when nothing finishes transforms, else a commit that finishes it first. */\nexport function transformApplyOps(deps: ActionDeps): ((ops: Op[], label: string) => void) | undefined {\n if (!transformFinisher(deps)) return deps.applyOps;\n return (ops, label) => { commitTransformOps(deps, ops, label); };\n}\n\n/** Every follower's preview of `frame`, each reading the frame with the poses and data the ones before it previewed. */\nfunction previewFollowers(followers: readonly TransformFollower[], frame: ReadonlyMap<string, unknown>): TransformPreviewNode[] {\n const out = new Map<string, TransformPreviewNode>();\n let seen = frame;\n const data = new Map<string, unknown>();\n for (const follower of followers) {\n const more = follower.preview(seen, data);\n if (more.length === 0) continue;\n const next = new Map(seen);\n for (const node of more) {\n const had = out.get(node.id);\n out.set(node.id, node.data === undefined && had?.data !== undefined ? { ...node, data: had.data } : node);\n if (node.data !== undefined) data.set(node.id, node.data);\n next.set(node.id, node.pose);\n }\n seen = next;\n }\n return [...out.values()];\n}\n\n/** The preview half of a whole-node transform drag: its own previews, and\n * the other nodes each frame changes with them. */\nexport interface TransformPreview {\n /** What the drag publishes to the scene's pose overrides: the frame's own\n * poses, and each follower's pose that is not the node's own. A follower\n * answering a node's own pose pins nothing, so a derived node keeps\n * deriving. */\n poses(): ReadonlyMap<NodeId, unknown>;\n /** The handle's `previewIds`: the frame's ids, then the followers'. */\n previewIds(): Iterable<string>;\n /** The handle's `previewData`: what the followers preview for `id`. */\n previewData(id: string): unknown | null;\n}\n\n/**\n * A transform drag's preview over `previews`, its frame's stored poses by id,\n * with the nodes `deps.transformFollowers` say change with each frame added:\n * they follow the drag as the commit will leave them. Pose goes to the\n * scene's overrides through {@link TransformPreview.poses}, never on the\n * handle; readers resolve it with `effectivePose`. Each frame is read once,\n * keyed on the map.\n */\nexport function transformPreview(\n deps: ActionDeps | undefined,\n scene: { get(id: NodeId): { pose: unknown } | undefined },\n previews: () => ReadonlyMap<NodeId, unknown>,\n): TransformPreview {\n const followers = deps?.transformFollowers ?? [];\n let seen: ReadonlyMap<NodeId, unknown> | null = null;\n let others = new Map<string, TransformPreviewNode>();\n let posed: ReadonlyMap<NodeId, unknown> = new Map();\n const read = () => {\n const now = previews();\n if (now !== seen) {\n seen = now;\n others = followers.length === 0 || now.size === 0\n ? new Map()\n : new Map(previewFollowers(followers, now as ReadonlyMap<string, unknown>).map((o) => [o.id, o]));\n let moved: Map<NodeId, unknown> | null = null;\n for (const [id, node] of others) {\n const nid = id as NodeId;\n if (now.has(nid) || node.pose === scene.get(nid)?.pose) continue;\n moved ??= new Map(now);\n moved.set(nid, node.pose);\n }\n posed = moved ?? now;\n }\n return others;\n };\n return {\n poses: () => {\n read();\n return posed;\n },\n previewIds: () => {\n const more = read();\n const own = previews();\n // The close empties the frame in place, so the memo still holds its followers.\n return more.size === 0 || own.size === 0 ? own.keys() : [...own.keys(), ...[...more.keys()].filter((id) => !own.has(id as NodeId))];\n },\n previewData: (id) => read().get(id)?.data ?? null,\n };\n}\n"],"mappings":";;;;AAkCA,SAAgB,kBAAkB,MAA6D;CAC7F,MAAM,YAAY,MAAM;CACxB,IAAI,cAAc,UAAa,UAAU,WAAW,GAAG,OAAO;CAC9D,QAAQ,KAAK,UAAU;EACrB,IAAI,MAAY;EAChB,KAAK,MAAM,YAAY,WAAW;GAChC,MAAM,OAAO,SAAS,OAAO,KAAK,KAAK;GACvC,IAAI,SAAS,MAAM,OAAO;GAC1B,MAAM;EACR;EACA,OAAO;CACT;AACF;;AAGA,SAAgB,mBAAmB,MAA8B,KAAW,OAA4B;CACtG,MAAM,SAAS,kBAAkB,IAAI;CACrC,OAAO,UAAU,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI;AACzD;;;AAIA,SAAgB,mBAAmB,MAAkB,KAAW,OAAwB;CACtF,MAAM,MAAM,mBAAmB,MAAM,KAAK,KAAK;CAC/C,IAAI,CAAC,OAAO,IAAI,WAAW,GAAG,OAAO;CACrC,UAAU,MAAM,KAAK,KAAK;CAC1B,OAAO;AACT;;;AAIA,SAAgB,kBAAkB,MAAoE;CACpG,IAAI,CAAC,kBAAkB,IAAI,GAAG,OAAO,KAAK;CAC1C,QAAQ,KAAK,UAAU;EAAE,mBAAmB,MAAM,KAAK,KAAK;CAAG;AACjE;;AAGA,SAAS,iBAAiB,WAAyC,OAA6D;CAC9H,MAAM,sBAAM,IAAI,IAAkC;CAClD,IAAI,OAAO;CACX,MAAM,uBAAO,IAAI,IAAqB;CACtC,KAAK,MAAM,YAAY,WAAW;EAChC,MAAM,OAAO,SAAS,QAAQ,MAAM,IAAI;EACxC,IAAI,KAAK,WAAW,GAAG;EACvB,MAAM,OAAO,IAAI,IAAI,IAAI;EACzB,KAAK,MAAM,QAAQ,MAAM;GACvB,MAAM,MAAM,IAAI,IAAI,KAAK,EAAE;GAC3B,IAAI,IAAI,KAAK,IAAI,KAAK,SAAS,UAAa,KAAK,SAAS,SAAY;IAAE,GAAG;IAAM,MAAM,IAAI;GAAK,IAAI,IAAI;GACxG,IAAI,KAAK,SAAS,QAAW,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI;GACxD,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI;EAC7B;EACA,OAAO;CACT;CACA,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC;AACzB;;;;;;;;;AAwBA,SAAgB,iBACd,MACA,OACA,UACkB;CAClB,MAAM,YAAY,MAAM,sBAAsB,CAAC;CAC/C,IAAI,OAA4C;CAChD,IAAI,yBAAS,IAAI,IAAkC;CACnD,IAAI,wBAAsC,IAAI,IAAI;CAClD,MAAM,aAAa;EACjB,MAAM,MAAM,SAAS;EACrB,IAAI,QAAQ,MAAM;GAChB,OAAO;GACP,SAAS,UAAU,WAAW,KAAK,IAAI,SAAS,oBAC5C,IAAI,IAAI,IACR,IAAI,IAAI,iBAAiB,WAAW,GAAmC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;GAClG,IAAI,QAAqC;GACzC,KAAK,MAAM,CAAC,IAAI,SAAS,QAAQ;IAC/B,MAAM,MAAM;IACZ,IAAI,IAAI,IAAI,GAAG,KAAK,KAAK,SAAS,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM;IACxD,UAAU,IAAI,IAAI,GAAG;IACrB,MAAM,IAAI,KAAK,KAAK,IAAI;GAC1B;GACA,QAAQ,SAAS;EACnB;EACA,OAAO;CACT;CACA,OAAO;EACL,aAAa;GACX,KAAK;GACL,OAAO;EACT;EACA,kBAAkB;GAChB,MAAM,OAAO,KAAK;GAClB,MAAM,MAAM,SAAS;GAErB,OAAO,KAAK,SAAS,KAAK,IAAI,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,IAAI,IAAI,EAAY,CAAC,CAAC;EACpI;EACA,cAAc,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ;CAC/C;AACF"}
@@ -0,0 +1,83 @@
1
+ import { useEffect } from "react";
2
+ import { useLatest } from "@weasel-js/react";
3
+ import "@weasel-js/routing";
4
+ import { useActionsRegistry, useOptionalActiveToolContext, useOptionalDepRegistry } from "@weasel-js/routing/react";
5
+
6
+ //#region src/interactions/actions/useActionSet.ts
7
+ /**
8
+ * The two halves of `useStandardActions`, apart from the action list it
9
+ * defaults to, so a canvas that names its own set never loads the kit's.
10
+ */
11
+ /**
12
+ * Publish each of `deps` as a live source in the nearest dep registry under
13
+ * its canonical name; the source reads the latest value at invocation time.
14
+ * `activeTool` falls back to the active-tool context. A no-op with no
15
+ * registry in scope.
16
+ */
17
+ function useStandardDeps(deps) {
18
+ const depsRef = useLatest(deps);
19
+ const activeToolCtx = useOptionalActiveToolContext();
20
+ const activeToolCtxRef = useLatest(activeToolCtx);
21
+ const depReg = useOptionalDepRegistry();
22
+ useEffect(() => {
23
+ if (!depReg) return;
24
+ const unregisters = [];
25
+ for (const key of [
26
+ "selection",
27
+ "view",
28
+ "scene",
29
+ "history"
30
+ ]) unregisters.push(depReg.register(key, () => depsRef.current[key]));
31
+ unregisters.push(depReg.register("activeTool", () => depsRef.current.activeTool ?? activeToolCtxRef.current));
32
+ return () => {
33
+ for (const u of unregisters) u();
34
+ };
35
+ }, [
36
+ depReg,
37
+ depsRef,
38
+ activeToolCtxRef
39
+ ]);
40
+ }
41
+ /**
42
+ * Kit-standard actions that stay unregistered while another one is
43
+ * registered, because that one binds the same gesture and does everything
44
+ * this one does: both answering it would act twice. Keyed by the action that
45
+ * yields.
46
+ */
47
+ var YIELDS_TO = { "clipboard.pasteEvent": "ingest" };
48
+ /**
49
+ * Register `actions` into the nearest `<ActionsProvider>`, in order, leaving
50
+ * out the ids in `exclude`; a no-op without both an actions and a dep
51
+ * registry in scope. The set is keyed by its ids, so a fresh array of the same
52
+ * actions does not re-register.
53
+ */
54
+ function useActionSet(actions, exclude) {
55
+ const reg = useActionsRegistry();
56
+ const depReg = useOptionalDepRegistry();
57
+ const actionsRef = useLatest(actions);
58
+ const excludeKey = exclude ? [...exclude].join("\0") : "";
59
+ const actionsKey = actions.map((a) => a.id).join("\0");
60
+ useEffect(() => {
61
+ if (!reg || !depReg) return;
62
+ const excluded = new Set(excludeKey ? excludeKey.split("\0") : []);
63
+ const live = actionsRef.current.filter((a) => !excluded.has(a.id));
64
+ const liveIds = new Set(live.map((a) => a.id));
65
+ const unregisters = live.filter((a) => {
66
+ const over = YIELDS_TO[a.id];
67
+ return over === void 0 || !liveIds.has(over);
68
+ }).map((a) => reg.register(a));
69
+ return () => {
70
+ for (const u of unregisters) u();
71
+ };
72
+ }, [
73
+ reg,
74
+ depReg,
75
+ excludeKey,
76
+ actionsKey,
77
+ actionsRef
78
+ ]);
79
+ }
80
+
81
+ //#endregion
82
+ export { useActionSet, useStandardDeps };
83
+ //# sourceMappingURL=useActionSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActionSet.js","names":[],"sources":["../../../src/interactions/actions/useActionSet.ts"],"sourcesContent":["/**\n * The two halves of `useStandardActions`, apart from the action list it\n * defaults to, so a canvas that names its own set never loads the kit's.\n */\nimport { useEffect } from 'react';\nimport type { Action } from '@weasel-js/routing';\nimport { useActionsRegistry, useOptionalActiveToolContext, useOptionalDepRegistry } from '@weasel-js/routing/react';\nimport { useLatest } from '@weasel-js/react';\nimport { type DepName, type DepSchema } from '@weasel-js/routing';\n// Reaches depSchema.ts so tsup's per-entry dts compiler resolves `DepSchema['selection']`\n// here; `tsc --noEmit` happens to pick it up via test files, tsup does not. It MUST be\n// `import type` — a bare `import './depSchema'` makes esbuild emit a runtime import that it\n// then drops under the package's `sideEffects: false`, warning on every build.\nimport type {} from './depSchema';\n\n/** The deps every standard action reads. */\nexport interface StandardDeps {\n /** Kit selection state — ids of currently selected nodes. */\n selection?: DepSchema['selection'];\n /** Current viewport — camera position + scale. */\n view?: DepSchema['view'];\n /** Scene tree — structural reads + undoable mutations. */\n scene?: DepSchema['scene'];\n /** Undo/redo history bound to the current scene. */\n history?: DepSchema['history'];\n /** Currently active tool id + hotkey-hold stack. */\n activeTool?: DepSchema['activeTool'];\n}\n\n/**\n * Publish each of `deps` as a live source in the nearest dep registry under\n * its canonical name; the source reads the latest value at invocation time.\n * `activeTool` falls back to the active-tool context. A no-op with no\n * registry in scope.\n */\nexport function useStandardDeps(deps: StandardDeps): void {\n const depsRef = useLatest(deps);\n const activeToolCtx = useOptionalActiveToolContext();\n const activeToolCtxRef = useLatest(activeToolCtx);\n const depReg = useOptionalDepRegistry();\n\n useEffect(() => {\n if (!depReg) return;\n const unregisters: Array<() => void> = [];\n const keys = ['selection', 'view', 'scene', 'history'] as const;\n for (const key of keys) {\n unregisters.push(\n depReg.register(key as DepName, () => depsRef.current[key] as DepSchema[DepName]),\n );\n }\n unregisters.push(\n depReg.register('activeTool' as DepName, () =>\n (depsRef.current.activeTool ?? activeToolCtxRef.current) as DepSchema[DepName],\n ),\n );\n return () => { for (const u of unregisters) u(); };\n }, [depReg, depsRef, activeToolCtxRef]);\n}\n\n/**\n * Kit-standard actions that stay unregistered while another one is\n * registered, because that one binds the same gesture and does everything\n * this one does: both answering it would act twice. Keyed by the action that\n * yields.\n */\nconst YIELDS_TO: Readonly<Record<string, string>> = {\n 'clipboard.pasteEvent': 'ingest',\n};\n\n/**\n * Register `actions` into the nearest `<ActionsProvider>`, in order, leaving\n * out the ids in `exclude`; a no-op without both an actions and a dep\n * registry in scope. The set is keyed by its ids, so a fresh array of the same\n * actions does not re-register.\n */\nexport function useActionSet(actions: readonly Action[], exclude?: Iterable<string>): void {\n const reg = useActionsRegistry();\n const depReg = useOptionalDepRegistry();\n const actionsRef = useLatest(actions);\n const excludeKey = exclude ? [...exclude].join('\\u0000') : '';\n const actionsKey = actions.map((a) => a.id).join('\\u0000');\n\n useEffect(() => {\n if (!reg || !depReg) return;\n const excluded = new Set(excludeKey ? excludeKey.split('\\u0000') : []);\n const live = actionsRef.current.filter((a) => !excluded.has(a.id));\n const liveIds = new Set(live.map((a) => a.id));\n const unregisters = live\n .filter((a) => {\n const over = YIELDS_TO[a.id];\n return over === undefined || !liveIds.has(over);\n })\n .map((a) => reg.register(a));\n return () => { for (const u of unregisters) u(); };\n }, [reg, depReg, excludeKey, actionsKey, actionsRef]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAmCA,SAAgB,gBAAgB,MAA0B;CACxD,MAAM,UAAU,UAAU,IAAI;CAC9B,MAAM,gBAAgB,6BAA6B;CACnD,MAAM,mBAAmB,UAAU,aAAa;CAChD,MAAM,SAAS,uBAAuB;CAEtC,gBAAgB;EACd,IAAI,CAAC,QAAQ;EACb,MAAM,cAAiC,CAAC;EAExC,KAAK,MAAM,OAAO;GADJ;GAAa;GAAQ;GAAS;EAC1B,GAChB,YAAY,KACV,OAAO,SAAS,WAAsB,QAAQ,QAAQ,IAA0B,CAClF;EAEF,YAAY,KACV,OAAO,SAAS,oBACb,QAAQ,QAAQ,cAAc,iBAAiB,OAClD,CACF;EACA,aAAa;GAAE,KAAK,MAAM,KAAK,aAAa,EAAE;EAAG;CACnD,GAAG;EAAC;EAAQ;EAAS;CAAgB,CAAC;AACxC;;;;;;;AAQA,IAAM,YAA8C,EAClD,wBAAwB,SAC1B;;;;;;;AAQA,SAAgB,aAAa,SAA4B,SAAkC;CACzF,MAAM,MAAM,mBAAmB;CAC/B,MAAM,SAAS,uBAAuB;CACtC,MAAM,aAAa,UAAU,OAAO;CACpC,MAAM,aAAa,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,IAAQ,IAAI;CAC3D,MAAM,aAAa,QAAQ,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,IAAQ;CAEzD,gBAAgB;EACd,IAAI,CAAC,OAAO,CAAC,QAAQ;EACrB,MAAM,WAAW,IAAI,IAAI,aAAa,WAAW,MAAM,IAAQ,IAAI,CAAC,CAAC;EACrE,MAAM,OAAO,WAAW,QAAQ,QAAQ,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;EACjE,MAAM,UAAU,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,EAAE,CAAC;EAC7C,MAAM,cAAc,KACjB,QAAQ,MAAM;GACb,MAAM,OAAO,UAAU,EAAE;GACzB,OAAO,SAAS,UAAa,CAAC,QAAQ,IAAI,IAAI;EAChD,CAAC,CAAC,CACD,KAAK,MAAM,IAAI,SAAS,CAAC,CAAC;EAC7B,aAAa;GAAE,KAAK,MAAM,KAAK,aAAa,EAAE;EAAG;CACnD,GAAG;EAAC;EAAK;EAAQ;EAAY;EAAY;CAAU,CAAC;AACtD"}
@@ -1,169 +1,27 @@
1
- import { moveAction as e } from "./move/action.js";
2
- import { resizeAction as t } from "./resize/action.js";
3
- import { rotateAction as n } from "./rotate/action.js";
4
- import { areaSelectAction as r } from "./defaults/areaSelect.js";
5
- import { insertAction as i } from "./insert/action.js";
6
- import { insertRepositionAction as a } from "./insert/repositionAction.js";
7
- import { clearSelectionAction as o } from "./defaults/clearSelection.js";
8
- import { cloneAction as ee } from "./clone/action.js";
9
- import { viewportDragPanAction as te } from "./defaults/viewportDragPan.js";
10
- import { editAnchorsAction as ne } from "./edit-anchors/action.js";
11
- import { lassoSelectAction as re } from "./lasso-select/action.js";
12
- import { pinchZoomAction as s } from "./defaults/pinchZoom.js";
13
- import { deleteAction as c } from "./defaults/delete.js";
14
- import { ingestAction as l } from "./defaults/ingest.js";
15
- import { clipboardCopyAction as u, clipboardCutAction as d, clipboardPasteAction as f, clipboardPasteEventAction as p } from "./clipboard/action.js";
16
- import { enterTextEditAction as m } from "./defaults/enterTextEdit.js";
17
- import { escapeAction as h } from "./defaults/escape.js";
18
- import { cancelGestureAction as g } from "./defaults/cancelGesture.js";
19
- import { selectAllAction as _ } from "./defaults/selectAll.js";
20
- import { duplicateAction as v } from "./defaults/duplicate.js";
21
- import { nudgeDownAction as y, nudgeLeftAction as b, nudgeRightAction as x, nudgeUpAction as S } from "./defaults/nudge.js";
22
- import { transformAgainAction as C } from "./transform-again/action.js";
23
- import { groupAction as w, ungroupAction as T } from "./defaults/group.js";
24
- import { redoAction as E, undoAction as D } from "./defaults/undoRedo.js";
25
- import { flipAction as O } from "./flip/action.js";
26
- import { reorderBackwardAction as k, reorderForwardAction as A } from "./defaults/reorder.js";
27
- import { alignBottomAction as j, alignCenterXAction as M, alignCenterYAction as N, alignLeftAction as P, alignRightAction as F, alignTopAction as I } from "./align/action.js";
28
- import { distributeHorizontalAction as L, distributeVerticalAction as R } from "./distribute/action.js";
29
- import { pathfinderCropAction as z, pathfinderDivideAction as B, pathfinderExcludeAction as V, pathfinderIntersectAction as H, pathfinderMergeAction as U, pathfinderSubtractAction as W, pathfinderTrimAction as G, pathfinderUnionAction as K } from "./booleans/action.js";
30
- import { createOutlinesAction as ie } from "./outlines/createOutlinesAction.js";
31
- import { outlineStrokeAction as q } from "./outlines/outlineStrokeAction.js";
32
- import { insertRotateAction as J } from "./insert/rotateAction.js";
33
- import { enterPathEditAction as Y } from "./defaults/enterPathEdit.js";
34
- import { exitPathEditAction as ae } from "./defaults/exitPathEdit.js";
35
- import { insertPathAnchorAction as oe } from "./defaults/insertPathAnchor.js";
36
- import { bendSegmentAction as se } from "./defaults/bendSegment.js";
37
- import { cutPathAtAnchorAction as ce, deleteAnchorsAction as le, marqueeAnchorsAction as ue, nudgeAnchorsDownAction as de, nudgeAnchorsLeftAction as fe, nudgeAnchorsRightAction as pe, nudgeAnchorsUpAction as me, selectAnchorAction as he } from "./defaults/anchorEditing.js";
38
- import { makeHandlesSymmetricAction as ge, retractHandlesAction as _e } from "./defaults/anchorHandles.js";
39
- import { averageAnchorsAction as ve, joinAnchorsAction as ye } from "./defaults/anchorJoin.js";
40
- import { offsetPathAction as be, simplifyPathAction as xe } from "./pathCommands/simplifyOffset.js";
41
- import { joinPathsAction as Se, snipAtCrossingsAction as Ce } from "./pathCommands/cutJoin.js";
42
- import { setFillAction as X } from "./defaults/setFill.js";
43
- import { setStrokeAction as we } from "./defaults/setStroke.js";
44
- import { setFillOpacityAction as Te } from "./defaults/setFillOpacity.js";
45
- import { setStrokeOpacityAction as Ee } from "./defaults/setStrokeOpacity.js";
46
- import { useEffect as Z } from "react";
47
- import { useLatest as Q } from "@weasel-js/react";
48
- import "@weasel-js/routing";
49
- import { useActionsRegistry as De, useOptionalActiveToolContext as Oe, useOptionalDepRegistry as ke } from "@weasel-js/routing/react";
1
+ import { KIT_STANDARD_ACTIONS } from "../../canvas/SceneCanvas/namedPresets.js";
2
+ import { useActionSet, useStandardDeps } from "./useActionSet.js";
3
+
50
4
  //#region src/interactions/actions/useStandardActions.ts
51
- var $ = [
52
- h,
53
- g,
54
- _,
55
- v,
56
- C,
57
- me,
58
- de,
59
- fe,
60
- pe,
61
- le,
62
- c,
63
- w,
64
- T,
65
- D,
66
- E,
67
- O,
68
- S,
69
- y,
70
- b,
71
- x,
72
- A,
73
- k,
74
- P,
75
- M,
76
- F,
77
- I,
78
- N,
79
- j,
80
- L,
81
- R,
82
- K,
83
- W,
84
- H,
85
- V,
86
- B,
87
- z,
88
- G,
89
- U,
90
- ie,
91
- q,
92
- e,
93
- t,
94
- n,
95
- r,
96
- i,
97
- J,
98
- a,
99
- ee,
100
- ne,
101
- Y,
102
- ae,
103
- oe,
104
- se,
105
- ce,
106
- _e,
107
- ge,
108
- ve,
109
- ye,
110
- xe,
111
- be,
112
- Ce,
113
- Se,
114
- ue,
115
- he,
116
- re,
117
- s,
118
- te,
119
- o,
120
- m,
121
- X,
122
- we,
123
- Te,
124
- Ee,
125
- l,
126
- d,
127
- u,
128
- f,
129
- p
130
- ], Ae = $.map((e) => e.id), je = { "clipboard.pasteEvent": "ingest" };
131
- function Me(e) {
132
- let t = Q(e), n = Oe(), r = Q(n), i = ke();
133
- Z(() => {
134
- if (!i) return;
135
- let e = [];
136
- for (let n of [
137
- "selection",
138
- "view",
139
- "scene",
140
- "history"
141
- ]) e.push(i.register(n, () => t.current[n]));
142
- return e.push(i.register("activeTool", () => t.current.activeTool ?? r.current)), () => {
143
- for (let t of e) t();
144
- };
145
- }, [
146
- i,
147
- t,
148
- r
149
- ]);
150
- let a = De(), o = e.exclude ? [...e.exclude].join("\0") : "";
151
- Z(() => {
152
- if (!a || !i) return;
153
- let e = new Set(o ? o.split("\0") : []), t = $.filter((t) => !e.has(t.id)).filter((t) => {
154
- let n = je[t.id];
155
- return n === void 0 || e.has(n);
156
- }).map((e) => a.register(e));
157
- return () => {
158
- for (let e of t) e();
159
- };
160
- }, [
161
- a,
162
- i,
163
- o
164
- ]);
5
+ /** Every id `useStandardActions` can register, each core preset's in turn and
6
+ * then the tool-driven ones. It holds `clipboard.pasteEvent` back while
7
+ * `ingest` is registered. */
8
+ var KIT_STANDARD_ACTION_IDS = KIT_STANDARD_ACTIONS.map((a) => a.id);
9
+ /**
10
+ * Register each kit-standard dep source and action descriptor into the
11
+ * surrounding `<ActionsProvider>` and `<DepRegistryProvider>` (typically
12
+ * provided by `<SceneCanvas>`); a silent no-op when either is absent.
13
+ *
14
+ * Each dep option is published as a live source in the dep registry under its
15
+ * canonical name (`selection`, `scene`, …). The source reads the latest
16
+ * option value at invocation time, so consumers don't have to memoize their
17
+ * dep objects.
18
+ */
19
+ function useStandardActions(opts) {
20
+ const { actions = KIT_STANDARD_ACTIONS, exclude, ...deps } = opts;
21
+ useStandardDeps(deps);
22
+ useActionSet(actions, exclude);
165
23
  }
166
- //#endregion
167
- export { Ae as KIT_STANDARD_ACTION_IDS, Me as useStandardActions };
168
24
 
25
+ //#endregion
26
+ export { KIT_STANDARD_ACTION_IDS, useStandardActions };
169
27
  //# sourceMappingURL=useStandardActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStandardActions.js","names":["KIT_STANDARD_DESCRIPTORS","escapeAction","cancelGestureAction","selectAllAction","duplicateAction","transformAgainAction","nudgeAnchorsUpAction","nudgeAnchorsDownAction","nudgeAnchorsLeftAction","nudgeAnchorsRightAction","deleteAnchorsAction","deleteAction","groupAction","ungroupAction","undoAction","redoAction","flipAction","nudgeUpAction","nudgeDownAction","nudgeLeftAction","nudgeRightAction","reorderForwardAction","reorderBackwardAction","alignLeftAction","alignCenterXAction","alignRightAction","alignTopAction","alignCenterYAction","alignBottomAction","distributeHorizontalAction","distributeVerticalAction","pathfinderUnionAction","pathfinderSubtractAction","pathfinderIntersectAction","pathfinderExcludeAction","pathfinderDivideAction","pathfinderCropAction","pathfinderTrimAction","pathfinderMergeAction","createOutlinesAction","outlineStrokeAction","moveAction","resizeAction","rotateAction","areaSelectAction","insertAction","insertRotateAction","insertRepositionAction","cloneAction","editAnchorsAction","enterPathEditAction","exitPathEditAction","insertPathAnchorAction","bendSegmentAction","cutPathAtAnchorAction","retractHandlesAction","makeHandlesSymmetricAction","averageAnchorsAction","joinAnchorsAction","simplifyPathAction","offsetPathAction","snipAtCrossingsAction","joinPathsAction","marqueeAnchorsAction","selectAnchorAction","lassoSelectAction","pinchZoomAction","viewportDragPanAction","clearSelectionAction","enterTextEditAction","setFillAction","setStrokeAction","setFillOpacityAction","setStrokeOpacityAction","ingestAction","clipboardCutAction","clipboardCopyAction","clipboardPasteAction","clipboardPasteEventAction","KIT_STANDARD_ACTION_IDS","a","YIELDS_TO","useStandardActions","optsRef","useLatest","opts","activeToolCtx","useOptionalActiveToolContext","activeToolCtxRef","depReg","useOptionalDepRegistry","unregisters","key","u","reg","useActionsRegistry","excludeKey","excluded","over"],"sources":["../../../src/interactions/actions/useStandardActions.ts"],"sourcesContent":["/**\n * @experimental\n * `useStandardActions` — register the kit-standard action descriptors into the\n * nearest `<ActionsProvider>` and publish dep sources into the nearest\n * `<DepRegistryProvider>`. Falls back silently to a no-op when either is\n * not in scope.\n */\nimport { useEffect } from 'react';\nimport type { Action } from '@weasel-js/routing';\nimport { useActionsRegistry } from '@weasel-js/routing/react';\nimport { useLatest } from '@weasel-js/react';\nimport { type DepName, type DepSchema } from '@weasel-js/routing';\nimport { useOptionalDepRegistry } from '@weasel-js/routing/react';\n// Reaches depSchema.ts so tsup's per-entry dts compiler resolves `DepSchema['selection']`\n// here; `tsc --noEmit` happens to pick it up via test files, tsup does not. It MUST be\n// `import type` — a bare `import './depSchema'` makes esbuild emit a runtime import that it\n// then drops under the package's `sideEffects: false`, warning on every build.\nimport type {} from './depSchema';\nimport { useOptionalActiveToolContext } from '@weasel-js/routing/react';\n\nimport { escapeAction } from './defaults/escape';\nimport { cancelGestureAction } from './defaults/cancelGesture';\nimport { selectAllAction } from './defaults/selectAll';\nimport { deleteAction } from './defaults/delete';\nimport { duplicateAction } from './defaults/duplicate';\nimport { transformAgainAction } from './transform-again/action';\nimport { groupAction, ungroupAction } from './defaults/group';\nimport { undoAction, redoAction } from './defaults/undoRedo';\nimport { flipAction } from './flip/action';\nimport {\n nudgeUpAction, nudgeDownAction, nudgeLeftAction, nudgeRightAction,\n} from './defaults/nudge';\nimport { reorderForwardAction, reorderBackwardAction } from './defaults/reorder';\nimport {\n alignLeftAction, alignRightAction, alignTopAction, alignBottomAction,\n alignCenterXAction, alignCenterYAction,\n} from './align/action';\nimport {\n distributeHorizontalAction, distributeVerticalAction,\n} from './distribute/action';\nimport {\n pathfinderUnionAction, pathfinderSubtractAction, pathfinderIntersectAction,\n pathfinderExcludeAction, pathfinderDivideAction, pathfinderCropAction,\n pathfinderTrimAction, pathfinderMergeAction,\n} from './booleans/action';\nimport { createOutlinesAction } from './outlines/createOutlinesAction';\nimport { outlineStrokeAction } from './outlines/outlineStrokeAction';\nimport { moveAction } from './move/action';\nimport { resizeAction } from './resize/action';\nimport { rotateAction } from './rotate/action';\nimport { areaSelectAction } from './defaults/areaSelect';\nimport { insertAction } from './insert/action';\nimport { insertRotateAction } from './insert/rotateAction';\nimport { insertRepositionAction } from './insert/repositionAction';\nimport { clearSelectionAction } from './defaults/clearSelection';\nimport { cloneAction } from './clone/action';\nimport { editAnchorsAction } from './edit-anchors/action';\nimport { enterPathEditAction } from './defaults/enterPathEdit';\nimport { exitPathEditAction } from './defaults/exitPathEdit';\nimport { insertPathAnchorAction } from './defaults/insertPathAnchor';\nimport { bendSegmentAction } from './defaults/bendSegment';\nimport { makeHandlesSymmetricAction, retractHandlesAction } from './defaults/anchorHandles';\nimport { averageAnchorsAction, joinAnchorsAction } from './defaults/anchorJoin';\nimport {\n joinPathsAction, offsetPathAction, simplifyPathAction, snipAtCrossingsAction,\n} from './pathCommands';\nimport {\n nudgeAnchorsUpAction,\n nudgeAnchorsDownAction,\n nudgeAnchorsLeftAction,\n nudgeAnchorsRightAction,\n deleteAnchorsAction,\n cutPathAtAnchorAction,\n marqueeAnchorsAction,\n selectAnchorAction,\n} from './defaults/anchorEditing';\nimport { lassoSelectAction } from './lasso-select/action';\nimport { pinchZoomAction } from './defaults/pinchZoom';\nimport { viewportDragPanAction } from './defaults/viewportDragPan';\nimport { enterTextEditAction } from './defaults/enterTextEdit';\nimport { setFillAction } from './defaults/setFill';\nimport { setStrokeAction } from './defaults/setStroke';\nimport { setFillOpacityAction } from './defaults/setFillOpacity';\nimport { setStrokeOpacityAction } from './defaults/setStrokeOpacity';\nimport { ingestAction } from './defaults/ingest';\nimport {\n clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction,\n} from './clipboard/action';\n\n/** @experimental */\nexport interface UseStandardActionsOptions {\n /** Kit selection state — ids of currently selected nodes. */\n selection?: DepSchema['selection'];\n /** Current viewport — camera position + scale. */\n view?: DepSchema['view'];\n /** Scene tree — structural reads + undoable mutations. */\n scene?: DepSchema['scene'];\n /** Undo/redo history bound to the current scene. */\n history?: DepSchema['history'];\n /** Currently active tool id + hotkey-hold stack. */\n activeTool?: DepSchema['activeTool'];\n /**\n * Ids of kit-standard actions to leave unregistered, so a consumer can bind\n * its own. Ids that name no kit action are ignored;\n * `KIT_STANDARD_ACTION_IDS` is the full list.\n */\n exclude?: Iterable<string>;\n}\n\n/**\n * The ordered list of all kit-standard action descriptors. `viewport.pan`\n * and `viewport.zoom` are NOT in this list — they're registered conditionally\n * by SceneCanvas's `useViewportActions` based on the `viewport.pan` /\n * `viewport.zoom` flags.\n */\nconst KIT_STANDARD_DESCRIPTORS: Action[] = [\n escapeAction,\n cancelGestureAction,\n selectAllAction,\n duplicateAction,\n transformAgainAction,\n // Ahead of their node-level twins: with no mode registry nothing filters\n // by capability, so a keystroke goes to the first of these that is enabled.\n nudgeAnchorsUpAction,\n nudgeAnchorsDownAction,\n nudgeAnchorsLeftAction,\n nudgeAnchorsRightAction,\n deleteAnchorsAction,\n deleteAction,\n groupAction,\n ungroupAction,\n undoAction,\n redoAction,\n flipAction,\n nudgeUpAction,\n nudgeDownAction,\n nudgeLeftAction,\n nudgeRightAction,\n reorderForwardAction,\n reorderBackwardAction,\n alignLeftAction,\n alignCenterXAction,\n alignRightAction,\n alignTopAction,\n alignCenterYAction,\n alignBottomAction,\n distributeHorizontalAction,\n distributeVerticalAction,\n pathfinderUnionAction,\n pathfinderSubtractAction,\n pathfinderIntersectAction,\n pathfinderExcludeAction,\n pathfinderDivideAction,\n pathfinderCropAction,\n pathfinderTrimAction,\n pathfinderMergeAction,\n createOutlinesAction,\n outlineStrokeAction,\n moveAction,\n resizeAction,\n rotateAction,\n areaSelectAction,\n insertAction,\n insertRotateAction,\n insertRepositionAction,\n cloneAction,\n editAnchorsAction,\n enterPathEditAction,\n exitPathEditAction,\n insertPathAnchorAction,\n bendSegmentAction,\n cutPathAtAnchorAction,\n retractHandlesAction,\n makeHandlesSymmetricAction,\n averageAnchorsAction,\n joinAnchorsAction,\n simplifyPathAction,\n offsetPathAction,\n snipAtCrossingsAction,\n joinPathsAction,\n marqueeAnchorsAction,\n selectAnchorAction,\n lassoSelectAction,\n pinchZoomAction,\n viewportDragPanAction,\n clearSelectionAction,\n enterTextEditAction,\n setFillAction,\n setStrokeAction,\n setFillOpacityAction,\n setStrokeOpacityAction,\n ingestAction,\n clipboardCutAction,\n clipboardCopyAction,\n clipboardPasteAction,\n clipboardPasteEventAction,\n];\n\n/** Every id `useStandardActions` can register, in registration order. It\n * holds `clipboard.pasteEvent` back unless `ingest` is excluded. */\nexport const KIT_STANDARD_ACTION_IDS: readonly string[] =\n KIT_STANDARD_DESCRIPTORS.map((a) => a.id);\n\n/**\n * Kit-standard actions that stay unregistered while another one is\n * registered, because that one binds the same gesture and does everything\n * this one does: both answering it would act twice. Keyed by the action that\n * yields.\n */\nconst YIELDS_TO: Readonly<Record<string, string>> = {\n 'clipboard.pasteEvent': 'ingest',\n};\n\n/**\n * @experimental\n * Register each kit-standard dep source and action descriptor into the\n * surrounding `<ActionsProvider>` and `<DepRegistryProvider>` (typically\n * provided by `<SceneCanvas>`); a silent no-op when either is absent.\n *\n * Each option is published as a live source in the dep registry under its\n * canonical name (`selection`, `scene`, …). The source reads the latest\n * option value at invocation time, so consumers don't have to memoize their\n * dep objects.\n */\nexport function useStandardActions(opts: UseStandardActionsOptions): void {\n // --- Stabilize opts via ref ---\n const optsRef = useLatest(opts);\n\n // --- activeTool fallback: read from context when not supplied in opts ---\n const activeToolCtx = useOptionalActiveToolContext();\n const activeToolCtxRef = useLatest(activeToolCtx);\n\n // --- Dep source registration ---\n const depReg = useOptionalDepRegistry();\n\n useEffect(() => {\n if (!depReg) return;\n const unregisters: Array<() => void> = [];\n const keys = ['selection', 'view', 'scene', 'history'] as const;\n for (const key of keys) {\n unregisters.push(\n depReg.register(key as DepName, () => optsRef.current[key] as DepSchema[DepName]),\n );\n }\n // activeTool: prefer the explicit opt; fall back to the context value so\n // SceneCanvas doesn't need to thread it through StandardActionsRegistrar.\n unregisters.push(\n depReg.register('activeTool' as DepName, () =>\n (optsRef.current.activeTool ?? activeToolCtxRef.current) as DepSchema[DepName],\n ),\n );\n return () => { for (const u of unregisters) u(); };\n }, [depReg, optsRef, activeToolCtxRef]);\n\n // --- Action descriptor registration ---\n const reg = useActionsRegistry();\n\n // Joined so a fresh array of the same ids does not re-register every render.\n const excludeKey = opts.exclude ? [...opts.exclude].join('\\u0000') : '';\n\n useEffect(() => {\n if (!reg || !depReg) return;\n const excluded = new Set(excludeKey ? excludeKey.split('\\u0000') : []);\n const unregisters = KIT_STANDARD_DESCRIPTORS\n .filter((a) => !excluded.has(a.id))\n .filter((a) => {\n const over = YIELDS_TO[a.id];\n return over === undefined || excluded.has(over);\n })\n .map((a) => reg.register(a));\n return () => { for (const u of unregisters) u(); };\n }, [reg, depReg, excludeKey]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmHA,IAAMA,IAAqC;CACzCC;CACAC;CACAC;CACAC;CACAC;CAGAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACF,GAIaC,KACX/E,EAAyB,KAAK,MAAMgF,EAAE,EAAE,GAQpCC,KAA8C,EAClD,wBAAwB,SAC1B;AAaA,SAAgBC,GAAmB,GAAuC;CAExE,IAAMC,IAAUC,EAAUC,CAAI,GAGxBC,IAAgBC,GAA6B,GAC7CC,IAAmBJ,EAAUE,CAAa,GAG1CG,IAASC,GAAuB;CAEtC,QAAgB;EACd,IAAI,CAACD,GAAQ;EACb,IAAME,IAAiC,CAAC;EAExC,KAAK,IAAMC,KAAO;GADJ;GAAa;GAAQ;GAAS;EAC1B,GAChB,EAAY,KACVH,EAAO,SAASG,SAAsBT,EAAQ,QAAQS,EAA0B,CAClF;EASF,OALAD,EAAY,KACVF,EAAO,SAAS,oBACbN,EAAQ,QAAQ,cAAcK,EAAiB,OAClD,CACF,SACa;GAAE,KAAK,IAAMK,KAAKF,GAAa,EAAE;EAAG;CACnD,GAAG;EAACF;EAAQN;EAASK;CAAgB,CAAC;CAGtC,IAAMM,IAAMC,GAAmB,GAGzBC,IAAaX,EAAK,UAAU,CAAC,GAAGA,EAAK,OAAO,CAAC,CAAC,KAAK,IAAQ,IAAI;CAErE,QAAgB;EACd,IAAI,CAACS,KAAO,CAACL,GAAQ;EACrB,IAAMQ,IAAW,IAAI,IAAID,IAAaA,EAAW,MAAM,IAAQ,IAAI,CAAC,CAAC,GAC/DL,IAAc3F,EACjB,QAAQ,MAAM,CAACiG,EAAS,IAAIjB,EAAE,EAAE,CAAC,CAAC,CAClC,QAAQ,MAAM;GACb,IAAMkB,IAAOjB,GAAUD,EAAE;GACzB,OAAOkB,MAAS,KAAA,KAAaD,EAAS,IAAIC,CAAI;EAChD,CAAC,CAAC,CACD,KAAK,MAAMJ,EAAI,SAASd,CAAC,CAAC;EAC7B,aAAa;GAAE,KAAK,IAAMa,KAAKF,GAAa,EAAE;EAAG;CACnD,GAAG;EAACG;EAAKL;EAAQO;CAAU,CAAC;AAC9B"}
1
+ {"version":3,"file":"useStandardActions.js","names":[],"sources":["../../../src/interactions/actions/useStandardActions.ts"],"sourcesContent":["/**\n * `useStandardActions` — register the kit-standard action descriptors into the\n * nearest `<ActionsProvider>` and publish dep sources into the nearest\n * `<DepRegistryProvider>`. Falls back silently to a no-op when either is\n * not in scope.\n */\nimport type { Action } from '@weasel-js/routing';\nimport { KIT_STANDARD_ACTIONS } from '../../canvas/SceneCanvas/namedPresets';\nimport { useActionSet, useStandardDeps, type StandardDeps } from './useActionSet';\n\n/** Options for `useStandardActions`: which actions to register, and the deps they read. */\nexport interface UseStandardActionsOptions extends StandardDeps {\n /**\n * The actions to register, in order. Default: every kit-standard action\n * (`KIT_STANDARD_ACTION_IDS`). A preset's `actions` is a set in this form.\n */\n actions?: readonly Action[];\n /**\n * Ids of kit-standard actions to leave unregistered, so a consumer can bind\n * its own. Ids that name no kit action are ignored;\n * `KIT_STANDARD_ACTION_IDS` is the full list.\n */\n exclude?: Iterable<string>;\n}\n\n/** Every id `useStandardActions` can register, each core preset's in turn and\n * then the tool-driven ones. It holds `clipboard.pasteEvent` back while\n * `ingest` is registered. */\nexport const KIT_STANDARD_ACTION_IDS: readonly string[] = KIT_STANDARD_ACTIONS.map((a) => a.id);\n\n/**\n * Register each kit-standard dep source and action descriptor into the\n * surrounding `<ActionsProvider>` and `<DepRegistryProvider>` (typically\n * provided by `<SceneCanvas>`); a silent no-op when either is absent.\n *\n * Each dep option is published as a live source in the dep registry under its\n * canonical name (`selection`, `scene`, …). The source reads the latest\n * option value at invocation time, so consumers don't have to memoize their\n * dep objects.\n */\nexport function useStandardActions(opts: UseStandardActionsOptions): void {\n const { actions = KIT_STANDARD_ACTIONS, exclude, ...deps } = opts;\n useStandardDeps(deps);\n useActionSet(actions, exclude);\n}\n"],"mappings":";;;;;;;AA4BA,IAAa,0BAA6C,qBAAqB,KAAK,MAAM,EAAE,EAAE;;;;;;;;;;;AAY9F,SAAgB,mBAAmB,MAAuC;CACxE,MAAM,EAAE,UAAU,sBAAsB,SAAS,GAAG,SAAS;CAC7D,gBAAgB,IAAI;CACpB,aAAa,SAAS,OAAO;AAC/B"}