@weasel-js/core 1.11.1 → 1.12.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 (297) hide show
  1. package/CHANGELOG.md +184 -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/barrel/canvas.js +3 -1
  6. package/dist/barrel/paint.js +4 -4
  7. package/dist/barrel/paths.js +8 -4
  8. package/dist/barrel/renderer.js +3 -2
  9. package/dist/barrel/routing.js +4 -4
  10. package/dist/barrel/scene.js +2 -1
  11. package/dist/barrel/text.js +2 -2
  12. package/dist/barrel/viewport.js +6 -2
  13. package/dist/canvas/Canvas.js +2 -1
  14. package/dist/canvas/Canvas.js.map +1 -1
  15. package/dist/canvas/CanvasView.js +23 -34
  16. package/dist/canvas/CanvasView.js.map +1 -1
  17. package/dist/canvas/ModalityHud.js +1 -1
  18. package/dist/canvas/NodeShape.js +4 -1
  19. package/dist/canvas/NodeShape.js.map +1 -1
  20. package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js +1 -1
  21. package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js +1 -1
  22. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +1 -1
  23. package/dist/canvas/SceneCanvas/SurfaceDeclarations.js +23 -0
  24. package/dist/canvas/SceneCanvas/SurfaceDeclarations.js.map +1 -0
  25. package/dist/canvas/SceneCanvas/canvasPassThrough.js +1 -0
  26. package/dist/canvas/SceneCanvas/canvasPassThrough.js.map +1 -1
  27. package/dist/canvas/SceneCanvas/props.js.map +1 -1
  28. package/dist/canvas/SceneCanvas/scenePointQuery.js +7 -3
  29. package/dist/canvas/SceneCanvas/scenePointQuery.js.map +1 -1
  30. package/dist/canvas/SceneCanvas/useActionTunings.js +6 -1
  31. package/dist/canvas/SceneCanvas/useActionTunings.js.map +1 -1
  32. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js +1 -0
  33. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js.map +1 -1
  34. package/dist/canvas/SceneCanvas/useCanvasTools.js +7 -2
  35. package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -1
  36. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +9 -3
  37. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js.map +1 -1
  38. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +10 -2
  39. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -1
  40. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +1 -0
  41. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js.map +1 -1
  42. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +19 -4
  43. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js.map +1 -1
  44. package/dist/canvas/SceneCanvas/useSceneStandardActions.js +2 -1
  45. package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -1
  46. package/dist/canvas/SceneCanvas.js +11 -10
  47. package/dist/canvas/SceneCanvas.js.map +1 -1
  48. package/dist/canvas/ViewMarker.js +35 -0
  49. package/dist/canvas/ViewMarker.js.map +1 -0
  50. package/dist/canvas/defaultDrawOne.js +2 -0
  51. package/dist/canvas/defaultDrawOne.js.map +1 -1
  52. package/dist/canvas/deps/booleans.js +2 -1
  53. package/dist/canvas/deps/booleans.js.map +1 -1
  54. package/dist/canvas/deps/hitTestArea.js +2 -2
  55. package/dist/canvas/deps/hitTestArea.js.map +1 -1
  56. package/dist/canvas/deps/insert.js +6 -2
  57. package/dist/canvas/deps/insert.js.map +1 -1
  58. package/dist/canvas/deps/pathEditCommits.js +3 -7
  59. package/dist/canvas/deps/pathEditCommits.js.map +1 -1
  60. package/dist/canvas/drawnBounds.js +11 -3
  61. package/dist/canvas/drawnBounds.js.map +1 -1
  62. package/dist/canvas/inheritedPaints.js +44 -0
  63. package/dist/canvas/inheritedPaints.js.map +1 -0
  64. package/dist/canvas/nodeShapes/derivedPainter.js +15 -16
  65. package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -1
  66. package/dist/canvas/nodeShapes/nodePaint.js +13 -34
  67. package/dist/canvas/nodeShapes/nodePaint.js.map +1 -1
  68. package/dist/canvas/nodeShapes/pathPainter.js +9 -8
  69. package/dist/canvas/nodeShapes/pathPainter.js.map +1 -1
  70. package/dist/canvas/nodeShapes/rectFallbackPainter.js +4 -5
  71. package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -1
  72. package/dist/canvas/nodeShapes/shapePainter.js +11 -10
  73. package/dist/canvas/nodeShapes/shapePainter.js.map +1 -1
  74. package/dist/canvas/nodeShapes/textPainter.js +13 -12
  75. package/dist/canvas/nodeShapes/textPainter.js.map +1 -1
  76. package/dist/canvas/pickReach.js +3 -3
  77. package/dist/canvas/pickReach.js.map +1 -1
  78. package/dist/canvas/pickWalk.js +3 -1
  79. package/dist/canvas/pickWalk.js.map +1 -1
  80. package/dist/canvas/renderSceneToPixels.js +1 -1
  81. package/dist/canvas/renderSceneToPixels.js.map +1 -1
  82. package/dist/canvas/sceneSlotWiring.js +2 -1
  83. package/dist/canvas/sceneSlotWiring.js.map +1 -1
  84. package/dist/canvas/sceneViewRender.js +2 -1
  85. package/dist/canvas/sceneViewRender.js.map +1 -1
  86. package/dist/canvas/surfaceContribution.js +12 -8
  87. package/dist/canvas/surfaceContribution.js.map +1 -1
  88. package/dist/canvas/useCanvasView.js +4 -2
  89. package/dist/canvas/useCanvasView.js.map +1 -1
  90. package/dist/canvas/useLayerStack.js +6 -2
  91. package/dist/canvas/useLayerStack.js.map +1 -1
  92. package/dist/canvas/useViewAim.js +121 -0
  93. package/dist/canvas/useViewAim.js.map +1 -0
  94. package/dist/canvas/useViewNesting.js +3 -2
  95. package/dist/canvas/useViewNesting.js.map +1 -1
  96. package/dist/canvas/useViewRegistrySurface.js +4 -2
  97. package/dist/canvas/useViewRegistrySurface.js.map +1 -1
  98. package/dist/canvas/viewMarkers.js +63 -0
  99. package/dist/canvas/viewMarkers.js.map +1 -0
  100. package/dist/canvas/viewRegistry.js +27 -1
  101. package/dist/canvas/viewRegistry.js.map +1 -1
  102. package/dist/core/pages/pageEdits.js +2 -3
  103. package/dist/core/pages/pageEdits.js.map +1 -1
  104. package/dist/core/paint/meshKindLazy.js +59 -2
  105. package/dist/core/paint/meshKindLazy.js.map +1 -1
  106. package/dist/core/scene/clipNothing.js +13 -0
  107. package/dist/core/scene/clipNothing.js.map +1 -0
  108. package/dist/core/scene/depMemo.js +11 -3
  109. package/dist/core/scene/depMemo.js.map +1 -1
  110. package/dist/core/scene/dependents.js +7 -1
  111. package/dist/core/scene/dependents.js.map +1 -1
  112. package/dist/core/scene/derivedParts.js +10 -11
  113. package/dist/core/scene/derivedParts.js.map +1 -1
  114. package/dist/core/scene/effectivePose.js +7 -2
  115. package/dist/core/scene/effectivePose.js.map +1 -1
  116. package/dist/core/scene/fontReads.js +37 -0
  117. package/dist/core/scene/fontReads.js.map +1 -0
  118. package/dist/core/scene/inheritedPaint.js +75 -0
  119. package/dist/core/scene/inheritedPaint.js.map +1 -0
  120. package/dist/core/scene/kitRegistry.js +5 -0
  121. package/dist/core/scene/kitRegistry.js.map +1 -1
  122. package/dist/core/scene/nodeMemo.js +15 -7
  123. package/dist/core/scene/nodeMemo.js.map +1 -1
  124. package/dist/core/scene/pathEffects/blend.js.map +1 -1
  125. package/dist/core/scene/pathEffects/derive.js +7 -2
  126. package/dist/core/scene/pathEffects/derive.js.map +1 -1
  127. package/dist/core/scene/pathEffects/effects.js +3 -1
  128. package/dist/core/scene/pathEffects/effects.js.map +1 -1
  129. package/dist/core/scene/pathEffects/textAlong.js +95 -0
  130. package/dist/core/scene/pathEffects/textAlong.js.map +1 -0
  131. package/dist/{cornerHandles-BHuoMs1o.d.ts → cornerHandles-p8fDIAKt.d.ts} +2 -1
  132. package/dist/{depSchema-BpZNOv7q.d.ts → depSchema-mG19aEdD.d.ts} +61 -13
  133. package/dist/devtools/registry.js +4 -4
  134. package/dist/devtools/registry.js.map +1 -1
  135. package/dist/features/measure/measureContribution.js +4 -2
  136. package/dist/features/measure/measureContribution.js.map +1 -1
  137. package/dist/features/modes/modeTriggers.js +7 -3
  138. package/dist/features/modes/modeTriggers.js.map +1 -1
  139. package/dist/features/pathEffects/effectSources.js +60 -0
  140. package/dist/features/pathEffects/effectSources.js.map +1 -0
  141. package/dist/features/pathEffects/readSource.js +17 -1
  142. package/dist/features/pathEffects/readSource.js.map +1 -1
  143. package/dist/features/pathEffects/textItems.js +53 -0
  144. package/dist/features/pathEffects/textItems.js.map +1 -0
  145. package/dist/features/pathEffects/useEffectSourcesLayer.js +57 -0
  146. package/dist/features/pathEffects/useEffectSourcesLayer.js.map +1 -0
  147. package/dist/features/paths/pathEditState.js +5 -2
  148. package/dist/features/paths/pathEditState.js.map +1 -1
  149. package/dist/features/text/sceneTextDrafts.js +65 -0
  150. package/dist/features/text/sceneTextDrafts.js.map +1 -0
  151. package/dist/features/text/textHitAt.js +31 -2
  152. package/dist/features/text/textHitAt.js.map +1 -1
  153. package/dist/features/text/useSceneTextEdit.js +22 -18
  154. package/dist/features/text/useSceneTextEdit.js.map +1 -1
  155. package/dist/features/viewports/aim.js +105 -0
  156. package/dist/features/viewports/aim.js.map +1 -0
  157. package/dist/features/viewports/viewMarker.js +82 -0
  158. package/dist/features/viewports/viewMarker.js.map +1 -0
  159. package/dist/features/viewports/viewMarkerDrag.js +55 -0
  160. package/dist/features/viewports/viewMarkerDrag.js.map +1 -0
  161. package/dist/index.d.ts +500 -201
  162. package/dist/index.js +23 -12
  163. package/dist/interactions/actions/booleans/booleans.js +2 -1
  164. package/dist/interactions/actions/booleans/booleans.js.map +1 -1
  165. package/dist/interactions/actions/booleans/operands.js +6 -5
  166. package/dist/interactions/actions/booleans/operands.js.map +1 -1
  167. package/dist/interactions/actions/clipboard/action.js +27 -17
  168. package/dist/interactions/actions/clipboard/action.js.map +1 -1
  169. package/dist/interactions/actions/defaults/anchorEditing.js +44 -23
  170. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  171. package/dist/interactions/actions/defaults/anchorJoin.js +12 -6
  172. package/dist/interactions/actions/defaults/anchorJoin.js.map +1 -1
  173. package/dist/interactions/actions/defaults/bendSegment.js +7 -4
  174. package/dist/interactions/actions/defaults/bendSegment.js.map +1 -1
  175. package/dist/interactions/actions/defaults/cancelGesture.js +11 -8
  176. package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
  177. package/dist/interactions/actions/defaults/contextMenu.js +17 -8
  178. package/dist/interactions/actions/defaults/contextMenu.js.map +1 -1
  179. package/dist/interactions/actions/defaults/createPaintAction.js +1 -1
  180. package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
  181. package/dist/interactions/actions/defaults/delete.js +28 -14
  182. package/dist/interactions/actions/defaults/delete.js.map +1 -1
  183. package/dist/interactions/actions/defaults/duplicate.js +11 -8
  184. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  185. package/dist/interactions/actions/defaults/enterPathEdit.js +19 -9
  186. package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
  187. package/dist/interactions/actions/defaults/escape.js +11 -8
  188. package/dist/interactions/actions/defaults/escape.js.map +1 -1
  189. package/dist/interactions/actions/defaults/exitPathEdit.js +7 -4
  190. package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
  191. package/dist/interactions/actions/defaults/group.js +19 -13
  192. package/dist/interactions/actions/defaults/group.js.map +1 -1
  193. package/dist/interactions/actions/defaults/ingest.js +10 -4
  194. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  195. package/dist/interactions/actions/defaults/insertPathAnchor.js +7 -4
  196. package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
  197. package/dist/interactions/actions/defaults/nudge.js +8 -2
  198. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  199. package/dist/interactions/actions/defaults/pathEditTools.js +11 -8
  200. package/dist/interactions/actions/defaults/pathEditTools.js.map +1 -1
  201. package/dist/interactions/actions/defaults/pinchZoom.js +7 -4
  202. package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
  203. package/dist/interactions/actions/defaults/reorder.js +24 -6
  204. package/dist/interactions/actions/defaults/reorder.js.map +1 -1
  205. package/dist/interactions/actions/defaults/selectAll.js +8 -5
  206. package/dist/interactions/actions/defaults/selectAll.js.map +1 -1
  207. package/dist/interactions/actions/defaults/setFill.js +7 -3
  208. package/dist/interactions/actions/defaults/setFill.js.map +1 -1
  209. package/dist/interactions/actions/defaults/setFillOpacity.js +1 -1
  210. package/dist/interactions/actions/defaults/setStroke.js +12 -11
  211. package/dist/interactions/actions/defaults/setStroke.js.map +1 -1
  212. package/dist/interactions/actions/defaults/setStrokeOpacity.js +1 -1
  213. package/dist/interactions/actions/defaults/toolActivate.js +7 -1
  214. package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
  215. package/dist/interactions/actions/defaults/toolResetToDefault.js +7 -4
  216. package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
  217. package/dist/interactions/actions/defaults/undoRedo.js +19 -13
  218. package/dist/interactions/actions/defaults/undoRedo.js.map +1 -1
  219. package/dist/interactions/actions/defaults/viewportWheelPan.js +16 -7
  220. package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
  221. package/dist/interactions/actions/defaults/viewportZoom.js +24 -6
  222. package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
  223. package/dist/interactions/actions/edit-anchors/action.js +7 -4
  224. package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
  225. package/dist/interactions/actions/flip/action.js +8 -2
  226. package/dist/interactions/actions/flip/action.js.map +1 -1
  227. package/dist/interactions/actions/insert/repositionAction.js +2 -1
  228. package/dist/interactions/actions/insert/repositionAction.js.map +1 -1
  229. package/dist/interactions/actions/move/action.js +7 -4
  230. package/dist/interactions/actions/move/action.js.map +1 -1
  231. package/dist/interactions/actions/outlines/createOutlinesAction.js +8 -5
  232. package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -1
  233. package/dist/interactions/actions/outlines/outlineStroke.js +5 -3
  234. package/dist/interactions/actions/outlines/outlineStroke.js.map +1 -1
  235. package/dist/interactions/actions/pathCommands/cutJoin.js +8 -5
  236. package/dist/interactions/actions/pathCommands/cutJoin.js.map +1 -1
  237. package/dist/interactions/actions/resize/cornerHandles.js +2 -1
  238. package/dist/interactions/actions/resize/cornerHandles.js.map +1 -1
  239. package/dist/interactions/actions/selectionSubtree.js +12 -7
  240. package/dist/interactions/actions/selectionSubtree.js.map +1 -1
  241. package/dist/interactions/actions/transform-again/action.js +8 -5
  242. package/dist/interactions/actions/transform-again/action.js.map +1 -1
  243. package/dist/json.d.ts +4 -0
  244. package/dist/json.js +3 -0
  245. package/dist/kitSettingsSchema.js +8 -1
  246. package/dist/kitSettingsSchema.js.map +1 -1
  247. package/dist/{math-CrJULaZI.d.ts → math-B56zxVs5.d.ts} +10 -1
  248. package/dist/math.d.ts +1 -1
  249. package/dist/math.js +2 -1
  250. package/dist/resize.d.ts +1 -1
  251. package/dist/test-seams.d.ts +2 -2
  252. package/dist/tools/builtin/ellipse/useEllipseTool.js +1 -0
  253. package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
  254. package/dist/tools/builtin/eyedropper/useEyedropperTool.js +2 -1
  255. package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
  256. package/dist/tools/builtin/hand/dragPanContribution.js +4 -1
  257. package/dist/tools/builtin/hand/dragPanContribution.js.map +1 -1
  258. package/dist/tools/builtin/hand/useHandTool.js +7 -4
  259. package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
  260. package/dist/tools/builtin/image/useImageTool.js +1 -0
  261. package/dist/tools/builtin/image/useImageTool.js.map +1 -1
  262. package/dist/tools/builtin/lasso/useLassoTool.js +1 -0
  263. package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
  264. package/dist/tools/builtin/line/useLineTool.js +1 -0
  265. package/dist/tools/builtin/line/useLineTool.js.map +1 -1
  266. package/dist/tools/builtin/measure/useMeasureTool.js +12 -5
  267. package/dist/tools/builtin/measure/useMeasureTool.js.map +1 -1
  268. package/dist/tools/builtin/pen/usePenTool.js +14 -6
  269. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  270. package/dist/tools/builtin/pencil/usePencilTool.js +1 -0
  271. package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
  272. package/dist/tools/builtin/polygon/usePolygonTool.js +13 -4
  273. package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
  274. package/dist/tools/builtin/rect/useRectTool.js +1 -0
  275. package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
  276. package/dist/tools/builtin/select/adapterPointQuery.js +3 -2
  277. package/dist/tools/builtin/select/adapterPointQuery.js.map +1 -1
  278. package/dist/tools/builtin/select/pressDecision.js +32 -0
  279. package/dist/tools/builtin/select/pressDecision.js.map +1 -0
  280. package/dist/tools/builtin/select/selectionContributions.js +22 -13
  281. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  282. package/dist/tools/builtin/select/useSelectTool.js +13 -10
  283. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  284. package/dist/tools/builtin/slice/useSliceTool.js +22 -8
  285. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  286. package/dist/tools/builtin/star/useStarTool.js +13 -4
  287. package/dist/tools/builtin/star/useStarTool.js.map +1 -1
  288. package/dist/tools/builtin/sticky/stickyNode.js +4 -1
  289. package/dist/tools/builtin/sticky/stickyNode.js.map +1 -1
  290. package/dist/tools/builtin/sticky/useStickyTool.js +10 -5
  291. package/dist/tools/builtin/sticky/useStickyTool.js.map +1 -1
  292. package/dist/tools/builtin/text/useTextTool.js +3 -1
  293. package/dist/tools/builtin/text/useTextTool.js.map +1 -1
  294. package/dist/util/paint.js +1 -3
  295. package/dist/util/paint.js.map +1 -1
  296. package/dist/version.js +1 -1
  297. package/package.json +28 -24
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
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 { I as InheritedPaint, 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, k as InertiaConfig, E as EditAnchorsDep, G as GestureLifecycleOptions, l as SliceDep, m as StickyStyle, 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-mG19aEdD.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 createPathOverlay, bg as createSnapOutcomeStore, bh as depsUnchanged, bi as drawLayers, bj as drawOneLayer, bk as fitViewToBounds, bl as getPaintKind, bm as inheritedPaintOf, bn as inheritsPaint, bo as isLayerPainted, bp as isLayerVisible, bq as listGradientKinds, br as listPaintKinds, bs as minSizeOf, bt as paintKindOf, bu as paintKindRegistry, bv as paintedLayers, bw as paintsLayer, bx as paletteInsertPaint, by as pathPaintOf, bz as patternFamily, bA as previewBooleanOp, bB as registerContentHandler, bC as registerPaintKind, bD as registerPaintKindLoader, bE as seedTile, bF as stickyData, bG as stickyNodeFactory, bH as subscribeToSources, bI as switchGradientKind, bJ as textBoxOf, bK as useDecayLoop, bL as useViewAnimation, bM as useViewAnimationOn, bN as viewAxes, bO as withInheritedPaint, bP as withoutGeometryBoundData } from './depSchema-mG19aEdD.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
5
  import { a as PlaneMap, L as LayoutStrategy, R as ReflowTransition, b as LayoutDropTargetMode } from './types-7puAuVD2.js';
