@glissade/scene 0.24.0-pre.0 → 0.24.0-pre.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/describe.js CHANGED
@@ -22,7 +22,7 @@ import { easings, listValueTypes } from "@glissade/core";
22
22
  * never pulled onto the base embed path — a scene that never calls `describe()`
23
23
  * pays zero bytes for it.
24
24
  */
25
- const RAW_VERSION = "0.24.0-pre.0";
25
+ const RAW_VERSION = "0.24.0-pre.2";
26
26
  const PACKAGE_VERSION = RAW_VERSION.includes("GLISSADE_".concat("VERSION")) ? "0.0.0-dev" : RAW_VERSION;
27
27
  /** Arity of a value type's numeric repr: vec2/vec2-arc → 2, number → 1; others (color/paint/path/string/boolean) carry no scalar arity. */
28
28
  function arityOf(type) {
@@ -1,4 +1,4 @@
1
- import { H as createDisplayListBuilder, K as collapseReplacer, r as Group } from "./nodes.js";
1
+ import { U as createDisplayListBuilder, q as collapseReplacer, r as Group } from "./nodes.js";
2
2
  import { a as evaluate } from "./scene.js";
3
3
  //#region src/displayDiff.ts
4
4
  /** A flat, stable JSON value for one command with its resource ids INLINED to content. */
package/dist/identity.js CHANGED
@@ -1,4 +1,4 @@
1
- import { H as createDisplayListBuilder } from "./nodes.js";
1
+ import { U as createDisplayListBuilder } from "./nodes.js";
2
2
  import { r as bindScene } from "./scene.js";
3
3
  import { evaluateAt } from "@glissade/core";
4
4
  //#region src/identity.ts
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { C as Mat2x3, D as matEquals, E as invert, O as multiply, S as IDENTITY, T as fromTRS, _ as StrokeStyle, a as FilterSpec, b as glow, c as MeshInterpolation, d as Paint, f as PathSeg, g as ShaderRef, h as ResourceId, i as DrawCommand, l as MeshPaint, m as Resource, n as DisplayList, o as FilterValidationError, p as Rect$1, r as DisplayListBuilder, s as FontSpec, t as BlendMode, u as MeshPoint, v as createDisplayListBuilder, w as applyToPoint, x as validateFilters, y as filtersToCanvasFilter } from "./displayList.js";
2
2
  import { t as collapseReplacer } from "./collapseReplacer.js";
3
- import { $ as quantize, A as resolveSketch, B as NodeConstructionError, C as Polyline, D as arcLength, E as SketchValidationError, F as AnchorSpec, G as TextMeasurer, H as PropInit, I as BindablePropTarget, J as __resetEstimateWarnings, K as TextMetricsLite, L as EvalContext, M as sketchStrokes, N as validateHachure, O as flatten, P as validateSketch, Q as measureWrappedText, R as HitArea, S as HachureSpec, T as SketchStyle, U as resolveAnchor, V as NodeProps, W as MEASURE_QUANTUM_PX, X as estimatingMeasurer, Y as breakLines, Z as isEstimatingMeasurer, _ as WordBox, a as ImageNode, b as revealSchedule, c as Path, d as RevealMark, et as segmentGraphemes, f as ShapeProps, g as VideoProps, h as Video, i as Group, j as roughen, k as hachureLines, l as PathProps, m as TextProps, n as Custom, nt as setDefaultMeasurer, o as ImageProps, p as Text, q as WrappedTextMetrics, r as GraphemeBox, s as LineBox, t as Circle, tt as segmentWords, u as Rect, v as coercePathData, w as ResolvedSketch, x as roundedRectSegs, y as pathFromSegs, z as Node } from "./nodes.js";
3
+ import { $ as measureWrappedText, A as resolveSketch, B as NodeConstructionError, C as Polyline, D as arcLength, E as SketchValidationError, F as AnchorSpec, G as TextMeasurer, H as PropInit, I as BindablePropTarget, J as __resetEstimateWarnings, K as TextMetricsLite, L as EvalContext, M as sketchStrokes, N as validateHachure, O as flatten, P as validateSketch, Q as isEstimatingMeasurer, R as HitArea, S as HachureSpec, T as SketchStyle, U as resolveAnchor, V as NodeProps, W as MEASURE_QUANTUM_PX, X as breakLines, Y as assertFiniteFontSize, Z as estimatingMeasurer, _ as WordBox, a as ImageNode, b as revealSchedule, c as Path, d as RevealMark, et as quantize, f as ShapeProps, g as VideoProps, h as Video, i as Group, j as roughen, k as hachureLines, l as PathProps, m as TextProps, n as Custom, nt as segmentWords, o as ImageProps, p as Text, q as WrappedTextMetrics, r as GraphemeBox, rt as setDefaultMeasurer, s as LineBox, t as Circle, tt as segmentGraphemes, u as Rect, v as coercePathData, w as ResolvedSketch, x as roundedRectSegs, y as pathFromSegs, z as Node } from "./nodes.js";
4
4
  import { a as SceneModule, c as evaluate, i as SceneInit, n as ReservedNodeIdError, o as bindScene, r as Scene, s as createScene, t as DuplicateNodeIdError } from "./scene.js";
5
5
  import { a as LayoutEngineMissingError, c as requireLayoutEngine, i as LayoutEngine, l as setLayoutEngine, n as LayoutChildSpec, r as LayoutContainerSpec, s as getLayoutEngine, t as LayoutBox } from "./layoutEngine.js";
6
6
  import { BindableSignal, CoverageReport, EaseSpec, FontMode, FontUsage, MeshPaint as MeshPaint$1, Rng, Timeline, Track } from "@glissade/core";
@@ -619,4 +619,4 @@ declare function meshRasterSize(bw: number, bh: number): {
619
619
  h: number;
620
620
  };
621
621
  //#endregion
622
- export { ALL_FILTER_KINDS, type AnchorSpec, type BackendCaps, type BindablePropTarget, type BlendMode, type CanvasLike, Circle, ColdAssetError, type Ctx2DLike, Custom, DeterminismViolationError, type DisplayList, type DisplayListBuilder, type DrawCommand, type DrawOnEachOptions, type DrawOnOptions, DuplicateNodeIdError, type EachBox, type EachContext, type EachDistribute, EachError, type EachLayout, type EachMotion, type EachOpts, type EachResult, type EditMark, type EvalContext, type FilterKind, type FilterSpec, FilterValidationError, type FontByteLoader, type FontSpec, type GraphemeBox, Group, type GuardMode, type HachureSpec, Highlight, type HighlightProps, type HitArea, IDENTITY, ImageNode as Image, ImageNode, type ImageDataLike, type ImageHandle, type ImageProps, type LayoutBox, type LayoutChildSpec, type LayoutContainerSpec, type LayoutEngine, LayoutEngineMissingError, type LineBox, MEASURE_QUANTUM_PX, MESH_DOWNSCALE, MESH_SHEPARD_POWER, MESH_SIGMA, type Mat2x3, type MeshInterpolation, type MeshPaint, type MeshPoint, NODE_TAXONOMY, Node, NodeConstructionError, type NodeProps, type NodeTypeName, type Paint, Path, type PathLike, type PathProps, type PathSeg, type Place, type Polyline, type PropInit, Raster2D, type Raster2DHost, Rect, type Rect$1 as RectShape, type RenderBackend, ReservedNodeIdError, type ResolvedSketch, type Resource, type ResourceId, type RevealMark, type Scene, type SceneInit, type SceneModule, type ShaderCaps, ShaderEffect, type ShaderEffectProps, type ShaderRef, type ShapeProps, type SketchStyle, SketchValidationError, type StepMark, type StrokeStyle, Text, TextCursor, type TextCursorProps, type TextMeasurer, type TextMetricsLite, type TextProps, type TypeEdit, type TypewriterResult, type ValidateSceneFontsOptions, Video, type VideoFrameSource, type VideoProps, type WordBox, type WrappedTextMetrics, __resetEstimateWarnings, applyToPoint, arcLength, bindScene, breakLines, coercePathData, collapseReplacer, collectLocalizedTextUsages, collectTextUsages, createDisplayListBuilder, createScene, drawOn, drawOnEach, each, estimatingMeasurer, evaluate, filtersToCanvasFilter, flatten, fontString, fromTRS, getLayoutEngine, glow, hachureLines, highlight, invert, isEstimatingMeasurer, matEquals, measureWrappedText, meshRasterSize, multiply, pathFromSegs, quantize, rasterizeMesh, requireLayoutEngine, resolveAnchor, resolveSketch, revealSchedule, roughen, roundedRectSegs, segmentGraphemes, segmentWords, setDefaultMeasurer, setLayoutEngine, sketchStrokes, textCursor, typewriter, validateFilters, validateHachure, validateSceneFonts, validateSketch, withDeterminismGuards };
622
+ export { ALL_FILTER_KINDS, type AnchorSpec, type BackendCaps, type BindablePropTarget, type BlendMode, type CanvasLike, Circle, ColdAssetError, type Ctx2DLike, Custom, DeterminismViolationError, type DisplayList, type DisplayListBuilder, type DrawCommand, type DrawOnEachOptions, type DrawOnOptions, DuplicateNodeIdError, type EachBox, type EachContext, type EachDistribute, EachError, type EachLayout, type EachMotion, type EachOpts, type EachResult, type EditMark, type EvalContext, type FilterKind, type FilterSpec, FilterValidationError, type FontByteLoader, type FontSpec, type GraphemeBox, Group, type GuardMode, type HachureSpec, Highlight, type HighlightProps, type HitArea, IDENTITY, ImageNode as Image, ImageNode, type ImageDataLike, type ImageHandle, type ImageProps, type LayoutBox, type LayoutChildSpec, type LayoutContainerSpec, type LayoutEngine, LayoutEngineMissingError, type LineBox, MEASURE_QUANTUM_PX, MESH_DOWNSCALE, MESH_SHEPARD_POWER, MESH_SIGMA, type Mat2x3, type MeshInterpolation, type MeshPaint, type MeshPoint, NODE_TAXONOMY, Node, NodeConstructionError, type NodeProps, type NodeTypeName, type Paint, Path, type PathLike, type PathProps, type PathSeg, type Place, type Polyline, type PropInit, Raster2D, type Raster2DHost, Rect, type Rect$1 as RectShape, type RenderBackend, ReservedNodeIdError, type ResolvedSketch, type Resource, type ResourceId, type RevealMark, type Scene, type SceneInit, type SceneModule, type ShaderCaps, ShaderEffect, type ShaderEffectProps, type ShaderRef, type ShapeProps, type SketchStyle, SketchValidationError, type StepMark, type StrokeStyle, Text, TextCursor, type TextCursorProps, type TextMeasurer, type TextMetricsLite, type TextProps, type TypeEdit, type TypewriterResult, type ValidateSceneFontsOptions, Video, type VideoFrameSource, type VideoProps, type WordBox, type WrappedTextMetrics, __resetEstimateWarnings, applyToPoint, arcLength, assertFiniteFontSize, bindScene, breakLines, coercePathData, collapseReplacer, collectLocalizedTextUsages, collectTextUsages, createDisplayListBuilder, createScene, drawOn, drawOnEach, each, estimatingMeasurer, evaluate, filtersToCanvasFilter, flatten, fontString, fromTRS, getLayoutEngine, glow, hachureLines, highlight, invert, isEstimatingMeasurer, matEquals, measureWrappedText, meshRasterSize, multiply, pathFromSegs, quantize, rasterizeMesh, requireLayoutEngine, resolveAnchor, resolveSketch, revealSchedule, roughen, roundedRectSegs, segmentGraphemes, segmentWords, setDefaultMeasurer, setLayoutEngine, sketchStrokes, textCursor, typewriter, validateFilters, validateHachure, validateSceneFonts, validateSketch, withDeterminismGuards };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { B as validateSketch, D as segmentGraphemes, E as quantize, F as hashStr, G as validateFilters, H as createDisplayListBuilder, I as resolveSketch, J as applyToPoint, K as collapseReplacer, L as roughen, M as arcLength, N as flatten, O as segmentWords, P as hachureLines, Q as multiply, R as sketchStrokes, S as estimatingMeasurer, T as measureWrappedText, U as filtersToCanvasFilter, V as FilterValidationError, W as glow, X as invert, Y as fromTRS, Z as matEquals, a as Path, b as __resetEstimateWarnings, c as Video, d as revealSchedule, f as roundedRectSegs, h as resolveAnchor, i as ImageNode, j as SketchValidationError, k as setDefaultMeasurer, l as coercePathData, m as NodeConstructionError, n as Custom, o as Rect, p as Node, q as IDENTITY, r as Group, s as Text, t as Circle, u as pathFromSegs, w as isEstimatingMeasurer, x as breakLines, y as MEASURE_QUANTUM_PX, z as validateHachure } from "./nodes.js";
1
+ import { $ as multiply, A as setDefaultMeasurer, B as validateHachure, C as estimatingMeasurer, D as quantize, E as measureWrappedText, F as hachureLines, G as glow, H as FilterValidationError, I as hashStr, J as IDENTITY, K as validateFilters, L as resolveSketch, M as SketchValidationError, N as arcLength, O as segmentGraphemes, P as flatten, Q as matEquals, R as roughen, S as breakLines, T as isEstimatingMeasurer, U as createDisplayListBuilder, V as validateSketch, W as filtersToCanvasFilter, X as fromTRS, Y as applyToPoint, Z as invert, a as Path, b as __resetEstimateWarnings, c as Video, d as revealSchedule, f as roundedRectSegs, h as resolveAnchor, i as ImageNode, k as segmentWords, l as coercePathData, m as NodeConstructionError, n as Custom, o as Rect, p as Node, q as collapseReplacer, r as Group, s as Text, t as Circle, u as pathFromSegs, x as assertFiniteFontSize, y as MEASURE_QUANTUM_PX, z as sketchStrokes } from "./nodes.js";
2
2
  import { a as evaluate, i as createScene, n as ReservedNodeIdError, r as bindScene, t as DuplicateNodeIdError } from "./scene.js";
3
3
  import { i as setLayoutEngine, n as getLayoutEngine, r as requireLayoutEngine, t as LayoutEngineMissingError } from "./layoutEngine.js";
4
4
  import { buildFontRegistry, emitDevWarning, key, lerpColor, oklabToRgba, parseCmap, parseColor, random, rgbaToOklab, signal, stagger, track, validateFonts } from "@glissade/core";
@@ -1356,4 +1356,4 @@ var Raster2D = class {
1356
1356
  }
1357
1357
  };
