@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.
- package/CHANGELOG.md +23 -4
- package/README.md +7 -1
- package/dist/browser/compiler.d.ts.map +1 -1
- package/dist/browser/compiler.js +31 -20
- package/dist/browser/compiler.js.map +1 -1
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +2 -12
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/motion.d.ts +4 -0
- package/dist/browser/motion.d.ts.map +1 -0
- package/dist/browser/motion.js +19 -0
- package/dist/browser/motion.js.map +1 -0
- package/dist/browser/preflight.d.ts.map +1 -1
- package/dist/browser/preflight.js +6 -5
- package/dist/browser/preflight.js.map +1 -1
- package/dist/codegen/index.d.ts.map +1 -1
- package/dist/codegen/index.js +11 -9
- package/dist/codegen/index.js.map +1 -1
- package/dist/effects/catalog.d.ts +3 -1
- package/dist/effects/catalog.d.ts.map +1 -1
- package/dist/effects/catalog.js +41 -19
- package/dist/effects/catalog.js.map +1 -1
- package/dist/layout/metrics.d.ts +12 -4
- package/dist/layout/metrics.d.ts.map +1 -1
- package/dist/layout/metrics.js +37 -8
- package/dist/layout/metrics.js.map +1 -1
- package/dist/layout/planner.d.ts.map +1 -1
- package/dist/layout/planner.js +59 -27
- package/dist/layout/planner.js.map +1 -1
- package/dist/layout/render.js +1 -1
- package/dist/layout/render.js.map +1 -1
- package/dist/model/layout.d.ts +5 -3
- package/dist/model/layout.d.ts.map +1 -1
- package/dist/presentations/catalog.d.ts +7 -3
- package/dist/presentations/catalog.d.ts.map +1 -1
- package/dist/presentations/catalog.js +246 -1370
- package/dist/presentations/catalog.js.map +1 -1
- package/dist/presentations/compact.d.ts +3 -3
- package/dist/presentations/compact.d.ts.map +1 -1
- package/dist/presentations/compact.js.map +1 -1
- package/dist/presentations/safe-cells.d.ts +10 -0
- package/dist/presentations/safe-cells.d.ts.map +1 -0
- package/dist/presentations/safe-cells.js +99 -0
- package/dist/presentations/safe-cells.js.map +1 -0
- package/dist/presets/cards.d.ts.map +1 -1
- package/dist/presets/cards.js +2 -2
- package/dist/presets/cards.js.map +1 -1
- package/dist/renderers/presentations/render.d.ts +4 -1
- package/dist/renderers/presentations/render.d.ts.map +1 -1
- package/dist/renderers/presentations/render.js +10 -3
- package/dist/renderers/presentations/render.js.map +1 -1
- package/dist/renderers/svg.d.ts.map +1 -1
- package/dist/renderers/svg.js +12 -11
- package/dist/renderers/svg.js.map +1 -1
- package/dist/validation/layout.d.ts.map +1 -1
- package/dist/validation/layout.js +2 -2
- package/dist/validation/layout.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
# @servrox/console-fx
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.2.0
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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/
|
|
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;;;
|
|
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"}
|
package/dist/browser/compiler.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,EACL,uBAAuB,GAExB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAShE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAQ/E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,WAAW,CAAwB;IAC5C,YAAY,WAAkC;QAC5C,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,kCAAkC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAClD,CAAC;CACF;AACD,MAAM,OAAO,GAAG,CACd,IAAY,EACZ,OAAe,EACf,OAAqC,EAAE,EAC3B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAC9D,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,KAAK,CAAC,KAAK;SACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAC7B,CAAC;AACJ,CAAC;AACD,SAAS,MAAM,CAAC,MAA2C;IACzD,OAAO,UAAU,CAAC;QAChB,GAAG,MAAM;QACT,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,EACrD,CAAC,CACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAc,EACd,aAAuC;IAEvC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,IACE,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;QAC9C,aAAa,CAAC,QAAQ,KAAK,KAAK;QAEhC,WAAW,CAAC,IAAI,CACd,OAAO,CACL,oBAAoB,EACpB,qEAAqE,EACrE,CAAC,QAAQ,CAAC,CACX,CACF,CAAC;IACJ,MAAM,eAAe,GAAiB,EAAE,CAAC;IACzC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,WAAW,CAAC,IAAI,CACd,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CACjE,CAAC;QACF,IAAI,aAAa,CAAC,QAAQ,KAAK,KAAK;YAClC,WAAW,CAAC,IAAI,CACd,OAAO,CACL,0BAA0B,EAC1B,2CAA2C,EAC3C,CAAC,UAAU,CAAC,CACb,CACF,CAAC;IACN,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU;QACrC,WAAW,CAAC,IAAI,CACd,OAAO,CACL,sBAAsB,EACtB,mDAAmD,EACnD,CAAC,QAAQ,CAAC,CACX,CACF,CAAC;IACJ,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;QACnD,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IACE,GAAG,CAAC,OAAO,CAAC,MAAM,CAChB,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC,MAAM,KAAK,QAAQ,CAC/D,CAAC,MAAM,GAAG,CAAC;gBAEZ,WAAW,CAAC,IAAI,CACd,OAAO,CACL,yBAAyB,EACzB,oEAAoE,EACpE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAClD,CACF,CAAC;YACJ,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAC7C,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpD,MAAM,OAAO,GACX,SAAS,CAAC,OAAO,KAAK,oBAAoB;oBAC1C,SAAS,CAAC,OAAO,KAAK,gBAAgB,CAAC;gBACzC,IACE,GAAG,CAAC,OAAO,CAAC,IAAI,CACd,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC,MAAM,KAAK,YAAY,CACnE;oBAED,WAAW,CAAC,IAAI,CACd,OAAO,CACL,yBAAyB,EACzB,oDAAoD,EACpD,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CACrB,CACF,CAAC;gBACJ,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACjE,WAAW,CAAC,IAAI,CACd,OAAO,CACL,6BAA6B,EAC7B,sDAAsD,EACtD,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAClB,CACF,CAAC;gBACJ,IAAI,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAChE,WAAW,CAAC,IAAI,CACd,OAAO,CACL,6BAA6B,EAC7B,0DAA0D,EAC1D,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAClB,CACF,CAAC;gBACJ,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACnC,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,6BAA6B;wBACnC,QAAQ,EAAE,MAAM;wBAChB,IAAI;wBACJ,OAAO,EAAE,yCAAyC;qBACnD,CAAC,CAAC;gBACL,IACE,CAAC,OAAO;oBACN,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,MAAM;wBAC9B,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;oBAClC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC;oBAE9C,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,uBAAuB;wBAC7B,QAAQ,EAAE,MAAM;wBAChB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;wBACxB,OAAO,EAAE,kCAAkC;qBAC5C,CAAC,CAAC;gBACL,IAAI,CAAC,OAAO;oBACV,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,yBAAyB;wBAC/B,QAAQ,EAAE,MAAM;wBAChB,IAAI;wBACJ,OAAO,EAAE,+BAA+B;qBACzC,CAAC,CAAC;YACP,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;gBAClD,IACE,UAAU,CAAC,MAAM,KAAK,YAAY;oBAClC,aAAa,CAAC,MAAM,KAAK,QAAQ;oBAEjC,SAAS;gBACX,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;oBACxD,WAAW,CAAC,IAAI,CACd,OAAO,CACL,oBAAoB,EACpB,wCAAwC,EACxC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAClD,CACF,CAAC;YACN,CAAC;QACH,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,eAA+B,EAAE,EACjC,SAIc,EACd,gBAAgB,GAAG,uBAAuB;IAE1C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,aAAuC,CAAC;IAC5C,IAAI,CAAC;QACH,aAAa,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,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,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,GAAG,EAAE,CACjB,MAAM,CAAC;QACL,IAAI,EAAE,CAAC,IAAI,CAAC;QACZ,QAAQ,EAAE,MAAM;QAChB,IAAI;QACJ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC/B,WAAW;KACZ,CAAC,CAAC;IACL,IAAI,aAAa,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,yCAAyC;SACnD,CAAC,CAAC;QACH,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,iBAAiB,CACxD,KAAK,EACL,aAAa,CACd,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,aAAa,CAAC,WAAW,KAAK,OAAO;YACvC,MAAM,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC7C,
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/browser/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAExB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAShE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAQ/E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,WAAW,CAAwB;IAC5C,YAAY,WAAkC;QAC5C,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,kCAAkC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAClD,CAAC;CACF;AACD,MAAM,OAAO,GAAG,CACd,IAAY,EACZ,OAAe,EACf,OAAqC,EAAE,EAC3B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAC9D,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,KAAK,CAAC,KAAK;SACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAC7B,CAAC;AACJ,CAAC;AACD,SAAS,MAAM,CAAC,MAA2C;IACzD,OAAO,UAAU,CAAC;QAChB,GAAG,MAAM;QACT,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,EACrD,CAAC,CACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAc,EACd,aAAuC;IAEvC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,IACE,CAAC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;QAC9C,aAAa,CAAC,QAAQ,KAAK,KAAK;QAEhC,WAAW,CAAC,IAAI,CACd,OAAO,CACL,oBAAoB,EACpB,qEAAqE,EACrE,CAAC,QAAQ,CAAC,CACX,CACF,CAAC;IACJ,MAAM,eAAe,GAAiB,EAAE,CAAC;IACzC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,WAAW,CAAC,IAAI,CACd,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CACjE,CAAC;QACF,IAAI,aAAa,CAAC,QAAQ,KAAK,KAAK;YAClC,WAAW,CAAC,IAAI,CACd,OAAO,CACL,0BAA0B,EAC1B,2CAA2C,EAC3C,CAAC,UAAU,CAAC,CACb,CACF,CAAC;IACN,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU;QACrC,WAAW,CAAC,IAAI,CACd,OAAO,CACL,sBAAsB,EACtB,mDAAmD,EACnD,CAAC,QAAQ,CAAC,CACX,CACF,CAAC;IACJ,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;QACnD,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,qEAAqE;YACrE,yEAAyE;YACzE,IAAI,aAAa,CAAC,QAAQ,KAAK,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACtE,WAAW,CAAC,IAAI,CACd,OAAO,CAAC,sBAAsB,EAAE,8BAA8B,EAAE;oBAC9D,OAAO;oBACP,SAAS;oBACT,MAAM;oBACN,QAAQ;oBACR,MAAM;iBACP,CAAC,CACH,CAAC;YACJ,IACE,GAAG,CAAC,OAAO,CAAC,MAAM,CAChB,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC,MAAM,KAAK,QAAQ,CAC/D,CAAC,MAAM,GAAG,CAAC;gBAEZ,WAAW,CAAC,IAAI,CACd,OAAO,CACL,yBAAyB,EACzB,oEAAoE,EACpE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAClD,CACF,CAAC;YACJ,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAC7C,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpD,MAAM,OAAO,GACX,SAAS,CAAC,OAAO,KAAK,oBAAoB;oBAC1C,SAAS,CAAC,OAAO,KAAK,gBAAgB,CAAC;gBACzC,IACE,GAAG,CAAC,OAAO,CAAC,IAAI,CACd,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC,MAAM,KAAK,YAAY,CACnE;oBAED,WAAW,CAAC,IAAI,CACd,OAAO,CACL,yBAAyB,EACzB,oDAAoD,EACpD,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CACrB,CACF,CAAC;gBACJ,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACjE,WAAW,CAAC,IAAI,CACd,OAAO,CACL,6BAA6B,EAC7B,sDAAsD,EACtD,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAClB,CACF,CAAC;gBACJ,IAAI,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAChE,WAAW,CAAC,IAAI,CACd,OAAO,CACL,6BAA6B,EAC7B,0DAA0D,EAC1D,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAClB,CACF,CAAC;gBACJ,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACnC,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,6BAA6B;wBACnC,QAAQ,EAAE,MAAM;wBAChB,IAAI;wBACJ,OAAO,EAAE,yCAAyC;qBACnD,CAAC,CAAC;gBACL,IACE,CAAC,OAAO;oBACN,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,MAAM;wBAC9B,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;oBAClC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC;oBAE9C,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,uBAAuB;wBAC7B,QAAQ,EAAE,MAAM;wBAChB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;wBACxB,OAAO,EAAE,kCAAkC;qBAC5C,CAAC,CAAC;gBACL,IAAI,CAAC,OAAO;oBACV,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,yBAAyB;wBAC/B,QAAQ,EAAE,MAAM;wBAChB,IAAI;wBACJ,OAAO,EAAE,+BAA+B;qBACzC,CAAC,CAAC;YACP,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;gBAClD,IACE,UAAU,CAAC,MAAM,KAAK,YAAY;oBAClC,aAAa,CAAC,MAAM,KAAK,QAAQ;oBAEjC,SAAS;gBACX,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;oBACxD,WAAW,CAAC,IAAI,CACd,OAAO,CACL,oBAAoB,EACpB,wCAAwC,EACxC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAClD,CACF,CAAC;YACN,CAAC;QACH,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,eAA+B,EAAE,EACjC,SAIc,EACd,gBAAgB,GAAG,uBAAuB;IAE1C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,aAAuC,CAAC;IAC5C,IAAI,CAAC;QACH,aAAa,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,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,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,GAAG,EAAE,CACjB,MAAM,CAAC;QACL,IAAI,EAAE,CAAC,IAAI,CAAC;QACZ,QAAQ,EAAE,MAAM;QAChB,IAAI;QACJ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC/B,WAAW;KACZ,CAAC,CAAC;IACL,MAAM,QAAQ,GAAG,CAAC,QAA+B,EAAE,EAAE;QACnD,WAAW,CAAC,IAAI,CACd,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAc,EAAE,CAAC,CAAC;YACtC,GAAG,KAAK;YACR,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC,EACH;YACE,GAAG,OAAO,CACR,mBAAmB,EACnB,GAAG,aAAa,CAAC,QAAQ,mCAAmC,CAC7D;YACD,QAAQ,EAAE,SAAS;SACpB,CACF,CAAC;QACF,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC;IACF,IAAI,aAAa,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,yCAAyC;SACnD,CAAC,CAAC;QACH,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,iBAAiB,CACxD,KAAK,EACL,aAAa,CACd,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,aAAa,CAAC,WAAW,KAAK,OAAO;YACvC,MAAM,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,aAAa,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,uDAAuD;SACjE,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;YACZ,GAAG,MAAM;YACT,QAAQ,EAAE,KAAK;YACf,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,IAAI,CAAC,SAAS;YACZ,MAAM,IAAI,mBAAmB,CAAC;gBAC5B,OAAO,CAAC,sBAAsB,EAAE,oCAAoC,EAAE;oBACpE,UAAU;iBACX,CAAC;aACH,CAAC,CAAC;QACL,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,KAAK,OAAO,EAAE,aAAa,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;YAC1C,IACE,aAAa,CAAC,WAAW,KAAK,OAAO;gBACrC,KAAK,CAAC,WAAW,CAAC,IAAI,CACpB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACX,CAAC;oBACC,iBAAiB;oBACjB,oBAAoB;oBACpB,qBAAqB;iBACtB,CAAC,QAAQ,CAAC,IAAI,CAAC,CACnB;gBAED,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACnD,OAAO,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,KAAK,YAAY,UAAU;YAC7B,MAAM,IAAI,mBAAmB,CAAC;gBAC5B,OAAO,CAAC,gBAAgB,EAAE,0CAA0C,CAAC;aACtE,CAAC,CAAC;QACL,MAAM,KAAK,CAAC;IACd,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,QAAQ;QACjB,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,CAAC,QAAQ,CAAC;YAChB,OAAO,EAAE,2DAA2D;SACrE,CAAC,CAAC;IACL,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;IACrD,MAAM,IAAI,GAAgB;QACxB,aAAa,CAAC,MAAM,EAAE,IAAI,KAAK,wBAAwB;YACrD,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,WAAW;QACf,qCAAqC,MAAM,CAAC,cAAc,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,oBAAoB,MAAM,CAAC,QAAQ,6BAA6B;QAC9J,EAAE;QACF,cAAc,CAAC,IAAI,CAAC;QACpB,EAAE;KACH,CAAC;IACF,OAAO,MAAM,CAAC;QACZ,IAAI;QACJ,QAAQ,EAAE,KAAK;QACf,IAAI;QACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE;YACP,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK;YACL,MAAM;YACN,GAAG,EAAE,IAAI;SACV;QACD,WAAW;QACX,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/browser/index.js
CHANGED
|
@@ -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,
|
|
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 @@
|
|
|
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;
|
|
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 = (
|
|
10
|
-
this.alternatives.push({ runs:
|
|
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(
|
|
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(
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQxE,OAAO,EACL,WAAW,EACX,IAAI,EACJ,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
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":"
|
|
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"}
|
package/dist/codegen/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
27
|
+
const allowedOutput = compileConsole(scene, {
|
|
26
28
|
...options,
|
|
27
29
|
motion: "allow",
|
|
28
30
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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":"AAAA,OAAO,EAAE,4BAA4B,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAUxE,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SACzB,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC;SAC1B,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC/B,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrC,CAAC;AACD,MAAM,eAAe,GAAG,CAAC,IAAiB,EAAU,EAAE,CACpD,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEvC,MAAM,UAAU,gBAAgB,CAC9B,KAAmB,EACnB,UAAyB,EAAE;IAE3B,IAAI,CAAC;QACH,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC5C,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,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7E,
|
|
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):
|
|
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;
|
|
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"}
|
package/dist/effects/catalog.js
CHANGED
|
@@ -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,
|
|
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
|
|
15
|
-
descriptor("badge", "
|
|
16
|
-
descriptor("neon", "
|
|
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", "
|
|
21
|
-
descriptor("extruded", "
|
|
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", "
|
|
26
|
-
descriptor("metallic", "
|
|
27
|
-
descriptor("cinematicMetal", "
|
|
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", "
|
|
44
|
-
descriptor("rainbow", "
|
|
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", "
|
|
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", "
|
|
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", "
|
|
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", "
|
|
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
|
|
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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/effects/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/layout/metrics.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
16
|
-
|
|
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;
|
|
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"}
|