6
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';
@@ -8,12 +8,13 @@ export { DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_VELOCITY_DECAY, Simulat
8
8
  export { useSimulation } from '@weasel-js/simulation/react';
9
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
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';
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, 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, 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,10 +27,10 @@ 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';
@@ -37,13 +38,13 @@ import { Op, CreateHistoryOptions, History, HistorySelection } from '@weasel-js/
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
39
  import { G as GestureContext, B as BoundsConstraint, R as RotateBehavior, I as InsertBehavior, L as LassoSelectBehavior, M as MoveBehavior } from './clone-C3e0OTuF.js';
39
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-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';
41
+ import { d as ResizeHandleLayout, U as UseResizeOptions, T as TargetTransform } from './cornerHandles-p8fDIAKt.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-p8fDIAKt.js';
42
43
  import { ModeRegistry, ModeDecorations } from '@weasel-js/modes';
43
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-oFeQ5VjV.js';
44
45
  export { R as RegionPickView, S as SnapTarget } from './types-oFeQ5VjV.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
+ 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';
47
48
  import { U as UseMoveOptions } from './options-DBxEryYq.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';
@@ -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-B56zxVs5.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
@@ -325,6 +330,9 @@ interface NodeInkCtx {
325
330
  /** The path the node shows in place of its pose's, already where it is
326
331
  * drawn: its box is measured from this, not from the placeholder pose. */
327
332
  derivedPath?: Path | null;
333
+ /** As {@link NodePaintCtx.inherited}: a stroke or fill the node inherits
334
+ * inks it as its own does. */
335
+ inherited?: InheritedPaint;
328
336
  }
329
337
 
330
338
  /** What a painter that declares no `ink` is assumed to do. */
@@ -371,6 +379,9 @@ interface ShapeCoversPointOptions {
371
379
  * everywhere, which degrades picking to the caller's AABB: for an edge,
372
380
  * a zero-sized pose. */
373
381
  derivedPath?: Path | null;
382
+ /** See {@link NodeInkCtx.inherited}. Without it an `'inherit'` field is
383
+ * read as none. */
384
+ inherited?: NodeInkCtx['inherited'];
374
385
  }
375
386
  /**
376
387
  * Does the shape `node` actually paints cover the world point? Asks the painter's silhouette,
@@ -442,14 +453,14 @@ interface ViewRect {
442
453
  w: number;
443
454
  h: number;
444
455
  }
445
- /** Props for `<CanvasView>`. */
446
- interface CanvasViewProps {
456
+ /** The props every `<CanvasView>` takes, whichever side it holds. */
457
+ interface CanvasViewCommonProps {
447
458
  /** Identifies the view to the surface and to input routing. Must be unique
448
459
  * among the views on one canvas. */
449
460
  id: string;
450
461
  /**
451
462
  * 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
463
+ * view's rect, and a thunked `bounds`, `view` or `aim` receives that view's camera
453
464
  * and size as `outer` and `dims`. The view paints after it, cut to what it
454
465
  * shows, paints only the layers it paints, and takes input there before it
455
466
  * does. While no view has that id, this one neither paints nor takes input.
@@ -458,19 +469,6 @@ interface CanvasViewProps {
458
469
  /** Where this view paints, recomputed every frame so the rect can track the
459
470
  * outer camera. A plain rect is accepted for a fixed panel. */
460
471
  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
472
  /** Receives this view's camera, to read, drive, and watch from outside it. */
475
473
  cameraRef?: Ref<CanvasViewCamera>;
476
474
  /** Which of the surface's layers this view paints. Defaults to all of them —
@@ -522,6 +520,40 @@ interface CanvasViewProps {
522
520
  * `selection` is supplied. */
523
521
  selectionOptions?: UseSelectionOptions;
524
522
  }
523
+ /** A view that holds its camera. */
524
+ interface CameraHeldViewProps {
525
+ /** Camera. Supply this to control it; otherwise the view keeps its own,
526
+ * seeded from `defaultView`. `onViewChange` fires either way.
527
+ *
528
+ * A thunk is a camera derived from the canvas's — a loupe following the
529
+ * pointer — read fresh at every paint and every event, so the two cannot
530
+ * disagree mid-gesture. It is controlled: a pan inside the view reaches
531
+ * only `onViewChange`. */
532
+ view?: View | ((outer: View, dims: Dims) => View);
533
+ defaultView?: View;
534
+ onViewChange?: (v: View) => void;
535
+ /** Pan limits, applied to every camera change the same way `<Canvas>`
536
+ * applies its own. */
537
+ viewBounds?: FramedBox;
538
+ aim?: never;
539
+ onAimChange?: never;
540
+ }
541
+ /** A view that holds its aim, and derives its camera from it. */
542
+ interface AimHeldViewProps {
543
+ /** What the view shows, as a world rect; its camera fits it to the frame, uniformly and centered.
544
+ * A thunk is read at each paint and event, measured like a thunked `view`. */
545
+ aim: FramedBox | ((outer: View, dims: Dims) => FramedBox);
546
+ /** A pan or zoom inside the view, or `setAim` on it, reported as the held rect that camera move carries. */
547
+ onAimChange?: (aim: FramedBox) => void;
548
+ view?: never;
549
+ defaultView?: never;
550
+ onViewChange?: never;
551
+ viewBounds?: never;
552
+ }
553
+ /** Props for `<CanvasView>`: the common ones, and either a camera or an aim. `Omit` does not distribute over
554
+ * the union, and a `Partial` of it does not spread back into `<CanvasView>`, so a wrapper builds its props from
555
+ * {@link CanvasViewCommonProps} and one half. */
556
+ type CanvasViewProps = CanvasViewCommonProps & (CameraHeldViewProps | AimHeldViewProps);
525
557
 
526
558
  /**
527
559
  * One view on a shared canvas. Owns a camera, contributes the viewport node
@@ -533,6 +565,72 @@ interface CanvasViewProps {
533
565
  */
534
566
  declare function CanvasView(props: CanvasViewProps): null;
535
567
 
568
+ /** A point in a view's world. A 2D world is the plane z = 0, so `z` is absent there. */
569
+ interface AimPoint {
570
+ x: number;
571
+ y: number;
572
+ z?: number;
573
+ }
574
+ /** A closed outline in a frame's CSS px, from the frame's top-left; at least 3 points. */
575
+ type AimOutline = readonly {
576
+ x: number;
577
+ y: number;
578
+ }[];
579
+ /** A target view, as an aim is drawn into it: its world, and its frame. */
580
+ interface AimSpace {
581
+ /** The view whose frame this is; `null` for a surface's root view. */
582
+ readonly viewId: string | null;
583
+ /** `'2d'` for core's views; any other value is its owner's (kernel3d: `'3d'`). */
584
+ readonly kind: string;
585
+ readonly size: {
586
+ width: number;
587
+ height: number;
588
+ };
589
+ /** World point to frame px; `null` where the point does not draw (behind a 3D camera). */
590
+ project(p: AimPoint): {
591
+ x: number;
592
+ y: number;
593
+ } | null;
594
+ /** Frame px to the world point under it; `null` where there is none (a 3D ray missing its plane). */
595
+ unproject(px: {
596
+ x: number;
597
+ y: number;
598
+ }): AimPoint | null;
599
+ }
600
+ /** What a viewport shows, read in the world of the view it names. */
601
+ interface ViewAim<TExtent = unknown> {
602
+ readonly viewId: string | null;
603
+ /** Discriminates `extent`: `'rect'` for core's 2D views. */
604
+ readonly kind: string;
605
+ /** Where the aim lies in its world, in its owner's own terms. */
606
+ readonly extent: TExtent;
607
+ /** The aim's outline in `space`'s frame, or `null` when it cannot be drawn there. */
608
+ outlineIn(space: AimSpace): AimOutline | null;
609
+ /** This aim moved so the world point under frame px `from` in `space` ends up under `to`; `null` when either misses. */
610
+ pannedIn(space: AimSpace, from: {
611
+ x: number;
612
+ y: number;
613
+ }, to: {
614
+ x: number;
615
+ y: number;
616
+ }): ViewAim<TExtent> | null;
617
+ }
618
+ /** Core's 2D aim: a world rect a view shows. */
619
+ type RectAim = ViewAim<FramedBox> & {
620
+ readonly kind: 'rect';
621
+ };
622
+ /** The aim of view `viewId` (`null`: a surface's root) showing world rect `rect`. */
623
+ declare function rectAim(viewId: string | null, rect: FramedBox): RectAim;
624
+ /** Whether `aim` is core's 2D rect aim, so its `extent` is a world rect. */
625
+ declare function isRectAim(aim: ViewAim): aim is RectAim;
626
+ /** A 2D view's frame: `view` is its camera and `size` its frame; frame px are measured from the frame's top-left. */
627
+ declare function aimSpace2d(viewId: string | null, view: View, size: Dims): AimSpace;
628
+ /**
629
+ * The camera that shows `rect` in a frame of `size`: `'exact'` per axis (the inverse of `viewportWorldRect`),
630
+ * `'contain'` uniform and centered. Not clamped to a zoom range, and finite for an empty rect or frame. Normalized.
631
+ */
632
+ declare function viewForAim(rect: FramedBox, size: Dims, fit: 'exact' | 'contain'): View;
633
+
536
634
  /**
537
635
  * A view added through {@link SceneCanvasApi.addView}.
538
636
  */
@@ -788,6 +886,13 @@ interface SceneCanvasApi extends CanvasExtensionApi {
788
886
  }, opts?: {
789
887
  except?: string;
790
888
  }): ViewAt;
889
+ /** What view `id` shows (`null`: the canvas's own camera), or `null` while no such view is mounted. */
890
+ aimOf(id: string | null): ViewAim | null;
891
+ /** Point view `id` at `aim`. A camera-held view moves its camera to show the aim exactly, per axis, so a
892
+ * rect of another shape stretches it; for a uniform zoom-to-fit, use `fitViewToBounds` or `animateView`.
893
+ * An aim-held view reports the aim through `onAimChange`. `false` when there is no such view, the aim is
894
+ * not one it can read, or the write goes nowhere: no camera writer, or a controlled view with no handler. */
895
+ setAim(id: string | null, aim: ViewAim): boolean;
791
896
  }
