@servrox/console-fx 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +23 -4
  2. package/README.md +7 -1
  3. package/dist/browser/compiler.d.ts.map +1 -1
  4. package/dist/browser/compiler.js +31 -20
  5. package/dist/browser/compiler.js.map +1 -1
  6. package/dist/browser/index.d.ts +1 -1
  7. package/dist/browser/index.d.ts.map +1 -1
  8. package/dist/browser/index.js +2 -12
  9. package/dist/browser/index.js.map +1 -1
  10. package/dist/browser/motion.d.ts +4 -0
  11. package/dist/browser/motion.d.ts.map +1 -0
  12. package/dist/browser/motion.js +19 -0
  13. package/dist/browser/motion.js.map +1 -0
  14. package/dist/browser/preflight.d.ts.map +1 -1
  15. package/dist/browser/preflight.js +6 -5
  16. package/dist/browser/preflight.js.map +1 -1
  17. package/dist/codegen/index.d.ts.map +1 -1
  18. package/dist/codegen/index.js +11 -9
  19. package/dist/codegen/index.js.map +1 -1
  20. package/dist/effects/catalog.d.ts +3 -1
  21. package/dist/effects/catalog.d.ts.map +1 -1
  22. package/dist/effects/catalog.js +41 -19
  23. package/dist/effects/catalog.js.map +1 -1
  24. package/dist/layout/metrics.d.ts +12 -4
  25. package/dist/layout/metrics.d.ts.map +1 -1
  26. package/dist/layout/metrics.js +37 -8
  27. package/dist/layout/metrics.js.map +1 -1
  28. package/dist/layout/planner.d.ts.map +1 -1
  29. package/dist/layout/planner.js +59 -27
  30. package/dist/layout/planner.js.map +1 -1
  31. package/dist/layout/render.js +1 -1
  32. package/dist/layout/render.js.map +1 -1
  33. package/dist/model/layout.d.ts +5 -3
  34. package/dist/model/layout.d.ts.map +1 -1
  35. package/dist/presentations/catalog.d.ts +7 -3
  36. package/dist/presentations/catalog.d.ts.map +1 -1
  37. package/dist/presentations/catalog.js +246 -1370
  38. package/dist/presentations/catalog.js.map +1 -1
  39. package/dist/presentations/compact.d.ts +3 -3
  40. package/dist/presentations/compact.d.ts.map +1 -1
  41. package/dist/presentations/compact.js.map +1 -1
  42. package/dist/presentations/safe-cells.d.ts +10 -0
  43. package/dist/presentations/safe-cells.d.ts.map +1 -0
  44. package/dist/presentations/safe-cells.js +99 -0
  45. package/dist/presentations/safe-cells.js.map +1 -0
  46. package/dist/presets/cards.d.ts.map +1 -1
  47. package/dist/presets/cards.js +2 -2
  48. package/dist/presets/cards.js.map +1 -1
  49. package/dist/renderers/presentations/render.d.ts +4 -1
  50. package/dist/renderers/presentations/render.d.ts.map +1 -1
  51. package/dist/renderers/presentations/render.js +10 -3
  52. package/dist/renderers/presentations/render.js.map +1 -1
  53. package/dist/renderers/svg.d.ts.map +1 -1
  54. package/dist/renderers/svg.js +12 -11
  55. package/dist/renderers/svg.js.map +1 -1
  56. package/dist/validation/layout.d.ts.map +1 -1
  57. package/dist/validation/layout.js +2 -2
  58. package/dist/validation/layout.js.map +1 -1
  59. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,7 +1,26 @@
1
1
  # @servrox/console-fx
2
2
 
3
- ## 0.1.0 — unreleased
3
+ ## 0.2.0
4
4
 
