@weasel-js/core 0.8.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +748 -0
  2. package/dist/{DrawCommand-BKJ5JPkC.d.ts → DrawCommand-DCmiNkBj.d.ts} +14 -169
  3. package/dist/{chunk-GLZLSPGJ.js → chunk-6SHZHXXR.js} +46 -9
  4. package/dist/chunk-6SHZHXXR.js.map +1 -0
  5. package/dist/chunk-DCIU3SRK.js +505 -0
  6. package/dist/chunk-DCIU3SRK.js.map +1 -0
  7. package/dist/{chunk-DLV5F4NY.js → chunk-FVNWK7U3.js} +1525 -763
  8. package/dist/chunk-FVNWK7U3.js.map +1 -0
  9. package/dist/chunk-IO5Z75X4.js +167 -0
  10. package/dist/chunk-IO5Z75X4.js.map +1 -0
  11. package/dist/{chunk-BPRHGTLQ.js → chunk-UB6A6L77.js} +3 -3
  12. package/dist/{chunk-BPRHGTLQ.js.map → chunk-UB6A6L77.js.map} +1 -1
  13. package/dist/{chunk-CMBE45MT.js → chunk-Z3KNFTTS.js} +6 -6
  14. package/dist/chunk-Z3KNFTTS.js.map +1 -0
  15. package/dist/clipboard.d.ts +1 -1
  16. package/dist/{index-Clf_koyR.d.ts → index-DPI8DV0A.d.ts} +104 -91
  17. package/dist/index.d.ts +352 -43
  18. package/dist/index.js +6 -6
  19. package/dist/insert.js +5 -5
  20. package/dist/insert.js.map +1 -1
  21. package/dist/move.js +2 -2
  22. package/dist/paint-types-CnLIzqq1.d.ts +261 -0
  23. package/dist/patterns-builtin.d.ts +57 -2
  24. package/dist/patterns-builtin.js +1 -97
  25. package/dist/patterns-builtin.js.map +1 -1
  26. package/dist/renderer.d.ts +76 -15
  27. package/dist/renderer.js +6 -6
  28. package/dist/resize.js +2 -2
  29. package/dist/routing.d.ts +5 -5
  30. package/dist/routing.js +1 -1
  31. package/dist/{types-DUpI7Apc.d.ts → types-Kh_osAq9.d.ts} +8 -1
  32. package/dist/{viewToMat3-DFMdZvVl.d.ts → viewToMat3-BvaWCN99.d.ts} +1 -1
  33. package/package.json +6 -6
  34. package/dist/chunk-6DAUIMTO.js +0 -233
  35. package/dist/chunk-6DAUIMTO.js.map +0 -1
  36. package/dist/chunk-CMBE45MT.js.map +0 -1
  37. package/dist/chunk-DLV5F4NY.js.map +0 -1
  38. package/dist/chunk-GLZLSPGJ.js.map +0 -1
  39. package/dist/chunk-Y52N27PF.js +0 -39
  40. package/dist/chunk-Y52N27PF.js.map +0 -1
  41. package/dist/registerTexture-BzHTLhD9.d.ts +0 -25
package/dist/index.d.ts CHANGED
@@ -4,14 +4,14 @@ import { a as ViewTransform, V as View, Z as ZoomBound, b as ZoomFactor } from '
4
4
  export { s as screenToWorld, v as viewToTransform, w as worldToScreen } from './view-DSQgxBJB.js';
5
5
  import { a as UnitValue, b as UnitSystem, U as UseMoveOptions, O as OriginProjection } from './grid-XcFQVS0f.js';
6
6
  export { I as IMPERIAL_INCHES, M as METRIC_MM, P as PIXELS, R as RECT_ORIGIN_PROJECTION, c as Unit, f as formatUnit, g as gridSnapStrategy, p as pointToGridCell, r as resolveUnit } from './grid-XcFQVS0f.js';
7
- import { R as RenderLayer, D as Dims, a as DeviceProfile, b as DetectedDeviceFacts, C as Condition, c as Rule, d as RuleCtx, V as VisibilityRules, e as ChromeCtx, f as ChromeId, A as Action, g as DepSchema, S as SliceDep, h as ActionsRegistry, T as Tool, i as AffordanceHit, j as Dispatcher, k as AnyTool, l as ToolCtx, m as ToolKeybinding, H as HotkeyTrigger, n as AffordanceBinding, o as ChromeState, p as SelectionApi, I as InsertExtras, G as GeometryProjection, q as ContentHandlerEntry, r as SvgIngestOptions, U as UseSelectionOptions, s as ActionsProp, t as Affordance, u as AffordanceRegion, v as CommonAffordanceScratch, B as BooleansAdapter } from './index-Clf_koyR.js';
8
- export { w as ALWAYS, x as ActionDeps, y as ActionDisabledReason, z as ActionEnabledResult, E as ActionEntry, F as ActionsProvider, J as ActiveToolContextProvider, K as ActiveToolContextProviderIfRoot, L as ActiveToolContextProviderProps, M as ActiveToolContextValue, N as AreaSelectDep, O as BindingOpts, P as BindingScope, Q as BooleanOp, W as BooleanOpResult, X as BoundGesture, Y as BuildRuleCtxArgs, Z as ClipboardDep, _ as ClipboardIngestCtx, $ as CustomPaintContext, a0 as DepName, a1 as DepRegistry, a2 as DepRegistryProvider, a3 as DispatcherContext, a4 as DragSample, a5 as EditAnchorsDep, a6 as GestureBinding, a7 as IDENTITY_POSE_COMPOSITION, a8 as ImmediateInvoker, a9 as IngestCtx, aa as IngestionDep, ab as InsertDep, ac as InvocationCtx, ad as Invoker, ae as LassoSelectDep, af as LayoutDep, ag as MatchResult, ah as NEVER, ai as NodeAtPointDep, aj as OngoingHandle, ak as OngoingInvoker, al as OngoingOverlay, am as Point2, an as PointerContextProvider, ao as PointerContextValue, ap as PointerWorldPos, aq as PoseAdapter, ar as PoseComposition, as as ResizePolicy, at as ResolveAllOptions, au as ResolveOnlyResult, av as ResolvedCandidate, aw as ScopedBinding, ax as SelectionExtendKey, ay as SelectionMode, az as Selector, aA as SnapDep, aB as SvgUnpacker, aC as TextEditDep, aD as ToolModifiers, aE as ToolPresentation, aF as ToolSlot, aG as UiOngoingControl, aH as ViewApi, aI as applyBooleanOp, aJ as buildRuleCtx, aK as clipboardCopyAction, aL as clipboardCutAction, aM as composeRectPose, aN as composeWorldPose, aO as createDispatcher, aP as decomposeRectPose, aQ as describeRule, aR as drawLayers, aS as enterTextEditAction, aT as evaluate, aU as evaluateEnabled, aV as rebaseLocalPose, aW as registerContentHandler, aX as routing, aY as sliceAction, aZ as specificity, a_ as translateRectPose, a$ as useAction, b0 as useActionsRegistry, b1 as useActiveToolContext, b2 as useDepRegistry, b3 as useDepSource, b4 as useOptionalActiveToolContext, b5 as useOptionalDepRegistry, b6 as usePointerContext, b7 as useSelection, b8 as worldPoseLookup } from './index-Clf_koyR.js';
9
- import { a as Stroke, F as FillStyle, D as DrawCommand, S as ShaderProgramHandle, P as PathDrawCommand, f as StyledRun, R as ResolvedTextStyle, g as TextStyle, h as TextVerticalAlign } from './DrawCommand-BKJ5JPkC.js';
10
- export { i as DEFAULT_TEXT_STYLE, G as GradStop, b as GroupDrawCommand, I as ImageDrawCommand, M as Mat3, j as Region, k as ResolvedRun, c as ShaderDrawCommand, d as ShaderUniform, l as StrokeAlign, T as TextDrawCommand, n as alignedStrokeRect, o as fontString, p as markdownToRuns, q as resolveRuns, s as resolveTextStyle, t as runsToMarkdown, u as runsToPlainText, v as toRuns, w as verticalAlignOffset } from './DrawCommand-BKJ5JPkC.js';
7
+ import { R as RenderLayer, D as Dims, a as DeviceProfile, b as DetectedDeviceFacts, C as Condition, c as Rule, d as RuleCtx, V as VisibilityRules, e as ChromeCtx, f as ChromeId, A as Action, g as DepSchema, S as SliceDep, h as ActionsRegistry, T as Tool, i as AffordanceHit, j as Dispatcher, k as AnyTool, l as ToolCtx, m as ToolKeybinding, H as HotkeyTrigger, L as LayerHit, n as ChromeState, o as SelectionApi, I as InsertExtras, G as GeometryProjection, p as ContentHandlerEntry, q as SvgIngestOptions, U as UseSelectionOptions, r as ActionsProp, s as Affordance, t as AffordanceBinding, u as AffordanceRegion, v as CommonAffordanceScratch, B as BooleansAdapter, E as Eligibility, w as BindingScope, x as Contribution, y as ScopedBinding } from './index-DPI8DV0A.js';
8
+ export { z as ALWAYS, F as ActionDeps, J as ActionDisabledReason, K as ActionEnabledResult, M as ActionEntry, N as ActionsProvider, O as ActiveToolContextProvider, P as ActiveToolContextProviderIfRoot, Q as ActiveToolContextProviderProps, W as ActiveToolContextValue, X as AreaSelectDep, Y as BindingOpts, Z as BooleanOp, _ as BooleanOpResult, $ as BoundGesture, a0 as BuildRuleCtxArgs, a1 as ClaimableGesture, a2 as ClipboardDep, a3 as ClipboardIngestCtx, a4 as CustomPaintContext, a5 as DepName, a6 as DepRegistry, a7 as DepRegistryProvider, a8 as DispatcherContext, a9 as DragSample, aa as EditAnchorsDep, ab as GestureBinding, ac as IDENTITY_POSE_COMPOSITION, ad as ImmediateInvoker, ae as IngestCtx, af as IngestionDep, ag as InsertDep, ah as InvocationCtx, ai as Invoker, aj as LassoSelectDep, ak as LayoutDep, al as MatchResult, am as NEVER, an as NodeAtPointDep, ao as OngoingHandle, ap as OngoingInvoker, aq as OngoingOverlay, ar as Point2, as as PointerContextProvider, at as PointerContextValue, au as PointerWorldPos, av as PoseAdapter, aw as PoseComposition, ax as ResizePolicy, ay as ResolveAllOptions, az as ResolveOnlyResult, aA as ResolvedCandidate, aB as SelectionExtendKey, aC as SelectionMode, aD as Selector, aE as SnapDep, aF as SvgUnpacker, aG as TextEditDep, aH as ToolModifiers, aI as ToolPresentation, aJ as ToolSlot, aK as UiOngoingControl, aL as ViewApi, aM as applyBooleanOp, aN as buildRuleCtx, aO as clipboardCopyAction, aP as clipboardCutAction, aQ as composeRectPose, aR as composeWorldPose, aS as createDispatcher, aT as decomposeRectPose, aU as describeRule, aV as drawLayers, aW as enterTextEditAction, aX as evaluate, aY as evaluateEnabled, aZ as rebaseLocalPose, a_ as registerContentHandler, a$ as routing, b0 as sliceAction, b1 as specificity, b2 as translateRectPose, b3 as useAction, b4 as useActionsRegistry, b5 as useActiveToolContext, b6 as useDepRegistry, b7 as useDepSource, b8 as useOptionalActiveToolContext, b9 as useOptionalDepRegistry, ba as usePointerContext, bb as useSelection, bc as worldPoseLookup } from './index-DPI8DV0A.js';
9
+ import { S as Stroke, F as FillStyle, a as TextureHandle, T as TilePatternSpec, b as GradientKind, G as GradStop, c as GradientFill } from './paint-types-CnLIzqq1.js';
10
+ export { d as GradientUnits, R as Region, e as StrokeAlign, f as alignedStrokeRect } from './paint-types-CnLIzqq1.js';
11
11
  import { B as Bounds, P as PoseProjection, F as FitViewToBoundsOptions, V as ViewportDims } from './geometry-DVeZ2i-c.js';