1358
1358
  //#endregion
1359
- export { ALL_FILTER_KINDS, Circle, ColdAssetError, Custom, DeterminismViolationError, DuplicateNodeIdError, EachError, FilterValidationError, Group, Highlight, IDENTITY, ImageNode as Image, ImageNode, LayoutEngineMissingError, MEASURE_QUANTUM_PX, MESH_DOWNSCALE, MESH_SHEPARD_POWER, MESH_SIGMA, NODE_TAXONOMY, Node, NodeConstructionError, Path, Raster2D, Rect, ReservedNodeIdError, ShaderEffect, SketchValidationError, Text, TextCursor, Video, __resetEstimateWarnings, applyToPoint, arcLength, bindScene, breakLines, coercePathData, collapseReplacer, collectLocalizedTextUsages, collectTextUsages, createDisplayListBuilder, createScene, drawOn, drawOnEach, each, estimatingMeasurer, evaluate, filtersToCanvasFilter, flatten, fontString, fromTRS, getLayoutEngine, glow, hachureLines, highlight, invert, isEstimatingMeasurer, matEquals, measureWrappedText, meshRasterSize, multiply, pathFromSegs, quantize, rasterizeMesh, requireLayoutEngine, resolveAnchor, resolveSketch, revealSchedule, roughen, roundedRectSegs, segmentGraphemes, segmentWords, setDefaultMeasurer, setLayoutEngine, sketchStrokes, textCursor, typewriter, validateFilters, validateHachure, validateSceneFonts, validateSketch, withDeterminismGuards };
1359
+ export { ALL_FILTER_KINDS, Circle, ColdAssetError, Custom, DeterminismViolationError, DuplicateNodeIdError, EachError, FilterValidationError, Group, Highlight, IDENTITY, ImageNode as Image, ImageNode, LayoutEngineMissingError, MEASURE_QUANTUM_PX, MESH_DOWNSCALE, MESH_SHEPARD_POWER, MESH_SIGMA, NODE_TAXONOMY, Node, NodeConstructionError, Path, Raster2D, Rect, ReservedNodeIdError, ShaderEffect, SketchValidationError, Text, TextCursor, Video, __resetEstimateWarnings, applyToPoint, arcLength, assertFiniteFontSize, bindScene, breakLines, coercePathData, collapseReplacer, collectLocalizedTextUsages, collectTextUsages, createDisplayListBuilder, createScene, drawOn, drawOnEach, each, estimatingMeasurer, evaluate, filtersToCanvasFilter, flatten, fontString, fromTRS, getLayoutEngine, glow, hachureLines, highlight, invert, isEstimatingMeasurer, matEquals, measureWrappedText, meshRasterSize, multiply, pathFromSegs, quantize, rasterizeMesh, requireLayoutEngine, resolveAnchor, resolveSketch, revealSchedule, roughen, roundedRectSegs, segmentGraphemes, segmentWords, setDefaultMeasurer, setLayoutEngine, sketchStrokes, textCursor, typewriter, validateFilters, validateHachure, validateSceneFonts, validateSketch, withDeterminismGuards };
@@ -1,4 +1,4 @@
1
- import { C as fallbackMeasurer, r as Group } from "./nodes.js";
1
+ import { r as Group, w as fallbackMeasurer } from "./nodes.js";
2
2
  import { r as requireLayoutEngine } from "./layoutEngine.js";
