@weasel-js/core 0.7.0 → 0.7.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.
package/dist/index.d.ts CHANGED
@@ -4,8 +4,8 @@ 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-CaSK9bHV.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-CaSK9bHV.js';
7
- import { R as RenderLayer, D as Dims, C as Condition, a as Rule, b as RuleCtx, V as VisibilityRules, c as ChromeCtx, d as ChromeId, A as Action, e as DepSchema, S as SliceDep, f as ActionsRegistry, T as Tool, g as AffordanceHit, h as Dispatcher, i as AnyTool, j as ToolCtx, k as ToolKeybinding, H as HotkeyTrigger, l as AffordanceBinding, m as ChromeState, n as SelectionApi, I as InsertExtras, G as GeometryProjection, o as ContentHandlerEntry, p as SvgIngestOptions, U as UseSelectionOptions, q as ActionsProp, r as Affordance, B as BooleansAdapter } from './index-D31EADQG.js';
8
- export { s as ALWAYS, t as ActionDeps, u as ActionDisabledReason, v as ActionEnabledResult, w as ActionEntry, x as ActionsProvider, y as ActiveToolContextProvider, z as ActiveToolContextProviderIfRoot, E as ActiveToolContextProviderProps, F as ActiveToolContextValue, J as AffordanceRegion, K as AreaSelectDep, L as BindingOpts, M as BindingScope, N as BooleanOp, O as BooleanOpResult, P as BoundGesture, Q as BuildRuleCtxArgs, W as ClipboardIngestCtx, X as CustomPaintContext, Y as DepName, Z as DepRegistry, _ as DepRegistryProvider, $ as DispatcherContext, a0 as DragSample, a1 as EditAnchorsDep, a2 as GestureBinding, a3 as ImmediateInvoker, a4 as IngestCtx, a5 as IngestionDep, a6 as InsertDep, a7 as InvocationCtx, a8 as Invoker, a9 as LassoSelectDep, aa as LayoutDep, ab as MatchResult, ac as NEVER, ad as NodeAtPointDep, ae as OngoingHandle, af as OngoingInvoker, ag as OngoingOverlay, ah as Point2, ai as PointerContextProvider, aj as PointerContextValue, ak as PointerWorldPos, al as ResizePolicy, am as ResolveAllOptions, an as ResolveOnlyResult, ao as ResolvedCandidate, ap as ScopedBinding, aq as SelectionExtendKey, ar as SelectionMode, as as Selector, at as SnapDep, au as SvgUnpacker, av as TextEditDep, aw as ToolModifiers, ax as ToolPresentation, ay as ToolSlot, az as UiOngoingControl, aA as ViewApi, aB as applyBooleanOp, aC as buildRuleCtx, aD as createDispatcher, aE as describeRule, aF as drawLayers, aG as enterTextEditAction, aH as evaluate, aI as evaluateEnabled, aJ as registerContentHandler, aK as routing, aL as sliceAction, aM as specificity, aN as useAction, aO as useActionsRegistry, aP as useActiveToolContext, aQ as useDepRegistry, aR as useDepSource, aS as useOptionalActiveToolContext, aT as useOptionalDepRegistry, aU as usePointerContext, aV as useSelection } from './index-D31EADQG.js';
7
+ import { R as RenderLayer, D as Dims, C as Condition, a as Rule, b as RuleCtx, V as VisibilityRules, c as ChromeCtx, d as ChromeId, A as Action, e as DepSchema, S as SliceDep, f as ActionsRegistry, T as Tool, g as AffordanceHit, h as Dispatcher, i as AnyTool, j as ToolCtx, k as ToolKeybinding, H as HotkeyTrigger, l as AffordanceBinding, m as ChromeState, n as SelectionApi, I as InsertExtras, G as GeometryProjection, o as ContentHandlerEntry, p as SvgIngestOptions, U as UseSelectionOptions, q as ActionsProp, r as Affordance, s as AffordanceRegion, t as CommonAffordanceScratch, B as BooleansAdapter } from './index-DOYRTfP0.js';
8
+ export { u as ALWAYS, v as ActionDeps, w as ActionDisabledReason, x as ActionEnabledResult, y as ActionEntry, z as ActionsProvider, E as ActiveToolContextProvider, F as ActiveToolContextProviderIfRoot, J as ActiveToolContextProviderProps, K as ActiveToolContextValue, L as AreaSelectDep, M as BindingOpts, N as BindingScope, O as BooleanOp, P as BooleanOpResult, Q as BoundGesture, W as BuildRuleCtxArgs, X as ClipboardIngestCtx, Y as CustomPaintContext, Z as DepName, _ as DepRegistry, $ as DepRegistryProvider, a0 as DispatcherContext, a1 as DragSample, a2 as EditAnchorsDep, a3 as GestureBinding, a4 as ImmediateInvoker, a5 as IngestCtx, a6 as IngestionDep, a7 as InsertDep, a8 as InvocationCtx, a9 as Invoker, aa as LassoSelectDep, ab as LayoutDep, ac as MatchResult, ad as NEVER, ae as NodeAtPointDep, af as OngoingHandle, ag as OngoingInvoker, ah as OngoingOverlay, ai as Point2, aj as PointerContextProvider, ak as PointerContextValue, al as PointerWorldPos, am as ResizePolicy, an as ResolveAllOptions, ao as ResolveOnlyResult, ap as ResolvedCandidate, aq as ScopedBinding, ar as SelectionExtendKey, as as SelectionMode, at as Selector, au as SnapDep, av as SvgUnpacker, aw as TextEditDep, ax as ToolModifiers, ay as ToolPresentation, az as ToolSlot, aA as UiOngoingControl, aB as ViewApi, aC as applyBooleanOp, aD as buildRuleCtx, aE as createDispatcher, aF as describeRule, aG as drawLayers, aH as enterTextEditAction, aI as evaluate, aJ as evaluateEnabled, aK as registerContentHandler, aL as routing, aM as sliceAction, aN as specificity, aO as useAction, aP as useActionsRegistry, aQ as useActiveToolContext, aR as useDepRegistry, aS as useDepSource, aT as useOptionalActiveToolContext, aU as useOptionalDepRegistry, aV as usePointerContext, aW as useSelection } from './index-DOYRTfP0.js';
9
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-CJtqqt8H.js';
10
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-CJtqqt8H.js';
11
11
  import { B as Bounds, P as PoseProjection, F as FitViewToBoundsOptions, V as ViewportDims } from './geometry-D9BDMiQi.js';
