@weasel-js/core 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1433) hide show
  1. package/CHANGELOG.md +755 -0
  2. package/README.md +45 -11
  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 +152 -73
  10. package/dist/affordances/hitAffordanceRegions.js.map +1 -1
  11. package/dist/affordances/pathAnchors.js +148 -51
  12. package/dist/affordances/pathAnchors.js.map +1 -1
  13. package/dist/affordances/rotateCursor.js +18 -0
  14. package/dist/affordances/rotateCursor.js.map +1 -0
  15. package/dist/affordances/rotationHandle.js +83 -63
  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 -69
  43. package/dist/animation/rig/rigNode.js.map +1 -1
  44. package/dist/animation/rig/rigSeat.js +70 -17
  45. package/dist/animation/rig/rigSeat.js.map +1 -1
  46. package/dist/animation/rig/skinBinding.js +59 -39
  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 +41 -31
  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 +40 -38
  64. package/dist/barrel/paint.js +12 -11
  65. package/dist/barrel/paths.js +39 -12
  66. package/dist/barrel/renderer.js +24 -14
  67. package/dist/barrel/routing.js +69 -57
  68. package/dist/barrel/scene.js +48 -37
  69. package/dist/barrel/text.js +10 -9
  70. package/dist/barrel/viewport.js +47 -42
  71. package/dist/canvas/Canvas.js +189 -317
  72. package/dist/canvas/Canvas.js.map +1 -1
  73. package/dist/canvas/CanvasView.js +273 -202
  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 -36
  96. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js.map +1 -1
  97. package/dist/canvas/SceneCanvas/SceneCanvasInput.js +110 -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/canvasPassThrough.js +72 -0
  102. package/dist/canvas/SceneCanvas/canvasPassThrough.js.map +1 -0
  103. package/dist/canvas/SceneCanvas/contributionFrameHooks.js +54 -32
  104. package/dist/canvas/SceneCanvas/contributionFrameHooks.js.map +1 -1
  105. package/dist/canvas/SceneCanvas/coordTrace.js +36 -29
  106. package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -1
  107. package/dist/canvas/SceneCanvas/defaultNodeProperties.js +513 -316
  108. package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
  109. package/dist/canvas/SceneCanvas/defaultNodeRouting.js +39 -13
  110. package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
  111. package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js +83 -47
  112. package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js.map +1 -1
  113. package/dist/canvas/SceneCanvas/features.js +83 -127
  114. package/dist/canvas/SceneCanvas/features.js.map +1 -1
  115. package/dist/canvas/SceneCanvas/insertPreviewCommands.js +115 -0
  116. package/dist/canvas/SceneCanvas/insertPreviewCommands.js.map +1 -0
  117. package/dist/canvas/SceneCanvas/mergeLayers.js +43 -0
  118. package/dist/canvas/SceneCanvas/mergeLayers.js.map +1 -0
  119. package/dist/canvas/SceneCanvas/namedPresets.js +56 -0
  120. package/dist/canvas/SceneCanvas/namedPresets.js.map +1 -0
  121. package/dist/canvas/SceneCanvas/poseGeometry.js +66 -31
  122. package/dist/canvas/SceneCanvas/poseGeometry.js.map +1 -1
  123. package/dist/canvas/SceneCanvas/poseRegistrars.js +18 -8
  124. package/dist/canvas/SceneCanvas/poseRegistrars.js.map +1 -1
  125. package/dist/canvas/SceneCanvas/presets/arrange.js +27 -0
  126. package/dist/canvas/SceneCanvas/presets/arrange.js.map +1 -0
  127. package/dist/canvas/SceneCanvas/presets/chrome.js +14 -0
  128. package/dist/canvas/SceneCanvas/presets/chrome.js.map +1 -0
  129. package/dist/canvas/SceneCanvas/presets/edit.js +59 -0
  130. package/dist/canvas/SceneCanvas/presets/edit.js.map +1 -0
  131. package/dist/canvas/SceneCanvas/presets/ingest.js +13 -0
  132. package/dist/canvas/SceneCanvas/presets/ingest.js.map +1 -0
  133. package/dist/canvas/SceneCanvas/presets/paths.js +67 -0
  134. package/dist/canvas/SceneCanvas/presets/paths.js.map +1 -0
  135. package/dist/canvas/SceneCanvas/presets/select.js +19 -0
  136. package/dist/canvas/SceneCanvas/presets/select.js.map +1 -0
  137. package/dist/canvas/SceneCanvas/presets/toolDriven.js +20 -0
  138. package/dist/canvas/SceneCanvas/presets/toolDriven.js.map +1 -0
  139. package/dist/canvas/SceneCanvas/presets/transform.js +41 -0
  140. package/dist/canvas/SceneCanvas/presets/transform.js.map +1 -0
  141. package/dist/canvas/SceneCanvas/presets/view.js +14 -0
  142. package/dist/canvas/SceneCanvas/presets/view.js.map +1 -0
  143. package/dist/canvas/SceneCanvas/props.js +19 -35
  144. package/dist/canvas/SceneCanvas/props.js.map +1 -1
  145. package/dist/canvas/SceneCanvas/scenePointQuery.js +58 -0
  146. package/dist/canvas/SceneCanvas/scenePointQuery.js.map +1 -0
  147. package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js +59 -0
  148. package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js.map +1 -0
  149. package/dist/canvas/SceneCanvas/toolRegistry.js +30 -15
  150. package/dist/canvas/SceneCanvas/toolRegistry.js.map +1 -1
  151. package/dist/canvas/SceneCanvas/useActionTunings.js +20 -0
  152. package/dist/canvas/SceneCanvas/useActionTunings.js.map +1 -0
  153. package/dist/canvas/SceneCanvas/useActionsPropResolver.js +68 -35
  154. package/dist/canvas/SceneCanvas/useActionsPropResolver.js.map +1 -1
  155. package/dist/canvas/SceneCanvas/useBakedScene.js +17 -0
  156. package/dist/canvas/SceneCanvas/useBakedScene.js.map +1 -0
  157. package/dist/canvas/SceneCanvas/useBuiltinRigTools.js +65 -0
  158. package/dist/canvas/SceneCanvas/useBuiltinRigTools.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 +29 -14
  162. package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -1
  163. package/dist/canvas/SceneCanvas/useCanvasCamera.js +55 -32
  164. package/dist/canvas/SceneCanvas/useCanvasCamera.js.map +1 -1
  165. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js +24 -14
  166. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js.map +1 -1
  167. package/dist/canvas/SceneCanvas/useCanvasSelection.js +30 -12
  168. package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -1
  169. package/dist/canvas/SceneCanvas/useCanvasTools.js +112 -53
  170. package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -1
  171. package/dist/canvas/SceneCanvas/useChromeAffordances.js +31 -0
  172. package/dist/canvas/SceneCanvas/useChromeAffordances.js.map +1 -0
  173. package/dist/canvas/SceneCanvas/useContributionRoles.js +107 -56
  174. package/dist/canvas/SceneCanvas/useContributionRoles.js.map +1 -1
  175. package/dist/canvas/SceneCanvas/useDepartureGhostLayer.js +64 -0
  176. package/dist/canvas/SceneCanvas/useDepartureGhostLayer.js.map +1 -0
  177. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js +105 -136
  178. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js.map +1 -1
  179. package/dist/canvas/SceneCanvas/useHeldModifiers.js +21 -14
  180. package/dist/canvas/SceneCanvas/useHeldModifiers.js.map +1 -1
  181. package/dist/canvas/SceneCanvas/useNodeAtPoint.js +21 -19
  182. package/dist/canvas/SceneCanvas/useNodeAtPoint.js.map +1 -1
  183. package/dist/canvas/SceneCanvas/useNodeKinds.js +28 -19
  184. package/dist/canvas/SceneCanvas/useNodeKinds.js.map +1 -1
  185. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +93 -53
  186. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
  187. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +62 -35
  188. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js.map +1 -1
  189. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +110 -50
  190. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -1
  191. package/dist/canvas/SceneCanvas/useSceneCanvasPathEdit.js +30 -0
  192. package/dist/canvas/SceneCanvas/useSceneCanvasPathEdit.js.map +1 -0
  193. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +40 -0
  194. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js.map +1 -0
  195. package/dist/canvas/SceneCanvas/useSceneChrome.js +100 -44
  196. package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -1
  197. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +163 -0
  198. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js.map +1 -0
  199. package/dist/canvas/SceneCanvas/useScenePicking.js +69 -0
  200. package/dist/canvas/SceneCanvas/useScenePicking.js.map +1 -0
  201. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js +28 -17
  202. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js.map +1 -1
  203. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +158 -111
  204. package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
  205. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js +38 -26
  206. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js.map +1 -1
  207. package/dist/canvas/SceneCanvas/useSceneStandardActions.js +108 -0
  208. package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -0
  209. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js +40 -27
  210. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js.map +1 -1
  211. package/dist/canvas/SceneCanvas/useSurfaceRouting.js +29 -0
  212. package/dist/canvas/SceneCanvas/useSurfaceRouting.js.map +1 -0
  213. package/dist/canvas/SceneCanvas/useSurfaceViewInputs.js +44 -0
  214. package/dist/canvas/SceneCanvas/useSurfaceViewInputs.js.map +1 -0
  215. package/dist/canvas/SceneCanvas/useToolKeybindings.js +28 -0
  216. package/dist/canvas/SceneCanvas/useToolKeybindings.js.map +1 -0
  217. package/dist/canvas/SceneCanvas/useViewportActions.js +52 -28
  218. package/dist/canvas/SceneCanvas/useViewportActions.js.map +1 -1
  219. package/dist/canvas/SceneCanvas/worldPointAt.js +10 -5
  220. package/dist/canvas/SceneCanvas/worldPointAt.js.map +1 -1
  221. package/dist/canvas/SceneCanvas.js +274 -315
  222. package/dist/canvas/SceneCanvas.js.map +1 -1
  223. package/dist/canvas/SceneViewCanvas.js +68 -42
  224. package/dist/canvas/SceneViewCanvas.js.map +1 -1
  225. package/dist/canvas/SurfaceCanvas.js +62 -0
  226. package/dist/canvas/SurfaceCanvas.js.map +1 -0
  227. package/dist/canvas/accentColor.js +8 -5
  228. package/dist/canvas/accentColor.js.map +1 -1
  229. package/dist/canvas/adapterDerivedPath.js +33 -18
  230. package/dist/canvas/adapterDerivedPath.js.map +1 -1
  231. package/dist/canvas/adapterPickSource.js +60 -0
  232. package/dist/canvas/adapterPickSource.js.map +1 -0
  233. package/dist/canvas/affordanceAt.js +106 -50
  234. package/dist/canvas/affordanceAt.js.map +1 -1
  235. package/dist/canvas/buildSceneLayer.js +111 -80
  236. package/dist/canvas/buildSceneLayer.js.map +1 -1
  237. package/dist/canvas/buildSceneTree.js +110 -46
  238. package/dist/canvas/buildSceneTree.js.map +1 -1
  239. package/dist/canvas/canvasRenderer.js +156 -71
  240. package/dist/canvas/canvasRenderer.js.map +1 -1
  241. package/dist/canvas/colorOverrides.js +18 -10
  242. package/dist/canvas/colorOverrides.js.map +1 -1
  243. package/dist/canvas/copiesAbove.js +37 -0
  244. package/dist/canvas/copiesAbove.js.map +1 -0
  245. package/dist/canvas/defaultDrawOne.js +56 -31
  246. package/dist/canvas/defaultDrawOne.js.map +1 -1
  247. package/dist/canvas/deps/areaSelect.js +30 -12
  248. package/dist/canvas/deps/areaSelect.js.map +1 -1
  249. package/dist/canvas/deps/booleans.js +104 -0
  250. package/dist/canvas/deps/booleans.js.map +1 -0
  251. package/dist/canvas/deps/changes.js +17 -9
  252. package/dist/canvas/deps/changes.js.map +1 -1
  253. package/dist/canvas/deps/debug.js +12 -5
  254. package/dist/canvas/deps/debug.js.map +1 -1
  255. package/dist/canvas/deps/dispatchSources.js +27 -0
  256. package/dist/canvas/deps/dispatchSources.js.map +1 -0
  257. package/dist/canvas/deps/dispatcher.js +18 -7
  258. package/dist/canvas/deps/dispatcher.js.map +1 -1
  259. package/dist/canvas/deps/editAnchors.js +253 -68
  260. package/dist/canvas/deps/editAnchors.js.map +1 -1
  261. package/dist/canvas/deps/geometryProjection.js +13 -7
  262. package/dist/canvas/deps/geometryProjection.js.map +1 -1
  263. package/dist/canvas/deps/hitTestArea.js +80 -40
  264. package/dist/canvas/deps/hitTestArea.js.map +1 -1
  265. package/dist/canvas/deps/ingestion.js +18 -13
  266. package/dist/canvas/deps/ingestion.js.map +1 -1
  267. package/dist/canvas/deps/insert.js +205 -111
  268. package/dist/canvas/deps/insert.js.map +1 -1
  269. package/dist/canvas/deps/kitSettings.js +16 -0
  270. package/dist/canvas/deps/kitSettings.js.map +1 -0
  271. package/dist/canvas/deps/lassoSelect.js +25 -13
  272. package/dist/canvas/deps/lassoSelect.js.map +1 -1
  273. package/dist/canvas/deps/layout.js +32 -26
  274. package/dist/canvas/deps/layout.js.map +1 -1
  275. package/dist/canvas/deps/nodeAtPoint.js +28 -14
  276. package/dist/canvas/deps/nodeAtPoint.js.map +1 -1
  277. package/dist/canvas/deps/pathLeaf.js +66 -0
  278. package/dist/canvas/deps/pathLeaf.js.map +1 -0
  279. package/dist/canvas/deps/pathLeafDeps.js +13 -0
  280. package/dist/canvas/deps/pathLeafDeps.js.map +1 -0
  281. package/dist/canvas/deps/poseDescriptor.js +10 -8
  282. package/dist/canvas/deps/poseDescriptor.js.map +1 -1
  283. package/dist/canvas/deps/previewPaths.js +44 -0
  284. package/dist/canvas/deps/previewPaths.js.map +1 -0
  285. package/dist/canvas/deps/resizePolicy.js +32 -25
  286. package/dist/canvas/deps/resizePolicy.js.map +1 -1
  287. package/dist/canvas/deps/slice.js +73 -87
  288. package/dist/canvas/deps/slice.js.map +1 -1
  289. package/dist/canvas/deps/snap.js +58 -7
  290. package/dist/canvas/deps/snap.js.map +1 -1
  291. package/dist/canvas/deps/surface.js +30 -0
  292. package/dist/canvas/deps/surface.js.map +1 -0
  293. package/dist/canvas/deps/textEdit.js +21 -13
  294. package/dist/canvas/deps/textEdit.js.map +1 -1
  295. package/dist/canvas/deps/view.js +46 -34
  296. package/dist/canvas/deps/view.js.map +1 -1
  297. package/dist/canvas/derivedPath.js +158 -50
  298. package/dist/canvas/derivedPath.js.map +1 -1
  299. package/dist/canvas/doubleClickTarget.js +20 -0
  300. package/dist/canvas/doubleClickTarget.js.map +1 -0
  301. package/dist/canvas/drawEnvelope.js +26 -17
  302. package/dist/canvas/drawEnvelope.js.map +1 -1
  303. package/dist/canvas/drawnBounds.js +116 -0
  304. package/dist/canvas/drawnBounds.js.map +1 -0
  305. package/dist/canvas/getNodeAtPoint.js +11 -8
  306. package/dist/canvas/getNodeAtPoint.js.map +1 -1
  307. package/dist/canvas/hostAnchor.js +35 -18
  308. package/dist/canvas/hostAnchor.js.map +1 -1
  309. package/dist/canvas/hud.module.js +25 -14
  310. package/dist/canvas/hud.module.js.map +1 -1
  311. package/dist/canvas/insertPreviewExtent.js +81 -58
  312. package/dist/canvas/insertPreviewExtent.js.map +1 -1
  313. package/dist/canvas/kitRequirements.js +154 -115
  314. package/dist/canvas/kitRequirements.js.map +1 -1
  315. package/dist/canvas/layerHover.js +28 -0
  316. package/dist/canvas/layerHover.js.map +1 -0
  317. package/dist/canvas/layerOrder.js +107 -57
  318. package/dist/canvas/layerOrder.js.map +1 -1
  319. package/dist/canvas/layerSlots.js +16 -9
  320. package/dist/canvas/layerSlots.js.map +1 -1
  321. package/dist/canvas/mountedCanvases.js +23 -13
  322. package/dist/canvas/mountedCanvases.js.map +1 -1
  323. package/dist/canvas/nodeShapes/derivedPainter.js +65 -25
  324. package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -1
  325. package/dist/canvas/nodeShapes/imagePainter.js +69 -53
  326. package/dist/canvas/nodeShapes/imagePainter.js.map +1 -1
  327. package/dist/canvas/nodeShapes/measurePainter.js +58 -0
  328. package/dist/canvas/nodeShapes/measurePainter.js.map +1 -0
  329. package/dist/canvas/nodeShapes/memo.js +16 -5
  330. package/dist/canvas/nodeShapes/memo.js.map +1 -1
  331. package/dist/canvas/nodeShapes/nodePaint.js +125 -46
  332. package/dist/canvas/nodeShapes/nodePaint.js.map +1 -1
  333. package/dist/canvas/nodeShapes/pathPainter.js +41 -27
  334. package/dist/canvas/nodeShapes/pathPainter.js.map +1 -1
  335. package/dist/canvas/nodeShapes/poseBox.js +20 -13
  336. package/dist/canvas/nodeShapes/poseBox.js.map +1 -1
  337. package/dist/canvas/nodeShapes/rectFallbackPainter.js +26 -22
  338. package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -1
  339. package/dist/canvas/nodeShapes/shapePainter.js +67 -46
  340. package/dist/canvas/nodeShapes/shapePainter.js.map +1 -1
  341. package/dist/canvas/nodeShapes/strokedBounds.js +177 -0
  342. package/dist/canvas/nodeShapes/strokedBounds.js.map +1 -0
  343. package/dist/canvas/nodeShapes/textPainter.js +170 -37
  344. package/dist/canvas/nodeShapes/textPainter.js.map +1 -1
  345. package/dist/canvas/overChildren.js +40 -0
  346. package/dist/canvas/overChildren.js.map +1 -0
  347. package/dist/canvas/overlayRoleStrokes.js +20 -3
  348. package/dist/canvas/overlayRoleStrokes.js.map +1 -1
  349. package/dist/canvas/paintCull.js +24 -12
  350. package/dist/canvas/paintCull.js.map +1 -1
  351. package/dist/canvas/paintedCursorLayer.js +59 -35
  352. package/dist/canvas/paintedCursorLayer.js.map +1 -1
  353. package/dist/canvas/pathOverlay.js +63 -0
  354. package/dist/canvas/pathOverlay.js.map +1 -0
  355. package/dist/canvas/pickReach.js +40 -0
  356. package/dist/canvas/pickReach.js.map +1 -0
  357. package/dist/canvas/pickWalk.js +150 -130
  358. package/dist/canvas/pickWalk.js.map +1 -1
  359. package/dist/canvas/planeClips.js +39 -22
  360. package/dist/canvas/planeClips.js.map +1 -1
  361. package/dist/canvas/poseCascade.js +51 -27
  362. package/dist/canvas/poseCascade.js.map +1 -1
  363. package/dist/canvas/poseRotation.js +24 -14
  364. package/dist/canvas/poseRotation.js.map +1 -1
  365. package/dist/canvas/rasterReadback.js +23 -15
  366. package/dist/canvas/rasterReadback.js.map +1 -1
  367. package/dist/canvas/rasterToPng.js +21 -15
  368. package/dist/canvas/rasterToPng.js.map +1 -1
  369. package/dist/canvas/renderDebugSnapshot.js +36 -19
  370. package/dist/canvas/renderDebugSnapshot.js.map +1 -1
  371. package/dist/canvas/renderNeeds.js +33 -18
  372. package/dist/canvas/renderNeeds.js.map +1 -1
  373. package/dist/canvas/renderSceneToPixels.js +202 -87
  374. package/dist/canvas/renderSceneToPixels.js.map +1 -1
  375. package/dist/canvas/sceneAdapter.js +96 -96
  376. package/dist/canvas/sceneAdapter.js.map +1 -1
  377. package/dist/canvas/sceneClipboard.js +141 -92
  378. package/dist/canvas/sceneClipboard.js.map +1 -1
  379. package/dist/canvas/sceneLayerPaint.js +56 -27
  380. package/dist/canvas/sceneLayerPaint.js.map +1 -1
  381. package/dist/canvas/sceneSlotWiring.js +24 -13
  382. package/dist/canvas/sceneSlotWiring.js.map +1 -1
  383. package/dist/canvas/sceneViewRender.js +85 -55
  384. package/dist/canvas/sceneViewRender.js.map +1 -1
  385. package/dist/canvas/slopsDebugLayer.js +58 -49
  386. package/dist/canvas/slopsDebugLayer.js.map +1 -1
  387. package/dist/canvas/surfaceContribution.js +22 -10
  388. package/dist/canvas/surfaceContribution.js.map +1 -1
  389. package/dist/canvas/useCanvasElements.js +31 -0
  390. package/dist/canvas/useCanvasElements.js.map +1 -0
  391. package/dist/canvas/useCanvasHandle.js +69 -0
  392. package/dist/canvas/useCanvasHandle.js.map +1 -0
  393. package/dist/canvas/useCanvasPaint.js +91 -0
  394. package/dist/canvas/useCanvasPaint.js.map +1 -0
  395. package/dist/canvas/useCanvasRenderer.js +45 -23
  396. package/dist/canvas/useCanvasRenderer.js.map +1 -1
  397. package/dist/canvas/useCanvasSurface.js +41 -23
  398. package/dist/canvas/useCanvasSurface.js.map +1 -1
  399. package/dist/canvas/useCanvasView.js +80 -50
  400. package/dist/canvas/useCanvasView.js.map +1 -1
  401. package/dist/canvas/useClientToWorld.js +27 -0
  402. package/dist/canvas/useClientToWorld.js.map +1 -0
  403. package/dist/canvas/useExtraLayers.js +45 -0
  404. package/dist/canvas/useExtraLayers.js.map +1 -0
  405. package/dist/canvas/useFrameLoop.js +109 -49
  406. package/dist/canvas/useFrameLoop.js.map +1 -1
  407. package/dist/canvas/useHitObserver.js +22 -15
  408. package/dist/canvas/useHitObserver.js.map +1 -1
  409. package/dist/canvas/useHostAnchor.js +83 -53
  410. package/dist/canvas/useHostAnchor.js.map +1 -1
  411. package/dist/canvas/useLateContentRedraw.js +21 -14
  412. package/dist/canvas/useLateContentRedraw.js.map +1 -1
  413. package/dist/canvas/useLayerStack.js +72 -0
  414. package/dist/canvas/useLayerStack.js.map +1 -0
  415. package/dist/canvas/usePaintedCursor.js +28 -0
  416. package/dist/canvas/usePaintedCursor.js.map +1 -0
  417. package/dist/canvas/useRedrawOn.js +24 -14
  418. package/dist/canvas/useRedrawOn.js.map +1 -1
  419. package/dist/canvas/useSceneAdapter.js +27 -0
  420. package/dist/canvas/useSceneAdapter.js.map +1 -0
  421. package/dist/canvas/useSceneLayerList.js +15 -7
  422. package/dist/canvas/useSceneLayerList.js.map +1 -1
  423. package/dist/canvas/useSurfaceInput.js +46 -30
  424. package/dist/canvas/useSurfaceInput.js.map +1 -1
  425. package/dist/canvas/useSurfaceSize.js +43 -0
  426. package/dist/canvas/useSurfaceSize.js.map +1 -0
  427. package/dist/canvas/useToolCursor.js +30 -21
  428. package/dist/canvas/useToolCursor.js.map +1 -1
  429. package/dist/canvas/useViewHelpers.js +112 -61
  430. package/dist/canvas/useViewHelpers.js.map +1 -1
  431. package/dist/canvas/useViewLayerGate.js +29 -0
  432. package/dist/canvas/useViewLayerGate.js.map +1 -0
  433. package/dist/canvas/useViewNesting.js +104 -0
  434. package/dist/canvas/useViewNesting.js.map +1 -0
  435. package/dist/canvas/useViewRegistrySurface.js +44 -0
  436. package/dist/canvas/useViewRegistrySurface.js.map +1 -0
  437. package/dist/canvas/viewInputs.js +14 -11
  438. package/dist/canvas/viewInputs.js.map +1 -1
  439. package/dist/canvas/viewRegistry.js +144 -38
  440. package/dist/canvas/viewRegistry.js.map +1 -1
  441. package/dist/canvas/watchElementMove.js +71 -33
  442. package/dist/canvas/watchElementMove.js.map +1 -1
  443. package/dist/canvas/wrapNodeOutput.js +21 -9
  444. package/dist/canvas/wrapNodeOutput.js.map +1 -1
  445. package/dist/clipboard.d.ts +7 -3
  446. package/dist/clipboard.js +4 -3
  447. package/dist/{clone-2a5hVbBd.d.ts → clone-DZDrfIlU.d.ts} +31 -64
  448. package/dist/clone.d.ts +5 -4
  449. package/dist/core/adapters/testing/rootsTree.js +17 -0
  450. package/dist/core/adapters/testing/rootsTree.js.map +1 -0
  451. package/dist/core/applyOps.js +23 -7
  452. package/dist/core/applyOps.js.map +1 -1
  453. package/dist/core/device/index.js +6 -5
  454. package/dist/core/device/targets.js +29 -8
  455. package/dist/core/device/targets.js.map +1 -1
  456. package/dist/core/device/useDeviceProfile.js +86 -52
  457. package/dist/core/device/useDeviceProfile.js.map +1 -1
  458. package/dist/core/device/useTargetBasePx.js +23 -0
  459. package/dist/core/device/useTargetBasePx.js.map +1 -0
  460. package/dist/core/device/watchDevicePixelRatio.js +27 -10
  461. package/dist/core/device/watchDevicePixelRatio.js.map +1 -1
  462. package/dist/core/geometry/autoPoseDescriptor.js +38 -24
  463. package/dist/core/geometry/autoPoseDescriptor.js.map +1 -1
  464. package/dist/core/geometry/inkExtents.js +60 -0
  465. package/dist/core/geometry/inkExtents.js.map +1 -0
  466. package/dist/core/geometry/pathPoseDescriptor.js +101 -76
  467. package/dist/core/geometry/pathPoseDescriptor.js.map +1 -1
  468. package/dist/core/geometry/poseDescriptor.js +209 -120
  469. package/dist/core/geometry/poseDescriptor.js.map +1 -1
  470. package/dist/core/geometry/regionHit.js +127 -79
  471. package/dist/core/geometry/regionHit.js.map +1 -1
  472. package/dist/core/geometry/targetFrame.js +84 -60
  473. package/dist/core/geometry/targetFrame.js.map +1 -1
  474. package/dist/core/geometry/unionBounds.js +103 -48
  475. package/dist/core/geometry/unionBounds.js.map +1 -1
  476. package/dist/core/isPlainObject.js +3 -2
  477. package/dist/core/layers/backgroundFill.js +23 -15
  478. package/dist/core/layers/backgroundFill.js.map +1 -1
  479. package/dist/core/layers/children.js +16 -15
  480. package/dist/core/layers/children.js.map +1 -1
  481. package/dist/core/layers/gateLayer.js +24 -9
  482. package/dist/core/layers/gateLayer.js.map +1 -1
  483. package/dist/core/layers/layerGroup.js +42 -29
  484. package/dist/core/layers/layerGroup.js.map +1 -1
  485. package/dist/core/layers/redrawSource.js +15 -0
  486. package/dist/core/layers/redrawSource.js.map +1 -0
  487. package/dist/core/layers/render.js +183 -93
  488. package/dist/core/layers/render.js.map +1 -1
  489. package/dist/core/layers/retain.js +38 -0
  490. package/dist/core/layers/retain.js.map +1 -0
  491. package/dist/core/ops/arrange.js +30 -19
  492. package/dist/core/ops/arrange.js.map +1 -1
  493. package/dist/core/ops/create.js +32 -23
  494. package/dist/core/ops/create.js.map +1 -1
  495. package/dist/core/ops/createHistory.js +23 -14
  496. package/dist/core/ops/createHistory.js.map +1 -1
  497. package/dist/core/ops/delete.js +80 -57
  498. package/dist/core/ops/delete.js.map +1 -1
  499. package/dist/core/ops/nodeFlags.js +44 -0
  500. package/dist/core/ops/nodeFlags.js.map +1 -0
  501. package/dist/core/ops/registry.js +26 -11
  502. package/dist/core/ops/registry.js.map +1 -1
  503. package/dist/core/ops/reorder/algorithms.js +62 -38
  504. package/dist/core/ops/reorder/algorithms.js.map +1 -1
  505. package/dist/core/ops/reorder/index.js +124 -88
  506. package/dist/core/ops/reorder/index.js.map +1 -1
  507. package/dist/core/ops/reorder/setChildOrder.js +32 -25
  508. package/dist/core/ops/reorder/setChildOrder.js.map +1 -1
  509. package/dist/core/ops/reparent.js +63 -38
  510. package/dist/core/ops/reparent.js.map +1 -1
  511. package/dist/core/ops/select.js +23 -20
  512. package/dist/core/ops/select.js.map +1 -1
  513. package/dist/core/ops/setData.js +23 -21
  514. package/dist/core/ops/setData.js.map +1 -1
  515. package/dist/core/ops/setLayer.js +26 -21
  516. package/dist/core/ops/setLayer.js.map +1 -1
  517. package/dist/core/ops/setLayout.js +27 -18
  518. package/dist/core/ops/setLayout.js.map +1 -1
  519. package/dist/core/ops/setPath.js +60 -41
  520. package/dist/core/ops/setPath.js.map +1 -1
  521. package/dist/core/ops/setText.js +26 -21
  522. package/dist/core/ops/setText.js.map +1 -1
  523. package/dist/core/ops/slot.js +36 -25
  524. package/dist/core/ops/slot.js.map +1 -1
  525. package/dist/core/ops/transform.js +35 -28
  526. package/dist/core/ops/transform.js.map +1 -1
  527. package/dist/core/pages/fitViewToPage.js +17 -0
  528. package/dist/core/pages/fitViewToPage.js.map +1 -0
  529. package/dist/core/pages/pages.js +96 -0
  530. package/dist/core/pages/pages.js.map +1 -0
  531. package/dist/core/pages/pagesLayer.js +33 -0
  532. package/dist/core/pages/pagesLayer.js.map +1 -0
  533. package/dist/core/paint/meshKind.js +16 -11
  534. package/dist/core/paint/meshKind.js.map +1 -1
  535. package/dist/core/paint/meshKindLazy.js +3 -3
  536. package/dist/core/paint/meshKindLazy.js.map +1 -1
  537. package/dist/core/paint/paintKindEntry.js +13 -4
  538. package/dist/core/paint/paintKindEntry.js.map +1 -1
  539. package/dist/core/paint/paintKinds.js +149 -88
  540. package/dist/core/paint/paintKinds.js.map +1 -1
  541. package/dist/core/paint/registerMesh.js +6 -4
  542. package/dist/core/paint/registerMesh.js.map +1 -1
  543. package/dist/core/scene/NodeProperties.js +15 -10
  544. package/dist/core/scene/NodeProperties.js.map +1 -1
  545. package/dist/core/scene/NodeRouting.js +16 -12
  546. package/dist/core/scene/NodeRouting.js.map +1 -1
  547. package/dist/core/scene/annotation.js +28 -0
  548. package/dist/core/scene/annotation.js.map +1 -0
  549. package/dist/core/scene/appliedLog.js +31 -23
  550. package/dist/core/scene/appliedLog.js.map +1 -1
  551. package/dist/core/scene/arrivalWindow.js +120 -75
  552. package/dist/core/scene/arrivalWindow.js.map +1 -1
  553. package/dist/core/scene/arrivals.js +17 -6
  554. package/dist/core/scene/arrivals.js.map +1 -1
  555. package/dist/core/scene/boundOps.js +42 -23
  556. package/dist/core/scene/boundOps.js.map +1 -1
  557. package/dist/core/scene/composeFrame.js +51 -21
  558. package/dist/core/scene/composeFrame.js.map +1 -1
  559. package/dist/core/scene/composePose.js +129 -39
  560. package/dist/core/scene/composePose.js.map +1 -1
  561. package/dist/core/scene/depFrame.js +94 -0
  562. package/dist/core/scene/depFrame.js.map +1 -0
  563. package/dist/core/scene/depMemo.js +44 -19
  564. package/dist/core/scene/depMemo.js.map +1 -1
  565. package/dist/core/scene/dependents.js +73 -45
  566. package/dist/core/scene/dependents.js.map +1 -1
  567. package/dist/core/scene/derivedParts.js +58 -0
  568. package/dist/core/scene/derivedParts.js.map +1 -0
  569. package/dist/core/scene/derivedPath.js +52 -22
  570. package/dist/core/scene/derivedPath.js.map +1 -1
  571. package/dist/core/scene/editMode.js +11 -11
  572. package/dist/core/scene/editMode.js.map +1 -1
  573. package/dist/core/scene/effectivePose.js +168 -48
  574. package/dist/core/scene/effectivePose.js.map +1 -1
  575. package/dist/core/scene/fieldEdits.js +95 -75
  576. package/dist/core/scene/fieldEdits.js.map +1 -1
  577. package/dist/core/scene/historyFacade.js +130 -85
  578. package/dist/core/scene/historyFacade.js.map +1 -1
  579. package/dist/core/scene/historyForm.js +7 -3
  580. package/dist/core/scene/historyForm.js.map +1 -1
  581. package/dist/core/scene/kitOps.js +203 -131
  582. package/dist/core/scene/kitOps.js.map +1 -1
  583. package/dist/core/scene/kitRegistry.js +49 -22
  584. package/dist/core/scene/kitRegistry.js.map +1 -1
  585. package/dist/core/scene/layerStack.js +123 -92
  586. package/dist/core/scene/layerStack.js.map +1 -1
  587. package/dist/core/scene/layoutPass.js +118 -72
  588. package/dist/core/scene/layoutPass.js.map +1 -1
  589. package/dist/core/scene/lockGuard.js +32 -24
  590. package/dist/core/scene/lockGuard.js.map +1 -1
  591. package/dist/core/scene/minSize.js +17 -0
  592. package/dist/core/scene/minSize.js.map +1 -0
  593. package/dist/core/scene/nestedHit.js +45 -31
  594. package/dist/core/scene/nestedHit.js.map +1 -1
  595. package/dist/core/scene/nodeFlags.js +43 -0
  596. package/dist/core/scene/nodeFlags.js.map +1 -0
  597. package/dist/core/scene/nodeFnFields.js +64 -40
  598. package/dist/core/scene/nodeFnFields.js.map +1 -1
  599. package/dist/core/scene/nodeGates.js +58 -0
  600. package/dist/core/scene/nodeGates.js.map +1 -0
  601. package/dist/core/scene/nodeMemo.js +92 -40
  602. package/dist/core/scene/nodeMemo.js.map +1 -1
  603. package/dist/core/scene/nodeStore.js +179 -99
  604. package/dist/core/scene/nodeStore.js.map +1 -1
  605. package/dist/core/scene/notifier.js +30 -19
  606. package/dist/core/scene/notifier.js.map +1 -1
  607. package/dist/core/scene/opTable.js +42 -36
  608. package/dist/core/scene/opTable.js.map +1 -1
  609. package/dist/core/scene/outerOps.js +50 -43
  610. package/dist/core/scene/outerOps.js.map +1 -1
  611. package/dist/core/scene/pathEffects/blend.js +80 -0
  612. package/dist/core/scene/pathEffects/blend.js.map +1 -0
  613. package/dist/core/scene/pathEffects/derive.js +112 -0
  614. package/dist/core/scene/pathEffects/derive.js.map +1 -0
  615. package/dist/core/scene/pathEffects/effects.js +40 -0
  616. package/dist/core/scene/pathEffects/effects.js.map +1 -0
  617. package/dist/core/scene/poseFeed.js +95 -60
  618. package/dist/core/scene/poseFeed.js.map +1 -1
  619. package/dist/core/scene/poseHold.js +33 -24
  620. package/dist/core/scene/poseHold.js.map +1 -1
  621. package/dist/core/scene/poseOverrides.js +86 -49
  622. package/dist/core/scene/poseOverrides.js.map +1 -1
  623. package/dist/core/scene/poseRemovals.js +58 -0
  624. package/dist/core/scene/poseRemovals.js.map +1 -0
  625. package/dist/core/scene/poseSnapshot.js +62 -41
  626. package/dist/core/scene/poseSnapshot.js.map +1 -1
  627. package/dist/core/scene/poseWrites.js +151 -0
  628. package/dist/core/scene/poseWrites.js.map +1 -0
  629. package/dist/core/scene/reconcileSpecs.js +63 -34
  630. package/dist/core/scene/reconcileSpecs.js.map +1 -1
  631. package/dist/core/scene/recorder.js +90 -57
  632. package/dist/core/scene/recorder.js.map +1 -1
  633. package/dist/core/scene/renderOrder.js +105 -59
  634. package/dist/core/scene/renderOrder.js.map +1 -1
  635. package/dist/core/scene/scene.js +133 -80
  636. package/dist/core/scene/scene.js.map +1 -1
  637. package/dist/core/scene/sceneEdits.js +62 -49
  638. package/dist/core/scene/sceneEdits.js.map +1 -1
  639. package/dist/core/scene/sceneMutators.js +44 -36
  640. package/dist/core/scene/sceneMutators.js.map +1 -1
  641. package/dist/core/scene/scenePoseAdapter.js +13 -9
  642. package/dist/core/scene/scenePoseAdapter.js.map +1 -1
  643. package/dist/core/scene/sceneRecording.js +89 -72
  644. package/dist/core/scene/sceneRecording.js.map +1 -1
  645. package/dist/core/scene/sceneSelection.js +23 -16
  646. package/dist/core/scene/sceneSelection.js.map +1 -1
  647. package/dist/core/scene/sceneState.js +54 -36
  648. package/dist/core/scene/sceneState.js.map +1 -1
  649. package/dist/core/scene/serialization.js +87 -50
  650. package/dist/core/scene/serialization.js.map +1 -1
  651. package/dist/core/scene/staleReplay.js +35 -26
  652. package/dist/core/scene/staleReplay.js.map +1 -1
  653. package/dist/core/scene/statedFields.js +10 -5
  654. package/dist/core/scene/statedFields.js.map +1 -1
  655. package/dist/core/scene/treeEdits.js +129 -98
  656. package/dist/core/scene/treeEdits.js.map +1 -1
  657. package/dist/core/scene/treeOrder.js +13 -8
  658. package/dist/core/scene/treeOrder.js.map +1 -1
  659. package/dist/core/scene/treeReads.js +25 -16
  660. package/dist/core/scene/treeReads.js.map +1 -1
  661. package/dist/core/scene/types.js +4 -3
  662. package/dist/core/scene/types.js.map +1 -1
  663. package/dist/core/scene/unionOfChildren.js +20 -10
  664. package/dist/core/scene/unionOfChildren.js.map +1 -1
  665. package/dist/core/scene/unitScopes.js +15 -8
  666. package/dist/core/scene/unitScopes.js.map +1 -1
  667. package/dist/core/scene/useScene.js +32 -24
  668. package/dist/core/scene/useScene.js.map +1 -1
  669. package/dist/core/selection/chromeState.js +41 -17
  670. package/dist/core/selection/chromeState.js.map +1 -1
  671. package/dist/core/selection/readOnlySelection.js +39 -24
  672. package/dist/core/selection/readOnlySelection.js.map +1 -1
  673. package/dist/core/selection/selectionTarget.js +14 -3
  674. package/dist/core/selection/selectionTarget.js.map +1 -1
  675. package/dist/core/selection/usePublishSceneSelection.js +25 -18
  676. package/dist/core/selection/usePublishSceneSelection.js.map +1 -1
  677. package/dist/core/selection/useSelection.js +90 -57
  678. package/dist/core/selection/useSelection.js.map +1 -1
  679. package/dist/core/shapeKinds.js +43 -28
  680. package/dist/core/shapeKinds.js.map +1 -1
  681. package/dist/core/stableStringify.js +5 -4
  682. package/dist/core/stableStringify.js.map +1 -1
  683. package/dist/core/stylus/stylus.js +49 -25
  684. package/dist/core/stylus/stylus.js.map +1 -1
  685. package/dist/core/stylus/usePointerStylus.js +61 -34
  686. package/dist/core/stylus/usePointerStylus.js.map +1 -1
  687. package/dist/core/usePaintKinds.js +21 -11
  688. package/dist/core/usePaintKinds.js.map +1 -1
  689. package/dist/core/viewport/clampView.js +31 -15
  690. package/dist/core/viewport/clampView.js.map +1 -1
  691. package/dist/core/viewport/clientToWorld.js +15 -4
  692. package/dist/core/viewport/clientToWorld.js.map +1 -1
  693. package/dist/core/viewport/createVelocityTracker.js +23 -19
  694. package/dist/core/viewport/createVelocityTracker.js.map +1 -1
  695. package/dist/core/viewport/fitToBounds.js +28 -11
  696. package/dist/core/viewport/fitToBounds.js.map +1 -1
  697. package/dist/core/viewport/fitViewToBounds.js +45 -19
  698. package/dist/core/viewport/fitViewToBounds.js.map +1 -1
  699. package/dist/core/viewport/interpolateView.js +40 -20
  700. package/dist/core/viewport/interpolateView.js.map +1 -1
  701. package/dist/core/viewport/parallax.js +89 -56
  702. package/dist/core/viewport/parallax.js.map +1 -1
  703. package/dist/core/viewport/sceneNodeClientRect.js +21 -12
  704. package/dist/core/viewport/sceneNodeClientRect.js.map +1 -1
  705. package/dist/core/viewport/screenSlop.js +40 -17
  706. package/dist/core/viewport/screenSlop.js.map +1 -1
  707. package/dist/core/viewport/useAutoCenter.js +36 -22
  708. package/dist/core/viewport/useAutoCenter.js.map +1 -1
  709. package/dist/core/viewport/useCanvasSize.js +43 -22
  710. package/dist/core/viewport/useCanvasSize.js.map +1 -1
  711. package/dist/core/viewport/useDecayLoop.js +120 -50
  712. package/dist/core/viewport/useDecayLoop.js.map +1 -1
  713. package/dist/core/viewport/useNodeOverlayFrame.js +93 -58
  714. package/dist/core/viewport/useNodeOverlayFrame.js.map +1 -1
  715. package/dist/core/viewport/useVelocityTracker.js +9 -6
  716. package/dist/core/viewport/useVelocityTracker.js.map +1 -1
  717. package/dist/core/viewport/useViewAnimation.js +159 -99
  718. package/dist/core/viewport/useViewAnimation.js.map +1 -1
  719. package/dist/core/viewport/view.js +49 -22
  720. package/dist/core/viewport/view.js.map +1 -1
  721. package/dist/core/viewport/viewTransform.js +8 -6
  722. package/dist/core/viewport/viewTransform.js.map +1 -1
  723. package/dist/core/viewport/viewportWorldRect.js +15 -7
  724. package/dist/core/viewport/viewportWorldRect.js.map +1 -1
  725. package/dist/core/viewport/wheelHandler.js +31 -20
  726. package/dist/core/viewport/wheelHandler.js.map +1 -1
  727. package/dist/core/viewport/zoomAt.js +50 -13
  728. package/dist/core/viewport/zoomAt.js.map +1 -1
  729. package/dist/core/viewport/zoomBounds.js +33 -17
  730. package/dist/core/viewport/zoomBounds.js.map +1 -1
  731. package/dist/cornerHandles-Camw_yeu.d.ts +169 -0
  732. package/dist/debug/createDebugOverlayLayer.js +303 -215
  733. package/dist/debug/createDebugOverlayLayer.js.map +1 -1
  734. package/dist/debug/createDebugSink.js +68 -47
  735. package/dist/debug/createDebugSink.js.map +1 -1
  736. package/dist/debug/defaultTheme.js +16 -4
  737. package/dist/debug/defaultTheme.js.map +1 -1
  738. package/dist/debug/flag.js +3 -2
  739. package/dist/debug/frameStats.js +11 -9
  740. package/dist/debug/frameStats.js.map +1 -1
  741. package/dist/debug/parseDebugFlags.js +25 -17
  742. package/dist/debug/parseDebugFlags.js.map +1 -1
  743. package/dist/debug/useDebugSink.js +52 -33
  744. package/dist/debug/useDebugSink.js.map +1 -1
  745. package/dist/depSchema-Cgfu_G9s.d.ts +3581 -0
  746. package/dist/features/chrome-caps/buildChromeCtx.js +12 -10
  747. package/dist/features/chrome-caps/buildChromeCtx.js.map +1 -1
  748. package/dist/features/chrome-caps/conditions.js +103 -25
  749. package/dist/features/chrome-caps/conditions.js.map +1 -1
  750. package/dist/features/chrome-caps/defaults.js +18 -10
  751. package/dist/features/chrome-caps/defaults.js.map +1 -1
  752. package/dist/features/chrome-caps/index.js +8 -7
  753. package/dist/features/chrome-caps/resolve.js +28 -16
  754. package/dist/features/chrome-caps/resolve.js.map +1 -1
  755. package/dist/features/chrome-caps/useChromeCaps.js +52 -44
  756. package/dist/features/chrome-caps/useChromeCaps.js.map +1 -1
  757. package/dist/features/chrome-caps/useHoverTracking.js +52 -26
  758. package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
  759. package/dist/features/ingestion/contentHandlers.js +80 -34
  760. package/dist/features/ingestion/contentHandlers.js.map +1 -1
  761. package/dist/features/ingestion/imageHandler.js +49 -29
  762. package/dist/features/ingestion/imageHandler.js.map +1 -1
  763. package/dist/features/ingestion/openFilePicker.js +27 -9
  764. package/dist/features/ingestion/openFilePicker.js.map +1 -1
  765. package/dist/features/ingestion/placement.js +20 -11
  766. package/dist/features/ingestion/placement.js.map +1 -1
  767. package/dist/features/ingestion/registerKitHandlers.js +35 -18
  768. package/dist/features/ingestion/registerKitHandlers.js.map +1 -1
  769. package/dist/features/ingestion/svgHandler.js +60 -34
  770. package/dist/features/ingestion/svgHandler.js.map +1 -1
  771. package/dist/features/ingestion/textHandler.js +37 -16
  772. package/dist/features/ingestion/textHandler.js.map +1 -1
  773. package/dist/features/ingestion/useCanvasIngestion.js +57 -39
  774. package/dist/features/ingestion/useCanvasIngestion.js.map +1 -1
  775. package/dist/features/ingestion/weaselJsonHandler.js +38 -28
  776. package/dist/features/ingestion/weaselJsonHandler.js.map +1 -1
  777. package/dist/features/longPress/longPressFeedback.js +110 -81
  778. package/dist/features/longPress/longPressFeedback.js.map +1 -1
  779. package/dist/features/measure/actionIds.js +22 -0
  780. package/dist/features/measure/actionIds.js.map +1 -0
  781. package/dist/features/measure/measureCommands.js +178 -0
  782. package/dist/features/measure/measureCommands.js.map +1 -0
  783. package/dist/features/measure/measureContribution.js +57 -0
  784. package/dist/features/measure/measureContribution.js.map +1 -0
  785. package/dist/features/measure/measureEdits.js +82 -0
  786. package/dist/features/measure/measureEdits.js.map +1 -0
  787. package/dist/features/measure/measureGestures.js +185 -0
  788. package/dist/features/measure/measureGestures.js.map +1 -0
  789. package/dist/features/measure/measureHit.js +80 -0
  790. package/dist/features/measure/measureHit.js.map +1 -0
  791. package/dist/features/measure/measureLayer.js +86 -0
  792. package/dist/features/measure/measureLayer.js.map +1 -0
  793. package/dist/features/measure/measurement.js +79 -0
  794. package/dist/features/measure/measurement.js.map +1 -0
  795. package/dist/features/measure/measurements.js +41 -0
  796. package/dist/features/measure/measurements.js.map +1 -0
  797. package/dist/features/modes/modeLayers.js +81 -55
  798. package/dist/features/modes/modeLayers.js.map +1 -1
  799. package/dist/features/modes/modeTriggers.js +66 -0
  800. package/dist/features/modes/modeTriggers.js.map +1 -0
  801. package/dist/features/pathEffects/index.js +35 -0
  802. package/dist/features/pathEffects/index.js.map +1 -0
  803. package/dist/features/pathEffects/readSource.js +46 -0
  804. package/dist/features/pathEffects/readSource.js.map +1 -0
  805. package/dist/features/paths/anchorData.js +65 -0
  806. package/dist/features/paths/anchorData.js.map +1 -0
  807. package/dist/features/paths/anchorMarkers.js +137 -0
  808. package/dist/features/paths/anchorMarkers.js.map +1 -0
  809. package/dist/features/paths/editablePath.js +155 -36
  810. package/dist/features/paths/editablePath.js.map +1 -1
  811. package/dist/features/paths/index.js +12 -9
  812. package/dist/features/paths/originProjection.js +16 -9
  813. package/dist/features/paths/originProjection.js.map +1 -1
  814. package/dist/features/paths/pathEditExtension.js +26 -0
  815. package/dist/features/paths/pathEditExtension.js.map +1 -0
  816. package/dist/features/paths/pathEditState.js +107 -26
  817. package/dist/features/paths/pathEditState.js.map +1 -1
  818. package/dist/features/paths/pathEditingOverlayLayer.js +58 -110
  819. package/dist/features/paths/pathEditingOverlayLayer.js.map +1 -1
  820. package/dist/features/paths/pathLayer.js +79 -29
  821. package/dist/features/paths/pathLayer.js.map +1 -1
  822. package/dist/features/paths/pathRepresentation.js +27 -0
  823. package/dist/features/paths/pathRepresentation.js.map +1 -0
  824. package/dist/features/paths/pathSnap/glyphs.js +39 -0
  825. package/dist/features/paths/pathSnap/glyphs.js.map +1 -0
  826. package/dist/features/paths/pathSnap/pathSnapSource.js +82 -0
  827. package/dist/features/paths/pathSnap/pathSnapSource.js.map +1 -0
  828. package/dist/features/paths/pathSnap/sceneIndex.js +78 -0
  829. package/dist/features/paths/pathSnap/sceneIndex.js.map +1 -0
  830. package/dist/features/paths/pathSnap/snapGeometry.js +47 -0
  831. package/dist/features/paths/pathSnap/snapGeometry.js.map +1 -0
  832. package/dist/features/paths/penPreviewLayer.js +135 -102
  833. package/dist/features/paths/penPreviewLayer.js.map +1 -1
  834. package/dist/features/paths/shapeGenerator.js +141 -0
  835. package/dist/features/paths/shapeGenerator.js.map +1 -0
  836. package/dist/features/paths/strokeOutline.js +15 -0
  837. package/dist/features/paths/strokeOutline.js.map +1 -0
  838. package/dist/features/paths/useAnchorFields.js +35 -0
  839. package/dist/features/paths/useAnchorFields.js.map +1 -0
  840. package/dist/features/paths/usePathEdit.js +58 -28
  841. package/dist/features/paths/usePathEdit.js.map +1 -1
  842. package/dist/features/poseRun/usePoseRun.js +111 -44
  843. package/dist/features/poseRun/usePoseRun.js.map +1 -1
  844. package/dist/features/selection/handleCommands.js +116 -0
  845. package/dist/features/selection/handleCommands.js.map +1 -0
  846. package/dist/features/selection/overlay.js +288 -328
  847. package/dist/features/selection/overlay.js.map +1 -1
  848. package/dist/features/selection/selectionPose.js +109 -0
  849. package/dist/features/selection/selectionPose.js.map +1 -0
  850. package/dist/features/snap/angle2d.js +158 -0
  851. package/dist/features/snap/angle2d.js.map +1 -0
  852. package/dist/features/snap/debugCandidates.js +27 -0
  853. package/dist/features/snap/debugCandidates.js.map +1 -0
  854. package/dist/features/snap/gather.js +71 -0
  855. package/dist/features/snap/gather.js.map +1 -0
  856. package/dist/features/snap/inputSubspace.js +46 -0
  857. package/dist/features/snap/inputSubspace.js.map +1 -0
  858. package/dist/features/snap/marks.js +29 -0
  859. package/dist/features/snap/marks.js.map +1 -0
  860. package/dist/features/snap/outcomeStore.js +25 -0
  861. package/dist/features/snap/outcomeStore.js.map +1 -0
  862. package/dist/features/snap/pointSnap.js +48 -0
  863. package/dist/features/snap/pointSnap.js.map +1 -0
  864. package/dist/features/snap/probes2d.js +91 -0
  865. package/dist/features/snap/probes2d.js.map +1 -0
  866. package/dist/features/snap/readoutDraw.js +93 -0
  867. package/dist/features/snap/readoutDraw.js.map +1 -0
  868. package/dist/features/snap/readoutLayer.js +49 -0
  869. package/dist/features/snap/readoutLayer.js.map +1 -0
  870. package/dist/features/snap/registry.js +27 -0
  871. package/dist/features/snap/registry.js.map +1 -0
  872. package/dist/features/snap/resizeBox.js +137 -0
  873. package/dist/features/snap/resizeBox.js.map +1 -0
  874. package/dist/features/snap/roles.js +31 -0
  875. package/dist/features/snap/roles.js.map +1 -0
  876. package/dist/features/snap/rotationSource.js +30 -0
  877. package/dist/features/snap/rotationSource.js.map +1 -0
  878. package/dist/features/snap/sceneReads.js +45 -0
  879. package/dist/features/snap/sceneReads.js.map +1 -0
  880. package/dist/features/snap/sceneSession2d.js +79 -0
  881. package/dist/features/snap/sceneSession2d.js.map +1 -0
  882. package/dist/features/snap/screen.js +23 -0
  883. package/dist/features/snap/screen.js.map +1 -0
  884. package/dist/features/snap/session2d.js +129 -0
  885. package/dist/features/snap/session2d.js.map +1 -0
  886. package/dist/features/snap/spanSnap.js +77 -0
  887. package/dist/features/snap/spanSnap.js.map +1 -0
  888. package/dist/features/snap/stepAngles.js +15 -0
  889. package/dist/features/snap/stepAngles.js.map +1 -0
  890. package/dist/features/text/editingDrawOne.js +32 -0
  891. package/dist/features/text/editingDrawOne.js.map +1 -0
  892. package/dist/features/text/index.js +7 -6
  893. package/dist/features/text/textHitAt.js +51 -0
  894. package/dist/features/text/textHitAt.js.map +1 -0
  895. package/dist/features/text/textLayer.js +21 -27
  896. package/dist/features/text/textLayer.js.map +1 -1
  897. package/dist/features/text/useSceneTextEdit.js +203 -123
  898. package/dist/features/text/useSceneTextEdit.js.map +1 -1
  899. package/dist/features/viewports/viewResolver.js +51 -38
  900. package/dist/features/viewports/viewResolver.js.map +1 -1
  901. package/dist/features/viewports/viewportLayer.js +60 -29
  902. package/dist/features/viewports/viewportLayer.js.map +1 -1
  903. package/dist/iconRegistry/IconRegistryProvider.js +73 -0
  904. package/dist/iconRegistry/IconRegistryProvider.js.map +1 -0
  905. package/dist/iconRegistry/useIconGlyph.js +14 -0
  906. package/dist/iconRegistry/useIconGlyph.js.map +1 -0
  907. package/dist/iconRegistry/useIconVariant.js +29 -0
  908. package/dist/iconRegistry/useIconVariant.js.map +1 -0
  909. package/dist/icons.d.ts +6 -0
  910. package/dist/icons.js +3 -0
  911. package/dist/icons.table.js +13 -0
  912. package/dist/icons.table.js.map +1 -0
  913. package/dist/icons.table.json +556 -0
  914. package/dist/icons2.table.js +9 -0
  915. package/dist/icons2.table.js.map +1 -0
  916. package/dist/index.d.ts +4552 -4992
  917. package/dist/index.js +340 -276
  918. package/dist/input/keyState.js +118 -54
  919. package/dist/input/keyState.js.map +1 -1
  920. package/dist/input/useKeyModifiers.js +13 -7
  921. package/dist/input/useKeyModifiers.js.map +1 -1
  922. package/dist/input/useKeyState.js +23 -16
  923. package/dist/input/useKeyState.js.map +1 -1
  924. package/dist/interactions/actions/align/action.js +76 -45
  925. package/dist/interactions/actions/align/action.js.map +1 -1
  926. package/dist/interactions/actions/align/align.js +86 -48
  927. package/dist/interactions/actions/align/align.js.map +1 -1
  928. package/dist/interactions/actions/booleans/action.js +67 -33
  929. package/dist/interactions/actions/booleans/action.js.map +1 -1
  930. package/dist/interactions/actions/booleans/booleans.js +77 -70
  931. package/dist/interactions/actions/booleans/booleans.js.map +1 -1
  932. package/dist/interactions/actions/booleans/commit.js +49 -0
  933. package/dist/interactions/actions/booleans/commit.js.map +1 -0
  934. package/dist/interactions/actions/booleans/custom.js +48 -0
  935. package/dist/interactions/actions/booleans/custom.js.map +1 -0
  936. package/dist/interactions/actions/booleans/operands.js +43 -32
  937. package/dist/interactions/actions/booleans/operands.js.map +1 -1
  938. package/dist/interactions/actions/booleans/pieces.js +29 -23
  939. package/dist/interactions/actions/booleans/pieces.js.map +1 -1
  940. package/dist/interactions/actions/booleans/placement.js +30 -17
  941. package/dist/interactions/actions/booleans/placement.js.map +1 -1
  942. package/dist/interactions/actions/booleans/useBooleans.js +30 -17
  943. package/dist/interactions/actions/booleans/useBooleans.js.map +1 -1
  944. package/dist/interactions/actions/booleans/useBooleansAdapter.js +8 -5
  945. package/dist/interactions/actions/booleans/useBooleansAdapter.js.map +1 -1
  946. package/dist/interactions/actions/clipboard/action.js +81 -40
  947. package/dist/interactions/actions/clipboard/action.js.map +1 -1
  948. package/dist/interactions/actions/clipboard/clipboardOps.js +100 -72
  949. package/dist/interactions/actions/clipboard/clipboardOps.js.map +1 -1
  950. package/dist/interactions/actions/clipboard/materializePaste.js +38 -19
  951. package/dist/interactions/actions/clipboard/materializePaste.js.map +1 -1
  952. package/dist/interactions/actions/clipboard/wireFormat.js +66 -28
  953. package/dist/interactions/actions/clipboard/wireFormat.js.map +1 -1
  954. package/dist/interactions/actions/clone/action.js +102 -65
  955. package/dist/interactions/actions/clone/action.js.map +1 -1
  956. package/dist/interactions/actions/clone/behaviors.js +55 -38
  957. package/dist/interactions/actions/clone/behaviors.js.map +1 -1
  958. package/dist/interactions/actions/defaultCommitAdapter.js +32 -10
  959. package/dist/interactions/actions/defaultCommitAdapter.js.map +1 -1
  960. package/dist/interactions/actions/defaults/anchorEditing.js +253 -115
  961. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  962. package/dist/interactions/actions/defaults/anchorFields.js +54 -0
  963. package/dist/interactions/actions/defaults/anchorFields.js.map +1 -0
  964. package/dist/interactions/actions/defaults/anchorHandles.js +46 -0
  965. package/dist/interactions/actions/defaults/anchorHandles.js.map +1 -0
  966. package/dist/interactions/actions/defaults/anchorJoin.js +110 -0
  967. package/dist/interactions/actions/defaults/anchorJoin.js.map +1 -0
  968. package/dist/interactions/actions/defaults/areaSelect.js +56 -40
  969. package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
  970. package/dist/interactions/actions/defaults/bendSegment.js +82 -0
  971. package/dist/interactions/actions/defaults/bendSegment.js.map +1 -0
  972. package/dist/interactions/actions/defaults/cancelGesture.js +12 -5
  973. package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
  974. package/dist/interactions/actions/defaults/clearSelection.js +22 -7
  975. package/dist/interactions/actions/defaults/clearSelection.js.map +1 -1
  976. package/dist/interactions/actions/defaults/contextMenu.js +149 -0
  977. package/dist/interactions/actions/defaults/contextMenu.js.map +1 -0
  978. package/dist/interactions/actions/defaults/copySubtree.js +43 -29
  979. package/dist/interactions/actions/defaults/copySubtree.js.map +1 -1
  980. package/dist/interactions/actions/defaults/createPaintAction.js +79 -54
  981. package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
  982. package/dist/interactions/actions/defaults/delete.js +61 -33
  983. package/dist/interactions/actions/defaults/delete.js.map +1 -1
  984. package/dist/interactions/actions/defaults/duplicate.js +65 -22
  985. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  986. package/dist/interactions/actions/defaults/enterPathEdit.js +29 -13
  987. package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
  988. package/dist/interactions/actions/defaults/enterTextEdit.js +20 -8
  989. package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
  990. package/dist/interactions/actions/defaults/escape.js +16 -7
  991. package/dist/interactions/actions/defaults/escape.js.map +1 -1
  992. package/dist/interactions/actions/defaults/exitPathEdit.js +6 -6
  993. package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
  994. package/dist/interactions/actions/defaults/group.js +122 -73
  995. package/dist/interactions/actions/defaults/group.js.map +1 -1
  996. package/dist/interactions/actions/defaults/ingest.js +52 -35
  997. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  998. package/dist/interactions/actions/defaults/insertPathAnchor.js +39 -33
  999. package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
  1000. package/dist/interactions/actions/defaults/nudge.js +80 -48
  1001. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  1002. package/dist/interactions/actions/defaults/nudgeSteps.js +17 -12
  1003. package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -1
  1004. package/dist/interactions/actions/defaults/pathEditMarks.js +60 -0
  1005. package/dist/interactions/actions/defaults/pathEditMarks.js.map +1 -0
  1006. package/dist/interactions/actions/defaults/pathEditTools.js +57 -0
  1007. package/dist/interactions/actions/defaults/pathEditTools.js.map +1 -0
  1008. package/dist/interactions/actions/defaults/pinchZoom.js +54 -38
  1009. package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
  1010. package/dist/interactions/actions/defaults/reorder.js +71 -40
  1011. package/dist/interactions/actions/defaults/reorder.js.map +1 -1
  1012. package/dist/interactions/actions/defaults/requiresSelection.js +13 -6
  1013. package/dist/interactions/actions/defaults/requiresSelection.js.map +1 -1
  1014. package/dist/interactions/actions/defaults/segmentUnder.js +30 -0
  1015. package/dist/interactions/actions/defaults/segmentUnder.js.map +1 -0
  1016. package/dist/interactions/actions/defaults/selectAll.js +21 -7
  1017. package/dist/interactions/actions/defaults/selectAll.js.map +1 -1
  1018. package/dist/interactions/actions/defaults/setFill.js +37 -21
  1019. package/dist/interactions/actions/defaults/setFill.js.map +1 -1
  1020. package/dist/interactions/actions/defaults/setFillOpacity.js +19 -10
  1021. package/dist/interactions/actions/defaults/setFillOpacity.js.map +1 -1
  1022. package/dist/interactions/actions/defaults/setStroke.js +46 -25
  1023. package/dist/interactions/actions/defaults/setStroke.js.map +1 -1
  1024. package/dist/interactions/actions/defaults/setStrokeOpacity.js +19 -11
  1025. package/dist/interactions/actions/defaults/setStrokeOpacity.js.map +1 -1
  1026. package/dist/interactions/actions/defaults/slice.js +42 -17
  1027. package/dist/interactions/actions/defaults/slice.js.map +1 -1
  1028. package/dist/interactions/actions/defaults/sliceOps.js +63 -42
  1029. package/dist/interactions/actions/defaults/sliceOps.js.map +1 -1
  1030. package/dist/interactions/actions/defaults/toolActivate.js +34 -16
  1031. package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
  1032. package/dist/interactions/actions/defaults/toolResetToDefault.js +29 -10
  1033. package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
  1034. package/dist/interactions/actions/defaults/undoRedo.js +26 -20
  1035. package/dist/interactions/actions/defaults/undoRedo.js.map +1 -1
  1036. package/dist/interactions/actions/defaults/viewportDragPan.js +91 -58
  1037. package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
  1038. package/dist/interactions/actions/defaults/viewportWheelPan.js +42 -23
  1039. package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
  1040. package/dist/interactions/actions/defaults/viewportZoom.js +142 -91
  1041. package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
  1042. package/dist/interactions/actions/distribute/action.js +62 -39
  1043. package/dist/interactions/actions/distribute/action.js.map +1 -1
  1044. package/dist/interactions/actions/distribute/distribute.js +53 -34
  1045. package/dist/interactions/actions/distribute/distribute.js.map +1 -1
  1046. package/dist/interactions/actions/distribute/plan.js +40 -22
  1047. package/dist/interactions/actions/distribute/plan.js.map +1 -1
  1048. package/dist/interactions/actions/drawnBoxes.js +31 -0
  1049. package/dist/interactions/actions/drawnBoxes.js.map +1 -0
  1050. package/dist/interactions/actions/edit-anchors/action.js +254 -75
  1051. package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
  1052. package/dist/interactions/actions/edit-anchors/extensionDrags.js +50 -0
  1053. package/dist/interactions/actions/edit-anchors/extensionDrags.js.map +1 -0
  1054. package/dist/interactions/actions/edit-anchors/geometry.js +74 -47
  1055. package/dist/interactions/actions/edit-anchors/geometry.js.map +1 -1
  1056. package/dist/interactions/actions/edit-anchors/handleDrag.js +101 -0
  1057. package/dist/interactions/actions/edit-anchors/handleDrag.js.map +1 -0
  1058. package/dist/interactions/actions/edit-anchors/handles.js +41 -27
  1059. package/dist/interactions/actions/edit-anchors/handles.js.map +1 -1
  1060. package/dist/interactions/actions/edit-anchors/params.js +12 -0
  1061. package/dist/interactions/actions/edit-anchors/params.js.map +1 -0
  1062. package/dist/interactions/actions/edit-anchors/preview.js +68 -0
  1063. package/dist/interactions/actions/edit-anchors/preview.js.map +1 -0
  1064. package/dist/interactions/actions/edit-anchors/symmetry.js +16 -0
  1065. package/dist/interactions/actions/edit-anchors/symmetry.js.map +1 -0
  1066. package/dist/interactions/actions/flip/action.js +119 -61
  1067. package/dist/interactions/actions/flip/action.js.map +1 -1
  1068. package/dist/interactions/actions/flip/helpers.js +69 -36
  1069. package/dist/interactions/actions/flip/helpers.js.map +1 -1
  1070. package/dist/interactions/actions/geometryProjection.js +17 -12
  1071. package/dist/interactions/actions/geometryProjection.js.map +1 -1
  1072. package/dist/interactions/actions/gestureFrames.js +20 -11
  1073. package/dist/interactions/actions/gestureFrames.js.map +1 -1
  1074. package/dist/interactions/actions/gestureLifecycle.js +93 -48
  1075. package/dist/interactions/actions/gestureLifecycle.js.map +1 -1
  1076. package/dist/interactions/actions/hitSelection.js +6 -4
  1077. package/dist/interactions/actions/hitSelection.js.map +1 -1
  1078. package/dist/interactions/actions/insert/action.js +75 -39
  1079. package/dist/interactions/actions/insert/action.js.map +1 -1
  1080. package/dist/interactions/actions/insert/commit.js +44 -22
  1081. package/dist/interactions/actions/insert/commit.js.map +1 -1
  1082. package/dist/interactions/actions/insert/extras.js +60 -38
  1083. package/dist/interactions/actions/insert/extras.js.map +1 -1
  1084. package/dist/interactions/actions/insert/frame.js +59 -33
  1085. package/dist/interactions/actions/insert/frame.js.map +1 -1
  1086. package/dist/interactions/actions/insert/geometry.js +29 -25
  1087. package/dist/interactions/actions/insert/geometry.js.map +1 -1
  1088. package/dist/interactions/actions/insert/placeAction.js +108 -0
  1089. package/dist/interactions/actions/insert/placeAction.js.map +1 -0
  1090. package/dist/interactions/actions/insert/repositionAction.js +46 -0
  1091. package/dist/interactions/actions/insert/repositionAction.js.map +1 -0
  1092. package/dist/interactions/actions/insert/rotateAction.js +19 -8
  1093. package/dist/interactions/actions/insert/rotateAction.js.map +1 -1
  1094. package/dist/interactions/actions/insert/session.js +57 -41
  1095. package/dist/interactions/actions/insert/session.js.map +1 -1
  1096. package/dist/interactions/actions/insert/shape.js +83 -25
  1097. package/dist/interactions/actions/insert/shape.js.map +1 -1
  1098. package/dist/interactions/actions/lasso-select/action.js +160 -100
  1099. package/dist/interactions/actions/lasso-select/action.js.map +1 -1
  1100. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +44 -25
  1101. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js.map +1 -1
  1102. package/dist/interactions/actions/move/action.js +87 -48
  1103. package/dist/interactions/actions/move/action.js.map +1 -1
  1104. package/dist/interactions/actions/move/behaviors/layoutDrop.js +56 -36
  1105. package/dist/interactions/actions/move/behaviors/layoutDrop.js.map +1 -1
  1106. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js +20 -10
  1107. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js.map +1 -1
  1108. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +40 -24
  1109. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js.map +1 -1
  1110. package/dist/interactions/actions/move/behaviors/snapToContainer.js +107 -63
  1111. package/dist/interactions/actions/move/behaviors/snapToContainer.js.map +1 -1
  1112. package/dist/interactions/actions/move/capture.js +106 -72
  1113. package/dist/interactions/actions/move/capture.js.map +1 -1
  1114. package/dist/interactions/actions/move/commit/index.js +43 -34
  1115. package/dist/interactions/actions/move/commit/index.js.map +1 -1
  1116. package/dist/interactions/actions/move/commit/layoutDrop.js +43 -32
  1117. package/dist/interactions/actions/move/commit/layoutDrop.js.map +1 -1
  1118. package/dist/interactions/actions/move/commit/layoutRelease.js +97 -77
  1119. package/dist/interactions/actions/move/commit/layoutRelease.js.map +1 -1
  1120. package/dist/interactions/actions/move/commit/rebase.js +16 -13
  1121. package/dist/interactions/actions/move/commit/rebase.js.map +1 -1
  1122. package/dist/interactions/actions/move/commit/reparent.js +83 -57
  1123. package/dist/interactions/actions/move/commit/reparent.js.map +1 -1
  1124. package/dist/interactions/actions/move/delta.js +58 -36
  1125. package/dist/interactions/actions/move/delta.js.map +1 -1
  1126. package/dist/interactions/actions/move/frame.js +73 -48
  1127. package/dist/interactions/actions/move/frame.js.map +1 -1
  1128. package/dist/interactions/actions/move/gestureAdapter.js +30 -20
  1129. package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
  1130. package/dist/interactions/actions/move/landedDescendants.js +40 -25
  1131. package/dist/interactions/actions/move/landedDescendants.js.map +1 -1
  1132. package/dist/interactions/actions/move/layout/container.js +92 -72
  1133. package/dist/interactions/actions/move/layout/container.js.map +1 -1
  1134. package/dist/interactions/actions/move/layout/dragged.js +61 -39
  1135. package/dist/interactions/actions/move/layout/dragged.js.map +1 -1
  1136. package/dist/interactions/actions/move/layout/dropPass.js +136 -94
  1137. package/dist/interactions/actions/move/layout/dropPass.js.map +1 -1
  1138. package/dist/interactions/actions/move/layout/exits.js +58 -30
  1139. package/dist/interactions/actions/move/layout/exits.js.map +1 -1
  1140. package/dist/interactions/actions/move/layout/glide.js +55 -34
  1141. package/dist/interactions/actions/move/layout/glide.js.map +1 -1
  1142. package/dist/interactions/actions/move/session.js +85 -56
  1143. package/dist/interactions/actions/move/session.js.map +1 -1
  1144. package/dist/interactions/actions/move/translate.js +58 -43
  1145. package/dist/interactions/actions/move/translate.js.map +1 -1
  1146. package/dist/interactions/actions/outlines/createOutlines.js +28 -20
  1147. package/dist/interactions/actions/outlines/createOutlines.js.map +1 -1
  1148. package/dist/interactions/actions/outlines/createOutlinesAction.js +43 -31
  1149. package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -1
  1150. package/dist/interactions/actions/outlines/outlineStroke.js +68 -45
  1151. package/dist/interactions/actions/outlines/outlineStroke.js.map +1 -1
  1152. package/dist/interactions/actions/outlines/outlineStrokeAction.js +24 -19
  1153. package/dist/interactions/actions/outlines/outlineStrokeAction.js.map +1 -1
  1154. package/dist/interactions/actions/outlines/replaceWithPaths.js +57 -42
  1155. package/dist/interactions/actions/outlines/replaceWithPaths.js.map +1 -1
  1156. package/dist/interactions/actions/outlines/strokeRegion.js +37 -22
  1157. package/dist/interactions/actions/outlines/strokeRegion.js.map +1 -1
  1158. package/dist/interactions/actions/outlines/useCreateOutlinesAdapter.js +8 -5
  1159. package/dist/interactions/actions/outlines/useCreateOutlinesAdapter.js.map +1 -1
  1160. package/dist/interactions/actions/pathCommands/cutJoin.js +149 -0
  1161. package/dist/interactions/actions/pathCommands/cutJoin.js.map +1 -0
  1162. package/dist/interactions/actions/pathCommands/livePathEdit.js +98 -0
  1163. package/dist/interactions/actions/pathCommands/livePathEdit.js.map +1 -0
  1164. package/dist/interactions/actions/pathCommands/pathNodes.js +108 -0
  1165. package/dist/interactions/actions/pathCommands/pathNodes.js.map +1 -0
  1166. package/dist/interactions/actions/pathCommands/simplifyOffset.js +66 -0
  1167. package/dist/interactions/actions/pathCommands/simplifyOffset.js.map +1 -0
  1168. package/dist/interactions/actions/pathGestureTags.js +29 -0
  1169. package/dist/interactions/actions/pathGestureTags.js.map +1 -0
  1170. package/dist/interactions/actions/planeInput.js +198 -123
  1171. package/dist/interactions/actions/planeInput.js.map +1 -1
  1172. package/dist/interactions/actions/pointerState.js +12 -7
  1173. package/dist/interactions/actions/pointerState.js.map +1 -1
  1174. package/dist/interactions/actions/poseDescriptorDep.js +24 -14
  1175. package/dist/interactions/actions/poseDescriptorDep.js.map +1 -1
  1176. package/dist/interactions/actions/poseFrame.js +45 -28
  1177. package/dist/interactions/actions/poseFrame.js.map +1 -1
  1178. package/dist/interactions/actions/resize/action.js +70 -30
  1179. package/dist/interactions/actions/resize/action.js.map +1 -1
  1180. package/dist/interactions/actions/resize/aspect.js +44 -0
  1181. package/dist/interactions/actions/resize/aspect.js.map +1 -0
  1182. package/dist/interactions/actions/resize/behaviors/clampMinSize.js +38 -13
  1183. package/dist/interactions/actions/resize/behaviors/clampMinSize.js.map +1 -1
  1184. package/dist/interactions/actions/resize/boxFrame.js +15 -11
  1185. package/dist/interactions/actions/resize/boxFrame.js.map +1 -1
  1186. package/dist/interactions/actions/resize/capture.js +105 -62
  1187. package/dist/interactions/actions/resize/capture.js.map +1 -1
  1188. package/dist/interactions/actions/resize/commit.js +75 -56
  1189. package/dist/interactions/actions/resize/commit.js.map +1 -1
  1190. package/dist/interactions/actions/resize/cornerHandles.js +154 -17
  1191. package/dist/interactions/actions/resize/cornerHandles.js.map +1 -1
  1192. package/dist/interactions/actions/resize/frame.js +138 -57
  1193. package/dist/interactions/actions/resize/frame.js.map +1 -1
  1194. package/dist/interactions/actions/resize/minimum.js +35 -0
  1195. package/dist/interactions/actions/resize/minimum.js.map +1 -0
  1196. package/dist/interactions/actions/resize/replay.js +57 -0
  1197. package/dist/interactions/actions/resize/replay.js.map +1 -0
  1198. package/dist/interactions/actions/resize/ruleBounds.js +8 -5
  1199. package/dist/interactions/actions/resize/ruleBounds.js.map +1 -1
  1200. package/dist/interactions/actions/resize/session.js +100 -41
  1201. package/dist/interactions/actions/resize/session.js.map +1 -1
  1202. package/dist/interactions/actions/resolveOverlays.js +48 -32
  1203. package/dist/interactions/actions/resolveOverlays.js.map +1 -1
  1204. package/dist/interactions/actions/resolvePreviews.js +63 -46
  1205. package/dist/interactions/actions/resolvePreviews.js.map +1 -1
  1206. package/dist/interactions/actions/rotate/action.js +71 -30
  1207. package/dist/interactions/actions/rotate/action.js.map +1 -1
  1208. package/dist/interactions/actions/rotate/commit.js +39 -31
  1209. package/dist/interactions/actions/rotate/commit.js.map +1 -1
  1210. package/dist/interactions/actions/rotate/frame.js +75 -47
  1211. package/dist/interactions/actions/rotate/frame.js.map +1 -1
  1212. package/dist/interactions/actions/rotate/geometry.js +36 -24
  1213. package/dist/interactions/actions/rotate/geometry.js.map +1 -1
  1214. package/dist/interactions/actions/rotate/handle.js +28 -15
  1215. package/dist/interactions/actions/rotate/handle.js.map +1 -1
  1216. package/dist/interactions/actions/rotate/replay.js +26 -0
  1217. package/dist/interactions/actions/rotate/replay.js.map +1 -0
  1218. package/dist/interactions/actions/rotate/session.js +122 -73
  1219. package/dist/interactions/actions/rotate/session.js.map +1 -1
  1220. package/dist/interactions/actions/selectionSubtree.js +124 -53
  1221. package/dist/interactions/actions/selectionSubtree.js.map +1 -1
  1222. package/dist/interactions/actions/spatialReference.js +33 -26
  1223. package/dist/interactions/actions/spatialReference.js.map +1 -1
  1224. package/dist/interactions/actions/testUtils.js +53 -0
  1225. package/dist/interactions/actions/testUtils.js.map +1 -0
  1226. package/dist/interactions/actions/transform-again/action.js +78 -0
  1227. package/dist/interactions/actions/transform-again/action.js.map +1 -0
  1228. package/dist/interactions/actions/transform-again/memory.js +46 -0
  1229. package/dist/interactions/actions/transform-again/memory.js.map +1 -0
  1230. package/dist/interactions/actions/useActionSet.js +83 -0
  1231. package/dist/interactions/actions/useActionSet.js.map +1 -0
  1232. package/dist/interactions/actions/useStandardActions.js +23 -147
  1233. package/dist/interactions/actions/useStandardActions.js.map +1 -1
  1234. package/dist/interactions/gestures/dragGesture/dragGesture.js +109 -68
  1235. package/dist/interactions/gestures/dragGesture/dragGesture.js.map +1 -1
  1236. package/dist/interactions/gestures/dragGesture/dragPointOf.js +17 -10
  1237. package/dist/interactions/gestures/dragGesture/dragPointOf.js.map +1 -1
  1238. package/dist/interactions/gestures/dragRadial/dragRadial.js +129 -93
  1239. package/dist/interactions/gestures/dragRadial/dragRadial.js.map +1 -1
  1240. package/dist/interactions/gestures/dragRect/dragRect.js +155 -111
  1241. package/dist/interactions/gestures/dragRect/dragRect.js.map +1 -1
  1242. package/dist/interactions/gestures/handleDrag/handleDrag.js +52 -30
  1243. package/dist/interactions/gestures/handleDrag/handleDrag.js.map +1 -1
  1244. package/dist/interactions/gestures/pointerDrag/pointerDrag.js +168 -97
  1245. package/dist/interactions/gestures/pointerDrag/pointerDrag.js.map +1 -1
  1246. package/dist/interactions/gestures/shared/originProjection.js +32 -25
  1247. package/dist/interactions/gestures/shared/originProjection.js.map +1 -1
  1248. package/dist/interactions/gestures/shared/screenTolerance.js +26 -17
  1249. package/dist/interactions/gestures/shared/screenTolerance.js.map +1 -1
  1250. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +39 -21
  1251. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js.map +1 -1
  1252. package/dist/kitSettingsSchema.js +80 -0
  1253. package/dist/kitSettingsSchema.js.map +1 -0
  1254. package/dist/{math-CYUjoyyU.d.ts → math-CrJULaZI.d.ts} +5 -6
  1255. package/dist/math.d.ts +4 -5
  1256. package/dist/math.js +7 -6
  1257. package/dist/mesh.js +3 -2
  1258. package/dist/move.d.ts +7 -6
  1259. package/dist/move.js +4 -3
  1260. package/dist/{originProjection-PPT88jZv.d.ts → options-p9GZMXbY.d.ts} +4 -27
  1261. package/dist/originProjection-gY0jb4Wb.d.ts +24 -0
  1262. package/dist/patterns-builtin.js +3 -2
  1263. package/dist/{poseDescriptor-Bqk-11Rl.d.ts → poseDescriptor-DN2yfnq_.d.ts} +7 -7
  1264. package/dist/renderer.d.ts +1 -1
  1265. package/dist/renderer.js +3 -2
  1266. package/dist/resize.d.ts +10 -28
  1267. package/dist/resize.js +6 -7
  1268. package/dist/routing.js +3 -2
  1269. package/dist/style.css +88 -1
  1270. package/dist/test-hook/createTestHook.js +23 -20
  1271. package/dist/test-hook/createTestHook.js.map +1 -1
  1272. package/dist/test-hook/install.js +32 -13
  1273. package/dist/test-hook/install.js.map +1 -1
  1274. package/dist/test-hook/useTestHook.js +22 -16
  1275. package/dist/test-hook/useTestHook.js.map +1 -1
  1276. package/dist/test-seams.d.ts +164 -1
  1277. package/dist/test-seams.js +8 -3
  1278. package/dist/tools/builtin/bone/boneActions.js +96 -70
  1279. package/dist/tools/builtin/bone/boneActions.js.map +1 -1
  1280. package/dist/tools/builtin/bone/boneOverlay.js +49 -36
  1281. package/dist/tools/builtin/bone/boneOverlay.js.map +1 -1
  1282. package/dist/tools/builtin/bone/placedRig.js +18 -14
  1283. package/dist/tools/builtin/bone/placedRig.js.map +1 -1
  1284. package/dist/tools/builtin/bone/rigEditState.js +22 -13
  1285. package/dist/tools/builtin/bone/rigEditState.js.map +1 -1
  1286. package/dist/tools/builtin/bone/useBoneTool.js +68 -41
  1287. package/dist/tools/builtin/bone/useBoneTool.js.map +1 -1
  1288. package/dist/tools/builtin/ellipse/useEllipseTool.js +22 -16
  1289. package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
  1290. package/dist/tools/builtin/eyedropper/useEyedropperTool.js +44 -28
  1291. package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
  1292. package/dist/tools/builtin/hand/dragPanContribution.js +12 -7
  1293. package/dist/tools/builtin/hand/dragPanContribution.js.map +1 -1
  1294. package/dist/tools/builtin/hand/useHandTool.js +21 -13
  1295. package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
  1296. package/dist/tools/builtin/image/useImageTool.js +28 -19
  1297. package/dist/tools/builtin/image/useImageTool.js.map +1 -1
  1298. package/dist/tools/builtin/lasso/useLassoTool.js +48 -36
  1299. package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
  1300. package/dist/tools/builtin/line/useLineTool.js +24 -16
  1301. package/dist/tools/builtin/line/useLineTool.js.map +1 -1
  1302. package/dist/tools/builtin/measure/useMeasureTool.js +84 -0
  1303. package/dist/tools/builtin/measure/useMeasureTool.js.map +1 -0
  1304. package/dist/tools/builtin/pen/penHandle.js +60 -0
  1305. package/dist/tools/builtin/pen/penHandle.js.map +1 -0
  1306. package/dist/tools/builtin/pen/usePenTool.js +463 -305
  1307. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  1308. package/dist/tools/builtin/pencil/usePencilTool.js +20 -15
  1309. package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
  1310. package/dist/tools/builtin/pickTopMostHit.js +51 -34
  1311. package/dist/tools/builtin/pickTopMostHit.js.map +1 -1
  1312. package/dist/tools/builtin/polygon/usePolygonTool.js +45 -26
  1313. package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
  1314. package/dist/tools/builtin/rect/useRectTool.js +24 -15
  1315. package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
  1316. package/dist/tools/builtin/select/adapterPointQuery.js +48 -27
  1317. package/dist/tools/builtin/select/adapterPointQuery.js.map +1 -1
  1318. package/dist/tools/builtin/select/selectionContributions.js +94 -56
  1319. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  1320. package/dist/tools/builtin/select/useSelectTool.js +155 -107
  1321. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  1322. package/dist/tools/builtin/shared/insertToolOptions.js +5 -4
  1323. package/dist/tools/builtin/shared/insertToolOptions.js.map +1 -1
  1324. package/dist/tools/builtin/shared/pointerFollower.js +15 -8
  1325. package/dist/tools/builtin/shared/pointerFollower.js.map +1 -1
  1326. package/dist/tools/builtin/slice/useSliceTool.js +148 -99
  1327. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  1328. package/dist/tools/builtin/star/useStarTool.js +48 -29
  1329. package/dist/tools/builtin/star/useStarTool.js.map +1 -1
  1330. package/dist/tools/builtin/sticky/stickyNode.js +49 -0
  1331. package/dist/tools/builtin/sticky/stickyNode.js.map +1 -0
  1332. package/dist/tools/builtin/sticky/useStickyTool.js +86 -0
  1333. package/dist/tools/builtin/sticky/useStickyTool.js.map +1 -0
  1334. package/dist/tools/builtin/text/useTextTool.js +61 -36
  1335. package/dist/tools/builtin/text/useTextTool.js.map +1 -1
  1336. package/dist/tools/builtin/weight/useWeightTool.js +66 -42
  1337. package/dist/tools/builtin/weight/useWeightTool.js.map +1 -1
  1338. package/dist/tools/builtin/weight/weightActions.js +93 -65
  1339. package/dist/tools/builtin/weight/weightActions.js.map +1 -1
  1340. package/dist/tools/builtin/weight/weightOverlay.js +47 -30
  1341. package/dist/tools/builtin/weight/weightOverlay.js.map +1 -1
  1342. package/dist/tools/overlayBinding.js +7 -5
  1343. package/dist/tools/overlayBinding.js.map +1 -1
  1344. package/dist/tools/useKeybindings.js +62 -46
  1345. package/dist/tools/useKeybindings.js.map +1 -1
  1346. package/dist/{types-CIKDwlsP.d.ts → types-CHVXGfYm.d.ts} +27 -20
  1347. package/dist/util/color.js +39 -18
  1348. package/dist/util/color.js.map +1 -1
  1349. package/dist/util/paint.js +93 -38
  1350. package/dist/util/paint.js.map +1 -1
  1351. package/dist/version.js +11 -3
  1352. package/dist/version.js.map +1 -1
  1353. package/package.json +35 -23
  1354. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js +0 -126
  1355. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js.map +0 -1
  1356. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js +0 -64
  1357. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js.map +0 -1
  1358. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js +0 -16
  1359. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js.map +0 -1
  1360. package/dist/canvas/SceneCanvas/isDev.js +0 -12
  1361. package/dist/canvas/SceneCanvas/isDev.js.map +0 -1
  1362. package/dist/canvas/SceneCanvas/useViewLayerGate.js +0 -20
  1363. package/dist/canvas/SceneCanvas/useViewLayerGate.js.map +0 -1
  1364. package/dist/canvas/surface.module.js +0 -6
  1365. package/dist/canvas/surface.module.js.map +0 -1
  1366. package/dist/canvas/surfaceBox.js +0 -16
  1367. package/dist/canvas/surfaceBox.js.map +0 -1
  1368. package/dist/cornerHandles-BEshc4z3.d.ts +0 -104
  1369. package/dist/icons/ArrowIcon.js +0 -23
  1370. package/dist/icons/ArrowIcon.js.map +0 -1
  1371. package/dist/icons/EllipseIcon.js +0 -21
  1372. package/dist/icons/EllipseIcon.js.map +0 -1
  1373. package/dist/icons/EyedropperIcon.js +0 -49
  1374. package/dist/icons/EyedropperIcon.js.map +0 -1
  1375. package/dist/icons/HandIcon.js +0 -59
  1376. package/dist/icons/HandIcon.js.map +0 -1
  1377. package/dist/icons/ImageIcon.js +0 -34
  1378. package/dist/icons/ImageIcon.js.map +0 -1
  1379. package/dist/icons/LassoIcon.js +0 -22
  1380. package/dist/icons/LassoIcon.js.map +0 -1
  1381. package/dist/icons/LineIcon.js +0 -22
  1382. package/dist/icons/LineIcon.js.map +0 -1
  1383. package/dist/icons/PenIcon.js +0 -36
  1384. package/dist/icons/PenIcon.js.map +0 -1
  1385. package/dist/icons/PencilIcon.js +0 -25
  1386. package/dist/icons/PencilIcon.js.map +0 -1
  1387. package/dist/icons/PolygonIcon.js +0 -19
  1388. package/dist/icons/PolygonIcon.js.map +0 -1
  1389. package/dist/icons/RectIcon.js +0 -37
  1390. package/dist/icons/RectIcon.js.map +0 -1
  1391. package/dist/icons/SelectIcon.js +0 -20
  1392. package/dist/icons/SelectIcon.js.map +0 -1
  1393. package/dist/icons/StarIcon.js +0 -19
  1394. package/dist/icons/StarIcon.js.map +0 -1
  1395. package/dist/icons/TextIcon.js +0 -19
  1396. package/dist/icons/TextIcon.js.map +0 -1
  1397. package/dist/icons/UnknownIcon.js +0 -33
  1398. package/dist/icons/UnknownIcon.js.map +0 -1
  1399. package/dist/icons/_base.js +0 -12
  1400. package/dist/icons/_base.js.map +0 -1
  1401. package/dist/interactions/actions/actionShortcuts.js +0 -32
  1402. package/dist/interactions/actions/actionShortcuts.js.map +0 -1
  1403. package/dist/interactions/actions/defaults/icons/actionGlyphIcons.js +0 -40
  1404. package/dist/interactions/actions/defaults/icons/actionGlyphIcons.js.map +0 -1
  1405. package/dist/interactions/actions/defaults/icons/actionGlyphs.js +0 -10
  1406. package/dist/interactions/actions/defaults/icons/actionGlyphs.js.map +0 -1
  1407. package/dist/interactions/actions/defaults/icons/alignIcons.js +0 -173
  1408. package/dist/interactions/actions/defaults/icons/alignIcons.js.map +0 -1
  1409. package/dist/interactions/actions/defaults/icons/booleanIcons.js +0 -194
  1410. package/dist/interactions/actions/defaults/icons/booleanIcons.js.map +0 -1
  1411. package/dist/interactions/actions/defaults/icons/distributeIcons.js +0 -63
  1412. package/dist/interactions/actions/defaults/icons/distributeIcons.js.map +0 -1
  1413. package/dist/interactions/actions/defaults/icons/editIcons.js +0 -280
  1414. package/dist/interactions/actions/defaults/icons/editIcons.js.map +0 -1
  1415. package/dist/interactions/actions/defaults/icons/outlineIcons.js +0 -91
  1416. package/dist/interactions/actions/defaults/icons/outlineIcons.js.map +0 -1
  1417. package/dist/interactions/actions/resize/behaviors/index.js +0 -8
  1418. package/dist/interactions/actions/resize/behaviors/index.js.map +0 -1
  1419. package/dist/interactions/actions/resize/behaviors/lockAspect.js +0 -24
  1420. package/dist/interactions/actions/resize/behaviors/lockAspect.js.map +0 -1
  1421. package/dist/interactions/actions/resize/pointSnap.js +0 -111
  1422. package/dist/interactions/actions/resize/pointSnap.js.map +0 -1
  1423. package/dist/interactions/actions/rotate/behaviors/index.js +0 -7
  1424. package/dist/interactions/actions/rotate/behaviors/index.js.map +0 -1
  1425. package/dist/interactions/actions/rotate/behaviors/snapRotation.js +0 -12
  1426. package/dist/interactions/actions/rotate/behaviors/snapRotation.js.map +0 -1
  1427. package/dist/interactions/gestures/shared/snap.js +0 -24
  1428. package/dist/interactions/gestures/shared/snap.js.map +0 -1
  1429. package/dist/layout/arrivals.js +0 -33
  1430. package/dist/layout/arrivals.js.map +0 -1
  1431. package/dist/test-seams-D0pyV3pR.d.ts +0 -149
  1432. package/dist/util/constrainTo45.js +0 -17
  1433. package/dist/util/constrainTo45.js.map +0 -1
