@weasel-js/core 1.13.0-rc.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","names":[],"sources":["../../../src/core/layers/render.ts"],"sourcesContent":["import { viewToMat3, type DrawCommand } from '@weasel-js/renderer';\nimport type { Effect } from '@weasel-js/renderer';\nimport type { View } from 'core/viewport/view';\nimport { groupMembership, wrapGroup, type LayerGroup } from './layerGroup';\nimport { DEFAULT_LAYER_RETAIN, retainedId, type LayerRetainPolicy } from './retain';\nimport type { RedrawSource } from './redrawSource';\n\nexport type { LayerGroup, LayerRetainPolicy };\nexport { DEFAULT_LAYER_RETAIN };\nexport { subscribeToSources, type RedrawSource } from './redrawSource';\n\nconst IDENTITY_VIEW: View = { x: 0, y: 0, scale: { x: 1, y: 1 } };\n\n/** Canvas size in CSS pixels, so layers don't have to know about DPR. */\nexport interface Dims {\n width: number;\n height: number;\n}\n\n/**\n * What a layer's `draw` threw, and which layer threw it. A throw that escaped\n * the frame loop would take the whole frame with it, every other layer\n * included.\n */\nexport interface LayerDrawFailure {\n layerId: string;\n error: unknown;\n}\n\n/** Default report: name the layer, keep the frame. */\nfunction reportLayerFailure({ layerId, error }: LayerDrawFailure): void {\n console.error(\n `[weasel] layer \"${layerId}\" threw while drawing; it painted nothing this frame.`,\n error,\n );\n}\n\n/** One layer's memoized output, keyed by layer id. Owned by the canvas that\n * calls `drawLayers`, not by `drawLayers` itself — the function is pure. */\nexport type LayerCommandCache = Map<\n string,\n {\n deps: readonly unknown[];\n cmds: DrawCommand[];\n /** Whether the last frame served `cmds` from here rather than drawing. */\n reused?: boolean;\n /** The view the last frame drew under. */\n view?: View;\n }\n>;\n\n/**\n * One layer of a canvas: `draw` turns `data` and the view into draw commands;\n * the other fields control caching, visibility, coordinate space and hit-testing.\n *\n * @template TData - The data object passed to each draw call.\n */\nexport interface RenderLayer<TData> {\n /** Unique identifier used in visibility maps and ordering arrays. When a\n * cache is in use, an id must identify the same logical layer across\n * frames — reusing it for a different layer can serve cross-layer commands. */\n id: string;\n /** Human-readable name for UI toggles. */\n label: string;\n /**\n * Emit a DrawCommand tree, in the coordinates `space` names. A world-space\n * layer must NOT apply the view transform itself.\n */\n draw: (data: TData, view: View, dims: Dims) => DrawCommand[];\n /**\n * Optional cache key. When present and a `LayerCommandCache` is supplied to\n * `drawLayers`, the layer's previous `DrawCommand[]` is reused as long as\n * every entry is `Object.is`-equal to the previous call's. A layer with no\n * `deps` rebuilds on every frame.\n *\n * **The returned commands must be treated as immutable.** A cached tree is\n * handed to the renderer again on later frames, so mutating a tree you\n * previously returned corrupts the cache silently rather than erroring.\n *\n * **Screen-space layers are not protected against a stale `view`/`dims`\n * the way world-space layers are** (see `space` below) — include them in\n * `deps` if `draw` reads them.\n */\n deps?: (data: TData, view: View, dims: Dims) => readonly unknown[];\n /** Whether the layer is shown when no explicit visibility entry exists.\n * Defaults to `true` when absent. */\n defaultVisible?: boolean;\n /** When true, the layer is always drawn regardless of the visibility map. */\n alwaysOn?: boolean;\n /**\n * Coordinate space the layer draws in.\n *\n * - `'world'` (default): the layer's `draw` returns world-space commands;\n * `drawLayers` wraps them in a `kind: 'group'` with `viewToMat3(view)`\n * automatically.\n * - `'screen'`: the layer's `draw` returns screen-space (CSS-pixel)\n * commands; `drawLayers` passes them through unchanged. World-anchored\n * chrome inside a screen-space layer must call `worldToScreen` or wrap\n * the relevant subset with `viewToMat3(view)` manually.\n */\n space?: 'world' | 'screen';\n /**\n * Where the layer learns that state `draw` reads, outside the scene and the\n * props, has changed. The canvas painting it subscribes while the layer is\n * mounted and repaints on every notification.\n */\n subscribe?: RedrawSource['subscribe'];\n /**\n * Full-screen passes run over this layer's own pixels before it joins the\n * frame. See `GroupDrawCommand.effects` for what a pass may read, and\n * {@link LayerGroup} to run one chain over several layers at once.\n */\n effects?: readonly Effect[];\n /**\n * Whether the renderer may keep this layer's pixels between frames and\n * composite them as one quad instead of drawing its commands again — see\n * {@link LayerRetainPolicy} for when `drawLayers` does. `false` never\n * retains it, `true` retains it whatever its size; either way only a layer\n * with `deps`, drawn through a cache, and without `effects`.\n */\n retain?: boolean;\n /**\n * Optional hit-test for **consumer-attached** layers.\n *\n * Only layers registered through `CanvasExtensionApi.registerLayer` are\n * hit-tested, last-registered-first, ahead of the kit's own selection\n * chrome. First non-null result wins; null means \"I don't claim this hit,\n * try the next layer.\"\n *\n * Layers that reach the draw stack some other way — a `Tool.overlay`, an\n * entry in the `layers` map — are painted but never hit-tested, so defining\n * `hitTest` on one has no effect.\n *\n * Coordinates are world-space.\n */\n hitTest?: (\n worldX: number,\n worldY: number,\n data: TData,\n view: View,\n dims: Dims,\n /** Chrome-caps visibility predicate. When supplied, the layer must\n * not return a hit from any chrome element whose id reports\n * `false`. Absent → every element is hittable. */\n isVisible?: (id: string) => boolean,\n ) => import('../../affordances/types').LayerHit | null;\n /**\n * Called on every pointermove when no gesture is currently captured, so a\n * layer can track hover state. Coords are world-space, and the layer does\n * its own throttling.\n */\n onUncapturedMove?: (\n worldX: number,\n worldY: number,\n evt: PointerEvent,\n view: View,\n dims: Dims,\n ) => void;\n /** Called when the cursor leaves the canvas element. */\n onUncapturedLeave?: () => void;\n}\n\n/** Where one layer's commands landed in {@link drawLayers}' output,\n * `[start, end)`, and the CPU milliseconds its `draw` took. A layer group's\n * run is one span under the group's id. */\nexport interface LayerDrawSpan {\n id: string;\n start: number;\n end: number;\n buildMs: number;\n}\n\nfunction clockMs(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\n\n/**\n * Walk visible layers and concatenate their emitted DrawCommand arrays into\n * one flat list, ready to feed to `WeaselRenderer.render(commands)`.\n *\n * A layer whose `draw` throws is dropped for the frame and reported through\n * `onLayerError` — the rest of the frame still paints.\n *\n * `groups` brackets runs of consecutive layers so they composite as one — see\n * `LayerGroup`. `spans`, when passed, receives one {@link LayerDrawSpan} per\n * layer drawn. `retain` decides which unchanged layers the renderer keeps\n * as pixels between frames; `false` keeps none.\n */\nexport function drawLayers<TData>(\n layers: RenderLayer<TData>[],\n data: TData,\n visibility: Record<string, boolean>,\n order: string[] | undefined,\n view: View | undefined,\n dims: Dims,\n cache?: LayerCommandCache,\n onLayerError: (failure: LayerDrawFailure) => void = reportLayerFailure,\n groups?: readonly LayerGroup[],\n spans?: LayerDrawSpan[],\n retain: LayerRetainPolicy | false = DEFAULT_LAYER_RETAIN,\n): DrawCommand[] {\n const layerById = new Map(layers.map((l) => [l.id, l]));\n const v = view ?? IDENTITY_VIEW;\n const out: DrawCommand[] = [];\n\n if (cache) {\n for (const id of [...cache.keys()]) {\n if (!layerById.has(id)) cache.delete(id);\n }\n }\n\n const groupOf = groupMembership(groups, layerById.keys());\n const bracketed = new Set<LayerGroup>();\n let run: { group: LayerGroup; children: DrawCommand[]; buildMs: number } | null = null;\n\n const closeRun = () => {\n if (!run) return;\n const start = out.length;\n const t0 = spans ? clockMs() : 0;\n for (const c of wrapGroup(run.group, run.children, v, dims)) out.push(c);\n spans?.push({ id: run.group.id, start, end: out.length, buildMs: run.buildMs + clockMs() - t0 });\n run = null;\n };\n\n for (const layer of paintedLayers(layers, visibility, order)) {\n const t0 = spans ? clockMs() : 0;\n const cmds = drawLayerOnce(layer, data, v, dims, cache, onLayerError, retain);\n const buildMs = spans ? clockMs() - t0 : 0;\n // A layer that painted nothing neither joins a run nor breaks one.\n if (cmds.length === 0) {\n spans?.push({ id: layer.id, start: out.length, end: out.length, buildMs });\n continue;\n }\n\n const group = groupOf?.get(layer.id);\n if (run && run.group !== group) closeRun();\n if (!group) {\n const start = out.length;\n for (const c of cmds) out.push(c);\n spans?.push({ id: layer.id, start, end: out.length, buildMs });\n continue;\n }\n if (!run) {\n if (bracketed.has(group)) {\n console.warn(\n `[weasel] layer group \"${group.id}\" is not one run — another layer is drawn ` +\n 'between its members, so it composites as more than one pass over more than ' +\n 'one buffer. Move its members together in the layer order.',\n );\n }\n bracketed.add(group);\n run = { group, children: [], buildMs: 0 };\n }\n run.buildMs += buildMs;\n for (const c of cmds) run.children.push(c);\n }\n closeRun();\n\n return out;\n}\n\n/**\n * Resolve one layer's visibility: `alwaysOn` wins, then an explicit entry in\n * `visibility`, then `defaultVisible`, defaulting to shown.\n */\nexport function isLayerVisible<TData>(\n layer: RenderLayer<TData>,\n visibility: Record<string, boolean>,\n): boolean {\n if (layer.alwaysOn) return true;\n if (layer.id in visibility) return visibility[layer.id]!;\n return layer.defaultVisible ?? true;\n}\n\n/**\n * Does this layer reach the screen at all — membership of\n * {@link paintedLayers}, asked of one layer.\n *\n * **A listed `order` is the whole list**, so omission from it drops a layer\n * that `visibility` would have shown, and `alwaysOn` does not rescue it.\n * Hit-testing asks this, not `isLayerVisible`.\n */\nexport function isLayerPainted<TData>(\n layer: RenderLayer<TData>,\n visibility: Record<string, boolean>,\n order: readonly string[] | undefined,\n): boolean {\n if (order && !order.includes(layer.id)) return false;\n return isLayerVisible(layer, visibility);\n}\n\n/**\n * The layers that reach the screen, in the order they are drawn: `order`\n * sequences them and drops what it leaves out, then `visibility` drops what is\n * hidden. What `drawLayers` paints, and what a view narrows its stack with.\n */\nexport function paintedLayers<TData>(\n layers: readonly RenderLayer<TData>[],\n visibility: Record<string, boolean>,\n order: readonly string[] | undefined,\n): RenderLayer<TData>[] {\n if (!order) return layers.filter((l) => isLayerVisible(l, visibility));\n const byId = new Map(layers.map((l) => [l.id, l]));\n return order\n .map((id) => byId.get(id))\n .filter((l): l is RenderLayer<TData> => l !== undefined && isLayerVisible(l, visibility));\n}\n\n/**\n * Draw one layer and put its commands in the space its `space` declares:\n * world-space output wrapped in a `viewToMat3(view)` group, screen-space\n * output passed through.\n *\n * Anything rendering layers through a view goes through here.\n *\n * A `draw` that throws yields no commands, and `onLayerError` is told which\n * layer it was. The layer's cache entry goes with it, so the next frame is a\n * real re-attempt.\n */\nexport function drawOneLayer<TData>(\n layer: RenderLayer<TData>,\n data: TData,\n view: View,\n dims: Dims,\n cache?: LayerCommandCache,\n onLayerError: (failure: LayerDrawFailure) => void = reportLayerFailure,\n): DrawCommand[] {\n return drawLayerOnce(layer, data, view, dims, cache, onLayerError, false);\n}\n\nfunction drawLayerOnce<TData>(\n layer: RenderLayer<TData>,\n data: TData,\n view: View,\n dims: Dims,\n cache: LayerCommandCache | undefined,\n onLayerError: (failure: LayerDrawFailure) => void,\n retain: LayerRetainPolicy | false,\n): DrawCommand[] {\n let cmds: DrawCommand[];\n try {\n cmds = layerCommands(layer, data, view, dims, cache);\n } catch (error) {\n cache?.delete(layer.id);\n onLayerError({ layerId: layer.id, error });\n return [];\n }\n if (cmds.length === 0) return [];\n const effects = layer.effects && layer.effects.length > 0 ? layer.effects : undefined;\n const kept = retain && !effects && cache ? retainedId(layer, cache, view, retain) : undefined;\n const marked = kept ? { retain: kept } : {};\n if ((layer.space ?? 'world') === 'screen') {\n if (effects) return [{ kind: 'group', effects, children: cmds }];\n return kept ? [{ kind: 'group', ...marked, children: cmds }] : cmds;\n }\n return [{ kind: 'group', transform: viewToMat3(view), ...(effects ? { effects } : {}), ...marked, children: cmds }];\n}\n\n/**\n * One layer's own commands, from cache when its deps are unchanged.\n *\n * What is cached is the layer's raw output, before the space wrap above. The\n * wrap is a function of `view`, and a layer whose content does not depend on\n * the camera is entitled to leave `view` out of its deps — caching the wrapped\n * group would then serve a stale transform the moment the camera moved.\n */\nfunction layerCommands<TData>(\n layer: RenderLayer<TData>,\n data: TData,\n view: View,\n dims: Dims,\n cache: LayerCommandCache | undefined,\n): DrawCommand[] {\n if (!cache || !layer.deps) return layer.draw(data, view, dims);\n\n const deps = layer.deps(data, view, dims);\n const entry = cache.get(layer.id);\n if (entry && depsUnchanged(entry.deps, deps)) {\n entry.reused = true;\n return entry.cmds;\n }\n\n const cmds = layer.draw(data, view, dims);\n cache.set(layer.id, { deps, cmds, reused: false, view: entry?.view });\n return cmds;\n}\n\n/** Whether `b` matches `a` entry for entry under `Object.is` — how\n * `RenderLayer.deps` is compared, and any cache keyed the same way. */\nexport function depsUnchanged(a: readonly unknown[], b: readonly unknown[]): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!Object.is(a[i], b[i])) return false;\n }\n return true;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"render.js","names":[],"sources":["../../../src/core/layers/render.ts"],"sourcesContent":["import { viewToMat3, type DrawCommand } from '@weasel-js/renderer';\nimport type { Effect } from '@weasel-js/renderer';\nimport type { View } from 'core/viewport/view';\nimport { groupMembership, wrapGroup, type LayerGroup } from './layerGroup';\nimport { DEFAULT_LAYER_RETAIN, retainedId, type LayerRetainPolicy } from './retain';\nimport type { RedrawSource } from './redrawSource';\nimport type { Dims, LayerDims } from './dims';\n\nexport type { Dims, LayerDims, LayerGroup, LayerRetainPolicy };\nexport { DEFAULT_LAYER_RETAIN };\nexport { subscribeToSources, type RedrawSource } from './redrawSource';\n\nconst IDENTITY_VIEW: View = { x: 0, y: 0, scale: { x: 1, y: 1 } };\n\n/**\n * What a layer's `draw` threw, and which layer threw it. A throw that escaped\n * the frame loop would take the whole frame with it, every other layer\n * included.\n */\nexport interface LayerDrawFailure {\n layerId: string;\n error: unknown;\n}\n\n/** Default report: name the layer, keep the frame. */\nfunction reportLayerFailure({ layerId, error }: LayerDrawFailure): void {\n console.error(\n `[weasel] layer \"${layerId}\" threw while drawing; it painted nothing this frame.`,\n error,\n );\n}\n\n/** One layer's memoized output, keyed by layer id. Owned by the canvas that\n * calls `drawLayers`, not by `drawLayers` itself — the function is pure. */\nexport type LayerCommandCache = Map<\n string,\n {\n deps: readonly unknown[];\n cmds: DrawCommand[];\n /** Whether the last frame served `cmds` from here rather than drawing. */\n reused?: boolean;\n /** The view the last frame drew under. */\n view?: View;\n }\n>;\n\n/**\n * One layer of a canvas: `draw` turns `data` and the view into draw commands;\n * the other fields control caching, visibility, coordinate space and hit-testing.\n *\n * @template TData - The data object passed to each draw call.\n */\nexport interface RenderLayer<TData> {\n /** Unique identifier used in visibility maps and ordering arrays. When a\n * cache is in use, an id must identify the same logical layer across\n * frames — reusing it for a different layer can serve cross-layer commands. */\n id: string;\n /** Human-readable name for UI toggles. */\n label: string;\n /**\n * Emit a DrawCommand tree, in the coordinates `space` names. A world-space\n * layer must NOT apply the view transform itself.\n */\n draw: (data: TData, view: View, dims: LayerDims) => DrawCommand[];\n /**\n * Optional cache key. When present and a `LayerCommandCache` is supplied to\n * `drawLayers`, the layer's previous `DrawCommand[]` is reused as long as\n * every entry is `Object.is`-equal to the previous call's. A layer with no\n * `deps` rebuilds on every frame.\n *\n * **The returned commands must be treated as immutable.** A cached tree is\n * handed to the renderer again on later frames, so mutating a tree you\n * previously returned corrupts the cache silently rather than erroring.\n *\n * **Screen-space layers are not protected against a stale `view`/`dims`\n * the way world-space layers are** (see `space` below) — include them in\n * `deps` if `draw` reads them.\n */\n deps?: (data: TData, view: View, dims: LayerDims) => readonly unknown[];\n /** Whether the layer is shown when no explicit visibility entry exists.\n * Defaults to `true` when absent. */\n defaultVisible?: boolean;\n /** When true, the layer is always drawn regardless of the visibility map. */\n alwaysOn?: boolean;\n /**\n * Coordinate space the layer draws in.\n *\n * - `'world'` (default): the layer's `draw` returns world-space commands;\n * `drawLayers` wraps them in a `kind: 'group'` with `viewToMat3(view)`\n * automatically.\n * - `'screen'`: the layer's `draw` returns screen-space (CSS-pixel)\n * commands; `drawLayers` passes them through unchanged. World-anchored\n * chrome inside a screen-space layer must call `worldToScreen` or wrap\n * the relevant subset with `viewToMat3(view)` manually.\n */\n space?: 'world' | 'screen';\n /**\n * Where the layer learns that state `draw` reads, outside the scene and the\n * props, has changed. The canvas painting it subscribes while the layer is\n * mounted and repaints on every notification.\n */\n subscribe?: RedrawSource['subscribe'];\n /**\n * Full-screen passes run over this layer's own pixels before it joins the\n * frame. See `GroupDrawCommand.effects` for what a pass may read, and\n * {@link LayerGroup} to run one chain over several layers at once.\n */\n effects?: readonly Effect[];\n /**\n * Whether the renderer may keep this layer's pixels between frames and\n * composite them as one quad instead of drawing its commands again — see\n * {@link LayerRetainPolicy} for when `drawLayers` does. `false` never\n * retains it, `true` retains it whatever its size; either way only a layer\n * with `deps`, drawn through a cache, and without `effects`.\n */\n retain?: boolean;\n /**\n * Optional hit-test for **consumer-attached** layers.\n *\n * Only layers registered through `CanvasExtensionApi.registerLayer` are\n * hit-tested, last-registered-first, ahead of the kit's own selection\n * chrome. First non-null result wins; null means \"I don't claim this hit,\n * try the next layer.\"\n *\n * Layers that reach the draw stack some other way — a `Tool.overlay`, an\n * entry in the `layers` map — are painted but never hit-tested, so defining\n * `hitTest` on one has no effect.\n *\n * Coordinates are world-space.\n */\n hitTest?: (\n worldX: number,\n worldY: number,\n data: TData,\n view: View,\n dims: Dims,\n /** Chrome-caps visibility predicate. When supplied, the layer must\n * not return a hit from any chrome element whose id reports\n * `false`. Absent → every element is hittable. */\n isVisible?: (id: string) => boolean,\n ) => import('../../affordances/types').LayerHit | null;\n /**\n * Called on every pointermove when no gesture is currently captured, so a\n * layer can track hover state. Coords are world-space, and the layer does\n * its own throttling.\n */\n onUncapturedMove?: (\n worldX: number,\n worldY: number,\n evt: PointerEvent,\n view: View,\n dims: Dims,\n ) => void;\n /** Called when the cursor leaves the canvas element. */\n onUncapturedLeave?: () => void;\n}\n\n/** Where one layer's commands landed in {@link drawLayers}' output,\n * `[start, end)`, and the CPU milliseconds its `draw` took. A layer group's\n * run is one span under the group's id. */\nexport interface LayerDrawSpan {\n id: string;\n start: number;\n end: number;\n buildMs: number;\n}\n\nfunction clockMs(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\n\n/**\n * Walk visible layers and concatenate their emitted DrawCommand arrays into\n * one flat list, ready to feed to `WeaselRenderer.render(commands)`.\n *\n * A layer whose `draw` throws is dropped for the frame and reported through\n * `onLayerError` — the rest of the frame still paints.\n *\n * `groups` brackets runs of consecutive layers so they composite as one — see\n * `LayerGroup`. `spans`, when passed, receives one {@link LayerDrawSpan} per\n * layer drawn. `retain` decides which unchanged layers the renderer keeps\n * as pixels between frames; `false` keeps none.\n */\nexport function drawLayers<TData>(\n layers: RenderLayer<TData>[],\n data: TData,\n visibility: Record<string, boolean>,\n order: string[] | undefined,\n view: View | undefined,\n dims: LayerDims,\n cache?: LayerCommandCache,\n onLayerError: (failure: LayerDrawFailure) => void = reportLayerFailure,\n groups?: readonly LayerGroup[],\n spans?: LayerDrawSpan[],\n retain: LayerRetainPolicy | false = DEFAULT_LAYER_RETAIN,\n): DrawCommand[] {\n const layerById = new Map(layers.map((l) => [l.id, l]));\n const v = view ?? IDENTITY_VIEW;\n const out: DrawCommand[] = [];\n\n if (cache) {\n for (const id of [...cache.keys()]) {\n if (!layerById.has(id)) cache.delete(id);\n }\n }\n\n const groupOf = groupMembership(groups, layerById.keys());\n const bracketed = new Set<LayerGroup>();\n let run: { group: LayerGroup; children: DrawCommand[]; buildMs: number } | null = null;\n\n const closeRun = () => {\n if (!run) return;\n const start = out.length;\n const t0 = spans ? clockMs() : 0;\n for (const c of wrapGroup(run.group, run.children, v, dims)) out.push(c);\n spans?.push({ id: run.group.id, start, end: out.length, buildMs: run.buildMs + clockMs() - t0 });\n run = null;\n };\n\n for (const layer of paintedLayers(layers, visibility, order)) {\n const t0 = spans ? clockMs() : 0;\n const cmds = drawLayerOnce(layer, data, v, dims, cache, onLayerError, retain);\n const buildMs = spans ? clockMs() - t0 : 0;\n // A layer that painted nothing neither joins a run nor breaks one.\n if (cmds.length === 0) {\n spans?.push({ id: layer.id, start: out.length, end: out.length, buildMs });\n continue;\n }\n\n const group = groupOf?.get(layer.id);\n if (run && run.group !== group) closeRun();\n if (!group) {\n const start = out.length;\n for (const c of cmds) out.push(c);\n spans?.push({ id: layer.id, start, end: out.length, buildMs });\n continue;\n }\n if (!run) {\n if (bracketed.has(group)) {\n console.warn(\n `[weasel] layer group \"${group.id}\" is not one run — another layer is drawn ` +\n 'between its members, so it composites as more than one pass over more than ' +\n 'one buffer. Move its members together in the layer order.',\n );\n }\n bracketed.add(group);\n run = { group, children: [], buildMs: 0 };\n }\n run.buildMs += buildMs;\n for (const c of cmds) run.children.push(c);\n }\n closeRun();\n\n return out;\n}\n\n/**\n * Resolve one layer's visibility: `alwaysOn` wins, then an explicit entry in\n * `visibility`, then `defaultVisible`, defaulting to shown.\n */\nexport function isLayerVisible<TData>(\n layer: RenderLayer<TData>,\n visibility: Record<string, boolean>,\n): boolean {\n if (layer.alwaysOn) return true;\n if (layer.id in visibility) return visibility[layer.id]!;\n return layer.defaultVisible ?? true;\n}\n\n/**\n * Does this layer reach the screen at all — membership of\n * {@link paintedLayers}, asked of one layer.\n *\n * **A listed `order` is the whole list**, so omission from it drops a layer\n * that `visibility` would have shown, and `alwaysOn` does not rescue it.\n * Hit-testing asks this, not `isLayerVisible`.\n */\nexport function isLayerPainted<TData>(\n layer: RenderLayer<TData>,\n visibility: Record<string, boolean>,\n order: readonly string[] | undefined,\n): boolean {\n if (order && !order.includes(layer.id)) return false;\n return isLayerVisible(layer, visibility);\n}\n\n/**\n * The layers that reach the screen, in the order they are drawn: `order`\n * sequences them and drops what it leaves out, then `visibility` drops what is\n * hidden. What `drawLayers` paints, and what a view narrows its stack with.\n */\nexport function paintedLayers<TData>(\n layers: readonly RenderLayer<TData>[],\n visibility: Record<string, boolean>,\n order: readonly string[] | undefined,\n): RenderLayer<TData>[] {\n if (!order) return layers.filter((l) => isLayerVisible(l, visibility));\n const byId = new Map(layers.map((l) => [l.id, l]));\n return order\n .map((id) => byId.get(id))\n .filter((l): l is RenderLayer<TData> => l !== undefined && isLayerVisible(l, visibility));\n}\n\n/**\n * Draw one layer and put its commands in the space its `space` declares:\n * world-space output wrapped in a `viewToMat3(view)` group, screen-space\n * output passed through.\n *\n * Anything rendering layers through a view goes through here.\n *\n * A `draw` that throws yields no commands, and `onLayerError` is told which\n * layer it was. The layer's cache entry goes with it, so the next frame is a\n * real re-attempt.\n */\nexport function drawOneLayer<TData>(\n layer: RenderLayer<TData>,\n data: TData,\n view: View,\n dims: LayerDims,\n cache?: LayerCommandCache,\n onLayerError: (failure: LayerDrawFailure) => void = reportLayerFailure,\n): DrawCommand[] {\n return drawLayerOnce(layer, data, view, dims, cache, onLayerError, false);\n}\n\nfunction drawLayerOnce<TData>(\n layer: RenderLayer<TData>,\n data: TData,\n view: View,\n dims: LayerDims,\n cache: LayerCommandCache | undefined,\n onLayerError: (failure: LayerDrawFailure) => void,\n retain: LayerRetainPolicy | false,\n): DrawCommand[] {\n let cmds: DrawCommand[];\n try {\n cmds = layerCommands(layer, data, view, dims, cache);\n } catch (error) {\n cache?.delete(layer.id);\n onLayerError({ layerId: layer.id, error });\n return [];\n }\n if (cmds.length === 0) return [];\n const effects = layer.effects && layer.effects.length > 0 ? layer.effects : undefined;\n const kept = retain && !effects && cache ? retainedId(layer, cache, view, retain) : undefined;\n const marked = kept ? { retain: kept } : {};\n if ((layer.space ?? 'world') === 'screen') {\n if (effects) return [{ kind: 'group', effects, children: cmds }];\n return kept ? [{ kind: 'group', ...marked, children: cmds }] : cmds;\n }\n return [{ kind: 'group', transform: viewToMat3(view), ...(effects ? { effects } : {}), ...marked, children: cmds }];\n}\n\n/**\n * One layer's own commands, from cache when its deps are unchanged.\n *\n * What is cached is the layer's raw output, before the space wrap above. The\n * wrap is a function of `view`, and a layer whose content does not depend on\n * the camera is entitled to leave `view` out of its deps — caching the wrapped\n * group would then serve a stale transform the moment the camera moved.\n */\nfunction layerCommands<TData>(\n layer: RenderLayer<TData>,\n data: TData,\n view: View,\n dims: LayerDims,\n cache: LayerCommandCache | undefined,\n): DrawCommand[] {\n if (!cache || !layer.deps) return layer.draw(data, view, dims);\n\n const deps = layer.deps(data, view, dims);\n const entry = cache.get(layer.id);\n if (entry && depsUnchanged(entry.deps, deps)) {\n entry.reused = true;\n return entry.cmds;\n }\n\n const cmds = layer.draw(data, view, dims);\n cache.set(layer.id, { deps, cmds, reused: false, view: entry?.view });\n return cmds;\n}\n\n/** Whether `b` matches `a` entry for entry under `Object.is` — how\n * `RenderLayer.deps` is compared, and any cache keyed the same way. */\nexport function depsUnchanged(a: readonly unknown[], b: readonly unknown[]): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!Object.is(a[i], b[i])) return false;\n }\n return true;\n}\n"],"mappings":"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"}
@@ -805,11 +805,17 @@ declare function subscribeToSources(sources: readonly {
805
805
  subscribe?: RedrawSource['subscribe'];
806
806
  }[])): RedrawSource['subscribe'];
807
807
 
808
- /** Canvas size in CSS pixels, so layers don't have to know about DPR. */
808
+ /** Canvas size in CSS pixels. */
809
809
  interface Dims {
810
810
  width: number;
811
811
  height: number;
812
812
  }
813
+ /** What a layer draws into: its size, and the device pixels to the CSS pixel
814
+ * the frame is painted at, which is what an effect's reach is measured in. */
815
+ interface LayerDims extends Dims {
816
+ dpr: number;
817
+ }
818
+
813
819
  /**
814
820
  * What a layer's `draw` threw, and which layer threw it. A throw that escaped
815
821
  * the frame loop would take the whole frame with it, every other layer
@@ -846,7 +852,7 @@ interface RenderLayer<TData> {
846
852
  * Emit a DrawCommand tree, in the coordinates `space` names. A world-space
847
853
  * layer must NOT apply the view transform itself.
848
854
  */
849
- draw: (data: TData, view: View, dims: Dims) => DrawCommand[];
855
+ draw: (data: TData, view: View, dims: LayerDims) => DrawCommand[];
850
856
  /**
851
857
  * Optional cache key. When present and a `LayerCommandCache` is supplied to
852
858
  * `drawLayers`, the layer's previous `DrawCommand[]` is reused as long as
@@ -861,7 +867,7 @@ interface RenderLayer<TData> {
861
867
  * the way world-space layers are** (see `space` below) — include them in
862
868
  * `deps` if `draw` reads them.
863
869
  */
864
- deps?: (data: TData, view: View, dims: Dims) => readonly unknown[];
870
+ deps?: (data: TData, view: View, dims: LayerDims) => readonly unknown[];
865
871
  /** Whether the layer is shown when no explicit visibility entry exists.
866
872
  * Defaults to `true` when absent. */
867
873
  defaultVisible?: boolean;
@@ -948,7 +954,7 @@ interface LayerDrawSpan {
948
954
  * layer drawn. `retain` decides which unchanged layers the renderer keeps
949
955
  * as pixels between frames; `false` keeps none.
950
956
  */
951
- declare function drawLayers<TData>(layers: RenderLayer<TData>[], data: TData, visibility: Record<string, boolean>, order: string[] | undefined, view: View | undefined, dims: Dims, cache?: LayerCommandCache, onLayerError?: (failure: LayerDrawFailure) => void, groups?: readonly LayerGroup[], spans?: LayerDrawSpan[], retain?: LayerRetainPolicy | false): DrawCommand[];
957
+ declare function drawLayers<TData>(layers: RenderLayer<TData>[], data: TData, visibility: Record<string, boolean>, order: string[] | undefined, view: View | undefined, dims: LayerDims, cache?: LayerCommandCache, onLayerError?: (failure: LayerDrawFailure) => void, groups?: readonly LayerGroup[], spans?: LayerDrawSpan[], retain?: LayerRetainPolicy | false): DrawCommand[];
952
958
  /**
953
959
  * Resolve one layer's visibility: `alwaysOn` wins, then an explicit entry in
954
960
  * `visibility`, then `defaultVisible`, defaulting to shown.
@@ -980,7 +986,7 @@ declare function paintedLayers<TData>(layers: readonly RenderLayer<TData>[], vis
980
986
  * layer it was. The layer's cache entry goes with it, so the next frame is a
981
987
  * real re-attempt.
982
988
  */
983
- declare function drawOneLayer<TData>(layer: RenderLayer<TData>, data: TData, view: View, dims: Dims, cache?: LayerCommandCache, onLayerError?: (failure: LayerDrawFailure) => void): DrawCommand[];
989
+ declare function drawOneLayer<TData>(layer: RenderLayer<TData>, data: TData, view: View, dims: LayerDims, cache?: LayerCommandCache, onLayerError?: (failure: LayerDrawFailure) => void): DrawCommand[];
984
990
  /** Whether `b` matches `a` entry for entry under `Object.is` — how
985
991
  * `RenderLayer.deps` is compared, and any cache keyed the same way. */
986
992
  declare function depsUnchanged(a: readonly unknown[], b: readonly unknown[]): boolean;
@@ -2821,4 +2827,4 @@ declare module '@weasel-js/routing' {
2821
2827
  }
2822
2828
  }
2823
2829
 
2824
- export { type SnapProbeAt as $, type AnchorMarkerShape as A, type PaintKindEntry as B, type ContentHandlerEntry as C, type Dims as D, type EditAnchorsDep as E, type FitViewToBoundsOptions as F, type GestureLifecycleOptions as G, type HandleLocks as H, type InertiaConfig as I, type PathEditTarget as J, type FinishedEditFrame as K, type LayerHit as L, type PathSymmetryDep as M, type BooleanOpOptions as N, type BooleansAdapter as O, type PathEditMark as P, type BooleanOp as Q, type RenderLayer as R, type SnapSource as S, type TransformFollower as T, type PathPaint as U, type ViewAnimationOptions as V, type BooleanOpResult as W, type BooleanStrokes as X, type SnapMods as Y, type SourceCandidate as Z, _resetPaintKindsForTests as _, type PathEditExtension as a, type SnapEdge as a$, type SnapCollect as a0, type SnapMark as a1, type SnapDep as a2, type SnapOutcome as a3, type SnapReadoutStyle as a4, type AngleCandidate as a5, type AngleCollect as a6, type AnimateToBoundsOptions as a7, type AreaSelectDep as a8, type BooleanOpPreview as a9, type MinSize as aA, type NodeAtPointDep as aB, type OutlinePathSpec as aC, PATH_OVERLAY_ROLES as aD, type PaintKind as aE, type PaintKindEditorProps as aF, type PaintKindFamily as aG, type PaintKindLoader as aH, type PanBounds as aI, type PathEditDrag as aJ, type PathEditDragStart as aK, type PathEditFinishCtx as aL, type PathEditHandleMove as aM, type PathEditMarksCtx as aN, type PathEditOther as aO, type PathEditPart as aP, type PathEditStore as aQ, type PathForm as aR, type PathOverlay as aS, type PathOverlayOptions as aT, type PathOverlayStyle as aU, type PathRepresentation as aV, type PathTransformFinishCtx as aW, type PreviewPathsDep as aX, type ResizePolicy as aY, STICKY_DEFAULTS as aZ, type SnapBegin as a_, type BooleanPreviewPiece as aa, type CanDropIntoDep as ab, type ClipboardDep as ac, type ClipboardIngestCtx as ad, type CreateOutlinesResult as ae, type CustomPaintContext as af, DEFAULT_LAYER_RETAIN as ag, type DecayLoopConfig as ah, type FinishedPathEdit as ai, GEOMETRY_BOUND_DATA as aj, type HandleLock as ak, type HitTestView as al, type IngestCtx as am, type IngestionDep as an, type InsertDep as ao, type InsertEnds as ap, type InsertExtras as aq, type InsertIntoDep as ar, type InsertLive as as, type LassoSelectDep as at, type LayerCommandCache as au, type LayerDrawFailure as av, type LayerDrawSpan as aw, type LayerRetainPolicy as ax, type LayoutDep as ay, type Locus as az, type SnapGesture as b, type SnapEdges as b0, type SnapMarks as b1, type SnapReadoutDep as b2, type SvgUnpacker as b3, type TextEditDep as b4, type TextNodeData as b5, type TransformPreviewNode as b6, type TransientPath as b7, VIEW_ANIMATION_KEY as b8, type ViewAnimationApi as b9, registerContentHandler as bA, registerPaintKind as bB, registerPaintKindLoader as bC, seedTile as bD, stickyData as bE, stickyNodeFactory as bF, subscribeToSources as bG, switchGradientKind as bH, textBoxOf as bI, useDecayLoop as bJ, useEnteredGroup as bK, useViewAnimation as bL, useViewAnimationOn as bM, viewAxes as bN, withoutGeometryBoundData as bO, type ViewApi as ba, type ViewChannel as bb, applyBooleanOp as bc, applyCreateOutlines as bd, asPaint as be, createEnteredGroup as bf, createPathOverlay as bg, createSnapOutcomeStore as bh, depsUnchanged as bi, drawLayers as bj, drawOneLayer as bk, fitViewToBounds as bl, getPaintKind as bm, isLayerPainted as bn, isLayerVisible as bo, listGradientKinds as bp, listPaintKinds as bq, minSizeOf as br, paintKindOf as bs, paintKindRegistry as bt, paintedLayers as bu, paintsLayer as bv, paletteInsertPaint as bw, pathPaintOf as bx, patternFamily as by, previewBooleanOp as bz, type SnapConstrain as c, type SnapResizeBox as d, type SnapGeometry as e, type SnapOutcomeStore as f, type SnapSession as g, type ViewportDims as h, type RedrawSource as i, type EditAnchorsParams as j, type SliceDep as k, type StickyStyle as l, type EnteredGroupApi as m, type ChromeState as n, type LayerGroup as o, type GeometryProjection as p, type InsertNodeFactory as q, type InsertPaint as r, type SvgIngestOptions as s, type SceneCanvasSnap as t, type Affordance as u, type AffordanceRegion as v, type AffordanceBinding as w, type CommonAffordanceScratch as x, type TextOverflow as y, type CreateOutlinesAdapter as z };
2830
+ export { type SourceCandidate as $, type AnchorMarkerShape as A, type CreateOutlinesAdapter as B, type ContentHandlerEntry as C, type Dims as D, type EditAnchorsDep as E, type FitViewToBoundsOptions as F, type GestureLifecycleOptions as G, type HandleLocks as H, type InertiaConfig as I, type PaintKindEntry as J, type PathEditTarget as K, type LayerHit as L, type FinishedEditFrame as M, type PathSymmetryDep as N, type BooleanOpOptions as O, type PathEditMark as P, type BooleansAdapter as Q, type RenderLayer as R, type SnapSource as S, type TransformFollower as T, type BooleanOp as U, type ViewAnimationOptions as V, type PathPaint as W, type BooleanOpResult as X, type BooleanStrokes as Y, type SnapMods as Z, _resetPaintKindsForTests as _, type PathEditExtension as a, type SnapBegin as a$, type SnapProbeAt as a0, type SnapCollect as a1, type SnapMark as a2, type SnapDep as a3, type SnapOutcome as a4, type SnapReadoutStyle as a5, type AngleCandidate as a6, type AngleCollect as a7, type AnimateToBoundsOptions as a8, type AreaSelectDep as a9, type Locus as aA, type MinSize as aB, type NodeAtPointDep as aC, type OutlinePathSpec as aD, PATH_OVERLAY_ROLES as aE, type PaintKind as aF, type PaintKindEditorProps as aG, type PaintKindFamily as aH, type PaintKindLoader as aI, type PanBounds as aJ, type PathEditDrag as aK, type PathEditDragStart as aL, type PathEditFinishCtx as aM, type PathEditHandleMove as aN, type PathEditMarksCtx as aO, type PathEditOther as aP, type PathEditPart as aQ, type PathEditStore as aR, type PathForm as aS, type PathOverlay as aT, type PathOverlayOptions as aU, type PathOverlayStyle as aV, type PathRepresentation as aW, type PathTransformFinishCtx as aX, type PreviewPathsDep as aY, type ResizePolicy as aZ, STICKY_DEFAULTS as a_, type BooleanOpPreview as aa, type BooleanPreviewPiece as ab, type CanDropIntoDep as ac, type ClipboardDep as ad, type ClipboardIngestCtx as ae, type CreateOutlinesResult as af, type CustomPaintContext as ag, DEFAULT_LAYER_RETAIN as ah, type DecayLoopConfig as ai, type FinishedPathEdit as aj, GEOMETRY_BOUND_DATA as ak, type HandleLock as al, type HitTestView as am, type IngestCtx as an, type IngestionDep as ao, type InsertDep as ap, type InsertEnds as aq, type InsertExtras as ar, type InsertIntoDep as as, type InsertLive as at, type LassoSelectDep as au, type LayerCommandCache as av, type LayerDrawFailure as aw, type LayerDrawSpan as ax, type LayerRetainPolicy as ay, type LayoutDep as az, type SnapGesture as b, type SnapEdge as b0, type SnapEdges as b1, type SnapMarks as b2, type SnapReadoutDep as b3, type SvgUnpacker as b4, type TextEditDep as b5, type TextNodeData as b6, type TransformPreviewNode as b7, type TransientPath as b8, VIEW_ANIMATION_KEY as b9, previewBooleanOp as bA, registerContentHandler as bB, registerPaintKind as bC, registerPaintKindLoader as bD, seedTile as bE, stickyData as bF, stickyNodeFactory as bG, subscribeToSources as bH, switchGradientKind as bI, textBoxOf as bJ, useDecayLoop as bK, useEnteredGroup as bL, useViewAnimation as bM, useViewAnimationOn as bN, viewAxes as bO, withoutGeometryBoundData as bP, type ViewAnimationApi as ba, type ViewApi as bb, type ViewChannel as bc, applyBooleanOp as bd, applyCreateOutlines as be, asPaint as bf, createEnteredGroup as bg, createPathOverlay as bh, createSnapOutcomeStore as bi, depsUnchanged as bj, drawLayers as bk, drawOneLayer as bl, fitViewToBounds as bm, getPaintKind as bn, isLayerPainted as bo, isLayerVisible as bp, listGradientKinds as bq, listPaintKinds as br, minSizeOf as bs, paintKindOf as bt, paintKindRegistry as bu, paintedLayers as bv, paintsLayer as bw, paletteInsertPaint as bx, pathPaintOf as by, patternFamily as bz, type SnapConstrain as c, type SnapResizeBox as d, type SnapGeometry as e, type SnapOutcomeStore as f, type SnapSession as g, type LayerDims as h, type ViewportDims as i, type RedrawSource as j, type EditAnchorsParams as k, type SliceDep as l, type StickyStyle as m, type EnteredGroupApi as n, type ChromeState as o, type LayerGroup as p, type GeometryProjection as q, type InsertNodeFactory as r, type InsertPaint as s, type SvgIngestOptions as t, type SceneCanvasSnap as u, type Affordance as v, type AffordanceRegion as w, type AffordanceBinding as x, type CommonAffordanceScratch as y, type TextOverflow as z };
@@ -34,7 +34,8 @@ function createViewportLayer(opts) {
34
34
  const b = bounds(outerView, dims);
35
35
  const innerDims = {
36
36
  width: b.w,
37
- height: b.h
37
+ height: b.h,
38
+ dpr: dims.dpr
38
39
  };
39
40
  const children = background ? backgroundFillCommands({
40
41
  kind: "solid",
@@ -1 +1 @@
1
- {"version":3,"file":"viewportLayer.js","names":[],"sources":["../../../src/features/viewports/viewportLayer.ts"],"sourcesContent":["import type { DrawCommand, GroupDrawCommand } from '@weasel-js/renderer';\nimport { drawOneLayer, subscribeToSources, type Dims, type RenderLayer } from 'core/layers/render';\nimport { backgroundFillCommands } from 'core/layers/backgroundFill';\nimport { normalizeView, type View } from 'core/viewport/view';\nimport { mat3, type GlMat3 } from '@weasel-js/geom';\nimport type { ResolvableView } from './viewResolver';\n\n/**\n * A \"viewport node\" — a screen-space rectangle on the outer canvas that\n * re-renders one or more `source` layers through an *inner* `View`, then\n * clips them to its rect. The same source layer can be rendered through\n * multiple viewports without duplicating data.\n *\n * **Inner view semantics.** The source layers draw as if the inner view\n * filled the screen at world-origin. The viewport then translates the result\n * so that the inner view's origin lands at `bounds.x, bounds.y` and clips to\n * `(bounds.w, bounds.h)`.\n *\n * **This layer paints; it does not take input.** `<CanvasView>` is built on\n * it and routes the pointer stream through the kit's gesture dispatcher —\n * declare one of those for a viewport that should be clickable. `resolvable`\n * is the seam it uses: feed it to `createViewResolver` to route input to a\n * raw viewport yourself.\n *\n * **Screen-space source layers** (e.g., debug overlays, selection chrome)\n * draw in the viewport's own CSS-pixel space: their coords are relative to\n * the rect's top-left, and they clip to it, rather than to the outer canvas.\n */\nexport interface CreateViewportLayerOpts<TData, TSource = TData> {\n id: string;\n label: string;\n /** Layers re-rendered through `view`. Each receives `(data, view, dims)`\n * exactly as the outer Canvas would call it.\n *\n * Pass a thunk for a stack that is assembled elsewhere — it is read fresh\n * on every `draw`, the same way a thunked `view` is. */\n source: readonly RenderLayer<TSource>[] | (() => readonly RenderLayer<TSource>[]);\n /**\n * The `data` the source layers receive, derived from what the outer canvas\n * passed down. Omit and they get the outer canvas's own. A viewport showing\n * the same scene through a second camera wants its own per-view helpers\n * here — selection, chrome state and gesture previews.\n */\n data?: (outer: TData) => TSource;\n /**\n * The inner view. Pass a thunk for a camera that moves — it is read fresh\n * on every `draw` and `resolvable`, so the two cannot\n * disagree about where the viewport is looking mid-gesture.\n *\n * The thunk receives the outer view and dims, so a derived camera\n * (parallax, node-anchored scroll) is a function of the one hosting it.\n */\n view: View | ((outer: View, dims: Dims) => View);\n /** Where on the outer canvas this viewport is painted, in screen-space\n * CSS pixels. Recomputed every frame. */\n bounds: (outer: View, dims: Dims) => { x: number; y: number; w: number; h: number };\n /** The part of the outer canvas the viewport shows through, in the same\n * space as `bounds` and recomputed with it — the rect of a viewport it is\n * nested in. Omit to show all of `bounds`. */\n clip?: (outer: View, dims: Dims) => { x: number; y: number; w: number; h: number };\n /** Optional opaque background painted before the source layers. */\n background?: string;\n}\n\n/**\n * A {@link RenderLayer} that can also describe itself as a routing target.\n * Returned by {@link createViewportLayer}.\n */\nexport interface ViewportLayer<TData> extends RenderLayer<TData> {\n /**\n * This viewport as a routing candidate for {@link createViewResolver} —\n * its inner view and the rect it paints into for the given outer frame.\n *\n * Pass the `outer` view and `dims` the frame was drawn with: `bounds` is a\n * pure function of those, so this reproduces the exact rect that was\n * painted rather than a remembered one.\n */\n resolvable(outer: View, dims: Dims): ResolvableView;\n}\n\n/** Build a layer that renders other layers through a second view, inside a\n * sub-region of the canvas — a minimap, an inset, a magnifier. */\nexport function createViewportLayer<TData, TSource = TData>(\n opts: CreateViewportLayerOpts<TData, TSource>,\n): ViewportLayer<TData> {\n const { id, label, source, view, bounds, clip: clipAt, background, data: sourceData } = opts;\n const fixedView = typeof view === 'function' ? null : normalizeView(view);\n const viewAt = (outer: View, dims: Dims): View =>\n fixedView ?? normalizeView((view as (outer: View, dims: Dims) => View)(outer, dims));\n const sourceAt = typeof source === 'function' ? source : () => source;\n return {\n id,\n label,\n space: 'screen',\n subscribe: subscribeToSources(sourceAt),\n resolvable(outer, dims) {\n const rect = bounds(outer, dims);\n return clipAt\n ? { id, view: viewAt(outer, dims), rect, clip: clipAt(outer, dims) }\n : { id, view: viewAt(outer, dims), rect };\n },\n draw: (data, outerView, dims): DrawCommand[] => {\n const b = bounds(outerView, dims);\n // Inner content drawn through `view`, then translated so the inner\n // view's screen origin lines up with the viewport top-left.\n const innerDims = { width: b.w, height: b.h };\n const children: DrawCommand[] = background\n ? backgroundFillCommands({ kind: 'solid', color: background }, innerDims)\n : [];\n // The cast holds up because `TSource` defaults to `TData`: without a\n // thunk the two are the same type by construction.\n const innerData = sourceData ? sourceData(data) : (data as unknown as TSource);\n const v = viewAt(outerView, dims);\n for (const layer of sourceAt()) {\n for (const c of drawOneLayer(layer, innerData, v, innerDims)) children.push(c);\n }\n const transform: GlMat3 = mat3.translated(mat3.identity(), b.x, b.y);\n const group: GroupDrawCommand = {\n kind: 'group',\n transform,\n clip: clipAt ? clipWithin(b, clipAt(outerView, dims)) : { kind: 'rect', x: 0, y: 0, width: b.w, height: b.h },\n children,\n };\n return [group];\n },\n };\n}\n\ntype Rect = { x: number; y: number; w: number; h: number };\n\n/** `clip` cut to `b`, measured from `b`'s top-left. */\nfunction clipWithin(b: Rect, clip: Rect): { kind: 'rect'; x: number; y: number; width: number; height: number } {\n const x0 = Math.max(b.x, clip.x);\n const y0 = Math.max(b.y, clip.y);\n const x1 = Math.min(b.x + b.w, clip.x + clip.w);\n const y1 = Math.min(b.y + b.h, clip.y + clip.h);\n return { kind: 'rect', x: x0 - b.x, y: y0 - b.y, width: Math.max(0, x1 - x0), height: Math.max(0, y1 - y0) };\n}\n"],"mappings":";;;;;;;;;AAkFA,SAAgB,oBACd,MACsB;CACtB,MAAM,EAAE,IAAI,OAAO,QAAQ,MAAM,QAAQ,MAAM,QAAQ,YAAY,MAAM,eAAe;CACxF,MAAM,YAAY,OAAO,SAAS,aAAa,OAAO,cAAc,IAAI;CACxE,MAAM,UAAU,OAAa,SAC3B,aAAa,cAAe,KAA2C,OAAO,IAAI,CAAC;CACrF,MAAM,WAAW,OAAO,WAAW,aAAa,eAAe;CAC/D,OAAO;EACL;EACA;EACA,OAAO;EACP,WAAW,mBAAmB,QAAQ;EACtC,WAAW,OAAO,MAAM;GACtB,MAAM,OAAO,OAAO,OAAO,IAAI;GAC/B,OAAO,SACH;IAAE;IAAI,MAAM,OAAO,OAAO,IAAI;IAAG;IAAM,MAAM,OAAO,OAAO,IAAI;GAAE,IACjE;IAAE;IAAI,MAAM,OAAO,OAAO,IAAI;IAAG;GAAK;EAC5C;EACA,OAAO,MAAM,WAAW,SAAwB;GAC9C,MAAM,IAAI,OAAO,WAAW,IAAI;GAGhC,MAAM,YAAY;IAAE,OAAO,EAAE;IAAG,QAAQ,EAAE;GAAE;GAC5C,MAAM,WAA0B,aAC5B,uBAAuB;IAAE,MAAM;IAAS,OAAO;GAAW,GAAG,SAAS,IACtE,CAAC;GAGL,MAAM,YAAY,aAAa,WAAW,IAAI,IAAK;GACnD,MAAM,IAAI,OAAO,WAAW,IAAI;GAChC,KAAK,MAAM,SAAS,SAAS,GAC3B,KAAK,MAAM,KAAK,aAAa,OAAO,WAAW,GAAG,SAAS,GAAG,SAAS,KAAK,CAAC;GAS/E,OAAO,CAAC;IALN,MAAM;IACN,WAHwB,KAAK,WAAW,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,CAGhE;IACA,MAAM,SAAS,WAAW,GAAG,OAAO,WAAW,IAAI,CAAC,IAAI;KAAE,MAAM;KAAQ,GAAG;KAAG,GAAG;KAAG,OAAO,EAAE;KAAG,QAAQ,EAAE;IAAE;IAC5G;GAEM,CAAK;EACf;CACF;AACF;;AAKA,SAAS,WAAW,GAAS,MAAmF;CAC9G,MAAM,KAAK,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC;CAC/B,MAAM,KAAK,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC;CAC/B,MAAM,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC;CAC9C,MAAM,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC;CAC9C,OAAO;EAAE,MAAM;EAAQ,GAAG,KAAK,EAAE;EAAG,GAAG,KAAK,EAAE;EAAG,OAAO,KAAK,IAAI,GAAG,KAAK,EAAE;EAAG,QAAQ,KAAK,IAAI,GAAG,KAAK,EAAE;CAAE;AAC7G"}
1
+ {"version":3,"file":"viewportLayer.js","names":[],"sources":["../../../src/features/viewports/viewportLayer.ts"],"sourcesContent":["import type { DrawCommand, GroupDrawCommand } from '@weasel-js/renderer';\nimport { drawOneLayer, subscribeToSources, type Dims, type RenderLayer } from 'core/layers/render';\nimport { backgroundFillCommands } from 'core/layers/backgroundFill';\nimport { normalizeView, type View } from 'core/viewport/view';\nimport { mat3, type GlMat3 } from '@weasel-js/geom';\nimport type { ResolvableView } from './viewResolver';\n\n/**\n * A \"viewport node\" — a screen-space rectangle on the outer canvas that\n * re-renders one or more `source` layers through an *inner* `View`, then\n * clips them to its rect. The same source layer can be rendered through\n * multiple viewports without duplicating data.\n *\n * **Inner view semantics.** The source layers draw as if the inner view\n * filled the screen at world-origin. The viewport then translates the result\n * so that the inner view's origin lands at `bounds.x, bounds.y` and clips to\n * `(bounds.w, bounds.h)`.\n *\n * **This layer paints; it does not take input.** `<CanvasView>` is built on\n * it and routes the pointer stream through the kit's gesture dispatcher —\n * declare one of those for a viewport that should be clickable. `resolvable`\n * is the seam it uses: feed it to `createViewResolver` to route input to a\n * raw viewport yourself.\n *\n * **Screen-space source layers** (e.g., debug overlays, selection chrome)\n * draw in the viewport's own CSS-pixel space: their coords are relative to\n * the rect's top-left, and they clip to it, rather than to the outer canvas.\n */\nexport interface CreateViewportLayerOpts<TData, TSource = TData> {\n id: string;\n label: string;\n /** Layers re-rendered through `view`. Each receives `(data, view, dims)`\n * exactly as the outer Canvas would call it.\n *\n * Pass a thunk for a stack that is assembled elsewhere — it is read fresh\n * on every `draw`, the same way a thunked `view` is. */\n source: readonly RenderLayer<TSource>[] | (() => readonly RenderLayer<TSource>[]);\n /**\n * The `data` the source layers receive, derived from what the outer canvas\n * passed down. Omit and they get the outer canvas's own. A viewport showing\n * the same scene through a second camera wants its own per-view helpers\n * here — selection, chrome state and gesture previews.\n */\n data?: (outer: TData) => TSource;\n /**\n * The inner view. Pass a thunk for a camera that moves — it is read fresh\n * on every `draw` and `resolvable`, so the two cannot\n * disagree about where the viewport is looking mid-gesture.\n *\n * The thunk receives the outer view and dims, so a derived camera\n * (parallax, node-anchored scroll) is a function of the one hosting it.\n */\n view: View | ((outer: View, dims: Dims) => View);\n /** Where on the outer canvas this viewport is painted, in screen-space\n * CSS pixels. Recomputed every frame. */\n bounds: (outer: View, dims: Dims) => { x: number; y: number; w: number; h: number };\n /** The part of the outer canvas the viewport shows through, in the same\n * space as `bounds` and recomputed with it — the rect of a viewport it is\n * nested in. Omit to show all of `bounds`. */\n clip?: (outer: View, dims: Dims) => { x: number; y: number; w: number; h: number };\n /** Optional opaque background painted before the source layers. */\n background?: string;\n}\n\n/**\n * A {@link RenderLayer} that can also describe itself as a routing target.\n * Returned by {@link createViewportLayer}.\n */\nexport interface ViewportLayer<TData> extends RenderLayer<TData> {\n /**\n * This viewport as a routing candidate for {@link createViewResolver} —\n * its inner view and the rect it paints into for the given outer frame.\n *\n * Pass the `outer` view and `dims` the frame was drawn with: `bounds` is a\n * pure function of those, so this reproduces the exact rect that was\n * painted rather than a remembered one.\n */\n resolvable(outer: View, dims: Dims): ResolvableView;\n}\n\n/** Build a layer that renders other layers through a second view, inside a\n * sub-region of the canvas — a minimap, an inset, a magnifier. */\nexport function createViewportLayer<TData, TSource = TData>(\n opts: CreateViewportLayerOpts<TData, TSource>,\n): ViewportLayer<TData> {\n const { id, label, source, view, bounds, clip: clipAt, background, data: sourceData } = opts;\n const fixedView = typeof view === 'function' ? null : normalizeView(view);\n const viewAt = (outer: View, dims: Dims): View =>\n fixedView ?? normalizeView((view as (outer: View, dims: Dims) => View)(outer, dims));\n const sourceAt = typeof source === 'function' ? source : () => source;\n return {\n id,\n label,\n space: 'screen',\n subscribe: subscribeToSources(sourceAt),\n resolvable(outer, dims) {\n const rect = bounds(outer, dims);\n return clipAt\n ? { id, view: viewAt(outer, dims), rect, clip: clipAt(outer, dims) }\n : { id, view: viewAt(outer, dims), rect };\n },\n draw: (data, outerView, dims): DrawCommand[] => {\n const b = bounds(outerView, dims);\n // Inner content drawn through `view`, then translated so the inner\n // view's screen origin lines up with the viewport top-left.\n const innerDims = { width: b.w, height: b.h, dpr: dims.dpr };\n const children: DrawCommand[] = background\n ? backgroundFillCommands({ kind: 'solid', color: background }, innerDims)\n : [];\n // The cast holds up because `TSource` defaults to `TData`: without a\n // thunk the two are the same type by construction.\n const innerData = sourceData ? sourceData(data) : (data as unknown as TSource);\n const v = viewAt(outerView, dims);\n for (const layer of sourceAt()) {\n for (const c of drawOneLayer(layer, innerData, v, innerDims)) children.push(c);\n }\n const transform: GlMat3 = mat3.translated(mat3.identity(), b.x, b.y);\n const group: GroupDrawCommand = {\n kind: 'group',\n transform,\n clip: clipAt ? clipWithin(b, clipAt(outerView, dims)) : { kind: 'rect', x: 0, y: 0, width: b.w, height: b.h },\n children,\n };\n return [group];\n },\n };\n}\n\ntype Rect = { x: number; y: number; w: number; h: number };\n\n/** `clip` cut to `b`, measured from `b`'s top-left. */\nfunction clipWithin(b: Rect, clip: Rect): { kind: 'rect'; x: number; y: number; width: number; height: number } {\n const x0 = Math.max(b.x, clip.x);\n const y0 = Math.max(b.y, clip.y);\n const x1 = Math.min(b.x + b.w, clip.x + clip.w);\n const y1 = Math.min(b.y + b.h, clip.y + clip.h);\n return { kind: 'rect', x: x0 - b.x, y: y0 - b.y, width: Math.max(0, x1 - x0), height: Math.max(0, y1 - y0) };\n}\n"],"mappings":";;;;;;;;;AAkFA,SAAgB,oBACd,MACsB;CACtB,MAAM,EAAE,IAAI,OAAO,QAAQ,MAAM,QAAQ,MAAM,QAAQ,YAAY,MAAM,eAAe;CACxF,MAAM,YAAY,OAAO,SAAS,aAAa,OAAO,cAAc,IAAI;CACxE,MAAM,UAAU,OAAa,SAC3B,aAAa,cAAe,KAA2C,OAAO,IAAI,CAAC;CACrF,MAAM,WAAW,OAAO,WAAW,aAAa,eAAe;CAC/D,OAAO;EACL;EACA;EACA,OAAO;EACP,WAAW,mBAAmB,QAAQ;EACtC,WAAW,OAAO,MAAM;GACtB,MAAM,OAAO,OAAO,OAAO,IAAI;GAC/B,OAAO,SACH;IAAE;IAAI,MAAM,OAAO,OAAO,IAAI;IAAG;IAAM,MAAM,OAAO,OAAO,IAAI;GAAE,IACjE;IAAE;IAAI,MAAM,OAAO,OAAO,IAAI;IAAG;GAAK;EAC5C;EACA,OAAO,MAAM,WAAW,SAAwB;GAC9C,MAAM,IAAI,OAAO,WAAW,IAAI;GAGhC,MAAM,YAAY;IAAE,OAAO,EAAE;IAAG,QAAQ,EAAE;IAAG,KAAK,KAAK;GAAI;GAC3D,MAAM,WAA0B,aAC5B,uBAAuB;IAAE,MAAM;IAAS,OAAO;GAAW,GAAG,SAAS,IACtE,CAAC;GAGL,MAAM,YAAY,aAAa,WAAW,IAAI,IAAK;GACnD,MAAM,IAAI,OAAO,WAAW,IAAI;GAChC,KAAK,MAAM,SAAS,SAAS,GAC3B,KAAK,MAAM,KAAK,aAAa,OAAO,WAAW,GAAG,SAAS,GAAG,SAAS,KAAK,CAAC;GAS/E,OAAO,CAAC;IALN,MAAM;IACN,WAHwB,KAAK,WAAW,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,CAGhE;IACA,MAAM,SAAS,WAAW,GAAG,OAAO,WAAW,IAAI,CAAC,IAAI;KAAE,MAAM;KAAQ,GAAG;KAAG,GAAG;KAAG,OAAO,EAAE;KAAG,QAAQ,EAAE;IAAE;IAC5G;GAEM,CAAK;EACf;CACF;AACF;;AAKA,SAAS,WAAW,GAAS,MAAmF;CAC9G,MAAM,KAAK,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC;CAC/B,MAAM,KAAK,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC;CAC/B,MAAM,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC;CAC9C,MAAM,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC;CAC9C,OAAO;EAAE,MAAM;EAAQ,GAAG,KAAK,EAAE;EAAG,GAAG,KAAK,EAAE;EAAG,OAAO,KAAK,IAAI,GAAG,KAAK,EAAE;EAAG,QAAQ,KAAK,IAAI,GAAG,KAAK,EAAE;CAAE;AAC7G"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { D as Dims, R as RenderLayer, L as LayerHit, V as ViewAnimationOptions, a as PathEditExtension, h as ViewportDims, F as FitViewToBoundsOptions, i as RedrawSource, j as EditAnchorsParams, I as InertiaConfig, E as EditAnchorsDep, G as GestureLifecycleOptions, k as SliceDep, l as StickyStyle, m as EnteredGroupApi, C as ContentHandlerEntry, A as AnchorMarkerShape, P as PathEditMark, n as ChromeState, o as LayerGroup, S as SnapSource, T as TransformFollower, p as GeometryProjection, q as InsertNodeFactory, r as InsertPaint, s as SvgIngestOptions, t as SceneCanvasSnap, u as Affordance, v as AffordanceRegion, w as AffordanceBinding, x as CommonAffordanceScratch, y as TextOverflow, z as CreateOutlinesAdapter, B as PaintKindEntry, J as PathEditTarget, K as FinishedEditFrame, M as PathSymmetryDep, H as HandleLocks, N as BooleanOpOptions, O as BooleansAdapter, Q as BooleanOp, U as PathPaint, W as BooleanOpResult, X as BooleanStrokes, Y as SnapMods, Z as SourceCandidate, $ as SnapProbeAt, a0 as SnapCollect, a1 as SnapMark, b as SnapGesture, a2 as SnapDep, a3 as SnapOutcome, f as SnapOutcomeStore, a4 as SnapReadoutStyle } from './depSchema-B1RS-IJx.js';
2
- export { a5 as AngleCandidate, a6 as AngleCollect, a7 as AnimateToBoundsOptions, a8 as AreaSelectDep, a9 as BooleanOpPreview, aa as BooleanPreviewPiece, ab as CanDropIntoDep, ac as ClipboardDep, ad as ClipboardIngestCtx, ae as CreateOutlinesResult, af as CustomPaintContext, ag as DEFAULT_LAYER_RETAIN, ah as DecayLoopConfig, ai as FinishedPathEdit, aj as GEOMETRY_BOUND_DATA, ak as HandleLock, al as HitTestView, am as IngestCtx, an as IngestionDep, ao as InsertDep, ap as InsertEnds, aq as InsertExtras, ar as InsertIntoDep, as as InsertLive, at as LassoSelectDep, au as LayerCommandCache, av as LayerDrawFailure, aw as LayerDrawSpan, ax as LayerRetainPolicy, ay as LayoutDep, az as Locus, aA as MinSize, aB as NodeAtPointDep, aC as OutlinePathSpec, aD as PATH_OVERLAY_ROLES, aE as PaintKind, aF as PaintKindEditorProps, aG as PaintKindFamily, aH as PaintKindLoader, aI as PanBounds, aJ as PathEditDrag, aK as PathEditDragStart, aL as PathEditFinishCtx, aM as PathEditHandleMove, aN as PathEditMarksCtx, aO as PathEditOther, aP as PathEditPart, aQ as PathEditStore, aR as PathForm, aS as PathOverlay, aT as PathOverlayOptions, aU as PathOverlayStyle, aV as PathRepresentation, aW as PathTransformFinishCtx, aX as PreviewPathsDep, aY as ResizePolicy, aZ as STICKY_DEFAULTS, a_ as SnapBegin, c as SnapConstrain, a$ as SnapEdge, b0 as SnapEdges, e as SnapGeometry, b1 as SnapMarks, b2 as SnapReadoutDep, d as SnapResizeBox, g as SnapSession, b3 as SvgUnpacker, b4 as TextEditDep, b5 as TextNodeData, b6 as TransformPreviewNode, b7 as TransientPath, b8 as VIEW_ANIMATION_KEY, b9 as ViewAnimationApi, ba as ViewApi, bb as ViewChannel, bc as applyBooleanOp, bd as applyCreateOutlines, be as asPaint, bf as createEnteredGroup, bg as createPathOverlay, bh as createSnapOutcomeStore, bi as depsUnchanged, bj as drawLayers, bk as drawOneLayer, bl as fitViewToBounds, bm as getPaintKind, bn as isLayerPainted, bo as isLayerVisible, bp as listGradientKinds, bq as listPaintKinds, br as minSizeOf, bs as paintKindOf, bt as paintKindRegistry, bu as paintedLayers, bv as paintsLayer, bw as paletteInsertPaint, bx as pathPaintOf, by as patternFamily, bz as previewBooleanOp, bA as registerContentHandler, bB as registerPaintKind, bC as registerPaintKindLoader, bD as seedTile, bE as stickyData, bF as stickyNodeFactory, bG as subscribeToSources, bH as switchGradientKind, bI as textBoxOf, bJ as useDecayLoop, bK as useEnteredGroup, bL as useViewAnimation, bM as useViewAnimationOn, bN as viewAxes, bO as withoutGeometryBoundData } from './depSchema-B1RS-IJx.js';
1
+ import { D as Dims, R as RenderLayer, L as LayerHit, h as LayerDims, V as ViewAnimationOptions, a as PathEditExtension, i as ViewportDims, F as FitViewToBoundsOptions, j as RedrawSource, k as EditAnchorsParams, I as InertiaConfig, E as EditAnchorsDep, G as GestureLifecycleOptions, l as SliceDep, m as StickyStyle, n as EnteredGroupApi, C as ContentHandlerEntry, A as AnchorMarkerShape, P as PathEditMark, o as ChromeState, p as LayerGroup, S as SnapSource, T as TransformFollower, q as GeometryProjection, r as InsertNodeFactory, s as InsertPaint, t as SvgIngestOptions, u as SceneCanvasSnap, v as Affordance, w as AffordanceRegion, x as AffordanceBinding, y as CommonAffordanceScratch, z as TextOverflow, B as CreateOutlinesAdapter, J as PaintKindEntry, K as PathEditTarget, M as FinishedEditFrame, N as PathSymmetryDep, H as HandleLocks, O as BooleanOpOptions, Q as BooleansAdapter, U as BooleanOp, W as PathPaint, X as BooleanOpResult, Y as BooleanStrokes, Z as SnapMods, $ as SourceCandidate, a0 as SnapProbeAt, a1 as SnapCollect, a2 as SnapMark, b as SnapGesture, a3 as SnapDep, a4 as SnapOutcome, f as SnapOutcomeStore, a5 as SnapReadoutStyle } from './depSchema-CpIQzKWQ.js';
2
+ export { a6 as AngleCandidate, a7 as AngleCollect, a8 as AnimateToBoundsOptions, a9 as AreaSelectDep, aa as BooleanOpPreview, ab as BooleanPreviewPiece, ac as CanDropIntoDep, ad as ClipboardDep, ae as ClipboardIngestCtx, af as CreateOutlinesResult, ag as CustomPaintContext, ah as DEFAULT_LAYER_RETAIN, ai as DecayLoopConfig, aj as FinishedPathEdit, ak as GEOMETRY_BOUND_DATA, al as HandleLock, am as HitTestView, an as IngestCtx, ao as IngestionDep, ap as InsertDep, aq as InsertEnds, ar as InsertExtras, as as InsertIntoDep, at as InsertLive, au as LassoSelectDep, av as LayerCommandCache, aw as LayerDrawFailure, ax as LayerDrawSpan, ay as LayerRetainPolicy, az as LayoutDep, aA as Locus, aB as MinSize, aC as NodeAtPointDep, aD as OutlinePathSpec, aE as PATH_OVERLAY_ROLES, aF as PaintKind, aG as PaintKindEditorProps, aH as PaintKindFamily, aI as PaintKindLoader, aJ as PanBounds, aK as PathEditDrag, aL as PathEditDragStart, aM as PathEditFinishCtx, aN as PathEditHandleMove, aO as PathEditMarksCtx, aP as PathEditOther, aQ as PathEditPart, aR as PathEditStore, aS as PathForm, aT as PathOverlay, aU as PathOverlayOptions, aV as PathOverlayStyle, aW as PathRepresentation, aX as PathTransformFinishCtx, aY as PreviewPathsDep, aZ as ResizePolicy, a_ as STICKY_DEFAULTS, a$ as SnapBegin, c as SnapConstrain, b0 as SnapEdge, b1 as SnapEdges, e as SnapGeometry, b2 as SnapMarks, b3 as SnapReadoutDep, d as SnapResizeBox, g as SnapSession, b4 as SvgUnpacker, b5 as TextEditDep, b6 as TextNodeData, b7 as TransformPreviewNode, b8 as TransientPath, b9 as VIEW_ANIMATION_KEY, ba as ViewAnimationApi, bb as ViewApi, bc as ViewChannel, bd as applyBooleanOp, be as applyCreateOutlines, bf as asPaint, bg as createEnteredGroup, bh as createPathOverlay, bi as createSnapOutcomeStore, bj as depsUnchanged, bk as drawLayers, bl as drawOneLayer, bm as fitViewToBounds, bn as getPaintKind, bo as isLayerPainted, bp as isLayerVisible, bq as listGradientKinds, br as listPaintKinds, bs as minSizeOf, bt as paintKindOf, bu as paintKindRegistry, bv as paintedLayers, bw as paintsLayer, bx as paletteInsertPaint, by as pathPaintOf, bz as patternFamily, bA as previewBooleanOp, bB as registerContentHandler, bC as registerPaintKind, bD as registerPaintKindLoader, bE as seedTile, bF as stickyData, bG as stickyNodeFactory, bH as subscribeToSources, bI as switchGradientKind, bJ as textBoxOf, bK as useDecayLoop, bL as useEnteredGroup, bM as useViewAnimation, bN as useViewAnimationOn, bO as viewAxes, bP as withoutGeometryBoundData } from './depSchema-CpIQzKWQ.js';
3
3
  import { View, Scale2, Path, FramedBox, PolygonPath, GlMat3, Point as Point$3, AnchorField, AnchorSet, PlacementAlign, Rect, Affine, PathSnapKind, PathInWorldPose, AnchorFieldValues, NumberEntry, JoinOptions, SegmentHit, PointOrigin, AnchorSymmetry, BlendPathsOptions, RunAlign, TrackSide, BendAlongPathOptions, RepeatAlongPathOptions, PoseLinear } from '@weasel-js/geom';
4
4
  export { AnchorField, AnchorFieldValues, AnchorPair, AverageAxis, BendAlongPathOptions, BezierEasing, BlendPathsOptions, FramedBox as Bounds, CONSTRAINT_TOLERANCE, CORNER_FIT_TOLERANCE, CORNER_KEYWORDS, ConstrainedPathEdit, ConstraintPoint, CornerFrame, CornerKeyword, CornerPiece, CornerShape, CornerShapeFrame, CornerSpec, DEFAULT_FLATTEN_TOLERANCE, EASINGS, EasingFn, EasingName, EasingSpec, ExtendToMeetOptions, JoinOptions, MeasurePathOptions, NumberEntry, OpenPathEnd, PATH_C, PATH_CMD_LENGTHS, PATH_L, PATH_M, PATH_Q, PATH_SNAP_KINDS, PATH_Z, Path, PathBlend, PathBuilder, PathConstraint, PathConstraintKind, PathCrossing, PathFillRule, PathInWorldPose, PathMeasure, PathSegment, PathSnapHit, PathSnapIndex, PathSnapKind, PathSnapQuery, PathStation, PathStop, PenAnchor, PointAlongPathOptions, PointInPathOptions, PolygonPath, PoseLinear, PoseRotation, Rect, RectPath, RepeatAlongPathOptions, RepeatStation, ResolvedCorners, SPRING_PRESETS, Scale2, SegmentCrossing, SimplifyPathOptions, SmudgePathOptions, SolveConstraintsOptions, SolveConstraintsResult, SpringPreset, SpringPresetName, TrimPathOptions, TrimResult, Point as Vec2, View, ZOOM_FLOOR, asPolygonPath, averageAnchorsAt, bendAlongPath, blendPaths, boundsOfPath, circlePath, composePath, constrainPathEdit, constraintAnchors, cornerAt, cornerFrameAt, cornerFrames, cornerKeywordOf, cornerShapeK, cornerShapePieces, cornerSpecAt, countPathAnchors, createPathSnapIndex, cubicBezierEasing, decomposePath, easeIn, easeInBack, easeInBounce, easeInCirc, easeInCubic, easeInElastic, easeInExpo, easeInOut, easeInOutBack, easeInOutBounce, easeInOutCirc, easeInOutCubic, easeInOutElastic, easeInOutExpo, easeInOutQuad, easeInOutQuart, easeInOutQuint, easeInOutSine, easeInQuad, easeInQuart, easeInQuint, easeInSine, easeOut, easeOutBack, easeOutBounce, easeOutCirc, easeOutCubic, easeOutElastic, easeOutExpo, easeOutQuad, easeOutQuart, easeOutQuint, easeOutSine, ellipsePath, extendToMeet, findPathSnap, flattenCubic, flattenCubicWithArcLen, flattenQuadratic, flattenQuadraticWithArcLen, hasCorners, hasOpenSubpath, intersectSegments, isCornerShape, joinAnchorsAt, lengthenOpenEnd, linePath, linear, meanScale, measurePath, nextCornerShape, openEndRay, openPathEnds, pathAnchorPoints, pathCommandCoordCount, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathCrossings, pathDistanceToPoint, pathFromD, pathInPoseFrame, pathInWorld, pathIntersectsPolygon, pathIntersectsRect, pathSegments, pathSignedArea, pathThroughPoseFrame, pathToAnchors, pathToD, pointAlongPath, pointInPath, polygonFromPoints, polylineFromPoints, poseFrameInverseOf, poseFrameOf, poseLinearOf, poseRotationOf, prepareBlend, pxExtent, rectMarkerPath, rectPath, regularPolygonPath, remapPerAnchor, repeatAlongPath, resolveCorners, resolveCornersWithSources, resolveEasing, reversePath, rotatePathAround, roundRectPath, scaleDelta, scalePathToBounds, screenAngleOf, simplifyAnchorsAt, simplifyPath, smudgePath, solveConstraints, solvePathConstraints, splitByClosure, splitSubpaths, squarePath, standoff, starPath, stationsAlongPath, transformPath, translatePath, trimPathAt, unionBoundsPath, unsatisfiedConstraints, withCorner, withinPxBox, withinPxRadius, withoutCorners, worldEditToStorage } from '@weasel-js/geom';
5
5
  import { a as PlaneMap, L as LayoutStrategy, R as ReflowTransition, b as LayoutDropTargetMode } from './types-49uYJN3j.js';
@@ -53,7 +53,7 @@ import { PrefSection, PrefNumberUnit } from '@weasel-js/prefs';
53
53
  import { UnitScope } from '@weasel-js/quantity';
54
54
  export { ANGLE_RADIANS, IMPERIAL_INCHES, METRIC_MM, PIXELS, PerAxis, PlaneUnits, PlaneValue, ScopeTree, Unit, UnitEntry, UnitExpr, UnitExprContext, UnitScale, UnitScope, UnitSystem, UnitValue, axisUnits, formatAxes, formatScoped, formatUnit, fromRoot, parseUnitExpr, resolveAxes, resolveScoped, resolveUnit, resolveUnitExpr, scopesOf, toRoot, unitScale } from '@weasel-js/quantity';
55
55
  import { TextPose, TextStyle, StyledRun, TextVerticalAlign, TextPaint, TextOutlinesError } from '@weasel-js/text';
56
- export { DEFAULT_DECORATION_METRICS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_STYLE, DecorationKind, FaceMetricsFn, FitTextPoseOptions, FlagKey, FontVariantCaps, LabelOptions, LaidOutCell, LaidOutDecoration, LaidOutGroup, LaidOutLineBox, LaidOutOutlineGlyph, LaidOutQuad, LaidOutRuns, LayoutLine, LayoutResult, LayoutRunsOpts, MARKDOWN_RUN_GRAMMAR, MarkdownFontOptions, MeasureFn, MeasureTextBoundsOpts, MeasuredSpan, MeasuredText, PaintRunsOpts, PaintedRuns, PlacedGlyph, PointInTextPoseOpts, PositionedRun, RangeStyle, ResolvedRun, ResolvedTextStyle, RunFlag, RunGrammar, RunMarker, RunSourceMap, RunStylePatch, SCRIPT_METRICS, SMALL_CAPS_SCALE, ScriptPreset, SetFlagResult, SmallCapsText, StyleKey, StyledRun, TextAlign, TextDirection, TextLineBoxesOpts, TextNodeSource, TextOutlineSource, TextOutlinesError, TextOutlinesFailure, TextPaint, TextPaintPath, TextPose, TextPoseLayout, TextPoseLayoutInput, TextRenderer, TextStyle, TextToPathOptions, TextTransform, TextVerticalAlign, TransformedRunText, applyStyleToRange, cachedLayoutRuns, cachedPaintRuns, caretIndexAt, createMarkdownRenderer, decorationMetrics, defaultLabelTextRenderer, effectiveRangeStyle, fitTextPose, fontString, isBoldWeight, isSmallCapsLetter, isTextData, layoutMarkdown, layoutRuns, layoutTextPose, loadTextOutlines, markdownToRuns, measureText, measureTextBounds, measuredWidth, nodeHasFlag, numericWeight, paintRuns, paragraphDirection, patchRangeStyle, pointInTextPose, rangeWeight, registerBidi, renderLabel, resolveAlign, resolveRunFace, resolveRuns, resolveTextStyle, runsToMarkdown, runsToPlainText, scriptMetrics, scriptMetricsFor, setFlagOverRange, smallCapsScale, smallCapsScaleFor, smallCapsText, styleAtRange, textLineBoxes, textPoseLayoutInput, textToPath, textToPathsByPaint, toRuns, transformRunTexts, unboldPatch, verticalAlignOffset } from '@weasel-js/text';
56
+ export { DEFAULT_DECORATION_METRICS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_STYLE, DecorationKind, FaceMetricsFn, FitTextPoseOptions, FlagKey, FontVariantCaps, LabelOptions, LaidOutCell, LaidOutDecoration, LaidOutGroup, LaidOutLineBox, LaidOutOutlineGlyph, LaidOutQuad, LaidOutRuns, LayoutLine, LayoutResult, LayoutRunsOpts, MARKDOWN_RUN_GRAMMAR, MarkdownFontOptions, MeasureFn, MeasureTextBoundsOpts, MeasuredSpan, MeasuredText, PaintRunsOpts, PaintedRuns, PlacedGlyph, PointInTextPoseOpts, PositionedRun, QUAD_STRIDE, RangeStyle, ResolvedRun, ResolvedTextStyle, RunFlag, RunGrammar, RunMarker, RunSourceMap, RunStylePatch, SCRIPT_METRICS, SMALL_CAPS_SCALE, ScriptPreset, SetFlagResult, SmallCapsText, StyleKey, StyledRun, TextAlign, TextDirection, TextLineBoxesOpts, TextNodeSource, TextOutlineSource, TextOutlinesError, TextOutlinesFailure, TextPaint, TextPaintPath, TextPose, TextPoseLayout, TextPoseLayoutInput, TextRenderer, TextStyle, TextToPathOptions, TextTransform, TextVerticalAlign, TransformedRunText, applyStyleToRange, cachedLayoutRuns, cachedPaintRuns, caretIndexAt, createMarkdownRenderer, decorationMetrics, defaultLabelTextRenderer, effectiveRangeStyle, fitTextPose, fontString, isBoldWeight, isSmallCapsLetter, isTextData, layoutMarkdown, layoutRuns, layoutTextPose, loadTextOutlines, markdownToRuns, measureText, measureTextBounds, measuredWidth, nodeHasFlag, numericWeight, paintRuns, paragraphDirection, patchRangeStyle, pointInTextPose, rangeWeight, registerBidi, renderLabel, resolveAlign, resolveRunFace, resolveRuns, resolveTextStyle, runsToMarkdown, runsToPlainText, scriptMetrics, scriptMetricsFor, setFlagOverRange, smallCapsScale, smallCapsScaleFor, smallCapsText, styleAtRange, textLineBoxes, textPoseLayoutInput, textToPath, textToPathsByPaint, toRuns, transformRunTexts, unboldPatch, verticalAlignOffset } from '@weasel-js/text';
57
57
  import { UseTextEditReturn } from '@weasel-js/text-dom';
58
58
  export { StartEditOptions, StyleToggle, TEXT_EDIT_FONT_HOLD, TextEditClipRect, TextEditCommit, TextEditScreenPose, TextEditSelection, UseTextEditOptions, UseTextEditReturn, charOffsetToDomPosition, domPositionToCharOffset, domToRuns, runsToDom, useTextEdit } from '@weasel-js/text-dom';
59
59
  export { BUILTIN_MARKERS, MarkerCtx, MarkerEntry, MarkerPaint, MarkerSite, MarkerSiteRequest, OffsetPathOptions, StrokeToPathOptions, getMarker, listMarkers, markerInset, markerKeyOf, markerRegistry, markerSites, offsetPath, registerMarker, resolveMarkerSize, resolveStrokeWidth, strokeInsets, strokeToPath } from '@weasel-js/stroke';
@@ -643,7 +643,7 @@ interface CanvasViewHandle {
643
643
  /** Paint the view for one frame of the canvas: its layers through its own
644
644
  * camera, clipped to its rect. For a view added with `paint: false`, whose
645
645
  * host draws it; empty until the view has mounted. */
646
- draw(data: unknown, outer: View, dims: Dims): DrawCommand[];
646
+ draw(data: unknown, outer: View, dims: LayerDims): DrawCommand[];
647
647
  /** Stop painting and routing the view. */
648
648
  remove(): void;
649
649
  }
@@ -2249,11 +2249,12 @@ interface SceneViewLayers {
2249
2249
  * layer left out of it is not painted. */
2250
2250
  layerOrder?: readonly string[];
2251
2251
  }
2252
- /** The view size `buildSceneViewCommands` culls to, and how it bounds a
2253
- * node's paint before painting it. */
2252
+ /** The view size `buildSceneViewCommands` culls to, the density it will be
2253
+ * painted at, and how it bounds a node's paint before painting it. */
2254
2254
  interface SceneViewCull<TData, TLayer extends string, TPose> {
2255
2255
  width: number;
2256
2256
  height: number;
2257
+ dpr: number;
2257
2258
  paintBounds?: PaintBoundsFn<Node<TData, TLayer, TPose>, TPose>;
2258
2259
  }
2259
2260
  /** What to draw into an existing canvas: the scene, the view, and the same
@@ -11519,4 +11520,4 @@ declare const coreKitSettingsSchema: Omit<_weasel_js_prefs.PrefGroup, "children"
11519
11520
  };
11520
11521
  };
11521
11522
 
11522
- export { ANCHOR_HIT_BASE_PX, AREA_SELECT_ID, ActionsProviderIfRoot, AddNodeSpec, Affordance, AffordanceBinding, AffordanceRegion, type AffordanceRegionHit, type AimHeldViewProps, type AimOutline, type AimPoint, type AimSource, type AimSpace, type AlignAdapter, type AlignEdge, type AlignReference, type AnchorEdit, type AnchorFieldsApi, type AnchorHit, AnchorMarkerShape, type AnchorScratch, type AnchorState, type AnimateOnSetPoseOptions, type AnimatedReflow, type AnnotationFlag, type AnyTool, AreaSelectAdapter, type ArrangeArgs, type ArrangedPose, BUILTIN_TOOLS, BUILTIN_TOOL_IDS, type BaseFeature, type BendAlongEffect, type BindRigOptions, type BlendEffect, type BooleanCommitPiece, BooleanOp, BooleanOpOptions, BooleanOpResult, type BooleanOperands, type BooleanSource, BooleanStrokes, BooleansAdapter, BoundsConstraint, type BuildChromeCtxArgs, type BuiltinShapeToolId, type BuiltinToolId, type BuiltinToolOptions, CANVAS_CONTEXT_ATTRIBUTES, COMPOSITE_FEATURES, type CameraHeldViewProps, type CameraProps, CanvasDebugSink, type CanvasExtensionApi, type CanvasHelpers, type CanvasLayers, type CanvasProps, type CanvasRetainOptions, type CanvasSize, type CanvasSizeSnapshot, type CanvasSurfaceHelpers, CanvasView, type CanvasViewCamera, type CanvasViewCommonProps, type CanvasViewHandle, type CanvasViewHelpers, type CanvasViewProps, type CanvasViewState, type CarrySource, type ChildOrder, type ChromeCtx, type ChromeId, ChromeState, type ClampBounds, ClipboardSnapshot, type CoalescedCtx, CommonAffordanceScratch, type ComposeSelectionPoseOpts, type CompositeFeature, type ComputeSliceOpsArgs, type ComputeSliceResult, type Condition, ContentHandlerEntry, type Contribution, type ContributionChrome, type ContributionDepReader, type ContributionFrameCtx, type CoreIconName, type CoreKitTargetSettings, type CornerResizeAffordanceOptions, type CornerResizeScratch, type CreateChildrenLayerOpts, type CreateDebugOverlayLayerOpts, CreateOutlinesAdapter, type CreatePathEditingOverlayLayerOptions, type CreatePathLayerOpts, type CreatePenPreviewLayerOptions, type CreateTextLayerOpts, type CreateViewResolverOpts, type CreateViewportLayerOpts, CursorCoordsHud, type CursorCoordsHudProps, type CustomLayerEntry, DEFAULT_DEBUG_STROKES, DEFAULT_DEBUG_THEME, DEFAULT_FILL_COLOR, DEFAULT_HANDLE_SIZE, DEFAULT_INK, DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, DEFAULT_OVERLAY_STYLE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_SIMPLIFY_TOLERANCE, DEFAULT_SNAP_PX, DEFAULT_STROKE_COLOR, DRAG_PAN_ID, DRAW_TOOLS, DebugConfig, DebugSnapshot, DebugStrokes, DebugTheme, type DefaultTextData, type DeleteActionOptions, type DeleteArgs, DepRegistryProviderIfRoot, type Departures, DerivePathFn, DerivePoseFn, DerivedDep, type DerivedPart, DeviceProfileProvider, type DeviceProfileProviderProps, DevtoolsLabel, type DevtoolsLabelProps, Dims, type DistributeAdapter, type DistributeAxis, type DistributeMode, type DragGestureController, type DragGestureCtx, type DragGestureEndCtx, type DragGesturePhase, type DragGesturePoint, type DragHandleOptions, type DragPanParams, type DragPayload, type DragRadialController, type DragRadialCtx, type DragRadialEndCtx, type DragRadialPoint, type DragRadialState, type DragRectBounds, type DragRectController, type DragRectCtx, type DragRectEndCtx, type DragRectPoint, DrawCanvas, type DrawCanvasDraw, type DrawCanvasProps, type DrawnBoundsOptions, type DrawnBoundsScene, type DropZoneOptions, EditAnchorsDep, EditAnchorsParams, type EditableShape, type EditedLayerOf, type EditingDrawOne, type EffectItem, type EffectSource, type EffectSourceReader, EnteredGroupApi, FALLBACK_ACCENT, FEATURE_ACTION_IDS, type Feature, type FeatureBindingOptions, type FeatureEntry, type FeaturePreset, type FeedDelta, type FeedNode, FinishedEditFrame, FitViewToBoundsOptions, type FlipAxis, type FlipPivot, GHOST_STROKE, type GateLayerOptions, type GateSource, type GatedLayer, type GatedNode, type GatherSnapOptions, type GeneratedShape, GeometryProjection, GestureContext, type GesturePreviewSource, type GestureSource, HANDLE_BASE_PX, HANDLE_LOCK_ROLES, InertiaConfig as HandToolInertiaConfig, type HandleDragEnd, type HandleDragPoint, type HandleEdit, HandleLocks, type HandleScope, type HeadlessCanvasLike, type HostAnchorAlign, type HostAnchorInput, type HostAnchorOffset, type HostAnchorStyle, type HoverTracking, INSERT_REPOSITION_BINDING, IconRegistryProvider, IconRegistryProviderIfRoot, type IconRegistryProviderProps, InertiaConfig, InheritedPaint, type InkExtents, InsertAdapter, type InsertArgs, InsertBehavior, InsertNodeFactory, type InsertOp, type InsertOverlayStyle, InsertPaint, type InsertPreviewExtent, type InsertPreviewGeometry, type InsertPreviewLike, type InsertPreviewOverlay, type InsertToolOptions, type JoinPlan, KIT_SHAPE_KINDS, KIT_STANDARD_ACTION_IDS, KIT_VERSIONS, type KeyModifiers, type KeyState, type KeyStateAttachOptions, type KitInsertShape, type KitRequirements, type KitVersions, LONG_PRESS_FEEDBACK_ID, LassoHitMode, LassoSelectAdapter, LassoSelectBehavior, LayerEnumerableAdapter, LayerGroup, LayerHit, type LayerSlotValue, type LayersMap, LayoutDropTargetMode, LayoutFrame, type LayoutRef, LayoutStrategy, LeanSceneCanvas, type LeanSceneCanvasProps, type LifecycleAdapter, type LifecycleAnimation, type LinePoint, type LivePathEditSpec, type LongPressFeedbackOptions, MEASURE_ACTION_IDS, MEASURE_AFFORDANCE_KIND, MEASURE_LAYER_ID, MOVE_NODES_REQUIRES, type MeasureCell, type MeasureData, type MeasureEnd, type MeasureEndSourceOptions, type MeasureHit, type MeasurePoint, type Measurement, type Measurements, type ModeTriggerHandlers, type MomentumOptions, MoveAdapter, MoveBehavior, type MoveToIndexArgs, type NestedHitOpts, type NestedHitTester, type NodeClientRect, NodeClip, type NodeFlagArgs, type NodeGates, type NodeInk, type NodeInkCtx, type NodeOverlayFrame, type NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type NodeSilhouetteCtx, OVERLAY_ROLE_STROKES, type OpFactory, type OpenFilePickerOptions, type OpsApplier, OrderedAdapter, OriginProjection, type OutlineStrokeResult, type Overlay, type OverlayPoint, type OverlayVisibilityId, PAGES_DOC_KEY, PAGE_TOOLS, PAINTED_CURSOR_LAYER_ID, PATHFINDER_STROKES, PATH_ANCHOR_CHROME_ID, PATH_EFFECT, PATH_EFFECT_DERIVATIONS, PATH_GESTURE_TAGS, PATH_SNAP_LABELS, type Page, type PageEditOptions, type PageLayoutOptions, type PagesDoc, type PagesLayerOptions, type PaintBoundsFn, PaintKindEntry, type PaintedSkins, PasteCtx, PasteOmission, type PathAnchor, type PathAnchorAffordanceOptions, PathEditExtension, type PathEditFrame, type PathEditHost, PathEditMark, type PathEditOpening, type PathEditPreview, PathEditTarget, type PathEditingOverlaySlotConfig, type PathEditingOverlayStyle, type PathEffect, type PathEffectDerivations, type PathEffectOptions, type PathGestureFamily, type PathNode, PathPaint, type PathSnapSourceOptions, type PathStorageKind, PathSymmetryDep, type PenContinuation, type PenPreviewStyle, type PenScratch, type PenSubpath, type PencilPoint, PickHud, type PickHudProps, type PickSlop, type PickTopMostHitAdapter, type PinchZoomOptions, type PixelRenderPlan, type PlacedNode, type PlacedPage, PlaneMap, type PointSnap, type PointerFollower, PointerProviderIfRoot, type PointerSample, type PointerStylusState, type PolygonGenerator, type PolygonPoint, PoseAdapter, type PoseAnimationAdapter, type PoseCascade, PoseComposition, PoseDescriptor, type PoseFeed, type PoseFrame, PoseOverrides, PoseRemoval, type PoseRun, type PoseRunCtx, type PoseRunStep, type PoseSource, type PoseTargetOptions, type PoseTargetScene, type PoseTransitionScene, type PoseTransitionSeat, PoseWrite, type PosedNode, type PressureToWidthOptions, type PreviewNode, RECT_POSE_COMPOSITION, RIGID_POSE_COMPOSITION, ROTATION_HANDLE_BASE_PX, type RasterImage, type RasterRenderArgs, type RasterSession, type RasterSessionOptions, type RectAim, RectPose, RedrawSource, type ReflowScene, ReflowTransition, type ReflowTransitionOptions, type RegisterNodeShapeOptions, RegisteredOp, type RenderDebugSnapshotArgs, RenderLayer, type RenderNeeds, type RenderSceneToCanvasArgs, type RenderSceneToPixelsArgs, type ReorderArgs, type ReorderDirection, type ReorderRestoreEntry, type ReparentArgs, type RepeatAlongEffect, type RepeatableTransform, type RequirementMismatch, type ResizeActionOptions, ResizeAdapter, ResizeHandleLayout, type ResolvableView, type ResolvedOverlay, type RestPath, type Rig, type RigApply, type RigApplyContext, type RigNodeData, type RigNodeParts, type RigNodeSource, type RigScene, RotateAdapter, RotateBehavior, RotatedPose, type RotationAffordanceOptions, type RotationHandle, type RotationScratch, type RoutedNode, SCENE_CANVAS_FEATURES, SELECTION_MOVE_ID, SELECTION_RESIZE_ID, SELECTION_ROTATE_ID, SELECTION_TRANSFORM_ID, SELECT_TOOLS, SHAPE_COUNT_RANGE, SHAPE_KINDS, SHAPE_TOOLS, SNAP_ANGLE_STEP, SNAP_AXIS_STEP, SNAP_ROLES, STAR_RATIO_RANGE, Scene, type SceneAdapterSelection, SceneArrivalRefused, SceneCanvas, type SceneCanvasAdapter, type SceneCanvasApi, type SceneCanvasGeometry, type SceneCanvasHit, type SceneCanvasLayers, type SceneCanvasLongPress, type SceneCanvasProps, SceneCanvasSnap, type SceneCanvasViewport, type SceneClipTargetsOptions, Node as SceneNode, type SceneNodeClientRectOpts, ScenePoseReports, SceneRegistry, type SceneSlotConfig, type SceneSlotLayers, type SceneToAdapterOptions, SceneViewCanvas, type SceneViewCanvasProps, type SceneViewCull, type SceneViewDrawOne, type SceneViewLayers, type ScopedScene, type ScreenSlop, type SelectAdapter, type SelectFromLassoOptions, type SelectionHandleStyle, type SelectionHandlesLayerOpts, type SelectionMoveOptions, type SelectionOutlineLayerOpts, type SelectionOverlayLayerOpts, type SelectionOverlaySlotConfig, type SelectionRotateOptions, type SelectionStore, type SelectionTransformOptions, SerializedScene, SerializedSceneV1, type SetAnchorFieldParams, type SetChildOrderArgs, type SetDataArgs, type SetDependsOnArgs, type SetLayerArgs, type SetLayoutArgs, type SetPathArgs, type SetPathFields, type SetSelectionArgs, type SetTextArgs, type ShapeCoversPointOptions, type ShapeGenerator, type ShapeKind, type ShapeKindDescriptor, type ShapeKindsWhere, type ShownDataSource, type ShownDeparture, type SiblingSlot, SliceDep, type SliceLeaf, type SlicePiece, type SliceScratch, type SliceableNode, type SnapCandidateMark, SnapCollect, SnapDep, SnapGesture, SnapMark, SnapMods, SnapOutcome, SnapOutcomeStore, SnapProbeAt, SnapReadoutStyle, SnapSource, SourceCandidate, type SpatialReference, type SpatialReferenceSources, SpecsFromSerializedOptions, type SpringPoseOptions, type StaggerSpringPoseOptions, type StandardSlotConfig, type StandardSlotName, type StarGenerator, type StarPoint, type StatedNodeFields, StickyStyle, type StrokeRegionOptions, type StylusData, type SurfaceContribution, type SurfaceSizeProps, SvgIngestOptions, SystemLayerSpec, TOOL_DRIVEN_ACTION_IDS, TYPE_TOOLS, TargetTransform, type TextAlongEffect, TextOverflow, type ThresholdDragHandle, type ThresholdDragOptions, type Tool, type ToolDef, type ToolsApi, type TransformArgs, TransformFollower, type TweenPoseOptions, UNION_OF_CHILDREN, type UseAlignOptions, type UseAlignReturn, type UseBooleansOptions, type UseBooleansReturn, type UseDistributeOptions, type UseDistributeReturn, type UseDragGestureOptions, type UseDragRadialOptions, type UseDragRectOptions, type UseEyedropperToolOptions, type UseHandToolOptions, type UseHandleDragOptions, type UseHandleDragReturn, type UseHostAnchorOptions, type UseHoverTrackingArgs, type UseImageToolOptions, type UseKeyStateOptions, type UseKeybindingsOptions, type UseLassoSelectOptions, type UseLassoToolOptions, type UseMeasureToolOptions, UseMoveOptions, type UseNodeOverlayFrameOptions, type UsePenToolOptions, type UsePointerStylusOptions, type UsePolygonToolOptions, type UsePoseRunOptions, UseResizeOptions, type UseResizePolicyOptions, type UseRigNodeOptions, type UseRotateOptions, type UseSceneOptions, type UseSceneTextEditOptions, type UseSceneTextEditReturn, type UseSceneTrivialOptions, type UseSelectToolOptions, type UseSelectionOptions, type UseSliceToolOptions, type UseStandardActionsOptions, type UseStarToolOptions, type UseStickyToolOptions, type UseToolsOptions, VERSION, VIEW_MARKER_DEFAULT_STYLE, VIEW_MARKER_DRAG, VIEW_MARKER_HIT_SLOP_PX, VIEW_TOOLS, type VelocityTracker, type VersionCheck, type ViewAim, ViewAnimationOptions, type ViewAt, type ViewKitSettings, type ViewLike, ViewMarker, type ViewMarkerGrab, type ViewMarkerHost, type ViewMarkerProps, type ViewMarkerStyle, type ViewPoseAdapter, type ViewRect, type ViewResolver, type ViewTarget, type ViewTransform, ViewportDims, type ViewportLayer, type ViewportZoomAnimateOptions, type ViewportZoomOptions, type VisibilityRules, WHEEL_ZOOM_STEP, type WarmRenderOptions, WeaselProvider, type WeaselProviderProps, type WheelInput, type WheelPanOptions, type WheelPanOpts, type WorkspaceTintLayerOptions, type WrittenNode, type WrittenPoseTargetOptions, type ZoomAxis, type ZoomBound, type ZoomClampOpts, type ZoomFactor, accentColorOf, actionIs, addPage, adjacentPage, aimSpace2d, alignDeltaFor, alignTargetBounds, always, anchorEditWouldChange, and, animateLifecycle, animateOnSetPose, annotationLayerIds, annulusSemiAxes, applyOpsTo, applyOutlineStroke, areaSelectAction, areaSelectContribution, arrangePreset, assertSnapSourceIds, axisAlignedBounds, axisZoomFactor, bindPoseTransition, bindRig, buildChromeCtx, buildDebugOverlayCommands, buildSceneViewCommands, canBringForward, canHover, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, carriedDescendants, checkRequirements, clampShapeGenerator, clampView, classifyPathStorage, clearSelectionAction, clipOutline, clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction, cloneAction, coarsePointer, commitAnchorEdit, commitBooleanPieces, commitDeleteToScene, commitOps, composeAffordanceLayer, composeRectPose, composeRigidPose, composeSelectionPose, computeFitViewport, computeSliceOps, computeWheelAction, cond, contextMenuAction, coreKitSettingsSchema, createArrangeOp, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDeleteAction, createDeleteOp, createDepartures, createEnteredGroupScope, createHistory, createInsertOp, createKeyState, createLongPressFeedbackContribution, createMeasurements, createMoveToIndexOp, createNodeProperties, createNodeRouting, createPaintedCursorLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathEffectDerivations, createPathLayer, createPenPreviewLayer, createPointerFollower, createPoseFeed, createPoseOverrides, createPoseTarget, createRasterSession, createReflowTransition, createReorderOp, createReparentOp, createResizeAction, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetChildOrderOp, createSetDataOp, createSetDependsOnOp, createSetHiddenOp, createSetLayerOp, createSetLayoutOp, createSetLockedOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createSnapReadoutLayer, createTextLayer, createTransformOp, createVelocityTracker, createViewMarkerContribution, createViewMarkerLayer, createViewResolver, createViewportLayer, createWrittenPoseTarget, currentMeasureId, cycleFill, dataRestPath, debugSnapshotArgs, decomposeRectPose, decomposeRigidPose, defaultCommitAdapter, defaultDrawOne, defaultNodeProperties, defaultNodeRouting, defaultPaintBounds, defaultVisibilityRules, definesFrame, deleteAction, deleteAnchorsAction, deleteNode, deleteSelectedMark, depOf, derivedDepOf, derivedPartsOf, derivedPose, dispatchApplyBatch, documentDepOf, documentOf, documentPose, dragPanContribution, dragPointOf, drawnAABBOf, drawnBoundsOf, drawnBoundsScene, editAnchorsAction, editPreset, editTargetOf, editedPathSymmetries, editingAnchors, editingLayer, effectSourceFor, effectivePose, enterTextEditAction, enumerateAnchors, exitPathEditToolAction, findNodeShape, findShapeBounds, findShapeDrawnBounds, findShapeInk, findShapeSilhouette, finishPathEditFrame, fitToBounds, fitViewToPage, fitZoom, flattenPreviews, flipAction, focused, forEachCoalesced, forgetTransform, gateLayer, gatherSnapCandidates, gesturePlaneReader, gestureViewReader, gesturing, getAlpha01, getNodeShapes, getStylusData, glidesByDefault, grabViewMarker, groupNodeRouting, hasChildren, hasEditablePath, hiddenSourceDeleteOps, hiddenSourcesTakenWith, hidesSubtree, hitAffordanceRegions, hitAnchor, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateView, isAnnotationLayer, isAnnotationNode, isLeaf, isNodeHidden, isNodeLocked, isOverChildren, isRectAim, isShapeGenerator, joinPathsCommand, joinSelectedAnchors, kitTextHandler, lassoSelectAction, lastTransform, layoutPages, livePathEdit, locksInForce, makeHandleCommand, makePinchZoomAction, makeViewportWheelPanAction, makeViewportZoomAction, markUnder, measureAt, measureBetween, measureEndSource, measureEndsOf, measureIds, measureNode, measurePose, measuredSegmentCommands, measurementOf, measurementsContribution, mergeAlphaFromPrev, mergeContributions, modeDecorationLayer, modeIn, modeIs, modeNot, modeTriggers, modifierHeld, momentum, moveAction, moveNodes, moveNodesOps, movePage, movePreset, multiActive, nestedHitTester, never, nextPageId, nodeAsShown, nodeGates, nodeOutline, normalizeView, normalizeZoom, not, noteFontRead, nudgeAnchorsDownAction, nudgeAnchorsLeftAction, nudgeAnchorsRightAction, nudgeAnchorsUpAction, onEmptyCanvas, opFactoryRegistry, openContextMenu, openFilePicker, or, outlinePreset, overChildren, pageAt, pageHolding, pageInView, pageMembers, pageName, pageOfBounds, pagesBounds, pagesLayer, pagesOf, paintAbove, paintAlpha, paintWithAlpha, paintWithColor, parseDebugFlags, pathCopy, pathEditPathOf, pathEditPreview, pathEditToolAction, pathEditToolActive, pathEffectNode, pathEffectOf, pathEffectParts, pathFromParts, pathNodesOf, pathOperationTags, pathOriginProjection, pathPoseDescriptor, pathSnapGlyph, pathSnapSource, pathsPreset, pickTopMostHit, pillCommands, pinchZoomAction, placeAction, placeSkeleton, placedPagesOf, planJoin, planPixelRender, pointRegionFrame, pointSnap, poseAxes, pressureToWidth, publishPreviews, rasterToPng, readEffectSource, rebuildOp, reconcileSpecs, recordTransform, rectAim, regenerateShape, registerNodeShape, registerOpFactory, registeredOpNames, registeredPathEffects, releaseCanvasRenderer, removePage, renamePage, renderDebugSnapshot, renderNeeds, renderSceneToCanvas, renderSceneToPixels, requiresAnchorSelection, reshapeOps, reshapeTo, resizeAction, resizePage, resizePreset, resolveBooleanOperands, resolveEditablePathOf, resolveOverlays, resolvePartPaint, resolvePreviews, resolveSpatialReference, resolveVisibility, resolvedSnapMarks, rigFromNode, rigidRigApply, rotateAction, rotateAroundAABBCenter, rotatePreset, rotationDegreesUnit, rotationHandle, rotationSnapSource, routeKind, satisfiesRange, sceneCarrySource, sceneClipTargets, sceneFromJSON, sceneNodeClientRect, scenePoseAdapter, scenePoseFrame, scenePoseTarget, sceneSelectionStore, sceneSharedUnitScopes, sceneToAdapter, sceneUnitScopes, screenToWorld, screenTolerance, segmentUnder, selectAnchorAction, selectFromLasso, selectPreset, selectedPathNodes, selectionAtLeast, selectionEmpty, selectionIs, selectionLayer, selectionMoveBindings, selectionMoveContribution, selectionResizeBindings, selectionResizeContribution, selectionRotateBindings, selectionRotateContribution, selectionTransformBindings, selectionTransformContribution, setPages, settleShapeGenerator, shapeCoversPoint, shapeGeneratorOf, shapeGeneratorPath, sliceAction, slotOf, snapMods, snapSourcesFor, solid, sourcesHiddenBy, sourcesOf, splitOverChildren, springPose, staggerSpringPose, startThresholdDrag, statedFields, stepAngles, storeEditablePath, strokeOf, strokeRegion, strokeWith, textAlongParts, tickedSegment, toHex8, translateRectPose, tweenPose, unionAABB, unionBounds, unionOfChildren, unionOfChildrenVia, unplaceSkeleton, useAlign, useAnchorFields, useAnimatedReflow, useAutoCenter, useBooleans, useBooleansAdapter, useBooleansAdapterSource, useCanvasSize, useCreateOutlinesAdapter, useDeviceProfile, useDevtoolsLabel, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEffectSourcesLayer, useElementSize, useEllipseTool, useEyedropperTool, useGradientKinds, useHandTool, useHandleDrag, useHostAnchor, useHoverTracking, useIconGlyph, useIconRegistry, useIconVariant, useImageTool, useKeyModifiers, useKeyState, useKeybindings, useLassoTool, useLineTool, useMeasureTool, useNodeOverlayFrame, usePaintKind, usePaintKinds, usePenTool, usePencilTool, usePointerStylus, usePolygonTool, usePoseDescriptorDepSource, usePoseRun, usePoseTransition, useRectTool, useResizePolicy, useRig, useRigNode, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSliceDep, useSliceDepSource, useSliceTool, useSnapSource, useStandardActions, useStarTool, useStickyTool, useTextTool, useTools, useTransformFollower, useVelocityTracker, viewForAim, viewMarkerDragAction, viewPreset, viewToTransform, viewZoom, viewportDragPanAction, viewportWheelPanAction, viewportWorldRect, viewportZoomAction, warmRender, watchDevicePixelRatio, wheelPan, wheelZoom, wheelZoomFactor, when, withAlpha01, withCoord, withInheritedPaintBounds, withInheritedPaints, withPath, withPathEffectsRegistry, withoutShapeGenerator, workspaceTintLayer, worldPoseLookup, worldToScreen, writtenBy, zoomAt, zoomAtLeast };
11523
+ export { ANCHOR_HIT_BASE_PX, AREA_SELECT_ID, ActionsProviderIfRoot, AddNodeSpec, Affordance, AffordanceBinding, AffordanceRegion, type AffordanceRegionHit, type AimHeldViewProps, type AimOutline, type AimPoint, type AimSource, type AimSpace, type AlignAdapter, type AlignEdge, type AlignReference, type AnchorEdit, type AnchorFieldsApi, type AnchorHit, AnchorMarkerShape, type AnchorScratch, type AnchorState, type AnimateOnSetPoseOptions, type AnimatedReflow, type AnnotationFlag, type AnyTool, AreaSelectAdapter, type ArrangeArgs, type ArrangedPose, BUILTIN_TOOLS, BUILTIN_TOOL_IDS, type BaseFeature, type BendAlongEffect, type BindRigOptions, type BlendEffect, type BooleanCommitPiece, BooleanOp, BooleanOpOptions, BooleanOpResult, type BooleanOperands, type BooleanSource, BooleanStrokes, BooleansAdapter, BoundsConstraint, type BuildChromeCtxArgs, type BuiltinShapeToolId, type BuiltinToolId, type BuiltinToolOptions, CANVAS_CONTEXT_ATTRIBUTES, COMPOSITE_FEATURES, type CameraHeldViewProps, type CameraProps, CanvasDebugSink, type CanvasExtensionApi, type CanvasHelpers, type CanvasLayers, type CanvasProps, type CanvasRetainOptions, type CanvasSize, type CanvasSizeSnapshot, type CanvasSurfaceHelpers, CanvasView, type CanvasViewCamera, type CanvasViewCommonProps, type CanvasViewHandle, type CanvasViewHelpers, type CanvasViewProps, type CanvasViewState, type CarrySource, type ChildOrder, type ChromeCtx, type ChromeId, ChromeState, type ClampBounds, ClipboardSnapshot, type CoalescedCtx, CommonAffordanceScratch, type ComposeSelectionPoseOpts, type CompositeFeature, type ComputeSliceOpsArgs, type ComputeSliceResult, type Condition, ContentHandlerEntry, type Contribution, type ContributionChrome, type ContributionDepReader, type ContributionFrameCtx, type CoreIconName, type CoreKitTargetSettings, type CornerResizeAffordanceOptions, type CornerResizeScratch, type CreateChildrenLayerOpts, type CreateDebugOverlayLayerOpts, CreateOutlinesAdapter, type CreatePathEditingOverlayLayerOptions, type CreatePathLayerOpts, type CreatePenPreviewLayerOptions, type CreateTextLayerOpts, type CreateViewResolverOpts, type CreateViewportLayerOpts, CursorCoordsHud, type CursorCoordsHudProps, type CustomLayerEntry, DEFAULT_DEBUG_STROKES, DEFAULT_DEBUG_THEME, DEFAULT_FILL_COLOR, DEFAULT_HANDLE_SIZE, DEFAULT_INK, DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, DEFAULT_OVERLAY_STYLE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_SIMPLIFY_TOLERANCE, DEFAULT_SNAP_PX, DEFAULT_STROKE_COLOR, DRAG_PAN_ID, DRAW_TOOLS, DebugConfig, DebugSnapshot, DebugStrokes, DebugTheme, type DefaultTextData, type DeleteActionOptions, type DeleteArgs, DepRegistryProviderIfRoot, type Departures, DerivePathFn, DerivePoseFn, DerivedDep, type DerivedPart, DeviceProfileProvider, type DeviceProfileProviderProps, DevtoolsLabel, type DevtoolsLabelProps, Dims, type DistributeAdapter, type DistributeAxis, type DistributeMode, type DragGestureController, type DragGestureCtx, type DragGestureEndCtx, type DragGesturePhase, type DragGesturePoint, type DragHandleOptions, type DragPanParams, type DragPayload, type DragRadialController, type DragRadialCtx, type DragRadialEndCtx, type DragRadialPoint, type DragRadialState, type DragRectBounds, type DragRectController, type DragRectCtx, type DragRectEndCtx, type DragRectPoint, DrawCanvas, type DrawCanvasDraw, type DrawCanvasProps, type DrawnBoundsOptions, type DrawnBoundsScene, type DropZoneOptions, EditAnchorsDep, EditAnchorsParams, type EditableShape, type EditedLayerOf, type EditingDrawOne, type EffectItem, type EffectSource, type EffectSourceReader, EnteredGroupApi, FALLBACK_ACCENT, FEATURE_ACTION_IDS, type Feature, type FeatureBindingOptions, type FeatureEntry, type FeaturePreset, type FeedDelta, type FeedNode, FinishedEditFrame, FitViewToBoundsOptions, type FlipAxis, type FlipPivot, GHOST_STROKE, type GateLayerOptions, type GateSource, type GatedLayer, type GatedNode, type GatherSnapOptions, type GeneratedShape, GeometryProjection, GestureContext, type GesturePreviewSource, type GestureSource, HANDLE_BASE_PX, HANDLE_LOCK_ROLES, InertiaConfig as HandToolInertiaConfig, type HandleDragEnd, type HandleDragPoint, type HandleEdit, HandleLocks, type HandleScope, type HeadlessCanvasLike, type HostAnchorAlign, type HostAnchorInput, type HostAnchorOffset, type HostAnchorStyle, type HoverTracking, INSERT_REPOSITION_BINDING, IconRegistryProvider, IconRegistryProviderIfRoot, type IconRegistryProviderProps, InertiaConfig, InheritedPaint, type InkExtents, InsertAdapter, type InsertArgs, InsertBehavior, InsertNodeFactory, type InsertOp, type InsertOverlayStyle, InsertPaint, type InsertPreviewExtent, type InsertPreviewGeometry, type InsertPreviewLike, type InsertPreviewOverlay, type InsertToolOptions, type JoinPlan, KIT_SHAPE_KINDS, KIT_STANDARD_ACTION_IDS, KIT_VERSIONS, type KeyModifiers, type KeyState, type KeyStateAttachOptions, type KitInsertShape, type KitRequirements, type KitVersions, LONG_PRESS_FEEDBACK_ID, LassoHitMode, LassoSelectAdapter, LassoSelectBehavior, LayerDims, LayerEnumerableAdapter, LayerGroup, LayerHit, type LayerSlotValue, type LayersMap, LayoutDropTargetMode, LayoutFrame, type LayoutRef, LayoutStrategy, LeanSceneCanvas, type LeanSceneCanvasProps, type LifecycleAdapter, type LifecycleAnimation, type LinePoint, type LivePathEditSpec, type LongPressFeedbackOptions, MEASURE_ACTION_IDS, MEASURE_AFFORDANCE_KIND, MEASURE_LAYER_ID, MOVE_NODES_REQUIRES, type MeasureCell, type MeasureData, type MeasureEnd, type MeasureEndSourceOptions, type MeasureHit, type MeasurePoint, type Measurement, type Measurements, type ModeTriggerHandlers, type MomentumOptions, MoveAdapter, MoveBehavior, type MoveToIndexArgs, type NestedHitOpts, type NestedHitTester, type NodeClientRect, NodeClip, type NodeFlagArgs, type NodeGates, type NodeInk, type NodeInkCtx, type NodeOverlayFrame, type NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type NodeSilhouetteCtx, OVERLAY_ROLE_STROKES, type OpFactory, type OpenFilePickerOptions, type OpsApplier, OrderedAdapter, OriginProjection, type OutlineStrokeResult, type Overlay, type OverlayPoint, type OverlayVisibilityId, PAGES_DOC_KEY, PAGE_TOOLS, PAINTED_CURSOR_LAYER_ID, PATHFINDER_STROKES, PATH_ANCHOR_CHROME_ID, PATH_EFFECT, PATH_EFFECT_DERIVATIONS, PATH_GESTURE_TAGS, PATH_SNAP_LABELS, type Page, type PageEditOptions, type PageLayoutOptions, type PagesDoc, type PagesLayerOptions, type PaintBoundsFn, PaintKindEntry, type PaintedSkins, PasteCtx, PasteOmission, type PathAnchor, type PathAnchorAffordanceOptions, PathEditExtension, type PathEditFrame, type PathEditHost, PathEditMark, type PathEditOpening, type PathEditPreview, PathEditTarget, type PathEditingOverlaySlotConfig, type PathEditingOverlayStyle, type PathEffect, type PathEffectDerivations, type PathEffectOptions, type PathGestureFamily, type PathNode, PathPaint, type PathSnapSourceOptions, type PathStorageKind, PathSymmetryDep, type PenContinuation, type PenPreviewStyle, type PenScratch, type PenSubpath, type PencilPoint, PickHud, type PickHudProps, type PickSlop, type PickTopMostHitAdapter, type PinchZoomOptions, type PixelRenderPlan, type PlacedNode, type PlacedPage, PlaneMap, type PointSnap, type PointerFollower, PointerProviderIfRoot, type PointerSample, type PointerStylusState, type PolygonGenerator, type PolygonPoint, PoseAdapter, type PoseAnimationAdapter, type PoseCascade, PoseComposition, PoseDescriptor, type PoseFeed, type PoseFrame, PoseOverrides, PoseRemoval, type PoseRun, type PoseRunCtx, type PoseRunStep, type PoseSource, type PoseTargetOptions, type PoseTargetScene, type PoseTransitionScene, type PoseTransitionSeat, PoseWrite, type PosedNode, type PressureToWidthOptions, type PreviewNode, RECT_POSE_COMPOSITION, RIGID_POSE_COMPOSITION, ROTATION_HANDLE_BASE_PX, type RasterImage, type RasterRenderArgs, type RasterSession, type RasterSessionOptions, type RectAim, RectPose, RedrawSource, type ReflowScene, ReflowTransition, type ReflowTransitionOptions, type RegisterNodeShapeOptions, RegisteredOp, type RenderDebugSnapshotArgs, RenderLayer, type RenderNeeds, type RenderSceneToCanvasArgs, type RenderSceneToPixelsArgs, type ReorderArgs, type ReorderDirection, type ReorderRestoreEntry, type ReparentArgs, type RepeatAlongEffect, type RepeatableTransform, type RequirementMismatch, type ResizeActionOptions, ResizeAdapter, ResizeHandleLayout, type ResolvableView, type ResolvedOverlay, type RestPath, type Rig, type RigApply, type RigApplyContext, type RigNodeData, type RigNodeParts, type RigNodeSource, type RigScene, RotateAdapter, RotateBehavior, RotatedPose, type RotationAffordanceOptions, type RotationHandle, type RotationScratch, type RoutedNode, SCENE_CANVAS_FEATURES, SELECTION_MOVE_ID, SELECTION_RESIZE_ID, SELECTION_ROTATE_ID, SELECTION_TRANSFORM_ID, SELECT_TOOLS, SHAPE_COUNT_RANGE, SHAPE_KINDS, SHAPE_TOOLS, SNAP_ANGLE_STEP, SNAP_AXIS_STEP, SNAP_ROLES, STAR_RATIO_RANGE, Scene, type SceneAdapterSelection, SceneArrivalRefused, SceneCanvas, type SceneCanvasAdapter, type SceneCanvasApi, type SceneCanvasGeometry, type SceneCanvasHit, type SceneCanvasLayers, type SceneCanvasLongPress, type SceneCanvasProps, SceneCanvasSnap, type SceneCanvasViewport, type SceneClipTargetsOptions, Node as SceneNode, type SceneNodeClientRectOpts, ScenePoseReports, SceneRegistry, type SceneSlotConfig, type SceneSlotLayers, type SceneToAdapterOptions, SceneViewCanvas, type SceneViewCanvasProps, type SceneViewCull, type SceneViewDrawOne, type SceneViewLayers, type ScopedScene, type ScreenSlop, type SelectAdapter, type SelectFromLassoOptions, type SelectionHandleStyle, type SelectionHandlesLayerOpts, type SelectionMoveOptions, type SelectionOutlineLayerOpts, type SelectionOverlayLayerOpts, type SelectionOverlaySlotConfig, type SelectionRotateOptions, type SelectionStore, type SelectionTransformOptions, SerializedScene, SerializedSceneV1, type SetAnchorFieldParams, type SetChildOrderArgs, type SetDataArgs, type SetDependsOnArgs, type SetLayerArgs, type SetLayoutArgs, type SetPathArgs, type SetPathFields, type SetSelectionArgs, type SetTextArgs, type ShapeCoversPointOptions, type ShapeGenerator, type ShapeKind, type ShapeKindDescriptor, type ShapeKindsWhere, type ShownDataSource, type ShownDeparture, type SiblingSlot, SliceDep, type SliceLeaf, type SlicePiece, type SliceScratch, type SliceableNode, type SnapCandidateMark, SnapCollect, SnapDep, SnapGesture, SnapMark, SnapMods, SnapOutcome, SnapOutcomeStore, SnapProbeAt, SnapReadoutStyle, SnapSource, SourceCandidate, type SpatialReference, type SpatialReferenceSources, SpecsFromSerializedOptions, type SpringPoseOptions, type StaggerSpringPoseOptions, type StandardSlotConfig, type StandardSlotName, type StarGenerator, type StarPoint, type StatedNodeFields, StickyStyle, type StrokeRegionOptions, type StylusData, type SurfaceContribution, type SurfaceSizeProps, SvgIngestOptions, SystemLayerSpec, TOOL_DRIVEN_ACTION_IDS, TYPE_TOOLS, TargetTransform, type TextAlongEffect, TextOverflow, type ThresholdDragHandle, type ThresholdDragOptions, type Tool, type ToolDef, type ToolsApi, type TransformArgs, TransformFollower, type TweenPoseOptions, UNION_OF_CHILDREN, type UseAlignOptions, type UseAlignReturn, type UseBooleansOptions, type UseBooleansReturn, type UseDistributeOptions, type UseDistributeReturn, type UseDragGestureOptions, type UseDragRadialOptions, type UseDragRectOptions, type UseEyedropperToolOptions, type UseHandToolOptions, type UseHandleDragOptions, type UseHandleDragReturn, type UseHostAnchorOptions, type UseHoverTrackingArgs, type UseImageToolOptions, type UseKeyStateOptions, type UseKeybindingsOptions, type UseLassoSelectOptions, type UseLassoToolOptions, type UseMeasureToolOptions, UseMoveOptions, type UseNodeOverlayFrameOptions, type UsePenToolOptions, type UsePointerStylusOptions, type UsePolygonToolOptions, type UsePoseRunOptions, UseResizeOptions, type UseResizePolicyOptions, type UseRigNodeOptions, type UseRotateOptions, type UseSceneOptions, type UseSceneTextEditOptions, type UseSceneTextEditReturn, type UseSceneTrivialOptions, type UseSelectToolOptions, type UseSelectionOptions, type UseSliceToolOptions, type UseStandardActionsOptions, type UseStarToolOptions, type UseStickyToolOptions, type UseToolsOptions, VERSION, VIEW_MARKER_DEFAULT_STYLE, VIEW_MARKER_DRAG, VIEW_MARKER_HIT_SLOP_PX, VIEW_TOOLS, type VelocityTracker, type VersionCheck, type ViewAim, ViewAnimationOptions, type ViewAt, type ViewKitSettings, type ViewLike, ViewMarker, type ViewMarkerGrab, type ViewMarkerHost, type ViewMarkerProps, type ViewMarkerStyle, type ViewPoseAdapter, type ViewRect, type ViewResolver, type ViewTarget, type ViewTransform, ViewportDims, type ViewportLayer, type ViewportZoomAnimateOptions, type ViewportZoomOptions, type VisibilityRules, WHEEL_ZOOM_STEP, type WarmRenderOptions, WeaselProvider, type WeaselProviderProps, type WheelInput, type WheelPanOptions, type WheelPanOpts, type WorkspaceTintLayerOptions, type WrittenNode, type WrittenPoseTargetOptions, type ZoomAxis, type ZoomBound, type ZoomClampOpts, type ZoomFactor, accentColorOf, actionIs, addPage, adjacentPage, aimSpace2d, alignDeltaFor, alignTargetBounds, always, anchorEditWouldChange, and, animateLifecycle, animateOnSetPose, annotationLayerIds, annulusSemiAxes, applyOpsTo, applyOutlineStroke, areaSelectAction, areaSelectContribution, arrangePreset, assertSnapSourceIds, axisAlignedBounds, axisZoomFactor, bindPoseTransition, bindRig, buildChromeCtx, buildDebugOverlayCommands, buildSceneViewCommands, canBringForward, canHover, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, carriedDescendants, checkRequirements, clampShapeGenerator, clampView, classifyPathStorage, clearSelectionAction, clipOutline, clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction, cloneAction, coarsePointer, commitAnchorEdit, commitBooleanPieces, commitDeleteToScene, commitOps, composeAffordanceLayer, composeRectPose, composeRigidPose, composeSelectionPose, computeFitViewport, computeSliceOps, computeWheelAction, cond, contextMenuAction, coreKitSettingsSchema, createArrangeOp, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDeleteAction, createDeleteOp, createDepartures, createEnteredGroupScope, createHistory, createInsertOp, createKeyState, createLongPressFeedbackContribution, createMeasurements, createMoveToIndexOp, createNodeProperties, createNodeRouting, createPaintedCursorLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathEffectDerivations, createPathLayer, createPenPreviewLayer, createPointerFollower, createPoseFeed, createPoseOverrides, createPoseTarget, createRasterSession, createReflowTransition, createReorderOp, createReparentOp, createResizeAction, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetChildOrderOp, createSetDataOp, createSetDependsOnOp, createSetHiddenOp, createSetLayerOp, createSetLayoutOp, createSetLockedOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createSnapReadoutLayer, createTextLayer, createTransformOp, createVelocityTracker, createViewMarkerContribution, createViewMarkerLayer, createViewResolver, createViewportLayer, createWrittenPoseTarget, currentMeasureId, cycleFill, dataRestPath, debugSnapshotArgs, decomposeRectPose, decomposeRigidPose, defaultCommitAdapter, defaultDrawOne, defaultNodeProperties, defaultNodeRouting, defaultPaintBounds, defaultVisibilityRules, definesFrame, deleteAction, deleteAnchorsAction, deleteNode, deleteSelectedMark, depOf, derivedDepOf, derivedPartsOf, derivedPose, dispatchApplyBatch, documentDepOf, documentOf, documentPose, dragPanContribution, dragPointOf, drawnAABBOf, drawnBoundsOf, drawnBoundsScene, editAnchorsAction, editPreset, editTargetOf, editedPathSymmetries, editingAnchors, editingLayer, effectSourceFor, effectivePose, enterTextEditAction, enumerateAnchors, exitPathEditToolAction, findNodeShape, findShapeBounds, findShapeDrawnBounds, findShapeInk, findShapeSilhouette, finishPathEditFrame, fitToBounds, fitViewToPage, fitZoom, flattenPreviews, flipAction, focused, forEachCoalesced, forgetTransform, gateLayer, gatherSnapCandidates, gesturePlaneReader, gestureViewReader, gesturing, getAlpha01, getNodeShapes, getStylusData, glidesByDefault, grabViewMarker, groupNodeRouting, hasChildren, hasEditablePath, hiddenSourceDeleteOps, hiddenSourcesTakenWith, hidesSubtree, hitAffordanceRegions, hitAnchor, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateView, isAnnotationLayer, isAnnotationNode, isLeaf, isNodeHidden, isNodeLocked, isOverChildren, isRectAim, isShapeGenerator, joinPathsCommand, joinSelectedAnchors, kitTextHandler, lassoSelectAction, lastTransform, layoutPages, livePathEdit, locksInForce, makeHandleCommand, makePinchZoomAction, makeViewportWheelPanAction, makeViewportZoomAction, markUnder, measureAt, measureBetween, measureEndSource, measureEndsOf, measureIds, measureNode, measurePose, measuredSegmentCommands, measurementOf, measurementsContribution, mergeAlphaFromPrev, mergeContributions, modeDecorationLayer, modeIn, modeIs, modeNot, modeTriggers, modifierHeld, momentum, moveAction, moveNodes, moveNodesOps, movePage, movePreset, multiActive, nestedHitTester, never, nextPageId, nodeAsShown, nodeGates, nodeOutline, normalizeView, normalizeZoom, not, noteFontRead, nudgeAnchorsDownAction, nudgeAnchorsLeftAction, nudgeAnchorsRightAction, nudgeAnchorsUpAction, onEmptyCanvas, opFactoryRegistry, openContextMenu, openFilePicker, or, outlinePreset, overChildren, pageAt, pageHolding, pageInView, pageMembers, pageName, pageOfBounds, pagesBounds, pagesLayer, pagesOf, paintAbove, paintAlpha, paintWithAlpha, paintWithColor, parseDebugFlags, pathCopy, pathEditPathOf, pathEditPreview, pathEditToolAction, pathEditToolActive, pathEffectNode, pathEffectOf, pathEffectParts, pathFromParts, pathNodesOf, pathOperationTags, pathOriginProjection, pathPoseDescriptor, pathSnapGlyph, pathSnapSource, pathsPreset, pickTopMostHit, pillCommands, pinchZoomAction, placeAction, placeSkeleton, placedPagesOf, planJoin, planPixelRender, pointRegionFrame, pointSnap, poseAxes, pressureToWidth, publishPreviews, rasterToPng, readEffectSource, rebuildOp, reconcileSpecs, recordTransform, rectAim, regenerateShape, registerNodeShape, registerOpFactory, registeredOpNames, registeredPathEffects, releaseCanvasRenderer, removePage, renamePage, renderDebugSnapshot, renderNeeds, renderSceneToCanvas, renderSceneToPixels, requiresAnchorSelection, reshapeOps, reshapeTo, resizeAction, resizePage, resizePreset, resolveBooleanOperands, resolveEditablePathOf, resolveOverlays, resolvePartPaint, resolvePreviews, resolveSpatialReference, resolveVisibility, resolvedSnapMarks, rigFromNode, rigidRigApply, rotateAction, rotateAroundAABBCenter, rotatePreset, rotationDegreesUnit, rotationHandle, rotationSnapSource, routeKind, satisfiesRange, sceneCarrySource, sceneClipTargets, sceneFromJSON, sceneNodeClientRect, scenePoseAdapter, scenePoseFrame, scenePoseTarget, sceneSelectionStore, sceneSharedUnitScopes, sceneToAdapter, sceneUnitScopes, screenToWorld, screenTolerance, segmentUnder, selectAnchorAction, selectFromLasso, selectPreset, selectedPathNodes, selectionAtLeast, selectionEmpty, selectionIs, selectionLayer, selectionMoveBindings, selectionMoveContribution, selectionResizeBindings, selectionResizeContribution, selectionRotateBindings, selectionRotateContribution, selectionTransformBindings, selectionTransformContribution, setPages, settleShapeGenerator, shapeCoversPoint, shapeGeneratorOf, shapeGeneratorPath, sliceAction, slotOf, snapMods, snapSourcesFor, solid, sourcesHiddenBy, sourcesOf, splitOverChildren, springPose, staggerSpringPose, startThresholdDrag, statedFields, stepAngles, storeEditablePath, strokeOf, strokeRegion, strokeWith, textAlongParts, tickedSegment, toHex8, translateRectPose, tweenPose, unionAABB, unionBounds, unionOfChildren, unionOfChildrenVia, unplaceSkeleton, useAlign, useAnchorFields, useAnimatedReflow, useAutoCenter, useBooleans, useBooleansAdapter, useBooleansAdapterSource, useCanvasSize, useCreateOutlinesAdapter, useDeviceProfile, useDevtoolsLabel, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEffectSourcesLayer, useElementSize, useEllipseTool, useEyedropperTool, useGradientKinds, useHandTool, useHandleDrag, useHostAnchor, useHoverTracking, useIconGlyph, useIconRegistry, useIconVariant, useImageTool, useKeyModifiers, useKeyState, useKeybindings, useLassoTool, useLineTool, useMeasureTool, useNodeOverlayFrame, usePaintKind, usePaintKinds, usePenTool, usePencilTool, usePointerStylus, usePolygonTool, usePoseDescriptorDepSource, usePoseRun, usePoseTransition, useRectTool, useResizePolicy, useRig, useRigNode, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSliceDep, useSliceDepSource, useSliceTool, useSnapSource, useStandardActions, useStarTool, useStickyTool, useTextTool, useTools, useTransformFollower, useVelocityTracker, viewForAim, viewMarkerDragAction, viewPreset, viewToTransform, viewZoom, viewportDragPanAction, viewportWheelPanAction, viewportWorldRect, viewportZoomAction, warmRender, watchDevicePixelRatio, wheelPan, wheelZoom, wheelZoomFactor, when, withAlpha01, withCoord, withInheritedPaintBounds, withInheritedPaints, withPath, withPathEffectsRegistry, withoutShapeGenerator, workspaceTintLayer, worldPoseLookup, worldToScreen, writtenBy, zoomAt, zoomAtLeast };
package/dist/index.js CHANGED
@@ -313,7 +313,7 @@ import { createTextLayer } from "./features/text/textLayer.js";
313
313
  import { useSceneTextEdit } from "./features/text/useSceneTextEdit.js";
314
314
  import { TEXT_EDIT_FONT_HOLD, TextOutlinesError, charOffsetToDomPosition, domPositionToCharOffset, domToRuns, loadTextOutlines, runsToDom, textCommand, textCommandFromPose, textCommandFromRuns, textToPath, textToPathsByPaint, useTextEdit } from "./features/text/index.js";
315
315
  import { useCreateOutlinesAdapter } from "./interactions/actions/outlines/useCreateOutlinesAdapter.js";
316
- import { DEFAULT_DECORATION_METRICS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_STYLE, MARKDOWN_RUN_GRAMMAR, SCRIPT_METRICS, SMALL_CAPS_SCALE, applyStyleToRange, cachedLayoutRuns, cachedPaintRuns, caretIndexAt, createMarkdownRenderer, decorationMetrics, defaultLabelTextRenderer, effectiveRangeStyle, fitTextPose, fontString, isBoldWeight, isSmallCapsLetter, isTextData, layoutMarkdown, layoutRuns, layoutTextPose, markdownToRuns, measureText, measureTextBounds, measuredWidth, nodeHasFlag, numericWeight, paintRuns, paragraphDirection, patchRangeStyle, pointInTextPose, rangeWeight, registerBidi, renderLabel, resolveAlign, resolveRunFace, resolveRuns, resolveTextStyle, runsToMarkdown, runsToPlainText, scriptMetrics, scriptMetricsFor, setFlagOverRange, smallCapsScale, smallCapsScaleFor, smallCapsText, styleAtRange, textLineBoxes, textPoseLayoutInput, toRuns, transformRunTexts, unboldPatch, verticalAlignOffset } from "./barrel/text.js";
316
+ import { DEFAULT_DECORATION_METRICS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_STYLE, MARKDOWN_RUN_GRAMMAR, QUAD_STRIDE, SCRIPT_METRICS, SMALL_CAPS_SCALE, applyStyleToRange, cachedLayoutRuns, cachedPaintRuns, caretIndexAt, createMarkdownRenderer, decorationMetrics, defaultLabelTextRenderer, effectiveRangeStyle, fitTextPose, fontString, isBoldWeight, isSmallCapsLetter, isTextData, layoutMarkdown, layoutRuns, layoutTextPose, markdownToRuns, measureText, measureTextBounds, measuredWidth, nodeHasFlag, numericWeight, paintRuns, paragraphDirection, patchRangeStyle, pointInTextPose, rangeWeight, registerBidi, renderLabel, resolveAlign, resolveRunFace, resolveRuns, resolveTextStyle, runsToMarkdown, runsToPlainText, scriptMetrics, scriptMetricsFor, setFlagOverRange, smallCapsScale, smallCapsScaleFor, smallCapsText, styleAtRange, textLineBoxes, textPoseLayoutInput, toRuns, transformRunTexts, unboldPatch, verticalAlignOffset } from "./barrel/text.js";
317
317
  import { asPaint } from "./core/paint/paintKindEntry.js";
318
318
  import { useGradientKinds, usePaintKind, usePaintKinds } from "./core/usePaintKinds.js";
319
319
  import { BUILTIN_MARKERS, INHERIT, STROKE_DASH_RATIOS, TILE_KINDS, alignedStrokeRect, commandFill, commandPaint, commandStroke, composePatternTransform, contrastLineColor, contrastRatio, createTilePattern, dashForStrokeStyle, decomposePatternTransform, fillInPoseFrame, fillToBoundsFrame, getMarker, gradientForBounds, gradientGeometry, hexToRgbBytes, hexToRgba, isGradientPaint, isPaintKindKnown, isPatternPaint, isSolidPaint, isTileKind, isTilePaint, lerpFill, lerpPaint, lerpStroke, listMarkers, markerInset, markerKeyOf, markerRegistry, markerSites, normalizeHex, parseColor, parseColorToRgba255, parseHexBytes, patternPlacementOf, registerMarker, resolveColor, resolveFill, resolveFillPattern, resolveMarkerSize, resolvePatternSpec, resolveScreenLength, resolveStroke, resolveStrokeWidth, rgbaToHex, sampleGradientStops, scaleVertexWidth, strokeDashStyleOf, strokeInsets, tileSpecOf, trimPolyline, vertexHalfWidths, vertexWidthFromSides, warmPaintKinds, wcagLevels, widestHalfWidth, withGradientKind } from "./barrel/paint.js";
@@ -364,4 +364,4 @@ import { mergeContributions } from "./canvas/surfaceContribution.js";
364
364
  import { CURSOR_ANGLE_STEPS, CURSOR_MAX_CSS_PX, KEYMAP_HOLD, SPRITE_STRIDE, assembleEntries, bakeCursor, bindingSpec, blur, canQueryLocalFonts, captureGesture, captureKey, createCursorSink, createKeymapStack, createPaintedCursorState, createReflectable, cssFamilyName, cssFontFamily, cssFontFamilyLoading, cullDrawCommands, cursorFor, describeKeymap, enableLocalFontOutlines, fontOutlineRegistry, fontRegistry, frameRect, hasFontOutlines, held, isCanvasFont, key, keySpecRoute, keymapContribution, keymapLeaderBindingId, keymapLeaderId, keymapShortcuts, listFontOutlines, liveScope, loadFontOutlines, mat3, modeShortcutSpec, modeShortcuts, outlineStatus, refreshCanvasFont, registerCanvasFont, registerEffect, registerFont, registerFontOutlines, resolveCursor, resolveCursorTier, scopeBindings, subscribeGlyphReady, unbound, unregisterCanvasFont, unregisterFontOutlines, viewToMat3, vignette, warmFonts } from "./barrel/renderer.js";
365
365
  import { coreKitSettingsSchema } from "./kitSettingsSchema.js";
366
366
 
367
- export { ALWAYS, ANCHOR_HIT_BASE_PX, ANGLE_RADIANS, AREA_SELECT_ID, AUTO_ORIGIN_PROJECTION, AUTO_POSE_DESCRIPTOR, ActionDisabledReason, ActionsProvider, ActionsProviderIfRoot, ActiveToolContextProvider, ActiveToolContextProviderIfRoot, BUILTIN_MARKERS, BUILTIN_TOOLS, BUILTIN_TOOL_IDS, CANVAS_CONTEXT_ATTRIBUTES, CLIP_NOTHING, COARSE_TARGET_SCALE, COMPOSITE_FEATURES, CONSTRAINT_TOLERANCE, CONTROL_SELECTOR, CORNER_ANCHORS, CORNER_FIT_TOLERANCE, CORNER_KEYWORDS, CURSOR_ANGLE_STEPS, CURSOR_MAX_CSS_PX, CURVE_REPS, CanvasView, CursorCoordsHud, DEBUG_FEATURES, DEFAULT_ALLOWED_CAPABILITIES, DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_DEBUG_STROKES, DEFAULT_DEBUG_THEME, DEFAULT_DECORATION_METRICS, DEFAULT_DEVICE_PROFILE, DEFAULT_FILL_COLOR, DEFAULT_FLATTEN_TOLERANCE, DEFAULT_HANDLE_SIZE, DEFAULT_INK, DEFAULT_LAYER_RETAIN, DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, DEFAULT_OVERLAY_STYLE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_SIMPLIFY_TOLERANCE, DEFAULT_SNAP_PX, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_FILL, DEFAULT_TEXT_STYLE, DEFAULT_VELOCITY_DECAY, DRAG_PAN_ID, DRAG_THRESHOLD_PX, DRAW_TOOLS, DepRegistryProvider, DepRegistryProviderIfRoot, DeviceProfileProvider, DevtoolsLabel, DrawCanvas, EASINGS, EDGE_HANDLE_MIN_RADII, FALLBACK_ACCENT, FEATURE_ACTION_IDS, GEOMETRY_BOUND_DATA, GHOST_STROKE, HANDLE_BASE_PX, HANDLE_LOCK_ROLES, IDENTITY_POSE_COMPOSITION, IMPERIAL_INCHES, INHERIT, INSERT_REPOSITION_BINDING, IconRegistryProvider, IconRegistryProviderIfRoot, InputScope, KEYMAP_HOLD, KIT_SHAPE_KINDS, KIT_STANDARD_ACTION_IDS, KIT_VERSIONS, LONG_PRESS_FEEDBACK_ID, LONG_PRESS_MS, LeanSceneCanvas, MARKDOWN_RUN_GRAMMAR, MEASURE_ACTION_IDS, MEASURE_AFFORDANCE_KIND, MEASURE_LAYER_ID, METRIC_MM, MIXED, MOVE_NODES_REQUIRES, NEVER, OVERLAY_ROLE_STROKES, PAGES_DOC_KEY, PAGE_TOOLS, PAINTED_CURSOR_LAYER_ID, PATHFINDER_STROKES, PATH_ANCHOR_CHROME_ID, PATH_C, PATH_CMD_LENGTHS, PATH_EFFECT, PATH_EFFECT_DERIVATIONS, PATH_GESTURE_TAGS, PATH_L, PATH_M, PATH_OVERLAY_ROLES, PATH_Q, PATH_SNAP_KINDS, PATH_SNAP_LABELS, PATH_Z, PIXELS, PathBuilder, PickHud, PointerContextProvider, PointerProviderIfRoot, RECT_ORIGIN_PROJECTION, RECT_POSE_COMPOSITION, RECT_POSE_DESCRIPTOR, RESIZE_HANDLE_ANCHORS, RIGID_POSE_COMPOSITION, ROTATED_POSE_DESCRIPTOR, ROTATION_HANDLE_BASE_PX, SCENE_CANVAS_FEATURES, SCENE_HISTORY_FORM, SCRIPT_METRICS, SELECTION_MOVE_ID, SELECTION_RESIZE_ID, SELECTION_ROTATE_ID, SELECTION_TRANSFORM_ID, SELECT_TOOLS, SHAPE_COUNT_RANGE, SHAPE_KINDS, SHAPE_TOOLS, SMALL_CAPS_SCALE, SNAP_ANGLE_STEP, SNAP_AXIS_STEP, SNAP_ROLES, SPRING_PRESETS, SPRITE_STRIDE, STAR_RATIO_RANGE, STICKY_DEFAULTS, STROKE_DASH_RATIOS, SceneArrivalRefused, SceneCanvas, SceneViewCanvas, SelectionContextProvider, SelectionContextProviderIfRoot, TEXT_EDIT_FONT_HOLD, TILE_KINDS, TOOL_DRIVEN_ACTION_IDS, TYPE_TOOLS, TextOutlinesError, UNION_OF_CHILDREN, VERSION, VIEW_ANIMATION_KEY, VIEW_MARKER_DEFAULT_STYLE, VIEW_MARKER_DRAG, VIEW_MARKER_HIT_SLOP_PX, VIEW_TOOLS, ViewMarker, WEASEL_CLIPBOARD_MIME, WEASEL_CLIPBOARD_MIME_WEB, WHEEL_ZOOM_STEP, WeaselProvider, Yoke, ZOOM_FLOOR, aabbCenter, accentColorOf, actionBindings, actionCursor, actionIs, actionItemTitle, actionItems, actionSettingsParams, actionShortcuts, actionsTagged, activatesFocusedControl, addPage, adjacentPage, aimSpace2d, alignDeltaFor, alignTargetBounds, alignedStrokeRect, always, anchorEditWouldChange, and, animateLifecycle, animateOnSetPose, annotationLayerIds, annulusSemiAxes, applyBooleanOp, applyCreateOutlines, applyOpsTo, applyOutlineStroke, applyStyleToRange, areaSelectAction, areaSelectContribution, arrangePreset, asNodeId, asPaint, asPolygonPath, assembleEntries, assertSnapSourceIds, averageAnchorsAt, axisAlignedBounds, axisUnits, axisZoomFactor, bakeCursor, bendAlongPath, bezierCubic, bezierQuadratic, bindPoseTransition, bindRig, bindingId, bindingSpec, bitmapSrc, blendPaths, blur, bodyPredicate, boundsOfPath, buildChromeCtx, buildDebugOverlayCommands, buildDepsFromRequires, buildRuleCtx, buildSceneViewCommands, buildWeaselClipboardText, cachedLayoutRuns, cachedPaintRuns, canBringForward, canHover, canQueryLocalFonts, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, captureGesture, captureKey, caretIndexAt, carriedDescendants, charOffsetToDomPosition, checkRequirements, circlePath, clampShapeGenerator, clampView, classifyPathStorage, clearSelectionAction, clientToCanvas, clipNothing, clipOutline, clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction, cloneAction, coarsePointer, commandFill, commandPaint, commandStroke, commitAnchorEdit, commitBooleanPieces, commitDeleteToScene, commitOps, composeAffordanceLayer, composePath, composePatternTransform, composeRectPose, composeRigidPose, composeSelectionPose, composeWorldPose, composesFrames, computeFitViewport, computeSliceOps, computeWheelAction, cond, constrainPathEdit, constraintAnchors, contextMenuAction, contrastLineColor, contrastRatio, coreKitSettingsSchema, cornerAt, cornerFrameAt, cornerFrames, cornerKeywordOf, cornerPoint, cornerResizeHandles, cornerShapeK, cornerShapePieces, cornerSpecAt, countPathAnchors, createArrangeOp, createChildrenLayer, createCornerResizeAffordance, createCursorSink, createDebugOverlayLayer, createDebugSink, createDeleteAction, createDeleteOp, createDepRegistry, createDepartures, createDispatcher, createEnteredGroup, createEnteredGroupScope, createHistory, createInsertOp, createKeyState, createKeymapStack, createLongPressFeedbackContribution, createLongPressStore, createMarkdownRenderer, createMeasurements, createMoveToIndexOp, createNodeProperties, createNodeRouting, createPaintedCursorLayer, createPaintedCursorState, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathEffectDerivations, createPathLayer, createPathOverlay, createPathSnapIndex, createPenPreviewLayer, createPointerFollower, createPointerStore, createPoseFeed, createPoseOverrides, createPoseTarget, createRasterSession, createReflectable, createReflowTransition, createReorderOp, createReparentOp, createResizeAction, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetChildOrderOp, createSetDataOp, createSetDependsOnOp, createSetHiddenOp, createSetLayerOp, createSetLayoutOp, createSetLockedOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createSimulation, createSnapOutcomeStore, createSnapReadoutLayer, createTextLayer, createTilePattern, createTransformOp, createVelocityTracker, createViewMarkerContribution, createViewMarkerLayer, createViewResolver, createViewportLayer, createWrittenPoseTarget, cssFamilyName, cssFontFamily, cssFontFamilyLoading, cubicBezierEasing, cullDrawCommands, currentMeasureId, cursorFor, cycleFill, dashForStrokeStyle, dataRestPath, debugSnapshotArgs, decomposePath, decomposePatternTransform, decomposeRectPose, decomposeRigidPose, decorationMetrics, defaultCommitAdapter, defaultDrawOne, defaultLabelTextRenderer, defaultNodeProperties, defaultNodeRouting, defaultPaintBounds, defaultVisibilityRules, defineTool, definesFrame, deleteAction, deleteAnchorsAction, deleteNode, deleteScratch, deleteSelectedMark, depOf, depsUnchanged, deriveParallaxView, derivedDepOf, derivedPartsOf, derivedPose, describeKeymap, describeRule, dispatchApplyBatch, dlog, documentDepOf, documentOf, documentPose, domPositionToCharOffset, domToRuns, dragPanContribution, dragPointOf, drawLayers, drawOneLayer, drawnAABBOf, drawnBoundsOf, drawnBoundsScene, 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, editPreset, editTargetOf, editedPathSymmetries, editingAnchors, editingLayer, effectSourceFor, effectivePose, effectiveRangeStyle, ellipsePath, embedWeaselMetadataInSvg, enableLocalFontOutlines, enterTextEditAction, enumerateAnchors, evaluate, evaluateActive, evaluateEnabled, exitPathEditToolAction, extendToMeet, extractWeaselClipboardFromSvg, fillInPoseFrame, fillToBoundsFrame, findNodeShape, findPathSnap, findShapeBounds, findShapeDrawnBounds, findShapeInk, findShapeSilhouette, finishPathEditFrame, fitTextPose, fitToBounds, fitViewToBounds, fitViewToPage, fitZoom, fixedCornerOf, flattenCubic, flattenCubicWithArcLen, flattenPreviews, flattenQuadratic, flattenQuadraticWithArcLen, flipAction, focused, focusedControlOwnsKey, fontOutlineRegistry, fontRegistry, fontString, forEachCoalesced, forgetTransform, formatAxes, formatScoped, formatUnit, frameRect, fromPlane, fromRoot, gateLayer, gatherSnapCandidates, gesturePlaneReader, gestureViewReader, gesturing, getAlpha01, getImageBitmap, getMarker, getNodeShapes, getPaintKind, getScratch, getStylusData, glidesByDefault, grabViewMarker, gradientForBounds, gradientGeometry, groupNodeRouting, handlePoint, hasChildren, hasCorners, hasEditablePath, hasFontOutlines, hasOpenSubpath, held, heldKeySpec, hexToOklchDeg, hexToRgbBytes, hexToRgba, hiddenSourceDeleteOps, hiddenSourcesTakenWith, hidesSubtree, historyKey, hitAffordanceRegions, hitAnchor, hitCornerHandle, hitPredicate, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, hslToSrgb, imageStatus, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inheritedPaintIn, inheritedPaintOf, inheritsPaint, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateSrgb, interpolateView, intersectSegments, isAnnotationLayer, isAnnotationNode, isBoldWeight, isCanvasFont, isCornerHandle, isCornerShape, isDebugEnabled, isEditableTarget, isGradientPaint, isInControlWithin, isLayerPainted, isLayerVisible, isLeaf, isNodeHidden, isNodeLocked, isOverChildren, isPaintKindKnown, isPathLike, isPatternPaint, isPlainObject, isRectAim, isRectPose, isShapeGenerator, isSmallCapsLetter, isSolidPaint, isTextData, isTileKind, isTilePaint, isToolSet, isVectorImageSrc, joinAnchorsAt, joinPathsCommand, joinSelectedAnchors, key, keySpecRoute, keySpecShortcut, keymapContribution, keymapLeaderBindingId, keymapLeaderId, keymapShortcuts, keysHeld, kitTextHandler, lassoSelectAction, lastTransform, layoutMarkdown, layoutPages, layoutRuns, layoutTextPose, lengthenOpenEnd, lerpColorArray, lerpFill, lerpOklab, lerpOklch, lerpPaint, lerpStroke, linePath, linear, linearSrgbToOklab, linearToSrgb, listFontOutlines, listGradientKinds, listMarkers, listPaintKinds, livePathEdit, liveScope, loadFontOutlines, loadTextOutlines, locksInForce, makeHandleCommand, makePinchZoomAction, makeViewportWheelPanAction, makeViewportZoomAction, markUnder, markdownToRuns, markerInset, markerKeyOf, markerRegistry, markerSites, mat3, matchActionItem, matchesKeyBinding, meanScale, measureAt, measureBetween, measureEndSource, measureEndsOf, measureIds, measureNode, measurePath, measurePose, measureText, measureTextBounds, measuredSegmentCommands, measuredWidth, measurementOf, measurementsContribution, mergeAlphaFromPrev, mergeContributions, minSizeOf, modeDecorationLayer, modeIn, modeIs, modeNot, modeShortcutSpec, modeShortcuts, modeTriggers, modifierHeld, modifierStateOf, momentum, moveAction, moveNodes, moveNodesOps, movePage, movePreset, multiActive, nestedHitTester, never, nextCornerShape, nextPageId, nodeAsShown, nodeGates, nodeHasFlag, nodeKindOf, nodeOutline, normalizeHex, normalizeView, normalizeZoom, not, noteFontRead, nudgeAnchorsDownAction, nudgeAnchorsLeftAction, nudgeAnchorsRightAction, nudgeAnchorsUpAction, numericWeight, nurbs, offsetPath, oklabToLinearSrgb, oklabToOklch, oklabToSrgbU8, oklchDegToHex, oklchToOklab, onEmptyCanvas, opFactoryRegistry, openContextMenu, openEndRay, openFilePicker, openPathEnds, openPointerSession, or, outlinePreset, outlineStatus, overChildren, overlaysOf, pageAt, pageHolding, pageInView, pageMembers, pageName, pageOfBounds, pagesBounds, pagesLayer, pagesOf, paintAbove, paintAlpha, paintKindOf, paintKindRegistry, paintRuns, paintWithAlpha, paintWithColor, paintedLayers, paintsLayer, paletteInsertPaint, paragraphDirection, parseColor, parseColorToRgba255, parseDebugFlags, parseHexBytes, parseUnitExpr, parseWeaselClipboardText, pastDragThreshold, patchRangeStyle, pathAnchorPoints, pathCommandCoordCount, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathCopy, pathCrossings, pathDistanceToPoint, pathDivide, pathEditPathOf, pathEditPreview, pathEditToolAction, pathEditToolActive, pathEffectNode, pathEffectOf, pathEffectParts, pathExclude, pathFromD, pathFromParts, pathInPoseFrame, pathInWorld, pathIntersect, pathIntersectsPolygon, pathIntersectsRect, pathNodesOf, pathOperationTags, pathOriginProjection, pathPaintOf, pathPoseDescriptor, pathSegments, pathSignedArea, pathSnapGlyph, pathSnapSource, pathSubtract, pathThroughPoseFrame, pathToAnchors, pathToD, pathUnion, pathsPreset, patternFamily, patternPlacementOf, pickTopMostHit, pillCommands, pinchZoomAction, placeAction, placeSkeleton, placedPagesOf, planJoin, planPixelRender, planeMap, planeMatrix, planeToPlane, pointAlongPath, pointInPath, pointInRotatedRect, pointInTextPose, pointRegionFrame, pointSnap, polygonFromPoints, polylineFromPoints, poseAxes, poseDescriptorForNode, poseFrameInverseOf, poseFrameOf, poseLinearOf, poseRotationOf, prepareBlend, pressureToWidth, previewBooleanOp, publishPreviews, pxExtent, rangeWeight, rasterToPng, readActionSettings, readEffectSource, rebaseLocalPose, rebuildOp, reconcileSpecs, recordTransform, rectAim, rectCorners, rectFromPlane, rectMarkerPath, rectPath, rectToPlane, refreshCanvasFont, regenerateShape, registerBidi, registerCanvasFont, registerContentHandler, registerEffect, registerFont, registerFontOutlines, registerMarker, registerNodeShape, registerOpFactory, registerPaintKind, registerPaintKindLoader, registeredOpNames, registeredPathEffects, regularPolygonPath, releaseCanvasRenderer, releaseImage, remapPerAnchor, removePage, renamePage, renderDebugSnapshot, renderLabel, renderNeeds, renderSceneToCanvas, renderSceneToPixels, repeatAlongPath, requiresAnchorSelection, reshapeOps, reshapeTo, resizeAction, resizeHandlesFor, resizePage, resizePreset, resolveAlign, resolveAxes, resolveBindingOverrides, resolveBooleanOperands, resolveColor, resolveCorners, resolveCornersWithSources, resolveCursor, resolveCursorTier, resolveDeviceProfile, resolveEasing, resolveEditablePathOf, resolveFill, resolveFillPattern, resolveMarkerSize, resolveOverlays, resolveParams, resolvePartPaint, resolvePatternSpec, resolvePreviews, resolveRunFace, resolveRuns, resolveSchemaMenu, resolveScoped, resolveScreenLength, resolveSpatialReference, resolveStroke, resolveStrokeWidth, resolveTextStyle, resolveUnit, resolveUnitExpr, resolveVisibility, resolvedSnapMarks, retryImage, reversePath, rgbaToHex, rigFromNode, rigidRigApply, roleReader, rotateAction, rotateAroundAABBCenter, rotatePathAround, rotatePoint, rotatePreset, rotatedRectCorners, rotationDegreesUnit, rotationHandle, rotationSnapSource, roundRectPath, routeKind, runsToDom, runsToMarkdown, runsToPlainText, sampleGradientStops, satisfiesRange, scaleDelta, scalePathToBounds, scaleVertexWidth, sceneCarrySource, sceneClipTargets, sceneFromJSON, sceneNodeClientRect, scenePoseAdapter, scenePoseFrame, scenePoseTarget, sceneSelectionStore, sceneSharedUnitScopes, sceneToAdapter, sceneUnitScopes, scopeBindings, scopesOf, scratchKey, screenAngleOf, screenToWorld, screenTolerance, scriptMetrics, scriptMetricsFor, seedTile, segmentUnder, selectAnchorAction, selectFromLasso, selectPreset, selectedPathNodes, selectionAtLeast, selectionEmpty, selectionIs, selectionLayer, selectionMoveBindings, selectionMoveContribution, selectionResizeBindings, selectionResizeContribution, selectionRotateBindings, selectionRotateContribution, selectionTransformBindings, selectionTransformContribution, setFlagOverRange, setImageCacheBudget, setPages, setScratch, settleShapeGenerator, shapeCoversPoint, shapeGeneratorOf, shapeGeneratorPath, simplifyAnchorsAt, simplifyPath, sliceAction, slotOf, smallCapsScale, smallCapsScaleFor, smallCapsText, smudgePath, snapMods, snapSourcesFor, sniffWeaselClipboardText, snipPathByPolyline, snipPathsAtCrossings, solid, solveConstraints, solvePathConstraints, sourcesHiddenBy, sourcesOf, specificity, specsFromSerialized, spiro, splitByClosure, splitOverChildren, splitPathByPolyline, splitPathBySegment, splitSubpaths, springPose, squarePath, srgbFloatToOklab, srgbToHsl, srgbToLinear, srgbU8ToOklab, stableStringify, staggerSpringPose, standoff, starPath, startCarry, startThresholdDrag, statedFields, stationsAlongPath, stepAngles, stickyData, stickyNodeFactory, storeEditablePath, strokeDashStyleOf, strokeInsets, strokeOf, strokeRegion, strokeToPath, strokeWith, styleAtRange, subscribeGlyphReady, subscribeImageReady, subscribeToSources, swapOp, switchGradientKind, taggedActionItems, textAlongParts, textBoxOf, textCommand, textCommandFromPose, textCommandFromRuns, textLineBoxes, textPoseLayoutInput, textToPath, textToPathsByPaint, tickedSegment, tileSpecOf, toHex8, toIconRef, toPlane, toRoot, toRuns, toolIdsOf, toolSet, toolSetHas, transformPath, transformRunTexts, translatePath, translatePoseViaDescriptor, translateRectPose, trianglesToPath, trimPathAt, trimPolyline, tuneAction, tweenPose, unboldPatch, unbound, unionAABB, unionBounds, unionBoundsPath, unionOfChildren, unionOfChildrenVia, unitScale, unplaceSkeleton, unregisterCanvasFont, unregisterFontOutlines, unsatisfiedConstraints, useAction, useActionsRegistry, useActiveToolContext, useAlign, useAnchorFields, useAnimatedReflow, useAutoCenter, useBooleans, useBooleansAdapter, useBooleansAdapterSource, useCanvasFocus, useCanvasSize, useClipboardOps, useCommand, useCreateOutlinesAdapter, useDecayLoop, useDepRegistry, useDepSource, useDeviceProfile, useDevtoolsLabel, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEffectSourcesLayer, useElementSize, useEllipseTool, useEnteredGroup, useEyedropperTool, useFrameClock, useGestureDispatcher, useGradientKinds, useHandTool, useHandleDrag, useHostAnchor, useHoverTracking, useIconGlyph, useIconRegistry, useIconVariant, useImageTool, useKeyModifiers, useKeyState, useKeybindings, useLassoTool, useLatest, useLineTool, useMeasureTool, useMenuHost, useMenus, useNodeOverlayFrame, useOngoingAction, useOpenKeymap, useOptionalActiveToolContext, useOptionalDepRegistry, usePaintKind, usePaintKinds, usePenTool, usePencilTool, usePointerContext, usePointerPosition, usePointerStylus, usePolygonTool, usePoseDescriptorDepSource, usePoseRun, usePoseTransition, usePublishSelection, useRectTool, useResizePolicy, useRig, useRigNode, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSelectionContext, useSimulation, useSliceDep, useSliceDepSource, useSliceTool, useSnapSource, useStandardActions, useStarTool, useStickyTool, useTextEdit, useTextTool, useTools, useTransformFollower, useVelocityTracker, useViewAnimation, useViewAnimationOn, useVisibleRaf, useYoke, vertexHalfWidths, vertexWidthFromSides, verticalAlignOffset, viewAxes, viewForAim, viewMarkerDragAction, viewPreset, viewToMat3, viewToTransform, viewZoom, viewportDragPanAction, viewportWheelPanAction, viewportWorldRect, viewportZoomAction, vignette, visualBoundsViaDescriptor, warmFonts, warmPaintKinds, warmRender, watchDevicePixelRatio, wcagLevels, wheelPan, wheelZoom, wheelZoomFactor, when, widestHalfWidth, withAlpha01, withCoord, withCorner, withGradientKind, withInheritedPaint, withInheritedPaintBounds, withInheritedPaints, withPath, withPathEffectsRegistry, withinPxBox, withinPxRadius, withoutCorners, withoutGeometryBoundData, withoutShapeGenerator, withoutTools, workspaceTintLayer, worldEditToStorage, worldPoseLookup, worldToScreen, writtenBy, zoomAt, zoomAtLeast };
367
+ export { ALWAYS, ANCHOR_HIT_BASE_PX, ANGLE_RADIANS, AREA_SELECT_ID, AUTO_ORIGIN_PROJECTION, AUTO_POSE_DESCRIPTOR, ActionDisabledReason, ActionsProvider, ActionsProviderIfRoot, ActiveToolContextProvider, ActiveToolContextProviderIfRoot, BUILTIN_MARKERS, BUILTIN_TOOLS, BUILTIN_TOOL_IDS, CANVAS_CONTEXT_ATTRIBUTES, CLIP_NOTHING, COARSE_TARGET_SCALE, COMPOSITE_FEATURES, CONSTRAINT_TOLERANCE, CONTROL_SELECTOR, CORNER_ANCHORS, CORNER_FIT_TOLERANCE, CORNER_KEYWORDS, CURSOR_ANGLE_STEPS, CURSOR_MAX_CSS_PX, CURVE_REPS, CanvasView, CursorCoordsHud, DEBUG_FEATURES, DEFAULT_ALLOWED_CAPABILITIES, DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_DEBUG_STROKES, DEFAULT_DEBUG_THEME, DEFAULT_DECORATION_METRICS, DEFAULT_DEVICE_PROFILE, DEFAULT_FILL_COLOR, DEFAULT_FLATTEN_TOLERANCE, DEFAULT_HANDLE_SIZE, DEFAULT_INK, DEFAULT_LAYER_RETAIN, DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, DEFAULT_OVERLAY_STYLE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_SIMPLIFY_TOLERANCE, DEFAULT_SNAP_PX, DEFAULT_STROKE_COLOR, DEFAULT_TEXT_FILL, DEFAULT_TEXT_STYLE, DEFAULT_VELOCITY_DECAY, DRAG_PAN_ID, DRAG_THRESHOLD_PX, DRAW_TOOLS, DepRegistryProvider, DepRegistryProviderIfRoot, DeviceProfileProvider, DevtoolsLabel, DrawCanvas, EASINGS, EDGE_HANDLE_MIN_RADII, FALLBACK_ACCENT, FEATURE_ACTION_IDS, GEOMETRY_BOUND_DATA, GHOST_STROKE, HANDLE_BASE_PX, HANDLE_LOCK_ROLES, IDENTITY_POSE_COMPOSITION, IMPERIAL_INCHES, INHERIT, INSERT_REPOSITION_BINDING, IconRegistryProvider, IconRegistryProviderIfRoot, InputScope, KEYMAP_HOLD, KIT_SHAPE_KINDS, KIT_STANDARD_ACTION_IDS, KIT_VERSIONS, LONG_PRESS_FEEDBACK_ID, LONG_PRESS_MS, LeanSceneCanvas, MARKDOWN_RUN_GRAMMAR, MEASURE_ACTION_IDS, MEASURE_AFFORDANCE_KIND, MEASURE_LAYER_ID, METRIC_MM, MIXED, MOVE_NODES_REQUIRES, NEVER, OVERLAY_ROLE_STROKES, PAGES_DOC_KEY, PAGE_TOOLS, PAINTED_CURSOR_LAYER_ID, PATHFINDER_STROKES, PATH_ANCHOR_CHROME_ID, PATH_C, PATH_CMD_LENGTHS, PATH_EFFECT, PATH_EFFECT_DERIVATIONS, PATH_GESTURE_TAGS, PATH_L, PATH_M, PATH_OVERLAY_ROLES, PATH_Q, PATH_SNAP_KINDS, PATH_SNAP_LABELS, PATH_Z, PIXELS, PathBuilder, PickHud, PointerContextProvider, PointerProviderIfRoot, QUAD_STRIDE, RECT_ORIGIN_PROJECTION, RECT_POSE_COMPOSITION, RECT_POSE_DESCRIPTOR, RESIZE_HANDLE_ANCHORS, RIGID_POSE_COMPOSITION, ROTATED_POSE_DESCRIPTOR, ROTATION_HANDLE_BASE_PX, SCENE_CANVAS_FEATURES, SCENE_HISTORY_FORM, SCRIPT_METRICS, SELECTION_MOVE_ID, SELECTION_RESIZE_ID, SELECTION_ROTATE_ID, SELECTION_TRANSFORM_ID, SELECT_TOOLS, SHAPE_COUNT_RANGE, SHAPE_KINDS, SHAPE_TOOLS, SMALL_CAPS_SCALE, SNAP_ANGLE_STEP, SNAP_AXIS_STEP, SNAP_ROLES, SPRING_PRESETS, SPRITE_STRIDE, STAR_RATIO_RANGE, STICKY_DEFAULTS, STROKE_DASH_RATIOS, SceneArrivalRefused, SceneCanvas, SceneViewCanvas, SelectionContextProvider, SelectionContextProviderIfRoot, TEXT_EDIT_FONT_HOLD, TILE_KINDS, TOOL_DRIVEN_ACTION_IDS, TYPE_TOOLS, TextOutlinesError, UNION_OF_CHILDREN, VERSION, VIEW_ANIMATION_KEY, VIEW_MARKER_DEFAULT_STYLE, VIEW_MARKER_DRAG, VIEW_MARKER_HIT_SLOP_PX, VIEW_TOOLS, ViewMarker, WEASEL_CLIPBOARD_MIME, WEASEL_CLIPBOARD_MIME_WEB, WHEEL_ZOOM_STEP, WeaselProvider, Yoke, ZOOM_FLOOR, aabbCenter, accentColorOf, actionBindings, actionCursor, actionIs, actionItemTitle, actionItems, actionSettingsParams, actionShortcuts, actionsTagged, activatesFocusedControl, addPage, adjacentPage, aimSpace2d, alignDeltaFor, alignTargetBounds, alignedStrokeRect, always, anchorEditWouldChange, and, animateLifecycle, animateOnSetPose, annotationLayerIds, annulusSemiAxes, applyBooleanOp, applyCreateOutlines, applyOpsTo, applyOutlineStroke, applyStyleToRange, areaSelectAction, areaSelectContribution, arrangePreset, asNodeId, asPaint, asPolygonPath, assembleEntries, assertSnapSourceIds, averageAnchorsAt, axisAlignedBounds, axisUnits, axisZoomFactor, bakeCursor, bendAlongPath, bezierCubic, bezierQuadratic, bindPoseTransition, bindRig, bindingId, bindingSpec, bitmapSrc, blendPaths, blur, bodyPredicate, boundsOfPath, buildChromeCtx, buildDebugOverlayCommands, buildDepsFromRequires, buildRuleCtx, buildSceneViewCommands, buildWeaselClipboardText, cachedLayoutRuns, cachedPaintRuns, canBringForward, canHover, canQueryLocalFonts, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, captureGesture, captureKey, caretIndexAt, carriedDescendants, charOffsetToDomPosition, checkRequirements, circlePath, clampShapeGenerator, clampView, classifyPathStorage, clearSelectionAction, clientToCanvas, clipNothing, clipOutline, clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction, cloneAction, coarsePointer, commandFill, commandPaint, commandStroke, commitAnchorEdit, commitBooleanPieces, commitDeleteToScene, commitOps, composeAffordanceLayer, composePath, composePatternTransform, composeRectPose, composeRigidPose, composeSelectionPose, composeWorldPose, composesFrames, computeFitViewport, computeSliceOps, computeWheelAction, cond, constrainPathEdit, constraintAnchors, contextMenuAction, contrastLineColor, contrastRatio, coreKitSettingsSchema, cornerAt, cornerFrameAt, cornerFrames, cornerKeywordOf, cornerPoint, cornerResizeHandles, cornerShapeK, cornerShapePieces, cornerSpecAt, countPathAnchors, createArrangeOp, createChildrenLayer, createCornerResizeAffordance, createCursorSink, createDebugOverlayLayer, createDebugSink, createDeleteAction, createDeleteOp, createDepRegistry, createDepartures, createDispatcher, createEnteredGroup, createEnteredGroupScope, createHistory, createInsertOp, createKeyState, createKeymapStack, createLongPressFeedbackContribution, createLongPressStore, createMarkdownRenderer, createMeasurements, createMoveToIndexOp, createNodeProperties, createNodeRouting, createPaintedCursorLayer, createPaintedCursorState, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathEffectDerivations, createPathLayer, createPathOverlay, createPathSnapIndex, createPenPreviewLayer, createPointerFollower, createPointerStore, createPoseFeed, createPoseOverrides, createPoseTarget, createRasterSession, createReflectable, createReflowTransition, createReorderOp, createReparentOp, createResizeAction, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetChildOrderOp, createSetDataOp, createSetDependsOnOp, createSetHiddenOp, createSetLayerOp, createSetLayoutOp, createSetLockedOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createSimulation, createSnapOutcomeStore, createSnapReadoutLayer, createTextLayer, createTilePattern, createTransformOp, createVelocityTracker, createViewMarkerContribution, createViewMarkerLayer, createViewResolver, createViewportLayer, createWrittenPoseTarget, cssFamilyName, cssFontFamily, cssFontFamilyLoading, cubicBezierEasing, cullDrawCommands, currentMeasureId, cursorFor, cycleFill, dashForStrokeStyle, dataRestPath, debugSnapshotArgs, decomposePath, decomposePatternTransform, decomposeRectPose, decomposeRigidPose, decorationMetrics, defaultCommitAdapter, defaultDrawOne, defaultLabelTextRenderer, defaultNodeProperties, defaultNodeRouting, defaultPaintBounds, defaultVisibilityRules, defineTool, definesFrame, deleteAction, deleteAnchorsAction, deleteNode, deleteScratch, deleteSelectedMark, depOf, depsUnchanged, deriveParallaxView, derivedDepOf, derivedPartsOf, derivedPose, describeKeymap, describeRule, dispatchApplyBatch, dlog, documentDepOf, documentOf, documentPose, domPositionToCharOffset, domToRuns, dragPanContribution, dragPointOf, drawLayers, drawOneLayer, drawnAABBOf, drawnBoundsOf, drawnBoundsScene, 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, editPreset, editTargetOf, editedPathSymmetries, editingAnchors, editingLayer, effectSourceFor, effectivePose, effectiveRangeStyle, ellipsePath, embedWeaselMetadataInSvg, enableLocalFontOutlines, enterTextEditAction, enumerateAnchors, evaluate, evaluateActive, evaluateEnabled, exitPathEditToolAction, extendToMeet, extractWeaselClipboardFromSvg, fillInPoseFrame, fillToBoundsFrame, findNodeShape, findPathSnap, findShapeBounds, findShapeDrawnBounds, findShapeInk, findShapeSilhouette, finishPathEditFrame, fitTextPose, fitToBounds, fitViewToBounds, fitViewToPage, fitZoom, fixedCornerOf, flattenCubic, flattenCubicWithArcLen, flattenPreviews, flattenQuadratic, flattenQuadraticWithArcLen, flipAction, focused, focusedControlOwnsKey, fontOutlineRegistry, fontRegistry, fontString, forEachCoalesced, forgetTransform, formatAxes, formatScoped, formatUnit, frameRect, fromPlane, fromRoot, gateLayer, gatherSnapCandidates, gesturePlaneReader, gestureViewReader, gesturing, getAlpha01, getImageBitmap, getMarker, getNodeShapes, getPaintKind, getScratch, getStylusData, glidesByDefault, grabViewMarker, gradientForBounds, gradientGeometry, groupNodeRouting, handlePoint, hasChildren, hasCorners, hasEditablePath, hasFontOutlines, hasOpenSubpath, held, heldKeySpec, hexToOklchDeg, hexToRgbBytes, hexToRgba, hiddenSourceDeleteOps, hiddenSourcesTakenWith, hidesSubtree, historyKey, hitAffordanceRegions, hitAnchor, hitCornerHandle, hitPredicate, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, hslToSrgb, imageStatus, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inheritedPaintIn, inheritedPaintOf, inheritsPaint, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateSrgb, interpolateView, intersectSegments, isAnnotationLayer, isAnnotationNode, isBoldWeight, isCanvasFont, isCornerHandle, isCornerShape, isDebugEnabled, isEditableTarget, isGradientPaint, isInControlWithin, isLayerPainted, isLayerVisible, isLeaf, isNodeHidden, isNodeLocked, isOverChildren, isPaintKindKnown, isPathLike, isPatternPaint, isPlainObject, isRectAim, isRectPose, isShapeGenerator, isSmallCapsLetter, isSolidPaint, isTextData, isTileKind, isTilePaint, isToolSet, isVectorImageSrc, joinAnchorsAt, joinPathsCommand, joinSelectedAnchors, key, keySpecRoute, keySpecShortcut, keymapContribution, keymapLeaderBindingId, keymapLeaderId, keymapShortcuts, keysHeld, kitTextHandler, lassoSelectAction, lastTransform, layoutMarkdown, layoutPages, layoutRuns, layoutTextPose, lengthenOpenEnd, lerpColorArray, lerpFill, lerpOklab, lerpOklch, lerpPaint, lerpStroke, linePath, linear, linearSrgbToOklab, linearToSrgb, listFontOutlines, listGradientKinds, listMarkers, listPaintKinds, livePathEdit, liveScope, loadFontOutlines, loadTextOutlines, locksInForce, makeHandleCommand, makePinchZoomAction, makeViewportWheelPanAction, makeViewportZoomAction, markUnder, markdownToRuns, markerInset, markerKeyOf, markerRegistry, markerSites, mat3, matchActionItem, matchesKeyBinding, meanScale, measureAt, measureBetween, measureEndSource, measureEndsOf, measureIds, measureNode, measurePath, measurePose, measureText, measureTextBounds, measuredSegmentCommands, measuredWidth, measurementOf, measurementsContribution, mergeAlphaFromPrev, mergeContributions, minSizeOf, modeDecorationLayer, modeIn, modeIs, modeNot, modeShortcutSpec, modeShortcuts, modeTriggers, modifierHeld, modifierStateOf, momentum, moveAction, moveNodes, moveNodesOps, movePage, movePreset, multiActive, nestedHitTester, never, nextCornerShape, nextPageId, nodeAsShown, nodeGates, nodeHasFlag, nodeKindOf, nodeOutline, normalizeHex, normalizeView, normalizeZoom, not, noteFontRead, nudgeAnchorsDownAction, nudgeAnchorsLeftAction, nudgeAnchorsRightAction, nudgeAnchorsUpAction, numericWeight, nurbs, offsetPath, oklabToLinearSrgb, oklabToOklch, oklabToSrgbU8, oklchDegToHex, oklchToOklab, onEmptyCanvas, opFactoryRegistry, openContextMenu, openEndRay, openFilePicker, openPathEnds, openPointerSession, or, outlinePreset, outlineStatus, overChildren, overlaysOf, pageAt, pageHolding, pageInView, pageMembers, pageName, pageOfBounds, pagesBounds, pagesLayer, pagesOf, paintAbove, paintAlpha, paintKindOf, paintKindRegistry, paintRuns, paintWithAlpha, paintWithColor, paintedLayers, paintsLayer, paletteInsertPaint, paragraphDirection, parseColor, parseColorToRgba255, parseDebugFlags, parseHexBytes, parseUnitExpr, parseWeaselClipboardText, pastDragThreshold, patchRangeStyle, pathAnchorPoints, pathCommandCoordCount, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathCopy, pathCrossings, pathDistanceToPoint, pathDivide, pathEditPathOf, pathEditPreview, pathEditToolAction, pathEditToolActive, pathEffectNode, pathEffectOf, pathEffectParts, pathExclude, pathFromD, pathFromParts, pathInPoseFrame, pathInWorld, pathIntersect, pathIntersectsPolygon, pathIntersectsRect, pathNodesOf, pathOperationTags, pathOriginProjection, pathPaintOf, pathPoseDescriptor, pathSegments, pathSignedArea, pathSnapGlyph, pathSnapSource, pathSubtract, pathThroughPoseFrame, pathToAnchors, pathToD, pathUnion, pathsPreset, patternFamily, patternPlacementOf, pickTopMostHit, pillCommands, pinchZoomAction, placeAction, placeSkeleton, placedPagesOf, planJoin, planPixelRender, planeMap, planeMatrix, planeToPlane, pointAlongPath, pointInPath, pointInRotatedRect, pointInTextPose, pointRegionFrame, pointSnap, polygonFromPoints, polylineFromPoints, poseAxes, poseDescriptorForNode, poseFrameInverseOf, poseFrameOf, poseLinearOf, poseRotationOf, prepareBlend, pressureToWidth, previewBooleanOp, publishPreviews, pxExtent, rangeWeight, rasterToPng, readActionSettings, readEffectSource, rebaseLocalPose, rebuildOp, reconcileSpecs, recordTransform, rectAim, rectCorners, rectFromPlane, rectMarkerPath, rectPath, rectToPlane, refreshCanvasFont, regenerateShape, registerBidi, registerCanvasFont, registerContentHandler, registerEffect, registerFont, registerFontOutlines, registerMarker, registerNodeShape, registerOpFactory, registerPaintKind, registerPaintKindLoader, registeredOpNames, registeredPathEffects, regularPolygonPath, releaseCanvasRenderer, releaseImage, remapPerAnchor, removePage, renamePage, renderDebugSnapshot, renderLabel, renderNeeds, renderSceneToCanvas, renderSceneToPixels, repeatAlongPath, requiresAnchorSelection, reshapeOps, reshapeTo, resizeAction, resizeHandlesFor, resizePage, resizePreset, resolveAlign, resolveAxes, resolveBindingOverrides, resolveBooleanOperands, resolveColor, resolveCorners, resolveCornersWithSources, resolveCursor, resolveCursorTier, resolveDeviceProfile, resolveEasing, resolveEditablePathOf, resolveFill, resolveFillPattern, resolveMarkerSize, resolveOverlays, resolveParams, resolvePartPaint, resolvePatternSpec, resolvePreviews, resolveRunFace, resolveRuns, resolveSchemaMenu, resolveScoped, resolveScreenLength, resolveSpatialReference, resolveStroke, resolveStrokeWidth, resolveTextStyle, resolveUnit, resolveUnitExpr, resolveVisibility, resolvedSnapMarks, retryImage, reversePath, rgbaToHex, rigFromNode, rigidRigApply, roleReader, rotateAction, rotateAroundAABBCenter, rotatePathAround, rotatePoint, rotatePreset, rotatedRectCorners, rotationDegreesUnit, rotationHandle, rotationSnapSource, roundRectPath, routeKind, runsToDom, runsToMarkdown, runsToPlainText, sampleGradientStops, satisfiesRange, scaleDelta, scalePathToBounds, scaleVertexWidth, sceneCarrySource, sceneClipTargets, sceneFromJSON, sceneNodeClientRect, scenePoseAdapter, scenePoseFrame, scenePoseTarget, sceneSelectionStore, sceneSharedUnitScopes, sceneToAdapter, sceneUnitScopes, scopeBindings, scopesOf, scratchKey, screenAngleOf, screenToWorld, screenTolerance, scriptMetrics, scriptMetricsFor, seedTile, segmentUnder, selectAnchorAction, selectFromLasso, selectPreset, selectedPathNodes, selectionAtLeast, selectionEmpty, selectionIs, selectionLayer, selectionMoveBindings, selectionMoveContribution, selectionResizeBindings, selectionResizeContribution, selectionRotateBindings, selectionRotateContribution, selectionTransformBindings, selectionTransformContribution, setFlagOverRange, setImageCacheBudget, setPages, setScratch, settleShapeGenerator, shapeCoversPoint, shapeGeneratorOf, shapeGeneratorPath, simplifyAnchorsAt, simplifyPath, sliceAction, slotOf, smallCapsScale, smallCapsScaleFor, smallCapsText, smudgePath, snapMods, snapSourcesFor, sniffWeaselClipboardText, snipPathByPolyline, snipPathsAtCrossings, solid, solveConstraints, solvePathConstraints, sourcesHiddenBy, sourcesOf, specificity, specsFromSerialized, spiro, splitByClosure, splitOverChildren, splitPathByPolyline, splitPathBySegment, splitSubpaths, springPose, squarePath, srgbFloatToOklab, srgbToHsl, srgbToLinear, srgbU8ToOklab, stableStringify, staggerSpringPose, standoff, starPath, startCarry, startThresholdDrag, statedFields, stationsAlongPath, stepAngles, stickyData, stickyNodeFactory, storeEditablePath, strokeDashStyleOf, strokeInsets, strokeOf, strokeRegion, strokeToPath, strokeWith, styleAtRange, subscribeGlyphReady, subscribeImageReady, subscribeToSources, swapOp, switchGradientKind, taggedActionItems, textAlongParts, textBoxOf, textCommand, textCommandFromPose, textCommandFromRuns, textLineBoxes, textPoseLayoutInput, textToPath, textToPathsByPaint, tickedSegment, tileSpecOf, toHex8, toIconRef, toPlane, toRoot, toRuns, toolIdsOf, toolSet, toolSetHas, transformPath, transformRunTexts, translatePath, translatePoseViaDescriptor, translateRectPose, trianglesToPath, trimPathAt, trimPolyline, tuneAction, tweenPose, unboldPatch, unbound, unionAABB, unionBounds, unionBoundsPath, unionOfChildren, unionOfChildrenVia, unitScale, unplaceSkeleton, unregisterCanvasFont, unregisterFontOutlines, unsatisfiedConstraints, useAction, useActionsRegistry, useActiveToolContext, useAlign, useAnchorFields, useAnimatedReflow, useAutoCenter, useBooleans, useBooleansAdapter, useBooleansAdapterSource, useCanvasFocus, useCanvasSize, useClipboardOps, useCommand, useCreateOutlinesAdapter, useDecayLoop, useDepRegistry, useDepSource, useDeviceProfile, useDevtoolsLabel, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useEffectSourcesLayer, useElementSize, useEllipseTool, useEnteredGroup, useEyedropperTool, useFrameClock, useGestureDispatcher, useGradientKinds, useHandTool, useHandleDrag, useHostAnchor, useHoverTracking, useIconGlyph, useIconRegistry, useIconVariant, useImageTool, useKeyModifiers, useKeyState, useKeybindings, useLassoTool, useLatest, useLineTool, useMeasureTool, useMenuHost, useMenus, useNodeOverlayFrame, useOngoingAction, useOpenKeymap, useOptionalActiveToolContext, useOptionalDepRegistry, usePaintKind, usePaintKinds, usePenTool, usePencilTool, usePointerContext, usePointerPosition, usePointerStylus, usePolygonTool, usePoseDescriptorDepSource, usePoseRun, usePoseTransition, usePublishSelection, useRectTool, useResizePolicy, useRig, useRigNode, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSelectionContext, useSimulation, useSliceDep, useSliceDepSource, useSliceTool, useSnapSource, useStandardActions, useStarTool, useStickyTool, useTextEdit, useTextTool, useTools, useTransformFollower, useVelocityTracker, useViewAnimation, useViewAnimationOn, useVisibleRaf, useYoke, vertexHalfWidths, vertexWidthFromSides, verticalAlignOffset, viewAxes, viewForAim, viewMarkerDragAction, viewPreset, viewToMat3, viewToTransform, viewZoom, viewportDragPanAction, viewportWheelPanAction, viewportWorldRect, viewportZoomAction, vignette, visualBoundsViaDescriptor, warmFonts, warmPaintKinds, warmRender, watchDevicePixelRatio, wcagLevels, wheelPan, wheelZoom, wheelZoomFactor, when, widestHalfWidth, withAlpha01, withCoord, withCorner, withGradientKind, withInheritedPaint, withInheritedPaintBounds, withInheritedPaints, withPath, withPathEffectsRegistry, withinPxBox, withinPxRadius, withoutCorners, withoutGeometryBoundData, withoutShapeGenerator, withoutTools, workspaceTintLayer, worldEditToStorage, worldPoseLookup, worldToScreen, writtenBy, zoomAt, zoomAtLeast };
@@ -1,5 +1,5 @@
1
- import { E as EditAnchorsDep, P as PathEditMark, a as PathEditExtension, H as HandleLocks, S as SnapSource, b as SnapGesture, c as SnapConstrain, d as SnapResizeBox, e as SnapGeometry, f as SnapOutcomeStore, g as SnapSession } from './depSchema-B1RS-IJx.js';
2
- export { _ as _resetPaintKindsForTests } from './depSchema-B1RS-IJx.js';
1
+ import { E as EditAnchorsDep, P as PathEditMark, a as PathEditExtension, H as HandleLocks, S as SnapSource, b as SnapGesture, c as SnapConstrain, d as SnapResizeBox, e as SnapGeometry, f as SnapOutcomeStore, g as SnapSession } from './depSchema-CpIQzKWQ.js';
2
+ export { _ as _resetPaintKindsForTests } from './depSchema-CpIQzKWQ.js';
3
3
  export { _resetMarkersForTests } from '@weasel-js/stroke/test-seams';
4
4
  import { S as Scene } from './types-BEdRIhNc.js';
5
5
  import { SelectionApi, ActionTunings, ResizeAnchor } from '@weasel-js/routing';
package/dist/version.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * throwing, since nothing about version reporting should be able to break a
8
8
  * consumer's build.
9
9
  */
10
- var VERSION = "1.13.0-rc.0";
10
+ var VERSION = "1.13.0";
11
11
 
12
12
  //#endregion
13
13
  export { VERSION };