@weasel-js/core 1.11.1 → 1.13.0-rc.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 (488) hide show
  1. package/CHANGELOG.md +275 -0
  2. package/dist/WeaselProvider.js +1 -1
  3. package/dist/affordances/pathAnchors.js +10 -6
  4. package/dist/affordances/pathAnchors.js.map +1 -1
  5. package/dist/animation/poseTarget.js +46 -15
  6. package/dist/animation/poseTarget.js.map +1 -1
  7. package/dist/animation/poseTransition.js +3 -3
  8. package/dist/animation/poseTransition.js.map +1 -1
  9. package/dist/animation/reflow.js +3 -6
  10. package/dist/animation/reflow.js.map +1 -1
  11. package/dist/animation/rig/bindRig.js +2 -2
  12. package/dist/animation/rig/bindRig.js.map +1 -1
  13. package/dist/animation/rig/skinBinding.js +2 -2
  14. package/dist/animation/rig/skinBinding.js.map +1 -1
  15. package/dist/barrel/canvas.js +5 -1
  16. package/dist/barrel/chrome.js +3 -1
  17. package/dist/barrel/paint.js +4 -4
  18. package/dist/barrel/paths.js +9 -4
  19. package/dist/barrel/renderer.js +3 -2
  20. package/dist/barrel/routing.js +4 -4
  21. package/dist/barrel/scene.js +7 -1
  22. package/dist/barrel/text.js +2 -2
  23. package/dist/barrel/viewport.js +6 -2
  24. package/dist/canvas/Canvas.js +2 -1
  25. package/dist/canvas/Canvas.js.map +1 -1
  26. package/dist/canvas/CanvasView.js +23 -34
  27. package/dist/canvas/CanvasView.js.map +1 -1
  28. package/dist/canvas/ModalityHud.js +1 -1
  29. package/dist/canvas/NodeShape.js +5 -1
  30. package/dist/canvas/NodeShape.js.map +1 -1
  31. package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js +1 -1
  32. package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js +1 -1
  33. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +1 -1
  34. package/dist/canvas/SceneCanvas/SceneCanvasInput.js +2 -0
  35. package/dist/canvas/SceneCanvas/SceneCanvasInput.js.map +1 -1
  36. package/dist/canvas/SceneCanvas/SurfaceDeclarations.js +23 -0
  37. package/dist/canvas/SceneCanvas/SurfaceDeclarations.js.map +1 -0
  38. package/dist/canvas/SceneCanvas/canvasPassThrough.js +2 -1
  39. package/dist/canvas/SceneCanvas/canvasPassThrough.js.map +1 -1
  40. package/dist/canvas/SceneCanvas/defaultNodeRouting.js +2 -2
  41. package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
  42. package/dist/canvas/SceneCanvas/props.js.map +1 -1
  43. package/dist/canvas/SceneCanvas/scenePointQuery.js +27 -5
  44. package/dist/canvas/SceneCanvas/scenePointQuery.js.map +1 -1
  45. package/dist/canvas/SceneCanvas/useActionTunings.js +6 -1
  46. package/dist/canvas/SceneCanvas/useActionTunings.js.map +1 -1
  47. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js +1 -0
  48. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js.map +1 -1
  49. package/dist/canvas/SceneCanvas/useCanvasTools.js +10 -2
  50. package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -1
  51. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +25 -19
  52. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
  53. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +9 -3
  54. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js.map +1 -1
  55. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +17 -2
  56. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -1
  57. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +2 -0
  58. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js.map +1 -1
  59. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +19 -4
  60. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js.map +1 -1
  61. package/dist/canvas/SceneCanvas/useScenePicking.js +31 -6
  62. package/dist/canvas/SceneCanvas/useScenePicking.js.map +1 -1
  63. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +4 -5
  64. package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
  65. package/dist/canvas/SceneCanvas/useSceneStandardActions.js +7 -4
  66. package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -1
  67. package/dist/canvas/SceneCanvas.js +30 -12
  68. package/dist/canvas/SceneCanvas.js.map +1 -1
  69. package/dist/canvas/ViewMarker.js +35 -0
  70. package/dist/canvas/ViewMarker.js.map +1 -0
  71. package/dist/canvas/accentColor.js +26 -3
  72. package/dist/canvas/accentColor.js.map +1 -1
  73. package/dist/canvas/buildSceneTree.js +14 -20
  74. package/dist/canvas/buildSceneTree.js.map +1 -1
  75. package/dist/canvas/copiesAbove.js +1 -1
  76. package/dist/canvas/copiesAbove.js.map +1 -1
  77. package/dist/canvas/defaultDrawOne.js +11 -6
  78. package/dist/canvas/defaultDrawOne.js.map +1 -1
  79. package/dist/canvas/deps/areaSelect.js +5 -2
  80. package/dist/canvas/deps/areaSelect.js.map +1 -1
  81. package/dist/canvas/deps/booleans.js +3 -2
  82. package/dist/canvas/deps/booleans.js.map +1 -1
  83. package/dist/canvas/deps/enteredGroup.js +81 -0
  84. package/dist/canvas/deps/enteredGroup.js.map +1 -0
  85. package/dist/canvas/deps/hitTestArea.js +28 -16
  86. package/dist/canvas/deps/hitTestArea.js.map +1 -1
  87. package/dist/canvas/deps/insert.js +10 -38
  88. package/dist/canvas/deps/insert.js.map +1 -1
  89. package/dist/canvas/deps/insertSite.js +39 -0
  90. package/dist/canvas/deps/insertSite.js.map +1 -0
  91. package/dist/canvas/deps/lassoSelect.js +6 -3
  92. package/dist/canvas/deps/lassoSelect.js.map +1 -1
  93. package/dist/canvas/deps/pathEditCommits.js +3 -7
  94. package/dist/canvas/deps/pathEditCommits.js.map +1 -1
  95. package/dist/canvas/deps/pathLeaf.js +1 -1
  96. package/dist/canvas/deps/pathLeaf.js.map +1 -1
  97. package/dist/canvas/deps/slice.js +2 -1
  98. package/dist/canvas/deps/slice.js.map +1 -1
  99. package/dist/canvas/derivedPath.js +14 -6
  100. package/dist/canvas/derivedPath.js.map +1 -1
  101. package/dist/canvas/doubleClickTarget.js +9 -11
  102. package/dist/canvas/doubleClickTarget.js.map +1 -1
  103. package/dist/canvas/drawnBounds.js +26 -9
  104. package/dist/canvas/drawnBounds.js.map +1 -1
  105. package/dist/canvas/inheritedPaints.js +55 -0
  106. package/dist/canvas/inheritedPaints.js.map +1 -0
  107. package/dist/canvas/nodeShapes/derivedPainter.js +15 -16
  108. package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -1
  109. package/dist/canvas/nodeShapes/nodePaint.js +7 -34
  110. package/dist/canvas/nodeShapes/nodePaint.js.map +1 -1
  111. package/dist/canvas/nodeShapes/pathPainter.js +7 -7
  112. package/dist/canvas/nodeShapes/pathPainter.js.map +1 -1
  113. package/dist/canvas/nodeShapes/rectFallbackPainter.js +4 -5
  114. package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -1
  115. package/dist/canvas/nodeShapes/shapePainter.js +9 -9
  116. package/dist/canvas/nodeShapes/shapePainter.js.map +1 -1
  117. package/dist/canvas/nodeShapes/textPainter.js +13 -12
  118. package/dist/canvas/nodeShapes/textPainter.js.map +1 -1
  119. package/dist/canvas/ownClip.js +24 -0
  120. package/dist/canvas/ownClip.js.map +1 -0
  121. package/dist/canvas/paintCull.js.map +1 -1
  122. package/dist/canvas/pickIndex/nodeBroadBox.js +86 -0
  123. package/dist/canvas/pickIndex/nodeBroadBox.js.map +1 -0
  124. package/dist/canvas/pickIndex/scenePickIndex.js +208 -0
  125. package/dist/canvas/pickIndex/scenePickIndex.js.map +1 -0
  126. package/dist/canvas/pickReach.js +3 -3
  127. package/dist/canvas/pickReach.js.map +1 -1
  128. package/dist/canvas/pickWalk.js +17 -91
  129. package/dist/canvas/pickWalk.js.map +1 -1
  130. package/dist/canvas/poseCascade.js +1 -1
  131. package/dist/canvas/poseCascade.js.map +1 -1
  132. package/dist/canvas/publishPreviews.js +97 -0
  133. package/dist/canvas/publishPreviews.js.map +1 -0
  134. package/dist/canvas/renderSceneToPixels.js +1 -1
  135. package/dist/canvas/renderSceneToPixels.js.map +1 -1
  136. package/dist/canvas/sceneAdapter.js +7 -5
  137. package/dist/canvas/sceneAdapter.js.map +1 -1
  138. package/dist/canvas/sceneClipboard.js +17 -10
  139. package/dist/canvas/sceneClipboard.js.map +1 -1
  140. package/dist/canvas/scenePickReads.js +37 -0
  141. package/dist/canvas/scenePickReads.js.map +1 -0
  142. package/dist/canvas/scenePickSource.js +74 -0
  143. package/dist/canvas/scenePickSource.js.map +1 -0
  144. package/dist/canvas/sceneSlotWiring.js +9 -3
  145. package/dist/canvas/sceneSlotWiring.js.map +1 -1
  146. package/dist/canvas/sceneViewRender.js +9 -4
  147. package/dist/canvas/sceneViewRender.js.map +1 -1
  148. package/dist/canvas/shownNodes.js +15 -0
  149. package/dist/canvas/shownNodes.js.map +1 -0
  150. package/dist/canvas/surfaceContribution.js +12 -8
  151. package/dist/canvas/surfaceContribution.js.map +1 -1
  152. package/dist/canvas/useCanvasView.js +4 -2
  153. package/dist/canvas/useCanvasView.js.map +1 -1
  154. package/dist/canvas/useLayerStack.js +6 -2
  155. package/dist/canvas/useLayerStack.js.map +1 -1
  156. package/dist/canvas/useSceneAdapter.js +5 -3
  157. package/dist/canvas/useSceneAdapter.js.map +1 -1
  158. package/dist/canvas/useViewAim.js +121 -0
  159. package/dist/canvas/useViewAim.js.map +1 -0
  160. package/dist/canvas/useViewNesting.js +3 -2
  161. package/dist/canvas/useViewNesting.js.map +1 -1
  162. package/dist/canvas/useViewRegistrySurface.js +4 -2
  163. package/dist/canvas/useViewRegistrySurface.js.map +1 -1
  164. package/dist/canvas/viewMarkers.js +63 -0
  165. package/dist/canvas/viewMarkers.js.map +1 -0
  166. package/dist/canvas/viewRegistry.js +27 -1
  167. package/dist/canvas/viewRegistry.js.map +1 -1
  168. package/dist/clipboard.d.ts +2 -2
  169. package/dist/{clone-C3e0OTuF.d.ts → clone-qb2e1F5p.d.ts} +2 -2
  170. package/dist/clone.d.ts +3 -3
  171. package/dist/core/isPlainObject.js +2 -2
  172. package/dist/core/layers/layerGroup.js.map +1 -1
  173. package/dist/core/pages/pageEdits.js +2 -3
  174. package/dist/core/pages/pageEdits.js.map +1 -1
  175. package/dist/core/paint/meshKindLazy.js +59 -2
  176. package/dist/core/paint/meshKindLazy.js.map +1 -1
  177. package/dist/core/scene/NodeRouting.js.map +1 -1
  178. package/dist/core/scene/arrivalWindow.js +1 -1
  179. package/dist/core/scene/arrivalWindow.js.map +1 -1
  180. package/dist/core/scene/clipNothing.js +10 -0
  181. package/dist/core/scene/clipNothing.js.map +1 -0
  182. package/dist/core/scene/declaredFieldSetters.js +44 -0
  183. package/dist/core/scene/declaredFieldSetters.js.map +1 -0
  184. package/dist/core/scene/depMemo.js +14 -3
  185. package/dist/core/scene/depMemo.js.map +1 -1
  186. package/dist/core/scene/dependents.js +9 -1
  187. package/dist/core/scene/dependents.js.map +1 -1
  188. package/dist/core/scene/derivedParts.js +10 -11
  189. package/dist/core/scene/derivedParts.js.map +1 -1
  190. package/dist/core/scene/documentOf.js +43 -0
  191. package/dist/core/scene/documentOf.js.map +1 -0
  192. package/dist/core/scene/effectivePose.js +44 -15
  193. package/dist/core/scene/effectivePose.js.map +1 -1
  194. package/dist/core/scene/fieldEdits.js +17 -14
  195. package/dist/core/scene/fieldEdits.js.map +1 -1
  196. package/dist/core/scene/fontReads.js +37 -0
  197. package/dist/core/scene/fontReads.js.map +1 -0
  198. package/dist/core/scene/historyForm.js +4 -4
  199. package/dist/core/scene/historyForm.js.map +1 -1
  200. package/dist/core/scene/inheritedPaint.js +97 -0
  201. package/dist/core/scene/inheritedPaint.js.map +1 -0
  202. package/dist/core/scene/kitOps.js +3 -23
  203. package/dist/core/scene/kitOps.js.map +1 -1
  204. package/dist/core/scene/kitRegistry.js +5 -0
  205. package/dist/core/scene/kitRegistry.js.map +1 -1
  206. package/dist/core/scene/layoutPass.js +1 -2
  207. package/dist/core/scene/layoutPass.js.map +1 -1
  208. package/dist/core/scene/nodeAsShown.js +72 -0
  209. package/dist/core/scene/nodeAsShown.js.map +1 -0
  210. package/dist/core/scene/nodeFnFields.js +2 -10
  211. package/dist/core/scene/nodeFnFields.js.map +1 -1
  212. package/dist/core/scene/nodeMemo.js +21 -8
  213. package/dist/core/scene/nodeMemo.js.map +1 -1
  214. package/dist/core/scene/nodeStore.js +2 -4
  215. package/dist/core/scene/nodeStore.js.map +1 -1
  216. package/dist/core/scene/pathEffects/blend.js.map +1 -1
  217. package/dist/core/scene/pathEffects/derive.js +10 -4
  218. package/dist/core/scene/pathEffects/derive.js.map +1 -1
  219. package/dist/core/scene/pathEffects/effects.js +3 -1
  220. package/dist/core/scene/pathEffects/effects.js.map +1 -1
  221. package/dist/core/scene/pathEffects/foundHidden.js +35 -0
  222. package/dist/core/scene/pathEffects/foundHidden.js.map +1 -0
  223. package/dist/core/scene/pathEffects/textAlong.js +95 -0
  224. package/dist/core/scene/pathEffects/textAlong.js.map +1 -0
  225. package/dist/core/scene/plyStacks.js +89 -0
  226. package/dist/core/scene/plyStacks.js.map +1 -0
  227. package/dist/core/scene/poseHold.js +42 -24
  228. package/dist/core/scene/poseHold.js.map +1 -1
  229. package/dist/core/scene/poseOverrides.js +35 -38
  230. package/dist/core/scene/poseOverrides.js.map +1 -1
  231. package/dist/core/scene/posePlies.js +59 -0
  232. package/dist/core/scene/posePlies.js.map +1 -0
  233. package/dist/core/scene/reconcileSpecs.js +6 -15
  234. package/dist/core/scene/reconcileSpecs.js.map +1 -1
  235. package/dist/core/scene/renderOrder.js +10 -4
  236. package/dist/core/scene/renderOrder.js.map +1 -1
  237. package/dist/core/scene/sameValue.js +17 -0
  238. package/dist/core/scene/sameValue.js.map +1 -0
  239. package/dist/core/scene/scene.js +3 -3
  240. package/dist/core/scene/scene.js.map +1 -1
  241. package/dist/core/scene/sceneEdits.js +8 -0
  242. package/dist/core/scene/sceneEdits.js.map +1 -1
  243. package/dist/core/scene/sceneState.js +1 -2
  244. package/dist/core/scene/sceneState.js.map +1 -1
  245. package/dist/core/scene/serialization.js +45 -9
  246. package/dist/core/scene/serialization.js.map +1 -1
  247. package/dist/core/scene/staleReplay.js +5 -2
  248. package/dist/core/scene/staleReplay.js.map +1 -1
  249. package/dist/core/scene/statedFields.js +4 -2
  250. package/dist/core/scene/statedFields.js.map +1 -1
  251. package/dist/core/scene/treeEdits.js +2 -4
  252. package/dist/core/scene/treeEdits.js.map +1 -1
  253. package/dist/core/scene/treeOrder.js +3 -1
  254. package/dist/core/scene/treeOrder.js.map +1 -1
  255. package/dist/core/scene/treeReads.js +1 -2
  256. package/dist/core/scene/treeReads.js.map +1 -1
  257. package/dist/core/scene/treeShape.js +13 -0
  258. package/dist/core/scene/treeShape.js.map +1 -0
  259. package/dist/core/scene/types.js.map +1 -1
  260. package/dist/core/scene/useScene.js +1 -1
  261. package/dist/core/scene/useScene.js.map +1 -1
  262. package/dist/{cornerHandles-BHuoMs1o.d.ts → cornerHandles-CNCb7aTY.d.ts} +3 -2
  263. package/dist/{depSchema-BpZNOv7q.d.ts → depSchema-B1RS-IJx.d.ts} +39 -18
  264. package/dist/devtools/handlers.js +1 -1
  265. package/dist/devtools/handlers.js.map +1 -1
  266. package/dist/devtools/protocol.js.map +1 -1
  267. package/dist/devtools/registry.js +4 -4
  268. package/dist/devtools/registry.js.map +1 -1
  269. package/dist/devtools-protocol.d.ts +4 -3
  270. package/dist/devtools.d.ts +3 -2
  271. package/dist/features/measure/measureContribution.js +4 -2
  272. package/dist/features/measure/measureContribution.js.map +1 -1
  273. package/dist/features/measure/measureHit.js +5 -3
  274. package/dist/features/measure/measureHit.js.map +1 -1
  275. package/dist/features/measure/measurement.js +1 -1
  276. package/dist/features/measure/measurement.js.map +1 -1
  277. package/dist/features/modes/modeLayers.js +14 -7
  278. package/dist/features/modes/modeLayers.js.map +1 -1
  279. package/dist/features/modes/modeTriggers.js +10 -6
  280. package/dist/features/modes/modeTriggers.js.map +1 -1
  281. package/dist/features/pathEffects/effectSources.js +69 -0
  282. package/dist/features/pathEffects/effectSources.js.map +1 -0
  283. package/dist/features/pathEffects/readSource.js +18 -2
  284. package/dist/features/pathEffects/readSource.js.map +1 -1
  285. package/dist/features/pathEffects/textItems.js +53 -0
  286. package/dist/features/pathEffects/textItems.js.map +1 -0
  287. package/dist/features/pathEffects/useEffectSourcesLayer.js +53 -0
  288. package/dist/features/pathEffects/useEffectSourcesLayer.js.map +1 -0
  289. package/dist/features/paths/editablePath.js +1 -1
  290. package/dist/features/paths/editablePath.js.map +1 -1
  291. package/dist/features/paths/pathEditState.js +5 -2
  292. package/dist/features/paths/pathEditState.js.map +1 -1
  293. package/dist/features/paths/pathSnap/sceneIndex.js +1 -1
  294. package/dist/features/paths/pathSnap/sceneIndex.js.map +1 -1
  295. package/dist/features/selection/enteredGroupFrame.js +65 -0
  296. package/dist/features/selection/enteredGroupFrame.js.map +1 -0
  297. package/dist/features/selection/enteredGroupScope.js +44 -0
  298. package/dist/features/selection/enteredGroupScope.js.map +1 -0
  299. package/dist/features/text/sceneTextDrafts.js +64 -0
  300. package/dist/features/text/sceneTextDrafts.js.map +1 -0
  301. package/dist/features/text/textHitAt.js +34 -3
  302. package/dist/features/text/textHitAt.js.map +1 -1
  303. package/dist/features/text/useSceneTextEdit.js +23 -19
  304. package/dist/features/text/useSceneTextEdit.js.map +1 -1
  305. package/dist/features/viewports/aim.js +105 -0
  306. package/dist/features/viewports/aim.js.map +1 -0
  307. package/dist/features/viewports/viewMarker.js +82 -0
  308. package/dist/features/viewports/viewMarker.js.map +1 -0
  309. package/dist/features/viewports/viewMarkerDrag.js +55 -0
  310. package/dist/features/viewports/viewMarkerDrag.js.map +1 -0
  311. package/dist/index.d.ts +709 -258
  312. package/dist/index.js +33 -12
  313. package/dist/interactions/actions/admitsChild.js +11 -0
  314. package/dist/interactions/actions/admitsChild.js.map +1 -0
  315. package/dist/interactions/actions/booleans/booleans.js +2 -1
  316. package/dist/interactions/actions/booleans/booleans.js.map +1 -1
  317. package/dist/interactions/actions/booleans/operands.js +6 -5
  318. package/dist/interactions/actions/booleans/operands.js.map +1 -1
  319. package/dist/interactions/actions/clipboard/action.js +27 -17
  320. package/dist/interactions/actions/clipboard/action.js.map +1 -1
  321. package/dist/interactions/actions/defaults/anchorEditing.js +44 -23
  322. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  323. package/dist/interactions/actions/defaults/anchorJoin.js +12 -6
  324. package/dist/interactions/actions/defaults/anchorJoin.js.map +1 -1
  325. package/dist/interactions/actions/defaults/bendSegment.js +7 -4
  326. package/dist/interactions/actions/defaults/bendSegment.js.map +1 -1
  327. package/dist/interactions/actions/defaults/cancelGesture.js +11 -8
  328. package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
  329. package/dist/interactions/actions/defaults/contextMenu.js +33 -11
  330. package/dist/interactions/actions/defaults/contextMenu.js.map +1 -1
  331. package/dist/interactions/actions/defaults/createPaintAction.js +5 -2
  332. package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
  333. package/dist/interactions/actions/defaults/delete.js +28 -14
  334. package/dist/interactions/actions/defaults/delete.js.map +1 -1
  335. package/dist/interactions/actions/defaults/duplicate.js +11 -8
  336. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  337. package/dist/interactions/actions/defaults/enterGroup.js +88 -0
  338. package/dist/interactions/actions/defaults/enterGroup.js.map +1 -0
  339. package/dist/interactions/actions/defaults/enterPathEdit.js +20 -10
  340. package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
  341. package/dist/interactions/actions/defaults/enterTextEdit.js +1 -1
  342. package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
  343. package/dist/interactions/actions/defaults/escape.js +11 -8
  344. package/dist/interactions/actions/defaults/escape.js.map +1 -1
  345. package/dist/interactions/actions/defaults/exitPathEdit.js +7 -4
  346. package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
  347. package/dist/interactions/actions/defaults/group.js +26 -20
  348. package/dist/interactions/actions/defaults/group.js.map +1 -1
  349. package/dist/interactions/actions/defaults/ingest.js +10 -4
  350. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  351. package/dist/interactions/actions/defaults/insertPathAnchor.js +7 -4
  352. package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
  353. package/dist/interactions/actions/defaults/nudge.js +8 -2
  354. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  355. package/dist/interactions/actions/defaults/pathEditTools.js +11 -8
  356. package/dist/interactions/actions/defaults/pathEditTools.js.map +1 -1
  357. package/dist/interactions/actions/defaults/pinchZoom.js +7 -4
  358. package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
  359. package/dist/interactions/actions/defaults/reorder.js +24 -6
  360. package/dist/interactions/actions/defaults/reorder.js.map +1 -1
  361. package/dist/interactions/actions/defaults/selectAll.js +15 -8
  362. package/dist/interactions/actions/defaults/selectAll.js.map +1 -1
  363. package/dist/interactions/actions/defaults/selectDeep.js +35 -0
  364. package/dist/interactions/actions/defaults/selectDeep.js.map +1 -0
  365. package/dist/interactions/actions/defaults/setFill.js +7 -3
  366. package/dist/interactions/actions/defaults/setFill.js.map +1 -1
  367. package/dist/interactions/actions/defaults/setFillOpacity.js +1 -1
  368. package/dist/interactions/actions/defaults/setStroke.js +12 -11
  369. package/dist/interactions/actions/defaults/setStroke.js.map +1 -1
  370. package/dist/interactions/actions/defaults/setStrokeOpacity.js +1 -1
  371. package/dist/interactions/actions/defaults/toolActivate.js +7 -1
  372. package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
  373. package/dist/interactions/actions/defaults/toolResetToDefault.js +7 -4
  374. package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
  375. package/dist/interactions/actions/defaults/undoRedo.js +19 -13
  376. package/dist/interactions/actions/defaults/undoRedo.js.map +1 -1
  377. package/dist/interactions/actions/defaults/viewportWheelPan.js +16 -7
  378. package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
  379. package/dist/interactions/actions/defaults/viewportZoom.js +24 -6
  380. package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
  381. package/dist/interactions/actions/drawnBoxes.js +2 -1
  382. package/dist/interactions/actions/drawnBoxes.js.map +1 -1
  383. package/dist/interactions/actions/edit-anchors/action.js +7 -4
  384. package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
  385. package/dist/interactions/actions/flip/action.js +8 -2
  386. package/dist/interactions/actions/flip/action.js.map +1 -1
  387. package/dist/interactions/actions/insert/action.js +1 -0
  388. package/dist/interactions/actions/insert/action.js.map +1 -1
  389. package/dist/interactions/actions/insert/parent.js +7 -5
  390. package/dist/interactions/actions/insert/parent.js.map +1 -1
  391. package/dist/interactions/actions/insert/placeAction.js +3 -2
  392. package/dist/interactions/actions/insert/placeAction.js.map +1 -1
  393. package/dist/interactions/actions/insert/repositionAction.js +2 -1
  394. package/dist/interactions/actions/insert/repositionAction.js.map +1 -1
  395. package/dist/interactions/actions/insert/session.js +2 -2
  396. package/dist/interactions/actions/insert/session.js.map +1 -1
  397. package/dist/interactions/actions/move/action.js +7 -4
  398. package/dist/interactions/actions/move/action.js.map +1 -1
  399. package/dist/interactions/actions/move/commit/reparent.js +1 -1
  400. package/dist/interactions/actions/move/commit/reparent.js.map +1 -1
  401. package/dist/interactions/actions/move/gestureAdapter.js +6 -7
  402. package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
  403. package/dist/interactions/actions/move/layout/exits.js +1 -1
  404. package/dist/interactions/actions/move/layout/exits.js.map +1 -1
  405. package/dist/interactions/actions/move/session.js +4 -4
  406. package/dist/interactions/actions/move/session.js.map +1 -1
  407. package/dist/interactions/actions/outlines/createOutlinesAction.js +8 -5
  408. package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -1
  409. package/dist/interactions/actions/outlines/outlineStroke.js +5 -3
  410. package/dist/interactions/actions/outlines/outlineStroke.js.map +1 -1
  411. package/dist/interactions/actions/pathCommands/cutJoin.js +8 -5
  412. package/dist/interactions/actions/pathCommands/cutJoin.js.map +1 -1
  413. package/dist/interactions/actions/pathCommands/pathNodes.js +14 -5
  414. package/dist/interactions/actions/pathCommands/pathNodes.js.map +1 -1
  415. package/dist/interactions/actions/resize/cornerHandles.js +2 -1
  416. package/dist/interactions/actions/resize/cornerHandles.js.map +1 -1
  417. package/dist/interactions/actions/selectionSubtree.js +12 -7
  418. package/dist/interactions/actions/selectionSubtree.js.map +1 -1
  419. package/dist/interactions/actions/transform-again/action.js +8 -5
  420. package/dist/interactions/actions/transform-again/action.js.map +1 -1
  421. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +14 -2
  422. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js.map +1 -1
  423. package/dist/json.d.ts +4 -0
  424. package/dist/json.js +3 -0
  425. package/dist/kitSettingsSchema.js +8 -1
  426. package/dist/kitSettingsSchema.js.map +1 -1
  427. package/dist/{math-CrJULaZI.d.ts → math-C_elShP_.d.ts} +7 -1
  428. package/dist/math.d.ts +1 -1
  429. package/dist/math.js +2 -1
  430. package/dist/move.d.ts +4 -4
  431. package/dist/{options-DBxEryYq.d.ts → options-ClEm3SEl.d.ts} +1 -1
  432. package/dist/resize.d.ts +4 -4
  433. package/dist/test-seams.d.ts +6 -6
  434. package/dist/tools/builtin/ellipse/useEllipseTool.js +1 -0
  435. package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
  436. package/dist/tools/builtin/eyedropper/useEyedropperTool.js +2 -1
  437. package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
  438. package/dist/tools/builtin/hand/dragPanContribution.js +4 -1
  439. package/dist/tools/builtin/hand/dragPanContribution.js.map +1 -1
  440. package/dist/tools/builtin/hand/useHandTool.js +7 -4
  441. package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
  442. package/dist/tools/builtin/image/useImageTool.js +1 -0
  443. package/dist/tools/builtin/image/useImageTool.js.map +1 -1
  444. package/dist/tools/builtin/lasso/useLassoTool.js +1 -0
  445. package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
  446. package/dist/tools/builtin/line/useLineTool.js +1 -0
  447. package/dist/tools/builtin/line/useLineTool.js.map +1 -1
  448. package/dist/tools/builtin/measure/useMeasureTool.js +12 -5
  449. package/dist/tools/builtin/measure/useMeasureTool.js.map +1 -1
  450. package/dist/tools/builtin/pen/usePenTool.js +14 -6
  451. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  452. package/dist/tools/builtin/pencil/usePencilTool.js +1 -0
  453. package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
  454. package/dist/tools/builtin/polygon/usePolygonTool.js +13 -4
  455. package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
  456. package/dist/tools/builtin/pressTarget.js +22 -0
  457. package/dist/tools/builtin/pressTarget.js.map +1 -0
  458. package/dist/tools/builtin/rect/useRectTool.js +1 -0
  459. package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
  460. package/dist/tools/builtin/select/adapterPointQuery.js +6 -5
  461. package/dist/tools/builtin/select/adapterPointQuery.js.map +1 -1
  462. package/dist/tools/builtin/select/collapseDeferred.js +40 -0
  463. package/dist/tools/builtin/select/collapseDeferred.js.map +1 -0
  464. package/dist/tools/builtin/select/groupEntry.js +82 -0
  465. package/dist/tools/builtin/select/groupEntry.js.map +1 -0
  466. package/dist/tools/builtin/select/pressDecision.js +32 -0
  467. package/dist/tools/builtin/select/pressDecision.js.map +1 -0
  468. package/dist/tools/builtin/select/selectionContributions.js +22 -13
  469. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  470. package/dist/tools/builtin/select/useSelectTool.js +74 -55
  471. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  472. package/dist/tools/builtin/slice/useSliceTool.js +22 -8
  473. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  474. package/dist/tools/builtin/star/useStarTool.js +13 -4
  475. package/dist/tools/builtin/star/useStarTool.js.map +1 -1
  476. package/dist/tools/builtin/sticky/stickyNode.js +4 -1
  477. package/dist/tools/builtin/sticky/stickyNode.js.map +1 -1
  478. package/dist/tools/builtin/sticky/useStickyTool.js +10 -5
  479. package/dist/tools/builtin/sticky/useStickyTool.js.map +1 -1
  480. package/dist/tools/builtin/text/useTextTool.js +3 -1
  481. package/dist/tools/builtin/text/useTextTool.js.map +1 -1
  482. package/dist/{types-7puAuVD2.d.ts → types-49uYJN3j.d.ts} +1 -1
  483. package/dist/{types-CniVctmk.d.ts → types-BEdRIhNc.d.ts} +272 -109
  484. package/dist/{types-oFeQ5VjV.d.ts → types-p2alu-R1.d.ts} +1 -1
  485. package/dist/util/paint.js +1 -3
  486. package/dist/util/paint.js.map +1 -1
  487. package/dist/version.js +1 -1
  488. package/package.json +29 -25
