@clipkit/runtime 1.0.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/LICENSE +54 -0
- package/README.md +98 -0
- package/dist/animation/easings.d.ts +9 -0
- package/dist/animation/easings.d.ts.map +1 -0
- package/dist/animation/easings.js +230 -0
- package/dist/animation/easings.js.map +1 -0
- package/dist/animation/expr.d.ts +44 -0
- package/dist/animation/expr.d.ts.map +1 -0
- package/dist/animation/expr.js +236 -0
- package/dist/animation/expr.js.map +1 -0
- package/dist/animation/keyframes.d.ts +23 -0
- package/dist/animation/keyframes.d.ts.map +1 -0
- package/dist/animation/keyframes.js +117 -0
- package/dist/animation/keyframes.js.map +1 -0
- package/dist/animation/motion-path.d.ts +18 -0
- package/dist/animation/motion-path.d.ts.map +1 -0
- package/dist/animation/motion-path.js +269 -0
- package/dist/animation/motion-path.js.map +1 -0
- package/dist/animation/noise1d.d.ts +5 -0
- package/dist/animation/noise1d.d.ts.map +1 -0
- package/dist/animation/noise1d.js +27 -0
- package/dist/animation/noise1d.js.map +1 -0
- package/dist/animation/presets.d.ts +60 -0
- package/dist/animation/presets.d.ts.map +1 -0
- package/dist/animation/presets.js +221 -0
- package/dist/animation/presets.js.map +1 -0
- package/dist/assets/cache.d.ts +18 -0
- package/dist/assets/cache.d.ts.map +1 -0
- package/dist/assets/cache.js +56 -0
- package/dist/assets/cache.js.map +1 -0
- package/dist/assets/fonts.d.ts +20 -0
- package/dist/assets/fonts.d.ts.map +1 -0
- package/dist/assets/fonts.js +127 -0
- package/dist/assets/fonts.js.map +1 -0
- package/dist/assets/loader.d.ts +18 -0
- package/dist/assets/loader.d.ts.map +1 -0
- package/dist/assets/loader.js +87 -0
- package/dist/assets/loader.js.map +1 -0
- package/dist/assets/lut.d.ts +5 -0
- package/dist/assets/lut.d.ts.map +1 -0
- package/dist/assets/lut.js +77 -0
- package/dist/assets/lut.js.map +1 -0
- package/dist/assets/media-time.d.ts +31 -0
- package/dist/assets/media-time.d.ts.map +1 -0
- package/dist/assets/media-time.js +65 -0
- package/dist/assets/media-time.js.map +1 -0
- package/dist/assets/mp4-frame-source.d.ts +44 -0
- package/dist/assets/mp4-frame-source.d.ts.map +1 -0
- package/dist/assets/mp4-frame-source.js +387 -0
- package/dist/assets/mp4-frame-source.js.map +1 -0
- package/dist/audio/encoder.d.ts +31 -0
- package/dist/audio/encoder.d.ts.map +1 -0
- package/dist/audio/encoder.js +96 -0
- package/dist/audio/encoder.js.map +1 -0
- package/dist/audio/fades.d.ts +16 -0
- package/dist/audio/fades.d.ts.map +1 -0
- package/dist/audio/fades.js +43 -0
- package/dist/audio/fades.js.map +1 -0
- package/dist/audio/limiter.d.ts +8 -0
- package/dist/audio/limiter.d.ts.map +1 -0
- package/dist/audio/limiter.js +39 -0
- package/dist/audio/limiter.js.map +1 -0
- package/dist/audio/loader.d.ts +6 -0
- package/dist/audio/loader.d.ts.map +1 -0
- package/dist/audio/loader.js +42 -0
- package/dist/audio/loader.js.map +1 -0
- package/dist/audio/mixer.d.ts +17 -0
- package/dist/audio/mixer.d.ts.map +1 -0
- package/dist/audio/mixer.js +204 -0
- package/dist/audio/mixer.js.map +1 -0
- package/dist/audio/varispeed.d.ts +24 -0
- package/dist/audio/varispeed.d.ts.map +1 -0
- package/dist/audio/varispeed.js +114 -0
- package/dist/audio/varispeed.js.map +1 -0
- package/dist/audio/wav.d.ts +6 -0
- package/dist/audio/wav.d.ts.map +1 -0
- package/dist/audio/wav.js +62 -0
- package/dist/audio/wav.js.map +1 -0
- package/dist/backend/backend.d.ts +579 -0
- package/dist/backend/backend.d.ts.map +1 -0
- package/dist/backend/backend.js +17 -0
- package/dist/backend/backend.js.map +1 -0
- package/dist/backend/webgl-backend.d.ts +97 -0
- package/dist/backend/webgl-backend.d.ts.map +1 -0
- package/dist/backend/webgl-backend.js +2142 -0
- package/dist/backend/webgl-backend.js.map +1 -0
- package/dist/backend/webgpu-backend.d.ts +121 -0
- package/dist/backend/webgpu-backend.d.ts.map +1 -0
- package/dist/backend/webgpu-backend.js +2481 -0
- package/dist/backend/webgpu-backend.js.map +1 -0
- package/dist/compositor/bitfont.d.ts +8 -0
- package/dist/compositor/bitfont.d.ts.map +1 -0
- package/dist/compositor/bitfont.js +52 -0
- package/dist/compositor/bitfont.js.map +1 -0
- package/dist/compositor/camera.d.ts +5 -0
- package/dist/compositor/camera.d.ts.map +1 -0
- package/dist/compositor/camera.js +114 -0
- package/dist/compositor/camera.js.map +1 -0
- package/dist/compositor/color.d.ts +26 -0
- package/dist/compositor/color.d.ts.map +1 -0
- package/dist/compositor/color.js +189 -0
- package/dist/compositor/color.js.map +1 -0
- package/dist/compositor/element-renderers/caption.d.ts +4 -0
- package/dist/compositor/element-renderers/caption.d.ts.map +1 -0
- package/dist/compositor/element-renderers/caption.js +376 -0
- package/dist/compositor/element-renderers/caption.js.map +1 -0
- package/dist/compositor/element-renderers/group.d.ts +12 -0
- package/dist/compositor/element-renderers/group.d.ts.map +1 -0
- package/dist/compositor/element-renderers/group.js +259 -0
- package/dist/compositor/element-renderers/group.js.map +1 -0
- package/dist/compositor/element-renderers/image.d.ts +4 -0
- package/dist/compositor/element-renderers/image.d.ts.map +1 -0
- package/dist/compositor/element-renderers/image.js +97 -0
- package/dist/compositor/element-renderers/image.js.map +1 -0
- package/dist/compositor/element-renderers/lit.d.ts +6 -0
- package/dist/compositor/element-renderers/lit.d.ts.map +1 -0
- package/dist/compositor/element-renderers/lit.js +82 -0
- package/dist/compositor/element-renderers/lit.js.map +1 -0
- package/dist/compositor/element-renderers/particles.d.ts +4 -0
- package/dist/compositor/element-renderers/particles.d.ts.map +1 -0
- package/dist/compositor/element-renderers/particles.js +212 -0
- package/dist/compositor/element-renderers/particles.js.map +1 -0
- package/dist/compositor/element-renderers/shape.d.ts +4 -0
- package/dist/compositor/element-renderers/shape.d.ts.map +1 -0
- package/dist/compositor/element-renderers/shape.js +171 -0
- package/dist/compositor/element-renderers/shape.js.map +1 -0
- package/dist/compositor/element-renderers/svg.d.ts +4 -0
- package/dist/compositor/element-renderers/svg.d.ts.map +1 -0
- package/dist/compositor/element-renderers/svg.js +210 -0
- package/dist/compositor/element-renderers/svg.js.map +1 -0
- package/dist/compositor/element-renderers/text.d.ts +25 -0
- package/dist/compositor/element-renderers/text.d.ts.map +1 -0
- package/dist/compositor/element-renderers/text.js +1358 -0
- package/dist/compositor/element-renderers/text.js.map +1 -0
- package/dist/compositor/element-renderers/video.d.ts +12 -0
- package/dist/compositor/element-renderers/video.d.ts.map +1 -0
- package/dist/compositor/element-renderers/video.js +109 -0
- package/dist/compositor/element-renderers/video.js.map +1 -0
- package/dist/compositor/fit.d.ts +18 -0
- package/dist/compositor/fit.d.ts.map +1 -0
- package/dist/compositor/fit.js +106 -0
- package/dist/compositor/fit.js.map +1 -0
- package/dist/compositor/lighting.d.ts +63 -0
- package/dist/compositor/lighting.d.ts.map +1 -0
- package/dist/compositor/lighting.js +141 -0
- package/dist/compositor/lighting.js.map +1 -0
- package/dist/compositor/mat4.d.ts +88 -0
- package/dist/compositor/mat4.d.ts.map +1 -0
- package/dist/compositor/mat4.js +245 -0
- package/dist/compositor/mat4.js.map +1 -0
- package/dist/compositor/project.d.ts +24 -0
- package/dist/compositor/project.d.ts.map +1 -0
- package/dist/compositor/project.js +105 -0
- package/dist/compositor/project.js.map +1 -0
- package/dist/compositor/render-context.d.ts +194 -0
- package/dist/compositor/render-context.d.ts.map +1 -0
- package/dist/compositor/render-context.js +10 -0
- package/dist/compositor/render-context.js.map +1 -0
- package/dist/compositor/resolve.d.ts +80 -0
- package/dist/compositor/resolve.d.ts.map +1 -0
- package/dist/compositor/resolve.js +276 -0
- package/dist/compositor/resolve.js.map +1 -0
- package/dist/compositor/scene.d.ts +10 -0
- package/dist/compositor/scene.d.ts.map +1 -0
- package/dist/compositor/scene.js +658 -0
- package/dist/compositor/scene.js.map +1 -0
- package/dist/compositor/transform.d.ts +73 -0
- package/dist/compositor/transform.d.ts.map +1 -0
- package/dist/compositor/transform.js +229 -0
- package/dist/compositor/transform.js.map +1 -0
- package/dist/compositor/unit.d.ts +27 -0
- package/dist/compositor/unit.d.ts.map +1 -0
- package/dist/compositor/unit.js +74 -0
- package/dist/compositor/unit.js.map +1 -0
- package/dist/encoder/exporter.d.ts +95 -0
- package/dist/encoder/exporter.d.ts.map +1 -0
- package/dist/encoder/exporter.js +341 -0
- package/dist/encoder/exporter.js.map +1 -0
- package/dist/encoder/index.d.ts +3 -0
- package/dist/encoder/index.d.ts.map +1 -0
- package/dist/encoder/index.js +2 -0
- package/dist/encoder/index.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +13 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +32 -0
- package/dist/logger.js.map +1 -0
- package/dist/runtime.d.ts +216 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1012 -0
- package/dist/runtime.js.map +1 -0
- package/dist/svg/morph.d.ts +6 -0
- package/dist/svg/morph.d.ts.map +1 -0
- package/dist/svg/morph.js +62 -0
- package/dist/svg/morph.js.map +1 -0
- package/dist/svg/svg-renderer.d.ts +18 -0
- package/dist/svg/svg-renderer.d.ts.map +1 -0
- package/dist/svg/svg-renderer.js +142 -0
- package/dist/svg/svg-renderer.js.map +1 -0
- package/dist/text/caption-chunk.d.ts +17 -0
- package/dist/text/caption-chunk.d.ts.map +1 -0
- package/dist/text/caption-chunk.js +76 -0
- package/dist/text/caption-chunk.js.map +1 -0
- package/dist/text/font-atlas.d.ts +63 -0
- package/dist/text/font-atlas.d.ts.map +1 -0
- package/dist/text/font-atlas.js +225 -0
- package/dist/text/font-atlas.js.map +1 -0
- package/dist/text/measure.d.ts +38 -0
- package/dist/text/measure.d.ts.map +1 -0
- package/dist/text/measure.js +164 -0
- package/dist/text/measure.js.map +1 -0
- package/dist/text/text-animation.d.ts +52 -0
- package/dist/text/text-animation.d.ts.map +1 -0
- package/dist/text/text-animation.js +133 -0
- package/dist/text/text-animation.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"morph.d.ts","sourceRoot":"","sources":["../../src/svg/morph.ts"],"names":[],"mappings":"AAgDA;;;GAGG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAerE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Path morphing (§5.6.2) — interpolate two SVG d-strings.
|
|
2
|
+
//
|
|
3
|
+
// STRICT compatibility, no path normalization: both strings must have
|
|
4
|
+
// the identical command-letter sequence with equal argument counts and
|
|
5
|
+
// contain no arc commands (A/a — their boolean flags don't lerp).
|
|
6
|
+
// Compatible pairs lerp every numeric argument; incompatible pairs
|
|
7
|
+
// snap (the caller holds the source until the destination keyframe).
|
|
8
|
+
const TOKEN = /([MLHVCSQTZmlhvcsqtz])|(-?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)/g;
|
|
9
|
+
const parseCache = new Map();
|
|
10
|
+
function parseD(d) {
|
|
11
|
+
const hit = parseCache.get(d);
|
|
12
|
+
if (hit !== undefined)
|
|
13
|
+
return hit;
|
|
14
|
+
if (parseCache.size > 256)
|
|
15
|
+
parseCache.clear();
|
|
16
|
+
if (/[Aa]/.test(d)) {
|
|
17
|
+
parseCache.set(d, null);
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const skeleton = [];
|
|
21
|
+
const numbers = [];
|
|
22
|
+
const layout = [];
|
|
23
|
+
let m;
|
|
24
|
+
TOKEN.lastIndex = 0;
|
|
25
|
+
while ((m = TOKEN.exec(d)) !== null) {
|
|
26
|
+
if (m[1]) {
|
|
27
|
+
skeleton.push(m[1]);
|
|
28
|
+
layout.push(m[1]);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
layout.push(numbers.length);
|
|
32
|
+
numbers.push(parseFloat(m[2]));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const parsed = { skeleton: skeleton.join(''), numbers, layout };
|
|
36
|
+
parseCache.set(d, parsed);
|
|
37
|
+
return parsed;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Interpolate from `a` to `b` at eased progress u ∈ [0, 1]. Returns
|
|
41
|
+
* null when the pair is incompatible (caller snaps instead).
|
|
42
|
+
*/
|
|
43
|
+
export function morphD(a, b, u) {
|
|
44
|
+
const pa = parseD(a);
|
|
45
|
+
const pb = parseD(b);
|
|
46
|
+
if (!pa || !pb)
|
|
47
|
+
return null;
|
|
48
|
+
if (pa.skeleton !== pb.skeleton || pa.numbers.length !== pb.numbers.length)
|
|
49
|
+
return null;
|
|
50
|
+
const out = [];
|
|
51
|
+
for (const tok of pa.layout) {
|
|
52
|
+
if (typeof tok === 'string') {
|
|
53
|
+
out.push(tok);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const v = pa.numbers[tok] + (pb.numbers[tok] - pa.numbers[tok]) * u;
|
|
57
|
+
out.push(String(Math.round(v * 1000) / 1000));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return out.join(' ');
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=morph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"morph.js","sourceRoot":"","sources":["../../src/svg/morph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ShapeElement } from '@clipkit/protocol';
|
|
2
|
+
/**
|
|
3
|
+
* Total length of an SVG path along its trajectory. Uses an off-document
|
|
4
|
+
* SVGPathElement.getTotalLength() — works in any DOM context. Falls back
|
|
5
|
+
* to a heuristic if measurement is unavailable.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getPathLength(d: string): number;
|
|
8
|
+
export interface SvgRasterTarget {
|
|
9
|
+
canvas: OffscreenCanvas;
|
|
10
|
+
ctx: OffscreenCanvasRenderingContext2D;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Render the element's paths into `target.canvas`, replacing any previous
|
|
14
|
+
* contents. `trims` holds resolved [start, end, offset] per path
|
|
15
|
+
* — pass 1 for static / non-stroked paths.
|
|
16
|
+
*/
|
|
17
|
+
export declare function rasterizeSvgElement(element: ShapeElement, trims: number[], ds: string[], target: SvgRasterTarget): void;
|
|
18
|
+
//# sourceMappingURL=svg-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-renderer.d.ts","sourceRoot":"","sources":["../../src/svg/svg-renderer.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAC;AAM7E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB/C;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,GAAG,EAAE,iCAAiC,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,EAAE,EACf,EAAE,EAAE,MAAM,EAAE,EACZ,MAAM,EAAE,eAAe,GACtB,IAAI,CA+BN"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// SVG rasterizer — renders our restricted SVG schema to an OffscreenCanvas
|
|
2
|
+
// using Canvas2D's Path2D, clip(), gradients, and stroke-dashoffset.
|
|
3
|
+
//
|
|
4
|
+
// This is NOT a general SVG engine. It's the subset needed for animated
|
|
5
|
+
// logos and icons in motion graphics: paths with fill/stroke (solid or
|
|
6
|
+
// linear-gradient), clip-to-path, and stroke evolution via
|
|
7
|
+
// stroke_progress + stroke-dashoffset.
|
|
8
|
+
//
|
|
9
|
+
// Rasterization runs every frame because at least one path's stroke
|
|
10
|
+
// progress is typically animating. Cost is ~1ms per simple icon — fine
|
|
11
|
+
// for our budget.
|
|
12
|
+
// Cache path lengths by `d` string. getTotalLength() is expensive
|
|
13
|
+
// (requires DOM round-trip) and the same paths are measured every frame.
|
|
14
|
+
const PATH_LENGTH_CACHE = new Map();
|
|
15
|
+
/**
|
|
16
|
+
* Total length of an SVG path along its trajectory. Uses an off-document
|
|
17
|
+
* SVGPathElement.getTotalLength() — works in any DOM context. Falls back
|
|
18
|
+
* to a heuristic if measurement is unavailable.
|
|
19
|
+
*/
|
|
20
|
+
export function getPathLength(d) {
|
|
21
|
+
// Morphing produces a fresh d-string per frame — cap the cache.
|
|
22
|
+
if (PATH_LENGTH_CACHE.size > 256)
|
|
23
|
+
PATH_LENGTH_CACHE.clear();
|
|
24
|
+
const cached = PATH_LENGTH_CACHE.get(d);
|
|
25
|
+
if (cached !== undefined)
|
|
26
|
+
return cached;
|
|
27
|
+
let len = 0;
|
|
28
|
+
try {
|
|
29
|
+
const svgPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
30
|
+
svgPath.setAttribute('d', d);
|
|
31
|
+
len = svgPath.getTotalLength();
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
len = 0;
|
|
35
|
+
}
|
|
36
|
+
if (!Number.isFinite(len) || len <= 0)
|
|
37
|
+
len = 1000;
|
|
38
|
+
PATH_LENGTH_CACHE.set(d, len);
|
|
39
|
+
return len;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Render the element's paths into `target.canvas`, replacing any previous
|
|
43
|
+
* contents. `trims` holds resolved [start, end, offset] per path
|
|
44
|
+
* — pass 1 for static / non-stroked paths.
|
|
45
|
+
*/
|
|
46
|
+
export function rasterizeSvgElement(element, trims, ds, target) {
|
|
47
|
+
const { canvas, ctx } = target;
|
|
48
|
+
const viewBox = element.view_box ?? [0, 0, 100, 100];
|
|
49
|
+
const [vbX, vbY, vbW, vbH] = viewBox;
|
|
50
|
+
// Clear to fully transparent.
|
|
51
|
+
ctx.save();
|
|
52
|
+
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
53
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
54
|
+
ctx.restore();
|
|
55
|
+
// ViewBox → canvas pixel transform.
|
|
56
|
+
ctx.save();
|
|
57
|
+
ctx.scale(canvas.width / vbW, canvas.height / vbH);
|
|
58
|
+
ctx.translate(-vbX, -vbY);
|
|
59
|
+
// Gradient lookup table by id.
|
|
60
|
+
const gradientLookup = new Map();
|
|
61
|
+
for (const g of element.gradients ?? [])
|
|
62
|
+
gradientLookup.set(g.id, g);
|
|
63
|
+
const paths = element.paths ?? [];
|
|
64
|
+
for (let i = 0; i < paths.length; i++) {
|
|
65
|
+
const path = paths[i];
|
|
66
|
+
const tS = trims[i * 3] ?? 0;
|
|
67
|
+
const tE = trims[i * 3 + 1] ?? 1;
|
|
68
|
+
const tO = trims[i * 3 + 2] ?? 0;
|
|
69
|
+
const d = ds[i] ?? (typeof path.d === 'string' ? path.d : '');
|
|
70
|
+
if (d)
|
|
71
|
+
drawPath(ctx, path, d, tS, tE, tO, gradientLookup);
|
|
72
|
+
}
|
|
73
|
+
ctx.restore();
|
|
74
|
+
}
|
|
75
|
+
function drawPath(ctx, path, d, trimStart, trimEnd, trimOffset, gradients) {
|
|
76
|
+
const hasFill = path.fill && path.fill !== 'none';
|
|
77
|
+
const hasStroke = path.stroke && path.stroke !== 'none' && (path.stroke_width ?? 0) > 0;
|
|
78
|
+
if (!hasFill && !hasStroke)
|
|
79
|
+
return;
|
|
80
|
+
const opacity = path.opacity ?? 1;
|
|
81
|
+
if (opacity <= 0)
|
|
82
|
+
return;
|
|
83
|
+
const needsAlphaWrap = opacity < 1;
|
|
84
|
+
if (needsAlphaWrap || path.clip_path) {
|
|
85
|
+
ctx.save();
|
|
86
|
+
if (needsAlphaWrap)
|
|
87
|
+
ctx.globalAlpha = opacity;
|
|
88
|
+
if (path.clip_path)
|
|
89
|
+
ctx.clip(new Path2D(path.clip_path));
|
|
90
|
+
}
|
|
91
|
+
const path2d = new Path2D(d);
|
|
92
|
+
if (hasFill) {
|
|
93
|
+
ctx.fillStyle = resolvePaint(ctx, path.fill, gradients);
|
|
94
|
+
ctx.fill(path2d);
|
|
95
|
+
}
|
|
96
|
+
if (hasStroke) {
|
|
97
|
+
// Trim window (§5.6.1): draw the stroke between trimStart and
|
|
98
|
+
// trimEnd (fractions of total length), rotated by trimOffset with
|
|
99
|
+
// wrap-around. The dash pattern's period equals the path length,
|
|
100
|
+
// so a window crossing the path's start wraps exactly.
|
|
101
|
+
const w = Math.max(0, Math.min(1, trimEnd) - Math.max(0, trimStart));
|
|
102
|
+
if (w > 0) {
|
|
103
|
+
ctx.strokeStyle = resolvePaint(ctx, path.stroke, gradients);
|
|
104
|
+
ctx.lineWidth = path.stroke_width;
|
|
105
|
+
ctx.lineCap = path.stroke_linecap ?? 'butt';
|
|
106
|
+
ctx.lineJoin = path.stroke_linejoin ?? 'miter';
|
|
107
|
+
if (w >= 1) {
|
|
108
|
+
ctx.stroke(path2d);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
const len = getPathLength(d);
|
|
112
|
+
const a = (((Math.max(0, trimStart) + trimOffset) % 1) + 1) % 1;
|
|
113
|
+
ctx.setLineDash([w * len, len - w * len]);
|
|
114
|
+
ctx.lineDashOffset = -a * len;
|
|
115
|
+
ctx.stroke(path2d);
|
|
116
|
+
ctx.setLineDash([]);
|
|
117
|
+
ctx.lineDashOffset = 0;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (needsAlphaWrap || path.clip_path)
|
|
122
|
+
ctx.restore();
|
|
123
|
+
}
|
|
124
|
+
function resolvePaint(ctx, paint, gradients) {
|
|
125
|
+
const m = paint.match(/^url\(#([^)]+)\)$/);
|
|
126
|
+
if (m) {
|
|
127
|
+
const id = m[1];
|
|
128
|
+
const g = gradients.get(id);
|
|
129
|
+
if (!g)
|
|
130
|
+
return '#ffffff';
|
|
131
|
+
const grad = ctx.createLinearGradient(g.x1, g.y1, g.x2, g.y2);
|
|
132
|
+
for (const stop of g.stops) {
|
|
133
|
+
grad.addColorStop(clamp01(stop.offset), stop.color);
|
|
134
|
+
}
|
|
135
|
+
return grad;
|
|
136
|
+
}
|
|
137
|
+
return paint;
|
|
138
|
+
}
|
|
139
|
+
function clamp01(n) {
|
|
140
|
+
return n < 0 ? 0 : n > 1 ? 1 : n;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=svg-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-renderer.js","sourceRoot":"","sources":["../../src/svg/svg-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CaptionWord } from '@clipkit/protocol';
|
|
2
|
+
export interface CaptionChunk {
|
|
3
|
+
words: CaptionWord[];
|
|
4
|
+
/** Index of the chunk's first word within the element's `words`. */
|
|
5
|
+
startIndex: number;
|
|
6
|
+
/** Chunk time window (element-local seconds): first word start … last word end. */
|
|
7
|
+
start: number;
|
|
8
|
+
end: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function chunkCaptionWords(words: readonly CaptionWord[], maxLength: number | 'auto' | undefined): CaptionChunk[];
|
|
11
|
+
/**
|
|
12
|
+
* The chunk to show at element-local time `t`: the last chunk that has started
|
|
13
|
+
* (so a chunk lingers through silent gaps until the next begins). Returns null
|
|
14
|
+
* before the first chunk starts.
|
|
15
|
+
*/
|
|
16
|
+
export declare function activeCaptionChunk(chunks: readonly CaptionChunk[], t: number): CaptionChunk | null;
|
|
17
|
+
//# sourceMappingURL=caption-chunk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caption-chunk.d.ts","sourceRoot":"","sources":["../../src/text/caption-chunk.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAOD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACrC,YAAY,EAAE,CA4ChB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAOlG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Caption windowing — split a caption's words into CHUNKS, and pick the chunk
|
|
2
|
+
// active at a given time. Shared by the renderer (what to draw at time t) and
|
|
3
|
+
// the editor timeline (drawing chunk blocks) so they always agree.
|
|
4
|
+
//
|
|
5
|
+
// max_length = number → max LETTERS per chunk (grow word-by-word until the
|
|
6
|
+
// next word would exceed the budget).
|
|
7
|
+
// max_length = 'auto' → auto word-chunking (a few words; break on pauses).
|
|
8
|
+
// max_length = absent → one chunk (the whole transcript shows at once).
|
|
9
|
+
// Defaults for 'auto' word-chunking.
|
|
10
|
+
const AUTO_MAX_WORDS = 6;
|
|
11
|
+
const AUTO_MAX_GAP = 0.6;
|
|
12
|
+
const AUTO_MAX_DURATION = 3;
|
|
13
|
+
export function chunkCaptionWords(words, maxLength) {
|
|
14
|
+
if (words.length === 0)
|
|
15
|
+
return [];
|
|
16
|
+
const groups = [];
|
|
17
|
+
if (maxLength === undefined) {
|
|
18
|
+
groups.push([...words]);
|
|
19
|
+
}
|
|
20
|
+
else if (maxLength === 'auto') {
|
|
21
|
+
let cur = [];
|
|
22
|
+
for (const w of words) {
|
|
23
|
+
if (cur.length > 0) {
|
|
24
|
+
const prev = cur[cur.length - 1];
|
|
25
|
+
if (cur.length >= AUTO_MAX_WORDS || w.start - prev.end >= AUTO_MAX_GAP || w.end - cur[0].start > AUTO_MAX_DURATION) {
|
|
26
|
+
groups.push(cur);
|
|
27
|
+
cur = [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
cur.push(w);
|
|
31
|
+
}
|
|
32
|
+
if (cur.length > 0)
|
|
33
|
+
groups.push(cur);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Character budget.
|
|
37
|
+
let cur = [];
|
|
38
|
+
let chars = 0;
|
|
39
|
+
for (const w of words) {
|
|
40
|
+
const wlen = w.text.trim().length;
|
|
41
|
+
const next = cur.length > 0 ? chars + 1 + wlen : wlen; // +1 for the space
|
|
42
|
+
if (cur.length > 0 && next > maxLength) {
|
|
43
|
+
groups.push(cur);
|
|
44
|
+
cur = [];
|
|
45
|
+
chars = 0;
|
|
46
|
+
}
|
|
47
|
+
chars = cur.length > 0 ? chars + 1 + wlen : wlen;
|
|
48
|
+
cur.push(w);
|
|
49
|
+
}
|
|
50
|
+
if (cur.length > 0)
|
|
51
|
+
groups.push(cur);
|
|
52
|
+
}
|
|
53
|
+
const chunks = [];
|
|
54
|
+
let idx = 0;
|
|
55
|
+
for (const g of groups) {
|
|
56
|
+
chunks.push({ words: g, startIndex: idx, start: g[0].start, end: g[g.length - 1].end });
|
|
57
|
+
idx += g.length;
|
|
58
|
+
}
|
|
59
|
+
return chunks;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The chunk to show at element-local time `t`: the last chunk that has started
|
|
63
|
+
* (so a chunk lingers through silent gaps until the next begins). Returns null
|
|
64
|
+
* before the first chunk starts.
|
|
65
|
+
*/
|
|
66
|
+
export function activeCaptionChunk(chunks, t) {
|
|
67
|
+
let active = null;
|
|
68
|
+
for (const c of chunks) {
|
|
69
|
+
if (c.start <= t)
|
|
70
|
+
active = c;
|
|
71
|
+
else
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
return active;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=caption-chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caption-chunk.js","sourceRoot":"","sources":["../../src/text/caption-chunk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Backend, Texture } from '../backend/backend.js';
|
|
2
|
+
/** Per-character metrics within the atlas. */
|
|
3
|
+
export interface AtlasGlyph {
|
|
4
|
+
/**
|
|
5
|
+
* Top-left of the glyph's TIGHT bounding box in the atlas (with a small
|
|
6
|
+
* AA margin baked in). Renderers sample this region with full-extent UVs —
|
|
7
|
+
* no inset needed because the AA-margin pixels themselves act as the
|
|
8
|
+
* safe buffer between the glyph ink and neighboring cells.
|
|
9
|
+
*/
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
/** Tight bounding-box dimensions (with AA margin). */
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
/** Horizontal advance for the cursor after drawing this glyph. */
|
|
16
|
+
advance: number;
|
|
17
|
+
/** Offset from the cursor X to the quad's left edge (typically negative). */
|
|
18
|
+
offsetX: number;
|
|
19
|
+
/** Offset from the baseline Y to the quad's top edge (always negative — top is above baseline). */
|
|
20
|
+
offsetY: number;
|
|
21
|
+
}
|
|
22
|
+
export interface FontAtlas {
|
|
23
|
+
readonly family: string;
|
|
24
|
+
readonly size: number;
|
|
25
|
+
readonly weight: string | number;
|
|
26
|
+
/** Backing GPU texture. */
|
|
27
|
+
readonly texture: Texture;
|
|
28
|
+
/** Atlas dimensions in pixels (= texture.width × texture.height). */
|
|
29
|
+
readonly width: number;
|
|
30
|
+
readonly height: number;
|
|
31
|
+
/** Glyph map: char → metrics. */
|
|
32
|
+
readonly glyphs: ReadonlyMap<string, AtlasGlyph>;
|
|
33
|
+
/**
|
|
34
|
+
* Font DESIGN ascent in pixels (fontBoundingBoxAscent) — what CSS
|
|
35
|
+
* line layout centers in the line box. Not the ink bound.
|
|
36
|
+
*/
|
|
37
|
+
readonly ascent: number;
|
|
38
|
+
/** Font DESIGN descent in pixels (fontBoundingBoxDescent). */
|
|
39
|
+
readonly descent: number;
|
|
40
|
+
/** Recommended line height in pixels. */
|
|
41
|
+
readonly lineHeight: number;
|
|
42
|
+
/**
|
|
43
|
+
* Pair-kerning adjustment in pixels: measureText(a+b) − advance(a)
|
|
44
|
+
* − advance(b). Usually negative ("AV", "To"). Browsers kern by
|
|
45
|
+
* default, so per-char advance sums read a few px wider than CSS —
|
|
46
|
+
* enough to spuriously wrap text in a box it exactly fit. Lazily
|
|
47
|
+
* computed and cached per pair; 0 when either char has no glyph.
|
|
48
|
+
*/
|
|
49
|
+
readonly kern: (a: string, b: string) => number;
|
|
50
|
+
}
|
|
51
|
+
export interface FontAtlasKey {
|
|
52
|
+
family: string;
|
|
53
|
+
size: number;
|
|
54
|
+
weight: string | number;
|
|
55
|
+
}
|
|
56
|
+
export declare function atlasKey(k: FontAtlasKey): string;
|
|
57
|
+
/**
|
|
58
|
+
* Generate a font atlas synchronously. Caller must have already awaited
|
|
59
|
+
* font loading (loadFont + document.fonts.ready) — this function does
|
|
60
|
+
* NOT load fonts.
|
|
61
|
+
*/
|
|
62
|
+
export declare function generateFontAtlas(key: FontAtlasKey, backend: Backend): FontAtlas;
|
|
63
|
+
//# sourceMappingURL=font-atlas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"font-atlas.d.ts","sourceRoot":"","sources":["../../src/text/font-atlas.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAqB9D,8CAA8C;AAC9C,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,OAAO,GACf,SAAS,CA2NX"}
|