5
- Initial candidate: validated scene data, immutable descriptors, explicit CSS/SVG/text
6
- compilation, finite decorative motion, presets and safe standalone JavaScript.
7
- Publication awaits the recorded compatibility and release gates.
5
+ ### Minor Changes
6
+
7
+ - Add explicit `fit/v2` with per-field readable floors and paint-aware fitting inside approved card cells. Preserve `fit/v1` output, failure and fallback behavior. Optional measurement batches retain their input limits and separate algorithm identities.
8
+ - Require matching core 0.2.x in the React adapter; no new runtime dependencies.
9
+
10
+ Includes the previously prepared, unpublished 0.1.1 corrections below.
11
+
12
+ ### Patch Changes
13
+
14
+ - 224db36: Keep fitting resource limits and invalid sizing fatal under fallback, place experimental container captions on a following line, and reject SVG-unrepresentable text with explicit lossless text fallback. Ordinary scene data, CSS/text behavior and legacy fixed SVG arguments remain compatible.
15
+
16
+ ## 0.1.0
17
+
18
+ Published September 13, 2026 under `next`.
19
+
20
+ - Validated scene data, immutable descriptors, explicit CSS/SVG/text compilation,
21
+ finite decorative motion and safe standalone JavaScript.
22
+ - Four static cinematic presets and ten Useful/Artful card presentations, with
23
+ public factories and structured capability diagnostics.
24
+ - Explicit content fitting, separate fixed/experimental container sizing,
25
+ optional local-font measurements and versioned render recipes.
26
+ - An explicit CSS compiler for consumers that do not need SVG artwork.
package/README.md CHANGED
@@ -190,7 +190,7 @@ const parsed = parseRenderRecipe({
190
190
  renderer: "svg",
191
191
  motion: "reduce",
192
192
  layout: {
193
- algorithm: "fit/v1",
193
+ algorithm: "fit/v2",
194
194
  width: 360,
195
195
  maxHeight: 400,
196
196
  variant: "standard",
@@ -251,3 +251,9 @@ Imports create no logs, timers, requests or page changes. The core has no runtim
251
251
  dependencies and does not include React, Next.js, or studio assets.
252
252
 
253
253
  MIT © 2026 ConsoleFX contributors.
254
+
255
+ ### Fitting algorithm compatibility
256
+
257
+ `fit/v2` (0.2.0, available under `next`) keeps small fields at their readable floor while larger text shrinks. Card paint stays within the original cells and artwork exclusions; content is never truncated. At most 16 whole-document candidates and 512 shaping requests are considered. Estimation cache data is bounded to 512 KiB; optional measurement batches and input snapshots retain their 64 KiB limit.
258
+
259
+ Existing `fit/v1` calls, recipes, measurement identities, failures and fallbacks retain their behavior. Choose the algorithm explicitly; old package readers reject v2. `LayoutReport.contentScale` records the candidate scale, while each fragment records its actual font size after floors and card scaling. No width is guessed and no fonts are measured implicitly. Unknown container display width retains the readability warning and full native caption.
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/browser/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,EAC9B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAEf,UAAU,EACV,YAAY,EACZ,OAAO,EACR,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;gBAChC,WAAW,EAAE,SAAS,UAAU,EAAE;CAK/C;AAuBD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,wBAAwB;;;EAmIxC;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,EACnB,YAAY,GAAE,cAAmB,EACjC,SAAS,CAAC,EAAE,CACV,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,cAAc,KACpB,SAAS,EACd,gBAAgB,iCAA0B,GACzC,eAAe,CAwIjB"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/browser/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,KAAK,wBAAwB,EAC9B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EAEf,UAAU,EACV,YAAY,EACZ,OAAO,EACR,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;gBAChC,WAAW,EAAE,SAAS,UAAU,EAAE;CAK/C;AAuBD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,wBAAwB;;;EA+IxC;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,EACnB,YAAY,GAAE,cAAmB,EACjC,SAAS,CAAC,EAAE,CACV,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,cAAc,KACpB,SAAS,EACd,gBAAgB,iCAA0B,GACzC,eAAe,CA2IjB"}
@@ -39,6 +39,16 @@ export function diagnoseRichScene(scene, configuration) {
39
39
  unsupported.push(problem("unsupported-renderer", "Rich output requires a qualified Chromium target.", ["target"]));
40
40
  for (const [lineIndex, line] of scene.lines.entries())
41
41
  for (const [runIndex, run] of line.runs.entries()) {
42
+ // XML 1.0 cannot encode these characters. Labels are not SVG markup;
43
+ // only rendered runs need this capability check. CSS/text stay lossless.
44
+ if (configuration.renderer === "svg" && /[\uFFFE\uFFFF]/u.test(run.text))
45
+ unsupported.push(problem("unsupported-svg-text", "SVG cannot encode this text.", [
46
+ "lines",
47
+ lineIndex,
48
+ "runs",
49
+ runIndex,
50
+ "text",
51
+ ]));
42
52
  if (run.effects.filter((effect) => effectDescriptor(effect.kind).motion === "static").length > 1)
43
53
  unsupported.push(problem("unsupported-combination", "Use one style effect and one motion per run, or choose plain text.", ["lines", lineIndex, "runs", runIndex, "effects"]));
44
54
  const cinematic = run.effects.find((effect) => effect.kind === "cinematicMetal");
@@ -112,6 +122,16 @@ export function compileScene(input, inputOptions = {}, renderSvg, normalizeOptio
112
122
  preview: { kind: "text", text },
113
123
  diagnostics,
114
124
  });
125
+ const fallback = (failures) => {
126
+ diagnostics.push(...failures.map((entry) => ({
127
+ ...entry,
128
+ severity: "warning",
129
+ })), {
130
+ ...problem("renderer-fallback", `${configuration.renderer} output fell back to static text.`),
131
+ severity: "warning",
132
+ });
133
+ return plain();
134
+ };
115
135
  if (configuration.renderer === "text") {
116
136
  diagnostics.push({
117
137
  code: "plain-text",
@@ -125,16 +145,7 @@ export function compileScene(input, inputOptions = {}, renderSvg, normalizeOptio
125
145
  if (unsupported.length) {
126
146
  if (configuration.unsupported === "error")
127
147
  throw new ConsoleCompileError(unsupported);
128
- diagnostics.push(...unsupported.map((entry) => ({
129
- ...entry,
130
- severity: "warning",
131
- })), {
132
- code: "renderer-fallback",
133
- severity: "warning",
134
- path: [],
135
- message: `${configuration.renderer} output fell back to static text.`,
136
- });
137
- return plain();
148
+ return fallback(unsupported);
138
149
  }
139
150
  if (configuration.renderer === "css") {
140
151
  const output = renderCss(scene);
@@ -164,16 +175,14 @@ export function compileScene(input, inputOptions = {}, renderSvg, normalizeOptio
164
175
  }
165
176
  catch (error) {
166
177
  if (error instanceof SceneValidationError) {
167
- if (configuration.unsupported === "error")
178
+ if (configuration.unsupported === "error" ||
179
+ error.diagnostics.some(({ code }) => ![
180
+ "layout-overflow",
181
+ "unsupported-layout",
182
+ "below-readable-size",
183
+ ].includes(code)))
168
184
  throw new ConsoleCompileError(error.diagnostics);
169
- diagnostics.push(...error.diagnostics.map((d) => ({
170
- ...d,
171
- severity: "warning",
172
- })), {
173
- ...problem("renderer-fallback", "Requested layout fell back to complete static text."),
174
- severity: "warning",
175
- });
176
- return plain();
185
+ return fallback(error.diagnostics);
177
186
  }
178
187
  if (error instanceof RangeError)
179
188
  throw new ConsoleCompileError([
@@ -192,7 +201,9 @@ export function compileScene(input, inputOptions = {}, renderSvg, normalizeOptio
192
201
  const width = output.width ?? scene.surface.width;
193
202
  const height = output.height ?? scene.surface.height;
194
203
  const args = [
195
- "%c %c%s%c",
204
+ configuration.sizing?.mode === "container-experimental"
205
+ ? "%c %c\n%s%c"
206
+ : "%c %c%s%c",
196
207
  `font-size:0;line-height:0;padding:${output.carrierPadding ?? `${height / 2}px ${width / 2}px`};background:url("${output.imageUri}") center/contain no-repeat`,
197
208
  "",
198
209
  literalPercent(text),
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/browser/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/browser/compiler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { CompileOptions, CompiledConsole, ConsoleArgs, SceneInputV1 } from "../model/types.js";
2
2
  export { measureTextBatch } from "./measure.js";
3
3
  export { prepareTextMeasurements } from "./preflight.js";
4
+ export { resolveMotion } from "./motion.js";
4
5
  export { ConsoleCompileError } from "./compiler.js";
5
6
  export type { CompileOptions, CompiledConsole, CompiledPreview, ConsoleArgs, } from "../model/types.js";
6
7
  /** Complete CSS/SVG/text compiler; retains the existing defaults and output. */
@@ -11,6 +12,5 @@ export declare function compileCssConsole(input: SceneInputV1, options?: CssComp
11
12
  export type BrowserOptions = Omit<CompileOptions, "motion"> & {
12
13
  readonly motion?: "system" | "reduce";
13
14
  };
14
- export declare function resolveMotion(): "allow" | "reduce";
15
15
  export declare function emitConsole(input: SceneInputV1, options?: BrowserOptions, sink?: (...args: ConsoleArgs) => void): CompiledConsole;
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAAmB,GAC3B,eAAe,CAEjB;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,cAAc,EACd,QAAQ,GAAG,QAAQ,GAAG,aAAa,CACpC,CAAC;AACF,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,iBAAsB,GAC9B,eAAe,CAUjB;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACvC,CAAC;AACF,wBAAgB,aAAa,IAAI,OAAO,GAAG,QAAQ,CAUlD;AACD,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAAmB,EAC5B,IAAI,GAAE,CAAC,GAAG,IAAI,EAAE,WAAW,KAAK,IAAwC,GACvE,eAAe,CAejB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAAmB,GAC3B,eAAe,CAEjB;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,cAAc,EACd,QAAQ,GAAG,QAAQ,GAAG,aAAa,CACpC,CAAC;AACF,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,iBAAsB,GAC9B,eAAe,CAUjB;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACvC,CAAC;AACF,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAAmB,EAC5B,IAAI,GAAE,CAAC,GAAG,IAAI,EAAE,WAAW,KAAK,IAAwC,GACvE,eAAe,CAejB"}
@@ -5,6 +5,8 @@ export { measureTextBatch } from "./measure.js";
5
5
  export { prepareTextMeasurements } from "./preflight.js";
6
6
  import { record, SceneValidationError } from "../validation/index.js";
7
7
  import { ConsoleCompileError } from "./compiler.js";
8
+ import { resolveMotion } from "./motion.js";
9
+ export { resolveMotion } from "./motion.js";
8
10
  export { ConsoleCompileError } from "./compiler.js";
9
11
  /** Complete CSS/SVG/text compiler; retains the existing defaults and output. */
10
12
  export function compileConsole(input, options = {}) {
@@ -23,18 +25,6 @@ export function compileCssConsole(input, options = {}) {
23
25
  }
24
26
  return compileScene(input, { ...data, renderer: "css" });
25
27
  }
26
- export function resolveMotion() {
27
- try {
28
- return typeof globalThis.matchMedia === "function" &&
29
- globalThis.matchMedia("(prefers-reduced-motion: no-preference)")
30
- .matches === true
31
- ? "allow"
32
- : "reduce";
33
- }
34
- catch {
35
- return "reduce";
36
- }
37
- }
38
28
  export function emitConsole(input, options = {}, sink = (...args) => console.log(...args)) {
39
29
  let configuration;
40
30
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,IAAI,sBAAsB,EACtD,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAQpD,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAC5B,KAAmB,EACnB,UAA0B,EAAE;IAE5B,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;AAChF,CAAC;AAMD,6FAA6F;AAC7F,MAAM,UAAU,iBAAiB,CAC/B,KAAmB,EACnB,UAA6B,EAAE;IAE/B,IAAI,IAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,oBAAoB;YACvC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAKD,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,OAAO,OAAO,UAAU,CAAC,UAAU,KAAK,UAAU;YAChD,UAAU,CAAC,UAAU,CAAC,yCAAyC,CAAC;iBAC7D,OAAO,KAAK,IAAI;YACnB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AACD,MAAM,UAAU,WAAW,CACzB,KAAmB,EACnB,UAA0B,EAAE,EAC5B,OAAuC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAExE,IAAI,aAAwD,CAAC;IAC7D,IAAI,CAAC;QACH,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,oBAAoB;YACvC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE;QACnC,GAAG,aAAa;QAChB,MAAM,EAAE,aAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,QAAQ;KACvE,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,IAAI,sBAAsB,EACtD,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAQpD,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAC5B,KAAmB,EACnB,UAA0B,EAAE;IAE5B,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;AAChF,CAAC;AAMD,6FAA6F;AAC7F,MAAM,UAAU,iBAAiB,CAC/B,KAAmB,EACnB,UAA6B,EAAE;IAE/B,IAAI,IAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,oBAAoB;YACvC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAKD,MAAM,UAAU,WAAW,CACzB,KAAmB,EACnB,UAA0B,EAAE,EAC5B,OAAuC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAExE,IAAI,aAAwD,CAAC;IAC7D,IAAI,CAAC;QACH,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,oBAAoB;YACvC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE;QACnC,GAAG,aAAa;QAChB,MAAM,EAAE,aAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,QAAQ;KACvE,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function resolveMotion(): "allow" | "reduce";
2
+ /** Read-only, self-contained guard used only when both motion branches exist. */
3
+ export declare function motionGuardSource(): string;
4
+ //# sourceMappingURL=motion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../src/browser/motion.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,IAAI,OAAO,GAAG,QAAQ,CASlD;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
@@ -0,0 +1,19 @@
1
+ // Both adapters require positive no-preference. Helpers additionally recover
2
+ // from host errors; standalone source preserves the spec's no-IIFE grammar.
3
+ const query = "(prefers-reduced-motion: no-preference)";
4
+ export function resolveMotion() {
5
+ try {
6
+ return typeof globalThis.matchMedia === "function" &&
7
+ globalThis.matchMedia(query).matches === true
8
+ ? "allow"
9
+ : "reduce";
10
+ }
11
+ catch {
12
+ return "reduce";
13
+ }
14
+ }
15
+ /** Read-only, self-contained guard used only when both motion branches exist. */
16
+ export function motionGuardSource() {
17
+ return `typeof globalThis.matchMedia === "function" && globalThis.matchMedia(${JSON.stringify(query)})?.matches === true`;
18
+ }
19
+ //# sourceMappingURL=motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.js","sourceRoot":"","sources":["../../src/browser/motion.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,KAAK,GAAG,yCAAyC,CAAC;AAExD,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,OAAO,OAAO,UAAU,CAAC,UAAU,KAAK,UAAU;YAChD,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,IAAI;YAC7C,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,wEAAwE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC;AAC5H,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/browser/preflight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AA0CjE,gGAAgG;AAChG,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,cAAc,GACtB,gBAAgB,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAqDrD"}
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/browser/preflight.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AA2CjE,gGAAgG;AAChG,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,cAAc,GACtB,gBAAgB,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAsDrD"}
@@ -4,10 +4,11 @@ import { normalizeRenderOptions } from "../validation/render-options.js";
4
4
  import { planSvgLayout } from "../layout/planner.js";
5
5
  import { MetricResolver } from "../layout/metrics.js";
6
6
  import { diagnoseRichScene } from "./compiler.js";
7
+ import { wrappingAlternatives } from "../layout/wrap.js";
7
8
  class PreflightMetricResolver extends MetricResolver {
8
9
  alternatives = [];
9
- suggest = (alternatives, profile = "flow/v1") => {
10
- this.alternatives.push({ runs: alternatives, profile });
10
+ suggest = (tokens, profile = "flow/v1") => {
11
+ this.alternatives.push({ runs: wrappingAlternatives(tokens), profile });
11
12
  };
12
13
  /** Fill spare preflight capacity after required shaping work, retaining headroom
13
14
  * for different fragments on the measured pass. Speculation never exhausts it.
@@ -38,7 +39,7 @@ export function prepareTextMeasurements(input, options) {
38
39
  const { unsupported } = diagnoseRichScene(scene, config);
39
40
  if (unsupported.length)
40
41
  return { ok: false, diagnostics: unsupported };
41
- const resolver = new PreflightMetricResolver(config.measurementEnvironment, config.measurements);
42
+ const resolver = new PreflightMetricResolver(config.measurementEnvironment, config.measurements, config.layout.algorithm);
42
43
  try {
43
44
  planSvgLayout(scene, config.layout, config, resolver);
44
45
  }
@@ -48,7 +49,7 @@ export function prepareTextMeasurements(input, options) {
48
49
  resolver.completePreflight();
49
50
  return {
50
51
  ok: true,
51
- value: deepFreeze([...resolver.requests.values()]),
52
+ value: deepFreeze(resolver.measurementBatch(true)),
52
53
  diagnostics: error.diagnostics,
53
54
  };
54
55
  }
@@ -57,7 +58,7 @@ export function prepareTextMeasurements(input, options) {
57
58
  resolver.completePreflight();
58
59
  return {
59
60
  ok: true,
60
- value: deepFreeze([...resolver.requests.values()]),
61
+ value: deepFreeze(resolver.measurementBatch(true)),
61
62
  diagnostics: [],
62
63
  };
63
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/browser/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/browser/preflight.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAID,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,aAAkB,GAC1B,eAAe,CA+CjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAID,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,aAAkB,GAC1B,eAAe,CAgDjB"}
@@ -1,6 +1,7 @@
1
1
  import { normalizeRenderExportOptions as normalizeExportOptions } from "../validation/render-options.js";
2
2
  import { SceneValidationError } from "../validation/index.js";
3
3
  import { compileConsole, ConsoleCompileError } from "../browser/index.js";
4
+ import { motionGuardSource } from "../browser/motion.js";
4
5
  import { deepFreeze, LIMITS, utf8ByteLength } from "../model/limits.js";
5
6
  export function serializeString(value) {
6
7
  return JSON.stringify(value)
@@ -19,20 +20,21 @@ export function exportConsoleLog(scene, options = {}) {
19
20
  throw error;
20
21
  }
21
22
  const staticOutput = compileConsole(scene, { ...options, motion: "reduce" });
22
- let code = `console.log(${argumentsSource(staticOutput.args)});`;
23
+ const staticArguments = argumentsSource(staticOutput.args);
24
+ let code = `console.log(${staticArguments});`;
23
25
  const diagnostics = [...staticOutput.diagnostics];
24
26
  if (options.motion === "system") {
25
- const animatedOutput = compileConsole(scene, {
27
+ const allowedOutput = compileConsole(scene, {
26
28
  ...options,
27
29
  motion: "allow",
28
30
  });
29
- if (animatedOutput.animated) {
30
- code = `console.log(...(typeof globalThis.matchMedia === "function" && globalThis.matchMedia("(prefers-reduced-motion: no-preference)")?.matches === true ? [${argumentsSource(animatedOutput.args)}] : [${argumentsSource(staticOutput.args)}]));`;
31
- for (const entry of animatedOutput.diagnostics)
32
- if (!diagnostics.some((existing) => existing.code === entry.code &&
33
- JSON.stringify(existing.path) === JSON.stringify(entry.path)))
34
- diagnostics.push(entry);
35
- }
31
+ const allowedArguments = argumentsSource(allowedOutput.args);
32
+ if (allowedArguments !== staticArguments)
33
+ code = `console.log(...(${motionGuardSource()} ? [${allowedArguments}] : [${staticArguments}]));`;
34
+ for (const entry of allowedOutput.diagnostics)
35
+ if (!diagnostics.some((existing) => existing.code === entry.code &&
36
+ JSON.stringify(existing.path) === JSON.stringify(entry.path)))
37
+ diagnostics.push(entry);
36
38
  }
37
39
  const byteLength = utf8ByteLength(code);
38
40
  if (byteLength > LIMITS.snippetBytes)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { EffectDescriptor, EffectKind } from "../model/types.js";
2
+ type RuntimeEffect = Omit<EffectDescriptor, "displayName" | "scopes">;
2
3
  export declare function getEffectDescriptors(): readonly EffectDescriptor[];
3
- export declare function effectDescriptor(kind: string): EffectDescriptor | undefined;
4
+ export declare function effectDescriptor(kind: string): RuntimeEffect | undefined;
4
5
  export declare const EFFECT_ORDER: readonly EffectKind[];
6
+ export {};
5
7
  //# sourceMappingURL=catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/effects/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAuMtE,wBAAgB,oBAAoB,IAAI,SAAS,gBAAgB,EAAE,CAElE;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE3E;AACD,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAc7C,CAAC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/effects/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGtE,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,QAAQ,CAAC,CAAC;AAsMtE,wBAAgB,oBAAoB,IAAI,SAAS,gBAAgB,EAAE,CAYlE;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAExE;AACD,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAc7C,CAAC"}
@@ -1,30 +1,28 @@
1
1
  import { deepFreeze } from "../model/limits.js";
2
2
  // Every built-in is run-scoped. Keep shared capability fields in one place.
3
- function descriptor(kind, displayName, family, parameters, css, motion) {
3
+ function descriptor(kind, family, parameters, css, motion) {
4
4
  return {
5
5
  kind,
6
- displayName,
7
6
  family,
8
- scopes: ["run"],
9
7
  parameters,
10
8
  renderers: css ? ["css", "svg"] : ["svg"],
11
9
  motion,
12
10
  };
13
11
  }
14
- const descriptors = deepFreeze([
15
- descriptor("badge", "Badge", "background", { color: { type: "color", default: "#22d3ee" } }, true, "static"),
16
- descriptor("neon", "Neon", "glow", {
12
+ const runtime = deepFreeze([
13
+ descriptor("badge", "background", { color: { type: "color", default: "#22d3ee" } }, true, "static"),
14
+ descriptor("neon", "glow", {
17
15
  color: { type: "color", default: "#22d3ee" },
18
16
  intensity: { type: "number", default: 0.7, min: 0, max: 1, step: 0.1 },
19
17
  }, true, "static"),
20
- descriptor("rgbSplit", "RGB split", "shadow", { offset: { type: "number", default: 3, min: 1, max: 8, step: 1 } }, true, "static"),
21
- descriptor("extruded", "Extruded text", "shadow", {
18
+ descriptor("rgbSplit", "shadow", { offset: { type: "number", default: 3, min: 1, max: 8, step: 1 } }, true, "static"),
19
+ descriptor("extruded", "shadow", {
22
20
  depth: { type: "number", default: 6, min: 1, max: 12, step: 1 },
23
21
  color: { type: "color", default: "#168da5" },
24
22
  }, true, "static"),
25
- descriptor("holographic", "Holographic", "fill", { intensity: { type: "number", default: 0.7, min: 0, max: 1, step: 0.1 } }, false, "static"),
26
- descriptor("metallic", "Gold / chrome", "fill", { variant: { type: "enum", default: "gold", values: ["gold", "chrome"] } }, false, "static"),
27
- descriptor("cinematicMetal", "Cinematic Metal", "fill", {
23
+ descriptor("holographic", "fill", { intensity: { type: "number", default: 0.7, min: 0, max: 1, step: 0.1 } }, false, "static"),
24
+ descriptor("metallic", "fill", { variant: { type: "enum", default: "gold", values: ["gold", "chrome"] } }, false, "static"),
25
+ descriptor("cinematicMetal", "fill", {
28
26
  profile: {
29
27
  type: "enum",
30
28
  default: "lightning-metal-v1",
@@ -40,8 +38,8 @@ const descriptors = deepFreeze([
40
38
  glow: { type: "number", default: 0.25, min: 0, max: 1, step: 0.05 },
41
39
  ornaments: { type: "boolean", default: true },
42
40
  }, false, "static"),
43
- descriptor("crt", "CRT", "fill", { intensity: { type: "number", default: 0.6, min: 0, max: 1, step: 0.1 } }, false, "static"),
44
- descriptor("rainbow", "Rainbow", "fill", {
41
+ descriptor("crt", "fill", { intensity: { type: "number", default: 0.6, min: 0, max: 1, step: 0.1 } }, false, "static"),
42
+ descriptor("rainbow", "fill", {
45
43
  saturation: {
46
44
  type: "number",
47
45
  default: 0.85,
@@ -50,7 +48,7 @@ const descriptors = deepFreeze([
50
48
  step: 0.05,
51
49
  },
52
50
  }, false, "static"),
53
- descriptor("glowPulse", "Glow pulse", "motion", {
51
+ descriptor("glowPulse", "motion", {
54
52
  periodMs: {
55
53
  type: "number",
56
54
  default: 2400,
@@ -66,7 +64,7 @@ const descriptors = deepFreeze([
66
64
  step: 0.1,
67
65
  },
68
66
  }, false, "decorative"),
69
- descriptor("gradientDrift", "Gradient drift", "motion", {
67
+ descriptor("gradientDrift", "motion", {
70
68
  periodMs: {
71
69
  type: "number",
72
70
  default: 2400,
@@ -76,7 +74,7 @@ const descriptors = deepFreeze([
76
74
  },
77
75
  distance: { type: "number", default: 30, min: 5, max: 50, step: 1 },
78
76
  }, false, "decorative"),
79
- descriptor("wave", "Gentle wave", "motion", {
77
+ descriptor("wave", "motion", {
80
78
  amplitude: { type: "number", default: 5, min: 1, max: 10, step: 1 },
81
79
  periodMs: {
82
80
  type: "number",
@@ -86,7 +84,7 @@ const descriptors = deepFreeze([
86
84
  step: 100,
87
85
  },
88
86
  }, false, "decorative"),
89
- descriptor("indicator", "Decorative moving indicator", "motion", {
87
+ descriptor("indicator", "motion", {
90
88
  color: { type: "color", default: "#22d3ee" },
91
89
  periodMs: {
92
90
  type: "number",
@@ -97,11 +95,35 @@ const descriptors = deepFreeze([
97
95
  },
98
96
  }, false, "decorative"),
99
97
  ]);
98
+ const names = {
99
+ badge: "Badge",
100
+ neon: "Neon",
101
+ rgbSplit: "RGB split",
102
+ extruded: "Extruded text",
103
+ holographic: "Holographic",
104
+ metallic: "Gold / chrome",
105
+ cinematicMetal: "Cinematic Metal",
106
+ crt: "CRT",
107
+ rainbow: "Rainbow",
108
+ glowPulse: "Glow pulse",
109
+ gradientDrift: "Gradient drift",
110
+ wave: "Gentle wave",
111
+ indicator: "Decorative moving indicator",
112
+ };
113
+ let descriptors;
100
114
  export function getEffectDescriptors() {
101
- return descriptors;
115
+ return (descriptors ??= deepFreeze(runtime.map(({ kind, family, parameters, renderers, motion }) => ({
116
+ kind,
117
+ displayName: names[kind],
118
+ family,
119
+ scopes: ["run"],
120
+ parameters,
121
+ renderers,
122
+ motion,
123
+ }))));
102
124
  }
103
125
  export function effectDescriptor(kind) {
104
- return descriptors.find((descriptor) => descriptor.kind === kind);
126
+ return runtime.find((descriptor) => descriptor.kind === kind);
105
127
  }
106
128
  export const EFFECT_ORDER = [
107
129
  "badge",
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/effects/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/effects/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { MeasurementSnapshot, MeasurementQuality, TextMeasurement, TextMeasurementRequest } from "../model/layout.js";
1
+ import type { LayoutAlgorithm, MeasurementSnapshot, MeasurementQuality, TextMeasurement, TextMeasurementRequest } from "../model/layout.js";
2
2
  import type { TextRun } from "../model/types.js";
3
+ import type { FlowRun } from "./wrap.js";
3
4
  export type FontMetric = Omit<TextMeasurement, "request"> & {
4
5
  readonly quality: MeasurementQuality;
5
6
  readonly direction?: "ltr" | "rtl";
@@ -8,12 +9,19 @@ export declare function textDirection(text: string): "ltr" | "rtl";
8
9
  /** Per-attempt bounded data cache. Never retained between compilations. */
9
10
  export declare class MetricResolver {
10
11
  readonly environment: string;
11
- readonly snapshot?: MeasurementSnapshot | undefined;
12
+ readonly algorithm: LayoutAlgorithm;
12
13
  readonly requests: Map<string, TextMeasurementRequest>;
13
14
  readonly available: ReadonlyMap<string, TextMeasurement>;
14
15
  protected bytes: number;
15
- readonly suggest?: (alternatives: Iterable<TextRun>, profile?: string) => void;
16
- constructor(environment: string, snapshot?: MeasurementSnapshot | undefined);
16
+ private readonly candidate;
17
+ readonly suggest?: (tokens: readonly (readonly FlowRun[])[], profile?: string) => void;
18
+ constructor(environment: string, snapshot?: MeasurementSnapshot, algorithm?: LayoutAlgorithm);
19
+ beginCandidate(): void;
20
+ /** V2 keeps estimation work separate from a serializable explicit font batch.
21
+ * Current candidate first, then prior sizes; reserve the complete metric envelope.
22
+ * A partial batch remains explicitly estimated on the next compile.
23
+ */
24
+ measurementBatch(includeAvailable?: boolean): readonly TextMeasurementRequest[];
17
25
  protected request(run: TextRun, profile: string, italic?: boolean): TextMeasurementRequest;
18
26
  resolve(run: TextRun, profile: string, italic?: boolean): FontMetric;
19
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/layout/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAMjD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG;IAC1D,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACpC,CAAC;AACF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAKzD;AACD,2EAA2E;AAC3E,qBAAa,cAAc;IASvB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB;IATzC,QAAQ,CAAC,QAAQ,sCAA6C;IAC9D,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzD,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,SAAiB,OAAO,CAAC,EAAE,CACzB,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,KACb,IAAI,CAAC;gBAEC,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,mBAAmB,YAAA;IAqBzC,SAAS,CAAC,OAAO,CACf,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,UAAQ,GACb,sBAAsB;IAYzB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,UAAU;CA4CnE"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/layout/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG;IAC1D,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACpC,CAAC;AACF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAKzD;AACD,2EAA2E;AAC3E,qBAAa,cAAc;IAUvB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAE5B,QAAQ,CAAC,SAAS,EAAE,eAAe;IAXrC,QAAQ,CAAC,QAAQ,sCAA6C;IAC9D,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzD,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,SAAiB,OAAO,CAAC,EAAE,CACzB,MAAM,EAAE,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,EACvC,OAAO,CAAC,EAAE,MAAM,KACb,IAAI,CAAC;gBAEC,WAAW,EAAE,MAAM,EAC5B,QAAQ,CAAC,EAAE,mBAAmB,EACrB,SAAS,GAAE,eAA0B;IAqBhD,cAAc,IAAI,IAAI;IAGtB;;;OAGG;IACH,gBAAgB,CACd,gBAAgB,UAAQ,GACvB,SAAS,sBAAsB,EAAE;IAkBpC,SAAS,CAAC,OAAO,CACf,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,UAAQ,GACb,sBAAsB;IAYzB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,UAAU;CA+CnE"}