@@ -1,7 +1,9 @@
1
- import { selectionMoveContribution as e, selectionResizeContribution as t, selectionRotateContribution as n } from "../../tools/builtin/select/selectionContributions.js";
2
- import { never as r } from "../../features/chrome-caps/conditions.js";
1
+ import { never } from "../../features/chrome-caps/conditions.js";
2
+
3
3
  //#region src/canvas/SceneCanvas/features.ts
4
- var i = [
4
+ /** Every name `<SceneCanvas features>` accepts, each composite after the
5
+ * presets it names. */
6
+ var SCENE_CANVAS_FEATURES = [
5
7
  "view",
6
8
  "select",
7
9
  "outline",
@@ -15,135 +17,89 @@ var i = [
15
17
  "paths",
16
18
  "ingest",
17
19
  "draw"
18
- ], a = {
19
- view: {
20
- actions: ["viewport.dragPan", "viewport.pinchZoom"],
21
- tools: ["hand"]
22
- },
23
- select: {
24
- actions: [
25
- "areaSelect",
26
- "clearSelection",
27
- "lassoSelect"
28
- ],
29
- tools: ["select"]
30
- },
31
- outline: {
32
- actions: [],
33
- chrome: ["selection.outline"]
34
- },
35
- resize: {
36
- actions: ["resize"],
37
- ambient: () => t(),
38
- chrome: ["selection.resize-handles"]
39
- },
40
- rotate: {
41
- actions: ["rotate"],
42
- ambient: ({ rotate: e }) => n({ rotate: e }),
43
- chrome: ["selection.rotation-handle"]
44
- },
45
- move: {
46
- actions: ["move", "clone"],
47
- ambient: ({ move: t }) => e({ move: t })
48
- },
49
- edit: { actions: [
50
- "escape",
51
- "cancelGesture",
52
- "selectAll",
53
- "duplicate",
54
- "delete",
55
- "group",
56
- "ungroup",
57
- "undo",
58
- "redo",
59
- "nudge.up",
60
- "nudge.down",
61
- "nudge.left",
62
- "nudge.right",
63
- "clipboard.cut",
64
- "clipboard.copy",
65
- "clipboard.paste",
66
- "clipboard.pasteEvent",
67
- "setFill",
68
- "setStroke",
69
- "setFillOpacity",
70
- "setStrokeOpacity"
71
- ] },
72
- arrange: { actions: [
73
- "flip",
74
- "reorder.forward",
75
- "reorder.backward",
76
- "align.left",
77
- "align.centerX",
78
- "align.right",
79
- "align.top",
80
- "align.centerY",
81
- "align.bottom",
82
- "distribute.horizontal",
83
- "distribute.vertical"
84
- ] },
85
- paths: { actions: [
86
- "pathfinder.union",
87
- "pathfinder.subtract",
88
- "pathfinder.intersect",
89
- "pathfinder.exclude",
90
- "pathfinder.divide",
91
- "pathfinder.crop",
92
- "pathfinder.trim",
93
- "pathfinder.merge",
94
- "createOutlines",
95
- "outlineStroke",
96
- "editAnchors",
97
- "enterPathEdit",
98
- "exitPathEdit",
99
- "insertPathAnchor",
100
- "nudgeAnchors.up",
101
- "nudgeAnchors.down",
102
- "nudgeAnchors.left",
103
- "nudgeAnchors.right",
104
- "deleteAnchors",
105
- "cutPathAtAnchor",
106
- "marqueeAnchors",
107
- "selectAnchor"
108
- ] },
109
- ingest: { actions: ["ingest"] }
110
- }, o = Object.keys(a), s = {
111
- pick: ["select", "outline"],
112
- transform: ["resize", "rotate"],
113
- draw: o
114
- }, c = Object.fromEntries(o.map((e) => [e, a[e].actions])), l = [
115
- "insert",
116
- "insert.adjustRotation",
117
- "enterTextEdit"
118
20
  ];
119
- function u(e, t = {}) {
120
- let n = /* @__PURE__ */ new Set();
121
- for (let t of e ?? []) if (t in s) for (let e of s[t]) n.add(e);
122
- else n.add(t);
123
- return t.viewport && n.add("view"), n;
21
+ /**
22
+ * The presets a canvas runs with: names expanded, `includes` pulled in, each
23
+ * preset once, and every one placed ahead of the presets it `refines`. Ties
24
+ * keep the order given. Where names resolve, a `viewport` config turns on the
25
+ * `view` preset, since that prop only configures what `view` turns on.
26
+ */
27
+ function resolveFeatures(features, named, opts = {}) {
28
+ const listed = [];
29
+ const byId = /* @__PURE__ */ new Map();
30
+ const add = (p) => {
31
+ const held = byId.get(p.id);
32
+ if (held === p) return;
33
+ if (held) throw new Error(`[SceneCanvas] two different presets have the id "${p.id}"`);
34
+ byId.set(p.id, p);
35
+ for (const inner of p.includes ?? []) add(inner);
36
+ listed.push(p);
37
+ };
38
+ for (const f of features ?? []) if (typeof f !== "string") add(f);
39
+ else if (!named) throw new Error(`[SceneCanvas] this canvas resolves no preset names; pass the preset for "${f}"`);
40
+ else if (f in named.composite) for (const b of named.composite[f]) add(named.base[b]);
41
+ else add(named.base[f]);
42
+ if (opts.viewport && named) add(named.base.view);
43
+ const ordered = [];
44
+ const placed = /* @__PURE__ */ new Set();
45
+ const place = (p) => {
46
+ if (placed.has(p.id)) return;
47
+ placed.add(p.id);
48
+ for (const r of listed) if (r.refines?.includes(p.id)) place(r);
49
+ ordered.push(p);
50
+ };
51
+ for (const p of listed) place(p);
52
+ return {
53
+ presets: ordered,
54
+ pathEdit: ordered.flatMap((p) => p.pathEdit ?? []),
55
+ snapSources: ordered.flatMap((p) => p.snapSources ?? []),
56
+ has: (id) => byId.has(id)
57
+ };
124
58
  }
125
- function d(e) {
126
- let t = /* @__PURE__ */ new Set();
127
- for (let n of e) for (let e of a[n].actions) t.add(e);
128
- return t;
59
+ /** The actions the given presets register, in registration order. */
60
+ function presetActions(enabled) {
61
+ return enabled.presets.flatMap((p) => p.actions ?? []);
129
62
  }
130
- function f(e) {
131
- let t = /* @__PURE__ */ new Set();
132
- for (let n of e) for (let e of a[n].tools ?? []) t.add(e);
133
- return t;
63
+ /** The built-in tool ids the given presets mount. */
64
+ function presetBuiltinTools(enabled) {
65
+ const ids = /* @__PURE__ */ new Set();
66
+ for (const p of enabled.presets) for (const t of p.tools ?? []) if (typeof t === "string") ids.add(t);
67
+ return ids;
134
68
  }
135
- function p(e, t) {
136
- return o.flatMap((n) => {
137
- let r = e.has(n) ? a[n].ambient : void 0;
138
- return r ? [r(t)] : [];
139
- });
69
+ /** The tools of their own the given presets mount, by id. */
70
+ function presetOwnTools(enabled) {
71
+ const out = {};
72
+ for (const p of enabled.presets) for (const t of p.tools ?? []) if (typeof t !== "string") out[t.id] = t;
73
+ return out;
140
74
  }
141
- function m(e) {
142
- let t = {};
143
- for (let n of o) if (!e.has(n)) for (let e of a[n].chrome ?? []) t[e] = r;
144
- return t;
75
+ /** The given presets' ambient entries and contributions, in the order they are
76
+ * matched. Their `moveBehaviors` follow the ones `options.move` brings. */
77
+ function presetAmbient(enabled, options) {
78
+ const extra = enabled.presets.flatMap((p) => p.moveBehaviors ?? []);
79
+ const move = extra.length === 0 ? options.move : {
80
+ ...options.move,
81
+ behaviors: [...options.move?.behaviors ?? [], ...extra]
82
+ };
83
+ const opts = {
84
+ ...options,
85
+ move
86
+ };
87
+ return enabled.presets.flatMap((p) => p.ambient ? [p.ambient(opts)] : []);
88
+ }
89
+ /** The given presets' contributions, in preset order. */
90
+ function presetContributions(enabled) {
91
+ return enabled.presets.flatMap((p) => p.contributions ?? []);
92
+ }
93
+ /** The enabled presets' own `chromeRules`, then rules hiding each chrome id
94
+ * in `owned` that no enabled preset turns on. `never` also takes a handle out
95
+ * of hit-testing, so a hidden one cannot be grabbed. */
96
+ function presetChromeRules(enabled, owned) {
97
+ const on = new Set(enabled.presets.flatMap((p) => p.chrome ?? []));
98
+ const rules = Object.assign({}, ...enabled.presets.map((p) => p.chromeRules ?? {}));
99
+ for (const id of owned) if (!on.has(id)) rules[id] = never;
100
+ return rules;
145
101
  }
146
- //#endregion
147
- export { s as COMPOSITE_FEATURES, c as FEATURE_ACTION_IDS, a as FEATURE_PRESETS, i as SCENE_CANVAS_FEATURES, l as TOOL_DRIVEN_ACTION_IDS, d as featureActionIds, p as featureAmbient, m as featureChromeRules, f as featureToolIds, u as resolveFeatures };
148
102
 
103
+ //#endregion
104
+ export { SCENE_CANVAS_FEATURES, presetActions, presetAmbient, presetBuiltinTools, presetChromeRules, presetContributions, presetOwnTools, resolveFeatures };
149
105
  //# sourceMappingURL=features.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","names":["SCENE_CANVAS_FEATURES","FEATURE_PRESETS","selectionResizeContribution","selectionRotateContribution","selectionMoveContribution","BASE_FEATURES","COMPOSITE_FEATURES","FEATURE_ACTION_IDS","f","TOOL_DRIVEN_ACTION_IDS","resolveFeatures","out","features","b","opts","featureActionIds","ids","id","featureToolIds","featureAmbient","ambient","options","featureChromeRules","rules","never"],"sources":["../../../src/canvas/SceneCanvas/features.ts"],"sourcesContent":["/**\n * The behavior presets `<SceneCanvas features>` composes. A bare canvas renders\n * its scene and keeps a selection nothing sets; every behavior beyond that is\n * turned on by naming a preset here.\n *\n * A preset is not one of the `packages/core/src/features/<name>/` source\n * directories that `docs/taxonomy.md` calls a feature; the two share a word\n * and nothing else.\n */\nimport { never } from 'features/chrome-caps/conditions';\nimport type { ChromeId, VisibilityRules } from 'features/chrome-caps/types';\nimport type { UseMoveOptions } from 'interactions/actions/move/options';\nimport type { UseRotateOptions } from 'interactions/actions/rotate/options';\nimport {\n selectionMoveContribution,\n selectionResizeContribution,\n selectionRotateContribution,\n} from 'tools/builtin/select/selectionContributions';\nimport type { Contribution } from 'tools/overlayBinding';\nimport type { BuiltinToolId } from './props';\n\n/** A preset that names one behavior and abbreviates nothing. */\nexport type BaseFeature =\n | 'view'\n | 'select'\n | 'outline'\n | 'move'\n | 'resize'\n | 'rotate'\n | 'edit'\n | 'arrange'\n | 'paths'\n | 'ingest';\n\n/** A preset that abbreviates others: `pick` is `select` + `outline`,\n * `transform` is `resize` + `rotate`, and `draw` is every base preset. */\nexport type CompositeFeature = 'pick' | 'transform' | 'draw';\n\n/** A behavior preset for `<SceneCanvas features>`. */\nexport type Feature = BaseFeature | CompositeFeature;\n\n/** Every preset `<SceneCanvas features>` accepts, each composite after the\n * presets it names. */\nexport const SCENE_CANVAS_FEATURES: readonly Feature[] = [\n 'view', 'select', 'outline', 'pick', 'move', 'resize', 'rotate', 'transform',\n 'edit', 'arrange', 'paths', 'ingest', 'draw',\n];\n\n/** What a preset's ambient bindings are built from: the `selectTool` options\n * that configure them. */\nexport interface FeatureBindingOptions {\n move?: UseMoveOptions<unknown>;\n rotate?: UseRotateOptions<unknown>;\n}\n\n/** Everything turning one preset on means. */\nexport interface FeaturePreset {\n /** The kit-standard actions it registers. */\n actions: readonly string[];\n /** The built-in tools it mounts. */\n tools?: readonly BuiltinToolId[];\n /** Its ambient bindings: an always-live entry routing a gesture to its\n * actions under any tool that does not claim the gesture itself. */\n ambient?: (options: FeatureBindingOptions) => Contribution;\n /** The selection chrome that is drawn, and can be grabbed, only while it is on. */\n chrome?: readonly ChromeId[];\n}\n\n/**\n * What each preset turns on.\n *\n * Row order is the order ambient bindings are matched in, and a tie goes to\n * the first: a handle sits over the selected body, so `resize` and `rotate`\n * come before `move`, whose binding matches a handle drag too.\n *\n * Every id `useStandardActions` knows appears under exactly one preset, except\n * the ones in {@link TOOL_DRIVEN_ACTION_IDS}.\n *\n * Cmd/Ctrl+V arrives as a DOM `paste` event, and two presets answer it.\n * `edit` brings `clipboard.pasteEvent`, which pastes nodes a kit canvas\n * copied and nothing else; `ingest` brings `ingest`, which takes those plus\n * images, SVG, files, consumer content handlers, and every OS drop. With both\n * on, `ingest` answers alone: `useStandardActions` holds\n * `clipboard.pasteEvent` back wherever `ingest` is registered.\n */\nexport const FEATURE_PRESETS: Readonly<Record<BaseFeature, FeaturePreset>> = {\n view: {\n actions: ['viewport.dragPan', 'viewport.pinchZoom'],\n tools: ['hand'],\n },\n select: {\n actions: ['areaSelect', 'clearSelection', 'lassoSelect'],\n tools: ['select'],\n },\n outline: {\n actions: [],\n chrome: ['selection.outline'],\n },\n resize: {\n actions: ['resize'],\n ambient: () => selectionResizeContribution(),\n chrome: ['selection.resize-handles'],\n },\n rotate: {\n actions: ['rotate'],\n ambient: ({ rotate }) => selectionRotateContribution({ rotate }),\n chrome: ['selection.rotation-handle'],\n },\n move: {\n actions: ['move', 'clone'],\n ambient: ({ move }) => selectionMoveContribution({ move }),\n },\n edit: {\n actions: [\n 'escape', 'cancelGesture', 'selectAll', 'duplicate', 'delete',\n 'group', 'ungroup', 'undo', 'redo',\n 'nudge.up', 'nudge.down', 'nudge.left', 'nudge.right',\n 'clipboard.cut', 'clipboard.copy', 'clipboard.paste', 'clipboard.pasteEvent',\n 'setFill', 'setStroke', 'setFillOpacity', 'setStrokeOpacity',\n ],\n },\n arrange: {\n actions: [\n 'flip',\n 'reorder.forward', 'reorder.backward',\n 'align.left', 'align.centerX', 'align.right',\n 'align.top', 'align.centerY', 'align.bottom',\n 'distribute.horizontal', 'distribute.vertical',\n ],\n },\n paths: {\n actions: [\n 'pathfinder.union', 'pathfinder.subtract', 'pathfinder.intersect',\n 'pathfinder.exclude', 'pathfinder.divide', 'pathfinder.crop', 'pathfinder.trim', 'pathfinder.merge',\n 'createOutlines', 'outlineStroke',\n 'editAnchors', 'enterPathEdit', 'exitPathEdit', 'insertPathAnchor',\n 'nudgeAnchors.up', 'nudgeAnchors.down', 'nudgeAnchors.left', 'nudgeAnchors.right',\n 'deleteAnchors', 'cutPathAtAnchor', 'marqueeAnchors', 'selectAnchor',\n ],\n },\n ingest: {\n actions: ['ingest'],\n },\n};\n\nconst BASE_FEATURES = Object.keys(FEATURE_PRESETS) as BaseFeature[];\n\n/** The base presets each composite preset turns on. */\nexport const COMPOSITE_FEATURES: Readonly<Record<CompositeFeature, readonly BaseFeature[]>> = {\n pick: ['select', 'outline'],\n transform: ['resize', 'rotate'],\n draw: BASE_FEATURES,\n};\n\n/** The kit-standard actions each preset registers. */\nexport const FEATURE_ACTION_IDS = Object.fromEntries(\n BASE_FEATURES.map((f) => [f, FEATURE_PRESETS[f].actions]),\n) as Readonly<Record<BaseFeature, readonly string[]>>;\n\n/**\n * Kit-standard actions no preset registers: they belong to the tools that bind\n * them. A canvas registers each one whenever a tool it carries names it in a\n * binding — `insert` with any shape tool, `enterTextEdit` with the text tool.\n */\nexport const TOOL_DRIVEN_ACTION_IDS: readonly string[] = ['insert', 'insert.adjustRotation', 'enterTextEdit'];\n\n/**\n * The base presets a canvas runs with: `features` with every composite\n * expanded, plus `view` whenever the canvas was handed a `viewport` config,\n * since that prop only configures what `view` turns on.\n */\nexport function resolveFeatures(\n features: readonly Feature[] | undefined,\n opts: { viewport?: boolean } = {},\n): ReadonlySet<BaseFeature> {\n const out = new Set<BaseFeature>();\n for (const f of features ?? []) {\n if (f in COMPOSITE_FEATURES) {\n for (const b of COMPOSITE_FEATURES[f as CompositeFeature]) out.add(b);\n } else {\n out.add(f as BaseFeature);\n }\n }\n if (opts.viewport) out.add('view');\n return out;\n}\n\n/** The kit-standard action ids the given presets register. */\nexport function featureActionIds(features: ReadonlySet<BaseFeature>): Set<string> {\n const ids = new Set<string>();\n for (const f of features) for (const id of FEATURE_PRESETS[f].actions) ids.add(id);\n return ids;\n}\n\n/** The built-in tools the given presets mount. */\nexport function featureToolIds(features: ReadonlySet<BaseFeature>): Set<BuiltinToolId> {\n const ids = new Set<BuiltinToolId>();\n for (const f of features) for (const id of FEATURE_PRESETS[f].tools ?? []) ids.add(id);\n return ids;\n}\n\n/** The given presets' ambient entries, in the order they are matched. */\nexport function featureAmbient(\n features: ReadonlySet<BaseFeature>,\n options: FeatureBindingOptions,\n): Contribution[] {\n return BASE_FEATURES.flatMap((f) => {\n const ambient = features.has(f) ? FEATURE_PRESETS[f].ambient : undefined;\n return ambient ? [ambient(options)] : [];\n });\n}\n\n/** Rules hiding the chrome of every preset that is not among `features`.\n * `never` also takes a handle out of hit-testing, so a hidden one cannot be\n * grabbed. */\nexport function featureChromeRules(features: ReadonlySet<BaseFeature>): VisibilityRules {\n const rules: VisibilityRules = {};\n for (const f of BASE_FEATURES) {\n if (features.has(f)) continue;\n for (const id of FEATURE_PRESETS[f].chrome ?? []) rules[id] = never;\n }\n return rules;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"features.js","names":[],"sources":["../../../src/canvas/SceneCanvas/features.ts"],"sourcesContent":["/**\n * The behavior presets `<SceneCanvas features>` composes. A bare canvas renders\n * its scene and keeps a selection nothing sets; every behavior beyond that is\n * turned on by a preset.\n *\n * A preset is a {@link FeaturePreset} object: the actions, tools, bindings,\n * chrome, and contributions one behavior brings. Core's own are named\n * (`'select'`, `'draw'`) and live in `namedPresets.ts`; a package ships its\n * own the same way and an app passes the object. Nothing here imports an\n * action, so a canvas reaches only the presets it is handed.\n *\n * A preset is not one of the `packages/core/src/features/<name>/` source\n * directories that `docs/taxonomy.md` calls a feature; the two share a word\n * and nothing else.\n */\nimport type { Action } from '@weasel-js/routing';\nimport { never } from 'features/chrome-caps/conditions';\nimport type { ChromeId, VisibilityRules } from 'features/chrome-caps/types';\nimport type { MoveBehavior } from 'interactions/gestures/types';\nimport type { UseMoveOptions } from 'interactions/actions/move/options';\nimport type { UseRotateOptions } from 'interactions/actions/rotate/options';\nimport type { Contribution, Tool } from 'tools/overlayBinding';\nimport type { PathEditExtension } from 'features/paths/pathEditExtension';\nimport type { SnapSource } from 'features/snap/types';\nimport type { SurfaceContribution } from '../surfaceContribution';\nimport type { BuiltinToolId } from './props';\n\n/** A core preset that names one behavior and abbreviates nothing. */\nexport type BaseFeature =\n | 'view'\n | 'select'\n | 'outline'\n | 'move'\n | 'resize'\n | 'rotate'\n | 'edit'\n | 'arrange'\n | 'paths'\n | 'ingest';\n\n/** A core preset that abbreviates others: `pick` is `select` + `outline`,\n * `transform` is `resize` + `rotate`, and `draw` is every base preset. */\nexport type CompositeFeature = 'pick' | 'transform' | 'draw';\n\n/** A core preset's name, as `<SceneCanvas features>` takes it. */\nexport type Feature = BaseFeature | CompositeFeature;\n\n/** Every name `<SceneCanvas features>` accepts, each composite after the\n * presets it names. */\nexport const SCENE_CANVAS_FEATURES: readonly Feature[] = [\n 'view', 'select', 'outline', 'pick', 'move', 'resize', 'rotate', 'transform',\n 'edit', 'arrange', 'paths', 'ingest', 'draw',\n];\n\n/** What a preset's ambient bindings are built from: the `selectTool` options\n * that configure them. */\nexport interface FeatureBindingOptions {\n move?: UseMoveOptions<unknown>;\n rotate?: UseRotateOptions<unknown>;\n}\n\n/**\n * Everything turning one preset on means. Every role is optional.\n *\n * A package's preset is the unit an app opts into: the app imports it and\n * passes it to `features`, and an app that does not never loads its code.\n */\nexport interface FeaturePreset {\n /** Unique per canvas. `refines` names presets by it, and two different\n * presets with one id on one canvas throw. */\n readonly id: string;\n /** The action descriptors it registers, in the order they register. They\n * are standard actions: `<SceneCanvas actions>` overrides and mutes them,\n * and `tune` reaches them. */\n readonly actions?: readonly Action[];\n /** Tools it mounts: a built-in by id, or a tool of its own. */\n readonly tools?: readonly (BuiltinToolId | Tool)[];\n /** Its ambient bindings: an always-live entry routing a gesture to its\n * actions under any tool that does not claim the gesture itself. */\n readonly ambient?: (options: FeatureBindingOptions) => Contribution;\n /** Behaviors folded into every move the presets' ambient bindings run,\n * after the select tool's own: a snap, a readout of the drag. They reach\n * only a move some enabled preset binds, `move` or `draw`'s. */\n readonly moveBehaviors?: readonly MoveBehavior<unknown>[];\n /** Snap sources every snap session on the canvas asks, after\n * `<SceneCanvas snap.sources>` and the presets before it. */\n readonly snapSources?: readonly SnapSource[];\n /** The selection chrome that is drawn, and can be grabbed, only while it is on. */\n readonly chrome?: readonly ChromeId[];\n /** Default chrome-caps rules for chrome of its own, under the consumer's\n * `chromeVisibility`: a mark it draws only on request, say. */\n readonly chromeRules?: VisibilityRules;\n /** What it adds to path edit: marks, grabbable parts, what an edit keeps\n * true. Consulted in preset order. */\n readonly pathEdit?: readonly PathEditExtension[];\n /** Entries installed beside `<SceneCanvas ambient>`, with every role they\n * declare: deps, overlays, `attach`, views, frame hooks. A `tools` takeover\n * brings its own ambient and leaves them out. */\n readonly contributions?: readonly SurfaceContribution[];\n /** Ids of presets whose actions this one's register ahead of, so that where\n * both bind one gesture, this one's is tried first: anchor nudging ahead of\n * node nudging. A preset named here that is not on is ignored. */\n readonly refines?: readonly string[];\n /** Presets it turns on with itself, ahead of its own place in the order. */\n readonly includes?: readonly FeaturePreset[];\n}\n\n/** What `<SceneCanvas features>` takes: a core preset's name or any preset. */\nexport type FeatureEntry = Feature | FeaturePreset;\n\n/** The names a canvas resolves: one preset each, or the presets a composite\n * abbreviates. */\nexport interface NamedPresets {\n readonly base: Readonly<Record<BaseFeature, FeaturePreset>>;\n readonly composite: Readonly<Record<CompositeFeature, readonly BaseFeature[]>>;\n}\n\n/** Where a canvas finds presets beyond the objects it is handed: the names it\n * resolves, if any, and the actions it registers once a tool binds them. */\nexport interface PresetSource {\n readonly named: NamedPresets | null;\n /** Actions registered only when a tool or contribution binds them. */\n readonly pool: readonly Action[];\n}\n\n/** The presets a canvas runs with, in the order their actions register. */\nexport interface EnabledPresets {\n readonly presets: readonly FeaturePreset[];\n /** Their path-edit extensions, in order. */\n readonly pathEdit: readonly PathEditExtension[];\n /** Their snap sources, in order. */\n readonly snapSources: readonly SnapSource[];\n /** Whether a preset with this id is on. */\n has(id: string): boolean;\n}\n\n/**\n * The presets a canvas runs with: names expanded, `includes` pulled in, each\n * preset once, and every one placed ahead of the presets it `refines`. Ties\n * keep the order given. Where names resolve, a `viewport` config turns on the\n * `view` preset, since that prop only configures what `view` turns on.\n */\nexport function resolveFeatures(\n features: readonly FeatureEntry[] | undefined,\n named: NamedPresets | null,\n opts: { viewport?: boolean } = {},\n): EnabledPresets {\n const listed: FeaturePreset[] = [];\n const byId = new Map<string, FeaturePreset>();\n const add = (p: FeaturePreset): void => {\n const held = byId.get(p.id);\n if (held === p) return;\n if (held) throw new Error(`[SceneCanvas] two different presets have the id \"${p.id}\"`);\n byId.set(p.id, p);\n for (const inner of p.includes ?? []) add(inner);\n listed.push(p);\n };\n for (const f of features ?? []) {\n if (typeof f !== 'string') add(f);\n else if (!named) throw new Error(`[SceneCanvas] this canvas resolves no preset names; pass the preset for \"${f}\"`);\n else if (f in named.composite) for (const b of named.composite[f as CompositeFeature]) add(named.base[b]);\n else add(named.base[f as BaseFeature]);\n }\n if (opts.viewport && named) add(named.base.view);\n\n const ordered: FeaturePreset[] = [];\n const placed = new Set<string>();\n const place = (p: FeaturePreset): void => {\n if (placed.has(p.id)) return;\n placed.add(p.id);\n for (const r of listed) if (r.refines?.includes(p.id)) place(r);\n ordered.push(p);\n };\n for (const p of listed) place(p);\n return {\n presets: ordered,\n pathEdit: ordered.flatMap((p) => p.pathEdit ?? []),\n snapSources: ordered.flatMap((p) => p.snapSources ?? []),\n has: (id) => byId.has(id),\n };\n}\n\n/** The actions the given presets register, in registration order. */\nexport function presetActions(enabled: EnabledPresets): Action[] {\n return enabled.presets.flatMap((p) => p.actions ?? []);\n}\n\n/** The built-in tool ids the given presets mount. */\nexport function presetBuiltinTools(enabled: EnabledPresets): Set<BuiltinToolId> {\n const ids = new Set<BuiltinToolId>();\n for (const p of enabled.presets) for (const t of p.tools ?? []) if (typeof t === 'string') ids.add(t);\n return ids;\n}\n\n/** The tools of their own the given presets mount, by id. */\nexport function presetOwnTools(enabled: EnabledPresets): Record<string, Tool> {\n const out: Record<string, Tool> = {};\n for (const p of enabled.presets) for (const t of p.tools ?? []) if (typeof t !== 'string') out[t.id] = t;\n return out;\n}\n\n/** The given presets' ambient entries and contributions, in the order they are\n * matched. Their `moveBehaviors` follow the ones `options.move` brings. */\nexport function presetAmbient(enabled: EnabledPresets, options: FeatureBindingOptions): Contribution[] {\n const extra = enabled.presets.flatMap((p) => p.moveBehaviors ?? []);\n const move = extra.length === 0\n ? options.move\n : { ...options.move, behaviors: [...(options.move?.behaviors ?? []), ...extra] };\n const opts = { ...options, move };\n return enabled.presets.flatMap((p) => (p.ambient ? [p.ambient(opts)] : []));\n}\n\n/** The given presets' contributions, in preset order. */\nexport function presetContributions(enabled: EnabledPresets): SurfaceContribution[] {\n return enabled.presets.flatMap((p) => p.contributions ?? []);\n}\n\n/** The enabled presets' own `chromeRules`, then rules hiding each chrome id\n * in `owned` that no enabled preset turns on. `never` also takes a handle out\n * of hit-testing, so a hidden one cannot be grabbed. */\nexport function presetChromeRules(enabled: EnabledPresets, owned: readonly ChromeId[]): VisibilityRules {\n const on = new Set(enabled.presets.flatMap((p) => p.chrome ?? []));\n const rules: VisibilityRules = Object.assign({}, ...enabled.presets.map((p) => p.chromeRules ?? {}));\n for (const id of owned) if (!on.has(id)) rules[id] = never;\n return rules;\n}\n"],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import { viewToTransform } from "../../core/viewport/view.js";
2
+ import { worldToScreen } from "../../core/viewport/viewTransform.js";
3
+ import { getImageBitmap } from "@weasel-js/renderer";
4
+ import { ellipsePath, invert, linePath, mat3 as mat3$1, multiply, polylineFromPoints, rectPath, regularPolygonPath, starPath } from "@weasel-js/geom";
5
+
6
+ //#region src/canvas/SceneCanvas/insertPreviewCommands.ts
7
+ /** Alpha for content previewed inside an in-flight gesture. Matches the
8
+ * preview-ghost layer, so a dragged node and an uncommitted insert read as
9
+ * equally provisional. */
10
+ var PREVIEW_CONTENT_OPACITY = .85;
11
+ /** An insert preview in screen space: its outline, under each copy it will be
12
+ * drawn in, and the dot at the press. */
13
+ function insertPreviewCommands(ov, view, cfg) {
14
+ const t = viewToTransform(view);
15
+ const out = [];
16
+ const b = ov.bounds;
17
+ const projectPoint = (wx, wy) => {
18
+ const [sx, sy] = worldToScreen(wx, wy, t);
19
+ return {
20
+ x: sx,
21
+ y: sy
22
+ };
23
+ };
24
+ const projectPoints = (pts) => pts.map((p) => projectPoint(p.x, p.y));
25
+ const radialScale = (view.scale.x + view.scale.y) / 2;
26
+ let pathCmd = null;
27
+ const geom = ov.geometry;
28
+ switch (geom.kind) {
29
+ case "box": {
30
+ const [sx, sy] = worldToScreen(b.x, b.y, t);
31
+ const sw = b.width * view.scale.x;
32
+ const sh = b.height * view.scale.y;
33
+ if (ov.shape === "image") {
34
+ const e = ov.extras;
35
+ const bmp = e.preview === "outline" || !e.src ? void 0 : getImageBitmap(e.src);
36
+ if (bmp) out.push({
37
+ kind: "image",
38
+ image: bmp,
39
+ x: sx,
40
+ y: sy,
41
+ w: sw,
42
+ h: sh,
43
+ opacity: PREVIEW_CONTENT_OPACITY
44
+ });
45
+ }
46
+ pathCmd = ov.shape === "ellipse" ? ellipsePath({
47
+ x: sx,
48
+ y: sy,
49
+ width: sw,
50
+ height: sh
51
+ }) : rectPath(sx, sy, sw, sh);
52
+ break;
53
+ }
54
+ case "line":
55
+ pathCmd = linePath(projectPoint(geom.a.x, geom.a.y), projectPoint(geom.b.x, geom.b.y));
56
+ break;
57
+ case "polygon":
58
+ pathCmd = regularPolygonPath(projectPoint(geom.center.x, geom.center.y), geom.radius * radialScale, geom.sides, geom.rotation);
59
+ break;
60
+ case "star":
61
+ pathCmd = starPath(projectPoint(geom.center.x, geom.center.y), geom.outerRadius * radialScale, geom.points, geom.innerRadius * radialScale, geom.rotation);
62
+ break;
63
+ case "pencil": pathCmd = polylineFromPoints(projectPoints(geom.samples));
64
+ }
65
+ if (!pathCmd) return out;
66
+ const cmd = {
67
+ kind: "path",
68
+ path: pathCmd,
69
+ fill: ov.shape === "line" || ov.shape === "pencil" || ov.shape === "image" ? void 0 : { paint: { color: cfg.fill } },
70
+ stroke: {
71
+ paint: { color: cfg.stroke },
72
+ width: cfg.lineWidth,
73
+ dash: cfg.dash
74
+ }
75
+ };
76
+ out.push(cmd);
77
+ if (ov.copies && ov.copies.length > 0) {
78
+ const toScreen = [
79
+ view.scale.x,
80
+ 0,
81
+ 0,
82
+ view.scale.y,
83
+ t.panX,
84
+ t.panY
85
+ ];
86
+ const toWorld = invert(toScreen);
87
+ for (const m of ov.copies) {
88
+ if (!toWorld) break;
89
+ const s = multiply(toScreen, multiply(m, toWorld));
90
+ out.push({
91
+ kind: "group",
92
+ transform: mat3$1.fromAffine(s),
93
+ children: [cmd]
94
+ });
95
+ }
96
+ }
97
+ if (ov.anchorPoint) {
98
+ const anchorScreen = projectPoint(ov.anchorPoint.x, ov.anchorPoint.y);
99
+ out.push({
100
+ kind: "path",
101
+ path: ellipsePath({
102
+ x: anchorScreen.x - 4,
103
+ y: anchorScreen.y - 4,
104
+ width: 8,
105
+ height: 8
106
+ }),
107
+ fill: { paint: { color: cfg.stroke } }
108
+ });
109
+ }
110
+ return out;
111
+ }
112
+
113
+ //#endregion
114
+ export { insertPreviewCommands };
115
+ //# sourceMappingURL=insertPreviewCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertPreviewCommands.js","names":["mat3"],"sources":["../../../src/canvas/SceneCanvas/insertPreviewCommands.ts"],"sourcesContent":["import {\n ellipsePath, invert, linePath, mat3, multiply, rectPath, regularPolygonPath, starPath, polylineFromPoints,\n type Affine,\n} from '@weasel-js/geom';\nimport { getImageBitmap, type DrawCommand, type PathDrawCommand } from '@weasel-js/renderer';\nimport { viewToTransform, type View } from 'core/viewport/view';\nimport { worldToScreen } from 'core/viewport/viewTransform';\nimport type { ResolvedOverlay } from 'interactions/actions/resolveOverlays';\n\n/** Alpha for content previewed inside an in-flight gesture. Matches the\n * preview-ghost layer, so a dragged node and an uncommitted insert read as\n * equally provisional. */\nconst PREVIEW_CONTENT_OPACITY = 0.85;\n\n/** The overlay colors an insert preview is drawn in. */\nexport interface InsertPreviewStyle {\n fill: string;\n stroke: string;\n lineWidth: number;\n dash: number[];\n}\n\n/** An insert preview in screen space: its outline, under each copy it will be\n * drawn in, and the dot at the press. */\nexport function insertPreviewCommands(\n ov: Extract<ResolvedOverlay, { kind: 'insertPreview' }>,\n view: View,\n cfg: InsertPreviewStyle,\n): DrawCommand[] {\n const t = viewToTransform(view);\n const out: DrawCommand[] = [];\n const b = ov.bounds;\n const projectPoint = (wx: number, wy: number): { x: number; y: number } => {\n const [sx, sy] = worldToScreen(wx, wy, t);\n return { x: sx, y: sy };\n };\n const projectPoints = (\n pts: ReadonlyArray<{ x: number; y: number }>,\n ): { x: number; y: number }[] => pts.map((p) => projectPoint(p.x, p.y));\n // Radial shapes inscribe in a square, so a single screen-space\n // radius needs one scale factor; average the axes.\n const radialScale = (view.scale.x + view.scale.y) / 2;\n\n let pathCmd: PathDrawCommand['path'] | null = null;\n const geom = ov.geometry;\n switch (geom.kind) {\n case 'box': {\n const [sx, sy] = worldToScreen(b.x, b.y, t);\n const sw = b.width * view.scale.x;\n const sh = b.height * view.scale.y;\n if (ov.shape === 'image') {\n const e = ov.extras as Partial<{ src: string; preview: string }>;\n // The bitmap when it has decoded, the bare outline until then\n // (or when the tool opted out) — the outline is drawn either\n // way, so the drag always has an edge to read.\n const bmp = e.preview === 'outline' || !e.src\n ? undefined\n : getImageBitmap(e.src);\n if (bmp) {\n out.push({\n kind: 'image',\n image: bmp,\n x: sx, y: sy, w: sw, h: sh,\n opacity: PREVIEW_CONTENT_OPACITY,\n });\n }\n }\n pathCmd = ov.shape === 'ellipse'\n ? ellipsePath({ x: sx, y: sy, width: sw, height: sh })\n : rectPath(sx, sy, sw, sh);\n break;\n }\n case 'line':\n pathCmd = linePath(projectPoint(geom.a.x, geom.a.y), projectPoint(geom.b.x, geom.b.y));\n break;\n case 'polygon':\n pathCmd = regularPolygonPath(\n projectPoint(geom.center.x, geom.center.y),\n geom.radius * radialScale,\n geom.sides,\n geom.rotation,\n );\n break;\n case 'star':\n pathCmd = starPath(\n projectPoint(geom.center.x, geom.center.y),\n geom.outerRadius * radialScale,\n geom.points,\n geom.innerRadius * radialScale,\n geom.rotation,\n );\n break;\n case 'pencil':\n // Genuinely open: `polygonFromPoints` closes the path, and the\n // closing edge from the last sample back to the first reads as\n // a marquee rather than as the stroke being drawn.\n pathCmd = polylineFromPoints(projectPoints(geom.samples));\n break;\n }\n\n if (!pathCmd) return out;\n const cmd: PathDrawCommand = {\n kind: 'path',\n path: pathCmd,\n fill: ov.shape === 'line' || ov.shape === 'pencil' || ov.shape === 'image'\n ? undefined\n : { paint: { color: cfg.fill } },\n stroke: { paint: { color: cfg.stroke }, width: cfg.lineWidth, dash: cfg.dash },\n };\n out.push(cmd);\n // Each copy the shape will be drawn in, carried into screen space.\n if (ov.copies && ov.copies.length > 0) {\n const toScreen: Affine = [view.scale.x, 0, 0, view.scale.y, t.panX, t.panY];\n const toWorld = invert(toScreen);\n for (const m of ov.copies) {\n if (!toWorld) break;\n const s = multiply(toScreen, multiply(m, toWorld));\n out.push({ kind: 'group', transform: mat3.fromAffine(s), children: [cmd] });\n }\n }\n // Anchor dot at the drag's click point: for radial shapes no\n // vertex sits at the AABB corner, and in center mode the dot marks\n // the growth axis.\n if (ov.anchorPoint) {\n const anchorScreen = projectPoint(ov.anchorPoint.x, ov.anchorPoint.y);\n out.push({\n kind: 'path',\n path: ellipsePath({\n x: anchorScreen.x - 4,\n y: anchorScreen.y - 4,\n width: 8,\n height: 8,\n }),\n fill: { paint: { color: cfg.stroke } },\n });\n }\n return out;\n}\n"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { targetSizesPx } from "../../core/device/targets.js";
2
+ import { defaultDrawOne, defaultPaintBounds, paintBoundsFor } from "../defaultDrawOne.js";
3
+ import { isCustomEntry } from "../layerSlots.js";
4
+
5
+ //#region src/canvas/SceneCanvas/mergeLayers.ts
6
+ /** Deep-merge user-supplied `layers` with kit defaults. Slots the user
7
+ * doesn't mention get filled with defaults; slots explicitly set to
8
+ * `null` are dropped. Partial slot configs are shallow-spread on top of the
9
+ * default slot config. `targetScale` (from the {@link DeviceProfile}) and `baseSizes` go to `targetSizesPx`. */
10
+ function mergeLayersWithDefaults(user, targetScale = 1, baseSizes = {}) {
11
+ const defaults = {
12
+ scene: {
13
+ drawOne: defaultDrawOne,
14
+ paintBounds: defaultPaintBounds
15
+ },
16
+ selectionOverlay: { handles: { size: targetSizesPx(targetScale, baseSizes).handle } }
17
+ };
18
+ if (!user) return defaults;
19
+ const result = { ...user };
20
+ if (!("scene" in user)) result.scene = defaults.scene;
21
+ else if (user.scene === null || isCustomEntry(user.scene)) result.scene = user.scene;
22
+ else {
23
+ const scene = {
24
+ ...defaults.scene,
25
+ ...user.scene
26
+ };
27
+ result.scene = user.scene && "paintBounds" in user.scene ? scene : {
28
+ ...scene,
29
+ paintBounds: paintBoundsFor(scene.drawOne)
30
+ };
31
+ }
32
+ if (!("selectionOverlay" in user)) result.selectionOverlay = defaults.selectionOverlay;
33
+ else if (user.selectionOverlay === null || isCustomEntry(user.selectionOverlay)) result.selectionOverlay = user.selectionOverlay;
34
+ else result.selectionOverlay = {
35
+ ...defaults.selectionOverlay,
36
+ ...user.selectionOverlay
37
+ };
38
+ return result;
39
+ }
40
+
41
+ //#endregion
42
+ export { mergeLayersWithDefaults };
43
+ //# sourceMappingURL=mergeLayers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeLayers.js","names":[],"sources":["../../../src/canvas/SceneCanvas/mergeLayers.ts"],"sourcesContent":["import type { DrawCommand } from '@weasel-js/renderer';\nimport { targetSizesPx, type TargetSizesPx } from '../../core/device/targets';\nimport type { Node } from 'core/scene/types';\nimport { defaultDrawOne, defaultPaintBounds, paintBoundsFor } from '../defaultDrawOne';\nimport { isCustomEntry, type LayersMap } from '../layerSlots';\nimport type { SceneCanvasLayers } from './props';\n\n/** Deep-merge user-supplied `layers` with kit defaults. Slots the user\n * doesn't mention get filled with defaults; slots explicitly set to\n * `null` are dropped. Partial slot configs are shallow-spread on top of the\n * default slot config. `targetScale` (from the {@link DeviceProfile}) and `baseSizes` go to `targetSizesPx`. */\nexport function mergeLayersWithDefaults<TData, TLayer extends string, TPose>(\n user: SceneCanvasLayers<Node<TData, TLayer, TPose>, TPose> | undefined,\n targetScale = 1, baseSizes: Partial<TargetSizesPx> = {},\n): LayersMap<Node<TData, TLayer, TPose>, TPose> {\n const defaults = {\n scene: {\n drawOne: defaultDrawOne as (\n node: Node<TData, TLayer, TPose>,\n pose: TPose,\n ) => DrawCommand[],\n paintBounds: defaultPaintBounds<TData, TLayer, TPose>,\n },\n selectionOverlay: { handles: { size: targetSizesPx(targetScale, baseSizes).handle } },\n };\n\n if (!user) return defaults as LayersMap<Node<TData, TLayer, TPose>, TPose>;\n\n // Start from a shallow copy of the user map so unknown slots pass through.\n const result = { ...user } as LayersMap<Node<TData, TLayer, TPose>, TPose>;\n\n if (!('scene' in user)) {\n result.scene = defaults.scene;\n } else if (user.scene === null || isCustomEntry(user.scene)) {\n result.scene = user.scene;\n } else {\n const scene = { ...defaults.scene, ...user.scene };\n result.scene = user.scene && 'paintBounds' in user.scene\n ? scene\n : { ...scene, paintBounds: paintBoundsFor<TData, TLayer, TPose>(scene.drawOne) };\n }\n\n if (!('selectionOverlay' in user)) {\n result.selectionOverlay = defaults.selectionOverlay;\n } else if (user.selectionOverlay === null || isCustomEntry(user.selectionOverlay)) {\n result.selectionOverlay = user.selectionOverlay;\n } else {\n result.selectionOverlay = { ...defaults.selectionOverlay, ...user.selectionOverlay };\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;AAWA,SAAgB,wBACd,MACA,cAAc,GAAG,YAAoC,CAAC,GACR;CAC9C,MAAM,WAAW;EACf,OAAO;GACL,SAAS;GAIT,aAAa;EACf;EACA,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,aAAa,SAAS,CAAC,CAAC,OAAO,EAAE;CACtF;CAEA,IAAI,CAAC,MAAM,OAAO;CAGlB,MAAM,SAAS,EAAE,GAAG,KAAK;CAEzB,IAAI,EAAE,WAAW,OACf,OAAO,QAAQ,SAAS;MACnB,IAAI,KAAK,UAAU,QAAQ,cAAc,KAAK,KAAK,GACxD,OAAO,QAAQ,KAAK;MACf;EACL,MAAM,QAAQ;GAAE,GAAG,SAAS;GAAO,GAAG,KAAK;EAAM;EACjD,OAAO,QAAQ,KAAK,SAAS,iBAAiB,KAAK,QAC/C,QACA;GAAE,GAAG;GAAO,aAAa,eAAqC,MAAM,OAAO;EAAE;CACnF;CAEA,IAAI,EAAE,sBAAsB,OAC1B,OAAO,mBAAmB,SAAS;MAC9B,IAAI,KAAK,qBAAqB,QAAQ,cAAc,KAAK,gBAAgB,GAC9E,OAAO,mBAAmB,KAAK;MAE/B,OAAO,mBAAmB;EAAE,GAAG,SAAS;EAAkB,GAAG,KAAK;CAAiB;CAGrF,OAAO;AACT"}
@@ -0,0 +1,56 @@
1
+ import { arrangePreset } from "./presets/arrange.js";
2
+ import { editPreset } from "./presets/edit.js";
3
+ import { ingestPreset } from "./presets/ingest.js";
4
+ import { pathsPreset } from "./presets/paths.js";
5
+ import { selectPreset } from "./presets/select.js";
6
+ import { toolDrivenActions } from "./presets/toolDriven.js";
7
+ import { movePreset, outlinePreset, resizePreset, rotatePreset } from "./presets/transform.js";
8
+ import { viewPreset } from "./presets/view.js";
9
+
10
+ //#region src/canvas/SceneCanvas/namedPresets.ts
11
+ /** Each core preset by name. `draw` turns them on in this order. */
12
+ var FEATURE_PRESETS = {
13
+ view: viewPreset,
14
+ select: selectPreset,
15
+ outline: outlinePreset,
16
+ resize: resizePreset,
17
+ rotate: rotatePreset,
18
+ move: movePreset,
19
+ edit: editPreset,
20
+ arrange: arrangePreset,
21
+ paths: pathsPreset,
22
+ ingest: ingestPreset
23
+ };
24
+ var BASE_FEATURES = Object.keys(FEATURE_PRESETS);
25
+ /** The base presets each composite preset turns on. */
26
+ var COMPOSITE_FEATURES = {
27
+ pick: ["select", "outline"],
28
+ transform: ["resize", "rotate"],
29
+ draw: BASE_FEATURES
30
+ };
31
+ /** The names `<SceneCanvas>` resolves. */
32
+ var CORE_NAMED_PRESETS = {
33
+ base: FEATURE_PRESETS,
34
+ composite: COMPOSITE_FEATURES
35
+ };
36
+ /** The kit-standard action ids each preset registers. */
37
+ var FEATURE_ACTION_IDS = Object.fromEntries(BASE_FEATURES.map((f) => [f, (FEATURE_PRESETS[f].actions ?? []).map((a) => a.id)]));
38
+ /**
39
+ * Kit-standard actions no preset registers: they belong to the tools that bind
40
+ * them. A canvas registers each one whenever a tool it carries names it in a
41
+ * binding — `insert` with any shape tool, `enterTextEdit` with the text tool.
42
+ */
43
+ var TOOL_DRIVEN_ACTION_IDS = toolDrivenActions.map((a) => a.id);
44
+ /** Every kit-standard action: each core preset's, in table order, then the
45
+ * tool-driven ones. */
46
+ var KIT_STANDARD_ACTIONS = [...BASE_FEATURES.flatMap((f) => FEATURE_PRESETS[f].actions ?? []), ...toolDrivenActions];
47
+ /** What `<SceneCanvas>` resolves `features` through: every core name, and
48
+ * every kit-standard action for its tools to bring. */
49
+ var CORE_PRESET_SOURCE = {
50
+ named: CORE_NAMED_PRESETS,
51
+ pool: KIT_STANDARD_ACTIONS
52
+ };
53
+
54
+ //#endregion
55
+ export { COMPOSITE_FEATURES, CORE_NAMED_PRESETS, CORE_PRESET_SOURCE, FEATURE_ACTION_IDS, FEATURE_PRESETS, KIT_STANDARD_ACTIONS, TOOL_DRIVEN_ACTION_IDS };
56
+ //# sourceMappingURL=namedPresets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedPresets.js","names":[],"sources":["../../../src/canvas/SceneCanvas/namedPresets.ts"],"sourcesContent":["/**\n * Core's presets by name: what `features={['draw']}` resolves through.\n * Importing this module loads every core preset's actions; a canvas handed\n * only preset objects never reaches it.\n */\nimport type { Action } from '@weasel-js/routing';\nimport type { BaseFeature, CompositeFeature, FeaturePreset, NamedPresets, PresetSource } from './features';\nimport { arrangePreset } from './presets/arrange';\nimport { editPreset } from './presets/edit';\nimport { ingestPreset } from './presets/ingest';\nimport { pathsPreset } from './presets/paths';\nimport { selectPreset } from './presets/select';\nimport { toolDrivenActions } from './presets/toolDriven';\nimport { movePreset, outlinePreset, resizePreset, rotatePreset } from './presets/transform';\nimport { viewPreset } from './presets/view';\n\n/** Each core preset by name. `draw` turns them on in this order. */\nexport const FEATURE_PRESETS: Readonly<Record<BaseFeature, FeaturePreset>> = {\n view: viewPreset,\n select: selectPreset,\n outline: outlinePreset,\n resize: resizePreset,\n rotate: rotatePreset,\n move: movePreset,\n edit: editPreset,\n arrange: arrangePreset,\n paths: pathsPreset,\n ingest: ingestPreset,\n};\n\nconst BASE_FEATURES = Object.keys(FEATURE_PRESETS) as BaseFeature[];\n\n/** The base presets each composite preset turns on. */\nexport const COMPOSITE_FEATURES: Readonly<Record<CompositeFeature, readonly BaseFeature[]>> = {\n pick: ['select', 'outline'],\n transform: ['resize', 'rotate'],\n draw: BASE_FEATURES,\n};\n\n/** The names `<SceneCanvas>` resolves. */\nexport const CORE_NAMED_PRESETS: NamedPresets = { base: FEATURE_PRESETS, composite: COMPOSITE_FEATURES };\n\n/** The kit-standard action ids each preset registers. */\nexport const FEATURE_ACTION_IDS = Object.fromEntries(\n BASE_FEATURES.map((f): [BaseFeature, readonly string[]] => [f, (FEATURE_PRESETS[f].actions ?? []).map((a) => a.id)]),\n) as Readonly<Record<BaseFeature, readonly string[]>>;\n\n/**\n * Kit-standard actions no preset registers: they belong to the tools that bind\n * them. A canvas registers each one whenever a tool it carries names it in a\n * binding — `insert` with any shape tool, `enterTextEdit` with the text tool.\n */\nexport const TOOL_DRIVEN_ACTION_IDS: readonly string[] = toolDrivenActions.map((a) => a.id);\n\n/** Every kit-standard action: each core preset's, in table order, then the\n * tool-driven ones. */\nexport const KIT_STANDARD_ACTIONS: readonly Action[] = [\n ...BASE_FEATURES.flatMap((f) => FEATURE_PRESETS[f].actions ?? []),\n ...toolDrivenActions,\n];\n\n/** What `<SceneCanvas>` resolves `features` through: every core name, and\n * every kit-standard action for its tools to bring. */\nexport const CORE_PRESET_SOURCE: PresetSource = { named: CORE_NAMED_PRESETS, pool: KIT_STANDARD_ACTIONS };\n"],"mappings":";;;;;;;;;;;AAiBA,IAAa,kBAAgE;CAC3E,MAAM;CACN,QAAQ;CACR,SAAS;CACT,QAAQ;CACR,QAAQ;CACR,MAAM;CACN,MAAM;CACN,SAAS;CACT,OAAO;CACP,QAAQ;AACV;AAEA,IAAM,gBAAgB,OAAO,KAAK,eAAe;;AAGjD,IAAa,qBAAiF;CAC5F,MAAM,CAAC,UAAU,SAAS;CAC1B,WAAW,CAAC,UAAU,QAAQ;CAC9B,MAAM;AACR;;AAGA,IAAa,qBAAmC;CAAE,MAAM;CAAiB,WAAW;AAAmB;;AAGvG,IAAa,qBAAqB,OAAO,YACvC,cAAc,KAAK,MAAwC,CAAC,IAAI,gBAAgB,EAAE,CAAC,WAAW,CAAC,EAAA,CAAG,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC,CACrH;;;;;;AAOA,IAAa,yBAA4C,kBAAkB,KAAK,MAAM,EAAE,EAAE;;;AAI1F,IAAa,uBAA0C,CACrD,GAAG,cAAc,SAAS,MAAM,gBAAgB,EAAE,CAAC,WAAW,CAAC,CAAC,GAChE,GAAG,iBACL;;;AAIA,IAAa,qBAAmC;CAAE,OAAO;CAAoB,MAAM;AAAqB"}