792
897
 
793
898
  /**
@@ -1318,9 +1423,6 @@ interface UseNodeOverlayFrameOptions<TPose> {
1318
1423
  */
1319
1424
  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
1425
 
1321
- /** JSON with object keys sorted, so two equal values produce one string. */
1322
- declare function stableStringify(value: unknown): string;
1323
-
1324
1426
  /** A 2D point in the rect element's local coordinate space. */
1325
1427
  interface HandleDragPoint {
1326
1428
  x: number;
@@ -1898,6 +2000,211 @@ declare function useVelocityTracker(): VelocityTracker;
1898
2000
  */
1899
2001
  declare function interpolateView(from: View, to: View): (t: number) => View;
1900
2002
 
2003
+ /** An aim handed in by value (another surface's view, a 3D pane), with the writer that moves it. */
2004
+ interface AimSource {
2005
+ aim(): ViewAim | null;
2006
+ setAim?(aim: ViewAim): void;
2007
+ }
2008
+ /** How a marker's outline is stroked, in screen px. */
2009
+ interface ViewMarkerStyle {
2010
+ stroke?: string;
2011
+ width?: number;
2012
+ dash?: readonly number[];
2013
+ }
2014
+ /** One view's aim, drawn inside another view's frame. */
2015
+ interface ViewMarkerProps {
2016
+ /** Unique among the markers on one surface. */
2017
+ id: string;
2018
+ /** Whose aim: a view id on this surface, `null` for the root view, or an aim by value. */
2019
+ source: string | null | AimSource;
2020
+ /** Whose frame it is drawn in, after that view's layers: a view id, or `null` for the root. */
2021
+ target: string | null;
2022
+ /** Screen px. Default: stroke `#ffffff`, width 1, dash [2, 3]. */
2023
+ style?: ViewMarkerStyle;
2024
+ /** Default true: dragging the marker edits the source's aim. A source with no writer is never interactive.
2025
+ * A marker grabs its whole interior plus {@link VIEW_MARKER_HIT_SLOP_PX}, so one covering much of its
2026
+ * frame takes every press there; `false` opts out. */
2027
+ interactive?: boolean;
2028
+ }
2029
+ /** The marker style a {@link ViewMarkerProps.style} fills in from: the minimap indicator's. */
2030
+ declare const VIEW_MARKER_DEFAULT_STYLE: Required<ViewMarkerStyle>;
2031
+ /** What a marker resolves aims through: the surface's views. */
2032
+ interface ViewMarkerHost {
2033
+ aimOf(id: string | null): ViewAim | null;
2034
+ setAim(id: string | null, aim: ViewAim): boolean;
2035
+ }
2036
+ /** A screen-space layer, id `view-marker:<id>`, drawing `props`'s source aim in the frame it is handed. */
2037
+ declare function createViewMarkerLayer(props: () => ViewMarkerProps, host: ViewMarkerHost): RenderLayer<unknown>;
2038
+ /** A press on a marker, held for the drag: where it started, and the aim it started from. */
2039
+ interface ViewMarkerGrab {
2040
+ readonly markerId: string;
2041
+ /** Pan the source so the world point under the press ends up under `world`, a point in the target's world. */
2042
+ moveTo(world: {
2043
+ x: number;
2044
+ y: number;
2045
+ }): void;
2046
+ }
2047
+ /** A press this many screen px outside the outline still counts. */
2048
+ declare const VIEW_MARKER_HIT_SLOP_PX = 4;
2049
+ /**
2050
+ * The grab for a press at frame px `at` in `space`, the marker's target, or
2051
+ * `null` when the marker is not interactive, its source has no writer or no
2052
+ * aim, or `at` is not on its outline or within {@link VIEW_MARKER_HIT_SLOP_PX} of it. A surface with views
2053
+ * calls this itself; a canvas with none, such as a detached minimap, calls it to route a press to its marker.
2054
+ */
2055
+ declare function grabViewMarker(props: ViewMarkerProps, host: ViewMarkerHost, space: AimSpace, at: {
2056
+ x: number;
2057
+ y: number;
2058
+ }): ViewMarkerGrab | null;
2059
+
2060
+ /**
2061
+ * Draws one view's aim inside another's frame, after that view's own layers.
2062
+ *
2063
+ * Renders nothing; outside a surface it is inert. Either view may mount after
2064
+ * the marker does: until both are there it draws nothing.
2065
+ */
2066
+ declare function ViewMarker(props: ViewMarkerProps): null;
2067
+
2068
+ /**
2069
+ * The routing types that carry an overlay, bound to the kit's `RenderLayer`.
2070
+ *
2071
+ * `@weasel-js/routing` never reads an overlay — it collects the live ones and
2072
+ * hands them back in scope order — so it leaves the element type open. What a
2073
+ * weasel canvas draws is a `RenderLayer`, and every kit call site should see
2074
+ * that rather than `unknown`, so core binds the parameter once, here, and
2075
+ * re-exports these names under the ones they have always had.
2076
+ */
2077
+
2078
+ /** What a canvas overlay is, at this layer. */
2079
+ type Overlay = RenderLayer<unknown>;
2080
+ declare module '@weasel-js/routing' {
2081
+ interface OverlaySchema {
2082
+ overlay: RenderLayer<unknown>;
2083
+ }
2084
+ }
2085
+ /** Routing's `Contribution`, with overlays typed as `RenderLayer`. */
2086
+ type Contribution = Contribution$1<Overlay>;
2087
+ /** Routing's `ContributionChrome`, with overlays typed as `RenderLayer`. */
2088
+ type ContributionChrome = ContributionChrome$1<Overlay>;
2089
+ /** Routing's `Tool`, with overlays typed as `RenderLayer`. */
2090
+ type Tool = Tool$1<Overlay>;
2091
+ /** The same type as `Tool`, kept for code that imports it by this name. */
2092
+ type AnyTool = Tool;
2093
+ /** Routing's `ToolDef` (what `defineTool` takes), with overlays typed as `RenderLayer`. */
2094
+ type ToolDef = ToolDef$1<Overlay>;
2095
+ /** Routing's `ToolsApi`, with overlays typed as `RenderLayer`. */
2096
+ type ToolsApi = ToolsApi$1<Overlay>;
2097
+ /** Routing's `UseToolsOptions`, with overlays typed as `RenderLayer`. */
2098
+ type UseToolsOptions = UseToolsOptions$1<Overlay>;
2099
+ /** Routing's `useTools`, typed for `RenderLayer` overlays. */
2100
+ declare const useTools: (opts: UseToolsOptions) => ToolsApi;
2101
+
2102
+ /**
2103
+ * The versions a contribution can require, keyed by package without its
2104
+ * `@weasel-js/` scope. Only core reports its version today.
2105
+ */
2106
+ interface KitVersions {
2107
+ core: string;
2108
+ }
2109
+ /** A contribution's `requires`: a semver range per package it was written against. */
2110
+ type KitRequirements = {
2111
+ readonly [K in keyof KitVersions]?: string;
2112
+ };
2113
+ /** The running kit's versions. */
2114
+ declare const KIT_VERSIONS: Readonly<KitVersions>;
2115
+ /** One requirement the running kit does not meet. */
2116
+ interface RequirementMismatch {
2117
+ package: string;
2118
+ range: string;
2119
+ /** The running version, or `undefined` when that package reports none. */
2120
+ running: string | undefined;
2121
+ reason: 'unsatisfied' | 'invalid-range' | 'unknown-package';
2122
+ }
2123
+ /**
2124
+ * Whether `version` falls in `range`. `null` when either cannot be read, so a
2125
+ * caller can tell a mismatch from a requirement it could not check.
2126
+ */
2127
+ declare function satisfiesRange(version: string, range: string): boolean | null;
2128
+ /**
2129
+ * Every requirement in `requires` the running kit does not meet. A package
2130
+ * whose build does not know its own version (`0.0.0-unknown`, core's source
2131
+ * bundled without its define) is skipped: nothing can be said about it.
2132
+ */
2133
+ declare function checkRequirements(requires: KitRequirements, running?: Readonly<Partial<Record<string, string>>>): RequirementMismatch[];
2134
+
2135
+ /** Reads the surface's deps from inside `SurfaceContribution.attach`. */
2136
+ interface ContributionDepReader {
2137
+ get<K extends DepName>(name: K): DepSchema[K] | undefined;
2138
+ }
2139
+ /** What {@link SurfaceContribution.beforePaint} and `afterPaint` are handed. */
2140
+ interface ContributionFrameCtx {
2141
+ /** The frame's timestamp, on `performance.now()`'s clock. Both phases of one
2142
+ * frame see the same value. */
2143
+ readonly time: number;
2144
+ /** The surface camera this frame paints with. */
2145
+ readonly view: View;
2146
+ /** Ask for another frame. A hook animating something calls this every frame
2147
+ * it still has work for, and stops calling it to let the loop go idle. */
2148
+ requestFrame(): void;
2149
+ /** The surface's deps, as `attach` reads them. */
2150
+ readonly deps: ContributionDepReader;
2151
+ }
2152
+ /**
2153
+ * A feature a surface installs in one step. Every role is optional: `bindings`,
2154
+ * `actions`, `deps`, `overlay` and `presentation` from `Contribution`, plus
2155
+ * the ones below. Installing it installs every role it declares, and removing
2156
+ * it removes them.
2157
+ */
2158
+ interface SurfaceContribution extends Contribution {
2159
+ /** Views this entry adds to the surface, as `<SceneCanvas views>` takes. */
2160
+ views?: readonly CanvasViewProps[];
2161
+ /** Markers this entry draws, as `<ViewMarker>` elements would. */
2162
+ markers?: readonly ViewMarkerProps[];
2163
+ /**
2164
+ * Runs once the surface mounts; returns its teardown. For what the roles
2165
+ * above cannot say — a registered (hit-testable) layer, a subscription.
2166
+ *
2167
+ * Keyed by the function's identity, so a contribution built once (in a
2168
+ * `useMemo`, or at module scope) attaches once however often the host
2169
+ * re-renders.
2170
+ */
2171
+ attach?: (api: CanvasExtensionApi, deps: ContributionDepReader) => () => void;
2172
+ /**
2173
+ * Runs on every frame the surface paints, before the paint — for state the
2174
+ * entry's layers read, advanced once per frame. Hooks run in the order the
2175
+ * surface lists its entries (registered tools, then `ambient` in array
2176
+ * order), and one that throws is reported and skipped without stopping the
2177
+ * frame.
2178
+ */
2179
+ beforePaint?: (ctx: ContributionFrameCtx) => void;
2180
+ /** Runs after a frame's pixels have landed, in the same order as
2181
+ * {@link beforePaint}. A frame that painted nothing runs no `afterPaint`. */
2182
+ afterPaint?: (ctx: ContributionFrameCtx) => void;
2183
+ /**
2184
+ * The kit versions this entry was written against, as semver ranges:
2185
+ * `{ core: '^1.7' }`. A mismatch warns in development, or throws where the
2186
+ * surface is set to `versionCheck="strict"`.
2187
+ */
2188
+ requires?: KitRequirements;
2189
+ }
2190
+ /**
2191
+ * Concatenate contribution bundles into one registry, preserving order. Throws
2192
+ * on a duplicate entry id, dep name, view id or marker id — two features
2193
+ * answering for the same name is a bug in whichever was added second.
2194
+ */
2195
+ declare function mergeContributions<T extends SurfaceContribution>(...bundles: readonly (readonly T[])[]): T[];
2196
+
2197
+ /** The action id a drag on a view marker routes to. */
2198
+ declare const VIEW_MARKER_DRAG = "view.marker.drag";
2199
+ /** Drags the grabbed marker. There is nothing to commit, so a cancel ends where a release does. */
2200
+ declare function viewMarkerDragAction(): Action;
2201
+ /**
2202
+ * The always-on entry (id `'view-marker'`) that binds a drag on any marker to {@link VIEW_MARKER_DRAG}.
2203
+ * A `<SceneCanvas>` installs it unless `actions={null}` or a `tools` takeover leaves it out; to turn marker
2204
+ * dragging back on there, pass it in `ambient`, or in the takeover's own `useTools` ambient list.
2205
+ */
2206
+ declare function createViewMarkerContribution(): SurfaceContribution;
2207
+
1901
2208
  /** The size props every canvas host takes. */
1902
2209
  interface SurfaceSizeProps {
1903
2210
  /** CSS-pixel width. Omit it, or `height`, and the element fills its parent
@@ -2325,133 +2632,6 @@ declare function useKeyState(options?: UseKeyStateOptions): KeyState;
2325
2632
  */
2326
2633
  declare function useKeyModifiers(options?: UseKeyStateOptions): KeyModifiers;
2327
2634
 
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
2635
  /** Entry and layer id of the default feedback, so a host can find or order it. */
2456
2636
  declare const LONG_PRESS_FEEDBACK_ID = "long-press-feedback";
2457
2637
  /** Options for {@link createLongPressFeedbackContribution}. */
@@ -2566,6 +2746,9 @@ interface RenderSceneToPixelsArgs<TData, TLayer extends string, TPose> {
2566
2746
  * `false`: a raster is an export, which leaves them out as the SVG export
2567
2747
  * does. Pass `true` to reproduce the canvas as it looked. */
2568
2748
  annotations?: boolean;
2749
+ /** Screen space → output pixels, which `'screen'`-unit paint is measured in. Default: output pixels. A
2750
+ * raster standing in for part of a larger surface, such as an export's page, names the whole here. */
2751
+ screen?: GlMat3;
2569
2752
  }
2570
2753
  /** The result of planning a headless render: how big the output is, the view
2571
2754
  * that maps the source rect onto it, and the commands to draw. */
@@ -2786,13 +2969,6 @@ type PathGestureFamily = Exclude<keyof typeof PATH_GESTURE_TAGS, 'path'>;
2786
2969
  /** The tags of a path operation in `family`. */
2787
2970
  declare function pathOperationTags(family: PathGestureFamily): readonly string[];
2788
2971
 
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
2972
  /** The scene reads {@link drawnBoundsOf} makes. `childrenOf` absent: every
2797
2973
  * node is a leaf. `derivedPathOf` absent: every node is measured by its pose,
2798
2974
  * a path-derived one included — `drawnBoundsScene` supplies it for a `Scene`. */
@@ -3586,13 +3762,20 @@ declare const sliceAction: Action & {
3586
3762
  requires: string[];
3587
3763
  };
3588
3764
 
3765
+ /**
3766
+ * Delete ops for the sources a removal of `ids` takes with it (see
3767
+ * `hiddenSourcesTakenWith`), for an action whose own ops remove `ids` some
3768
+ * other way. Append them after those ops: a delete finds its slot as it runs.
3769
+ * Sources in `keep` stay.
3770
+ */
3771
+ declare function hiddenSourceDeleteOps(scene: Scene<unknown, string, unknown>, ids: readonly NodeId[], label: string, keep?: ReadonlySet<NodeId>): Op[];
3589
3772
  /** Options for {@link createDeleteAction}. */
3590
3773
  interface DeleteActionOptions {
3591
3774
  /** Runs in place of the default, {@link commitDeleteToScene}. */
3592
3775
  commit?: (ids: readonly NodeId[], deps: ActionDeps) => void;
3593
3776
  }
3594
- /** The default commit: removes `ids` and their dependents as one undo entry,
3595
- * then empties the selection. */
3777
+ /** The default commit: removes `ids`, their dependents, and the sources a
3778
+ * path effect among them hid, as one undo entry, then empties the selection. */
3596
3779
  declare function commitDeleteToScene(ids: readonly NodeId[], deps: ActionDeps): void;
3597
3780
  /** Delete on Delete and Backspace: hands the selected ids to `commit`. */
3598
3781
  declare function createDeleteAction(opts?: DeleteActionOptions): Action & {
@@ -3642,7 +3825,8 @@ declare const clipboardCopyAction: Action & {
3642
3825
  };
3643
3826
  /**
3644
3827
  * Static descriptor for the `clipboard.cut` Action (Cmd/Ctrl+X) — copy, then
3645
- * the same batched delete `deleteAction` performs, as one undo entry.
3828
+ * the same batched delete `deleteAction` performs, as one undo entry: the
3829
+ * sources a path effect hid go too.
3646
3830
  */
3647
3831
  declare const clipboardCutAction: Action & {
3648
3832
  requires: string[];
@@ -5055,6 +5239,29 @@ interface SceneCanvasPointerProps {
5055
5239
  onHover?: (id: string | null) => void;
5056
5240
  }
5057
5241
 
5242
+ /** The `<SceneCanvas>` props that change the actions and bindings a canvas has. */
5243
+ interface SceneCanvasActionProps {
5244
+ /**
5245
+ * Tune actions on this canvas without restating them, keyed by action id:
5246
+ * `params` every invocation starts from, and `bindings` added beside the
5247
+ * action's own. A tuning applies to whichever descriptor holds the id, a
5248
+ * preset's or a tool's. Pass a stable object; a params thunk is read on
5249
+ * every call. See the core README ("Tuning an action").
5250
+ */
5251
+ tune?: ActionTunings;
5252
+ /**
5253
+ * Replace or remove bindings by binding id, on actions and contributions
5254
+ * alike: a route string (`'[*:*] keyDown(=) +mod'`), a spec (`key('Mod+=')`),
5255
+ * or `null` to unbind. Pass a stable object.
5256
+ */
5257
+ bindingOverrides?: BindingOverrides;
5258
+ /**
5259
+ * Replace, add or mute whole action descriptors. Pass `null` to disable
5260
+ * all defaults. To change a built-in's params or add a key, use `tune`.
5261
+ */
5262
+ actions?: ActionsProp;
5263
+ }
5264
+
5058
5265
  /**
5059
5266
  * Turns pasted or dropped plain text into a text node sized to the string. Registered nowhere by
5060
5267
  * default: a canvas opts in with `ingestion={{ handlers: [kitTextHandler] }}`.
@@ -6484,19 +6691,6 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<TP
6484
6691
  longPress?: SceneCanvasLongPress;
6485
6692
  /** Configures the `view` preset, and implies it. See {@link SceneCanvasViewport}. */
6486
6693
  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
6694
  /**
6501
6695
  * Given a scene node, return a short human-readable "kind" label (e.g. `'rectangle'`,
6502
6696
  * `'sticky note'`), which the kit publishes per id into any surrounding
@@ -6618,7 +6812,7 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<TP
6618
6812
  * nor picked here. See `CanvasProps.layerOrder`.
6619
6813
  */
6620
6814
  layerOrder?: string[];
6621
- } & SceneCanvasPointerProps;
6815
+ } & SceneCanvasPointerProps & SceneCanvasActionProps;
6622
6816
 
6623
6817
  /**
6624
6818
  * The behavior presets `<SceneCanvas features>` composes. A bare canvas renders
@@ -6946,6 +7140,29 @@ interface PickHudProps {
6946
7140
  * would actually select shown in bold. */
6947
7141
  declare function PickHud({ canvasRef, anchorRef, viewRef, toWorld, pickEvery, pickBest, offset }: PickHudProps): react.JSX.Element | null;
6948
7142
 
7143
+ /** The part of a scene the lookup reads. */
7144
+ type ParentLookup<TNode> = {
7145
+ get(id: NodeId): TNode | undefined;
7146
+ };
7147
+ type PaintedNode = {
7148
+ data?: unknown;
7149
+ parent?: NodeId | null;
7150
+ };
7151
+ /** What `node`'s `'inherit'` fields take from its containers in `scene`, or
7152
+ * `undefined` for a node that inherits nothing. */
7153
+ declare function inheritedPaintIn<TNode extends PaintedNode>(scene: ParentLookup<TNode>, node: TNode): InheritedPaint | undefined;
7154
+ /** What an `'inherit'` fill and stroke on `node` would take from its
7155
+ * containers in `scene`, whatever `node` holds now — what an editor offering
7156
+ * the choice shows it would paint. */
7157
+ declare function paintAbove<TNode extends PaintedNode>(scene: ParentLookup<TNode>, node: TNode): InheritedPaint;
7158
+ /**
7159
+ * Wrap a `drawOne` so a node whose fill or stroke is `'inherit'` arrives at
7160
+ * the painter with its containers' paint on `ctx.inherited`, as
7161
+ * `withDerivedPaths` does for a derived path. Every other node passes the
7162
+ * caller's `ctx` through untouched.
7163
+ */
7164
+ declare function withInheritedPaints<TData, TLayer extends string, TPose>(scene: ParentLookup<Node<TData, TLayer, TPose>>, drawOne: SceneViewDrawOne<TData, TLayer, TPose>): SceneViewDrawOne<TData, TLayer, TPose>;
7165
+
6949
7166
  /**
6950
7167
  * The render walk's half of derived paths: resolving one against a scene, and
6951
7168
  * handing it to the painter.
@@ -7885,8 +8102,8 @@ interface DefaultTextData {
7885
8102
  text?: string;
7886
8103
  style?: TextStyle;
7887
8104
  runs?: readonly StyledRun[];
7888
- fill?: Fill | null;
7889
- stroke?: Stroke | null;
8105
+ fill?: Fill | Inherit | null;
8106
+ stroke?: Stroke | Inherit | null;
7890
8107
  verticalAlign?: TextVerticalAlign;
7891
8108
  padding?: number;
7892
8109
  overflow?: TextOverflow;
@@ -8117,10 +8334,6 @@ declare function strokeOf(color: string, width?: number): CommandStroke & {
8117
8334
  /** A stroke painted with `paint` at `width` world units — `strokeOf`'s sibling
8118
8335
  * for a gradient or pattern, which has no color to pass. */
8119
8336
  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
8337
  /**
8125
8338
  * The 0..1 alpha a paint paints at.
8126
8339
  *
@@ -9449,12 +9662,21 @@ declare function nodeOutline(node: Node<unknown, string, unknown>): Path | null;
9449
9662
  /** One painted piece of a derived path. */
9450
9663
  interface DerivedPart {
9451
9664
  path: Path;
9452
- /** The part's fill. Absent, the node's own `data.fill` paints it; `null`
9453
- * paints none. */
9454
- fill?: Fill | null;
9665
+ /** The part's fill, read as a node's is: absent paints none, and
9666
+ * `INHERIT` takes the node's own `data.fill`. */
9667
+ fill?: Fill | Inherit | null;
9455
9668
  /** The part's stroke, on the same terms as `fill`. */
9456
- stroke?: Stroke | null;
9457
- }
9669
+ stroke?: Stroke | Inherit | null;
9670
+ }
9671
+ /** What `part` paints, its `INHERIT` taken from `own`, the deriving node's
9672
+ * data — whose own `INHERIT` takes `inherited`, its container's. */
9673
+ declare function resolvePartPaint(part: DerivedPart, own: {
9674
+ fill?: Fill | Inherit | null;
9675
+ stroke?: Stroke | Inherit | null;
9676
+ } | null | undefined, inherited?: InheritedPaint): {
9677
+ fill: PaintedFill | null;
9678
+ stroke: PaintedStroke | null;
9679
+ };
9458
9680
  /**
9459
9681
  * One path holding every part's outline, with the parts remembered against
9460
9682
  * it for the painter. Return it from a `derivePath`. `null` for no parts.
@@ -9471,6 +9693,21 @@ declare function derivedPartsOf(path: Path | null | undefined): readonly Derived
9471
9693
  * `createPathEffectDerivations` by the layer that owns the painters.
9472
9694
  */
9473
9695
 
9696
+ /** Options every path effect may take. */
9697
+ interface PathEffectOptions {
9698
+ /** Its sources are hidden while it shows them. */
9699
+ hideSources?: boolean;
9700
+ }
9701
+ /** One rigid piece an effect lays along a path, in its own frame: x from 0 at its leading edge to `length`, y down,
9702
+ * its anchor line (a glyph's baseline) at y = 0. */
9703
+ interface EffectItem {
9704
+ /** How much of the path it takes. */
9705
+ length: number;
9706
+ /** Height above the anchor line of the line it centers on — a glyph's x-height middle. */
9707
+ middle: number;
9708
+ /** What it paints; empty for a piece that only takes room, such as a space. */
9709
+ parts: readonly DerivedPart[];
9710
+ }
9474
9711
  /** A source shape. */
9475
9712
  interface EffectSource {
9476
9713
  /** Its outline where it is drawn. */
@@ -9492,6 +9729,9 @@ interface EffectSource {
9492
9729
  * a real "none". */
9493
9730
  fill: Fill | null;
9494
9731
  stroke: Stroke | null;
9732
+ /** The pieces it lays one by one along a path — a text node's grapheme
9733
+ * clusters. Called only by an effect that lays items. */
9734
+ items?: () => readonly EffectItem[];
9495
9735
  }
9496
9736
  /** Reads one dependency as a source; `null` when it has no outline. */
9497
9737
  type EffectSourceReader = (dep: DerivedDep<unknown>) => EffectSource | null;
@@ -9503,7 +9743,7 @@ type EffectSourceReader = (dep: DerivedDep<unknown>) => EffectSource | null;
9503
9743
 
9504
9744
  /** Steps between two shapes. Its sources are `[from, to]`, or
9505
9745
  * `[from, to, spine]` to lay the steps along a third path. */
9506
- interface BlendEffect extends BlendPathsOptions {
9746
+ interface BlendEffect extends BlendPathsOptions, PathEffectOptions {
9507
9747
  kind: 'blend';
9508
9748
  /** How many shapes stand between the two sources, spacing by count. */
9509
9749
  steps: number;
@@ -9530,22 +9770,53 @@ interface BlendEffect extends BlendPathsOptions {
9530
9770
  orient?: boolean;
9531
9771
  }
9532
9772
 
9773
+ /**
9774
+ * Text along a path: a source's items — a text node's grapheme clusters, or a
9775
+ * whole shape as one item — laid end to end along a path, each turned to it.
9776
+ */
9777
+
9778
+ /**
9779
+ * Text (or any shape) laid along a path, item by item. Its sources are `[text, path]`. Only the text's first laid line
9780
+ * follows the path; a color glyph keeps its advance and paints nothing; underlines and other decorations are not drawn.
9781
+ * On an open path an item whose middle falls past either end is not drawn; on a closed one the text wraps past the
9782
+ * seam, and an item a whole lap on from the first item's start is not drawn.
9783
+ */
9784
+ interface TextAlongEffect extends PathEffectOptions {
9785
+ kind: 'textAlong';
9786
+ /** Which part of the text sits at `start`. Default `'start'`. */
9787
+ align?: RunAlign;
9788
+ /** Where the text sits, as a fraction 0..1 of the path's length from its first point. Default 0. */
9789
+ start?: number;
9790
+ /** How far the anchor line sits off the path, toward the glyphs' up, in world units. Default 0. */
9791
+ shift?: number;
9792
+ /** What sits on the path: the glyphs' baseline, or (`'center'`) their x-height middle. Default `'baseline'`. */
9793
+ anchor?: 'baseline' | 'center';
9794
+ /** Text longer than its room is cut at the path's end (`'clip'`), or has the gaps between items squeezed until it
9795
+ * fits (`'fit'`). Default `'clip'`. */
9796
+ overflow?: 'clip' | 'fit';
9797
+ /** Which side of the path the glyphs stand on; see `TrackSide`. Default `'auto'`, whichever reads upright. Turned over,
9798
+ * the text keeps the stretch of path it had, and on an open path drops whichever letters fall off it. */
9799
+ side?: TrackSide;
9800
+ }
9801
+ /** The parts `items` paint laid along `path` as `effect` says; `[]` when there is nothing to lay or nowhere to lay it. */
9802
+ declare function textAlongParts(effect: TextAlongEffect, items: readonly EffectItem[], path: Path): DerivedPart[];
9803
+
9533
9804
  /**
9534
9805
  * The path effects, each as the parts it paints from its sources: a blend's
9535
9806
  * steps between two shapes, a shape bent along a spine, copies of a shape
9536
- * along a path.
9807
+ * along a path, text laid along a path.
9537
9808
  */
9538
9809
 
9539
9810
  /** A shape bent along a spine. Its sources are `[shape, spine]`. */
9540
- interface BendAlongEffect extends BendAlongPathOptions {
9811
+ interface BendAlongEffect extends BendAlongPathOptions, PathEffectOptions {
9541
9812
  kind: 'bendAlong';
9542
9813
  }
9543
9814
  /** Copies of a shape along a path. Its sources are `[shape, path]`. */
9544
- interface RepeatAlongEffect extends Omit<RepeatAlongPathOptions, 'flattenTolerance'> {
9815
+ interface RepeatAlongEffect extends Omit<RepeatAlongPathOptions, 'flattenTolerance'>, PathEffectOptions {
9545
9816
  kind: 'repeatAlong';
9546
9817
  }
9547
9818
  /** A path effect, as a node's `data.pathEffect` holds it. */
9548
- type PathEffect = BlendEffect | BendAlongEffect | RepeatAlongEffect;
9819
+ type PathEffect = BlendEffect | BendAlongEffect | RepeatAlongEffect | TextAlongEffect;
9549
9820
 
9550
9821
  /**
9551
9822
  * A path effect as a scene node: a leaf whose `dependsOn` names its sources,
@@ -9616,7 +9887,11 @@ declare function registeredPathEffects(registry: {
9616
9887
  derivePose?: Readonly<Record<string, unknown>>;
9617
9888
  }): PathEffectDerivations | null;
9618
9889
 
9619
- /** `dep` as a path effect's source, or `null` when it has no outline. */
9890
+ /** Note that the derivation running now read glyph outlines. */
9891
+ declare function noteFontRead(): void;
9892
+
9893
+ /** `dep` as a path effect's source, or `null` when it has no outline. A text
9894
+ * node's source also carries its grapheme clusters as items. */
9620
9895
  declare function readEffectSource(dep: DerivedDep<unknown>): EffectSource | null;
9621
9896
 
9622
9897
  /**
@@ -9636,6 +9911,26 @@ declare const PATH_EFFECT_DERIVATIONS: PathEffectDerivations;
9636
9911
  */
9637
9912
  declare function withPathEffectsRegistry<TPose, TData = unknown, TLayer extends string = string>(registry?: SceneRegistry<TPose, TData, TLayer>): SceneRegistry<TPose, TData, TLayer>;
9638
9913
 
9914
+ /**
9915
+ * For a path-effect node with `hideSources`, the source an edit of `role`
9916
+ * goes to: `'text'`, its first source when that is a text node; `'path'`, the
9917
+ * path it lays along — the second source of an along kind, a blend's spine.
9918
+ * `null` otherwise. The one answer every edit route asks.
9919
+ */
9920
+ declare function effectSourceFor<TData, TLayer extends string, TPose>(scene: Pick<Scene<TData, TLayer, TPose>, 'get'>, id: NodeId, role: 'text' | 'path'): NodeId | null;
9921
+ /**
9922
+ * The sources a removal of `ids` takes with it: those that a path effect with
9923
+ * `hideSources` in the removal hid, and that nothing staying still derives
9924
+ * from. A source another effect still reads stays, and so does one shown
9925
+ * again since or named in `keep`. Transitive, so an effect's hidden effect
9926
+ * takes its own too.
9927
+ */
9928
+ declare function hiddenSourcesTakenWith<TData, TLayer extends string, TPose>(scene: Pick<Scene<TData, TLayer, TPose>, 'get' | 'removalClosure'>, ids: readonly NodeId[], keep?: ReadonlySet<NodeId>): NodeId[];
9929
+
9930
+ /** For each selected path-effect node with `hideSources`, its hidden sources' outlines as the effect reads them, in a
9931
+ * one-screen-pixel stroke of the `'chrome'` overlay color at 40% opacity. The selection comes off the draw envelope. */
9932
+ declare function useEffectSourcesLayer<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>): RenderLayer<unknown>;
9933
+
9639
9934
  /** The Boolean path operations, each acting on the current selection and
9640
9935
  * committing as one undo step. */
9641
9936
  interface UseBooleansReturn {
@@ -11013,6 +11308,10 @@ declare const coreKitSettingsSchema: Omit<_weasel_js_prefs.PrefGroup, "children"
11013
11308
  readonly dragPx: _weasel_js_prefs.PrefNumber & {
11014
11309
  default: number;
11015
11310
  };
11311
+ readonly keymapUnbound: _weasel_js_prefs.PrefEnumBase<"modal" | "cascade"> & {
11312
+ default: "modal" | "cascade";
11313
+ clearable?: false;
11314
+ };
11016
11315
  };
11017
11316
  };
11018
11317
  readonly targets: Omit<_weasel_js_prefs.PrefGroup, "children"> & {
@@ -11068,4 +11367,4 @@ declare const coreKitSettingsSchema: Omit<_weasel_js_prefs.PrefGroup, "children"
11068
11367
  };
11069
11368
  };
11070
11369
 
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 };
11370
+ 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, 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, 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, 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, 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, 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, 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, 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, hasEditablePath, hiddenSourceDeleteOps, hiddenSourcesTakenWith, hidesSubtree, hitAffordanceRegions, hitAnchor, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inheritedPaintIn, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateView, isAnnotationLayer, isAnnotationNode, 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, 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, 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, splitOverChildren, springPose, staggerSpringPose, startThresholdDrag, 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, withInheritedPaints, withPath, withPathEffectsRegistry, withoutShapeGenerator, workspaceTintLayer, worldPoseLookup, worldToScreen, writtenBy, zoomAt, zoomAtLeast };