package/dist/index.d.ts CHANGED
@@ -1,19 +1,20 @@
1
- import { D as Dims, R as RenderLayer, L as LayerHit, V as ViewAnimationOptions, a as PathEditExtension, h as ViewportDims, F as FitViewToBoundsOptions, i as RedrawSource, j as EditAnchorsParams, I as InertiaConfig, E as EditAnchorsDep, G as GestureLifecycleOptions, k as SliceDep, l as StickyStyle, C as ContentHandlerEntry, A as AnchorMarkerShape, P as PathEditMark, m as ChromeState, n as LayerGroup, S as SnapSource, T as TransformFollower, o as GeometryProjection, p as InsertNodeFactory, q as InsertPaint, r as SvgIngestOptions, s as SceneCanvasSnap, t as Affordance, u as AffordanceRegion, v as AffordanceBinding, w as CommonAffordanceScratch, x as TextOverflow, y as CreateOutlinesAdapter, z as PaintKindEntry, B as PathEditTarget, J as FinishedEditFrame, K as PathSymmetryDep, H as HandleLocks, M as BooleanOpOptions, N as BooleansAdapter, O as BooleanOp, Q as PathPaint, U as BooleanOpResult, W as BooleanStrokes, X as SnapMods, Y as SourceCandidate, Z as SnapProbeAt, $ as SnapCollect, a0 as SnapMark, b as SnapGesture, a1 as SnapDep, a2 as SnapOutcome, f as SnapOutcomeStore, a3 as SnapReadoutStyle } from './depSchema-BpZNOv7q.js';
2
- export { a4 as AngleCandidate, a5 as AngleCollect, a6 as AnimateToBoundsOptions, a7 as AreaSelectDep, a8 as BooleanOpPreview, a9 as BooleanPreviewPiece, aa as CanDropIntoDep, ab as ClipboardDep, ac as ClipboardIngestCtx, ad as CreateOutlinesResult, ae as CustomPaintContext, af as DEFAULT_LAYER_RETAIN, ag as DecayLoopConfig, ah as FinishedPathEdit, ai as GEOMETRY_BOUND_DATA, aj as HandleLock, ak as HitTestView, al as IngestCtx, am as IngestionDep, an as InsertDep, ao as InsertEnds, ap as InsertExtras, aq as InsertIntoDep, ar as InsertLive, as as LassoSelectDep, at as LayerCommandCache, au as LayerDrawFailure, av as LayerDrawSpan, aw as LayerRetainPolicy, ax as LayoutDep, ay as Locus, az as MinSize, aA as NodeAtPointDep, aB as OutlinePathSpec, aC as PATH_OVERLAY_ROLES, aD as PaintKind, aE as PaintKindEditorProps, aF as PaintKindFamily, aG as PaintKindLoader, aH as PanBounds, aI as PathEditDrag, aJ as PathEditDragStart, aK as PathEditFinishCtx, aL as PathEditHandleMove, aM as PathEditMarksCtx, aN as PathEditOther, aO as PathEditPart, aP as PathEditStore, aQ as PathForm, aR as PathOverlay, aS as PathOverlayOptions, aT as PathOverlayStyle, aU as PathRepresentation, aV as PathTransformFinishCtx, aW as PreviewPathsDep, aX as ResizePolicy, aY as STICKY_DEFAULTS, aZ as SnapBegin, c as SnapConstrain, a_ as SnapEdge, a$ as SnapEdges, e as SnapGeometry, b0 as SnapMarks, b1 as SnapReadoutDep, d as SnapResizeBox, g as SnapSession, b2 as SvgUnpacker, b3 as TextEditDep, b4 as TextNodeData, b5 as TransformPreviewNode, b6 as TransientPath, b7 as VIEW_ANIMATION_KEY, b8 as ViewAnimationApi, b9 as ViewApi, ba as ViewChannel, bb as applyBooleanOp, bc as applyCreateOutlines, bd as asPaint, be as createPathOverlay, bf as createSnapOutcomeStore, bg as depsUnchanged, bh as drawLayers, bi as drawOneLayer, bj as fitViewToBounds, bk as getPaintKind, bl as isLayerPainted, bm as isLayerVisible, bn as listGradientKinds, bo as listPaintKinds, bp as minSizeOf, bq as paintKindOf, br as paintKindRegistry, bs as paintedLayers, bt as paintsLayer, bu as paletteInsertPaint, bv as pathPaintOf, bw as patternFamily, bx as previewBooleanOp, by as registerContentHandler, bz as registerPaintKind, bA as registerPaintKindLoader, bB as seedTile, bC as stickyData, bD as stickyNodeFactory, bE as subscribeToSources, bF as switchGradientKind, bG as textBoxOf, bH as useDecayLoop, bI as useViewAnimation, bJ as useViewAnimationOn, bK as viewAxes, bL as withoutGeometryBoundData } from './depSchema-BpZNOv7q.js';
3
- import { View, Scale2, Path, FramedBox, PolygonPath, Point as Point$3, AnchorField, AnchorSet, GlMat3, PlacementAlign, Rect, Affine, PathSnapKind, PathInWorldPose, AnchorFieldValues, NumberEntry, JoinOptions, SegmentHit, PointOrigin, AnchorSymmetry, BlendPathsOptions, BendAlongPathOptions, RepeatAlongPathOptions, PoseLinear } from '@weasel-js/geom';
1
+ import { D as Dims, R as RenderLayer, L as LayerHit, V as ViewAnimationOptions, a as PathEditExtension, h as ViewportDims, F as FitViewToBoundsOptions, i as RedrawSource, j as EditAnchorsParams, I as InertiaConfig, E as EditAnchorsDep, G as GestureLifecycleOptions, k as SliceDep, l as StickyStyle, m as EnteredGroupApi, C as ContentHandlerEntry, A as AnchorMarkerShape, P as PathEditMark, n as ChromeState, o as LayerGroup, S as SnapSource, T as TransformFollower, p as GeometryProjection, q as InsertNodeFactory, r as InsertPaint, s as SvgIngestOptions, t as SceneCanvasSnap, u as Affordance, v as AffordanceRegion, w as AffordanceBinding, x as CommonAffordanceScratch, y as TextOverflow, z as CreateOutlinesAdapter, B as PaintKindEntry, J as PathEditTarget, K as FinishedEditFrame, M as PathSymmetryDep, H as HandleLocks, N as BooleanOpOptions, O as BooleansAdapter, Q as BooleanOp, U as PathPaint, W as BooleanOpResult, X as BooleanStrokes, Y as SnapMods, Z as SourceCandidate, $ as SnapProbeAt, a0 as SnapCollect, a1 as SnapMark, b as SnapGesture, a2 as SnapDep, a3 as SnapOutcome, f as SnapOutcomeStore, a4 as SnapReadoutStyle } from './depSchema-B1RS-IJx.js';
2
+ export { a5 as AngleCandidate, a6 as AngleCollect, a7 as AnimateToBoundsOptions, a8 as AreaSelectDep, a9 as BooleanOpPreview, aa as BooleanPreviewPiece, ab as CanDropIntoDep, ac as ClipboardDep, ad as ClipboardIngestCtx, ae as CreateOutlinesResult, af as CustomPaintContext, ag as DEFAULT_LAYER_RETAIN, ah as DecayLoopConfig, ai as FinishedPathEdit, aj as GEOMETRY_BOUND_DATA, ak as HandleLock, al as HitTestView, am as IngestCtx, an as IngestionDep, ao as InsertDep, ap as InsertEnds, aq as InsertExtras, ar as InsertIntoDep, as as InsertLive, at as LassoSelectDep, au as LayerCommandCache, av as LayerDrawFailure, aw as LayerDrawSpan, ax as LayerRetainPolicy, ay as LayoutDep, az as Locus, aA as MinSize, aB as NodeAtPointDep, aC as OutlinePathSpec, aD as PATH_OVERLAY_ROLES, aE as PaintKind, aF as PaintKindEditorProps, aG as PaintKindFamily, aH as PaintKindLoader, aI as PanBounds, aJ as PathEditDrag, aK as PathEditDragStart, aL as PathEditFinishCtx, aM as PathEditHandleMove, aN as PathEditMarksCtx, aO as PathEditOther, aP as PathEditPart, aQ as PathEditStore, aR as PathForm, aS as PathOverlay, aT as PathOverlayOptions, aU as PathOverlayStyle, aV as PathRepresentation, aW as PathTransformFinishCtx, aX as PreviewPathsDep, aY as ResizePolicy, aZ as STICKY_DEFAULTS, a_ as SnapBegin, c as SnapConstrain, a$ as SnapEdge, b0 as SnapEdges, e as SnapGeometry, b1 as SnapMarks, b2 as SnapReadoutDep, d as SnapResizeBox, g as SnapSession, b3 as SvgUnpacker, b4 as TextEditDep, b5 as TextNodeData, b6 as TransformPreviewNode, b7 as TransientPath, b8 as VIEW_ANIMATION_KEY, b9 as ViewAnimationApi, ba as ViewApi, bb as ViewChannel, bc as applyBooleanOp, bd as applyCreateOutlines, be as asPaint, bf as createEnteredGroup, bg as createPathOverlay, bh as createSnapOutcomeStore, bi as depsUnchanged, bj as drawLayers, bk as drawOneLayer, bl as fitViewToBounds, bm as getPaintKind, bn as isLayerPainted, bo as isLayerVisible, bp as listGradientKinds, bq as listPaintKinds, br as minSizeOf, bs as paintKindOf, bt as paintKindRegistry, bu as paintedLayers, bv as paintsLayer, bw as paletteInsertPaint, bx as pathPaintOf, by as patternFamily, bz as previewBooleanOp, bA as registerContentHandler, bB as registerPaintKind, bC as registerPaintKindLoader, bD as seedTile, bE as stickyData, bF as stickyNodeFactory, bG as subscribeToSources, bH as switchGradientKind, bI as textBoxOf, bJ as useDecayLoop, bK as useEnteredGroup, bL as useViewAnimation, bM as useViewAnimationOn, bN as viewAxes, bO as withoutGeometryBoundData } from './depSchema-B1RS-IJx.js';
3
+ import { View, Scale2, Path, FramedBox, PolygonPath, GlMat3, Point as Point$3, AnchorField, AnchorSet, PlacementAlign, Rect, Affine, PathSnapKind, PathInWorldPose, AnchorFieldValues, NumberEntry, JoinOptions, SegmentHit, PointOrigin, AnchorSymmetry, BlendPathsOptions, RunAlign, TrackSide, BendAlongPathOptions, RepeatAlongPathOptions, PoseLinear } from '@weasel-js/geom';
4
4
  export { AnchorField, AnchorFieldValues, AnchorPair, AverageAxis, BendAlongPathOptions, BezierEasing, BlendPathsOptions, FramedBox as Bounds, CONSTRAINT_TOLERANCE, CORNER_FIT_TOLERANCE, CORNER_KEYWORDS, ConstrainedPathEdit, ConstraintPoint, CornerFrame, CornerKeyword, CornerPiece, CornerShape, CornerShapeFrame, CornerSpec, DEFAULT_FLATTEN_TOLERANCE, EASINGS, EasingFn, EasingName, EasingSpec, ExtendToMeetOptions, JoinOptions, MeasurePathOptions, NumberEntry, OpenPathEnd, PATH_C, PATH_CMD_LENGTHS, PATH_L, PATH_M, PATH_Q, PATH_SNAP_KINDS, PATH_Z, Path, PathBlend, PathBuilder, PathConstraint, PathConstraintKind, PathCrossing, PathFillRule, PathInWorldPose, PathMeasure, PathSegment, PathSnapHit, PathSnapIndex, PathSnapKind, PathSnapQuery, PathStation, PathStop, PenAnchor, PointAlongPathOptions, PointInPathOptions, PolygonPath, PoseLinear, PoseRotation, Rect, RectPath, RepeatAlongPathOptions, RepeatStation, ResolvedCorners, SPRING_PRESETS, Scale2, SegmentCrossing, SimplifyPathOptions, SmudgePathOptions, SolveConstraintsOptions, SolveConstraintsResult, SpringPreset, SpringPresetName, TrimPathOptions, TrimResult, Point as Vec2, View, ZOOM_FLOOR, asPolygonPath, averageAnchorsAt, bendAlongPath, blendPaths, boundsOfPath, circlePath, composePath, constrainPathEdit, constraintAnchors, cornerAt, cornerFrameAt, cornerFrames, cornerKeywordOf, cornerShapeK, cornerShapePieces, cornerSpecAt, countPathAnchors, createPathSnapIndex, cubicBezierEasing, decomposePath, easeIn, easeInBack, easeInBounce, easeInCirc, easeInCubic, easeInElastic, easeInExpo, easeInOut, easeInOutBack, easeInOutBounce, easeInOutCirc, easeInOutCubic, easeInOutElastic, easeInOutExpo, easeInOutQuad, easeInOutQuart, easeInOutQuint, easeInOutSine, easeInQuad, easeInQuart, easeInQuint, easeInSine, easeOut, easeOutBack, easeOutBounce, easeOutCirc, easeOutCubic, easeOutElastic, easeOutExpo, easeOutQuad, easeOutQuart, easeOutQuint, easeOutSine, ellipsePath, extendToMeet, findPathSnap, flattenCubic, flattenCubicWithArcLen, flattenQuadratic, flattenQuadraticWithArcLen, hasCorners, hasOpenSubpath, intersectSegments, isCornerShape, joinAnchorsAt, lengthenOpenEnd, linePath, linear, meanScale, measurePath, nextCornerShape, openEndRay, openPathEnds, pathAnchorPoints, pathCommandCoordCount, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathCrossings, pathDistanceToPoint, pathFromD, pathInPoseFrame, pathInWorld, pathIntersectsPolygon, pathIntersectsRect, pathSegments, pathSignedArea, pathThroughPoseFrame, pathToAnchors, pathToD, pointAlongPath, pointInPath, polygonFromPoints, polylineFromPoints, poseFrameInverseOf, poseFrameOf, poseLinearOf, poseRotationOf, prepareBlend, pxExtent, rectMarkerPath, rectPath, regularPolygonPath, remapPerAnchor, repeatAlongPath, resolveCorners, resolveCornersWithSources, resolveEasing, reversePath, rotatePathAround, roundRectPath, scaleDelta, scalePathToBounds, screenAngleOf, simplifyAnchorsAt, simplifyPath, smudgePath, solveConstraints, solvePathConstraints, splitByClosure, splitSubpaths, squarePath, standoff, starPath, stationsAlongPath, transformPath, translatePath, trimPathAt, unionBoundsPath, unsatisfiedConstraints, withCorner, withinPxBox, withinPxRadius, withoutCorners, worldEditToStorage } from '@weasel-js/geom';
5
- import { a as PlaneMap, L as LayoutStrategy, R as ReflowTransition, b as LayoutDropTargetMode } from './types-7puAuVD2.js';
6
- export { C as ContainerBounds, D as DropRegion, c as DropTarget, d as LayoutArrival, e as LayoutChild, f as LayoutContainer, g as LayoutDragged, h as LayoutSnap, P as ParallaxOpts, i as ReflowGlideOptions, S as ScalarOrXY, j as deriveParallaxView, k as fromPlane, p as planeMap, l as planeMatrix, m as planeToPlane, r as rectFromPlane, n as rectToPlane, t as toPlane } from './types-7puAuVD2.js';
5
+ import { a as PlaneMap, L as LayoutStrategy, R as ReflowTransition, b as LayoutDropTargetMode } from './types-49uYJN3j.js';
6
+ export { C as ContainerBounds, D as DropRegion, c as DropTarget, d as LayoutArrival, e as LayoutChild, f as LayoutContainer, g as LayoutDragged, h as LayoutSnap, P as ParallaxOpts, i as ReflowGlideOptions, S as ScalarOrXY, j as deriveParallaxView, k as fromPlane, p as planeMap, l as planeMatrix, m as planeToPlane, r as rectFromPlane, n as rectToPlane, t as toPlane } from './types-49uYJN3j.js';
7
7
  export { DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_VELOCITY_DECAY, Simulation, SimulationCore, SimulationForce, SimulationNode, SimulationOptions, UseSimulationOptions, createSimulation } from '@weasel-js/simulation';
8
8
  export { useSimulation } from '@weasel-js/simulation/react';