12
12
  export { R as RECT_POSE_DESCRIPTOR, a as ROTATED_POSE_DESCRIPTOR, f as fitViewToBounds } from './geometry-DVeZ2i-c.js';
13
- import { N as NodeId, S as Scene, a as Node$1, b as SerializedScene, R as RectPose, U as UseSceneOptions, c as SceneRegistry, d as RegisteredOp } from './types-DUpI7Apc.js';
14
- export { A as AddLayerSpec, e as AddNodeSpec, C as ContainerNode, L as LayerRecord, f as LeafNode, g as SerializedNode, h as SystemLayerRecord, i as SystemLayerSpec, j as UserLayerRecord, k as asNodeId } from './types-DUpI7Apc.js';
13
+ import { N as NodeId, S as Scene, a as Node$1, b as SerializedScene, R as RectPose, U as UseSceneOptions, c as SceneRegistry, d as RegisteredOp } from './types-Kh_osAq9.js';
14
+ export { A as AddLayerSpec, e as AddNodeSpec, C as ContainerNode, L as LayerRecord, f as LeafNode, g as SerializedNode, h as SystemLayerRecord, i as SystemLayerSpec, j as UserLayerRecord, k as asNodeId } from './types-Kh_osAq9.js';
15
15
  import { M as ModifierState, R as ResizePose, B as BoundsConstraint, P as PointSnapBehavior, L as LassoSelectBehavior, a as RotatedPose, e as RotateBehavior, S as SnapStrategy, c as ResizeAnchor, b as MoveBehavior, I as InsertBehavior } from './types-BhJJ2OCM.js';
16
16
  export { A as ActionBehavior, f as AreaSelectOverlay, g as BehaviorMoveResult, h as BehaviorResult, C as CloneBehavior, i as CloneLayer, j as ClonePose, G as GestureContext, k as GroupTransform, l as InsertMoveResult, m as InsertOverlay, n as InsertPoint, o as InsertProposed, p as LassoSelectMoveResult, q as LassoSelectOverlay, r as LassoSelectPose, s as LassoSelectProposed, t as PointSnapContext, d as PointSnapFrame, u as PointSnapResult, v as PointerState, w as ResizeMoveResult, x as ResizeOverlay, y as ResizeProposed, z as RotateMoveResult, D as RotateOverlay, E as RotateProposed } from './types-BhJJ2OCM.js';
17
17
  import { U as UseResizeOptions } from './pointSnapToGrid-BuDZWBrL.js';