@@ -35,9 +35,29 @@ export { U as UseInsertOptions } from './options-DMWeTELe.js';
35
35
  export { UseClipboardOpsOptions, UseClipboardOpsReturn, WEASEL_CLIPBOARD_MIME, WEASEL_CLIPBOARD_MIME_WEB, buildWeaselClipboardText, embedWeaselMetadataInSvg, extractWeaselClipboardFromSvg, parseWeaselClipboardText, sniffWeaselClipboardText, useClipboardOps } from './clipboard.js';
36
36
  export { cloneByAltDrag } from './clone.js';
37
37
  export { I as ImageMinification, v as viewToMat3 } from './viewToMat3-D4lrBigW.js';
38
- export { FontVariant, isCanvasFont, registerCanvasFont, registerFont, subscribeGlyphReady, unregisterCanvasFont } from '@weasel-js/font';
38
+ export { FontVariant, LocalFontOutlinesResult, OutlineFontStyle, OutlineSource, OutlineStatus, OutlineVariant, canQueryLocalFonts, enableLocalFontOutlines, hasFontOutlines, isCanvasFont, listFontOutlines, outlineStatus, registerCanvasFont, registerFont, registerFontOutlines, subscribeGlyphReady, unregisterCanvasFont, unregisterFontOutlines } from '@weasel-js/font';
39
39
  import '@weasel-js/modes';
40
40
 
41
+ /**
42
+ * The kit version a build was compiled from, so an app can report what it is
43
+ * running. Substituted at build time — by `tsup.config.ts` for the published
44
+ * package, and by `scripts/vite-build-info.ts` for anything in this repo that
45
+ * bundles core's source through the workspace aliases.
46
+ *
47
+ * Apps pair this with their own compile timestamp; the kit deliberately does
48
+ * not carry one, since a published package's build date says nothing about
49
+ * when the app embedding it was built.
50
+ */
51
+ /**
52
+ * Semver of `@weasel-js/core` as of the build.
53
+ *
54
+ * Falls back to `'0.0.0-unknown'` when core's source is imported by a bundler
55
+ * that hasn't been given the define — honest about not knowing rather than
56
+ * throwing, since nothing about version reporting should be able to break a
57
+ * consumer's build.
58
+ */
59
+ declare const VERSION: string;
60
+
41
61
  /** Round `value` to the nearest multiple of `cellSize`. Returns 0 when the result would be -0. */
42
62
  declare function roundToCell(value: number, cellSize: number): number;
43
63
 