9
- import { R as RectPose, a as SystemLayerSpec, A as AddNodeSpec, b as RegisteredOp, c as SceneRegistry, P as PoseComposition, L as LayoutFrame, N as Node, d as PoseAdapter, S as Scene, e as PoseRemoval, f as PoseWrite, g as ScenePoseReports, h as PoseOverrides, i as SerializedScene, D as DerivePoseFn, j as DerivePathFn, k as DerivedDep } from './types-CniVctmk.js';
10
- export { l as AddLayerSpec, B as Bivariant, C as ClipFromPoseFn, m as ContainerNode, n as CopiesFromPoseFn, I as IDENTITY_POSE_COMPOSITION, o as LayerRecord, p as LayoutMove, q as LeafNode, r as PoseClosure, s as PoseHold, t as PoseOverride, u as PoseWriteOrigin, v as RemovedNode, w as SCENE_HISTORY_FORM, x as SceneArrivalHandler, y as SceneBatchOptions, z as SceneDoc, E as SceneDocValues, F as SceneEditPass, G as SceneEditPassOptions, H as SceneEditSummary, J as SerializedDoc, K as SerializedLayer, M as SerializedNode, O as SerializedSceneHistory, Q as SystemLayerRecord, U as UserLayerRecord, T as asNodeId, V as composeWorldPose, W as composesFrames, X as rebaseLocalPose } from './types-CniVctmk.js';
11
- import { NodeId, SelectionMode, SelectionExtendKey, SelectionApi, IngestItem, OngoingOverlay, PointerSessionCancelReason, DeviceProfile, Bounds, Tool as Tool$1, Contribution as Contribution$1, ContributionChrome as ContributionChrome$1, ToolDef as ToolDef$1, DepName, DepSchema, Action, ActionDeps, GestureBinding, AffordanceHit, ActionDisabledReason, ToolKeybinding, HotkeyTrigger, ModifierState, RuleCtx, Rule, DebugSink, ToolSet, ToolEntry, ActionTunings, ActionsProp, OverlayRole, ResizeAnchor, InvocationCtx, OngoingHandle } from '@weasel-js/routing';
12
- export { ALWAYS, Action, ActionDeps, ActionDisabledReason, ActionDisabledReasonValue, ActionDispatch, ActionEnabledResult, ActionEntry, ActionItem, ActionParamSchema, ActionParams, ActionPresentation, ActionSettings, ActionSettingsState, ActionShortcut, ActionTuning, ActionTunings, ActionVariant, ActionsProp, ActionsRegistry, AffordanceHit, AssemblyInputs, BindingOpts, BindingScope, BindingSource, BoundGesture, BuildRuleCtxArgs, COARSE_TARGET_SCALE, CONTROL_SELECTOR, Carried, Carry, CarryCallbacks, CarryPayload, CarryPointer, CarryStage, ContributionDeps, ContributionRouting, DEFAULT_ALLOWED_CAPABILITIES, DEFAULT_DEVICE_PROFILE, DRAG_THRESHOLD_PX, DebugSink, DepListing, DepName, DepRegistry, DepSchema, DepSource, DetectedDeviceFacts, DeviceProfile, DispatchRecord, DispatchRecordInput, Dispatcher, DispatcherContext, DragSample, DroppedCandidate, Eligibility, EligibilityState, GestureBinding, GestureKitSettings, HandleKind, HitShape, HotkeyTrigger, ImmediateInvoker, IngestItem, InputEvent, InvocationCtx, Invoker, KeyBinding, KeyReach, LONG_PRESS_MS, LongPressOptions, LongPressState, LongPressStore, MatchResult, MenuDef, MenuHit, MenuHost, MenuOpenRequest, MenuSources, ModeShortcutHandlers, ModifierRole, ModifierRoles, ModifierState, NEVER, NodeId, OngoingHandle, OngoingInvoker, OngoingOverlay, OpenMenu, OverlayPosition, OverlayRole, PendingLongPress, PlacedBy, Point2, PointerSession, PointerSessionCallbacks, PointerSessionCancelReason, PointerSessionOptions, RankedCandidate, RecordCandidate, ResizeAnchor, ResolveAllOptions, ResolveOnlyResult, ResolvedCandidate, RoleKeys, RoleRebinds, Rule, RuleCtx, ScopedBinding, ScratchKey, ScratchStore, SelectionApi, SelectionExtendKey, SelectionMode, Selector, SpecificityPart, ToolEntry, ToolKeybinding, ToolModifiers, ToolPresentation, ToolSet, ToolSlot, TunedBinding, UiOngoingControl, ViewportGestureKind, WalkStep, actionBindings, actionCursor, actionItemTitle, actionItems, actionSettingsParams, actionShortcuts, actionsTagged, activatesFocusedControl, assembleEntries, buildDepsFromRequires, buildRuleCtx, clientToCanvas, createDepRegistry, createDispatcher, createLongPressStore, defineTool, deleteScratch, describeRule, dlog, dwarn, evaluate, evaluateActive, evaluateEnabled, focusedControlOwnsKey, getScratch, heldKeySpec, historyKey, isDebugEnabled, isEditableTarget, isInControlWithin, isToolSet, keySpecShortcut, keysHeld, liveScope, matchActionItem, matchesKeyBinding, modeShortcutSpec, modeShortcuts, openPointerSession, overlaysOf, pastDragThreshold, readActionSettings, resolveDeviceProfile, resolveParams, resolveSchemaMenu, roleReader, scopeBindings, scratchKey, setScratch, specificity, startCarry, taggedActionItems, toolIdsOf, toolSet, toolSetHas, tuneAction, withoutTools } from '@weasel-js/routing';
9
+ import { R as RectPose, a as SystemLayerSpec, A as AddNodeSpec, b as RegisteredOp, c as SceneRegistry, P as PoseComposition, L as LayoutFrame, N as Node, I as InheritedPaint, d as PoseAdapter, S as Scene, e as PoseRemoval, f as PoseWrite, g as ScenePoseReports, h as PoseOverrides, i as SerializedScene, D as DerivePoseFn, j as SerializedSceneV1, k as SpecsFromSerializedOptions, l as NodeClip, m as DerivePathFn, n as DerivedDep } from './types-BEdRIhNc.js';
10
+ export { o as AddLayerSpec, B as Bivariant, C as ClipFromPoseFn, p as CopiesFromPoseFn, G as GroupNode, q as IDENTITY_POSE_COMPOSITION, r as LayerRecord, s as LayoutMove, M as MarkNode, t as PoseClosure, u as PoseHold, v as PoseOverride, w as PoseWriteOrigin, x as RemovedNode, y as SCENE_HISTORY_FORM, z as SceneArrivalHandler, E as SceneBatchOptions, F as SceneDeclaredFieldSetters, H as SceneDoc, J as SceneDocValues, K as SceneEditPass, O as SceneEditPassOptions, Q as SceneEditSummary, T as SerializedDoc, U as SerializedLayer, V as SerializedNode, W as SerializedNodeV1, X as SerializedSceneHistory, Y as SkippedKey, Z as SystemLayerRecord, _ as UserLayerRecord, $ as V1Classifier, a0 as asNodeId, a1 as composeWorldPose, a2 as composesFrames, a3 as inheritedPaintIn, a4 as inheritedPaintOf, a5 as inheritsPaint, a6 as nodeKindOf, a7 as rebaseLocalPose, a8 as specsFromSerialized, a9 as withInheritedPaint } from './types-BEdRIhNc.js';
11
+ import { NodeId, SelectionMode, SelectionExtendKey, SelectionApi, IngestItem, OngoingOverlay, PointerSessionCancelReason, DeviceProfile, Bounds, Tool as Tool$1, Contribution as Contribution$1, ContributionChrome as ContributionChrome$1, ToolDef as ToolDef$1, DepName, DepSchema, Action, ActionDeps, GestureBinding, AffordanceHit, ActionDisabledReason, ToolKeybinding, HotkeyTrigger, ModifierState, RuleCtx, Rule, ActionTunings, BindingOverrides, ActionsProp, DebugSink, ToolSet, ToolEntry, Dispatcher, OverlayRole, ResizeAnchor, InvocationCtx, OngoingHandle } from '@weasel-js/routing';
12
+ export { ALWAYS, Action, ActionDeps, ActionDisabledReason, ActionDisabledReasonValue, ActionDispatch, ActionEnabledResult, ActionEntry, ActionItem, ActionParamSchema, ActionParams, ActionPresentation, ActionSettings, ActionSettingsState, ActionShortcut, ActionTuning, ActionTunings, ActionUnavailable, ActionVariant, ActionsProp, ActionsRegistry, AffordanceHit, AssemblyInputs, BindingOpts, BindingOverrides, BindingScope, BindingSource, BoundGesture, BuildRuleCtxArgs, COARSE_TARGET_SCALE, CONTROL_SELECTOR, CaptureGestureOptions, CaptureKeyOptions, CaptureKind, CapturedSpec, Carried, Carry, CarryCallbacks, CarryPayload, CarryPointer, CarryStage, ContributionDeps, ContributionRouting, DEFAULT_ALLOWED_CAPABILITIES, DEFAULT_DEVICE_PROFILE, DRAG_THRESHOLD_PX, DebugSink, DepListing, DepName, DepRegistry, DepSchema, DepSource, DetectedDeviceFacts, DeviceProfile, DispatchRecord, DispatchRecordInput, Dispatcher, DispatcherContext, DragSample, DroppedCandidate, Eligibility, EligibilityState, GestureBinding, GestureKitSettings, HandleKind, HitShape, HotkeyTrigger, ImmediateInvoker, IngestItem, InputEvent, InvocationCtx, Invoker, KEYMAP_HOLD, KeyBinding, KeyReach, KeymapDef, KeymapDescription, KeymapRow, KeymapStack, KeymapUnbound, KeymapVerdict, LONG_PRESS_MS, LongPressOptions, LongPressState, LongPressStore, MatchResult, MenuDef, MenuHit, MenuHost, MenuOpenRequest, MenuSources, ModeShortcutHandlers, ModifierRole, ModifierRoles, ModifierState, NEVER, NodeId, OngoingHandle, OngoingInvoker, OngoingOverlay, OpenKeymap, OpenMenu, OverlayPosition, OverlayRole, PendingLongPress, PlacedBy, Point2, PointerSession, PointerSessionCallbacks, PointerSessionCancelReason, PointerSessionOptions, RankedCandidate, RecordCandidate, ResizeAnchor, ResolveAllOptions, ResolveOnlyResult, ResolvedBindingOverrides, ResolvedCandidate, RoleKeys, RoleRebinds, Rule, RuleCtx, ScopedBinding, ScratchKey, ScratchStore, SelectionApi, SelectionExtendKey, SelectionMode, Selector, SpecificityPart, ToolEntry, ToolKeybinding, ToolModifiers, ToolPresentation, ToolSet, ToolSlot, TunedBinding, UiOngoingControl, ViewportGestureKind, WalkStep, actionBindings, actionCursor, actionItemTitle, actionItems, actionSettingsParams, actionShortcuts, actionsTagged, activatesFocusedControl, assembleEntries, bindingId, buildDepsFromRequires, buildRuleCtx, captureGesture, captureKey, clientToCanvas, createDepRegistry, createDispatcher, createKeymapStack, createLongPressStore, defineTool, deleteScratch, describeKeymap, describeRule, dlog, dwarn, evaluate, evaluateActive, evaluateEnabled, focusedControlOwnsKey, getScratch, heldKeySpec, historyKey, isDebugEnabled, isEditableTarget, isInControlWithin, isToolSet, keySpecShortcut, keymapContribution, keymapLeaderBindingId, keymapLeaderId, keymapShortcuts, keysHeld, liveScope, matchActionItem, matchesKeyBinding, modeShortcutSpec, modeShortcuts, modifierStateOf, openPointerSession, overlaysOf, pastDragThreshold, readActionSettings, resolveBindingOverrides, resolveDeviceProfile, resolveParams, resolveSchemaMenu, roleReader, scopeBindings, scratchKey, setScratch, specificity, startCarry, taggedActionItems, toolIdsOf, toolSet, toolSetHas, tuneAction, withoutTools } from '@weasel-js/routing';
13
13
  import * as react from 'react';
14
14
  import react__default, { Ref, RefObject, ReactNode, MutableRefObject, MouseEvent } from 'react';
15
15
  import { Reflection } from '@weasel-js/registry';
16
16
  export { MIXED, Mixed, QueryMatch, Reflectable, ReflectedEntry, Reflection, RegisterOptions, Registrant, createReflectable, isPlainObject } from '@weasel-js/registry';
17
+ export { stableStringify } from './json.js';
17
18
  import { P as PoseDescriptor, b as RotatedPose } from './poseDescriptor-DN2yfnq_.js';
18
19
  export { R as RECT_POSE_DESCRIPTOR, a as ROTATED_POSE_DESCRIPTOR, p as poseDescriptorForNode, t as translatePoseViaDescriptor, v as visualBoundsViaDescriptor } from './poseDescriptor-DN2yfnq_.js';
19
20
  import { KitSettingsStore } from '@weasel-js/react';