@@ -25,18 +25,19 @@ export { d as DebugFeature, H as HandleKind, e as HitShape, R as RecordedBounds,
25
25
  import { a as PolygonPath, P as Path, b as PathFillRule, R as RectPath } from './path-B6MMiodD.js';
26
26
  export { c as PATH_C, d as PATH_CMD_LENGTHS, e as PATH_L, f as PATH_M, g as PATH_Q, h as PATH_Z } from './path-B6MMiodD.js';
27
27
  import * as react_jsx_runtime from 'react/jsx-runtime';
28
+ import { D as DrawCommand, S as ShaderProgramHandle, P as PathDrawCommand, d as StyledRun, R as ResolvedTextStyle, e as TextStyle, f as TextVerticalAlign } from './DrawCommand-DCmiNkBj.js';
29
+ export { g as DEFAULT_TEXT_STYLE, G as GroupDrawCommand, I as ImageDrawCommand, M as Mat3, h as ResolvedRun, a as ShaderDrawCommand, b as ShaderUniform, T as TextDrawCommand, i as fontString, j as markdownToRuns, k as resolveRuns, l as resolveTextStyle, n as runsToMarkdown, o as runsToPlainText, t as toRuns, v as verticalAlignOffset } from './DrawCommand-DCmiNkBj.js';
28
30
  import { Op, CreateHistoryOptions, History } from '@weasel-js/history';
29
31
  export * from '@weasel-js/history';
30
32
  export { Op } from '@weasel-js/history';
31
- import { T as TextureHandle } from './registerTexture-BzHTLhD9.js';
32
33
  import { Mat3 } from '@weasel-js/geom';
33
34
  import { G as Guide } from './types-D2tTKEU0.js';
34
35
  export { U as UseInsertOptions } from './options-wAvCnOZd.js';
35
36
  export { UseClipboardOpsOptions, UseClipboardOpsReturn, WEASEL_CLIPBOARD_MIME, WEASEL_CLIPBOARD_MIME_WEB, buildWeaselClipboardText, embedWeaselMetadataInSvg, extractWeaselClipboardFromSvg, parseWeaselClipboardText, sniffWeaselClipboardText, useClipboardOps } from './clipboard.js';
36
37
  export { cloneByAltDrag } from './clone.js';
37
- export { I as ImageMinification, v as viewToMat3 } from './viewToMat3-DFMdZvVl.js';
38
+ export { I as ImageMinification, v as viewToMat3 } from './viewToMat3-BvaWCN99.js';
38
39
  export { FontVariant, LocalFontOutlinesResult, OutlineFontStyle, OutlineSource, OutlineStatus, OutlineVariant, canQueryLocalFonts, enableLocalFontOutlines, hasFontOutlines, isCanvasFont, listFontOutlines, outlineStatus, registerCanvasFont, registerFont, registerFontOutlines, subscribeGlyphReady, unregisterCanvasFont, unregisterFontOutlines } from '@weasel-js/font';
39
- import '@weasel-js/modes';
40
+ import { CapabilityTag } from '@weasel-js/modes';
40
41
 
41
42
  /**
42
43
  * The kit version a build was compiled from, so an app can report what it is
@@ -532,21 +533,66 @@ interface UsePointerStylusOptions {
532
533
  declare function usePointerStylus(target?: RefObject<HTMLElement | null> | HTMLElement | null, options?: UsePointerStylusOptions): PointerStylusState;
533
534
 
534
535
  /**
535
- * Geometric mean of a per-axis scale. Used as a scalar fallback for chrome
536
- * hit-test radii and hairline stroke widths under non-uniform zoom.
537
- * Degenerates to `s.x` (or `s.y`) when the two axes are equal; otherwise
538
- * sits between them.
536
+ * Geometric mean of a per-axis scale. Degenerates to `s.x` (or `s.y`) when the
537
+ * two axes are equal; otherwise sits between them.
539
538
  *
540
- * Under non-uniform zoom a circular screen-pixel hit region projects to
541
- * an ellipse in world space (and vice versa). The geometric-mean
542
- * approximation is intentionally a v1 fallback proper axis-aware
543
- * elliptical hit shapes are a future follow-up.
539
+ * **Not for hit-testing.** A screen-pixel length is not one world distance
540
+ * under non-uniform zoom, and collapsing it to a scalar makes a pickable
541
+ * region too generous on one axis and too mean on the other. Use `pxExtent`
542
+ * for a per-axis world length, or `withinPxBox` / `withinPxRadius` to compare
543
+ * in screen space directly. Chrome hit-tests moved off this in 2026-08.
544
+ *
545
+ * What legitimately remains: hairline stroke widths (`1 / meanScale`), where
546
+ * a single width is all the renderer accepts and no per-axis answer exists,
547
+ * and painted chrome placement, whose per-axis form doesn't separate under a
548
+ * rotated target.
544
549
  */
545
550
  declare function meanScale(s: {
546
551
  x: number;
547
552
  y: number;
548
553
  }): number;
549
554
 
555
+ /**
556
+ * Screen-pixel lengths in world units, per axis.
557
+ *
558
+ * Chrome declares its hit zones in screen pixels — an 8px handle stays 8px at
559
+ * every zoom, because it paints in screen space. Converting one such length to
560
+ * world units with a single scalar (see `meanScale`) is exact only under
561
+ * uniform zoom; per-axis it is too generous on one axis and too mean on the
562
+ * other, so the pickable region stops matching the painted one.
563
+ *
564
+ * Prefer {@link withinPxBox} / {@link withinPxRadius}, which compare in screen
565
+ * space and so can't drift from the paint at all. {@link pxExtent} is for the
566
+ * cases that must stay in world units — a tolerance handed to geometry that
567
+ * doesn't know about the view.
568
+ */
569
+ interface Scale2 {
570
+ x: number;
571
+ y: number;
572
+ }
573
+ /** One screen-pixel length as world-space extents, per axis. */
574
+ declare function pxExtent(px: number, scale: Scale2): {
575
+ x: number;
576
+ y: number;
577
+ };
578
+ /** World delta → screen delta. Only the scale participates: translation
579
+ * cancels in a difference, and the kit's views carry no skew. */
580
+ declare function scaleDelta(dx: number, dy: number, scale: Scale2): {
581
+ x: number;
582
+ y: number;
583
+ };
584
+ /**
585
+ * Is a world-space delta inside a screen-space square of half-extent `px`?
586
+ *
587
+ * The square is axis-aligned **on screen**, which is what a handle painted in
588
+ * screen space actually is — so this stays true under non-uniform zoom and
589
+ * under a rotated target, where an axis-aligned world-space test is a rotated
590
+ * rectangle on screen.
591
+ */
592
+ declare function withinPxBox(dx: number, dy: number, px: number, scale: Scale2): boolean;
593
+ /** Is a world-space delta inside a screen-space circle of radius `px`? */
594
+ declare function withinPxRadius(dx: number, dy: number, px: number, scale: Scale2): boolean;
595
+
550
596
  /** A 2D point in the rect element's local coordinate space. */
551
597
  interface HandleDragPoint {
552
598
  x: number;
@@ -1794,7 +1840,7 @@ declare function useStandardActions(opts: UseStandardActionsOptions): void;
1794
1840
 
1795
1841
  declare function defaultCommitAdapter<TPose>(scene: Scene<unknown, string, TPose>): {
1796
1842
  getNode: (id: string) => Node$1<unknown, string, TPose> | undefined;
1797
- getNodes: () => (Node$1<unknown, string, TPose> | undefined)[];
1843
+ getNodes: () => Node$1<unknown, string, TPose>[];
1798
1844
  getPose: (id: string) => TPose;
1799
1845
  getParent: (id: string) => string | null;
1800
1846
  getChildren: (parentId: string | null) => string[];
@@ -1824,9 +1870,6 @@ interface UseGestureDispatcherOptions {
1824
1870
  actions: ActionsRegistry;
1825
1871
  /** Tool definitions keyed by id. Typically passes an empty Map. */
1826
1872
  toolsById: ReadonlyMap<string, Tool>;
1827
- /** Ids (within `toolsById`) of always-on tools, whose bindings assemble at
1828
- * ambient scope. See `DispatcherContext.ambientToolIds`. */
1829
- ambientToolIds?: readonly string[];
1830
1873
  /** Default true. Set false to opt out of dispatcher wiring (e.g. demos that disable it). */
1831
1874
  enabled?: boolean;
1832
1875
  /**
@@ -2119,10 +2162,9 @@ interface ToolsApi {
2119
2162
  /**
2120
2163
  * Manages the active tool and hotkey slot.
2121
2164
  *
2122
- * It used to also own a dispatcher: `useTools` constructed the tool-routing
2123
- * dispatcher and `<Canvas>` pumped DOM events into it. Input now belongs
2124
- * entirely to `useGestureDispatcher`, so what's left here is slot state plus
2125
- * the overlay roll-up.
2165
+ * A thin shim over {@link useContributions}: the `registry` / `ambient`
2166
+ * arguments are restated as declared eligibility (`focus` / `always`), and
2167
+ * assembly happens in one place for tools and non-tool contributions alike.
2126
2168
  *
2127
2169
  * Requires `<ActiveToolContextProvider>` (or `<WeaselProvider>` /
2128
2170
  * `<SceneCanvas>`, which mount one internally) in scope: active/hotkey state
@@ -2131,8 +2173,8 @@ interface ToolsApi {
2131
2173
  *
2132
2174
  * **First-mount-wins semantics**: if `opts.active` differs from the context
2133
2175
  * default (`'select'`) on first mount, `useTools` pushes `opts.active` to
2134
- * the context via a microtask. Subsequent mounts respect whatever the
2135
- * context currently holds (the first caller wins).
2176
+ * the context. Subsequent mounts respect whatever the context currently
2177
+ * holds (the first caller wins).
2136
2178
  */
2137
2179
  declare function useTools(opts: UseToolsOptions): ToolsApi;
2138
2180
 
@@ -2576,8 +2618,8 @@ interface UsePenToolOptions<TPose> {
2576
2618
  * ⌘-click / double-click, producing a compound path. */
2577
2619
  autoCommitOnClose?: boolean;
2578
2620
  /** Screen-px hit radius for "click first anchor to close". Default `8`.
2579
- * Note: implemented in world space here (divided by view.scale at the
2580
- * call site); aligns with `useSelectTool.handleHitRadius`. */
2621
+ * Measured as a screen-space circle, so it stays round under non-uniform
2622
+ * zoom; aligns with `useSelectTool.handleHitRadius`. */
2581
2623
  closeHitRadius?: number;
2582
2624
  /** Optional point snapper applied to every world-space coordinate the
2583
2625
  * pen records or previews — anchor positions (corner clicks, smooth-
@@ -2903,13 +2945,15 @@ interface CanvasExtensionApi {
2903
2945
  * `<SceneCanvas>` folds this into the `affordanceAt` thunk it hands the
2904
2946
  * gesture dispatcher — ahead of the kit's own selection chrome, since
2905
2947
  * registered layers draw on top — so a hit surfaces to actions as an
2906
- * `AffordanceHit` with kind `layer:<id>` and the binding's `initialScratch`
2907
- * as its `payload`. A layer's owner binds a `kindOf` predicate on that kind
2908
- * to claim the gesture; see `@weasel-js/hud` for the worked example.
2948
+ * `AffordanceHit` with kind `layer:<id>` and the hit's `initialScratch`
2949
+ * as its `payload`. `owner` is set to the layer id, and `cursor` /
2950
+ * `strength` carry through from the hit when the layer sets them.
2951
+ * A layer's owner binds a `kindOf` predicate on that kind to claim the
2952
+ * gesture; see `@weasel-js/hud` for the worked example.
2909
2953
  */
2910
2954
  hitTestExtras(worldX: number, worldY: number): {
2911
2955
  layerId: string;
2912
- binding: AffordanceBinding;
2956
+ hit: LayerHit;
2913
2957
  } | null;
2914
2958
  /** Feed external content into the ingestion pipeline imperatively — the
2915
2959
  * same content-handler registry that OS drop and clipboard paste hit.
@@ -4253,9 +4297,10 @@ declare function createNodeRouting(): NodeRouting;
4253
4297
  * visualization even though selection chrome (which reads `pose.rotation`
4254
4298
  * directly) does rotate — the rect sits still while its chrome spins.
4255
4299
  *
4256
- * `wrapWithPoseRotation` is applied inside `buildSceneLayer` (committed
4257
- * paint) and `usePreviewGhostLayer.buildSubtree` (in-flight preview) so
4258
- * both code paths produce rotated geometry uniformly.
4300
+ * `wrapWithPoseRotation` is applied by `wrapNodeOutput` in both scene walks —
4301
+ * `buildSceneLayer` (main canvas) and `buildSceneViewCommands` (detached
4302
+ * renders) and directly by `usePreviewGhostLayer.buildSubtree` (in-flight
4303
+ * preview), so every code path produces rotated geometry uniformly.
4259
4304
  */
4260
4305
 
4261
4306
  /** Rotation matrix about the AABB center of `(x, y, width, height)`. The pivot
@@ -5180,6 +5225,10 @@ interface RenderSceneToCanvasArgs<TData, TLayer extends string, TPose> {
5180
5225
  * minimap's visible-window indicator. Wrapped in the same view transform
5181
5226
  * as scene commands. */
5182
5227
  extraCommands?: DrawCommand[];
5228
+ /** Optional per-id alpha multiplier, mirroring `<SceneCanvas>`'s scene-slot
5229
+ * `alphaFor`. Pass the same function the main canvas uses to keep a
5230
+ * scoping-dim treatment consistent across both. Defaults to `() => 1`. */
5231
+ alphaFor?: (id: string) => number;
5183
5232
  /** Optional device-pixel ratio. Defaults to `window.devicePixelRatio || 1`
5184
5233
  * when available, otherwise 1. Tests typically pin this to 1 or 2. */
5185
5234
  dpr?: number;
@@ -5187,16 +5236,27 @@ interface RenderSceneToCanvasArgs<TData, TLayer extends string, TPose> {
5187
5236
  /**
5188
5237
  * Build the DrawCommand list that `renderSceneToCanvas` would dispatch.
5189
5238
  *
5190
- * Pure — no GL, no DOM, no side effects. Iterates `scene.renderOrder()`,
5191
- * calls `drawOne` per node, appends any `extraCommands`, and wraps the
5192
- * combined list in a single `{ kind: 'group', transform: viewToMat3(view) }`
5193
- * so the output is in screen space.
5239
+ * Pure — no GL, no DOM, no side effects. Walks the scene through
5240
+ * `buildSceneTree` the same walk `<SceneCanvas>`'s `buildSceneLayer` uses
5241
+ * appends any `extraCommands`, and wraps the result in a single
5242
+ * `{ kind: 'group', transform: viewToMat3(view) }` so the output is in screen
5243
+ * space. Sharing the walk is what keeps hidden layers unpainted and container
5244
+ * clips applied here; a hand-rolled `renderOrder()` loop silently dropped both.
5245
+ *
5246
+ * Each node's commands additionally go through `wrapNodeOutput` — pose
5247
+ * rotation, then the `alphaFor` multiplier — exactly as `buildSceneLayer`
5248
+ * does, so a `drawOne` shared between the two paints the same thing in both.
5249
+ * A `drawOne` that rotates its own output will therefore rotate twice here;
5250
+ * emit unrotated geometry and let the pose drive it.
5251
+ *
5252
+ * Output shape follows `buildSceneTree`: one group per **visible** layer, in
5253
+ * scene-layer order, each holding one group per node on that layer.
5194
5254
  *
5195
5255
  * Exported for tests and for callers that want to render into something
5196
5256
  * other than a real `<canvas>` (e.g. an offscreen renderer or a
5197
5257
  * snapshot fixture).
5198
5258
  */
5199
- declare function buildSceneViewCommands<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, view: View, drawOne: SceneViewDrawOne<TData, TLayer, TPose>, extraCommands?: ReadonlyArray<DrawCommand>): DrawCommand[];
5259
+ declare function buildSceneViewCommands<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, view: View, drawOne: SceneViewDrawOne<TData, TLayer, TPose>, extraCommands?: ReadonlyArray<DrawCommand>, alphaFor?: (id: string) => number): DrawCommand[];
5200
5260
  /**
5201
5261
  * Render one frame of `scene` at `view` into `canvas`. See module docstring
5202
5262
  * for the design context.
@@ -5235,6 +5295,10 @@ interface SceneViewCanvasProps<TData, TLayer extends string, TPose> {
5235
5295
  * indicator; available to other consumers that want to overlay a
5236
5296
  * world-space annotation. */
5237
5297
  extraCommands?: ReadonlyArray<DrawCommand>;
5298
+ /** Optional per-id alpha multiplier, mirroring `<SceneCanvas>`'s scene-slot
5299
+ * `alphaFor`. Pass the same function the main canvas uses to keep a
5300
+ * scoping-dim treatment consistent across both. Defaults to `() => 1`. */
5301
+ alphaFor?: (id: string) => number;
5238
5302
  /** Optional CSS class for sizing / positioning the `<canvas>`. The kit
5239
5303
  * does not emit inline styles for layout — use a class. */
5240
5304
  className?: string;
@@ -5406,6 +5470,10 @@ interface MinimapCanvasProps<TData, TLayer extends string, TPose> {
5406
5470
  /** Pose → AABB. Defaults to identity (`pose as Bounds`), matching
5407
5471
  * `sceneAdapter` / `useSelectTool`. */
5408
5472
  poseBounds?: (pose: TPose) => Bounds;
5473
+ /** Optional per-id alpha multiplier, mirroring `<SceneCanvas>`'s scene-slot
5474
+ * `alphaFor`. Pass the same function the main canvas uses so a
5475
+ * scoping-dim treatment shows up in the minimap too. */
5476
+ alphaFor?: (id: string) => number;
5409
5477
  /** Visual tuning of the indicator stroke. */
5410
5478
  indicatorStyle?: IndicatorStyle;
5411
5479
  /** CSS class for sizing / positioning the canvas. */
@@ -5463,6 +5531,10 @@ interface RenderSceneToPixelsArgs<TData, TLayer extends string, TPose> {
5463
5531
  * caches. `undefined` results paint the deterministic grey placeholder
5464
5532
  * outline (see `NodePaintCtx.resolveImage`). */
5465
5533
  resolveImage?: (node: Node$1<TData, TLayer, TPose>) => ImageBitmap | undefined;
5534
+ /** Per-id alpha multiplier, mirroring `<SceneCanvas>`'s scene-slot
5535
+ * `alphaFor`. Pass the same function the on-screen canvas uses so an
5536
+ * export matches what the user is looking at. Defaults to `() => 1`. */
5537
+ alphaFor?: (id: string) => number;
5466
5538
  /** Background fill (any CSS color accepted by the renderer). Default:
5467
5539
  * fully transparent. Passing a color is always valid. */
5468
5540
  background?: string;
@@ -6332,6 +6404,15 @@ interface UseTextEditOptions {
6332
6404
  getText: (id: string) => string;
6333
6405
  /** Read style for `id` (used for font setup on the overlay). */
6334
6406
  getStyle: (id: string) => TextStyle | undefined;
6407
+ /**
6408
+ * Write style back for `id`. Optional; needed only to turn a flag **off**
6409
+ * inside a node whose own `TextStyle` sets it. Run flags are additive, so
6410
+ * that edit is expressed by lowering the node flag and raising it on the
6411
+ * runs outside the selection — which needs somewhere to put the new node
6412
+ * style. Without this, such a toggle is declined and nothing changes, as
6413
+ * before. See `runs/flagRange`.
6414
+ */
6415
+ setStyle?: (id: string, style: TextStyle) => void;
6335
6416
  /** Read screen-space pose for `id`. Called per frame while editing. */
6336
6417
  getScreenPose: (id: string) => TextEditScreenPose | null;
6337
6418
  /** Commit text. Caller wraps in op/undo. */
@@ -6509,6 +6590,57 @@ interface UseSceneTextEditReturn extends UseTextEditReturn {
6509
6590
  }
6510
6591
  declare function useSceneTextEdit<TData extends DefaultTextData, TLayer extends string, TPose extends RectPose = RectPose>(scene: Scene<TData, TLayer, TPose>, container: HTMLElement | null, options?: UseSceneTextEditOptions<TData>): UseSceneTextEditReturn;
6511
6592
 
6593
+ /**
6594
+ * Turning a run-level flag **off** inside a node that sets it.
6595
+ *
6596
+ * Run flags are additive over the node's `TextStyle` — a run turns `bold` /
6597
+ * `italic` / `underline` / `strikethrough` on, never off (see the contract at
6598
+ * the top of `rangeStyle.ts`). So "select a word inside an underlined node and
6599
+ * hit U" is unrepresentable by the stored shape, and the character bar can
6600
+ * only refuse.
6601
+ *
6602
+ * This resolves it by rewriting rather than by widening the model: clear the
6603
+ * flag on the node, and set it on every run *outside* the range. The rendered
6604
+ * result is identical and the edit becomes expressible, with `StyledRun`
6605
+ * unchanged — so nothing a document can already contain changes meaning, which
6606
+ * matters while the flags are heading for a persisted format.
6607
+ *
6608
+ * The alternative was a tri-state run flag (`true` / `false` / inherit). It
6609
+ * cannot cover `bold` or `italic`: those are booleans on a run but
6610
+ * `fontWeight` and `fontStyle` on the node, so a run's `false` has no node-level
6611
+ * boolean to override. Tri-state fixes two of the four flags; this fixes all
6612
+ * four.
6613
+ */
6614
+
6615
+ /** The additive run flags. */
6616
+ type FlagKey = 'bold' | 'italic' | 'underline' | 'strikethrough';
6617
+ interface SetFlagResult {
6618
+ runs: StyledRun[];
6619
+ style: TextStyle;
6620
+ /**
6621
+ * False when the node flag could not be lowered without changing what is
6622
+ * drawn, and nothing was written. The only case is a `fontWeight` the run
6623
+ * boolean cannot express: `run.bold` resolves to exactly 700 everywhere, so
6624
+ * a node at 900 cannot have its weight pushed onto its runs. Callers should
6625
+ * disable the control rather than apply a silent downgrade.
6626
+ */
6627
+ applied: boolean;
6628
+ }
6629
+ /** Does the node style carry this flag? */
6630
+ declare function nodeHasFlag(style: TextStyle, key: FlagKey): boolean;
6631
+ /**
6632
+ * Set `key` to `value` over `[start, end)`.
6633
+ *
6634
+ * Turning a flag **on**, or off in a node that doesn't set it, is the ordinary
6635
+ * additive write and leaves `style` alone. Turning it off in a node that *does*
6636
+ * set it takes the rewrite: the node flag is cleared and the flag is written
6637
+ * onto the complement of the range.
6638
+ *
6639
+ * `runs` is normalized on every path, so the complement collapses back to one
6640
+ * run when the range is empty and the whole array coalesces as usual.
6641
+ */
6642
+ declare function setFlagOverRange(runs: readonly StyledRun[], style: TextStyle, start: number, end: number, key: FlagKey, value: boolean): SetFlagResult;
6643
+
6512
6644
  /**
6513
6645
  * Build a `TextDrawCommand`. `textCommand` takes a plain string and wraps it
6514
6646
  * in one run; `textCommandFromRuns` takes the styled runs directly. Both
@@ -6587,6 +6719,138 @@ interface TilePatternOpts {
6587
6719
  */
6588
6720
  declare function createTilePattern(opts: TilePatternOpts): TextureHandle | null;
6589
6721
 
6722
+ /**
6723
+ * `TilePatternSpec` → `TextureHandle`. The bridge between the serializable
6724
+ * half of a pattern paint and the GL texture that paints it.
6725
+ *
6726
+ * Memoized on the spec's field values, so identical specs across nodes share
6727
+ * one texture and a re-render never re-rasterizes. Entries live for the
6728
+ * session, matching `registerTexture`'s own lifetime.
6729
+ */
6730
+
6731
+ /**
6732
+ * Build (or fetch) the texture for a spec. Returns `null` when the tile
6733
+ * can't be rasterized — no `OffscreenCanvas`, same as `createTilePattern`.
6734
+ */
6735
+ declare function resolvePatternSpec(spec: TilePatternSpec): TextureHandle | null;
6736
+ /** Whether a pattern payload is a spec rather than an already-built handle. */
6737
+ declare function isPatternSpec(payload: TextureHandle | TilePatternSpec): payload is TilePatternSpec;
6738
+ /**
6739
+ * Swap a pattern paint's spec payload for the texture that paints it,
6740
+ * leaving every other fill untouched. The built-in painters run this
6741
+ * alongside `fillInPoseFrame`; a consumer emitting its own draw commands
6742
+ * runs it at the same place it runs that one.
6743
+ *
6744
+ * A spec that can't rasterize drops the fill rather than painting garbage.
6745
+ */
6746
+ declare function resolveFillPattern(fill: FillStyle): FillStyle | null;
6747
+
6748
+ /**
6749
+ * Gradient helpers shared by renderers, editors and exporters: reading a
6750
+ * color out of a stop list, and moving a gradient between its three kinds.
6751
+ *
6752
+ * The stop list is the part every consumer agrees on; the geometry
6753
+ * (`from`/`to`, `center`, `radius`, `angle`) differs per kind, which is what
6754
+ * `withGradientKind` exists to translate.
6755
+ */
6756
+
6757
+ /**
6758
+ * Color at position `t` (0..1) along a stop list, matching how the GL ramp
6759
+ * texture is built: stops sorted by offset, flat extension past either end,
6760
+ * linear RGB interpolation between neighbors.
6761
+ *
6762
+ * Returns transparent black for an empty list. Alpha is interpolated too, so
6763
+ * a stop list fading to `transparent` samples correctly.
6764
+ */
6765
+ declare function sampleGradientStops(stops: readonly GradStop[], t: number): string;
6766
+ /**
6767
+ * Retarget a gradient to a different kind, preserving stops, `units` and
6768
+ * `opacity`, and carrying the geometry across as faithfully as the kinds
6769
+ * allow.
6770
+ *
6771
+ * Linear carries a segment; radial and conic carry a center. Converting
6772
+ * between them keeps the center fixed and reads the radius / angle off the
6773
+ * segment, so switching kind in an editor moves the paint as little as
6774
+ * possible instead of snapping to an arbitrary default.
6775
+ *
6776
+ * Lossy in both directions, because the kinds hold different information: a
6777
+ * radial gradient stores no angle, so a round trip through one leaves the
6778
+ * segment horizontal; a conic stores no radius, so a round trip through one
6779
+ * resets the segment's length. An editor that wants a kind switch to be
6780
+ * undoable should keep the original paint rather than converting back.
6781
+ */
6782
+ declare function withGradientKind(fill: GradientFill, kind: GradientKind): GradientFill;
6783
+ /**
6784
+ * Center / radius / angle for any gradient kind — the shared polar reading
6785
+ * `withGradientKind` converts through, and what on-canvas handles position
6786
+ * themselves from.
6787
+ *
6788
+ * For a linear gradient the center is the segment midpoint, the radius is
6789
+ * half its length, and the angle is its direction.
6790
+ */
6791
+ declare function gradientGeometry(fill: GradientFill): {
6792
+ center: {
6793
+ x: number;
6794
+ y: number;
6795
+ };
6796
+ radius: number;
6797
+ angle: number;
6798
+ };
6799
+ /**
6800
+ * A gradient spanning a box corner-to-corner (linear) or filling it
6801
+ * (radial / conic) — the sensible starting geometry when a consumer turns a
6802
+ * solid fill into a gradient and has only the shape's bounds to go on.
6803
+ */
6804
+ declare function gradientForBounds(kind: GradientKind, bounds: {
6805
+ x: number;
6806
+ y: number;
6807
+ width: number;
6808
+ height: number;
6809
+ }, stops: GradStop[], units?: GradientFill['units']): GradientFill;
6810
+
6811
+ /**
6812
+ * Resolve a `units: 'bounds'` gradient into the frame its node is painted in.
6813
+ *
6814
+ * Node painters bake the pose into their geometry (`pathInPoseFrame`) rather
6815
+ * than emitting a per-node transform, so by the time the renderer sees a
6816
+ * scene node there is no node-local space left for a gradient to refer to.
6817
+ * This is the paint-side counterpart: it maps box-relative gradient geometry
6818
+ * onto the same box the path was just projected into, so the two arrive in
6819
+ * the renderer in one frame.
6820
+ */
6821
+
6822
+ interface FillPoseBox {
6823
+ x: number;
6824
+ y: number;
6825
+ width: number;
6826
+ height: number;
6827
+ }
6828
+ /**
6829
+ * Map a `'bounds'` gradient's `0..1` geometry onto `box`, returning it in the
6830
+ * box's own frame (`units: 'local'`). Any other fill — solid, pattern, or a
6831
+ * gradient in another space — is returned untouched.
6832
+ *
6833
+ * Radii scale by the box's normalized diagonal, SVG's rule for a percentage
6834
+ * radius against `objectBoundingBox`: `sqrt(w² + h²) / sqrt(2)`, which is
6835
+ * exactly `w` for a square box. The renderer's radial gradient is circular,
6836
+ * so a non-square box cannot make it the ellipse SVG would — this keeps the
6837
+ * radius proportionate instead.
6838
+ */
6839
+ declare function fillInPoseFrame(fill: FillStyle, box: FillPoseBox): FillStyle;
6840
+ /**
6841
+ * Inverse of {@link fillInPoseFrame}: express a gradient already positioned
6842
+ * in `box`'s frame as `0..1` fractions of that box (`units: 'bounds'`), so
6843
+ * it follows the node when moved or resized.
6844
+ *
6845
+ * The importer's counterpart — SVG `userSpaceOnUse` coordinates arrive in
6846
+ * page space, and normalizing them here makes an imported gradient behave
6847
+ * exactly like one drawn in the app.
6848
+ *
6849
+ * A zero-width or zero-height box has no frame to normalize against; the
6850
+ * fill is returned untouched rather than divided by zero.
6851
+ */
6852
+ declare function fillToBoundsFrame(fill: FillStyle, box: FillPoseBox): FillStyle;
6853
+
6590
6854
  /**
6591
6855
  * Default `applyOps` implementation: apply each op in order against
6592
6856
  * `adapter`. Used by hooks when an adapter omits `applyOps`. Apps that
@@ -7964,8 +8228,16 @@ declare const RECT_ALIGN_PROJECTION: AlignBoundsProjection<AlignBounds>;
7964
8228
  * lines. Returns the per-axis snap delta and the matched candidate line(s).
7965
8229
  * The two axes resolve independently; on each axis the closest in-tolerance
7966
8230
  * (feature, candidate) pair wins.
8231
+ *
8232
+ * `worldTolerance` is per axis because a screen-pixel tolerance is not one
8233
+ * world distance under non-uniform zoom — and each axis here is matched by a
8234
+ * distance along that axis alone, so there is an exact answer rather than an
8235
+ * approximation. Pass the same number twice for a world-space tolerance.
7967
8236
  */
7968
- declare function matchAlignment(bounds: AlignBounds, candidates: readonly Guide[], worldTolerance: number, anchors: {
8237
+ declare function matchAlignment(bounds: AlignBounds, candidates: readonly Guide[], worldTolerance: {
8238
+ x: number;
8239
+ y: number;
8240
+ }, anchors: {
7969
8241
  x: readonly AlignAnchor[];
7970
8242
  y: readonly AlignAnchor[];
7971
8243
  }): AlignMatchResult;
@@ -8987,6 +9259,43 @@ declare function ExcludeIcon(): react_jsx_runtime.JSX.Element;
8987
9259
  declare function DivideIcon(): react_jsx_runtime.JSX.Element;
8988
9260
  declare function CropIcon(): react_jsx_runtime.JSX.Element;
8989
9261
 
9262
+ /** What the registry knows at dispatch time. */
9263
+ interface EligibilityState {
9264
+ focusedId: string | null;
9265
+ heldTriggers: ReadonlySet<string>;
9266
+ /** Ids the host reports as hotkey-engaged. A declared `offhand` registers
9267
+ * the binding, but `tool.offhand`'s invoker still reports engagement by
9268
+ * pushing an id — this retires only if that contract changes. */
9269
+ engagedIds?: ReadonlySet<string>;
9270
+ /** Whether the active mode allows these capability tags. Omitted → allow. */
9271
+ allows?: (tags: readonly CapabilityTag[]) => boolean;
9272
+ }
9273
+ /**
9274
+ * The scope tier an entry's bindings are live at, or null when none are.
9275
+ * Ordered hotkey > active > ambient to match the dispatcher's own walk.
9276
+ */
9277
+ declare function liveScope(id: string, eligibility: Eligibility, state: EligibilityState): BindingScope | null;
9278
+
9279
+ /**
9280
+ * Every binding the entry set contributes right now, each tiered by the
9281
+ * entry's own declared eligibility. Entries with no live tier are omitted.
9282
+ *
9283
+ * Order is preserved: `matchSorted` sorts by specificity within a scope and
9284
+ * breaks ties by declaration order, so the caller's entry order decides which
9285
+ * of two same-specificity bindings in one tier wins.
9286
+ */
9287
+ declare function scopeBindings(entries: Iterable<Contribution>, state: EligibilityState): ScopedBinding[];
9288
+
9289
+ /**
9290
+ * Concatenate contribution bundles into one registry, preserving order —
9291
+ * entry order decides which of two same-specificity bindings in one scope
9292
+ * tier wins, so it is part of the result, not an accident of it.
9293
+ *
9294
+ * Throws on a duplicate id rather than dropping one: a feature silently
9295
+ * losing its bindings is the failure this registry exists to make loud.
9296
+ */
9297
+ declare function mergeContributions(...bundles: readonly Contribution[][]): Contribution[];
9298
+
8990
9299
  interface InsertOverlayStyle {
8991
9300
  fill?: string;
8992
9301
  stroke?: string;
@@ -8994,4 +9303,4 @@ interface InsertOverlayStyle {
8994
9303
  lineWidth?: number;
8995
9304
  }
8996
9305
 
8997
- export { ANCHOR_HIT_BASE_PX, Action, ActionsProp, ActionsProviderIfRoot, ActionsRegistry, Affordance, AffordanceBinding, AffordanceHit, AffordanceRegion, type AffordanceRegionHit, type AlignAdapter, type AlignAnchor, type AlignBounds, type AlignBoundsProjection, type AlignEdge, type AlignMatchResult, type AlignMoveArgs, type AlignmentBehaviorBase, type AnchorHit, type AnchorScratch, type AnchorState, type AnimateOnSetPoseOptions, type AnimateToBoundsOptions, type AnimationHandle, type Animator, AnyTool, AreaSelectAdapter, type ArrayAdapter, type ArrayAdapterConfig, BUNDLE_TOOLS, BooleansAdapter, Bounds, BoundsConstraint, type BuildChromeCtxArgs, type BuiltinShapeToolId, type BuiltinToolId, type BuiltinToolOptions, COARSE_TARGET_SCALE, CURVE_REPS, type CanvasExtensionApi, type CanvasFocusReturn, type CanvasHelpers, type CanvasProps, type CanvasSelectionMode, type CanvasSize, type CanvasSizeSnapshot, type CellHighlightLayerOpts, ChromeCtx, ChromeId, ChromeState, type ClampBounds, ClipboardSnapshot, type CoalescedCtx, type ColorInterpolate, type ColorOverride, type ColorOverrideFn, ColorOverrideRegistry, type ColorSpace, CommonAffordanceScratch, type ComposeSelectionPoseOpts, type ComputeFitViewOptions, Condition, ContentHandlerEntry, type CornerResizeAffordanceOptions, type CornerResizeScratch, type CreateChildrenLayerOpts, type CreateParallaxLayerOpts, type CreatePathEditingOverlayLayerOptions, type CreatePathLayerOpts, type CreatePenPreviewLayerOptions, type CreateTextLayerOpts, type CreateViewportLayerOpts, CropIcon, CursorCoordsHud, type CursorCoordsHudProps, type CurveRepKind, type CurveRepresentation, type CustomLayerEntry, type CycleHandle, type CycleVertexColorsOptions, DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_DEBUG_THEME, DEFAULT_DEVICE_PROFILE, DEFAULT_FILL_COLOR, DEFAULT_FLATTEN_TOLERANCE, DEFAULT_GUIDE_TOLERANCE_PX, DEFAULT_HANDLE_SIZE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_STROKE_COLOR, DEFAULT_VELOCITY_DECAY, DebugConfig, DebugSink, DebugSnapshot, DebugTheme, type DecayLoopConfig, type DecayOptions, type DefaultTextData, DepRegistryProviderIfRoot, DepSchema, type DeriveAlignmentGuidesOptions, DetectedDeviceFacts, DeviceProfile, DeviceProfileProvider, type DeviceProfileProviderProps, Dims, type Discriminator, Dispatcher, type DistributeAdapter, type DistributeAxis, type DistributeMode, DivideIcon, type DragGestureController, type DragGestureCtx, type DragGestureEndCtx, type DragGesturePhase, type DragGesturePoint, type DragHandleOptions, type DragPayload, type DragRadialController, type DragRadialCtx, type DragRadialEndCtx, type DragRadialPoint, type DragRadialState, type DragRectBounds, type DragRectController, type DragRectCtx, type DragRectEndCtx, type DragRectPoint, DrawCommand, type DropZoneOptions, EASINGS, type EasingFn, type EasingName, EllipseIcon, ExcludeIcon, EyedropperIcon, FALLBACK_FIT_VIEW, FillStyle, type FitTextPoseOptions, FitViewToBoundsOptions, type FreeformOptions, GHOST_STROKE, type GateLayerOptions, GeometryProjection, type GestureSource, type GridLayerOpts, type GridSlotConfig, Guide, type GuideSnapOptions, type GuidesLayerOpts, HANDLE_BASE_PX, HandIcon, type InertiaConfig as HandToolInertiaConfig, type HandleDragPoint, type HeadlessCanvasLike, HotkeyTrigger, type IconProps, type ImageNodeData, type ImageStatus, type IndicatorStyle, InsertAdapter, InsertBehavior, InsertExtras, type InsertNodeFactory, type InsertOp, type InsertOverlayStyle, type Interpolate, type InterpolatorFactory, IntersectIcon, KIT_SHAPE_KINDS, type LabelOptions, LassoHitMode, LassoIcon, LassoSelectAdapter, LassoSelectBehavior, LayerEnumerableAdapter, type LayerSlotValue, type LayersMap, type LayoutLine, type LayoutResult, LayoutSnap, LayoutStrategy, type LifecycleAnimation, LineIcon, type LinePoint, type LoopFactory, type LoopOptions, MIXED, MOVE_ANCHORS, type MarkdownFontOptions, type MeasureFn, type MeasureTextBoundsOpts, type MeasuredText, MinimapCanvas, type MinimapCanvasProps, type MinimapFit, type Mixed, ModifierState, type MomentumOptions, MoveAdapter, MoveBehavior, type NestedHitOpts, type NestedHitTester, type NodeClientRect, NodeId, type NodeInk, type NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type OpenFilePickerOptions, OrderedAdapter, OriginProjection, PATH_ANCHOR_CHROME_ID, type PanBounds, type ParallaxOpts, Path, type PathAnchor, type PathAnchorAffordanceOptions, PathBuilder, PathDrawCommand, type PathEditingOverlayStyle, PathFillRule, type PathInWorldPose, type PenAnchor, PenIcon, type PenPreviewStyle, type PenScratch, type PenSubpath, PencilIcon, type PencilPoint, type PhysicsHandle, type PhysicsOptions, PickHud, type PickHudProps, type PickTopMostHitAdapter, type PinchZoomToolOpts, type PixelRenderPlan, type PointInPathOptions, type PointInTextPoseOpts, PointSnapBehavior, PointerProviderIfRoot, type PointerSample, type PointerStylusState, PolygonIcon, PolygonPath, type PolygonPoint, PoseProjection, type PoseRotation, type PositionedRun, type PressureToWidthOptions, type Pt, RECT_ALIGN_PROJECTION, ROTATION_HANDLE_BASE_PX, type RangeStyle, type RasterImage, type Rect, RectIcon, RectPath, RectPose, type RegisterNodeShapeOptions, RegisteredOp, RenderLayer, type RenderSceneToCanvasArgs, type RenderSceneToPixelsArgs, type ReorderDirection, ResizeAdapter, ResizeAnchor, ResizePose, ResolvedTextStyle, RotateAdapter, RotateBehavior, type RotateGeometry, RotatedPose, type RotationAffordanceOptions, type RotationHandle, type RotationScratch, Rule, RuleCtx, type RunStylePatch, SPRING_PRESETS, type ScalarOrXY, Scene, SceneAdapter, type SceneAdapterSelection, SceneCanvas, type SceneCanvasAdapter, type SceneCanvasApi, type SceneCanvasHit, type SceneCanvasProps, Node$1 as SceneNode, type SceneNodeClientRectOpts, SceneRegistry, type SceneSlotConfig, type SceneToAdapterOptions, SceneViewCanvas, type SceneViewCanvasProps, type SceneViewDrawOne, type ScratchKey, type ScratchStore, type SelectAdapter, type SelectFromLassoOptions, SelectIcon, SelectionApi, SelectionContextProvider, SelectionContextProviderIfRoot, type SelectionContextValue, type SelectionHandlesLayerOpts, type SelectionOutlineLayerOpts, type SelectionOverlayLayerOpts, type SelectionOverlaySlotConfig, SerializedScene, type SetPathFields, ShaderProgramHandle, type ShapeCoversPointOptions, type SharedAnchor, type Simulation, type SimulationForce, type SimulationNode, SliceDep, type SnapPattern, type SnapPointOptions, SnapStrategy, type SplitByLineOptions, type SpringOptions, type SpringPoseOptions, type SpringPreset, type SpringPresetName, type SpringVertexColorsOptions, type StaggerBuilder, type StaggerDelay, type StaggerFactory, type StaggerOptions, type StaggerPerItem, type StaggerSpringPoseOptions, type StaggerTweenOptions, type StaggerVertexColorsOptions, type StandardSlotConfig, type StandardSlotName, StarIcon, type StarPoint, type StartEditOptions, Stroke, type StyleKey, StyledRun, type StylusData, SubtractIcon, SvgIngestOptions, type TextEditScreenPose, type TextEditSelection, TextIcon, type TextLineBoxesOpts, type TextPose, type TextRenderer, TextStyle, TextVerticalAlign, TextureHandle, type ThresholdDragHandle, type ThresholdDragOptions, type TileGridOptions, type TilePatternOpts, Tool, type ToolBundle, ToolCtx, ToolKeybinding, type ToolPref, type ToolPrefBoolean, type ToolPrefBooleanControl, type ToolPrefColor, type ToolPrefCustom, type ToolPrefEnum, type ToolPrefEnumControl, type ToolPrefGroup, type ToolPrefKind, type ToolPrefLeaf, type ToolPrefNumber, type ToolPrefNumberControl, type ToolPrefNumberUnit, type ToolPrefPaint, type ToolPrefString, type ToolPrefStringControl, type ToolsApi, type TweenLoopOptions, type TweenOptions, type TweenPoseOptions, type TweenVertexColorsOptions, UnionIcon, UnitSystem, UnitValue, UnknownIcon, type UseAlignOptions, type UseAlignReturn, type UseAnimatorOptions, type UseArrayAdapterOptions, type UseBooleansOptions, type UseBooleansReturn, type UseCanvasFocusOptions, type UseDistributeOptions, type UseDistributeReturn, type UseDragGestureOptions, type UseDragRadialOptions, type UseDragRectOptions, type UseEyedropperToolOptions, type UseGestureDispatcherOptions, type UseGridCellHoverOptions, type UseGridCellHoverReturn, type UseGuidesReturn, type UseHandToolOptions, type UseHandleDragOptions, type UseHandleDragReturn, type UseHoverTrackingArgs, type UseImageToolOptions, type UseKeybindingsOptions, type UseLassoSelectOptions, type UseLassoToolOptions, UseMoveOptions, type UsePenToolOptions, type UsePointerStylusOptions, type UsePolygonToolOptions, UseResizeOptions, type UseResizePolicyOptions, type UseRotateOptions, type UseRotateToolOptions, UseSceneOptions, type UseSceneTextEditOptions, type UseSceneTextEditReturn, type UseSceneTrivialOptions, type UseSelectToolOptions, UseSelectionOptions, type UseSimulationOptions, type UseStandardActionsOptions, type UseStarToolOptions, type UseTextEditOptions, type UseTextEditReturn, type UseToolsOptions, type UseZoomOptions, type UseZoomReturn, VERSION, type Vec2, type VertexColorChannel, View, ViewTransform, type ViewportConfig, ViewportDims, type ViewportZoomOptions, VisibilityRules, WeaselProvider, type WheelInput, type WheelState, ZoomBound, type ZoomBounds, type ZoomClampOpts, ZoomFactor, aabbCenter, actionIs, alignDeltaFor, alignInsertBehavior, alignMoveBehavior, alignResizeBehavior, always, and, animateLifecycle, animateOnSetPose, annulusSemiAxes, applyHitExistingGate, applyOpsTo, applyStyleToRange, areaSelectAction, arrayAdapter, bezierCubic, bezierQuadratic, boundsOfPath, buildChromeCtx, buildSceneViewCommands, canBringForward, canHover, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, caretIndexAt, cellAt, charOffsetToDomPosition, clampView, clearSelectionAction, clientToCanvas, cloneAction, coarsePointer, composeAffordanceLayer, composePath, composeSelectionPose, computeFitView, computeIndicatorCommand, computeWheelAction, cond, constrainTo45, containedThenNearest, countPathAnchors, createCellHighlightLayer, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDeleteOp, createGridLayer, createGuidesLayer, createHistory, createInsertOp, createMarkdownRenderer, createMoveToIndexOp, createNodeProperties, createNodeRouting, createParallaxLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathLayer, createPenPreviewLayer, createReorderOp, createReparentOp, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetDataOp, createSetLayerOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createTextLayer, createTilePattern, createTransformOp, createViewportLayer, cycleVertexColors, decomposePath, defaultCommitAdapter, defaultDrawOne, defaultLabelTextRenderer, defaultNodeProperties, defaultNodeRouting, defaultVisibilityRules, deleteScratch, deriveAlignmentGuides, deriveParallaxView, dispatchApplyBatch, dlog, domPositionToCharOffset, domToRuns, dwarn, 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, editAnchorsAction, ellipsePath, enumerateAnchors, findNodeShape, findShapeInk, findShapeSilhouette, fitTextPose, fitToBounds, fitZoom, flattenCubic, flattenCubicWithArcLen, flattenQuadratic, flattenQuadraticWithArcLen, focused, forEachCoalesced, freeform, gateLayer, gesturing, getAlpha01, getImageBitmap, getNodeShapes, getScratch, getStylusData, guideSnapStrategy, hexToRgba, hitAffordanceRegions, hitAnchor, hitRotationHandle, hovering, hoveringSelected, imageStatus, inferredNodeProperties, inferredNodeRouting, insertAction, isDebugEnabled, isEditableTarget, lassoSelectAction, layoutMarkdown, lerpColorArray, lerpOklab, lerpOklch, linePath, linear, makeViewportZoomAction, matchAlignment, matchesKeyBinding, meanScale, measureText, measureTextBounds, measuredWidth, mergeAlphaFromPrev, modeIn, modeIs, modeNot, modifierHeld, momentum, moveAction, multiActive, nearest, nearestWithin, nestedHitTester, never, none, normalizeHex, not, nurbs, oklabToOklch, oklabToSrgbU8, oklchToOklab, openFilePicker, or, parseColor, parseColorToRgba255, parseDebugFlags, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathDistanceToPoint, pathDivide, pathExclude, pathFromD, pathInPoseFrame, pathInWorld, pathIntersect, pathIntersectsPolygon, pathIntersectsRect, pathOriginProjection, pathPoseDescriptor, pathSubtract, pathToAnchors, pathUnion, pickTopMostHit, pinchZoomAction, planPixelRender, pointInPath, pointInRotatedRect, pointInTextPose, polygonFromPoints, poseRotationOf, pressureToWidth, rainbowVertexColors, rebuildOp, rectCorners, rectPath, registerNodeShape, registerOpFactory, regularPolygonPath, renderLabel, renderSceneToCanvas, renderSceneToPixels, resizeAction, resolveColor, resolveDeviceProfile, resolveVisibility, rgbaToHex, rotateAction, rotateAroundAABBCenter, rotatePathAround, rotatePoint, rotatedRectCorners, rotationDegreesUnit, rotationHandle, roundToCell, runsToDom, scalePathToBounds, sceneFromJSON, sceneNodeClientRect, sceneToAdapter, scratchKey, selectFromLasso, selectionAtLeast, selectionEmpty, selectionIs, setScratch, shapeCoversPoint, snap, snapPoint, solidVertexColors, spiro, splitPathByLine, splitSubpaths, springPose, springVertexColors, srgbU8ToOklab, staggerVertexColors, starPath, startThresholdDrag, styleAtRange, subscribeImageReady, textCommand, textLineBoxes, tileGrid, toHex8, transformPath, translatePath, translatePolygonInPlace, translatePoseViaDescriptor, tweenPose, tweenVertexColors, unionBounds, unionBoundsPath, useAlign, useAnimator, useArrayAdapter, useAutoCenter, useBooleans, useBooleansAdapter, useCanvasFocus, useCanvasSize, useDecayLoop, useDeviceProfile, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEllipseTool, useEyedropperTool, useGestureDispatcher, useGridCellHover, useGuides, useHandTool, useHandleDrag, useHoverTracking, useImageTool, useKeybindings, useLassoTool, useLineTool, usePenTool, usePencilTool, usePinchGesture, usePinchZoomTool, usePointerStylus, usePolygonTool, usePublishSelection, useRectTool, useResizePolicy, useRotateTool, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelectionContext, useSimulation, useSliceDep, useStandardActions, useStarTool, useTextEdit, useTextTool, useTools, useVelocityTracker, useViewAnimation, useViewTween, useZoom, viewportDragPanAction, viewportZoomAction, when, withAlpha01, withCoord, worldEditToStorage, zoomAt, zoomAtLeast };
9306
+ export { ANCHOR_HIT_BASE_PX, Action, ActionsProp, ActionsProviderIfRoot, ActionsRegistry, Affordance, AffordanceBinding, AffordanceHit, AffordanceRegion, type AffordanceRegionHit, type AlignAdapter, type AlignAnchor, type AlignBounds, type AlignBoundsProjection, type AlignEdge, type AlignMatchResult, type AlignMoveArgs, type AlignmentBehaviorBase, type AnchorHit, type AnchorScratch, type AnchorState, type AnimateOnSetPoseOptions, type AnimateToBoundsOptions, type AnimationHandle, type Animator, AnyTool, AreaSelectAdapter, type ArrayAdapter, type ArrayAdapterConfig, BUNDLE_TOOLS, BindingScope, BooleansAdapter, Bounds, BoundsConstraint, type BuildChromeCtxArgs, type BuiltinShapeToolId, type BuiltinToolId, type BuiltinToolOptions, COARSE_TARGET_SCALE, CURVE_REPS, type CanvasExtensionApi, type CanvasFocusReturn, type CanvasHelpers, type CanvasProps, type CanvasSelectionMode, type CanvasSize, type CanvasSizeSnapshot, type CellHighlightLayerOpts, ChromeCtx, ChromeId, ChromeState, type ClampBounds, ClipboardSnapshot, type CoalescedCtx, type ColorInterpolate, type ColorOverride, type ColorOverrideFn, ColorOverrideRegistry, type ColorSpace, CommonAffordanceScratch, type ComposeSelectionPoseOpts, type ComputeFitViewOptions, Condition, ContentHandlerEntry, Contribution, type CornerResizeAffordanceOptions, type CornerResizeScratch, type CreateChildrenLayerOpts, type CreateParallaxLayerOpts, type CreatePathEditingOverlayLayerOptions, type CreatePathLayerOpts, type CreatePenPreviewLayerOptions, type CreateTextLayerOpts, type CreateViewportLayerOpts, CropIcon, CursorCoordsHud, type CursorCoordsHudProps, type CurveRepKind, type CurveRepresentation, type CustomLayerEntry, type CycleHandle, type CycleVertexColorsOptions, DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_DEBUG_THEME, DEFAULT_DEVICE_PROFILE, DEFAULT_FILL_COLOR, DEFAULT_FLATTEN_TOLERANCE, DEFAULT_GUIDE_TOLERANCE_PX, DEFAULT_HANDLE_SIZE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_STROKE_COLOR, DEFAULT_VELOCITY_DECAY, DebugConfig, DebugSink, DebugSnapshot, DebugTheme, type DecayLoopConfig, type DecayOptions, type DefaultTextData, DepRegistryProviderIfRoot, DepSchema, type DeriveAlignmentGuidesOptions, DetectedDeviceFacts, DeviceProfile, DeviceProfileProvider, type DeviceProfileProviderProps, Dims, type Discriminator, Dispatcher, type DistributeAdapter, type DistributeAxis, type DistributeMode, DivideIcon, type DragGestureController, type DragGestureCtx, type DragGestureEndCtx, type DragGesturePhase, type DragGesturePoint, type DragHandleOptions, type DragPayload, type DragRadialController, type DragRadialCtx, type DragRadialEndCtx, type DragRadialPoint, type DragRadialState, type DragRectBounds, type DragRectController, type DragRectCtx, type DragRectEndCtx, type DragRectPoint, DrawCommand, type DropZoneOptions, EASINGS, type EasingFn, type EasingName, Eligibility, type EligibilityState, EllipseIcon, ExcludeIcon, EyedropperIcon, FALLBACK_FIT_VIEW, type FillPoseBox, FillStyle, type FitTextPoseOptions, FitViewToBoundsOptions, type FlagKey, type FreeformOptions, GHOST_STROKE, type GateLayerOptions, GeometryProjection, type GestureSource, GradStop, GradientFill, GradientKind, type GridLayerOpts, type GridSlotConfig, Guide, type GuideSnapOptions, type GuidesLayerOpts, HANDLE_BASE_PX, HandIcon, type InertiaConfig as HandToolInertiaConfig, type HandleDragPoint, type HeadlessCanvasLike, HotkeyTrigger, type IconProps, type ImageNodeData, type ImageStatus, type IndicatorStyle, InsertAdapter, InsertBehavior, InsertExtras, type InsertNodeFactory, type InsertOp, type InsertOverlayStyle, type Interpolate, type InterpolatorFactory, IntersectIcon, KIT_SHAPE_KINDS, type LabelOptions, LassoHitMode, LassoIcon, LassoSelectAdapter, LassoSelectBehavior, LayerEnumerableAdapter, LayerHit, type LayerSlotValue, type LayersMap, type LayoutLine, type LayoutResult, LayoutSnap, LayoutStrategy, type LifecycleAnimation, LineIcon, type LinePoint, type LoopFactory, type LoopOptions, MIXED, MOVE_ANCHORS, type MarkdownFontOptions, type MeasureFn, type MeasureTextBoundsOpts, type MeasuredText, MinimapCanvas, type MinimapCanvasProps, type MinimapFit, type Mixed, ModifierState, type MomentumOptions, MoveAdapter, MoveBehavior, type NestedHitOpts, type NestedHitTester, type NodeClientRect, NodeId, type NodeInk, type NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type OpenFilePickerOptions, OrderedAdapter, OriginProjection, PATH_ANCHOR_CHROME_ID, type PanBounds, type ParallaxOpts, Path, type PathAnchor, type PathAnchorAffordanceOptions, PathBuilder, PathDrawCommand, type PathEditingOverlayStyle, PathFillRule, type PathInWorldPose, type PenAnchor, PenIcon, type PenPreviewStyle, type PenScratch, type PenSubpath, PencilIcon, type PencilPoint, type PhysicsHandle, type PhysicsOptions, PickHud, type PickHudProps, type PickTopMostHitAdapter, type PinchZoomToolOpts, type PixelRenderPlan, type PointInPathOptions, type PointInTextPoseOpts, PointSnapBehavior, PointerProviderIfRoot, type PointerSample, type PointerStylusState, PolygonIcon, PolygonPath, type PolygonPoint, PoseProjection, type PoseRotation, type PositionedRun, type PressureToWidthOptions, type Pt, RECT_ALIGN_PROJECTION, ROTATION_HANDLE_BASE_PX, type RangeStyle, type RasterImage, type Rect, RectIcon, RectPath, RectPose, type RegisterNodeShapeOptions, RegisteredOp, RenderLayer, type RenderSceneToCanvasArgs, type RenderSceneToPixelsArgs, type ReorderDirection, ResizeAdapter, ResizeAnchor, ResizePose, ResolvedTextStyle, RotateAdapter, RotateBehavior, type RotateGeometry, RotatedPose, type RotationAffordanceOptions, type RotationHandle, type RotationScratch, Rule, RuleCtx, type RunStylePatch, SPRING_PRESETS, type ScalarOrXY, Scene, SceneAdapter, type SceneAdapterSelection, SceneCanvas, type SceneCanvasAdapter, type SceneCanvasApi, type SceneCanvasHit, type SceneCanvasProps, Node$1 as SceneNode, type SceneNodeClientRectOpts, SceneRegistry, type SceneSlotConfig, type SceneToAdapterOptions, SceneViewCanvas, type SceneViewCanvasProps, type SceneViewDrawOne, ScopedBinding, type ScratchKey, type ScratchStore, type SelectAdapter, type SelectFromLassoOptions, SelectIcon, SelectionApi, SelectionContextProvider, SelectionContextProviderIfRoot, type SelectionContextValue, type SelectionHandlesLayerOpts, type SelectionOutlineLayerOpts, type SelectionOverlayLayerOpts, type SelectionOverlaySlotConfig, SerializedScene, type SetFlagResult, type SetPathFields, ShaderProgramHandle, type ShapeCoversPointOptions, type SharedAnchor, type Simulation, type SimulationForce, type SimulationNode, SliceDep, type SnapPattern, type SnapPointOptions, SnapStrategy, type SplitByLineOptions, type SpringOptions, type SpringPoseOptions, type SpringPreset, type SpringPresetName, type SpringVertexColorsOptions, type StaggerBuilder, type StaggerDelay, type StaggerFactory, type StaggerOptions, type StaggerPerItem, type StaggerSpringPoseOptions, type StaggerTweenOptions, type StaggerVertexColorsOptions, type StandardSlotConfig, type StandardSlotName, StarIcon, type StarPoint, type StartEditOptions, Stroke, type StyleKey, StyledRun, type StylusData, SubtractIcon, SvgIngestOptions, type TextEditScreenPose, type TextEditSelection, TextIcon, type TextLineBoxesOpts, type TextPose, type TextRenderer, TextStyle, TextVerticalAlign, TextureHandle, type ThresholdDragHandle, type ThresholdDragOptions, type TileGridOptions, type TilePatternOpts, TilePatternSpec, Tool, type ToolBundle, ToolCtx, ToolKeybinding, type ToolPref, type ToolPrefBoolean, type ToolPrefBooleanControl, type ToolPrefColor, type ToolPrefCustom, type ToolPrefEnum, type ToolPrefEnumControl, type ToolPrefGroup, type ToolPrefKind, type ToolPrefLeaf, type ToolPrefNumber, type ToolPrefNumberControl, type ToolPrefNumberUnit, type ToolPrefPaint, type ToolPrefString, type ToolPrefStringControl, type ToolsApi, type TweenLoopOptions, type TweenOptions, type TweenPoseOptions, type TweenVertexColorsOptions, UnionIcon, UnitSystem, UnitValue, UnknownIcon, type UseAlignOptions, type UseAlignReturn, type UseAnimatorOptions, type UseArrayAdapterOptions, type UseBooleansOptions, type UseBooleansReturn, type UseCanvasFocusOptions, type UseDistributeOptions, type UseDistributeReturn, type UseDragGestureOptions, type UseDragRadialOptions, type UseDragRectOptions, type UseEyedropperToolOptions, type UseGestureDispatcherOptions, type UseGridCellHoverOptions, type UseGridCellHoverReturn, type UseGuidesReturn, type UseHandToolOptions, type UseHandleDragOptions, type UseHandleDragReturn, type UseHoverTrackingArgs, type UseImageToolOptions, type UseKeybindingsOptions, type UseLassoSelectOptions, type UseLassoToolOptions, UseMoveOptions, type UsePenToolOptions, type UsePointerStylusOptions, type UsePolygonToolOptions, UseResizeOptions, type UseResizePolicyOptions, type UseRotateOptions, type UseRotateToolOptions, UseSceneOptions, type UseSceneTextEditOptions, type UseSceneTextEditReturn, type UseSceneTrivialOptions, type UseSelectToolOptions, UseSelectionOptions, type UseSimulationOptions, type UseStandardActionsOptions, type UseStarToolOptions, type UseTextEditOptions, type UseTextEditReturn, type UseToolsOptions, type UseZoomOptions, type UseZoomReturn, VERSION, type Vec2, type VertexColorChannel, View, ViewTransform, type ViewportConfig, ViewportDims, type ViewportZoomOptions, VisibilityRules, WeaselProvider, type WheelInput, type WheelState, ZoomBound, type ZoomBounds, type ZoomClampOpts, ZoomFactor, aabbCenter, actionIs, alignDeltaFor, alignInsertBehavior, alignMoveBehavior, alignResizeBehavior, always, and, animateLifecycle, animateOnSetPose, annulusSemiAxes, applyHitExistingGate, applyOpsTo, applyStyleToRange, areaSelectAction, arrayAdapter, bezierCubic, bezierQuadratic, boundsOfPath, buildChromeCtx, buildSceneViewCommands, canBringForward, canHover, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, caretIndexAt, cellAt, charOffsetToDomPosition, clampView, clearSelectionAction, clientToCanvas, cloneAction, coarsePointer, composeAffordanceLayer, composePath, composeSelectionPose, computeFitView, computeIndicatorCommand, computeWheelAction, cond, constrainTo45, containedThenNearest, countPathAnchors, createCellHighlightLayer, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDeleteOp, createGridLayer, createGuidesLayer, createHistory, createInsertOp, createMarkdownRenderer, createMoveToIndexOp, createNodeProperties, createNodeRouting, createParallaxLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathLayer, createPenPreviewLayer, createReorderOp, createReparentOp, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetDataOp, createSetLayerOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createTextLayer, createTilePattern, createTransformOp, createViewportLayer, cycleVertexColors, decomposePath, defaultCommitAdapter, defaultDrawOne, defaultLabelTextRenderer, defaultNodeProperties, defaultNodeRouting, defaultVisibilityRules, deleteScratch, deriveAlignmentGuides, deriveParallaxView, dispatchApplyBatch, dlog, domPositionToCharOffset, domToRuns, dwarn, 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, editAnchorsAction, ellipsePath, enumerateAnchors, fillInPoseFrame, fillToBoundsFrame, findNodeShape, findShapeInk, findShapeSilhouette, fitTextPose, fitToBounds, fitZoom, flattenCubic, flattenCubicWithArcLen, flattenQuadratic, flattenQuadraticWithArcLen, focused, forEachCoalesced, freeform, gateLayer, gesturing, getAlpha01, getImageBitmap, getNodeShapes, getScratch, getStylusData, gradientForBounds, gradientGeometry, guideSnapStrategy, hexToRgba, hitAffordanceRegions, hitAnchor, hitRotationHandle, hovering, hoveringSelected, imageStatus, inferredNodeProperties, inferredNodeRouting, insertAction, isDebugEnabled, isEditableTarget, isPatternSpec, lassoSelectAction, layoutMarkdown, lerpColorArray, lerpOklab, lerpOklch, linePath, linear, liveScope, makeViewportZoomAction, matchAlignment, matchesKeyBinding, meanScale, measureText, measureTextBounds, measuredWidth, mergeAlphaFromPrev, mergeContributions, modeIn, modeIs, modeNot, modifierHeld, momentum, moveAction, multiActive, nearest, nearestWithin, nestedHitTester, never, nodeHasFlag, none, normalizeHex, not, nurbs, oklabToOklch, oklabToSrgbU8, oklchToOklab, openFilePicker, or, parseColor, parseColorToRgba255, parseDebugFlags, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathDistanceToPoint, pathDivide, pathExclude, pathFromD, pathInPoseFrame, pathInWorld, pathIntersect, pathIntersectsPolygon, pathIntersectsRect, pathOriginProjection, pathPoseDescriptor, pathSubtract, pathToAnchors, pathUnion, pickTopMostHit, pinchZoomAction, planPixelRender, pointInPath, pointInRotatedRect, pointInTextPose, polygonFromPoints, poseRotationOf, pressureToWidth, pxExtent, rainbowVertexColors, rebuildOp, rectCorners, rectPath, registerNodeShape, registerOpFactory, regularPolygonPath, renderLabel, renderSceneToCanvas, renderSceneToPixels, resizeAction, resolveColor, resolveDeviceProfile, resolveFillPattern, resolvePatternSpec, resolveVisibility, rgbaToHex, rotateAction, rotateAroundAABBCenter, rotatePathAround, rotatePoint, rotatedRectCorners, rotationDegreesUnit, rotationHandle, roundToCell, runsToDom, sampleGradientStops, scaleDelta, scalePathToBounds, sceneFromJSON, sceneNodeClientRect, sceneToAdapter, scopeBindings, scratchKey, selectFromLasso, selectionAtLeast, selectionEmpty, selectionIs, setFlagOverRange, setScratch, shapeCoversPoint, snap, snapPoint, solidVertexColors, spiro, splitPathByLine, splitSubpaths, springPose, springVertexColors, srgbU8ToOklab, staggerVertexColors, starPath, startThresholdDrag, styleAtRange, subscribeImageReady, textCommand, textLineBoxes, tileGrid, toHex8, transformPath, translatePath, translatePolygonInPlace, translatePoseViaDescriptor, tweenPose, tweenVertexColors, unionBounds, unionBoundsPath, useAlign, useAnimator, useArrayAdapter, useAutoCenter, useBooleans, useBooleansAdapter, useCanvasFocus, useCanvasSize, useDecayLoop, useDeviceProfile, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEllipseTool, useEyedropperTool, useGestureDispatcher, useGridCellHover, useGuides, useHandTool, useHandleDrag, useHoverTracking, useImageTool, useKeybindings, useLassoTool, useLineTool, usePenTool, usePencilTool, usePinchGesture, usePinchZoomTool, usePointerStylus, usePolygonTool, usePublishSelection, useRectTool, useResizePolicy, useRotateTool, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelectionContext, useSimulation, useSliceDep, useStandardActions, useStarTool, useTextEdit, useTextTool, useTools, useVelocityTracker, useViewAnimation, useViewTween, useZoom, viewportDragPanAction, viewportZoomAction, when, withAlpha01, withCoord, withGradientKind, withinPxBox, withinPxRadius, worldEditToStorage, zoomAt, zoomAtLeast };