@@ -2153,6 +2173,36 @@ interface UseSelectToolOptions<TPose> {
2153
2173
  pickBest?: (worldX: number, worldY: number, alt: boolean, selection: readonly string[]) => string | null;
2154
2174
  /** Project a pose to its AABB. Default: identity. */
2155
2175
  poseBounds?: (pose: TPose) => Bounds;
2176
+ /**
2177
+ * How the default `pickEvery` decides a **leaf** node covers the pointer.
2178
+ * Ignored when `pickEvery` is supplied.
2179
+ *
2180
+ * - `'aabb'` (default) — the pose rect. Cheap, and the historical behavior:
2181
+ * a click anywhere in the bounding box selects the node.
2182
+ * - `'silhouette'` — the pose rect as a pre-test, then the ink the painter
2183
+ * lays down: `findShapeSilhouette` filled or not per the painter's `ink`,
2184
+ * plus its outline widened by the stroke half-width and `pickTolerance`.
2185
+ * A click inside the bounding box but outside the drawn shape misses —
2186
+ * the concave notch of a star, the corner outside an ellipse, the blank
2187
+ * half of a text box — while a click on the thin outline of an unfilled
2188
+ * shape hits.
2189
+ *
2190
+ * Container nodes already consult their silhouette unconditionally (it is
2191
+ * how their clip is derived); this extends the same test to leaves. Not the
2192
+ * default because it changes what a click selects for every existing
2193
+ * consumer, and a painter with no `silhouette` is unaffected either way —
2194
+ * it falls back to the AABB.
2195
+ */
2196
+ leafPicking?: 'aabb' | 'silhouette';
2197
+ /**
2198
+ * Grab slop around a shape's outline, in **world** units. Default 0.
2199
+ *
2200
+ * Only consulted under `leafPicking: 'silhouette'`. World units because
2201
+ * this hook has no view; `<SceneCanvas>` takes a screen-pixel figure
2202
+ * (`geometry.pickTolerancePx`) and divides by scale on its own pick path.
2203
+ * Without some slop a hairline outline is an unhittable target.
2204
+ */
2205
+ pickTolerance?: number;
2156
2206
  /** Move-action options. The move gesture is dispatcher-routed,
2157
2207
  * so only `behaviors` is consumed here — threaded into the move binding's
2158
2208
  * `opts.behaviors`. Other `UseMoveOptions` fields are accepted for API shape
@@ -2272,7 +2322,10 @@ declare function useRotateTool<TNode extends {
2272
2322
  * (resolve before calling) — this helper doesn't try to detect that.
2273
2323
  *
2274
2324
  * Pure sibling z-order without a parent/child relation is not resolved
2275
- * here yet — see `docs/TODO.md`.
2325
+ * here yet — see "Sibling z-order is unresolved in hit-picking" under
2326
+ * Tools & gestures in `docs/TODO.md`. The shape it wants is an optional
2327
+ * `getZIndex` / `compareZ` on the adapter below, composing with the
2328
+ * parent/child collapse rather than replacing it.
2276
2329
  */
2277
2330
  interface PickTopMostHitAdapter {
2278
2331
  getParent?: (id: string) => string | null;
@@ -4175,7 +4228,13 @@ interface NodeShapeEntry<TData = unknown, TPose = unknown> {
4175
4228
  matches(node: Node$1<TData, string, TPose>): boolean;
4176
4229
  /** Emits the draw commands for the node's primary visual. `ctx` is an
4177
4230
  * optional per-call paint context (see `NodePaintCtx`); painters that
4178
- * don't need it can keep a two-argument signature. */
4231
+ * don't need it can keep a two-argument signature.
4232
+ *
4233
+ * **The returned array belongs to the painter.** Callers must treat it as
4234
+ * immutable and copy before appending — a painter is free to memoize its
4235
+ * command list (`kit:shape` and `kit:path` do), and an in-place `push`
4236
+ * would grow that list on every frame. `defaultDrawOne` copies before
4237
+ * adding its label overlay for exactly this reason. */
4179
4238
  paint(node: Node$1<TData, string, TPose>, pose: TPose, ctx?: NodePaintCtx): DrawCommand[];
4180
4239
  /** Optional: derive the node's silhouette path from its pose.
4181
4240
  * Used by clipping (when the container has no explicit
@@ -4183,6 +4242,26 @@ interface NodeShapeEntry<TData = unknown, TPose = unknown> {
4183
4242
  * and by SVG export. Painters whose visual has no meaningful closed
4184
4243
  * silhouette (e.g. text) leave this undefined. */
4185
4244
  silhouette?(node: Node$1<TData, string, TPose>, pose: TPose): Path | null;
4245
+ /** Optional: how the silhouette is inked — whether the interior is filled,
4246
+ * and how wide the outline is. Read by picking, so that an unfilled shape
4247
+ * is grabbable by its outline rather than by its empty middle.
4248
+ *
4249
+ * This is declared separately from `paint` rather than read back off the
4250
+ * emitted draw commands because picking runs on every pointer move, and
4251
+ * `paint` is allowed to be expensive (`kit:text` lays out glyphs). Keep it
4252
+ * to cheap field reads.
4253
+ *
4254
+ * Painters that leave it undefined are treated as `{ filled: true,
4255
+ * strokeWidth: 0 }` — the pre-`ink` behavior, where the whole silhouette
4256
+ * interior is grabbable and the outline adds nothing. */
4257
+ ink?(node: Node$1<TData, string, TPose>, pose: TPose): NodeInk | null;
4258
+ }
4259
+ /** How a painter inks its silhouette. See {@link NodeShapeEntry.ink}. */
4260
+ interface NodeInk {
4261
+ /** True when the silhouette's interior is painted, and so grabbable. */
4262
+ filled: boolean;
4263
+ /** Stroke width in world units. `0` for no stroke. */
4264
+ strokeWidth: number;
4186
4265
  }
4187
4266
  interface RegisterNodeShapeOptions {
4188
4267
  /** `'high'` puts the painter ahead of all normally-registered ones (so
@@ -4207,6 +4286,47 @@ declare function findNodeShape<TData, TPose>(node: Node$1<TData, string, TPose>)
4207
4286
  * draws. (`paint()` is unaffected — it applies rotation via the render wrap,
4208
4287
  * not the silhouette, so there is no double-rotation.) */
4209
4288
  declare function findShapeSilhouette<TData, TPose>(node: Node$1<TData, string, TPose>, pose: TPose): Path | null;
4289
+ /** Find the painter for `node` and ask how it inks its silhouette. Returns
4290
+ * the painter's declared {@link NodeInk}, or `null` when no painter matches
4291
+ * or it declares none — callers substitute {@link DEFAULT_INK}. */
4292
+ declare function findShapeInk<TData, TPose>(node: Node$1<TData, string, TPose>, pose: TPose): NodeInk | null;
4293
+ /** Options for {@link shapeCoversPoint}. */
4294
+ interface ShapeCoversPointOptions {
4295
+ /** Extra grab distance around the outline, in **world** units. Callers
4296
+ * derive it from a screen-pixel slop and the view scale, the same way
4297
+ * affordance hit radii work.
4298
+ *
4299
+ * Without slop a hairline is a mathematically zero-width target: the
4300
+ * stroke of a 1px outline is half a world unit wide at scale 1, which no
4301
+ * one can hit. Defaults to `0` so a caller that hasn't thought about the
4302
+ * view still gets exact geometry rather than a wrong guess. */
4303
+ tolerance?: number;
4304
+ }
4305
+ /**
4306
+ * Does the shape `node` actually paints cover the world point?
4307
+ *
4308
+ * The pose rect says a node covers its whole bounding box. That is wrong for
4309
+ * everything that is not a rectangle: the concave notch of a star, the corner
4310
+ * outside an ellipse, the blank right half of a text box. This asks the
4311
+ * painter's silhouette instead, which is the same boundary used for clipping
4312
+ * and SVG export, so "what you can click" and "what is drawn" answer together.
4313
+ *
4314
+ * "What is drawn" includes the *ink*, not just the boundary. A shape whose
4315
+ * interior isn't filled — an outlined rect, a pencil stroke, a bare line — is
4316
+ * grabbable along its outline and not through its empty middle, which is the
4317
+ * opposite of what a fill test alone answers. The outline's grab width is the
4318
+ * stroke's half-width plus `tolerance`.
4319
+ *
4320
+ * A painter with no `silhouette`, or one that returns `null` for this node
4321
+ * (`kit:text` does, for a node with no non-blank lines), reports `true` —
4322
+ * "no opinion", leaving the caller's own AABB test as the answer. Callers
4323
+ * should keep that AABB test as a cheap pre-filter; this is the refinement,
4324
+ * not a replacement.
4325
+ *
4326
+ * Rotation is already baked by `findShapeSilhouette`, so the point is in
4327
+ * plain world coordinates.
4328
+ */
4329
+ declare function shapeCoversPoint<TData, TPose>(node: Node$1<TData, string, TPose>, pose: TPose, x: number, y: number, opts?: ShapeCoversPointOptions): boolean;
4210
4330
  /** Snapshot of the current painters in evaluation order — `'high'` tier
4211
4331
  * first, then `'normal'`. Useful for debugging which painter handles a
4212
4332
  * given node. */
@@ -4334,6 +4454,35 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<No
4334
4454
  * pre-collapsing to one id. Matches `Canvas`'s `pickEvery` shape. */
4335
4455
  pickEvery?: (worldX: number, worldY: number) => string | string[] | null;
4336
4456
  boundsOf?: (id: string) => Bounds | null;
4457
+ /**
4458
+ * What "the pointer is on this node" means for the default body-pick.
4459
+ *
4460
+ * - `'pose'` — the node's pose rect, rotation honored. What every
4461
+ * consumer got before `'shape'` existed, and now the opt-out.
4462
+ * - `'shape'` (default) — the pose rect as a pre-filter, then the ink the painter
4463
+ * actually lays down: its silhouette (`findShapeSilhouette`) filled
4464
+ * or not per the painter's `ink`, plus its outline widened by the
4465
+ * stroke half-width and `pickTolerancePx`. A click in the concave
4466
+ * notch of a star, in the corner outside an ellipse, or in the blank
4467
+ * half of a text box falls through to whatever is beneath; a click on
4468
+ * the thin outline of an unfilled shape hits it.
4469
+ *
4470
+ * Painters with no silhouette are unaffected — they keep the pose-rect
4471
+ * answer either way, so this can never make a node unreachable.
4472
+ *
4473
+ * Ignored when `pickEvery` is supplied: that override owns the test.
4474
+ */
4475
+ picking?: 'pose' | 'shape';
4476
+ /**
4477
+ * Grab slop around a shape's outline, in **screen** pixels. Default 4.
4478
+ *
4479
+ * Screen pixels rather than world units so the target keeps its
4480
+ * apparent size at any zoom. It widens the outline test under
4481
+ * `picking: 'shape'` (a 1px hairline is otherwise a half-world-unit
4482
+ * target, which is unhittable), and it grows the pose-rect pre-filter
4483
+ * so those outline hits survive it. Set `0` for exact geometry.
4484
+ */
4485
+ pickTolerancePx?: number;
4337
4486
  };
4338
4487
  selectTool?: {
4339
4488
  move?: UseMoveOptions<TPose>;
@@ -5435,6 +5584,70 @@ declare function composeAffordanceLayer(id: string, label: string, affordances:
5435
5584
  }, isVisible?: (id: string) => boolean): AffordanceBinding | null;
5436
5585
  };
5437
5586
 
5587
+ /**
5588
+ * The one affordance hit-test walk.
5589
+ *
5590
+ * The kit used to hit-test selection chrome two ways: this region walk
5591
+ * (reached through `composeAffordanceLayer`'s `RenderLayer.hitTest`) and a
5592
+ * hand-written classifier in `canvas/affordanceAt.ts` that re-derived corner
5593
+ * positions, the rotate ring, and anchor points from `ChromeState` itself.
5594
+ * Both read the same state and answered the same question, so the geometry
5595
+ * lived twice and could disagree — and only the hand-written side ran for the
5596
+ * kit's own chrome, which is why `AffordanceRegion.cursor` was declared, set,
5597
+ * and never consumed.
5598
+ *
5599
+ * Now there is one walk. `composeAffordanceLayer.hitTest` delegates here, and
5600
+ * so does `buildAffordanceAt`, so an affordance's `regions()` is the single
5601
+ * source of truth for where its chrome is and what a press on it means.
5602
+ */
5603
+
5604
+ /** What the walk found: the region, plus the ids needed to describe it. */
5605
+ interface AffordanceRegionHit {
5606
+ /** `Affordance.id` — also the chrome-caps visibility id. */
5607
+ affordanceId: string;
5608
+ /** `AffordanceRegion.id`. */
5609
+ regionId: string;
5610
+ /** The region itself, so callers can read `hitKind` / `cursor`. */
5611
+ region: AffordanceRegion;
5612
+ /** Result of the region's `bind()`, called exactly once. */
5613
+ binding: AffordanceBinding;
5614
+ }
5615
+ /**
5616
+ * Walk affordances for a world-space hit, topmost first.
5617
+ *
5618
+ * **Across affordances**: order mirrors paint. Affordances are drawn first →
5619
+ * last (bottom → top), so the walk runs last → first and stops at the first
5620
+ * one that claims the point. Layering wins outright — a nearer region on a
5621
+ * lower affordance does not beat a farther one on top of it.
5622
+ *
5623
+ * **Within an affordance**: the *nearest* hit region wins, ties going to the
5624
+ * later-declared one. Both hit-testers this replaced took the first region
5625
+ * they found instead, in opposite orders, which is only invisible while
5626
+ * regions don't overlap. They do: the four corner handles of a selection
5627
+ * smaller than the hit radius all contain the same click, and "first in the
5628
+ * table" silently answered top-left (or bottom-right) no matter which handle
5629
+ * the pointer was actually on.
5630
+ *
5631
+ * `isVisible` (when supplied) gates by the same chrome id used at paint time,
5632
+ * so chrome that isn't drawn can't be hit either.
5633
+ */
5634
+ declare function hitAffordanceRegions(affordances: readonly Affordance[], wx: number, wy: number, state: ChromeState, view: View, isVisible?: (id: string) => boolean): AffordanceRegionHit | null;
5635
+ /**
5636
+ * An annulus region's effective outer semi-axes, with `minBandPx` applied.
5637
+ *
5638
+ * The affordance declares the natural ellipse (typically the smallest one
5639
+ * containing the inner rect) plus a screen-space floor on band thickness;
5640
+ * this is where the floor becomes world units, because this is where the view
5641
+ * is known. Paint calls it too, so the visible ring and the hoverable ring
5642
+ * are the same ring.
5643
+ */
5644
+ declare function annulusSemiAxes(shape: Extract<AffordanceRegion['shape'], {
5645
+ kind: 'annulus';
5646
+ }>, view: View): {
5647
+ rx: number;
5648
+ ry: number;
5649
+ };
5650
+
5438
5651
  interface CornerResizeAffordanceOptions {
5439
5652
  /** Hit radius (screen-px) for the corner handles. Default 8. */
5440
5653
  handleHitRadius?: number;
@@ -5443,12 +5656,19 @@ interface CornerResizeAffordanceOptions {
5443
5656
  fill?: string;
5444
5657
  stroke?: string;
5445
5658
  }
5446
- interface CornerResizeScratch {
5659
+ interface CornerResizeScratch extends CommonAffordanceScratch {
5447
5660
  /** Resize anchor identifying the OPPOSITE corner (the one that stays
5448
5661
  * fixed). Matches the kit's existing ResizeAnchor convention. */
5449
5662
  anchor: ResizeAnchor;
5450
5663
  /** Id of the resize target. In multi-mode this is `MULTI_RESIZE_TARGET_ID`. */
5451
5664
  targetId: string;
5665
+ /** The fixed corner in **world** coords, with the target's rotation already
5666
+ * applied. `resizeAction` scales from this point, and it has no access to
5667
+ * the target transform, so the affordance resolves it here. */
5668
+ fixedPoint: {
5669
+ x: number;
5670
+ y: number;
5671
+ };
5452
5672
  }
5453
5673
  /**
5454
5674
  * @experimental
@@ -5482,10 +5702,15 @@ interface RotationAffordanceOptions {
5482
5702
  /** Cursor while hovering the ring. Defaults to `'grab'`. */
5483
5703
  cursor?: string;
5484
5704
  }
5485
- interface RotationScratch {
5705
+ interface RotationScratch extends CommonAffordanceScratch {
5486
5706
  /** Id of the rotation target — single selection id, or
5487
5707
  * `MULTI_RESIZE_TARGET_ID` for multi-selection. */
5488
5708
  targetId: string;
5709
+ /** Rotation pivot in world coords — the AABB (or union AABB) center. */
5710
+ fixedPoint: {
5711
+ x: number;
5712
+ y: number;
5713
+ };
5489
5714
  }
5490
5715
  /**
5491
5716
  * @experimental
@@ -5506,6 +5731,61 @@ interface RotationScratch {
5506
5731
  */
5507
5732
  declare function createRotationAffordance(opts?: RotationAffordanceOptions): Affordance;
5508
5733
 
5734
+ /**
5735
+ * Path anchor + control-handle affordances.
5736
+ *
5737
+ * These were the last piece of selection chrome whose geometry lived only
5738
+ * inside `canvas/affordanceAt.ts`'s hand-written classifier. Expressing them
5739
+ * as regions puts every kit affordance behind one hit-test walk, which is
5740
+ * what lets `AffordanceRegion.cursor` and nearest-region picking apply here
5741
+ * too rather than only to the chrome that happened to be declarative already.
5742
+ */
5743
+
5744
+ /**
5745
+ * Live anchor-editing state, read fresh on every hit-test.
5746
+ *
5747
+ * Anchors are not derivable from `ChromeState` — they come off the editable
5748
+ * path behind whatever the consumer's `editAnchors` dep exposes — so this
5749
+ * thunk is the seam. It's called on every pointer event, so it must be cheap
5750
+ * (O(1) field reads); enumeration happens inside `regions()`.
5751
+ */
5752
+ interface AnchorState {
5753
+ /** Id of the path currently in anchor-edit mode, or `null`. Control handles
5754
+ * are only hittable on the path that is being edited. */
5755
+ editingId: string | null;
5756
+ /** Current editable path for a node id. Non-polygon values are ignored. */
5757
+ getPose(id: string): unknown;
5758
+ }
5759
+ interface PathAnchorAffordanceOptions {
5760
+ /** Hit radius (screen-px) for anchor and control points. Default 8. */
5761
+ hitRadius?: number;
5762
+ /** Cursor while hovering an anchor or control. Defaults to `'pointer'`. */
5763
+ cursor?: string;
5764
+ }
5765
+ interface AnchorScratch extends CommonAffordanceScratch {
5766
+ /** Node id of the path the anchor belongs to. */
5767
+ targetId: string;
5768
+ /** Sequential anchor index in path walk order. */
5769
+ anchorIndex: number;
5770
+ /** Which of the anchor's three grabbable points this is. */
5771
+ part: 'anchor' | 'controlIn' | 'controlOut';
5772
+ }
5773
+ /** Chrome-caps id gating both returned affordances. */
5774
+ declare const PATH_ANCHOR_CHROME_ID = "path-edit.anchors";
5775
+ /**
5776
+ * Anchor + control affordances for the selected paths, bottom → top.
5777
+ *
5778
+ * Returns **two** affordances rather than one so that a control handle beats
5779
+ * an anchor regardless of which is nearer — the same preference `hitAnchor`
5780
+ * encodes, and the same one the rendering has (controls draw on top). Within
5781
+ * each of the two, nearest wins. They deliberately share one id: chrome-caps
5782
+ * gates anchor editing as a single piece of chrome, and splitting the id
5783
+ * would invent a visibility rule nothing asked for.
5784
+ *
5785
+ * Order matters — spread this into an affordance list in the returned order.
5786
+ */
5787
+ declare function createPathAnchorAffordances(getAnchorState: () => AnchorState | null, opts?: PathAnchorAffordanceOptions): Affordance[];
5788
+
5509
5789
  /** Pluggable text-painting strategy. The default fills white at `(x, y)`; markdown renderers replace this. */
5510
5790
  type TextRenderer = (ctx: CanvasRenderingContext2D, text: string, x: number, y: number) => void;
5511
5791
  /** Visual options for `renderLabel`. */
@@ -5710,6 +5990,70 @@ declare function pointInTextPose(x: number, y: number, pose: TextPose, opts?: Po
5710
5990
  */
5711
5991
  declare function caretIndexAt(ctx: CanvasRenderingContext2D, x: number, y: number, pose: TextPose): number;
5712
5992
 
5993
+ /**
5994
+ * Polygon-vs-axis-aligned-rect tests. Pure functions; no React/kit deps.
5995
+ *
5996
+ * `polygon` is a closed polyline given as an ordered vertex array; the
5997
+ * closing edge from `polygon[N-1]` to `polygon[0]` is implicit. Even-odd
5998
+ * fill rule (matches `pointInPath`).
5999
+ */
6000
+ interface Vec2 {
6001
+ x: number;
6002
+ y: number;
6003
+ }
6004
+ interface Rect {
6005
+ x: number;
6006
+ y: number;
6007
+ width: number;
6008
+ height: number;
6009
+ }
6010
+
6011
+ /**
6012
+ * Where a text node's lines actually sit inside its pose box.
6013
+ *
6014
+ * A text pose is a *wrap box*, not a bounding box: `"Away"` in a 309-unit-wide
6015
+ * box leaves most of the box empty, and anything that treats the pose as the
6016
+ * node's extent — picking, lasso, clipping, SVG export — claims that empty
6017
+ * space. `textLineBoxes` returns the per-line rectangles instead.
6018
+ *
6019
+ * The numbers come from `layoutRuns`, the same walk that positions the glyphs,
6020
+ * through the same `resolveTextStyle` → `resolveRuns` → `layoutRuns` chain as
6021
+ * `textCommand` — so the boxes cannot drift from what is painted. In
6022
+ * particular they honor `align` (a centered line reports its own span, not the
6023
+ * wrap width) and `verticalAlign` (the block shifts inside `[y, y + height]`
6024
+ * exactly as `drawText` shifts the quads).
6025
+ *
6026
+ * These are line boxes, not ink boxes: each is `fontSize * lineHeight` tall
6027
+ * from the pen's line top. Ink can escape vertically at a `lineHeight` low
6028
+ * enough — see the `bounds` note at the end of `layoutRuns` — which is the
6029
+ * right trade for hit-testing, where a box that hugged the ink would make
6030
+ * an `x` harder to click than an `X`.
6031
+ */
6032
+
6033
+ /** Options for {@link textLineBoxes}. */
6034
+ interface TextLineBoxesOpts {
6035
+ /** Grow every box by this much on all four sides (world units). Default 0.
6036
+ * Picking wants a little slack so a single hairline row of text is still
6037
+ * grabbable; clipping and export want none. */
6038
+ padding?: number;
6039
+ /** Keep boxes for blank lines (zero width). Default `false` — a blank line
6040
+ * covers no area, so for hit-testing and silhouettes it is noise. Pass
6041
+ * `true` when the indices have to line up with the wrapped lines. */
6042
+ includeEmpty?: boolean;
6043
+ /**
6044
+ * Wrap width. Default `pose.width`, which is what `createTextLayer` passes
6045
+ * and what `TextPose` means by its box.
6046
+ *
6047
+ * Pass `Infinity` for a node painted by the built-in `kit:text` painter:
6048
+ * that painter deliberately does **not** forward `maxWidth` (see
6049
+ * `NodeShape.ts`), so its text does not wrap, and boxes computed with a
6050
+ * finite width would wrap where the paint did not.
6051
+ */
6052
+ maxWidth?: number;
6053
+ }
6054
+ /** Per-line rectangles for a text pose, in world units, in layout order. */
6055
+ declare function textLineBoxes(pose: TextPose, opts?: TextLineBoxesOpts): Rect[];
6056
+
5713
6057
  /**
5714
6058
  * Resize a text node's pose to fit its content. Pure helper — does not own
5715
6059
  * scene state. Call it whenever the text, style, or relevant axis changes,
@@ -6560,24 +6904,6 @@ interface PointInPathOptions {
6560
6904
  /** Filled-region hit-test for a `Path`. Rect short-circuits to AABB; polygons run ray-cast / winding per `fillRule`. */
6561
6905
  declare function pointInPath(path: Path, x: number, y: number, opts?: PointInPathOptions): boolean;
6562
6906
 
6563
- /**
6564
- * Polygon-vs-axis-aligned-rect tests. Pure functions; no React/kit deps.
6565
- *
6566
- * `polygon` is a closed polyline given as an ordered vertex array; the
6567
- * closing edge from `polygon[N-1]` to `polygon[0]` is implicit. Even-odd
6568
- * fill rule (matches `pointInPath`).
6569
- */
6570
- interface Vec2 {
6571
- x: number;
6572
- y: number;
6573
- }
6574
- interface Rect {
6575
- x: number;
6576
- y: number;
6577
- width: number;
6578
- height: number;
6579
- }
6580
-
6581
6907
  /**
6582
6908
  * Path-vs-geometry hit-test helpers. Five pure functions covering all
6583
6909
  * combinations of path-vs-point, path-vs-rect, and path-vs-polygon.
@@ -8564,4 +8890,4 @@ interface InsertOverlayStyle {
8564
8890
  lineWidth?: number;
8565
8891
  }
8566
8892
 
8567
- export { Action, ActionsProp, ActionsProviderIfRoot, ActionsRegistry, Affordance, AffordanceBinding, AffordanceHit, type AlignAdapter, type AlignAnchor, type AlignBounds, type AlignBoundsProjection, type AlignEdge, type AlignMatchResult, type AlignMoveArgs, type AlignmentBehaviorBase, type AnchorHit, 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, 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, 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_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, 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, 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 NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type OpenFilePickerOptions, OrderedAdapter, OriginProjection, type PanBounds, type ParallaxOpts, Path, type PathAnchor, 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, 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 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 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, 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, applyHitExistingGate, applyOpsTo, applyStyleToRange, areaSelectAction, arrayAdapter, bezierCubic, bezierQuadratic, boundsOfPath, buildChromeCtx, buildSceneViewCommands, canBringForward, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, caretIndexAt, cellAt, charOffsetToDomPosition, clampView, clearSelectionAction, clientToCanvas, cloneAction, 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, 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, findShapeSilhouette, fitTextPose, fitToBounds, fitZoom, flattenCubic, flattenCubicWithArcLen, flattenQuadratic, flattenQuadraticWithArcLen, focused, forEachCoalesced, freeform, gateLayer, gesturing, getAlpha01, getImageBitmap, getNodeShapes, getScratch, getStylusData, guideSnapStrategy, hexToRgba, 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, resolveVisibility, rgbaToHex, rotateAction, rotateAroundAABBCenter, rotatePathAround, rotatePoint, rotatedRectCorners, rotationDegreesUnit, rotationHandle, roundToCell, runsToDom, scalePathToBounds, sceneFromJSON, sceneNodeClientRect, sceneToAdapter, scratchKey, selectFromLasso, selectionAtLeast, selectionEmpty, selectionIs, setScratch, snap, snapPoint, solidVertexColors, spiro, splitPathByLine, splitSubpaths, springPose, springVertexColors, srgbU8ToOklab, staggerVertexColors, starPath, startThresholdDrag, styleAtRange, subscribeImageReady, textCommand, tileGrid, toHex8, transformPath, translatePath, translatePolygonInPlace, translatePoseViaDescriptor, tweenPose, tweenVertexColors, unionBounds, unionBoundsPath, useAlign, useAnimator, useArrayAdapter, useAutoCenter, useBooleans, useBooleansAdapter, useCanvasFocus, useCanvasSize, useDecayLoop, 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 };
8893
+ export { 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, 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_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, 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, 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, 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, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, caretIndexAt, cellAt, charOffsetToDomPosition, clampView, clearSelectionAction, clientToCanvas, cloneAction, 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, 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, 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 };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { ALWAYS, ActionDisabledReason, ActionsProvider, ActionsProviderIfRoot, ActiveToolContextProvider, ActiveToolContextProviderIfRoot, BUNDLE_TOOLS, CURVE_REPS, ColorOverrideRegistry, CropIcon, CursorCoordsHud, DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_DEBUG_THEME, DEFAULT_FILL_COLOR, DEFAULT_HANDLE_SIZE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_STYLE, DEFAULT_VELOCITY_DECAY, DepRegistryProvider, DepRegistryProviderIfRoot, DivideIcon, EASINGS, EllipseIcon, ExcludeIcon, EyedropperIcon, FALLBACK_FIT_VIEW, GHOST_STROKE, HandIcon, IDENTITY_POSE_COMPOSITION, IntersectIcon, KIT_SHAPE_KINDS, LassoIcon, LineIcon, MIXED, MOVE_ANCHORS, MinimapCanvas, NEVER, PenIcon, PencilIcon, PickHud, PointerProviderIfRoot, PolygonIcon, RECT_ALIGN_PROJECTION, RectIcon, SPRING_PRESETS, SceneCanvas, SceneViewCanvas, SelectIcon, SelectionContextProvider, SelectionContextProviderIfRoot, StarIcon, SubtractIcon, TextIcon, UnionIcon, UnknownIcon, WeaselProvider, aabbCenter, actionIs, alignDeltaFor, alignInsertBehavior, alignMoveBehavior, alignResizeBehavior, alignedStrokeRect, always, and, animateLifecycle, animateOnSetPose, applyBooleanOp, applyHitExistingGate, applyStyleToRange, areaSelectAction, arrayAdapter, asNodeId, bezierCubic, bezierQuadratic, buildChromeCtx, buildRuleCtx, buildSceneViewCommands, canBringForward, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, caretIndexAt, cellAt, charOffsetToDomPosition, clampView, clearSelectionAction, clientToCanvas, cloneAction, composeAffordanceLayer, composePath, composeRectPose, composeSelectionPose, composeWorldPose, computeFitView, computeIndicatorCommand, computeWheelAction, cond, constrainTo45, containedThenNearest, countPathAnchors, createCellHighlightLayer, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDispatcher, createGridLayer, createGuidesLayer, createHistory, createMarkdownRenderer, createMoveToIndexOp, createNodeProperties, createNodeRouting, createParallaxLayer, createPathEditingOverlayLayer, createPathLayer, createPenPreviewLayer, createReorderOp, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetDataOp, createSetLayerOp, createSetPathOp, createSetTextOp, createTextLayer, createViewportLayer, cycleVertexColors, decomposePath, decomposeRectPose, defaultCommitAdapter, defaultDrawOne, defaultLabelTextRenderer, defaultNodeProperties, defaultNodeRouting, defaultVisibilityRules, deriveAlignmentGuides, deriveParallaxView, describeRule, domPositionToCharOffset, domToRuns, drawLayers, 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, enterTextEditAction, enumerateAnchors, evaluate, evaluateEnabled, findNodeShape, findShapeSilhouette, fitTextPose, fitToBounds, fitViewToBounds, fitZoom, focused, fontString, forEachCoalesced, freeform, gateLayer, gesturing, getAlpha01, getImageBitmap, getNodeShapes, getStylusData, hexToRgba, hitAnchor, hitRotationHandle, hovering, hoveringSelected, imageStatus, inferredNodeProperties, inferredNodeRouting, insertAction, isCanvasFont2 as isCanvasFont, isEditableTarget, lassoSelectAction, layoutMarkdown, lerpColorArray, lerpOklab, lerpOklch, linear, makeViewportZoomAction, markdownToRuns, matchAlignment, matchesKeyBinding, 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, pathSubtract, pathToAnchors, pathUnion, pickTopMostHit, pinchZoomAction, planPixelRender, pointInRotatedRect, pointInTextPose, poseRotationOf, pressureToWidth, rainbowVertexColors, rebaseLocalPose, rectCorners, registerCanvasFont2 as registerCanvasFont, registerContentHandler, registerFont2 as registerFont, registerNodeShape, renderLabel, renderSceneToCanvas, renderSceneToPixels, resizeAction, resolveColor, resolveRuns, resolveTextStyle, resolveVisibility, rgbaToHex, rotateAction, rotateAroundAABBCenter, rotatePathAround, rotatePoint, rotatedRectCorners, rotationDegreesUnit, rotationHandle, roundToCell, runsToDom, runsToMarkdown, runsToPlainText, sceneFromJSON, sceneNodeClientRect, sceneToAdapter, screenToWorld, selectFromLasso, selectionAtLeast, selectionEmpty, selectionIs, sliceAction, snapPoint, solidVertexColors, specificity, spiro, splitPathByLine, splitSubpaths, springPose, springVertexColors, srgbU8ToOklab, staggerVertexColors, startThresholdDrag, styleAtRange, subscribeGlyphReady2 as subscribeGlyphReady, subscribeImageReady, textCommand, tileGrid, toHex8, toRuns, translatePoseViaDescriptor, translateRectPose, tweenPose, tweenVertexColors, unionBounds, unionBoundsPath, unregisterCanvasFont2 as unregisterCanvasFont, useAction, useActionsRegistry, useActiveToolContext, useAlign, useAnimator, useArrayAdapter, useAutoCenter, useBooleans, useBooleansAdapter, useCanvasFocus, useCanvasSize, useDecayLoop, useDepRegistry, useDepSource, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEllipseTool, useEyedropperTool, useGestureDispatcher, useGridCellHover, useGuides, useHandTool, useHandleDrag, useHoverTracking, useImageTool, useKeybindings, useLassoTool, useLineTool, useOptionalActiveToolContext, useOptionalDepRegistry, usePenTool, usePencilTool, usePinchGesture, usePinchZoomTool, usePointerStylus, usePolygonTool, usePublishSelection, useRectTool, useResizePolicy, useRotateTool, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSelectionContext, useSimulation, useSliceDep, useStandardActions, useStarTool, useTextEdit, useTextTool, useTools, useVelocityTracker, useViewAnimation, useViewTween, useZoom, verticalAlignOffset, viewToMat3, viewToTransform, viewportDragPanAction, viewportZoomAction, when, withAlpha01, withCoord, worldEditToStorage, worldPoseLookup, worldToScreen, zoomAt, zoomAtLeast } from './chunk-7F3SDUJ4.js';
2
- export { routing_exports as routing } from './chunk-FSZEXVCR.js';
1
+ export { ALWAYS, ActionDisabledReason, ActionsProvider, ActionsProviderIfRoot, ActiveToolContextProvider, ActiveToolContextProviderIfRoot, BUNDLE_TOOLS, CURVE_REPS, ColorOverrideRegistry, CropIcon, CursorCoordsHud, DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_DEBUG_THEME, DEFAULT_FILL_COLOR, DEFAULT_HANDLE_SIZE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_STYLE, DEFAULT_VELOCITY_DECAY, DepRegistryProvider, DepRegistryProviderIfRoot, DivideIcon, EASINGS, EllipseIcon, ExcludeIcon, EyedropperIcon, FALLBACK_FIT_VIEW, GHOST_STROKE, HandIcon, IDENTITY_POSE_COMPOSITION, IntersectIcon, KIT_SHAPE_KINDS, LassoIcon, LineIcon, MIXED, MOVE_ANCHORS, MinimapCanvas, NEVER, PATH_ANCHOR_CHROME_ID, PenIcon, PencilIcon, PickHud, PointerProviderIfRoot, PolygonIcon, RECT_ALIGN_PROJECTION, RectIcon, SPRING_PRESETS, SceneCanvas, SceneViewCanvas, SelectIcon, SelectionContextProvider, SelectionContextProviderIfRoot, StarIcon, SubtractIcon, TextIcon, UnionIcon, UnknownIcon, VERSION, WeaselProvider, aabbCenter, actionIs, alignDeltaFor, alignInsertBehavior, alignMoveBehavior, alignResizeBehavior, alignedStrokeRect, always, and, animateLifecycle, animateOnSetPose, annulusSemiAxes, applyBooleanOp, applyHitExistingGate, applyStyleToRange, areaSelectAction, arrayAdapter, asNodeId, bezierCubic, bezierQuadratic, buildChromeCtx, buildRuleCtx, buildSceneViewCommands, canBringForward, canQueryLocalFonts2 as canQueryLocalFonts, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, caretIndexAt, cellAt, charOffsetToDomPosition, clampView, clearSelectionAction, clientToCanvas, cloneAction, composeAffordanceLayer, composePath, composeRectPose, composeSelectionPose, composeWorldPose, computeFitView, computeIndicatorCommand, computeWheelAction, cond, constrainTo45, containedThenNearest, countPathAnchors, createCellHighlightLayer, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDispatcher, createGridLayer, createGuidesLayer, createHistory, createMarkdownRenderer, createMoveToIndexOp, createNodeProperties, createNodeRouting, createParallaxLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathLayer, createPenPreviewLayer, createReorderOp, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetDataOp, createSetLayerOp, createSetPathOp, createSetTextOp, createTextLayer, createViewportLayer, cycleVertexColors, decomposePath, decomposeRectPose, defaultCommitAdapter, defaultDrawOne, defaultLabelTextRenderer, defaultNodeProperties, defaultNodeRouting, defaultVisibilityRules, deriveAlignmentGuides, deriveParallaxView, describeRule, domPositionToCharOffset, domToRuns, drawLayers, 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, enableLocalFontOutlines2 as enableLocalFontOutlines, enterTextEditAction, enumerateAnchors, evaluate, evaluateEnabled, findNodeShape, findShapeInk, findShapeSilhouette, fitTextPose, fitToBounds, fitViewToBounds, fitZoom, focused, fontString, forEachCoalesced, freeform, gateLayer, gesturing, getAlpha01, getImageBitmap, getNodeShapes, getStylusData, hasFontOutlines2 as hasFontOutlines, hexToRgba, hitAffordanceRegions, hitAnchor, hitRotationHandle, hovering, hoveringSelected, imageStatus, inferredNodeProperties, inferredNodeRouting, insertAction, isCanvasFont2 as isCanvasFont, isEditableTarget, lassoSelectAction, layoutMarkdown, lerpColorArray, lerpOklab, lerpOklch, linear, listFontOutlines2 as listFontOutlines, makeViewportZoomAction, markdownToRuns, matchAlignment, matchesKeyBinding, measureText, measureTextBounds, measuredWidth, mergeAlphaFromPrev, modeIn, modeIs, modeNot, modifierHeld, momentum, moveAction, multiActive, nearest, nearestWithin, nestedHitTester, never, none, normalizeHex, not, nurbs, oklabToOklch, oklabToSrgbU8, oklchToOklab, openFilePicker, or, outlineStatus2 as outlineStatus, parseColor, parseColorToRgba255, parseDebugFlags, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathDistanceToPoint, pathDivide, pathExclude, pathFromD, pathInPoseFrame, pathInWorld, pathIntersect, pathIntersectsPolygon, pathIntersectsRect, pathOriginProjection, pathSubtract, pathToAnchors, pathUnion, pickTopMostHit, pinchZoomAction, planPixelRender, pointInRotatedRect, pointInTextPose, poseRotationOf, pressureToWidth, rainbowVertexColors, rebaseLocalPose, rectCorners, registerCanvasFont2 as registerCanvasFont, registerContentHandler, registerFont2 as registerFont, registerFontOutlines2 as registerFontOutlines, registerNodeShape, renderLabel, renderSceneToCanvas, renderSceneToPixels, resizeAction, resolveColor, resolveRuns, resolveTextStyle, resolveVisibility, rgbaToHex, rotateAction, rotateAroundAABBCenter, rotatePathAround, rotatePoint, rotatedRectCorners, rotationDegreesUnit, rotationHandle, roundToCell, runsToDom, runsToMarkdown, runsToPlainText, sceneFromJSON, sceneNodeClientRect, sceneToAdapter, screenToWorld, selectFromLasso, selectionAtLeast, selectionEmpty, selectionIs, shapeCoversPoint, sliceAction, snapPoint, solidVertexColors, specificity, spiro, splitPathByLine, splitSubpaths, springPose, springVertexColors, srgbU8ToOklab, staggerVertexColors, startThresholdDrag, styleAtRange, subscribeGlyphReady2 as subscribeGlyphReady, subscribeImageReady, textCommand, textLineBoxes, tileGrid, toHex8, toRuns, translatePoseViaDescriptor, translateRectPose, tweenPose, tweenVertexColors, unionBounds, unionBoundsPath, unregisterCanvasFont2 as unregisterCanvasFont, unregisterFontOutlines2 as unregisterFontOutlines, useAction, useActionsRegistry, useActiveToolContext, useAlign, useAnimator, useArrayAdapter, useAutoCenter, useBooleans, useBooleansAdapter, useCanvasFocus, useCanvasSize, useDecayLoop, useDepRegistry, useDepSource, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEllipseTool, useEyedropperTool, useGestureDispatcher, useGridCellHover, useGuides, useHandTool, useHandleDrag, useHoverTracking, useImageTool, useKeybindings, useLassoTool, useLineTool, useOptionalActiveToolContext, useOptionalDepRegistry, usePenTool, usePencilTool, usePinchGesture, usePinchZoomTool, usePointerStylus, usePolygonTool, usePublishSelection, useRectTool, useResizePolicy, useRotateTool, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSelectionContext, useSimulation, useSliceDep, useStandardActions, useStarTool, useTextEdit, useTextTool, useTools, useVelocityTracker, useViewAnimation, useViewTween, useZoom, verticalAlignOffset, viewToMat3, viewToTransform, viewportDragPanAction, viewportZoomAction, when, withAlpha01, withCoord, worldEditToStorage, worldPoseLookup, worldToScreen, zoomAt, zoomAtLeast } from './chunk-2J6V527H.js';
2
+ export { routing_exports as routing } from './chunk-SYM6RAM4.js';
3
3
  export { createReparentOp, createTransformOp, deleteScratch, getScratch, scratchKey, setScratch, snap } from './chunk-VOVKONXA.js';
4
4
  export { CORNER_ANCHORS, cornerPoint, cornerResizeHandles, hitCornerHandle, pointSnapToGrid } from './chunk-BGGZ4CVF.js';
5
5
  export { DEFAULT_FLATTEN_TOLERANCE, DEFAULT_GUIDE_TOLERANCE_PX, IMPERIAL_INCHES, METRIC_MM, PATH_C, PATH_CMD_LENGTHS, PATH_L, PATH_M, PATH_Q, PATH_Z, PIXELS, PathBuilder, RECT_ORIGIN_PROJECTION, RECT_POSE_DESCRIPTOR, ROTATED_POSE_DESCRIPTOR, boundsOfPath, ellipsePath, flattenCubic, flattenCubicWithArcLen, flattenQuadratic, flattenQuadraticWithArcLen, formatUnit, gridSnapStrategy, guideSnapStrategy, linePath, meanScale, pathPoseDescriptor, pointInPath, pointToGridCell, polygonFromPoints, rectPath, regularPolygonPath, resolveUnit, scalePathToBounds, starPath, transformPath, translatePath, translatePolygonInPlace } from './chunk-CQNKCG34.js';