@@ -26,25 +27,25 @@ import { C as CanvasDebugSink, D as DebugSnapshot, a as DebugConfig, b as DebugS
26
27
  export { d as DEBUG_FEATURES, e as DebugFeature, f as DebugStroke, F as FrameStats, L as LayerFrameStats, R as RecordedBounds, g as RecordedHandle, h as RecordedHitbox, i as RecordedLayer, j as RecordedOrigin, k as RecordedSnap, l as RecordedViewport } from './types-BN9hbdMI.js';
27
28
  import { VertexColorChannel, Target, Animator, ColorOverrideRegistry, TargetAxes, Pose, ClipBinder, SpringPresetName, StaggerOptions, StaggerDelay, EasingSpec, AnimationHandle, Skeleton, Skin } from '@weasel-js/animator';
28
29
  import { SelectionStore as SelectionStore$1 } from '@weasel-js/select';
29
- import { Paint, CommandFill, CommandStroke, CommandPaint, Fill, Stroke, Palette, SolidPaint, VertexWidth } from '@weasel-js/paint';
30
- export { ColorInterpolationSpace, ColorSpace, CommandFill, CommandPaint, CommandPaintUnits, CommandStroke, Fill, GradStop, GradientKind, GradientPaint, HalfWidths, HueInterpolation, KitMarkerKey, MarkerKey, MarkerRef, OklchDeg, Paint, PaintUnits, PatternPaint, PatternPlacement, PatternTransform, PatternTransformParts, PosedPaint, Region, STROKE_DASH_RATIOS, ScreenLength, SolidPaint, Stroke, StrokeAlign, StrokeDashStyle, StrokeNib, TILE_KINDS, TextureHandle, TexturePaint, TileKind, TilePaint, TilePatternSpec, VertexWidth, VertexWidthSides, alignedStrokeRect, composePatternTransform, contrastLineColor, dashForStrokeStyle, decomposePatternTransform, gradientForBounds, gradientGeometry, hexToOklchDeg, hexToRgbBytes, hexToRgba, hslToSrgb, interpolateSrgb, isGradientPaint, isPatternPaint, isSolidPaint, isTileKind, isTilePaint, lerpColorArray, lerpFill, lerpOklab, lerpOklch, lerpPaint, lerpStroke, linearSrgbToOklab, linearToSrgb, normalizeHex, oklabToLinearSrgb, oklabToOklch, oklabToSrgbU8, oklchDegToHex, oklchToOklab, parseColor, parseColorToRgba255, parseHexBytes, patternPlacementOf, resolveColor, resolveScreenLength, rgbaToHex, sampleGradientStops, scaleVertexWidth, srgbFloatToOklab, srgbToHsl, srgbToLinear, srgbU8ToOklab, strokeDashStyleOf, tileSpecOf, vertexHalfWidths, vertexWidthFromSides, widestHalfWidth, withGradientKind } from '@weasel-js/paint';
31
30
  import { ToolsApi as ToolsApi$1, UseToolsOptions as UseToolsOptions$1, PointerContextValue, Yoke } from '@weasel-js/routing/react';
32
- export { ActionsProvider, ActiveToolContextProvider, ActiveToolContextProviderIfRoot, ActiveToolContextProviderProps, ActiveToolContextValue, CommandOptions, DepRegistryProvider, DispatcherChannels, InputScope, OngoingAction, PointerContextProvider, PointerContextValue, PointerWorldPos, SelectionContextProvider, SelectionContextProviderIfRoot, SelectionContextValue, UseGestureDispatcherOptions, Yoke, createPointerStore, useAction, useActionsRegistry, useActiveToolContext, useCommand, useDepRegistry, useDepSource, useGestureDispatcher, useMenuHost, useMenus, useOngoingAction, useOptionalActiveToolContext, useOptionalDepRegistry, usePointerContext, usePointerPosition, usePublishSelection, useSelectionContext, useYoke } from '@weasel-js/routing/react';
31
+ export { ActionsProvider, ActiveToolContextProvider, ActiveToolContextProviderIfRoot, ActiveToolContextProviderProps, ActiveToolContextValue, CommandOptions, DepRegistryProvider, DispatcherChannels, InputScope, OngoingAction, PointerContextProvider, PointerContextValue, PointerWorldPos, SelectionContextProvider, SelectionContextProviderIfRoot, SelectionContextValue, UseGestureDispatcherOptions, Yoke, createPointerStore, useAction, useActionsRegistry, useActiveToolContext, useCommand, useDepRegistry, useDepSource, useGestureDispatcher, useMenuHost, useMenus, useOngoingAction, useOpenKeymap, useOptionalActiveToolContext, useOptionalDepRegistry, usePointerContext, usePointerPosition, usePublishSelection, useSelectionContext, useYoke } from '@weasel-js/routing/react';
32
+ import { Paint, CommandFill, CommandStroke, CommandPaint, Fill, Inherit, Stroke, Palette, SolidPaint, VertexWidth, PaintedFill, PaintedStroke } from '@weasel-js/paint';
33
+ export { ColorInterpolationSpace, ColorSpace, CommandFill, CommandPaint, CommandPaintUnits, CommandStroke, Fill, GradStop, GradientKind, GradientPaint, HalfWidths, HueInterpolation, INHERIT, Inherit, KitMarkerKey, MarkerKey, MarkerRef, OklchDeg, Paint, PaintUnits, PaintedFill, PaintedStroke, PatternPaint, PatternPlacement, PatternTransform, PatternTransformParts, PosedPaint, Region, STROKE_DASH_RATIOS, ScreenLength, SolidPaint, Stroke, StrokeAlign, StrokeDashStyle, StrokeNib, TILE_KINDS, TextureHandle, TexturePaint, TileKind, TilePaint, TilePatternSpec, VertexWidth, VertexWidthSides, alignedStrokeRect, composePatternTransform, contrastLineColor, contrastRatio, dashForStrokeStyle, decomposePatternTransform, gradientForBounds, gradientGeometry, hexToOklchDeg, hexToRgbBytes, hexToRgba, hslToSrgb, interpolateSrgb, isGradientPaint, isPatternPaint, isSolidPaint, isTileKind, isTilePaint, lerpColorArray, lerpFill, lerpOklab, lerpOklch, lerpPaint, lerpStroke, linearSrgbToOklab, linearToSrgb, normalizeHex, oklabToLinearSrgb, oklabToOklch, oklabToSrgbU8, oklchDegToHex, oklchToOklab, parseColor, parseColorToRgba255, parseHexBytes, patternPlacementOf, resolveColor, resolveFill, resolveScreenLength, resolveStroke, rgbaToHex, sampleGradientStops, scaleVertexWidth, srgbFloatToOklab, srgbToHsl, srgbToLinear, srgbU8ToOklab, strokeDashStyleOf, tileSpecOf, vertexHalfWidths, vertexWidthFromSides, wcagLevels, widestHalfWidth, withGradientKind } from '@weasel-js/paint';
33
34
  import { FontRequest } from '@weasel-js/font';
34
35
  export { FaceMetrics, FaceRuleMetrics, FaceScriptMetrics, FontFamilyFaces, FontRequest, FontStyle, FontVariant, LocalFontOutlinesResult, OutlineFaceInfo, OutlineSource, OutlineStatus, OutlineVariant, RegisterFontOptions, canQueryLocalFonts, cssFamilyName, cssFontFamily, cssFontFamilyLoading, enableLocalFontOutlines, fontOutlineRegistry, fontRegistry, hasFontOutlines, isCanvasFont, listFontOutlines, loadFontOutlines, outlineStatus, refreshCanvasFont, registerCanvasFont, registerFont, registerFontOutlines, subscribeGlyphReady, unregisterCanvasFont, unregisterFontOutlines, warmFonts } from '@weasel-js/font';
35
36
  import * as _weasel_js_history from '@weasel-js/history';
36
37
  import { Op, CreateHistoryOptions, History, HistorySelection } from '@weasel-js/history';
37
38
  export { BeginJournalOptions, CreateHistoryOptions, EvictedEntry, History, HistoryBranch, HistoryEntry, HistoryLogger, HistorySelection, HistoryStep, Journal, Op, RecordEntryOptions, SerializedHistory, SerializedHistoryEntry, SerializedOp, SwapArgs, SwapOpOptions, swapOp } from '@weasel-js/history';
38
- import { G as GestureContext, B as BoundsConstraint, R as RotateBehavior, I as InsertBehavior, L as LassoSelectBehavior, M as MoveBehavior } from './clone-C3e0OTuF.js';
39
- export { A as ActionBehavior, a as AreaSelectOverlay, b as BehaviorEnd, c as BehaviorResult, C as CloneBehavior, d as CloneBehaviorResult, e as GestureFrames, f as GroupTransform, g as InsertMoveResult, h as InsertOverlay, i as InsertPoint, j as InsertProposed, k as LassoSelectMoveResult, l as LassoSelectOverlay, m as LassoSelectPose, n as LassoSelectProposed, o as MoveEnd, P as PointerState, p as ResizeMoveResult, q as ResizeOverlay, r as ResizeProposed, s as RotateMoveResult, t as RotateOverlay, u as RotateProposed } from './clone-C3e0OTuF.js';
40
- import { d as ResizeHandleLayout, U as UseResizeOptions, T as TargetTransform } from './cornerHandles-BHuoMs1o.js';
41
- export { C as CORNER_ANCHORS, a as CornerAnchor, k as CornerEdge, b as CornerHandle, E as EDGE_HANDLE_MIN_RADII, H as HandleEdge, R as RESIZE_HANDLE_ANCHORS, c as ResizeHandleAnchor, e as cornerPoint, f as cornerResizeHandles, g as fixedCornerOf, h as handlePoint, i as hitCornerHandle, j as isCornerHandle, r as resizeHandlesFor } from './cornerHandles-BHuoMs1o.js';
42
- import { ModeRegistry, ModeDecorations } from '@weasel-js/modes';
43
- import { M as MoveAdapter, A as AreaSelectAdapter, L as LayerEnumerableAdapter, a as LassoHitMode, P as PasteOmission, b as ResizeAdapter, c as RotateAdapter, d as LassoSelectAdapter, I as InsertAdapter, C as ClipboardSnapshot, e as PasteCtx, O as OrderedAdapter } from './types-oFeQ5VjV.js';
44
- export { R as RegionPickView, S as SnapTarget } from './types-oFeQ5VjV.js';
39
+ import { G as GestureContext, B as BoundsConstraint, R as RotateBehavior, I as InsertBehavior, L as LassoSelectBehavior, M as MoveBehavior } from './clone-qb2e1F5p.js';
40
+ export { A as ActionBehavior, a as AreaSelectOverlay, b as BehaviorEnd, c as BehaviorResult, C as CloneBehavior, d as CloneBehaviorResult, e as GestureFrames, f as GroupTransform, g as InsertMoveResult, h as InsertOverlay, i as InsertPoint, j as InsertProposed, k as LassoSelectMoveResult, l as LassoSelectOverlay, m as LassoSelectPose, n as LassoSelectProposed, o as MoveEnd, P as PointerState, p as ResizeMoveResult, q as ResizeOverlay, r as ResizeProposed, s as RotateMoveResult, t as RotateOverlay, u as RotateProposed } from './clone-qb2e1F5p.js';
41
+ import { d as ResizeHandleLayout, U as UseResizeOptions, T as TargetTransform } from './cornerHandles-CNCb7aTY.js';
42
+ export { C as CORNER_ANCHORS, a as CornerAnchor, k as CornerEdge, b as CornerHandle, E as EDGE_HANDLE_MIN_RADII, H as HandleEdge, R as RESIZE_HANDLE_ANCHORS, c as ResizeHandleAnchor, e as cornerPoint, f as cornerResizeHandles, g as fixedCornerOf, h as handlePoint, i as hitCornerHandle, j as isCornerHandle, r as resizeHandlesFor } from './cornerHandles-CNCb7aTY.js';
43
+ import { ModeRegistry, WorkspaceVisual, ModeDecorations, NodeScope } from '@weasel-js/modes';
44
+ import { M as MoveAdapter, A as AreaSelectAdapter, L as LayerEnumerableAdapter, a as LassoHitMode, P as PasteOmission, b as ResizeAdapter, c as RotateAdapter, d as LassoSelectAdapter, I as InsertAdapter, C as ClipboardSnapshot, e as PasteCtx, O as OrderedAdapter } from './types-p2alu-R1.js';
45
+ export { R as RegionPickView, S as SnapTarget } from './types-p2alu-R1.js';
45
46
  import * as _weasel_js_gestures from '@weasel-js/gestures';
46
- export { CarrySpec, ClaimableGesture, ClickSpec, DragSpec, DropSpec, GestureSpec, KeyHeldSpec, KeySpec, ModSpec, MultiTouchSpec, PasteSpec, PinchSpec, TargetPredicate, TargetSpec, WheelSpec, bodyPredicate, hitPredicate } from '@weasel-js/gestures';
47
- import { U as UseMoveOptions } from './options-DBxEryYq.js';
47
+ export { BindingOverrideInput, CarrySpec, ClaimableGesture, ClickSpec, DragSpec, DropSpec, GestureSpec, KeyHeldSpec, KeySpec, ModSpec, MultiTouchSpec, PasteSpec, PinchSpec, TargetPredicate, TargetSpec, WheelSpec, bindingSpec, bodyPredicate, held, hitPredicate, key, keySpecRoute, unbound } from '@weasel-js/gestures';
48
+ import { U as UseMoveOptions } from './options-ClEm3SEl.js';
48
49
  import { IconRef, IconTable, IconVariantLoader, IconRegistry, IconGlyph, IconEntry, IconVariantState } from '@weasel-js/icons';
49
50
  export { IconRef, IconTable, toIconRef } from '@weasel-js/icons';
50
51
  import * as _weasel_js_prefs from '@weasel-js/prefs';
@@ -52,17 +53,17 @@ import { PrefSection, PrefNumberUnit } from '@weasel-js/prefs';
52
53
  import { UnitScope } from '@weasel-js/quantity';
53
54
  export { ANGLE_RADIANS, IMPERIAL_INCHES, METRIC_MM, PIXELS, PerAxis, PlaneUnits, PlaneValue, ScopeTree, Unit, UnitEntry, UnitExpr, UnitExprContext, UnitScale, UnitScope, UnitSystem, UnitValue, axisUnits, formatAxes, formatScoped, formatUnit, fromRoot, parseUnitExpr, resolveAxes, resolveScoped, resolveUnit, resolveUnitExpr, scopesOf, toRoot, unitScale } from '@weasel-js/quantity';
54
55
  import { TextPose, TextStyle, StyledRun, TextVerticalAlign, TextPaint, TextOutlinesError } from '@weasel-js/text';
55
- export { DEFAULT_DECORATION_METRICS, DEFAULT_TEXT_STYLE, DecorationKind, FaceMetricsFn, FitTextPoseOptions, FlagKey, FontVariantCaps, LabelOptions, LaidOutCell, LaidOutDecoration, LaidOutGroup, LaidOutLineBox, LaidOutOutlineGlyph, LaidOutQuad, LaidOutRuns, LayoutLine, LayoutResult, LayoutRunsOpts, MARKDOWN_RUN_GRAMMAR, MarkdownFontOptions, MeasureFn, MeasureTextBoundsOpts, MeasuredSpan, MeasuredText, PaintRunsOpts, PaintedRuns, PlacedGlyph, PointInTextPoseOpts, PositionedRun, RangeStyle, ResolvedRun, ResolvedTextStyle, RunFlag, RunGrammar, RunMarker, RunSourceMap, RunStylePatch, SCRIPT_METRICS, SMALL_CAPS_SCALE, ScriptPreset, SetFlagResult, SmallCapsText, StyleKey, StyledRun, TextAlign, TextDirection, TextLineBoxesOpts, TextNodeSource, TextOutlineSource, TextOutlinesError, TextOutlinesFailure, TextPaint, TextPaintPath, TextPose, TextPoseLayout, TextPoseLayoutInput, TextRenderer, TextStyle, TextToPathOptions, TextTransform, TextVerticalAlign, TransformedRunText, applyStyleToRange, cachedLayoutRuns, cachedPaintRuns, caretIndexAt, createMarkdownRenderer, decorationMetrics, defaultLabelTextRenderer, effectiveRangeStyle, fitTextPose, fontString, isBoldWeight, isSmallCapsLetter, isTextData, layoutMarkdown, layoutRuns, layoutTextPose, loadTextOutlines, markdownToRuns, measureText, measureTextBounds, measuredWidth, nodeHasFlag, numericWeight, paintRuns, paragraphDirection, patchRangeStyle, pointInTextPose, rangeWeight, registerBidi, renderLabel, resolveAlign, resolveRunFace, resolveRuns, resolveTextStyle, runsToMarkdown, runsToPlainText, scriptMetrics, scriptMetricsFor, setFlagOverRange, smallCapsScale, smallCapsScaleFor, smallCapsText, styleAtRange, textLineBoxes, textPoseLayoutInput, textToPath, textToPathsByPaint, toRuns, transformRunTexts, unboldPatch, verticalAlignOffset } from '@weasel-js/text';
56
+ export { DEFAULT_DECORATION_METRICS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_STYLE, DecorationKind, FaceMetricsFn, FitTextPoseOptions, FlagKey, FontVariantCaps, LabelOptions, LaidOutCell, LaidOutDecoration, LaidOutGroup, LaidOutLineBox, LaidOutOutlineGlyph, LaidOutQuad, LaidOutRuns, LayoutLine, LayoutResult, LayoutRunsOpts, MARKDOWN_RUN_GRAMMAR, MarkdownFontOptions, MeasureFn, MeasureTextBoundsOpts, MeasuredSpan, MeasuredText, PaintRunsOpts, PaintedRuns, PlacedGlyph, PointInTextPoseOpts, PositionedRun, RangeStyle, ResolvedRun, ResolvedTextStyle, RunFlag, RunGrammar, RunMarker, RunSourceMap, RunStylePatch, SCRIPT_METRICS, SMALL_CAPS_SCALE, ScriptPreset, SetFlagResult, SmallCapsText, StyleKey, StyledRun, TextAlign, TextDirection, TextLineBoxesOpts, TextNodeSource, TextOutlineSource, TextOutlinesError, TextOutlinesFailure, TextPaint, TextPaintPath, TextPose, TextPoseLayout, TextPoseLayoutInput, TextRenderer, TextStyle, TextToPathOptions, TextTransform, TextVerticalAlign, TransformedRunText, applyStyleToRange, cachedLayoutRuns, cachedPaintRuns, caretIndexAt, createMarkdownRenderer, decorationMetrics, defaultLabelTextRenderer, effectiveRangeStyle, fitTextPose, fontString, isBoldWeight, isSmallCapsLetter, isTextData, layoutMarkdown, layoutRuns, layoutTextPose, loadTextOutlines, markdownToRuns, measureText, measureTextBounds, measuredWidth, nodeHasFlag, numericWeight, paintRuns, paragraphDirection, patchRangeStyle, pointInTextPose, rangeWeight, registerBidi, renderLabel, resolveAlign, resolveRunFace, resolveRuns, resolveTextStyle, runsToMarkdown, runsToPlainText, scriptMetrics, scriptMetricsFor, setFlagOverRange, smallCapsScale, smallCapsScaleFor, smallCapsText, styleAtRange, textLineBoxes, textPoseLayoutInput, textToPath, textToPathsByPaint, toRuns, transformRunTexts, unboldPatch, verticalAlignOffset } from '@weasel-js/text';
56
57
  import { UseTextEditReturn } from '@weasel-js/text-dom';
57
58
  export { StartEditOptions, StyleToggle, TEXT_EDIT_FONT_HOLD, TextEditClipRect, TextEditCommit, TextEditScreenPose, TextEditSelection, UseTextEditOptions, UseTextEditReturn, charOffsetToDomPosition, domPositionToCharOffset, domToRuns, runsToDom, useTextEdit } from '@weasel-js/text-dom';
58
59
  export { BUILTIN_MARKERS, MarkerCtx, MarkerEntry, MarkerPaint, MarkerSite, MarkerSiteRequest, OffsetPathOptions, StrokeToPathOptions, getMarker, listMarkers, markerInset, markerKeyOf, markerRegistry, markerSites, offsetPath, registerMarker, resolveMarkerSize, resolveStrokeWidth, strokeInsets, strokeToPath } from '@weasel-js/stroke';
59
60
  export { Polyline, trimPolyline } from '@weasel-js/geom/tessellate';
61
+ export { C as CLIP_NOTHING, a as aabbCenter, c as clipNothing, p as pointInRotatedRect, r as rectCorners, b as rotatePoint, d as rotatedRectCorners } from './math-C_elShP_.js';
60
62
  export { SnipAtCrossingsOptions, SplitBySegmentOptions, pathDivide, pathExclude, pathIntersect, pathSubtract, pathUnion, snipPathByPolyline, snipPathsAtCrossings, splitPathByPolyline, splitPathBySegment, trianglesToPath } from '@weasel-js/geom/booleans';
61
63
  export { CURVE_REPS, CurveRepKind, CurveRepresentation, Discriminator, SharedAnchor, bezierCubic, bezierQuadratic, nurbs, spiro } from '@weasel-js/geom/curves';
62
64
  import { O as OriginProjection } from './originProjection-gY0jb4Wb.js';
63
65
  export { A as AUTO_ORIGIN_PROJECTION, R as RECT_ORIGIN_PROJECTION } from './originProjection-gY0jb4Wb.js';
64
66
  export { A as AUTO_POSE_DESCRIPTOR, i as isPathLike, a as isRectPose } from './autoPoseDescriptor-CZ1eXbzY.js';
65
- export { a as aabbCenter, p as pointInRotatedRect, r as rectCorners, b as rotatePoint, c as rotatedRectCorners } from './math-CrJULaZI.js';
66
67
  export { ClipboardFlavors, UseClipboardOpsOptions, UseClipboardOpsReturn, WEASEL_CLIPBOARD_MIME, WEASEL_CLIPBOARD_MIME_WEB, buildWeaselClipboardText, embedWeaselMetadataInSvg, extractWeaselClipboardFromSvg, parseWeaselClipboardText, sniffWeaselClipboardText, useClipboardOps } from './clipboard.js';
67
68
  import { Vec, SnapCandidate } from '@weasel-js/geom/nd';
68
69
 
@@ -218,6 +219,10 @@ interface NodePaintCtx {
218
219
  * on `channel`, the colors to paint instead. **Absent** when nothing animates
219
220
  * the node. The kit's path painters apply it; see `withColorOverrides`. */
220
221
  vertexColors?: (channel: VertexColorChannel, base: readonly number[] | undefined) => readonly number[] | undefined;
222
+ /** What the node's `'inherit'` fill and stroke resolve to, looked up from
223
+ * its containers by the scene's `drawOne` wrapper. **Absent** for a node
224
+ * that inherits nothing. Hand it to `resolveFill` / `resolveStroke`. */
225
+ inherited?: InheritedPaint;
221
226
  }
222
227
  /**
223
228
  * Per-node draw function — the scene-slot `drawOne` signature shared by
@@ -247,8 +252,8 @@ interface NodeShapeEntry<TData = unknown, TPose = unknown> {
247
252
  * immutable and copy before appending — a painter is free to memoize its
248
253
  * command list, and an in-place `push` would grow that list on every frame. */
249
254
  paint(node: Node<TData, string, TPose>, pose: TPose, ctx?: NodePaintCtx): DrawCommand[];
250
- /** Optional: the node's silhouette path from its pose. Used by clipping (when the
251
- * container has no explicit `clipFromPose`), by non-rect hit-testing, and by
255
+ /** Optional: the node's silhouette path from its pose. Used by clipping (a node's
256
+ * `clip: 'outline'`), by non-rect hit-testing, and by
252
257
  * lasso/area-select. Painters whose visual has no meaningful closed silhouette
253
258
  * leave this undefined. */
254
259
  silhouette?(node: Node<TData, string, TPose>, pose: TPose, ctx?: NodeSilhouetteCtx): Path | null;
@@ -260,8 +265,8 @@ interface NodeShapeEntry<TData = unknown, TPose = unknown> {
260
265
  * Painters that leave it undefined are treated as {@link DEFAULT_INK}: the
261
266
  * whole silhouette interior is grabbable and the outline adds nothing.
262
267
  *
263
- * `ctx.scale` carries the view scale so a `{ px }` stroke width resolves to
264
- * world units; without it a screen-pixel width is read as world units. */
268
+ * `ctx.scale` carries the view scale; a reach measured on screen, such as
269
+ * a `{ px }` stroke's, is reported in `outsetPx`, never in `outset`. */
265
270
  ink?(node: Node<TData, string, TPose>, pose: TPose, ctx?: NodeInkCtx): NodeInk | null;
266
271
  /** Optional: a box enclosing every pixel `paint` can put down for this node,
267
272
  * stroke, markers and miter spikes included, in the frame `paint` emits in
@@ -290,7 +295,10 @@ interface NodeShapeEntry<TData = unknown, TPose = unknown> {
290
295
  interface NodeInk {
291
296
  /** True when the silhouette's interior is painted, and so grabbable. */
292
297
  filled: boolean;
293
- /** How far the ink reaches outside the outline, world units. */
298
+ /** How far the ink reaches outside the outline. World units, independent of
299
+ * the view: a reach measured on screen goes in `outsetPx`. Pick indexes box
300
+ * nodes once for every zoom, so an `outset` that changes with `scale` goes
301
+ * unpicked. */
294
302
  outset: number;
295
303
  /** How far it reaches inside. */
296
304
  inset: number;
@@ -311,8 +319,9 @@ interface NodeSilhouetteCtx {
311
319
  }
312
320
  /** Per-call context for {@link NodeShapeEntry.ink}. */
313
321
  interface NodeInkCtx {
314
- /** View scale, for resolving `{ px }` lengths to world units — the mean of
315
- * the two axes' under non-uniform zoom. */
322
+ /** View scale, for resolving `{ px }` lengths, which `ink` reports in
323
+ * `outsetPx`/`insetPx`, never folded into `outset`. The mean of the two
324
+ * axes' under non-uniform zoom. */
316
325
  scale?: number;
317
326
  /** The smaller axis's scale, where it differs from `scale`. A box bounding
318
327
  * a `{ px }` stroke reads its reach here, where a pixel is the most world. */
@@ -325,6 +334,9 @@ interface NodeInkCtx {
325
334
  /** The path the node shows in place of its pose's, already where it is
326
335
  * drawn: its box is measured from this, not from the placeholder pose. */
327
336
  derivedPath?: Path | null;
337
+ /** As {@link NodePaintCtx.inherited}: a stroke or fill the node inherits
338
+ * inks it as its own does. */
339
+ inherited?: InheritedPaint;
328
340
  }
329
341
 
330
342
  /** What a painter that declares no `ink` is assumed to do. */
@@ -371,6 +383,9 @@ interface ShapeCoversPointOptions {
371
383
  * everywhere, which degrades picking to the caller's AABB: for an edge,
372
384
  * a zero-sized pose. */
373
385
  derivedPath?: Path | null;
386
+ /** See {@link NodeInkCtx.inherited}. Without it an `'inherit'` field is
387
+ * read as none. */
388
+ inherited?: NodeInkCtx['inherited'];
374
389
  }
375
390
  /**
376
391
  * Does the shape `node` actually paints cover the world point? Asks the painter's silhouette,
@@ -442,14 +457,14 @@ interface ViewRect {
442
457
  w: number;
443
458
  h: number;
444
459
  }
445
- /** Props for `<CanvasView>`. */
446
- interface CanvasViewProps {
460
+ /** The props every `<CanvasView>` takes, whichever side it holds. */
461
+ interface CanvasViewCommonProps {
447
462
  /** Identifies the view to the surface and to input routing. Must be unique
448
463
  * among the views on one canvas. */
449
464
  id: string;
450
465
  /**
451
466
  * The id of a view to nest this one in. `bounds` is then measured from that
452
- * view's rect, and a thunked `bounds` or `view` receives that view's camera
467
+ * view's rect, and a thunked `bounds`, `view` or `aim` receives that view's camera
453
468
  * and size as `outer` and `dims`. The view paints after it, cut to what it
454
469
  * shows, paints only the layers it paints, and takes input there before it
455
470
  * does. While no view has that id, this one neither paints nor takes input.
@@ -458,19 +473,6 @@ interface CanvasViewProps {
458
473
  /** Where this view paints, recomputed every frame so the rect can track the
459
474
  * outer camera. A plain rect is accepted for a fixed panel. */
460
475
  bounds: ViewRect | ((outer: View, dims: Dims) => ViewRect);
461
- /** Camera. Supply this to control it; otherwise the view keeps its own,
462
- * seeded from `defaultView`. `onViewChange` fires either way.
463
- *
464
- * A thunk is a camera derived from the canvas's — a loupe following the
465
- * pointer — read fresh at every paint and every event, so the two cannot
466
- * disagree mid-gesture. It is controlled: a pan inside the view reaches
467
- * only `onViewChange`. */
468
- view?: View | ((outer: View, dims: Dims) => View);
469
- defaultView?: View;
470
- onViewChange?: (v: View) => void;
471
- /** Pan limits, applied to every camera change the same way `<Canvas>`
472
- * applies its own. */
473
- viewBounds?: FramedBox;
474
476
  /** Receives this view's camera, to read, drive, and watch from outside it. */
475
477
  cameraRef?: Ref<CanvasViewCamera>;
476
478
  /** Which of the surface's layers this view paints. Defaults to all of them —
@@ -522,6 +524,40 @@ interface CanvasViewProps {
522
524
  * `selection` is supplied. */
523
525
  selectionOptions?: UseSelectionOptions;
524
526
  }
527
+ /** A view that holds its camera. */
528
+ interface CameraHeldViewProps {
529
+ /** Camera. Supply this to control it; otherwise the view keeps its own,
530
+ * seeded from `defaultView`. `onViewChange` fires either way.
531
+ *
532
+ * A thunk is a camera derived from the canvas's — a loupe following the
533
+ * pointer — read fresh at every paint and every event, so the two cannot
534
+ * disagree mid-gesture. It is controlled: a pan inside the view reaches
535
+ * only `onViewChange`. */
536
+ view?: View | ((outer: View, dims: Dims) => View);
537
+ defaultView?: View;
538
+ onViewChange?: (v: View) => void;
539
+ /** Pan limits, applied to every camera change the same way `<Canvas>`
540
+ * applies its own. */
541
+ viewBounds?: FramedBox;
542
+ aim?: never;
543
+ onAimChange?: never;
544
+ }
545
+ /** A view that holds its aim, and derives its camera from it. */
546
+ interface AimHeldViewProps {
547
+ /** What the view shows, as a world rect; its camera fits it to the frame, uniformly and centered.
548
+ * A thunk is read at each paint and event, measured like a thunked `view`. */
549
+ aim: FramedBox | ((outer: View, dims: Dims) => FramedBox);
550
+ /** A pan or zoom inside the view, or `setAim` on it, reported as the held rect that camera move carries. */
551
+ onAimChange?: (aim: FramedBox) => void;
552
+ view?: never;
553
+ defaultView?: never;
554
+ onViewChange?: never;
555
+ viewBounds?: never;
556
+ }
557
+ /** Props for `<CanvasView>`: the common ones, and either a camera or an aim. `Omit` does not distribute over
558
+ * the union, and a `Partial` of it does not spread back into `<CanvasView>`, so a wrapper builds its props from
559
+ * {@link CanvasViewCommonProps} and one half. */
560
+ type CanvasViewProps = CanvasViewCommonProps & (CameraHeldViewProps | AimHeldViewProps);
525
561
 
526
562
  /**
527
563
  * One view on a shared canvas. Owns a camera, contributes the viewport node
@@ -533,6 +569,72 @@ interface CanvasViewProps {
533
569
  */
534
570
  declare function CanvasView(props: CanvasViewProps): null;
535
571
 
572
+ /** A point in a view's world. A 2D world is the plane z = 0, so `z` is absent there. */
573
+ interface AimPoint {
574
+ x: number;
575
+ y: number;
576
+ z?: number;
577
+ }
578
+ /** A closed outline in a frame's CSS px, from the frame's top-left; at least 3 points. */
579
+ type AimOutline = readonly {
580
+ x: number;
581
+ y: number;
582
+ }[];
583
+ /** A target view, as an aim is drawn into it: its world, and its frame. */
584
+ interface AimSpace {
585
+ /** The view whose frame this is; `null` for a surface's root view. */
586
+ readonly viewId: string | null;
587
+ /** `'2d'` for core's views; any other value is its owner's (kernel3d: `'3d'`). */
588
+ readonly kind: string;
589
+ readonly size: {
590
+ width: number;
591
+ height: number;
592
+ };
593
+ /** World point to frame px; `null` where the point does not draw (behind a 3D camera). */
594
+ project(p: AimPoint): {
595
+ x: number;
596
+ y: number;
597
+ } | null;
598
+ /** Frame px to the world point under it; `null` where there is none (a 3D ray missing its plane). */
599
+ unproject(px: {
600
+ x: number;
601
+ y: number;
602
+ }): AimPoint | null;
603
+ }
604
+ /** What a viewport shows, read in the world of the view it names. */
605
+ interface ViewAim<TExtent = unknown> {
606
+ readonly viewId: string | null;
607
+ /** Discriminates `extent`: `'rect'` for core's 2D views. */
608
+ readonly kind: string;
609
+ /** Where the aim lies in its world, in its owner's own terms. */
610
+ readonly extent: TExtent;
611
+ /** The aim's outline in `space`'s frame, or `null` when it cannot be drawn there. */
612
+ outlineIn(space: AimSpace): AimOutline | null;
613
+ /** This aim moved so the world point under frame px `from` in `space` ends up under `to`; `null` when either misses. */
614
+ pannedIn(space: AimSpace, from: {
615
+ x: number;
616
+ y: number;
617
+ }, to: {
618
+ x: number;
619
+ y: number;
620
+ }): ViewAim<TExtent> | null;
621
+ }
622
+ /** Core's 2D aim: a world rect a view shows. */
623
+ type RectAim = ViewAim<FramedBox> & {
624
+ readonly kind: 'rect';
625
+ };
626
+ /** The aim of view `viewId` (`null`: a surface's root) showing world rect `rect`. */
627
+ declare function rectAim(viewId: string | null, rect: FramedBox): RectAim;
628
+ /** Whether `aim` is core's 2D rect aim, so its `extent` is a world rect. */
629
+ declare function isRectAim(aim: ViewAim): aim is RectAim;
630
+ /** A 2D view's frame: `view` is its camera and `size` its frame; frame px are measured from the frame's top-left. */
631
+ declare function aimSpace2d(viewId: string | null, view: View, size: Dims): AimSpace;
632
+ /**
633
+ * The camera that shows `rect` in a frame of `size`: `'exact'` per axis (the inverse of `viewportWorldRect`),
634
+ * `'contain'` uniform and centered. Not clamped to a zoom range, and finite for an empty rect or frame. Normalized.
635
+ */
636
+ declare function viewForAim(rect: FramedBox, size: Dims, fit: 'exact' | 'contain'): View;
637
+
536
638
  /**
537
639
  * A view added through {@link SceneCanvasApi.addView}.
538
640
  */
@@ -788,6 +890,13 @@ interface SceneCanvasApi extends CanvasExtensionApi {
788
890
  }, opts?: {
789
891
  except?: string;
790
892
  }): ViewAt;
893
+ /** What view `id` shows (`null`: the canvas's own camera), or `null` while no such view is mounted. */
894
+ aimOf(id: string | null): ViewAim | null;
895
+ /** Point view `id` at `aim`. A camera-held view moves its camera to show the aim exactly, per axis, so a
896
+ * rect of another shape stretches it; for a uniform zoom-to-fit, use `fitViewToBounds` or `animateView`.
897
+ * An aim-held view reports the aim through `onAimChange`. `false` when there is no such view, the aim is
898
+ * not one it can read, or the write goes nowhere: no camera writer, or a controlled view with no handler. */
899
+ setAim(id: string | null, aim: ViewAim): boolean;
791
900
  }
792
901
 
793
902
  /**
@@ -1318,9 +1427,6 @@ interface UseNodeOverlayFrameOptions<TPose> {
1318
1427
  */
1319
1428
  declare function useNodeOverlayFrame<TData, TLayer extends string, TPose extends RectPose>(scene: Scene<TData, TLayer, TPose>, containerRef: RefObject<HTMLElement | null>, nodeId: string | null | undefined, options?: UseNodeOverlayFrameOptions<TPose>): NodeOverlayFrame | null;
1320
1429
 
1321
- /** JSON with object keys sorted, so two equal values produce one string. */
1322
- declare function stableStringify(value: unknown): string;
1323
-
1324
1430
  /** A 2D point in the rect element's local coordinate space. */
1325
1431
  interface HandleDragPoint {
1326
1432
  x: number;
@@ -1412,6 +1518,9 @@ interface ThresholdDragOptions {
1412
1518
  /** Element the session opens on. Defaults to `e.currentTarget`; a list must
1413
1519
  * pass its container, since a grabbed row unmounting drops capture. */
1414
1520
  origin?: Element;
1521
+ /** When the origin captures the pointer: at the press (the default), or only once the press is a drag. Capture at
1522
+ * the press retargets the release, so the click a press below the threshold means lands off what was pressed. */
1523
+ captureAt?: 'press' | 'threshold';
1415
1524
  onActivate?: (e: PointerEvent) => void;
1416
1525
  onMove: (e: PointerEvent) => void;
1417
1526
  onCommit: (e: PointerEvent) => void;
@@ -1898,6 +2007,211 @@ declare function useVelocityTracker(): VelocityTracker;
1898
2007
  */
1899
2008
  declare function interpolateView(from: View, to: View): (t: number) => View;
1900
2009
 
2010
+ /** An aim handed in by value (another surface's view, a 3D pane), with the writer that moves it. */
2011
+ interface AimSource {
2012
+ aim(): ViewAim | null;
2013
+ setAim?(aim: ViewAim): void;
2014
+ }
2015
+ /** How a marker's outline is stroked, in screen px. */
2016
+ interface ViewMarkerStyle {
2017
+ stroke?: string;
2018
+ width?: number;
2019
+ dash?: readonly number[];
2020
+ }
2021
+ /** One view's aim, drawn inside another view's frame. */
2022
+ interface ViewMarkerProps {
2023
+ /** Unique among the markers on one surface. */
2024
+ id: string;
2025
+ /** Whose aim: a view id on this surface, `null` for the root view, or an aim by value. */
2026
+ source: string | null | AimSource;
2027
+ /** Whose frame it is drawn in, after that view's layers: a view id, or `null` for the root. */
2028
+ target: string | null;
2029
+ /** Screen px. Default: stroke `#ffffff`, width 1, dash [2, 3]. */
2030
+ style?: ViewMarkerStyle;
2031
+ /** Default true: dragging the marker edits the source's aim. A source with no writer is never interactive.
2032
+ * A marker grabs its whole interior plus {@link VIEW_MARKER_HIT_SLOP_PX}, so one covering much of its
2033
+ * frame takes every press there; `false` opts out. */
2034
+ interactive?: boolean;
2035
+ }
2036
+ /** The marker style a {@link ViewMarkerProps.style} fills in from: the minimap indicator's. */
2037
+ declare const VIEW_MARKER_DEFAULT_STYLE: Required<ViewMarkerStyle>;
2038
+ /** What a marker resolves aims through: the surface's views. */
2039
+ interface ViewMarkerHost {
2040
+ aimOf(id: string | null): ViewAim | null;
2041
+ setAim(id: string | null, aim: ViewAim): boolean;
2042
+ }
2043
+ /** A screen-space layer, id `view-marker:<id>`, drawing `props`'s source aim in the frame it is handed. */
2044
+ declare function createViewMarkerLayer(props: () => ViewMarkerProps, host: ViewMarkerHost): RenderLayer<unknown>;
2045
+ /** A press on a marker, held for the drag: where it started, and the aim it started from. */
2046
+ interface ViewMarkerGrab {
2047
+ readonly markerId: string;
2048
+ /** Pan the source so the world point under the press ends up under `world`, a point in the target's world. */
2049
+ moveTo(world: {
2050
+ x: number;
2051
+ y: number;
2052
+ }): void;
2053
+ }
2054
+ /** A press this many screen px outside the outline still counts. */
2055
+ declare const VIEW_MARKER_HIT_SLOP_PX = 4;
2056
+ /**
2057
+ * The grab for a press at frame px `at` in `space`, the marker's target, or
2058
+ * `null` when the marker is not interactive, its source has no writer or no
2059
+ * aim, or `at` is not on its outline or within {@link VIEW_MARKER_HIT_SLOP_PX} of it. A surface with views
2060
+ * calls this itself; a canvas with none, such as a detached minimap, calls it to route a press to its marker.
2061
+ */
2062
+ declare function grabViewMarker(props: ViewMarkerProps, host: ViewMarkerHost, space: AimSpace, at: {
2063
+ x: number;
2064
+ y: number;
2065
+ }): ViewMarkerGrab | null;
2066
+
2067
+ /**
2068
+ * Draws one view's aim inside another's frame, after that view's own layers.
2069
+ *
2070
+ * Renders nothing; outside a surface it is inert. Either view may mount after
2071
+ * the marker does: until both are there it draws nothing.
2072
+ */
2073
+ declare function ViewMarker(props: ViewMarkerProps): null;
2074
+
2075
+ /**
2076
+ * The routing types that carry an overlay, bound to the kit's `RenderLayer`.
2077
+ *
2078
+ * `@weasel-js/routing` never reads an overlay — it collects the live ones and
2079
+ * hands them back in scope order — so it leaves the element type open. What a
2080
+ * weasel canvas draws is a `RenderLayer`, and every kit call site should see
2081
+ * that rather than `unknown`, so core binds the parameter once, here, and
2082
+ * re-exports these names under the ones they have always had.
2083
+ */
2084
+
2085
+ /** What a canvas overlay is, at this layer. */
2086
+ type Overlay = RenderLayer<unknown>;
2087
+ declare module '@weasel-js/routing' {
2088
+ interface OverlaySchema {
2089
+ overlay: RenderLayer<unknown>;
2090
+ }
2091
+ }
2092
+ /** Routing's `Contribution`, with overlays typed as `RenderLayer`. */
2093
+ type Contribution = Contribution$1<Overlay>;
2094
+ /** Routing's `ContributionChrome`, with overlays typed as `RenderLayer`. */
2095
+ type ContributionChrome = ContributionChrome$1<Overlay>;
2096
+ /** Routing's `Tool`, with overlays typed as `RenderLayer`. */
2097
+ type Tool = Tool$1<Overlay>;
2098
+ /** The same type as `Tool`, kept for code that imports it by this name. */
2099
+ type AnyTool = Tool;
2100
+ /** Routing's `ToolDef` (what `defineTool` takes), with overlays typed as `RenderLayer`. */
2101
+ type ToolDef = ToolDef$1<Overlay>;
2102
+ /** Routing's `ToolsApi`, with overlays typed as `RenderLayer`. */
2103
+ type ToolsApi = ToolsApi$1<Overlay>;
2104
+ /** Routing's `UseToolsOptions`, with overlays typed as `RenderLayer`. */
2105
+ type UseToolsOptions = UseToolsOptions$1<Overlay>;
2106
+ /** Routing's `useTools`, typed for `RenderLayer` overlays. */
2107
+ declare const useTools: (opts: UseToolsOptions) => ToolsApi;
2108
+
2109
+ /**
2110
+ * The versions a contribution can require, keyed by package without its
2111
+ * `@weasel-js/` scope. Only core reports its version today.
2112
+ */
2113
+ interface KitVersions {
2114
+ core: string;
2115
+ }
2116
+ /** A contribution's `requires`: a semver range per package it was written against. */
2117
+ type KitRequirements = {
2118
+ readonly [K in keyof KitVersions]?: string;
2119
+ };
2120
+ /** The running kit's versions. */
2121
+ declare const KIT_VERSIONS: Readonly<KitVersions>;
2122
+ /** One requirement the running kit does not meet. */
2123
+ interface RequirementMismatch {
2124
+ package: string;
2125
+ range: string;
2126
+ /** The running version, or `undefined` when that package reports none. */
2127
+ running: string | undefined;
2128
+ reason: 'unsatisfied' | 'invalid-range' | 'unknown-package';
2129
+ }
2130
+ /**
2131
+ * Whether `version` falls in `range`. `null` when either cannot be read, so a
2132
+ * caller can tell a mismatch from a requirement it could not check.
2133
+ */
2134
+ declare function satisfiesRange(version: string, range: string): boolean | null;
2135
+ /**
2136
+ * Every requirement in `requires` the running kit does not meet. A package
2137
+ * whose build does not know its own version (`0.0.0-unknown`, core's source
2138
+ * bundled without its define) is skipped: nothing can be said about it.
2139
+ */
2140
+ declare function checkRequirements(requires: KitRequirements, running?: Readonly<Partial<Record<string, string>>>): RequirementMismatch[];
2141
+
2142
+ /** Reads the surface's deps from inside `SurfaceContribution.attach`. */
2143
+ interface ContributionDepReader {
2144
+ get<K extends DepName>(name: K): DepSchema[K] | undefined;
2145
+ }
2146
+ /** What {@link SurfaceContribution.beforePaint} and `afterPaint` are handed. */
2147
+ interface ContributionFrameCtx {
2148
+ /** The frame's timestamp, on `performance.now()`'s clock. Both phases of one
2149
+ * frame see the same value. */
2150
+ readonly time: number;
2151
+ /** The surface camera this frame paints with. */
2152
+ readonly view: View;
2153
+ /** Ask for another frame. A hook animating something calls this every frame
2154
+ * it still has work for, and stops calling it to let the loop go idle. */
2155
+ requestFrame(): void;
2156
+ /** The surface's deps, as `attach` reads them. */
2157
+ readonly deps: ContributionDepReader;
2158
+ }
2159
+ /**
2160
+ * A feature a surface installs in one step. Every role is optional: `bindings`,
2161
+ * `actions`, `deps`, `overlay` and `presentation` from `Contribution`, plus
2162
+ * the ones below. Installing it installs every role it declares, and removing
2163
+ * it removes them.
2164
+ */
2165
+ interface SurfaceContribution extends Contribution {
2166
+ /** Views this entry adds to the surface, as `<SceneCanvas views>` takes. */
2167
+ views?: readonly CanvasViewProps[];
2168
+ /** Markers this entry draws, as `<ViewMarker>` elements would. */
2169
+ markers?: readonly ViewMarkerProps[];
2170
+ /**
2171
+ * Runs once the surface mounts; returns its teardown. For what the roles
2172
+ * above cannot say — a registered (hit-testable) layer, a subscription.
2173
+ *
2174
+ * Keyed by the function's identity, so a contribution built once (in a
2175
+ * `useMemo`, or at module scope) attaches once however often the host
2176
+ * re-renders.
2177
+ */
2178
+ attach?: (api: CanvasExtensionApi, deps: ContributionDepReader) => () => void;
2179
+ /**
2180
+ * Runs on every frame the surface paints, before the paint — for state the
2181
+ * entry's layers read, advanced once per frame. Hooks run in the order the
2182
+ * surface lists its entries (registered tools, then `ambient` in array
2183
+ * order), and one that throws is reported and skipped without stopping the
2184
+ * frame.
2185
+ */
2186
+ beforePaint?: (ctx: ContributionFrameCtx) => void;
2187
+ /** Runs after a frame's pixels have landed, in the same order as
2188
+ * {@link beforePaint}. A frame that painted nothing runs no `afterPaint`. */
2189
+ afterPaint?: (ctx: ContributionFrameCtx) => void;
2190
+ /**
2191
+ * The kit versions this entry was written against, as semver ranges:
2192
+ * `{ core: '^1.7' }`. A mismatch warns in development, or throws where the
2193
+ * surface is set to `versionCheck="strict"`.
2194
+ */
2195
+ requires?: KitRequirements;
2196
+ }
2197
+ /**
2198
+ * Concatenate contribution bundles into one registry, preserving order. Throws
2199
+ * on a duplicate entry id, dep name, view id or marker id — two features
2200
+ * answering for the same name is a bug in whichever was added second.
2201
+ */
2202
+ declare function mergeContributions<T extends SurfaceContribution>(...bundles: readonly (readonly T[])[]): T[];
2203
+
2204
+ /** The action id a drag on a view marker routes to. */
2205
+ declare const VIEW_MARKER_DRAG = "view.marker.drag";
2206
+ /** Drags the grabbed marker. There is nothing to commit, so a cancel ends where a release does. */
2207
+ declare function viewMarkerDragAction(): Action;
2208
+ /**
2209
+ * The always-on entry (id `'view-marker'`) that binds a drag on any marker to {@link VIEW_MARKER_DRAG}.
2210
+ * A `<SceneCanvas>` installs it unless `actions={null}` or a `tools` takeover leaves it out; to turn marker
2211
+ * dragging back on there, pass it in `ambient`, or in the takeover's own `useTools` ambient list.
2212
+ */
2213
+ declare function createViewMarkerContribution(): SurfaceContribution;
2214
+
1901
2215
  /** The size props every canvas host takes. */
1902
2216
  interface SurfaceSizeProps {
1903
2217
  /** CSS-pixel width. Omit it, or `height`, and the element fills its parent
@@ -1913,8 +2227,9 @@ interface SurfaceSizeProps {
1913
2227
  }
1914
2228
 
1915
2229
  /** Where a node's paint can reach, before its pose frame — the scene
1916
- * slot's `paintBounds`. `null` means unknown, and the node is painted. */
1917
- type PaintBoundsFn<TNode, TPose> = (node: TNode, pose: TPose, view: View) => FramedBox | null;
2230
+ * slot's `paintBounds`. `null` means unknown, and the node is painted.
2231
+ * `ctx.inherited` is what its `'inherit'` fill and stroke take, as `drawOne` gets it. */
2232
+ type PaintBoundsFn<TNode, TPose> = (node: TNode, pose: TPose, view: View, ctx?: Pick<NodePaintCtx, 'inherited'>) => FramedBox | null;
1918
2233
 
1919
2234
  /**
1920
2235
  * `renderSceneToCanvas` — substrate for detached, read-only scene views
@@ -2325,133 +2640,6 @@ declare function useKeyState(options?: UseKeyStateOptions): KeyState;
2325
2640
  */
2326
2641
  declare function useKeyModifiers(options?: UseKeyStateOptions): KeyModifiers;
2327
2642
 
2328
- /**
2329
- * The routing types that carry an overlay, bound to the kit's `RenderLayer`.
2330
- *
2331
- * `@weasel-js/routing` never reads an overlay — it collects the live ones and
2332
- * hands them back in scope order — so it leaves the element type open. What a
2333
- * weasel canvas draws is a `RenderLayer`, and every kit call site should see
2334
- * that rather than `unknown`, so core binds the parameter once, here, and
2335
- * re-exports these names under the ones they have always had.
2336
- */
2337
-
2338
- /** What a canvas overlay is, at this layer. */
2339
- type Overlay = RenderLayer<unknown>;
2340
- declare module '@weasel-js/routing' {
2341
- interface OverlaySchema {
2342
- overlay: RenderLayer<unknown>;
2343
- }
2344
- }
2345
- /** Routing's `Contribution`, with overlays typed as `RenderLayer`. */
2346
- type Contribution = Contribution$1<Overlay>;
2347
- /** Routing's `ContributionChrome`, with overlays typed as `RenderLayer`. */
2348
- type ContributionChrome = ContributionChrome$1<Overlay>;
2349
- /** Routing's `Tool`, with overlays typed as `RenderLayer`. */
2350
- type Tool = Tool$1<Overlay>;
2351
- /** The same type as `Tool`, kept for code that imports it by this name. */
2352
- type AnyTool = Tool;
2353
- /** Routing's `ToolDef` (what `defineTool` takes), with overlays typed as `RenderLayer`. */
2354
- type ToolDef = ToolDef$1<Overlay>;
2355
- /** Routing's `ToolsApi`, with overlays typed as `RenderLayer`. */
2356
- type ToolsApi = ToolsApi$1<Overlay>;
2357
- /** Routing's `UseToolsOptions`, with overlays typed as `RenderLayer`. */
2358
- type UseToolsOptions = UseToolsOptions$1<Overlay>;
2359
- /** Routing's `useTools`, typed for `RenderLayer` overlays. */
2360
- declare const useTools: (opts: UseToolsOptions) => ToolsApi;
2361
-
2362
- /**
2363
- * The versions a contribution can require, keyed by package without its
2364
- * `@weasel-js/` scope. Only core reports its version today.
2365
- */
2366
- interface KitVersions {
2367
- core: string;
2368
- }
2369
- /** A contribution's `requires`: a semver range per package it was written against. */
2370
- type KitRequirements = {
2371
- readonly [K in keyof KitVersions]?: string;
2372
- };
2373
- /** The running kit's versions. */
2374
- declare const KIT_VERSIONS: Readonly<KitVersions>;
2375
- /** One requirement the running kit does not meet. */
2376
- interface RequirementMismatch {
2377
- package: string;
2378
- range: string;
2379
- /** The running version, or `undefined` when that package reports none. */
2380
- running: string | undefined;
2381
- reason: 'unsatisfied' | 'invalid-range' | 'unknown-package';
2382
- }
2383
- /**
2384
- * Whether `version` falls in `range`. `null` when either cannot be read, so a
2385
- * caller can tell a mismatch from a requirement it could not check.
2386
- */
2387
- declare function satisfiesRange(version: string, range: string): boolean | null;
2388
- /**
2389
- * Every requirement in `requires` the running kit does not meet. A package
2390
- * whose build does not know its own version (`0.0.0-unknown`, core's source
2391
- * bundled without its define) is skipped: nothing can be said about it.
2392
- */
2393
- declare function checkRequirements(requires: KitRequirements, running?: Readonly<Partial<Record<string, string>>>): RequirementMismatch[];
2394
-
2395
- /** Reads the surface's deps from inside `SurfaceContribution.attach`. */
2396
- interface ContributionDepReader {
2397
- get<K extends DepName>(name: K): DepSchema[K] | undefined;
2398
- }
2399
- /** What {@link SurfaceContribution.beforePaint} and `afterPaint` are handed. */
2400
- interface ContributionFrameCtx {
2401
- /** The frame's timestamp, on `performance.now()`'s clock. Both phases of one
2402
- * frame see the same value. */
2403
- readonly time: number;
2404
- /** The surface camera this frame paints with. */
2405
- readonly view: View;
2406
- /** Ask for another frame. A hook animating something calls this every frame
2407
- * it still has work for, and stops calling it to let the loop go idle. */
2408
- requestFrame(): void;
2409
- /** The surface's deps, as `attach` reads them. */
2410
- readonly deps: ContributionDepReader;
2411
- }
2412
- /**
2413
- * A feature a surface installs in one step. Every role is optional: `bindings`,
2414
- * `actions`, `deps`, `overlay` and `presentation` from `Contribution`, plus
2415
- * the ones below. Installing it installs every role it declares, and removing
2416
- * it removes them.
2417
- */
2418
- interface SurfaceContribution extends Contribution {
2419
- /** Views this entry adds to the surface, as `<SceneCanvas views>` takes. */
2420
- views?: readonly CanvasViewProps[];
2421
- /**
2422
- * Runs once the surface mounts; returns its teardown. For what the roles
2423
- * above cannot say — a registered (hit-testable) layer, a subscription.
2424
- *
2425
- * Keyed by the function's identity, so a contribution built once (in a
2426
- * `useMemo`, or at module scope) attaches once however often the host
2427
- * re-renders.
2428
- */
2429
- attach?: (api: CanvasExtensionApi, deps: ContributionDepReader) => () => void;
2430
- /**
2431
- * Runs on every frame the surface paints, before the paint — for state the
2432
- * entry's layers read, advanced once per frame. Hooks run in the order the
2433
- * surface lists its entries (registered tools, then `ambient` in array
2434
- * order), and one that throws is reported and skipped without stopping the
2435
- * frame.
2436
- */
2437
- beforePaint?: (ctx: ContributionFrameCtx) => void;
2438
- /** Runs after a frame's pixels have landed, in the same order as
2439
- * {@link beforePaint}. A frame that painted nothing runs no `afterPaint`. */
2440
- afterPaint?: (ctx: ContributionFrameCtx) => void;
2441
- /**
2442
- * The kit versions this entry was written against, as semver ranges:
2443
- * `{ core: '^1.7' }`. A mismatch warns in development, or throws where the
2444
- * surface is set to `versionCheck="strict"`.
2445
- */
2446
- requires?: KitRequirements;
2447
- }
2448
- /**
2449
- * Concatenate contribution bundles into one registry, preserving order. Throws
2450
- * on a duplicate entry id, dep name or view id — two features answering for
2451
- * the same name is a bug in whichever was added second.
2452
- */
2453
- declare function mergeContributions<T extends SurfaceContribution>(...bundles: readonly (readonly T[])[]): T[];
2454
-
2455
2643
  /** Entry and layer id of the default feedback, so a host can find or order it. */
2456
2644
  declare const LONG_PRESS_FEEDBACK_ID = "long-press-feedback";
2457
2645
  /** Options for {@link createLongPressFeedbackContribution}. */
@@ -2566,6 +2754,9 @@ interface RenderSceneToPixelsArgs<TData, TLayer extends string, TPose> {
2566
2754
  * `false`: a raster is an export, which leaves them out as the SVG export
2567
2755
  * does. Pass `true` to reproduce the canvas as it looked. */
2568
2756
  annotations?: boolean;
2757
+ /** Screen space → output pixels, which `'screen'`-unit paint is measured in. Default: output pixels. A
2758
+ * raster standing in for part of a larger surface, such as an export's page, names the whole here. */
2759
+ screen?: GlMat3;
2569
2760
  }
2570
2761
  /** The result of planning a headless render: how big the output is, the view
2571
2762
  * that maps the source rect onto it, and the commands to draw. */
@@ -2786,13 +2977,6 @@ type PathGestureFamily = Exclude<keyof typeof PATH_GESTURE_TAGS, 'path'>;
2786
2977
  /** The tags of a path operation in `family`. */
2787
2978
  declare function pathOperationTags(family: PathGestureFamily): readonly string[];
2788
2979
 
2789
- /**
2790
- * The box of a node as drawn — its pose box with the stroke included — which
2791
- * is what selection chrome, resize, rotate, and alignment sit on. Places that
2792
- * store geometry (a group's derived pose, booleans, export) keep reading the
2793
- * pose box through `framedBounds`.
2794
- */
2795
-
2796
2980
  /** The scene reads {@link drawnBoundsOf} makes. `childrenOf` absent: every
2797
2981
  * node is a leaf. `derivedPathOf` absent: every node is measured by its pose,
2798
2982
  * a path-derived one included — `drawnBoundsScene` supplies it for a `Scene`. */
@@ -2818,8 +3002,9 @@ interface DrawnBoundsOptions {
2818
3002
  * The box of `id` drawn at `pose`, stroke included, in the frame the pose is
2819
3003
  * drawn in: a turned node's box comes back turned with it. A node with no
2820
3004
  * stroke, a painter that declares no {@link NodeShapeEntry.drawnBounds}, or
2821
- * `includeStroke: false` answers `framedBounds` unchanged. A container's box
2822
- * reaches as far as its members' boxes do. A node showing a derived path is
3005
+ * `includeStroke: false` answers `framedBounds` unchanged. A group's box
3006
+ * reaches as far as its members' boxes do; a mark's, as far as its own ink and its
3007
+ * children's do. A node showing a derived path is
2823
3008
  * boxed around that path, and its placeholder pose plays no part.
2824
3009
  */
2825
3010
  declare function drawnBoundsOf(scene: DrawnBoundsScene, id: NodeId, pose: unknown, opts?: DrawnBoundsOptions): FramedBox;
@@ -3586,13 +3771,20 @@ declare const sliceAction: Action & {
3586
3771
  requires: string[];
3587
3772
  };
3588
3773
 
3774
+ /**
3775
+ * Delete ops for the sources a removal of `ids` takes with it (see
3776
+ * `hiddenSourcesTakenWith`), for an action whose own ops remove `ids` some
3777
+ * other way. Append them after those ops: a delete finds its slot as it runs.
3778
+ * Sources in `keep` stay.
3779
+ */
3780
+ declare function hiddenSourceDeleteOps(scene: Scene<unknown, string, unknown>, ids: readonly NodeId[], label: string, keep?: ReadonlySet<NodeId>): Op[];
3589
3781
  /** Options for {@link createDeleteAction}. */
3590
3782
  interface DeleteActionOptions {
3591
3783
  /** Runs in place of the default, {@link commitDeleteToScene}. */
3592
3784
  commit?: (ids: readonly NodeId[], deps: ActionDeps) => void;
3593
3785
  }
3594
- /** The default commit: removes `ids` and their dependents as one undo entry,
3595
- * then empties the selection. */
3786
+ /** The default commit: removes `ids`, their dependents, and the sources a
3787
+ * path effect among them hid, as one undo entry, then empties the selection. */
3596
3788
  declare function commitDeleteToScene(ids: readonly NodeId[], deps: ActionDeps): void;
3597
3789
  /** Delete on Delete and Backspace: hands the selected ids to `commit`. */
3598
3790
  declare function createDeleteAction(opts?: DeleteActionOptions): Action & {
@@ -3642,7 +3834,8 @@ declare const clipboardCopyAction: Action & {
3642
3834
  };
3643
3835
  /**
3644
3836
  * Static descriptor for the `clipboard.cut` Action (Cmd/Ctrl+X) — copy, then
3645
- * the same batched delete `deleteAction` performs, as one undo entry.
3837
+ * the same batched delete `deleteAction` performs, as one undo entry: the
3838
+ * sources a path effect hid go too.
3646
3839
  */
3647
3840
  declare const clipboardCutAction: Action & {
3648
3841
  requires: string[];
@@ -5033,12 +5226,11 @@ interface SceneCanvasPointerProps {
5033
5226
  */
5034
5227
  isPointerInteractive?: (id: string) => boolean;
5035
5228
  /**
5036
- * The group isolation is working inside, or null outside isolation. A double-click names the
5037
- * outermost group above the node hit, stopping below this one, so each double-click drills one
5038
- * group further in; where no group stands between them it names the node hit. Absent, groups
5039
- * are named from the scene root. Single clicks are untouched.
5229
+ * The entered group: the group a press resolves inside of, and which a double-click drills down
5230
+ * from. Nodes outside it take no hits. Pass one from `useEnteredGroup(scene)` to read or drive it
5231
+ * from outside the canvas, as `selection` is passed; without it the canvas keeps its own.
5040
5232
  */
5041
- isolatedGroup?: () => string | null;
5233
+ enteredGroup?: EnteredGroupApi;
5042
5234
  /**
5043
5235
  * Called when the user double-clicks the canvas, with the hit node (id + kind) at that
5044
5236
  * position, or `null` on empty canvas. A notification, not a binding: it fires whatever the
@@ -5055,6 +5247,29 @@ interface SceneCanvasPointerProps {
5055
5247
  onHover?: (id: string | null) => void;
5056
5248
  }
5057
5249
 
5250
+ /** The `<SceneCanvas>` props that change the actions and bindings a canvas has. */
5251
+ interface SceneCanvasActionProps {
5252
+ /**
5253
+ * Tune actions on this canvas without restating them, keyed by action id:
5254
+ * `params` every invocation starts from, and `bindings` added beside the
5255
+ * action's own. A tuning applies to whichever descriptor holds the id, a
5256
+ * preset's or a tool's. Pass a stable object; a params thunk is read on
5257
+ * every call. See the core README ("Tuning an action").
5258
+ */
5259
+ tune?: ActionTunings;
5260
+ /**
5261
+ * Replace or remove bindings by binding id, on actions and contributions
5262
+ * alike: a route string (`'[*:*] keyDown(=) +mod'`), a spec (`key('Mod+=')`),
5263
+ * or `null` to unbind. Pass a stable object.
5264
+ */
5265
+ bindingOverrides?: BindingOverrides;
5266
+ /**
5267
+ * Replace, add or mute whole action descriptors. Pass `null` to disable
5268
+ * all defaults. To change a built-in's params or add a key, use `tune`.
5269
+ */
5270
+ actions?: ActionsProp;
5271
+ }
5272
+
5058
5273
  /**
5059
5274
  * Turns pasted or dropped plain text into a text node sized to the string. Registered nowhere by
5060
5275
  * default: a canvas opts in with `ingestion={{ handlers: [kitTextHandler] }}`.
@@ -5142,11 +5357,11 @@ interface PoseTransitionSeat<TPose> {
5142
5357
  declare function glidesByDefault(write: PoseWrite<unknown>): boolean;
5143
5358
  /** The part of a scene a pose transition hears and reads. */
5144
5359
  interface PoseTransitionScene<TPose, TNode = unknown> extends Pick<ScenePoseReports<TPose, TNode>, 'onPoseWrite'> {
5145
- readonly overrides: Pick<PoseOverrides<TPose>, 'has'>;
5360
+ readonly overrides: Pick<PoseOverrides<TPose>, 'read'>;
5146
5361
  }
5147
5362
  /** Hand `scene`'s pose writes to the seat's transition, each gliding from the
5148
- * pose it was shown at. A node something else is showing through an override
5149
- * — a drag's preview, another animation — is left to it. With `departures`,
5363
+ * pose it was shown at. A node something else poses through an override — a
5364
+ * drag's preview, another animation — is left to it. With `departures`,
5150
5365
  * removals leave as ghosts there, and a node that comes back while its ghost
5151
5366
  * is leaving returns from where the ghost was. */
5152
5367
  declare function bindPoseTransition<TPose, TNode = unknown>(scene: PoseTransitionScene<TPose, TNode>, seat: () => PoseTransitionSeat<TPose> | null | undefined, departures?: Departures<TPose, TNode>): () => void;
@@ -5164,13 +5379,13 @@ interface NodeRoutingEntry {
5164
5379
  * the kit places no constraint beyond uniqueness within a registry. */
5165
5380
  name: string;
5166
5381
  /** Predicate over a node's `data` payload, and the node itself where the caller has one, for
5167
- * a kind its data cannot show (`'container'`). First registered kind whose `matches` returns
5382
+ * a kind its data cannot show (`'group'`). First registered kind whose `matches` returns
5168
5383
  * true claims the node. */
5169
5384
  matches: (data: unknown, node?: RoutedNode) => boolean;
5170
5385
  }
5171
5386
  /** What a routing entry may read of a node beside its data. */
5172
5387
  interface RoutedNode {
5173
- /** The node's structural kind: `'leaf'` or `'container'`. */
5388
+ /** The node's structural kind: `'mark'` or `'group'`. */
5174
5389
  readonly kind?: string;
5175
5390
  }
5176
5391
  /**
@@ -6006,6 +6221,14 @@ interface CanvasProps<TPose = unknown> extends SurfaceSizeProps {
6006
6221
  layerGroups?: readonly LayerGroup[];
6007
6222
  }
6008
6223
 
6224
+ /**
6225
+ * What a node declaring `clip: 'outline'` clips its children to, in world
6226
+ * coordinates: the silhouette of whichever painter claims it, the rect
6227
+ * fallback's box included, or `null` when none does. `derived` supplies a
6228
+ * derived path when there is one.
6229
+ */
6230
+ declare function clipOutline<TPose>(node: Node<unknown, string, TPose>, pose: TPose, derived?: () => Path | null | undefined): Path | null;
6231
+
6009
6232
  /** Adds `source` to the enclosing `<SceneCanvas>`'s snapping while mounted.
6010
6233
  * Pass a stable object: a new one each render re-registers it. */
6011
6234
  declare function useSnapSource(source: SnapSource): void;
@@ -6484,19 +6707,6 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<TP
6484
6707
  longPress?: SceneCanvasLongPress;
6485
6708
  /** Configures the `view` preset, and implies it. See {@link SceneCanvasViewport}. */
6486
6709
  viewport?: SceneCanvasViewport;
6487
- /**
6488
- * Tune actions on this canvas without restating them, keyed by action id:
6489
- * `params` every invocation starts from, and `bindings` added beside the
6490
- * action's own. A tuning applies to whichever descriptor holds the id, a
6491
- * preset's or a tool's. Pass a stable object; a params thunk is read on
6492
- * every call. See the core README ("Tuning an action").
6493
- */
6494
- tune?: ActionTunings;
6495
- /**
6496
- * Replace, add or mute whole action descriptors. Pass `null` to disable
6497
- * all defaults. To change a built-in's params or add a key, use `tune`.
6498
- */
6499
- actions?: ActionsProp;
6500
6710
  /**
6501
6711
  * Given a scene node, return a short human-readable "kind" label (e.g. `'rectangle'`,
6502
6712
  * `'sticky note'`), which the kit publishes per id into any surrounding
@@ -6618,7 +6828,7 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<TP
6618
6828
  * nor picked here. See `CanvasProps.layerOrder`.
6619
6829
  */
6620
6830
  layerOrder?: string[];
6621
- } & SceneCanvasPointerProps;
6831
+ } & SceneCanvasPointerProps & SceneCanvasActionProps;
6622
6832
 
6623
6833
  /**
6624
6834
  * The behavior presets `<SceneCanvas features>` composes. A bare canvas renders
@@ -6729,10 +6939,11 @@ declare function defaultDrawOne<TData, TLayer extends string, TPose>(node: Node<
6729
6939
  /**
6730
6940
  * The box {@link defaultDrawOne}'s output for `node` fits in — the matched
6731
6941
  * painter's `bounds` — or `null` when it has none, or when a `data.label`
6732
- * overlay adds text nothing bounds cheaply. The scene slot's `cull` reads it
6733
- * to skip painting nodes the view cannot see.
6942
+ * overlay adds text nothing bounds cheaply, or an inherited stroke with no
6943
+ * `ctx.inherited` to say what it takes. The scene slot's `cull` reads it to
6944
+ * skip painting nodes the view cannot see.
6734
6945
  */
6735
- declare function defaultPaintBounds<TData, TLayer extends string, TPose>(node: Node<TData, TLayer, TPose>, pose: TPose, view: View): FramedBox | null;
6946
+ declare function defaultPaintBounds<TData, TLayer extends string, TPose>(node: Node<TData, TLayer, TPose>, pose: TPose, view: View, ctx?: Pick<NodePaintCtx, 'inherited'>): FramedBox | null;
6736
6947
 
6737
6948
  /**
6738
6949
  * Pose rotation helpers. The kit applies the rotation wrap around EVERY
@@ -6946,6 +7157,35 @@ interface PickHudProps {
6946
7157
  * would actually select shown in bold. */
6947
7158
  declare function PickHud({ canvasRef, anchorRef, viewRef, toWorld, pickEvery, pickBest, offset }: PickHudProps): react.JSX.Element | null;
6948
7159
 
7160
+ /** The part of a scene the lookup reads. */
7161
+ type ParentLookup<TNode> = {
7162
+ get(id: NodeId): TNode | undefined;
7163
+ };
7164
+ type PaintedNode = {
7165
+ data?: unknown;
7166
+ parent?: NodeId | null;
7167
+ };
7168
+
7169
+ /** What an `'inherit'` fill and stroke on `node` would take from its
7170
+ * containers in `scene`, whatever `node` holds now — what an editor offering
7171
+ * the choice shows it would paint. */
7172
+ declare function paintAbove<TNode extends PaintedNode>(scene: ParentLookup<TNode>, node: TNode): InheritedPaint;
7173
+ /**
7174
+ * Wrap a `drawOne` so a node whose fill or stroke is `'inherit'` arrives at
7175
+ * the painter with its containers' paint on `ctx.inherited`, as
7176
+ * `withDerivedPaths` does for a derived path. Every other node, and one whose
7177
+ * caller already says what it inherits — a ghost whose containers are mid-edit —
7178
+ * passes the caller's `ctx` through untouched.
7179
+ */
7180
+ declare function withInheritedPaints<TData, TLayer extends string, TPose>(scene: ParentLookup<Node<TData, TLayer, TPose>>, drawOne: SceneViewDrawOne<TData, TLayer, TPose>): SceneViewDrawOne<TData, TLayer, TPose>;
7181
+ /**
7182
+ * {@link withInheritedPaints} for a cull's `paintBounds`: a node whose stroke
7183
+ * is `'inherit'` is measured with its containers' stroke on `ctx.inherited`,
7184
+ * unless its caller already says what it inherits. For a consumer culling its
7185
+ * own scene walk with `defaultPaintBounds`, which cannot bound such a node alone.
7186
+ */
7187
+ declare function withInheritedPaintBounds<TData, TLayer extends string, TPose>(scene: ParentLookup<Node<TData, TLayer, TPose>>, paintBounds: PaintBoundsFn<Node<TData, TLayer, TPose>, TPose>): PaintBoundsFn<Node<TData, TLayer, TPose>, TPose>;
7188
+
6949
7189
  /**
6950
7190
  * The render walk's half of derived paths: resolving one against a scene, and
6951
7191
  * handing it to the painter.
@@ -7044,6 +7284,8 @@ interface SceneToAdapterOptions<TData, TLayer extends string, TPose> {
7044
7284
  selection?: SceneAdapterSelection;
7045
7285
  /** How to read and rewrite this scene's poses. Default `AUTO_POSE_DESCRIPTOR`. */
7046
7286
  poseDescriptor?: PoseDescriptor<TPose>;
7287
+ /** The container a paste lands in, read at each paste: `<SceneCanvas>` passes the `insertInto` dep's. */
7288
+ pasteInto?: () => string | null;
7047
7289
  }
7048
7290
  /** Derive the adapter for a scene. Reads go straight to the scene; writes are
7049
7291
  * ops applied through its history, so anything done through the adapter is
@@ -7062,7 +7304,7 @@ declare function sceneToAdapter<TData, TLayer extends string, TPose>(scene: Scen
7062
7304
  */
7063
7305
  declare function useSceneAdapter<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, options?: SceneToAdapterOptions<TData, TLayer, TPose>): SceneCanvasAdapter<TData, TLayer, TPose>;
7064
7306
 
7065
- /** Routes a container node as `'group'`, whatever its data holds. `inferredNodeRouting` leads
7307
+ /** Routes a group node as `'group'`, whatever its data holds. `inferredNodeRouting` leads
7066
7308
  * with it; spread it ahead of `defaultNodeRouting`, which is the shape-kind table alone. */
7067
7309
  declare const groupNodeRouting: NodeRoutingEntry;
7068
7310
  /**
@@ -7199,6 +7441,27 @@ declare function resolvePreviews<TData, TLayer extends string, TPose>(sources: I
7199
7441
  /** Every entry in the forest, parents before their children. */
7200
7442
  declare function flattenPreviews<TData, TLayer extends string, TPose>(roots: readonly PreviewNode<TData, TLayer, TPose>[]): PreviewNode<TData, TLayer, TPose>[];
7201
7443
 
7444
+ /**
7445
+ * Publish every in-flight handle's `previewPose` and `previewData` to
7446
+ * `scene`'s overrides each time `dispatcher` notifies, through one hold, and
7447
+ * release them when the handles end. Returns the unsubscribe, which also
7448
+ * releases what is still published.
7449
+ *
7450
+ * Previewed data is shown as the fields it changes from what the node stored
7451
+ * when its preview began, laid over what the node stores now: a write made
7452
+ * mid-gesture, or its undo, shows through, as it will be kept when the edit
7453
+ * commits against the node as it then stands. Data that is not a plain
7454
+ * object is shown as it is.
7455
+ *
7456
+ * A handle with `previewHidesSource: false` previews a copy rather than its
7457
+ * source, so it is left out. On an id another writer's override already holds —
7458
+ * a transform's own frame, a live route — the preview is a ply over it, so a
7459
+ * field the handle does not propose shows what that writer says. The dispatcher
7460
+ * notifies after a handle's `onEnd`, so a commit has landed before its preview
7461
+ * goes.
7462
+ */
7463
+ declare function publishPreviews<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, dispatcher: Pick<Dispatcher, 'getInFlightHandles' | 'subscribe'>): () => void;
7464
+
7202
7465
  /**
7203
7466
  * The one answer to "how big is the thing this in-flight insert is making",
7204
7467
  * shared by the preview paint, the commit, and the gesture's reported bounds.
@@ -7415,14 +7678,18 @@ interface WorkspaceTintLayerOptions {
7415
7678
  page?: () => Rect | null;
7416
7679
  /** Opacity for every mode's tint, in place of its `workspace.intensity`. */
7417
7680
  intensity?: number;
7681
+ /** The tint shown in a mode with none of its own, and what announces a change to it. */
7682
+ fallback?: {
7683
+ visual: () => WorkspaceVisual | null;
7684
+ subscribe: (fn: () => void) => () => void;
7685
+ };
7418
7686
  id?: string;
7419
7687
  label?: string;
7420
7688
  }
7421
7689
  /**
7422
- * A screen-space layer painting the active mode's `WorkspaceVisual`: nothing in
7423
- * a mode without a tint, otherwise a wash at the mode's intensity, bottom-up or
7424
- * top-down when the mode names a gradient. It subscribes to the registry, so a
7425
- * mode switch repaints it.
7690
+ * A screen-space layer painting the active mode's `WorkspaceVisual`, or the `fallback`'s in a
7691
+ * mode without one: a wash at `intensity`, else that visual's own, bottom-up or top-down when it
7692
+ * names a gradient.
7426
7693
  */
7427
7694
  declare function workspaceTintLayer(opts: WorkspaceTintLayerOptions): RenderLayer<unknown>;
7428
7695
  /** A world-space layer drawing a `ModeDecorations`' active painter. It
@@ -7452,9 +7719,9 @@ interface ModeTriggerHandlers {
7452
7719
  *
7453
7720
  * The target is the node the dispatcher classified the double-click on (the `hitAt` dep's
7454
7721
  * `doubleClick`, else its hit), the one the binding's `kind:` target matched: a double-click on
7455
- * a grouped member names its outermost group inside `<SceneCanvas isolatedGroup>`. The action is live in every mode, the target mode
7456
- * included, so a double-click on another node moves a mode onto it; `canEnter` and `enter`
7457
- * decide what a switch from the current mode means.
7722
+ * a grouped member names its outermost group inside the entered group (`<SceneCanvas enteredGroup>`).
7723
+ * The action is live in every mode, the target mode included, so a double-click on another node
7724
+ * moves a mode onto it; `canEnter` and `enter` decide what a switch from the current mode means.
7458
7725
  *
7459
7726
  * The bindings ride the ambient tier: a tool that claims the double-click itself, the pen
7460
7727
  * finishing a stroke, keeps it.
@@ -7563,6 +7830,19 @@ declare function DevtoolsLabel({ value, children }: DevtoolsLabelProps): react.J
7563
7830
  /** The label the nearest `<DevtoolsLabel>` gives, or null outside one. */
7564
7831
  declare function useDevtoolsLabel(): string | null;
7565
7832
 
7833
+ /**
7834
+ * The entered group as a scope: everything outside its subtree dims and stops taking hits, and
7835
+ * so does the group itself, whose empty box is empty canvas while it is entered. With nothing
7836
+ * entered every node is lit and live. Compose `alphaFor` into `<SceneCanvas alphaFor>` and the
7837
+ * scope into `redrawOn` to show it.
7838
+ */
7839
+ declare function createEnteredGroupScope(opts: {
7840
+ entered: EnteredGroupApi;
7841
+ scene: Pick<Scene<unknown, string, unknown>, 'ancestorsOf'>;
7842
+ /** Alpha for a node outside the entered group. Default `OUT_OF_SCOPE_ALPHA`. */
7843
+ dimAlpha?: number;
7844
+ }): NodeScope;
7845
+
7566
7846
  /**
7567
7847
  * Bundle a list of Affordances into a single RenderLayer.
7568
7848
  *
@@ -7885,8 +8165,8 @@ interface DefaultTextData {
7885
8165
  text?: string;
7886
8166
  style?: TextStyle;
7887
8167
  runs?: readonly StyledRun[];
7888
- fill?: Fill | null;
7889
- stroke?: Stroke | null;
8168
+ fill?: Fill | Inherit | null;
8169
+ stroke?: Stroke | Inherit | null;
7890
8170
  verticalAlign?: TextVerticalAlign;
7891
8171
  padding?: number;
7892
8172
  overflow?: TextOverflow;
@@ -8117,10 +8397,6 @@ declare function strokeOf(color: string, width?: number): CommandStroke & {
8117
8397
  /** A stroke painted with `paint` at `width` world units — `strokeOf`'s sibling
8118
8398
  * for a gradient or pattern, which has no color to pass. */
8119
8399
  declare function strokeWith(paint: Paint, width?: number): Stroke;
8120
- /** The kit's default node fill — what a shape with no declared fill paints. */
8121
- declare const DEFAULT_SHAPE_FILL: Fill & {
8122
- paint: Paint;
8123
- };
8124
8400
  /**
8125
8401
  * The 0..1 alpha a paint paints at.
8126
8402
  *
@@ -8612,7 +8888,7 @@ declare function createScene<TData, TLayer extends string, TPose = RectPose>(opt
8612
8888
  * registry passed in `options`. Throws on unknown version, unknown registry
8613
8889
  * keys, or invalid scene shape (cross-layer subtrees, unknown layer ids).
8614
8890
  * The scene starts with empty history. */
8615
- declare function sceneFromJSON<TData, TLayer extends string, TPose>(json: SerializedScene<TData, TLayer, TPose>, options?: {
8891
+ declare function sceneFromJSON<TData, TLayer extends string, TPose>(json: SerializedScene<TData, TLayer, TPose> | SerializedSceneV1<TData, TLayer, TPose>, options?: {
8616
8892
  registry?: SceneRegistry<TPose, TData, TLayer>;
8617
8893
  historyLimit?: number;
8618
8894
  coalesceWindowMs?: number;
@@ -8620,7 +8896,7 @@ declare function sceneFromJSON<TData, TLayer extends string, TPose>(json: Serial
8620
8896
  ops?: Readonly<Record<string, RegisteredOp<unknown>>>;
8621
8897
  composition?: UseSceneOptions<TData, TLayer, TPose>['composition'];
8622
8898
  layoutFrame?: UseSceneOptions<TData, TLayer, TPose>['layoutFrame'];
8623
- }): Scene<TData, TLayer, TPose>;
8899
+ } & SpecsFromSerializedOptions<TData, TLayer, TPose>): Scene<TData, TLayer, TPose>;
8624
8900
 
8625
8901
  /**
8626
8902
  * The scene's selection: the transient set of active ids. Not document
@@ -8673,6 +8949,33 @@ declare function useScene<TItem extends {
8673
8949
  * history configuration. */
8674
8950
  declare function useScene<TData, TLayer extends string, TPose = RectPose>(options: UseSceneOptions<TData, TLayer, TPose>): Scene<TData, TLayer, TPose>;
8675
8951
 
8952
+ /** True for a node with no children: absent and empty are the same thing. */
8953
+ declare function isLeaf(node: {
8954
+ children?: readonly NodeId[];
8955
+ }): boolean;
8956
+ /** True for a node with at least one child; narrows `children` to present. */
8957
+ declare function hasChildren<T extends {
8958
+ children?: readonly NodeId[];
8959
+ }>(node: T): node is T & {
8960
+ children: NodeId[];
8961
+ };
8962
+
8963
+ /** The plain optional fields a node or an `AddNodeSpec` may state. */
8964
+ interface StatedNodeFields {
8965
+ pickable?: boolean;
8966
+ hidden?: boolean;
8967
+ locked?: boolean;
8968
+ units?: UnitScope;
8969
+ clip?: NodeClip;
8970
+ }
8971
+ /** The plain optional fields of a node or spec as a spread for `scene.add`:
8972
+ * each present only when stated, so an unstated one keeps the scene's
8973
+ * default, and a flag states only `true`. What a copy of a node carries over
8974
+ * besides its kind, layer, pose, data and functions. */
8975
+ declare const statedFields: (n: StatedNodeFields & {
8976
+ kind?: string;
8977
+ }) => StatedNodeFields;
8978
+
8676
8979
  /**
8677
8980
  * Build a {@link PoseOverrides} map.
8678
8981
  *
@@ -8680,12 +8983,12 @@ declare function useScene<TData, TLayer extends string, TPose = RectPose>(option
8680
8983
  * `onInvalidate` lets the scene invalidate derived nodes from the same
8681
8984
  * chokepoint.
8682
8985
  *
8683
- * What `read` answers is a blits mix folded per node. The entries a writer
8684
- * `set`s are one voice on it, and a node holding no entry is never probed.
8986
+ * What `read` answers is folded from the node's plies by `foldPlies`, its
8987
+ * path by `plyPath`; a node holding no entry is never probed.
8685
8988
  */
8686
- declare function createPoseOverrides<TPose>(getNode: (id: NodeId) => {
8989
+ declare function createPoseOverrides<TPose, TData = unknown>(getNode: (id: NodeId) => {
8687
8990
  data?: unknown;
8688
- } | undefined, onInvalidate?: (id: NodeId) => void): PoseOverrides<TPose>;
8991
+ } | undefined, onInvalidate?: (id: NodeId) => void): PoseOverrides<TPose, TData>;
8689
8992
 
8690
8993
  /**
8691
8994
  * Bring `scene` from `prev` to `next`: add what `next` gained, remove what it
@@ -8746,7 +9049,7 @@ declare class SceneArrivalRefused extends Error {
8746
9049
  * it without importing the full generic shape. */
8747
9050
  interface PosedNode<TPose> {
8748
9051
  id: NodeId;
8749
- kind?: 'leaf' | 'container';
9052
+ kind?: 'mark' | 'group';
8750
9053
  pose: TPose;
8751
9054
  /** Read only by the memo, which keys on its reference alongside the pose. */
8752
9055
  data?: unknown;
@@ -8787,10 +9090,11 @@ declare function derivedPose<TPose>(source: PoseSource<TPose>, node: PosedNode<T
8787
9090
  * resolved before it is read.
8788
9091
  */
8789
9092
  declare function derivedDepOf<TPose>(source: PoseSource<TPose>, id: NodeId, reader?: PosedNode<TPose>): DerivedDep<TPose> | undefined;
8790
- /** `id` as {@link derivedDepOf} answers it, but at the pose and path the
8791
- * document holds: no override anywhere down its dependencies counts. For a
8792
- * reader that must not see an in-flight gesture, such as an edit pass. */
8793
- declare function documentDepOf<TPose>(source: PoseSource<TPose>, id: NodeId): DerivedDep<TPose> | undefined;
9093
+ /** `id` as {@link derivedDepOf} answers it, but at the pose, path and data the
9094
+ * document holds: no override anywhere down its dependencies counts. The same
9095
+ * reading as `derivedDepOf(documentOf(source), …)`, for a reader that must not
9096
+ * see an in-flight gesture or an open edit, such as an edit pass. */
9097
+ declare function documentDepOf<TPose>(source: PoseSource<TPose>, id: NodeId, reader?: PosedNode<TPose>): DerivedDep<TPose> | undefined;
8794
9098
  /**
8795
9099
  * The pose the *document* says `node` is at: derived when it derives, else
8796
9100
  * authored. `effectivePose` minus the override step, at every link of the
@@ -8798,7 +9102,8 @@ declare function documentDepOf<TPose>(source: PoseSource<TPose>, id: NodeId): De
8798
9102
  * something it derives from is being dragged.
8799
9103
  *
8800
9104
  * For a reader that must not see an in-flight gesture, such as an action
8801
- * capturing the `from` of a transform op.
9105
+ * capturing the `from` of a transform op. The same reading as
9106
+ * `effectivePose(documentOf(source), node)`.
8802
9107
  */
8803
9108
  declare function documentPose<TPose>(source: PoseSource<TPose>, node: PosedNode<TPose>): TPose;
8804
9109
  /**
@@ -8846,6 +9151,42 @@ interface PoseFeed<TData, TLayer extends string, TPose> {
8846
9151
  * under any override). The first `read()` is a reset listing every node. */
8847
9152
  declare function createPoseFeed<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>): PoseFeed<TData, TLayer, TPose>;
8848
9153
 
9154
+ /**
9155
+ * `nodeAsShown` — a node with the data its override shows it with.
9156
+ *
9157
+ * The one read of `PoseOverride.data`. Painting, picking, drawn bounds and the
9158
+ * effective reading of a derivation go through it; the document reading
9159
+ * (`documentOf`), history and `scene.get` never do.
9160
+ */
9161
+
9162
+ /** What `nodeAsShown` reads of the overrides: a `Scene`'s satisfy it. */
9163
+ interface ShownDataSource {
9164
+ read(id: NodeId): {
9165
+ data?(stored: never): unknown;
9166
+ } | undefined;
9167
+ }
9168
+ /**
9169
+ * `node` with its `data` replaced by what its override's `data` answers from
9170
+ * it, or `node` itself when nothing overrides its data or its data is already
9171
+ * shown. The same object while the stored node, its data and the override's
9172
+ * function are unchanged.
9173
+ */
9174
+ declare function nodeAsShown<TNode extends {
9175
+ id: NodeId;
9176
+ data?: unknown;
9177
+ }>(overrides: ShownDataSource, node: TNode): TNode;
9178
+
9179
+ /**
9180
+ * `source` read as its document holds it: the same object in every respect but
9181
+ * its `overrides`, which are empty, so no pose, path or data override reaches
9182
+ * anything handed it. One view per source, so memos keyed on it hit. The
9183
+ * readers it is handed to memoize the document reading apart from the shown
9184
+ * one, as `documentPose` and `documentDepOf` do.
9185
+ */
9186
+ declare function documentOf<TSource extends {
9187
+ readonly overrides: unknown;
9188
+ }>(source: TSource): TSource;
9189
+
8849
9190
  /** Registry key for {@link unionOfChildren}. */
8850
9191
  declare const UNION_OF_CHILDREN = "kit:unionOfChildren";
8851
9192
  /**
@@ -8953,7 +9294,7 @@ interface MeasureHit {
8953
9294
  * units of it, else a line within the same distance. A hidden or locked
8954
9295
  * measurement (`nodeGates`) is passed over.
8955
9296
  */
8956
- declare function measureAt(scene: Pick<Scene<unknown, string, unknown>, 'renderOrderNodes' | 'get' | 'layers'>, ms: Pick<Measurements, 'layer'>, p: MeasurePoint, tolerance: number): MeasureHit | null;
9297
+ declare function measureAt(scene: Pick<Scene<unknown, string, unknown>, 'renderOrderNodes' | 'get' | 'layers' | 'overrides'>, ms: Pick<Measurements, 'layer'>, p: MeasurePoint, tolerance: number): MeasureHit | null;
8957
9298
  /** Options for `measureEndSource`. */
8958
9299
  interface MeasureEndSourceOptions {
8959
9300
  /** Overrides the canvas's reach for measurement ends, in screen px. */
@@ -9232,7 +9573,8 @@ declare function pathNodesOf(scene: Pick<Scene<unknown, string, unknown>, 'get'>
9232
9573
  data: unknown;
9233
9574
  } | undefined): PathNode[];
9234
9575
  /** `node` storing `worldPath` as plain geometry, or null when it holds no
9235
- * editable polygon. */
9576
+ * editable polygon. The same object while the node and the path are, so a
9577
+ * gesture previewing through it keeps its preview's identity between frames. */
9236
9578
  declare function withPath(node: Node<unknown, string, unknown>, worldPath: PolygonPath): {
9237
9579
  pose: unknown;
9238
9580
  data: unknown;
@@ -9449,12 +9791,21 @@ declare function nodeOutline(node: Node<unknown, string, unknown>): Path | null;
9449
9791
  /** One painted piece of a derived path. */
9450
9792
  interface DerivedPart {
9451
9793
  path: Path;
9452
- /** The part's fill. Absent, the node's own `data.fill` paints it; `null`
9453
- * paints none. */
9454
- fill?: Fill | null;
9794
+ /** The part's fill, read as a node's is: absent paints none, and
9795
+ * `INHERIT` takes the node's own `data.fill`. */
9796
+ fill?: Fill | Inherit | null;
9455
9797
  /** The part's stroke, on the same terms as `fill`. */
9456
- stroke?: Stroke | null;
9457
- }
9798
+ stroke?: Stroke | Inherit | null;
9799
+ }
9800
+ /** What `part` paints, its `INHERIT` taken from `own`, the deriving node's
9801
+ * data — whose own `INHERIT` takes `inherited`, its container's. */
9802
+ declare function resolvePartPaint(part: DerivedPart, own: {
9803
+ fill?: Fill | Inherit | null;
9804
+ stroke?: Stroke | Inherit | null;
9805
+ } | null | undefined, inherited?: InheritedPaint): {
9806
+ fill: PaintedFill | null;
9807
+ stroke: PaintedStroke | null;
9808
+ };
9458
9809
  /**
9459
9810
  * One path holding every part's outline, with the parts remembered against
9460
9811
  * it for the painter. Return it from a `derivePath`. `null` for no parts.
@@ -9471,6 +9822,28 @@ declare function derivedPartsOf(path: Path | null | undefined): readonly Derived
9471
9822
  * `createPathEffectDerivations` by the layer that owns the painters.
9472
9823
  */
9473
9824
 
9825
+ /** Options every path effect may take. */
9826
+ interface PathEffectOptions {
9827
+ /** Its sources are hidden while it shows them. */
9828
+ hideSources?: boolean;
9829
+ /**
9830
+ * With `hideSources`, the positions in its sources of those already hidden
9831
+ * when it was made: it leaves them hidden when it goes, and takes none of
9832
+ * them with it. Absent, it hid them all. `scene.setDependsOn` moves it
9833
+ * with the sources it names.
9834
+ */
9835
+ foundHidden?: readonly number[];
9836
+ }
9837
+ /** One rigid piece an effect lays along a path, in its own frame: x from 0 at its leading edge to `length`, y down,
9838
+ * its anchor line (a glyph's baseline) at y = 0. */
9839
+ interface EffectItem {
9840
+ /** How much of the path it takes. */
9841
+ length: number;
9842
+ /** Height above the anchor line of the line it centers on — a glyph's x-height middle. */
9843
+ middle: number;
9844
+ /** What it paints; empty for a piece that only takes room, such as a space. */
9845
+ parts: readonly DerivedPart[];
9846
+ }
9474
9847
  /** A source shape. */
9475
9848
  interface EffectSource {
9476
9849
  /** Its outline where it is drawn. */
@@ -9492,6 +9865,9 @@ interface EffectSource {
9492
9865
  * a real "none". */
9493
9866
  fill: Fill | null;
9494
9867
  stroke: Stroke | null;
9868
+ /** The pieces it lays one by one along a path — a text node's grapheme
9869
+ * clusters. Called only by an effect that lays items. */
9870
+ items?: () => readonly EffectItem[];
9495
9871
  }
9496
9872
  /** Reads one dependency as a source; `null` when it has no outline. */
9497
9873
  type EffectSourceReader = (dep: DerivedDep<unknown>) => EffectSource | null;
@@ -9503,7 +9879,7 @@ type EffectSourceReader = (dep: DerivedDep<unknown>) => EffectSource | null;
9503
9879
 
9504
9880
  /** Steps between two shapes. Its sources are `[from, to]`, or
9505
9881
  * `[from, to, spine]` to lay the steps along a third path. */
9506
- interface BlendEffect extends BlendPathsOptions {
9882
+ interface BlendEffect extends BlendPathsOptions, PathEffectOptions {
9507
9883
  kind: 'blend';
9508
9884
  /** How many shapes stand between the two sources, spacing by count. */
9509
9885
  steps: number;
@@ -9530,22 +9906,53 @@ interface BlendEffect extends BlendPathsOptions {
9530
9906
  orient?: boolean;
9531
9907
  }
9532
9908
 
9909
+ /**
9910
+ * Text along a path: a source's items — a text node's grapheme clusters, or a
9911
+ * whole shape as one item — laid end to end along a path, each turned to it.
9912
+ */
9913
+
9914
+ /**
9915
+ * Text (or any shape) laid along a path, item by item. Its sources are `[text, path]`. Only the text's first laid line
9916
+ * follows the path; a color glyph keeps its advance and paints nothing; underlines and other decorations are not drawn.
9917
+ * On an open path an item whose middle falls past either end is not drawn; on a closed one the text wraps past the
9918
+ * seam, and an item a whole lap on from the first item's start is not drawn.
9919
+ */
9920
+ interface TextAlongEffect extends PathEffectOptions {
9921
+ kind: 'textAlong';
9922
+ /** Which part of the text sits at `start`. Default `'start'`. */
9923
+ align?: RunAlign;
9924
+ /** Where the text sits, as a fraction 0..1 of the path's length from its first point. Default 0. */
9925
+ start?: number;
9926
+ /** How far the anchor line sits off the path, toward the glyphs' up, in world units. Default 0. */
9927
+ shift?: number;
9928
+ /** What sits on the path: the glyphs' baseline, or (`'center'`) their x-height middle. Default `'baseline'`. */
9929
+ anchor?: 'baseline' | 'center';
9930
+ /** Text longer than its room is cut at the path's end (`'clip'`), or has the gaps between items squeezed until it
9931
+ * fits (`'fit'`). Default `'clip'`. */
9932
+ overflow?: 'clip' | 'fit';
9933
+ /** Which side of the path the glyphs stand on; see `TrackSide`. Default `'auto'`, whichever reads upright. Turned over,
9934
+ * the text keeps the stretch of path it had, and on an open path drops whichever letters fall off it. */
9935
+ side?: TrackSide;
9936
+ }
9937
+ /** The parts `items` paint laid along `path` as `effect` says; `[]` when there is nothing to lay or nowhere to lay it. */
9938
+ declare function textAlongParts(effect: TextAlongEffect, items: readonly EffectItem[], path: Path): DerivedPart[];
9939
+
9533
9940
  /**
9534
9941
  * The path effects, each as the parts it paints from its sources: a blend's
9535
9942
  * steps between two shapes, a shape bent along a spine, copies of a shape
9536
- * along a path.
9943
+ * along a path, text laid along a path.
9537
9944
  */
9538
9945
 
9539
9946
  /** A shape bent along a spine. Its sources are `[shape, spine]`. */
9540
- interface BendAlongEffect extends BendAlongPathOptions {
9947
+ interface BendAlongEffect extends BendAlongPathOptions, PathEffectOptions {
9541
9948
  kind: 'bendAlong';
9542
9949
  }
9543
9950
  /** Copies of a shape along a path. Its sources are `[shape, path]`. */
9544
- interface RepeatAlongEffect extends Omit<RepeatAlongPathOptions, 'flattenTolerance'> {
9951
+ interface RepeatAlongEffect extends Omit<RepeatAlongPathOptions, 'flattenTolerance'>, PathEffectOptions {
9545
9952
  kind: 'repeatAlong';
9546
9953
  }
9547
9954
  /** A path effect, as a node's `data.pathEffect` holds it. */
9548
- type PathEffect = BlendEffect | BendAlongEffect | RepeatAlongEffect;
9955
+ type PathEffect = BlendEffect | BendAlongEffect | RepeatAlongEffect | TextAlongEffect;
9549
9956
 
9550
9957
  /**
9551
9958
  * A path effect as a scene node: a leaf whose `dependsOn` names its sources,
@@ -9594,7 +10001,7 @@ declare function pathEffectParts(node: {
9594
10001
  * `sources`, in the order its kind reads them, deriving through
9595
10002
  * `derivations` — the ones the scene registers under {@link PATH_EFFECT}. */
9596
10003
  declare function pathEffectNode<TLayer extends string>(effect: PathEffect, sources: readonly NodeId[], layer: TLayer, derivations: PathEffectDerivations): {
9597
- kind: 'leaf';
10004
+ kind: 'mark';
9598
10005
  layer: TLayer;
9599
10006
  pose: {
9600
10007
  x: number;
@@ -9616,7 +10023,11 @@ declare function registeredPathEffects(registry: {
9616
10023
  derivePose?: Readonly<Record<string, unknown>>;
9617
10024
  }): PathEffectDerivations | null;
9618
10025
 
9619
- /** `dep` as a path effect's source, or `null` when it has no outline. */
10026
+ /** Note that the derivation running now read glyph outlines. */
10027
+ declare function noteFontRead(): void;
10028
+
10029
+ /** `dep` as a path effect's source, or `null` when it has no outline. A text
10030
+ * node's source also carries its grapheme clusters as items. */
9620
10031
  declare function readEffectSource(dep: DerivedDep<unknown>): EffectSource | null;
9621
10032
 
9622
10033
  /**
@@ -9636,6 +10047,42 @@ declare const PATH_EFFECT_DERIVATIONS: PathEffectDerivations;
9636
10047
  */
9637
10048
  declare function withPathEffectsRegistry<TPose, TData = unknown, TLayer extends string = string>(registry?: SceneRegistry<TPose, TData, TLayer>): SceneRegistry<TPose, TData, TLayer>;
9638
10049
 
10050
+ /**
10051
+ * For a path-effect node with `hideSources`, the source an edit of `role`
10052
+ * goes to: `'text'`, its first source when that is a text node; `'path'`, the
10053
+ * path it lays along — the second source of an along kind, a blend's spine.
10054
+ * `null` otherwise. The one answer every edit route asks. It takes a source
10055
+ * hidden before the effect was made too: either way the effect is what shows it.
10056
+ */
10057
+ declare function effectSourceFor<TData, TLayer extends string, TPose>(scene: Pick<Scene<TData, TLayer, TPose>, 'get'>, id: NodeId, role: 'text' | 'path'): NodeId | null;
10058
+ /**
10059
+ * The sources path-effect node `id` holds hidden: with `hideSources`, each of
10060
+ * its sources but those it found hidden. Empty for any other node.
10061
+ */
10062
+ declare function sourcesHiddenBy<TData, TLayer extends string, TPose>(scene: Pick<Scene<TData, TLayer, TPose>, 'get'>, id: NodeId): NodeId[];
10063
+ /**
10064
+ * The sources a removal of `ids` takes with it: those that a path effect with
10065
+ * `hideSources` in the removal hid, and that nothing staying still derives
10066
+ * from. A source another effect still reads stays, and so does one shown
10067
+ * again since or named in `keep`. Transitive, so an effect's hidden effect
10068
+ * takes its own too.
10069
+ */
10070
+ declare function hiddenSourcesTakenWith<TData, TLayer extends string, TPose>(scene: Pick<Scene<TData, TLayer, TPose>, 'get' | 'removalClosure'>, ids: readonly NodeId[], keep?: ReadonlySet<NodeId>): NodeId[];
10071
+
10072
+ /**
10073
+ * Which nodes must recompute when a given node's pose changes — the reverse
10074
+ * index, plus {@link dependencyIdsOf}, the forward read it is built from.
10075
+ */
10076
+
10077
+ /** The ids `node` names in its `dependsOn`, in order: none for a node naming `'children'` or nothing. */
10078
+ declare const sourcesOf: (node: {
10079
+ dependsOn?: unknown;
10080
+ } | undefined) => readonly NodeId[];
10081
+
10082
+ /** For each selected path-effect node, the outlines of the sources it holds hidden (`sourcesHiddenBy`) as the effect
10083
+ * reads them, in a one-screen-pixel stroke of the `'chrome'` overlay color at 40% opacity. The selection comes off the draw envelope. */
10084
+ declare function useEffectSourcesLayer<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>): RenderLayer<unknown>;
10085
+
9639
10086
  /** The Boolean path operations, each acting on the current selection and
9640
10087
  * committing as one undo step. */
9641
10088
  interface UseBooleansReturn {
@@ -11013,6 +11460,10 @@ declare const coreKitSettingsSchema: Omit<_weasel_js_prefs.PrefGroup, "children"
11013
11460
  readonly dragPx: _weasel_js_prefs.PrefNumber & {
11014
11461
  default: number;
11015
11462
  };
11463
+ readonly keymapUnbound: _weasel_js_prefs.PrefEnumBase<"modal" | "cascade"> & {
11464
+ default: "modal" | "cascade";
11465
+ clearable?: false;
11466
+ };
11016
11467
  };
11017
11468
  };
11018
11469
  readonly targets: Omit<_weasel_js_prefs.PrefGroup, "children"> & {
@@ -11068,4 +11519,4 @@ declare const coreKitSettingsSchema: Omit<_weasel_js_prefs.PrefGroup, "children"
11068
11519
  };
11069
11520
  };
11070
11521
 
11071
- export { ANCHOR_HIT_BASE_PX, AREA_SELECT_ID, ActionsProviderIfRoot, AddNodeSpec, Affordance, AffordanceBinding, AffordanceRegion, type AffordanceRegionHit, type AlignAdapter, type AlignEdge, type AlignReference, type AnchorEdit, type AnchorFieldsApi, type AnchorHit, AnchorMarkerShape, type AnchorScratch, type AnchorState, type AnimateOnSetPoseOptions, type AnimatedReflow, type AnnotationFlag, type AnyTool, AreaSelectAdapter, type ArrangeArgs, type ArrangedPose, BUILTIN_TOOLS, BUILTIN_TOOL_IDS, type BaseFeature, type BendAlongEffect, type BindRigOptions, type BlendEffect, type BooleanCommitPiece, BooleanOp, BooleanOpOptions, BooleanOpResult, type BooleanOperands, type BooleanSource, BooleanStrokes, BooleansAdapter, BoundsConstraint, type BuildChromeCtxArgs, type BuiltinShapeToolId, type BuiltinToolId, type BuiltinToolOptions, CANVAS_CONTEXT_ATTRIBUTES, COMPOSITE_FEATURES, type CameraProps, CanvasDebugSink, type CanvasExtensionApi, type CanvasHelpers, type CanvasLayers, type CanvasProps, type CanvasRetainOptions, type CanvasSize, type CanvasSizeSnapshot, type CanvasSurfaceHelpers, CanvasView, type CanvasViewCamera, type CanvasViewHandle, type CanvasViewHelpers, type CanvasViewProps, type CanvasViewState, type CarrySource, type ChildOrder, type ChromeCtx, type ChromeId, ChromeState, type ClampBounds, ClipboardSnapshot, type CoalescedCtx, CommonAffordanceScratch, type ComposeSelectionPoseOpts, type CompositeFeature, type ComputeSliceOpsArgs, type ComputeSliceResult, type Condition, ContentHandlerEntry, type Contribution, type ContributionChrome, type ContributionDepReader, type ContributionFrameCtx, type CoreIconName, type CoreKitTargetSettings, type CornerResizeAffordanceOptions, type CornerResizeScratch, type CreateChildrenLayerOpts, type CreateDebugOverlayLayerOpts, CreateOutlinesAdapter, type CreatePathEditingOverlayLayerOptions, type CreatePathLayerOpts, type CreatePenPreviewLayerOptions, type CreateTextLayerOpts, type CreateViewResolverOpts, type CreateViewportLayerOpts, CursorCoordsHud, type CursorCoordsHudProps, type CustomLayerEntry, DEFAULT_DEBUG_STROKES, DEFAULT_DEBUG_THEME, DEFAULT_FILL_COLOR, DEFAULT_HANDLE_SIZE, DEFAULT_INK, DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, DEFAULT_OVERLAY_STYLE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_SHAPE_FILL, DEFAULT_SIMPLIFY_TOLERANCE, DEFAULT_SNAP_PX, DEFAULT_STROKE_COLOR, DRAG_PAN_ID, DRAW_TOOLS, DebugConfig, DebugSnapshot, DebugStrokes, DebugTheme, type DefaultTextData, type DeleteActionOptions, type DeleteArgs, DepRegistryProviderIfRoot, type Departures, DerivePathFn, DerivePoseFn, DerivedDep, type DerivedPart, DeviceProfileProvider, type DeviceProfileProviderProps, DevtoolsLabel, type DevtoolsLabelProps, Dims, type DistributeAdapter, type DistributeAxis, type DistributeMode, type DragGestureController, type DragGestureCtx, type DragGestureEndCtx, type DragGesturePhase, type DragGesturePoint, type DragHandleOptions, type DragPanParams, type DragPayload, type DragRadialController, type DragRadialCtx, type DragRadialEndCtx, type DragRadialPoint, type DragRadialState, type DragRectBounds, type DragRectController, type DragRectCtx, type DragRectEndCtx, type DragRectPoint, DrawCanvas, type DrawCanvasDraw, type DrawCanvasProps, type DrawnBoundsOptions, type DrawnBoundsScene, type DropZoneOptions, EditAnchorsDep, EditAnchorsParams, type EditableShape, type EditedLayerOf, type EditingDrawOne, type EffectSource, type EffectSourceReader, FALLBACK_ACCENT, FEATURE_ACTION_IDS, type Feature, type FeatureBindingOptions, type FeatureEntry, type FeaturePreset, type FeedDelta, type FeedNode, FinishedEditFrame, FitViewToBoundsOptions, type FlipAxis, type FlipPivot, GHOST_STROKE, type GateLayerOptions, type GateSource, type GatedLayer, type GatedNode, type GatherSnapOptions, type GeneratedShape, GeometryProjection, GestureContext, type GesturePreviewSource, type GestureSource, HANDLE_BASE_PX, HANDLE_LOCK_ROLES, InertiaConfig as HandToolInertiaConfig, type HandleDragEnd, type HandleDragPoint, type HandleEdit, HandleLocks, type HandleScope, type HeadlessCanvasLike, type HostAnchorAlign, type HostAnchorInput, type HostAnchorOffset, type HostAnchorStyle, type HoverTracking, INSERT_REPOSITION_BINDING, IconRegistryProvider, IconRegistryProviderIfRoot, type IconRegistryProviderProps, InertiaConfig, type InkExtents, InsertAdapter, type InsertArgs, InsertBehavior, InsertNodeFactory, type InsertOp, type InsertOverlayStyle, InsertPaint, type InsertPreviewExtent, type InsertPreviewGeometry, type InsertPreviewLike, type InsertPreviewOverlay, type InsertToolOptions, type JoinPlan, KIT_SHAPE_KINDS, KIT_STANDARD_ACTION_IDS, KIT_VERSIONS, type KeyModifiers, type KeyState, type KeyStateAttachOptions, type KitInsertShape, type KitRequirements, type KitVersions, LONG_PRESS_FEEDBACK_ID, LassoHitMode, LassoSelectAdapter, LassoSelectBehavior, LayerEnumerableAdapter, LayerGroup, LayerHit, type LayerSlotValue, type LayersMap, LayoutDropTargetMode, LayoutFrame, type LayoutRef, LayoutStrategy, LeanSceneCanvas, type LeanSceneCanvasProps, type LifecycleAdapter, type LifecycleAnimation, type LinePoint, type LivePathEditSpec, type LongPressFeedbackOptions, MEASURE_ACTION_IDS, MEASURE_AFFORDANCE_KIND, MEASURE_LAYER_ID, MOVE_NODES_REQUIRES, type MeasureCell, type MeasureData, type MeasureEnd, type MeasureEndSourceOptions, type MeasureHit, type MeasurePoint, type Measurement, type Measurements, type ModeTriggerHandlers, type MomentumOptions, MoveAdapter, MoveBehavior, type MoveToIndexArgs, type NestedHitOpts, type NestedHitTester, type NodeClientRect, type NodeFlagArgs, type NodeGates, type NodeInk, type NodeInkCtx, type NodeOverlayFrame, type NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type NodeSilhouetteCtx, OVERLAY_ROLE_STROKES, type OpFactory, type OpenFilePickerOptions, type OpsApplier, OrderedAdapter, OriginProjection, type OutlineStrokeResult, type Overlay, type OverlayPoint, type OverlayVisibilityId, PAGES_DOC_KEY, PAGE_TOOLS, PAINTED_CURSOR_LAYER_ID, PATHFINDER_STROKES, PATH_ANCHOR_CHROME_ID, PATH_EFFECT, PATH_EFFECT_DERIVATIONS, PATH_GESTURE_TAGS, PATH_SNAP_LABELS, type Page, type PageEditOptions, type PageLayoutOptions, type PagesDoc, type PagesLayerOptions, type PaintBoundsFn, PaintKindEntry, type PaintedSkins, PasteCtx, PasteOmission, type PathAnchor, type PathAnchorAffordanceOptions, PathEditExtension, type PathEditFrame, type PathEditHost, PathEditMark, type PathEditOpening, type PathEditPreview, PathEditTarget, type PathEditingOverlaySlotConfig, type PathEditingOverlayStyle, type PathEffect, type PathEffectDerivations, type PathGestureFamily, type PathNode, PathPaint, type PathSnapSourceOptions, type PathStorageKind, PathSymmetryDep, type PenContinuation, type PenPreviewStyle, type PenScratch, type PenSubpath, type PencilPoint, PickHud, type PickHudProps, type PickSlop, type PickTopMostHitAdapter, type PinchZoomOptions, type PixelRenderPlan, type PlacedNode, type PlacedPage, PlaneMap, type PointSnap, type PointerFollower, PointerProviderIfRoot, type PointerSample, type PointerStylusState, type PolygonGenerator, type PolygonPoint, PoseAdapter, type PoseAnimationAdapter, type PoseCascade, PoseComposition, PoseDescriptor, type PoseFeed, type PoseFrame, PoseOverrides, PoseRemoval, type PoseRun, type PoseRunCtx, type PoseRunStep, type PoseSource, type PoseTargetOptions, type PoseTargetScene, type PoseTransitionScene, type PoseTransitionSeat, PoseWrite, type PosedNode, type PressureToWidthOptions, type PreviewNode, RECT_POSE_COMPOSITION, RIGID_POSE_COMPOSITION, ROTATION_HANDLE_BASE_PX, type RasterImage, type RasterRenderArgs, type RasterSession, type RasterSessionOptions, RectPose, RedrawSource, type ReflowScene, ReflowTransition, type ReflowTransitionOptions, type RegisterNodeShapeOptions, RegisteredOp, type RenderDebugSnapshotArgs, RenderLayer, type RenderNeeds, type RenderSceneToCanvasArgs, type RenderSceneToPixelsArgs, type ReorderArgs, type ReorderDirection, type ReorderRestoreEntry, type ReparentArgs, type RepeatAlongEffect, type RepeatableTransform, type RequirementMismatch, type ResizeActionOptions, ResizeAdapter, ResizeHandleLayout, type ResolvableView, type ResolvedOverlay, type RestPath, type Rig, type RigApply, type RigApplyContext, type RigNodeData, type RigNodeParts, type RigNodeSource, type RigScene, RotateAdapter, RotateBehavior, RotatedPose, type RotationAffordanceOptions, type RotationHandle, type RotationScratch, type RoutedNode, SCENE_CANVAS_FEATURES, SELECTION_MOVE_ID, SELECTION_RESIZE_ID, SELECTION_ROTATE_ID, SELECTION_TRANSFORM_ID, SELECT_TOOLS, SHAPE_COUNT_RANGE, SHAPE_KINDS, SHAPE_TOOLS, SNAP_ANGLE_STEP, SNAP_AXIS_STEP, SNAP_ROLES, STAR_RATIO_RANGE, Scene, type SceneAdapterSelection, SceneArrivalRefused, SceneCanvas, type SceneCanvasAdapter, type SceneCanvasApi, type SceneCanvasGeometry, type SceneCanvasHit, type SceneCanvasLayers, type SceneCanvasLongPress, type SceneCanvasProps, SceneCanvasSnap, type SceneCanvasViewport, type SceneClipTargetsOptions, Node as SceneNode, type SceneNodeClientRectOpts, ScenePoseReports, SceneRegistry, type SceneSlotConfig, type SceneSlotLayers, type SceneToAdapterOptions, SceneViewCanvas, type SceneViewCanvasProps, type SceneViewCull, type SceneViewDrawOne, type SceneViewLayers, type ScopedScene, type ScreenSlop, type SelectAdapter, type SelectFromLassoOptions, type SelectionHandleStyle, type SelectionHandlesLayerOpts, type SelectionMoveOptions, type SelectionOutlineLayerOpts, type SelectionOverlayLayerOpts, type SelectionOverlaySlotConfig, type SelectionRotateOptions, type SelectionStore, type SelectionTransformOptions, SerializedScene, type SetAnchorFieldParams, type SetChildOrderArgs, type SetDataArgs, type SetDependsOnArgs, type SetLayerArgs, type SetLayoutArgs, type SetPathArgs, type SetPathFields, type SetSelectionArgs, type SetTextArgs, type ShapeCoversPointOptions, type ShapeGenerator, type ShapeKind, type ShapeKindDescriptor, type ShapeKindsWhere, type ShownDeparture, type SiblingSlot, SliceDep, type SliceLeaf, type SlicePiece, type SliceScratch, type SliceableNode, type SnapCandidateMark, SnapCollect, SnapDep, SnapGesture, SnapMark, SnapMods, SnapOutcome, SnapOutcomeStore, SnapProbeAt, SnapReadoutStyle, SnapSource, SourceCandidate, type SpatialReference, type SpatialReferenceSources, type SpringPoseOptions, type StaggerSpringPoseOptions, type StandardSlotConfig, type StandardSlotName, type StarGenerator, type StarPoint, StickyStyle, type StrokeRegionOptions, type StylusData, type SurfaceContribution, type SurfaceSizeProps, SvgIngestOptions, SystemLayerSpec, TOOL_DRIVEN_ACTION_IDS, TYPE_TOOLS, TargetTransform, TextOverflow, type ThresholdDragHandle, type ThresholdDragOptions, type Tool, type ToolDef, type ToolsApi, type TransformArgs, TransformFollower, type TweenPoseOptions, UNION_OF_CHILDREN, type UseAlignOptions, type UseAlignReturn, type UseBooleansOptions, type UseBooleansReturn, type UseDistributeOptions, type UseDistributeReturn, type UseDragGestureOptions, type UseDragRadialOptions, type UseDragRectOptions, type UseEyedropperToolOptions, type UseHandToolOptions, type UseHandleDragOptions, type UseHandleDragReturn, type UseHostAnchorOptions, type UseHoverTrackingArgs, type UseImageToolOptions, type UseKeyStateOptions, type UseKeybindingsOptions, type UseLassoSelectOptions, type UseLassoToolOptions, type UseMeasureToolOptions, UseMoveOptions, type UseNodeOverlayFrameOptions, type UsePenToolOptions, type UsePointerStylusOptions, type UsePolygonToolOptions, type UsePoseRunOptions, UseResizeOptions, type UseResizePolicyOptions, type UseRigNodeOptions, type UseRotateOptions, type UseSceneOptions, type UseSceneTextEditOptions, type UseSceneTextEditReturn, type UseSceneTrivialOptions, type UseSelectToolOptions, type UseSelectionOptions, type UseSliceToolOptions, type UseStandardActionsOptions, type UseStarToolOptions, type UseStickyToolOptions, type UseToolsOptions, VERSION, VIEW_TOOLS, type VelocityTracker, type VersionCheck, ViewAnimationOptions, type ViewAt, type ViewKitSettings, type ViewLike, type ViewPoseAdapter, type ViewRect, type ViewResolver, type ViewTarget, type ViewTransform, ViewportDims, type ViewportLayer, type ViewportZoomAnimateOptions, type ViewportZoomOptions, type VisibilityRules, WHEEL_ZOOM_STEP, type WarmRenderOptions, WeaselProvider, type WeaselProviderProps, type WheelInput, type WheelPanOptions, type WheelPanOpts, type WorkspaceTintLayerOptions, type WrittenNode, type WrittenPoseTargetOptions, type ZoomAxis, type ZoomBound, type ZoomClampOpts, type ZoomFactor, accentColorOf, actionIs, addPage, adjacentPage, alignDeltaFor, alignTargetBounds, always, anchorEditWouldChange, and, animateLifecycle, animateOnSetPose, annotationLayerIds, annulusSemiAxes, applyOpsTo, applyOutlineStroke, areaSelectAction, areaSelectContribution, arrangePreset, assertSnapSourceIds, axisAlignedBounds, axisZoomFactor, bindPoseTransition, bindRig, buildChromeCtx, buildDebugOverlayCommands, buildSceneViewCommands, canBringForward, canHover, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, carriedDescendants, checkRequirements, clampShapeGenerator, clampView, classifyPathStorage, clearSelectionAction, clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction, cloneAction, coarsePointer, commitAnchorEdit, commitBooleanPieces, commitDeleteToScene, commitOps, composeAffordanceLayer, composeRectPose, composeRigidPose, composeSelectionPose, computeFitViewport, computeSliceOps, computeWheelAction, cond, contextMenuAction, coreKitSettingsSchema, createArrangeOp, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDeleteAction, createDeleteOp, createDepartures, createHistory, createInsertOp, createKeyState, createLongPressFeedbackContribution, createMeasurements, createMoveToIndexOp, createNodeProperties, createNodeRouting, createPaintedCursorLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathEffectDerivations, createPathLayer, createPenPreviewLayer, createPointerFollower, createPoseFeed, createPoseOverrides, createPoseTarget, createRasterSession, createReflowTransition, createReorderOp, createReparentOp, createResizeAction, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetChildOrderOp, createSetDataOp, createSetDependsOnOp, createSetHiddenOp, createSetLayerOp, createSetLayoutOp, createSetLockedOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createSnapReadoutLayer, createTextLayer, createTransformOp, createVelocityTracker, createViewResolver, createViewportLayer, createWrittenPoseTarget, currentMeasureId, cycleFill, dataRestPath, debugSnapshotArgs, decomposeRectPose, decomposeRigidPose, defaultCommitAdapter, defaultDrawOne, defaultNodeProperties, defaultNodeRouting, defaultPaintBounds, defaultVisibilityRules, definesFrame, deleteAction, deleteAnchorsAction, deleteNode, deleteSelectedMark, depOf, derivedDepOf, derivedPartsOf, derivedPose, dispatchApplyBatch, documentDepOf, documentPose, dragPanContribution, dragPointOf, drawnAABBOf, drawnBoundsOf, drawnBoundsScene, editAnchorsAction, editPreset, editTargetOf, editedPathSymmetries, editingAnchors, editingLayer, effectivePose, enterTextEditAction, enumerateAnchors, exitPathEditToolAction, findNodeShape, findShapeBounds, findShapeDrawnBounds, findShapeInk, findShapeSilhouette, finishPathEditFrame, fitToBounds, fitViewToPage, fitZoom, flattenPreviews, flipAction, focused, forEachCoalesced, forgetTransform, gateLayer, gatherSnapCandidates, gesturePlaneReader, gestureViewReader, gesturing, getAlpha01, getNodeShapes, getStylusData, glidesByDefault, groupNodeRouting, hasEditablePath, hidesSubtree, hitAffordanceRegions, hitAnchor, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateView, isAnnotationLayer, isAnnotationNode, isNodeHidden, isNodeLocked, isOverChildren, isShapeGenerator, joinPathsCommand, joinSelectedAnchors, kitTextHandler, lassoSelectAction, lastTransform, layoutPages, livePathEdit, locksInForce, makeHandleCommand, makePinchZoomAction, makeViewportWheelPanAction, makeViewportZoomAction, markUnder, measureAt, measureBetween, measureEndSource, measureEndsOf, measureIds, measureNode, measurePose, measuredSegmentCommands, measurementOf, measurementsContribution, mergeAlphaFromPrev, mergeContributions, modeDecorationLayer, modeIn, modeIs, modeNot, modeTriggers, modifierHeld, momentum, moveAction, moveNodes, moveNodesOps, movePage, movePreset, multiActive, nestedHitTester, never, nextPageId, nodeGates, nodeOutline, normalizeView, normalizeZoom, not, nudgeAnchorsDownAction, nudgeAnchorsLeftAction, nudgeAnchorsRightAction, nudgeAnchorsUpAction, onEmptyCanvas, opFactoryRegistry, openContextMenu, openFilePicker, or, outlinePreset, overChildren, pageAt, pageHolding, pageInView, pageMembers, pageName, pageOfBounds, pagesBounds, pagesLayer, pagesOf, paintAlpha, paintWithAlpha, paintWithColor, parseDebugFlags, pathCopy, pathEditPathOf, pathEditPreview, pathEditToolAction, pathEditToolActive, pathEffectNode, pathEffectOf, pathEffectParts, pathFromParts, pathNodesOf, pathOperationTags, pathOriginProjection, pathPoseDescriptor, pathSnapGlyph, pathSnapSource, pathsPreset, pickTopMostHit, pillCommands, pinchZoomAction, placeAction, placeSkeleton, placedPagesOf, planJoin, planPixelRender, pointRegionFrame, pointSnap, poseAxes, pressureToWidth, rasterToPng, readEffectSource, rebuildOp, reconcileSpecs, recordTransform, regenerateShape, registerNodeShape, registerOpFactory, registeredOpNames, registeredPathEffects, releaseCanvasRenderer, removePage, renamePage, renderDebugSnapshot, renderNeeds, renderSceneToCanvas, renderSceneToPixels, requiresAnchorSelection, reshapeOps, reshapeTo, resizeAction, resizePage, resizePreset, resolveBooleanOperands, resolveEditablePathOf, resolveOverlays, resolvePreviews, resolveSpatialReference, resolveVisibility, resolvedSnapMarks, rigFromNode, rigidRigApply, rotateAction, rotateAroundAABBCenter, rotatePreset, rotationDegreesUnit, rotationHandle, rotationSnapSource, routeKind, satisfiesRange, sceneCarrySource, sceneClipTargets, sceneFromJSON, sceneNodeClientRect, scenePoseAdapter, scenePoseFrame, scenePoseTarget, sceneSelectionStore, sceneSharedUnitScopes, sceneToAdapter, sceneUnitScopes, screenToWorld, screenTolerance, segmentUnder, selectAnchorAction, selectFromLasso, selectPreset, selectedPathNodes, selectionAtLeast, selectionEmpty, selectionIs, selectionLayer, selectionMoveBindings, selectionMoveContribution, selectionResizeBindings, selectionResizeContribution, selectionRotateBindings, selectionRotateContribution, selectionTransformBindings, selectionTransformContribution, setPages, settleShapeGenerator, shapeCoversPoint, shapeGeneratorOf, shapeGeneratorPath, sliceAction, slotOf, snapMods, snapSourcesFor, solid, splitOverChildren, springPose, stableStringify, staggerSpringPose, startThresholdDrag, stepAngles, storeEditablePath, strokeOf, strokeRegion, strokeWith, tickedSegment, toHex8, translateRectPose, tweenPose, unionAABB, unionBounds, unionOfChildren, unionOfChildrenVia, unplaceSkeleton, useAlign, useAnchorFields, useAnimatedReflow, useAutoCenter, useBooleans, useBooleansAdapter, useBooleansAdapterSource, useCanvasSize, useCreateOutlinesAdapter, useDeviceProfile, useDevtoolsLabel, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useElementSize, useEllipseTool, useEyedropperTool, useGradientKinds, useHandTool, useHandleDrag, useHostAnchor, useHoverTracking, useIconGlyph, useIconRegistry, useIconVariant, useImageTool, useKeyModifiers, useKeyState, useKeybindings, useLassoTool, useLineTool, useMeasureTool, useNodeOverlayFrame, usePaintKind, usePaintKinds, usePenTool, usePencilTool, usePointerStylus, usePolygonTool, usePoseDescriptorDepSource, usePoseRun, usePoseTransition, useRectTool, useResizePolicy, useRig, useRigNode, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSliceDep, useSliceDepSource, useSliceTool, useSnapSource, useStandardActions, useStarTool, useStickyTool, useTextTool, useTools, useTransformFollower, useVelocityTracker, viewPreset, viewToTransform, viewZoom, viewportDragPanAction, viewportWheelPanAction, viewportWorldRect, viewportZoomAction, warmRender, watchDevicePixelRatio, wheelPan, wheelZoom, wheelZoomFactor, when, withAlpha01, withCoord, withPath, withPathEffectsRegistry, withoutShapeGenerator, workspaceTintLayer, worldPoseLookup, worldToScreen, writtenBy, zoomAt, zoomAtLeast };
11522
+ export { ANCHOR_HIT_BASE_PX, AREA_SELECT_ID, ActionsProviderIfRoot, AddNodeSpec, Affordance, AffordanceBinding, AffordanceRegion, type AffordanceRegionHit, type AimHeldViewProps, type AimOutline, type AimPoint, type AimSource, type AimSpace, type AlignAdapter, type AlignEdge, type AlignReference, type AnchorEdit, type AnchorFieldsApi, type AnchorHit, AnchorMarkerShape, type AnchorScratch, type AnchorState, type AnimateOnSetPoseOptions, type AnimatedReflow, type AnnotationFlag, type AnyTool, AreaSelectAdapter, type ArrangeArgs, type ArrangedPose, BUILTIN_TOOLS, BUILTIN_TOOL_IDS, type BaseFeature, type BendAlongEffect, type BindRigOptions, type BlendEffect, type BooleanCommitPiece, BooleanOp, BooleanOpOptions, BooleanOpResult, type BooleanOperands, type BooleanSource, BooleanStrokes, BooleansAdapter, BoundsConstraint, type BuildChromeCtxArgs, type BuiltinShapeToolId, type BuiltinToolId, type BuiltinToolOptions, CANVAS_CONTEXT_ATTRIBUTES, COMPOSITE_FEATURES, type CameraHeldViewProps, type CameraProps, CanvasDebugSink, type CanvasExtensionApi, type CanvasHelpers, type CanvasLayers, type CanvasProps, type CanvasRetainOptions, type CanvasSize, type CanvasSizeSnapshot, type CanvasSurfaceHelpers, CanvasView, type CanvasViewCamera, type CanvasViewCommonProps, type CanvasViewHandle, type CanvasViewHelpers, type CanvasViewProps, type CanvasViewState, type CarrySource, type ChildOrder, type ChromeCtx, type ChromeId, ChromeState, type ClampBounds, ClipboardSnapshot, type CoalescedCtx, CommonAffordanceScratch, type ComposeSelectionPoseOpts, type CompositeFeature, type ComputeSliceOpsArgs, type ComputeSliceResult, type Condition, ContentHandlerEntry, type Contribution, type ContributionChrome, type ContributionDepReader, type ContributionFrameCtx, type CoreIconName, type CoreKitTargetSettings, type CornerResizeAffordanceOptions, type CornerResizeScratch, type CreateChildrenLayerOpts, type CreateDebugOverlayLayerOpts, CreateOutlinesAdapter, type CreatePathEditingOverlayLayerOptions, type CreatePathLayerOpts, type CreatePenPreviewLayerOptions, type CreateTextLayerOpts, type CreateViewResolverOpts, type CreateViewportLayerOpts, CursorCoordsHud, type CursorCoordsHudProps, type CustomLayerEntry, DEFAULT_DEBUG_STROKES, DEFAULT_DEBUG_THEME, DEFAULT_FILL_COLOR, DEFAULT_HANDLE_SIZE, DEFAULT_INK, DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, DEFAULT_OVERLAY_STYLE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_SIMPLIFY_TOLERANCE, DEFAULT_SNAP_PX, DEFAULT_STROKE_COLOR, DRAG_PAN_ID, DRAW_TOOLS, DebugConfig, DebugSnapshot, DebugStrokes, DebugTheme, type DefaultTextData, type DeleteActionOptions, type DeleteArgs, DepRegistryProviderIfRoot, type Departures, DerivePathFn, DerivePoseFn, DerivedDep, type DerivedPart, DeviceProfileProvider, type DeviceProfileProviderProps, DevtoolsLabel, type DevtoolsLabelProps, Dims, type DistributeAdapter, type DistributeAxis, type DistributeMode, type DragGestureController, type DragGestureCtx, type DragGestureEndCtx, type DragGesturePhase, type DragGesturePoint, type DragHandleOptions, type DragPanParams, type DragPayload, type DragRadialController, type DragRadialCtx, type DragRadialEndCtx, type DragRadialPoint, type DragRadialState, type DragRectBounds, type DragRectController, type DragRectCtx, type DragRectEndCtx, type DragRectPoint, DrawCanvas, type DrawCanvasDraw, type DrawCanvasProps, type DrawnBoundsOptions, type DrawnBoundsScene, type DropZoneOptions, EditAnchorsDep, EditAnchorsParams, type EditableShape, type EditedLayerOf, type EditingDrawOne, type EffectItem, type EffectSource, type EffectSourceReader, EnteredGroupApi, FALLBACK_ACCENT, FEATURE_ACTION_IDS, type Feature, type FeatureBindingOptions, type FeatureEntry, type FeaturePreset, type FeedDelta, type FeedNode, FinishedEditFrame, FitViewToBoundsOptions, type FlipAxis, type FlipPivot, GHOST_STROKE, type GateLayerOptions, type GateSource, type GatedLayer, type GatedNode, type GatherSnapOptions, type GeneratedShape, GeometryProjection, GestureContext, type GesturePreviewSource, type GestureSource, HANDLE_BASE_PX, HANDLE_LOCK_ROLES, InertiaConfig as HandToolInertiaConfig, type HandleDragEnd, type HandleDragPoint, type HandleEdit, HandleLocks, type HandleScope, type HeadlessCanvasLike, type HostAnchorAlign, type HostAnchorInput, type HostAnchorOffset, type HostAnchorStyle, type HoverTracking, INSERT_REPOSITION_BINDING, IconRegistryProvider, IconRegistryProviderIfRoot, type IconRegistryProviderProps, InertiaConfig, InheritedPaint, type InkExtents, InsertAdapter, type InsertArgs, InsertBehavior, InsertNodeFactory, type InsertOp, type InsertOverlayStyle, InsertPaint, type InsertPreviewExtent, type InsertPreviewGeometry, type InsertPreviewLike, type InsertPreviewOverlay, type InsertToolOptions, type JoinPlan, KIT_SHAPE_KINDS, KIT_STANDARD_ACTION_IDS, KIT_VERSIONS, type KeyModifiers, type KeyState, type KeyStateAttachOptions, type KitInsertShape, type KitRequirements, type KitVersions, LONG_PRESS_FEEDBACK_ID, LassoHitMode, LassoSelectAdapter, LassoSelectBehavior, LayerEnumerableAdapter, LayerGroup, LayerHit, type LayerSlotValue, type LayersMap, LayoutDropTargetMode, LayoutFrame, type LayoutRef, LayoutStrategy, LeanSceneCanvas, type LeanSceneCanvasProps, type LifecycleAdapter, type LifecycleAnimation, type LinePoint, type LivePathEditSpec, type LongPressFeedbackOptions, MEASURE_ACTION_IDS, MEASURE_AFFORDANCE_KIND, MEASURE_LAYER_ID, MOVE_NODES_REQUIRES, type MeasureCell, type MeasureData, type MeasureEnd, type MeasureEndSourceOptions, type MeasureHit, type MeasurePoint, type Measurement, type Measurements, type ModeTriggerHandlers, type MomentumOptions, MoveAdapter, MoveBehavior, type MoveToIndexArgs, type NestedHitOpts, type NestedHitTester, type NodeClientRect, NodeClip, type NodeFlagArgs, type NodeGates, type NodeInk, type NodeInkCtx, type NodeOverlayFrame, type NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type NodeSilhouetteCtx, OVERLAY_ROLE_STROKES, type OpFactory, type OpenFilePickerOptions, type OpsApplier, OrderedAdapter, OriginProjection, type OutlineStrokeResult, type Overlay, type OverlayPoint, type OverlayVisibilityId, PAGES_DOC_KEY, PAGE_TOOLS, PAINTED_CURSOR_LAYER_ID, PATHFINDER_STROKES, PATH_ANCHOR_CHROME_ID, PATH_EFFECT, PATH_EFFECT_DERIVATIONS, PATH_GESTURE_TAGS, PATH_SNAP_LABELS, type Page, type PageEditOptions, type PageLayoutOptions, type PagesDoc, type PagesLayerOptions, type PaintBoundsFn, PaintKindEntry, type PaintedSkins, PasteCtx, PasteOmission, type PathAnchor, type PathAnchorAffordanceOptions, PathEditExtension, type PathEditFrame, type PathEditHost, PathEditMark, type PathEditOpening, type PathEditPreview, PathEditTarget, type PathEditingOverlaySlotConfig, type PathEditingOverlayStyle, type PathEffect, type PathEffectDerivations, type PathEffectOptions, type PathGestureFamily, type PathNode, PathPaint, type PathSnapSourceOptions, type PathStorageKind, PathSymmetryDep, type PenContinuation, type PenPreviewStyle, type PenScratch, type PenSubpath, type PencilPoint, PickHud, type PickHudProps, type PickSlop, type PickTopMostHitAdapter, type PinchZoomOptions, type PixelRenderPlan, type PlacedNode, type PlacedPage, PlaneMap, type PointSnap, type PointerFollower, PointerProviderIfRoot, type PointerSample, type PointerStylusState, type PolygonGenerator, type PolygonPoint, PoseAdapter, type PoseAnimationAdapter, type PoseCascade, PoseComposition, PoseDescriptor, type PoseFeed, type PoseFrame, PoseOverrides, PoseRemoval, type PoseRun, type PoseRunCtx, type PoseRunStep, type PoseSource, type PoseTargetOptions, type PoseTargetScene, type PoseTransitionScene, type PoseTransitionSeat, PoseWrite, type PosedNode, type PressureToWidthOptions, type PreviewNode, RECT_POSE_COMPOSITION, RIGID_POSE_COMPOSITION, ROTATION_HANDLE_BASE_PX, type RasterImage, type RasterRenderArgs, type RasterSession, type RasterSessionOptions, type RectAim, RectPose, RedrawSource, type ReflowScene, ReflowTransition, type ReflowTransitionOptions, type RegisterNodeShapeOptions, RegisteredOp, type RenderDebugSnapshotArgs, RenderLayer, type RenderNeeds, type RenderSceneToCanvasArgs, type RenderSceneToPixelsArgs, type ReorderArgs, type ReorderDirection, type ReorderRestoreEntry, type ReparentArgs, type RepeatAlongEffect, type RepeatableTransform, type RequirementMismatch, type ResizeActionOptions, ResizeAdapter, ResizeHandleLayout, type ResolvableView, type ResolvedOverlay, type RestPath, type Rig, type RigApply, type RigApplyContext, type RigNodeData, type RigNodeParts, type RigNodeSource, type RigScene, RotateAdapter, RotateBehavior, RotatedPose, type RotationAffordanceOptions, type RotationHandle, type RotationScratch, type RoutedNode, SCENE_CANVAS_FEATURES, SELECTION_MOVE_ID, SELECTION_RESIZE_ID, SELECTION_ROTATE_ID, SELECTION_TRANSFORM_ID, SELECT_TOOLS, SHAPE_COUNT_RANGE, SHAPE_KINDS, SHAPE_TOOLS, SNAP_ANGLE_STEP, SNAP_AXIS_STEP, SNAP_ROLES, STAR_RATIO_RANGE, Scene, type SceneAdapterSelection, SceneArrivalRefused, SceneCanvas, type SceneCanvasAdapter, type SceneCanvasApi, type SceneCanvasGeometry, type SceneCanvasHit, type SceneCanvasLayers, type SceneCanvasLongPress, type SceneCanvasProps, SceneCanvasSnap, type SceneCanvasViewport, type SceneClipTargetsOptions, Node as SceneNode, type SceneNodeClientRectOpts, ScenePoseReports, SceneRegistry, type SceneSlotConfig, type SceneSlotLayers, type SceneToAdapterOptions, SceneViewCanvas, type SceneViewCanvasProps, type SceneViewCull, type SceneViewDrawOne, type SceneViewLayers, type ScopedScene, type ScreenSlop, type SelectAdapter, type SelectFromLassoOptions, type SelectionHandleStyle, type SelectionHandlesLayerOpts, type SelectionMoveOptions, type SelectionOutlineLayerOpts, type SelectionOverlayLayerOpts, type SelectionOverlaySlotConfig, type SelectionRotateOptions, type SelectionStore, type SelectionTransformOptions, SerializedScene, SerializedSceneV1, type SetAnchorFieldParams, type SetChildOrderArgs, type SetDataArgs, type SetDependsOnArgs, type SetLayerArgs, type SetLayoutArgs, type SetPathArgs, type SetPathFields, type SetSelectionArgs, type SetTextArgs, type ShapeCoversPointOptions, type ShapeGenerator, type ShapeKind, type ShapeKindDescriptor, type ShapeKindsWhere, type ShownDataSource, type ShownDeparture, type SiblingSlot, SliceDep, type SliceLeaf, type SlicePiece, type SliceScratch, type SliceableNode, type SnapCandidateMark, SnapCollect, SnapDep, SnapGesture, SnapMark, SnapMods, SnapOutcome, SnapOutcomeStore, SnapProbeAt, SnapReadoutStyle, SnapSource, SourceCandidate, type SpatialReference, type SpatialReferenceSources, SpecsFromSerializedOptions, type SpringPoseOptions, type StaggerSpringPoseOptions, type StandardSlotConfig, type StandardSlotName, type StarGenerator, type StarPoint, type StatedNodeFields, StickyStyle, type StrokeRegionOptions, type StylusData, type SurfaceContribution, type SurfaceSizeProps, SvgIngestOptions, SystemLayerSpec, TOOL_DRIVEN_ACTION_IDS, TYPE_TOOLS, TargetTransform, type TextAlongEffect, TextOverflow, type ThresholdDragHandle, type ThresholdDragOptions, type Tool, type ToolDef, type ToolsApi, type TransformArgs, TransformFollower, type TweenPoseOptions, UNION_OF_CHILDREN, type UseAlignOptions, type UseAlignReturn, type UseBooleansOptions, type UseBooleansReturn, type UseDistributeOptions, type UseDistributeReturn, type UseDragGestureOptions, type UseDragRadialOptions, type UseDragRectOptions, type UseEyedropperToolOptions, type UseHandToolOptions, type UseHandleDragOptions, type UseHandleDragReturn, type UseHostAnchorOptions, type UseHoverTrackingArgs, type UseImageToolOptions, type UseKeyStateOptions, type UseKeybindingsOptions, type UseLassoSelectOptions, type UseLassoToolOptions, type UseMeasureToolOptions, UseMoveOptions, type UseNodeOverlayFrameOptions, type UsePenToolOptions, type UsePointerStylusOptions, type UsePolygonToolOptions, type UsePoseRunOptions, UseResizeOptions, type UseResizePolicyOptions, type UseRigNodeOptions, type UseRotateOptions, type UseSceneOptions, type UseSceneTextEditOptions, type UseSceneTextEditReturn, type UseSceneTrivialOptions, type UseSelectToolOptions, type UseSelectionOptions, type UseSliceToolOptions, type UseStandardActionsOptions, type UseStarToolOptions, type UseStickyToolOptions, type UseToolsOptions, VERSION, VIEW_MARKER_DEFAULT_STYLE, VIEW_MARKER_DRAG, VIEW_MARKER_HIT_SLOP_PX, VIEW_TOOLS, type VelocityTracker, type VersionCheck, type ViewAim, ViewAnimationOptions, type ViewAt, type ViewKitSettings, type ViewLike, ViewMarker, type ViewMarkerGrab, type ViewMarkerHost, type ViewMarkerProps, type ViewMarkerStyle, type ViewPoseAdapter, type ViewRect, type ViewResolver, type ViewTarget, type ViewTransform, ViewportDims, type ViewportLayer, type ViewportZoomAnimateOptions, type ViewportZoomOptions, type VisibilityRules, WHEEL_ZOOM_STEP, type WarmRenderOptions, WeaselProvider, type WeaselProviderProps, type WheelInput, type WheelPanOptions, type WheelPanOpts, type WorkspaceTintLayerOptions, type WrittenNode, type WrittenPoseTargetOptions, type ZoomAxis, type ZoomBound, type ZoomClampOpts, type ZoomFactor, accentColorOf, actionIs, addPage, adjacentPage, aimSpace2d, alignDeltaFor, alignTargetBounds, always, anchorEditWouldChange, and, animateLifecycle, animateOnSetPose, annotationLayerIds, annulusSemiAxes, applyOpsTo, applyOutlineStroke, areaSelectAction, areaSelectContribution, arrangePreset, assertSnapSourceIds, axisAlignedBounds, axisZoomFactor, bindPoseTransition, bindRig, buildChromeCtx, buildDebugOverlayCommands, buildSceneViewCommands, canBringForward, canHover, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, carriedDescendants, checkRequirements, clampShapeGenerator, clampView, classifyPathStorage, clearSelectionAction, clipOutline, clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction, cloneAction, coarsePointer, commitAnchorEdit, commitBooleanPieces, commitDeleteToScene, commitOps, composeAffordanceLayer, composeRectPose, composeRigidPose, composeSelectionPose, computeFitViewport, computeSliceOps, computeWheelAction, cond, contextMenuAction, coreKitSettingsSchema, createArrangeOp, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDeleteAction, createDeleteOp, createDepartures, createEnteredGroupScope, createHistory, createInsertOp, createKeyState, createLongPressFeedbackContribution, createMeasurements, createMoveToIndexOp, createNodeProperties, createNodeRouting, createPaintedCursorLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathEffectDerivations, createPathLayer, createPenPreviewLayer, createPointerFollower, createPoseFeed, createPoseOverrides, createPoseTarget, createRasterSession, createReflowTransition, createReorderOp, createReparentOp, createResizeAction, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetChildOrderOp, createSetDataOp, createSetDependsOnOp, createSetHiddenOp, createSetLayerOp, createSetLayoutOp, createSetLockedOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createSnapReadoutLayer, createTextLayer, createTransformOp, createVelocityTracker, createViewMarkerContribution, createViewMarkerLayer, createViewResolver, createViewportLayer, createWrittenPoseTarget, currentMeasureId, cycleFill, dataRestPath, debugSnapshotArgs, decomposeRectPose, decomposeRigidPose, defaultCommitAdapter, defaultDrawOne, defaultNodeProperties, defaultNodeRouting, defaultPaintBounds, defaultVisibilityRules, definesFrame, deleteAction, deleteAnchorsAction, deleteNode, deleteSelectedMark, depOf, derivedDepOf, derivedPartsOf, derivedPose, dispatchApplyBatch, documentDepOf, documentOf, documentPose, dragPanContribution, dragPointOf, drawnAABBOf, drawnBoundsOf, drawnBoundsScene, editAnchorsAction, editPreset, editTargetOf, editedPathSymmetries, editingAnchors, editingLayer, effectSourceFor, effectivePose, enterTextEditAction, enumerateAnchors, exitPathEditToolAction, findNodeShape, findShapeBounds, findShapeDrawnBounds, findShapeInk, findShapeSilhouette, finishPathEditFrame, fitToBounds, fitViewToPage, fitZoom, flattenPreviews, flipAction, focused, forEachCoalesced, forgetTransform, gateLayer, gatherSnapCandidates, gesturePlaneReader, gestureViewReader, gesturing, getAlpha01, getNodeShapes, getStylusData, glidesByDefault, grabViewMarker, groupNodeRouting, hasChildren, hasEditablePath, hiddenSourceDeleteOps, hiddenSourcesTakenWith, hidesSubtree, hitAffordanceRegions, hitAnchor, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateView, isAnnotationLayer, isAnnotationNode, isLeaf, isNodeHidden, isNodeLocked, isOverChildren, isRectAim, isShapeGenerator, joinPathsCommand, joinSelectedAnchors, kitTextHandler, lassoSelectAction, lastTransform, layoutPages, livePathEdit, locksInForce, makeHandleCommand, makePinchZoomAction, makeViewportWheelPanAction, makeViewportZoomAction, markUnder, measureAt, measureBetween, measureEndSource, measureEndsOf, measureIds, measureNode, measurePose, measuredSegmentCommands, measurementOf, measurementsContribution, mergeAlphaFromPrev, mergeContributions, modeDecorationLayer, modeIn, modeIs, modeNot, modeTriggers, modifierHeld, momentum, moveAction, moveNodes, moveNodesOps, movePage, movePreset, multiActive, nestedHitTester, never, nextPageId, nodeAsShown, nodeGates, nodeOutline, normalizeView, normalizeZoom, not, noteFontRead, nudgeAnchorsDownAction, nudgeAnchorsLeftAction, nudgeAnchorsRightAction, nudgeAnchorsUpAction, onEmptyCanvas, opFactoryRegistry, openContextMenu, openFilePicker, or, outlinePreset, overChildren, pageAt, pageHolding, pageInView, pageMembers, pageName, pageOfBounds, pagesBounds, pagesLayer, pagesOf, paintAbove, paintAlpha, paintWithAlpha, paintWithColor, parseDebugFlags, pathCopy, pathEditPathOf, pathEditPreview, pathEditToolAction, pathEditToolActive, pathEffectNode, pathEffectOf, pathEffectParts, pathFromParts, pathNodesOf, pathOperationTags, pathOriginProjection, pathPoseDescriptor, pathSnapGlyph, pathSnapSource, pathsPreset, pickTopMostHit, pillCommands, pinchZoomAction, placeAction, placeSkeleton, placedPagesOf, planJoin, planPixelRender, pointRegionFrame, pointSnap, poseAxes, pressureToWidth, publishPreviews, rasterToPng, readEffectSource, rebuildOp, reconcileSpecs, recordTransform, rectAim, regenerateShape, registerNodeShape, registerOpFactory, registeredOpNames, registeredPathEffects, releaseCanvasRenderer, removePage, renamePage, renderDebugSnapshot, renderNeeds, renderSceneToCanvas, renderSceneToPixels, requiresAnchorSelection, reshapeOps, reshapeTo, resizeAction, resizePage, resizePreset, resolveBooleanOperands, resolveEditablePathOf, resolveOverlays, resolvePartPaint, resolvePreviews, resolveSpatialReference, resolveVisibility, resolvedSnapMarks, rigFromNode, rigidRigApply, rotateAction, rotateAroundAABBCenter, rotatePreset, rotationDegreesUnit, rotationHandle, rotationSnapSource, routeKind, satisfiesRange, sceneCarrySource, sceneClipTargets, sceneFromJSON, sceneNodeClientRect, scenePoseAdapter, scenePoseFrame, scenePoseTarget, sceneSelectionStore, sceneSharedUnitScopes, sceneToAdapter, sceneUnitScopes, screenToWorld, screenTolerance, segmentUnder, selectAnchorAction, selectFromLasso, selectPreset, selectedPathNodes, selectionAtLeast, selectionEmpty, selectionIs, selectionLayer, selectionMoveBindings, selectionMoveContribution, selectionResizeBindings, selectionResizeContribution, selectionRotateBindings, selectionRotateContribution, selectionTransformBindings, selectionTransformContribution, setPages, settleShapeGenerator, shapeCoversPoint, shapeGeneratorOf, shapeGeneratorPath, sliceAction, slotOf, snapMods, snapSourcesFor, solid, sourcesHiddenBy, sourcesOf, splitOverChildren, springPose, staggerSpringPose, startThresholdDrag, statedFields, stepAngles, storeEditablePath, strokeOf, strokeRegion, strokeWith, textAlongParts, tickedSegment, toHex8, translateRectPose, tweenPose, unionAABB, unionBounds, unionOfChildren, unionOfChildrenVia, unplaceSkeleton, useAlign, useAnchorFields, useAnimatedReflow, useAutoCenter, useBooleans, useBooleansAdapter, useBooleansAdapterSource, useCanvasSize, useCreateOutlinesAdapter, useDeviceProfile, useDevtoolsLabel, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEffectSourcesLayer, useElementSize, useEllipseTool, useEyedropperTool, useGradientKinds, useHandTool, useHandleDrag, useHostAnchor, useHoverTracking, useIconGlyph, useIconRegistry, useIconVariant, useImageTool, useKeyModifiers, useKeyState, useKeybindings, useLassoTool, useLineTool, useMeasureTool, useNodeOverlayFrame, usePaintKind, usePaintKinds, usePenTool, usePencilTool, usePointerStylus, usePolygonTool, usePoseDescriptorDepSource, usePoseRun, usePoseTransition, useRectTool, useResizePolicy, useRig, useRigNode, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSliceDep, useSliceDepSource, useSliceTool, useSnapSource, useStandardActions, useStarTool, useStickyTool, useTextTool, useTools, useTransformFollower, useVelocityTracker, viewForAim, viewMarkerDragAction, viewPreset, viewToTransform, viewZoom, viewportDragPanAction, viewportWheelPanAction, viewportWorldRect, viewportZoomAction, warmRender, watchDevicePixelRatio, wheelPan, wheelZoom, wheelZoomFactor, when, withAlpha01, withCoord, withInheritedPaintBounds, withInheritedPaints, withPath, withPathEffectsRegistry, withoutShapeGenerator, workspaceTintLayer, worldPoseLookup, worldToScreen, writtenBy, zoomAt, zoomAtLeast };