3
3
  import { computed, signal } from "@glissade/core";
4
4
  //#region src/layoutCtors.ts
package/dist/nodes.d.ts CHANGED
@@ -21,6 +21,17 @@ interface TextMeasurer {
21
21
  declare const MEASURE_QUANTUM_PX = 0.5;
22
22
  /** §3.6 measurement quantum — round to the MEASURE_QUANTUM_PX grid. */
23
23
  declare function quantize(v: number): number;
24
+ /**
25
+ * FAIL LOUD on a non-measurable FontSpec (§0.24 fail-loud sweep). A `size` that
26
+ * isn't a finite positive number silently yields NaN/0 metrics in the estimating
27
+ * measurers (and a wrong-font fallback in the real backends) → zero-height layout
28
+ * boxes, broken wrapping/reveal, all with NO error — the silent-wrong-result class
29
+ * an agent can't glance-test. The common cause is the field name: the FontSpec
30
+ * field is `size`, NOT `fontSize` (that is the Text node prop). The single guard
31
+ * every measurement entry point (breakLines, measureWrappedText, the backend
32
+ * `measureText`s) routes through, so the contract is enforced uniformly.
33
+ */
34
+ declare function assertFiniteFontSize(font: FontSpec, where: string): void;
24
35
  /**
25
36
  * Process-wide fallback measurer for FACTORY-TIME measurement — component
26
37
  * factories run before any scene exists, so Text pulls (measuredSize,
@@ -879,4 +890,4 @@ interface RevealMark {
879
890
  */
880
891
  declare function revealSchedule(text: Text, reveal: Track<number>, measurer?: TextMeasurer): RevealMark[];
881
892
  //#endregion
882
- export { quantize as $, resolveSketch as A, NodeConstructionError as B, Polyline as C, arcLength as D, SketchValidationError as E, AnchorSpec as F, TextMeasurer as G, PropInit as H, BindablePropTarget as I, __resetEstimateWarnings as J, TextMetricsLite as K, EvalContext as L, sketchStrokes as M, validateHachure as N, flatten as O, validateSketch as P, measureWrappedText as Q, HitArea as R, HachureSpec as S, SketchStyle as T, resolveAnchor as U, NodeProps as V, MEASURE_QUANTUM_PX as W, estimatingMeasurer as X, breakLines as Y, isEstimatingMeasurer as Z, WordBox as _, ImageNode as a, revealSchedule as b, Path as c, RevealMark as d, segmentGraphemes as et, ShapeProps as f, VideoProps as g, Video as h, Group as i, roughen as j, hachureLines as k, PathProps as l, TextProps as m, Custom as n, setDefaultMeasurer as nt, ImageProps as o, Text as p, WrappedTextMetrics as q, GraphemeBox as r, LineBox as s, Circle as t, segmentWords as tt, Rect as u, coercePathData as v, ResolvedSketch as w, roundedRectSegs as x, pathFromSegs as y, Node as z };
893
+ export { measureWrappedText as $, resolveSketch as A, NodeConstructionError as B, Polyline as C, arcLength as D, SketchValidationError as E, AnchorSpec as F, TextMeasurer as G, PropInit as H, BindablePropTarget as I, __resetEstimateWarnings as J, TextMetricsLite as K, EvalContext as L, sketchStrokes as M, validateHachure as N, flatten as O, validateSketch as P, isEstimatingMeasurer as Q, HitArea as R, HachureSpec as S, SketchStyle as T, resolveAnchor as U, NodeProps as V, MEASURE_QUANTUM_PX as W, breakLines as X, assertFiniteFontSize as Y, estimatingMeasurer as Z, WordBox as _, ImageNode as a, revealSchedule as b, Path as c, RevealMark as d, quantize as et, ShapeProps as f, VideoProps as g, Video as h, Group as i, roughen as j, hachureLines as k, PathProps as l, TextProps as m, Custom as n, segmentWords as nt, ImageProps as o, Text as p, WrappedTextMetrics as q, GraphemeBox as r, setDefaultMeasurer as rt, LineBox as s, Circle as t, segmentGraphemes as tt, Rect as u, coercePathData as v, ResolvedSketch as w, roundedRectSegs as x, pathFromSegs as y, Node as z };
package/dist/nodes.js CHANGED
@@ -560,6 +560,19 @@ function quantize(v) {
560
560
  return Math.round(v / MEASURE_QUANTUM_PX) * MEASURE_QUANTUM_PX;
561
561
  }
562
562
  /**
563
+ * FAIL LOUD on a non-measurable FontSpec (§0.24 fail-loud sweep). A `size` that
564
+ * isn't a finite positive number silently yields NaN/0 metrics in the estimating
565
+ * measurers (and a wrong-font fallback in the real backends) → zero-height layout
566
+ * boxes, broken wrapping/reveal, all with NO error — the silent-wrong-result class
567
+ * an agent can't glance-test. The common cause is the field name: the FontSpec
568
+ * field is `size`, NOT `fontSize` (that is the Text node prop). The single guard
569
+ * every measurement entry point (breakLines, measureWrappedText, the backend
570
+ * `measureText`s) routes through, so the contract is enforced uniformly.
571
+ */
572
+ function assertFiniteFontSize(font, where) {
573
+ if (typeof font.size !== "number" || !Number.isFinite(font.size) || font.size <= 0) throw new Error(`${where}: font.size must be a positive number (got ${JSON.stringify(font.size)}). The FontSpec field is \`size\`, not \`fontSize\` (that is the Text node prop) — pass \`{ family, size }\`.`);
574
+ }
575
+ /**
563
576
  * Estimating fallback measurer — used only when no backend has been injected
564
577
  * (e.g. evaluating for IR-level tests). Deterministic but not metrically
565
578
  * faithful; mount(), the CLI, and exporters always inject the real one.
@@ -651,6 +664,7 @@ function segmentGraphemes(text) {
651
664
  * intra-word breaking in v1).
652
665
  */
653
666
  function breakLines(text, font, maxWidth, measurer) {
667
+ assertFiniteFontSize(font, "breakLines");
654
668
  const paragraphs = text.split("\n");
655
669
  if (maxWidth === void 0 || maxWidth <= 0) return paragraphs;
656
670
  const lines = [];
@@ -678,7 +692,7 @@ function breakLines(text, font, maxWidth, measurer) {
678
692
  * `FontSpec`, so it's a parameter here).
679
693
  */
680
694
  function measureWrappedText(text, font, width, lineHeight, measurer) {
681
- if (typeof font.size !== "number" || !Number.isFinite(font.size) || font.size <= 0) throw new Error(`measureWrappedText: font.size must be a positive number (got ${JSON.stringify(font.size)}). The FontSpec field is \`size\`, not \`fontSize\` (that is the Text node prop) — pass \`{ family, size }\`.`);
695
+ assertFiniteFontSize(font, "measureWrappedText");
682
696
  const lines = breakLines(text, font, width > 0 ? width : void 0, measurer);
683
697
  let widest = 0;
684
698
  let ascent = 0;
@@ -2288,4 +2302,4 @@ function revealSchedule(text, reveal, measurer) {
2288
2302
  return marks;
2289
2303
  }
2290
2304
  //#endregion
2291
- export { warnIfEstimating as A, validateSketch as B, fallbackMeasurer as C, segmentGraphemes as D, quantize as E, hashStr as F, validateFilters as G, createDisplayListBuilder as H, resolveSketch as I, applyToPoint as J, collapseReplacer as K, roughen as L, arcLength as M, flatten as N, segmentWords as O, hachureLines as P, multiply as Q, sketchStrokes as R, estimatingMeasurer as S, measureWrappedText as T, filtersToCanvasFilter as U, FilterValidationError as V, glow as W, invert as X, fromTRS as Y, matEquals as Z, NODE_CONSTRUCTION_PROP_NAMES as _, Path as a, __resetEstimateWarnings as b, Video as c, revealSchedule as d, roundedRectSegs as f, BASE_CONSTRUCTION_PROP_NAMES as g, resolveAnchor as h, ImageNode as i, SketchValidationError as j, setDefaultMeasurer as k, coercePathData as l, NodeConstructionError as m, Custom as n, Rect as o, Node as p, IDENTITY as q, Group as r, Text as s, Circle as t, pathFromSegs as u, isConstructionProp as v, isEstimatingMeasurer as w, breakLines as x, MEASURE_QUANTUM_PX as y, validateHachure as z };
2305
+ export { multiply as $, setDefaultMeasurer as A, validateHachure as B, estimatingMeasurer as C, quantize as D, measureWrappedText as E, hachureLines as F, glow as G, FilterValidationError as H, hashStr as I, IDENTITY as J, validateFilters as K, resolveSketch as L, SketchValidationError as M, arcLength as N, segmentGraphemes as O, flatten as P, matEquals as Q, roughen as R, breakLines as S, isEstimatingMeasurer as T, createDisplayListBuilder as U, validateSketch as V, filtersToCanvasFilter as W, fromTRS as X, applyToPoint as Y, invert as Z, NODE_CONSTRUCTION_PROP_NAMES as _, Path as a, __resetEstimateWarnings as b, Video as c, revealSchedule as d, roundedRectSegs as f, BASE_CONSTRUCTION_PROP_NAMES as g, resolveAnchor as h, ImageNode as i, warnIfEstimating as j, segmentWords as k, coercePathData as l, NodeConstructionError as m, Custom as n, Rect as o, Node as p, collapseReplacer as q, Group as r, Text as s, Circle as t, pathFromSegs as u, isConstructionProp as v, fallbackMeasurer as w, assertFiniteFontSize as x, MEASURE_QUANTUM_PX as y, sketchStrokes as z };
package/dist/scene.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as fallbackMeasurer, H as createDisplayListBuilder, T as measureWrappedText, r as Group, v as isConstructionProp } from "./nodes.js";
1
+ import { E as measureWrappedText, U as createDisplayListBuilder, r as Group, v as isConstructionProp, w as fallbackMeasurer } from "./nodes.js";
2
2
  import { bindTimeline, compileTimeline, createPlayhead, evaluateAt, signal } from "@glissade/core";
3
3
  //#region src/scene.ts
4
4
  /**
package/dist/tokens.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Z as matEquals, f as roundedRectSegs, p as Node, q as IDENTITY } from "./nodes.js";
1
+ import { J as IDENTITY, Q as matEquals, f as roundedRectSegs, p as Node } from "./nodes.js";
2
2
  import { signal, vec2Signal } from "@glissade/core";
3
3
  //#region src/tokenHighlight.ts
4
4
  /**
package/dist/type.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as warnIfEstimating, C as fallbackMeasurer, E as quantize, r as Group, s as Text } from "./nodes.js";
1
+ import { D as quantize, j as warnIfEstimating, r as Group, s as Text, w as fallbackMeasurer } from "./nodes.js";
2
2
  //#region src/type.ts
3
3
  /**
4
4
  * `@glissade/scene/type` — `splitText()`: build-time split-text sub-targets
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glissade/scene",
3
- "version": "0.24.0-pre.0",
3
+ "version": "0.24.0-pre.2",
4
4
  "description": "glissade scene graph: nodes, transforms, DisplayList emission. Renderer-agnostic; zero DOM/Node dependencies.",
5
5
  "license": "Apache-2.0",
6
6
  "engines": {
@@ -65,7 +65,7 @@
65
65
  ],
66
66
  "dependencies": {
67
67
  "yoga-layout": "^3.2.1",
68
- "@glissade/core": "0.24.0-pre.0"
68
+ "@glissade/core": "0.24.0-pre.2"
69
69
  },
70
70
  "repository": {
71
71
  "type": "git",