cursedbelt 5.77.0 → 5.78.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 (56) hide show
  1. package/dist/react/canvas-hud/CanvasToolbar.d.ts +1 -1
  2. package/dist/react/components/DataTable/TableFilterBuilder.d.ts.map +1 -1
  3. package/dist/react/components/DataTable/TableFilterBuilder.js +2 -2
  4. package/dist/react/components/DataTable/TableFilterBuilder.js.map +1 -1
  5. package/dist/react/components/ListToolbar.d.ts +2 -2
  6. package/dist/react/components/ListToolbar.d.ts.map +1 -1
  7. package/dist/react/components/ListToolbar.js +1 -1
  8. package/dist/react/hooks/useOutsidePress.d.ts.map +1 -1
  9. package/dist/react/hooks/useOutsidePress.js +18 -3
  10. package/dist/react/hooks/useOutsidePress.js.map +1 -1
  11. package/dist/react/hooks/useScrollMemory.d.ts +4 -3
  12. package/dist/react/hooks/useScrollMemory.d.ts.map +1 -1
  13. package/dist/react/hooks/useScrollMemory.js +16 -2
  14. package/dist/react/hooks/useScrollMemory.js.map +1 -1
  15. package/dist/react/media/FocusViewer.d.ts +8 -1
  16. package/dist/react/media/FocusViewer.d.ts.map +1 -1
  17. package/dist/react/media/FocusViewer.js +174 -10
  18. package/dist/react/media/FocusViewer.js.map +1 -1
  19. package/dist/react/media/focusViewer.css +31 -0
  20. package/dist/react/media/gifClip.d.ts +46 -0
  21. package/dist/react/media/gifClip.d.ts.map +1 -0
  22. package/dist/react/media/gifClip.js +74 -0
  23. package/dist/react/media/gifClip.js.map +1 -0
  24. package/dist/react/media/gifEncode.d.ts +46 -0
  25. package/dist/react/media/gifEncode.d.ts.map +1 -0
  26. package/dist/react/media/gifEncode.js +288 -0
  27. package/dist/react/media/gifEncode.js.map +1 -0
  28. package/dist/react/media/gifRecord.d.ts +26 -0
  29. package/dist/react/media/gifRecord.d.ts.map +1 -0
  30. package/dist/react/media/gifRecord.js +93 -0
  31. package/dist/react/media/gifRecord.js.map +1 -0
  32. package/dist/scripts/guardrailsEnforce.d.ts.map +1 -1
  33. package/dist/styles-areas/analytics.css +9 -9
  34. package/dist/styles-areas/data-table.css +10 -10
  35. package/dist/styles-areas/media.css +2 -2
  36. package/package.json +3 -3
  37. package/scripts/guardrailsEnforce.spec.ts +10 -0
  38. package/scripts/guardrailsEnforce.ts +4 -1
  39. package/scripts/styleAreas.ts +3 -1
  40. package/src/react/canvas-hud/CanvasToolbar.tsx +1 -1
  41. package/src/react/components/DataTable/TableFilterBuilder.tsx +9 -13
  42. package/src/react/components/DataTable/tableSystem.spec.tsx +15 -7
  43. package/src/react/components/ListToolbar.tsx +2 -2
  44. package/src/react/hooks/useOutsidePress.spec.tsx +20 -0
  45. package/src/react/hooks/useOutsidePress.ts +17 -2
  46. package/src/react/hooks/useScrollMemory.spec.tsx +45 -2
  47. package/src/react/hooks/useScrollMemory.ts +20 -5
  48. package/src/react/media/FocusViewer.tsx +322 -25
  49. package/src/react/media/focusViewer.css +31 -0
  50. package/src/react/media/gifClip.ts +90 -0
  51. package/src/react/media/gifEncode.spec.ts +213 -0
  52. package/src/react/media/gifEncode.ts +298 -0
  53. package/src/react/media/gifRecord.ts +103 -0
  54. package/src/styles-areas/analytics.css +9 -9
  55. package/src/styles-areas/data-table.css +10 -10
  56. package/src/styles-areas/media.css +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"FocusViewer.js","sourceRoot":"","sources":["../../../src/react/media/FocusViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FocusViewer.js","sourceRoot":"","sources":["../../../src/react/media/FocusViewer.tsx"],"names":[],"mappings":"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"}
@@ -246,3 +246,34 @@
246
246
  max-inline-size: none;
247
247
  max-block-size: none;
248
248
  }
249
+
250
+ /*
251
+ * The GIF panel — a section of the video, as a looping GIF (owner, 2026-10-11). Two rows that
252
+ * wrap like the tools above them: WHAT (the section and its loop) and HOW (rate, width, make).
253
+ */
254
+ .inspector__gif {
255
+ display: flex;
256
+ flex-direction: column;
257
+ gap: 0.5rem;
258
+ padding: 0.625rem 0.75rem;
259
+ border: 1px solid var(--border);
260
+ border-radius: var(--radius-md, 0.5rem);
261
+ background: var(--surface-raised, transparent);
262
+ }
263
+
264
+ .inspector__gifrange,
265
+ .inspector__gifout {
266
+ display: flex;
267
+ align-items: center;
268
+ gap: 0.5rem;
269
+ flex-wrap: wrap;
270
+ }
271
+
272
+ .inspector__gifspan {
273
+ display: inline-flex;
274
+ align-items: baseline;
275
+ gap: 0.4rem;
276
+ padding-inline: 0.25rem;
277
+ font-variant-numeric: tabular-nums;
278
+ color: var(--text);
279
+ }
@@ -0,0 +1,46 @@
1
+ /** Longest section a GIF may be. Past this a GIF is a worse video: tens of MB, and slow to open. */
2
+ export declare const MAX_GIF_SECONDS = 15;
3
+ /** Shortest section worth looping — two frames at the lowest rate. */
4
+ export declare const MIN_GIF_SECONDS = 0.2;
5
+ /** What a new section spans from the playhead, before either end is moved. */
6
+ export declare const DEFAULT_GIF_SECONDS = 3;
7
+ /** The frame rates offered. A GIF's delay is in hundredths of a second, so 20 is near the top of what plays evenly. */
8
+ export declare const GIF_FRAME_RATES: readonly [10, 15, 20];
9
+ /** Output widths offered, in pixels — the height follows the picture's shape. */
10
+ export declare const GIF_WIDTHS: readonly [320, 480, 640];
11
+ export interface GifSection {
12
+ startSeconds: number;
13
+ endSeconds: number;
14
+ }
15
+ /**
16
+ * A section made sensible: inside the video, start before end, no shorter than
17
+ * {@link MIN_GIF_SECONDS} and no longer than {@link MAX_GIF_SECONDS}. When an edit would break
18
+ * a rule, the END that was not just moved gives way — `moved` says which end the hand is on,
19
+ * so marking a new start past the end drags the end along instead of refusing the start.
20
+ */
21
+ export declare function clampGifSection(section: GifSection, durationSeconds: number, moved?: "start" | "end"): GifSection;
22
+ /** The new section a "Make a GIF" press opens with: from the playhead, {@link DEFAULT_GIF_SECONDS} long. */
23
+ export declare function gifSectionAt(playheadSeconds: number, durationSeconds: number): GifSection;
24
+ /**
25
+ * The moments a section is sampled at: one every `1/fps` seconds from the start, the last
26
+ * strictly before the end — so a loop never shows the start frame twice in a row.
27
+ */
28
+ export declare function gifFrameTimes(section: GifSection, fps: number): number[];
29
+ /**
30
+ * The GIF's pixel size for a crop of `crop` source pixels at a requested `width` — never
31
+ * wider than the crop itself (upscaling a GIF only adds bytes) and never below 2×2.
32
+ */
33
+ export declare function gifSize(crop: {
34
+ sw: number;
35
+ sh: number;
36
+ }, width: number): {
37
+ width: number;
38
+ height: number;
39
+ };
40
+ /** `0:12.4` — tenths, because a GIF section is set to the frame, not to the second. */
41
+ export declare function formatGifTime(seconds: number): string;
42
+ /** `2.4 MB` / `840 KB` — what a saved GIF weighs, said after it is made. */
43
+ export declare function formatGifBytes(bytes: number): string;
44
+ /** A file name for a downloaded GIF: the video's name without its extension, and where it starts. */
45
+ export declare function gifFileName(title: string | undefined, startSeconds: number): string;
46
+ //# sourceMappingURL=gifClip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gifClip.d.ts","sourceRoot":"","sources":["../../../src/react/media/gifClip.ts"],"names":[],"mappings":"AAQA,oGAAoG;AACpG,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,sEAAsE;AACtE,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,uHAAuH;AACvH,eAAO,MAAM,eAAe,uBAAwB,CAAC;AACrD,iFAAiF;AACjF,eAAO,MAAM,UAAU,0BAA2B,CAAC;AAEnD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,GAAE,OAAO,GAAG,KAAa,GAAG,UAAU,CAWxH;AAED,4GAA4G;AAC5G,wBAAgB,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,UAAU,CAMzF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAIxE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAG1G;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,qGAAqG;AACrG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAGnF"}
@@ -0,0 +1,74 @@
1
+ // ── A section of a video, as a looping GIF ───────────────────────────────────────────
2
+ // The capture half of the owner's 2026-10-11 ask (*"allow making a looping gif out of a
3
+ // section of a video"*): the section's rules and words, which the focus viewer's panel draws
4
+ // from. The capture is `gifRecord.ts` and the encoding `gifEncode.ts` — both loaded only when a
5
+ // GIF is made, so a gallery that never makes one carries neither.
6
+ // Not on the media entry's export list yet: a second player that wants them adds the line and
7
+ // its `publicSurface.baseline` entry together.
8
+ /** Longest section a GIF may be. Past this a GIF is a worse video: tens of MB, and slow to open. */
9
+ export const MAX_GIF_SECONDS = 15;
10
+ /** Shortest section worth looping — two frames at the lowest rate. */
11
+ export const MIN_GIF_SECONDS = 0.2;
12
+ /** What a new section spans from the playhead, before either end is moved. */
13
+ export const DEFAULT_GIF_SECONDS = 3;
14
+ /** The frame rates offered. A GIF's delay is in hundredths of a second, so 20 is near the top of what plays evenly. */
15
+ export const GIF_FRAME_RATES = [10, 15, 20];
16
+ /** Output widths offered, in pixels — the height follows the picture's shape. */
17
+ export const GIF_WIDTHS = [320, 480, 640];
18
+ /**
19
+ * A section made sensible: inside the video, start before end, no shorter than
20
+ * {@link MIN_GIF_SECONDS} and no longer than {@link MAX_GIF_SECONDS}. When an edit would break
21
+ * a rule, the END that was not just moved gives way — `moved` says which end the hand is on,
22
+ * so marking a new start past the end drags the end along instead of refusing the start.
23
+ */
24
+ export function clampGifSection(section, durationSeconds, moved = "end") {
25
+ const duration = Number.isFinite(durationSeconds) && durationSeconds > 0 ? durationSeconds : Number.POSITIVE_INFINITY;
26
+ const span = (s) => Math.min(MAX_GIF_SECONDS, Math.max(MIN_GIF_SECONDS, s));
27
+ if (moved === "start") {
28
+ const start = Math.min(Math.max(0, section.startSeconds), Math.max(0, duration - MIN_GIF_SECONDS));
29
+ const length = span(section.endSeconds - start);
30
+ return { startSeconds: start, endSeconds: Math.min(duration, start + length) };
31
+ }
32
+ const end = Math.max(Math.min(duration, section.endSeconds), Math.min(duration, MIN_GIF_SECONDS));
33
+ const length = span(end - section.startSeconds);
34
+ return { startSeconds: Math.max(0, end - length), endSeconds: end };
35
+ }
36
+ /** The new section a "Make a GIF" press opens with: from the playhead, {@link DEFAULT_GIF_SECONDS} long. */
37
+ export function gifSectionAt(playheadSeconds, durationSeconds) {
38
+ return clampGifSection({ startSeconds: playheadSeconds, endSeconds: playheadSeconds + DEFAULT_GIF_SECONDS }, durationSeconds, "start");
39
+ }
40
+ /**
41
+ * The moments a section is sampled at: one every `1/fps` seconds from the start, the last
42
+ * strictly before the end — so a loop never shows the start frame twice in a row.
43
+ */
44
+ export function gifFrameTimes(section, fps) {
45
+ const length = section.endSeconds - section.startSeconds;
46
+ const count = Math.max(1, Math.round(length * fps));
47
+ return Array.from({ length: count }, (_, i) => section.startSeconds + i / fps);
48
+ }
49
+ /**
50
+ * The GIF's pixel size for a crop of `crop` source pixels at a requested `width` — never
51
+ * wider than the crop itself (upscaling a GIF only adds bytes) and never below 2×2.
52
+ */
53
+ export function gifSize(crop, width) {
54
+ const w = Math.max(2, Math.round(Math.min(width, crop.sw)));
55
+ return { width: w, height: Math.max(2, Math.round((w * crop.sh) / crop.sw)) };
56
+ }
57
+ /** `0:12.4` — tenths, because a GIF section is set to the frame, not to the second. */
58
+ export function formatGifTime(seconds) {
59
+ const safe = Math.max(0, Number.isFinite(seconds) ? seconds : 0);
60
+ const tenths = Math.round(safe * 10);
61
+ const m = Math.floor(tenths / 600);
62
+ const s = (tenths % 600) / 10;
63
+ return `${m}:${s.toFixed(1).padStart(4, "0")}`;
64
+ }
65
+ /** `2.4 MB` / `840 KB` — what a saved GIF weighs, said after it is made. */
66
+ export function formatGifBytes(bytes) {
67
+ return bytes >= 1024 * 1024 ? `${(bytes / (1024 * 1024)).toFixed(1)} MB` : `${Math.max(1, Math.round(bytes / 1024))} KB`;
68
+ }
69
+ /** A file name for a downloaded GIF: the video's name without its extension, and where it starts. */
70
+ export function gifFileName(title, startSeconds) {
71
+ const base = (title ?? "").replace(/\.[^./\\]+$/, "").replace(/[\\/:*?"<>|]+/g, " ").trim() || "clip";
72
+ return `${base} @ ${formatGifTime(startSeconds).replace(":", "-")}.gif`;
73
+ }
74
+ //# sourceMappingURL=gifClip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gifClip.js","sourceRoot":"","sources":["../../../src/react/media/gifClip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /** The colours one frame is reduced to, and each pixel's index into them. */
2
+ export interface QuantizedFrame {
3
+ /** `r,g,b` triples — at most 256 of them. */
4
+ palette: Uint8Array;
5
+ indices: Uint8Array;
6
+ }
7
+ /**
8
+ * Median-cut an RGBA frame to at most `maxColors` colours.
9
+ *
10
+ * Pixels are first counted into 32,768 bins (5 bits a channel) holding their true 8-bit
11
+ * sums, so a palette entry is the real average of what it stands for rather than a bin's
12
+ * corner. The box split is the one with the most pixels × widest channel, at its weighted
13
+ * median — the textbook cut, which keeps a big flat sky from eating every entry. A frame with
14
+ * no more than `maxColors` distinct binned colours keeps them all.
15
+ */
16
+ export declare function quantizeFrame(rgba: Uint8Array | Uint8ClampedArray, maxColors?: number): QuantizedFrame;
17
+ /**
18
+ * GIF's variable-width LZW over 8-bit indices, as the bytes between the minimum code size and
19
+ * the block terminator (before they are cut into 255-byte sub-blocks).
20
+ *
21
+ * 🔴 The code width grows when the NEXT code to be assigned reaches `1 << width`, and only
22
+ * then — the decoder learns each entry one code later than the encoder makes it, and growing
23
+ * a code early or late desynchronises every code after it into noise.
24
+ */
25
+ export declare function lzwEncode(indices: Uint8Array, minCodeSize?: number): Uint8Array;
26
+ /** A GIF built a frame at a time. `finish()` closes it and hands back the file. */
27
+ export declare class GifWriter {
28
+ readonly width: number;
29
+ readonly height: number;
30
+ private readonly parts;
31
+ /** Centiseconds owed to the next frame — see {@link addFrame}. */
32
+ private carry;
33
+ constructor(width: number, height: number,
34
+ /** 0 loops forever, which is what a GIF made from a clip is for. */
35
+ loop?: number);
36
+ /**
37
+ * One frame of `width × height` RGBA, shown for `delayMs`.
38
+ *
39
+ * GIF counts delay in hundredths of a second, so 15 fps (6.67 cs) cannot be written
40
+ * exactly. The remainder is carried into the next frame rather than rounded away, so a
41
+ * 3-second clip plays for 3 seconds instead of drifting to 2.7 or 3.5.
42
+ */
43
+ addFrame(rgba: Uint8Array | Uint8ClampedArray, delayMs: number): void;
44
+ finish(): Uint8Array;
45
+ }
46
+ //# sourceMappingURL=gifEncode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gifEncode.d.ts","sourceRoot":"","sources":["../../../src/react/media/gifEncode.ts"],"names":[],"mappings":"AAgBA,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;CACrB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,EAAE,SAAS,SAAM,GAAG,cAAc,CA6GnG;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,SAAI,GAAG,UAAU,CAiD1E;AAED,mFAAmF;AACnF,qBAAa,SAAS;IAMlB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,kEAAkE;IAClE,OAAO,CAAC,KAAK,CAAK;gBAGP,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;IACvB,oEAAoE;IACpE,IAAI,SAAI;IAgBV;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAsCrE,MAAM,IAAI,UAAU;CAWrB"}
@@ -0,0 +1,288 @@
1
+ // ── A looping GIF, encoded in the browser ────────────────────────────────────────────
2
+ // Owner, 2026-10-11: *"In collections and the cb media player in general allow making a
3
+ // looping gif out of a section of a video."* This is the encoder that ask needs, and only
4
+ // that: GIF89a, a local 256-colour palette per frame, the NETSCAPE2.0 loop block, LZW.
5
+ //
6
+ // 🔴 Written here rather than taken as a dependency. The media entry's heavy libraries are
7
+ // OPTIONAL peers an app has to install and dedupe (see `index.ts`), and the encoder this
8
+ // feature needs is ~200 lines of a frozen 1989 format — smaller than the declaration file,
9
+ // lockfile churn and peer table one more package would cost every app that shows a video.
10
+ // Pure functions over typed arrays, so `gifEncode.spec.ts` decodes what it writes and
11
+ // checks the pixels came back.
12
+ //
13
+ // Per-frame palettes rather than one global one: a clip is captured a frame at a time and
14
+ // a global palette would need every frame in memory first — 300 frames of 640×360 RGBA is
15
+ // 276 MB. Each frame is quantized, written and dropped.
16
+ const BINS = 1 << 15; // 5 bits a channel
17
+ const binOf = (r, g, b) => ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3);
18
+ /**
19
+ * Median-cut an RGBA frame to at most `maxColors` colours.
20
+ *
21
+ * Pixels are first counted into 32,768 bins (5 bits a channel) holding their true 8-bit
22
+ * sums, so a palette entry is the real average of what it stands for rather than a bin's
23
+ * corner. The box split is the one with the most pixels × widest channel, at its weighted
24
+ * median — the textbook cut, which keeps a big flat sky from eating every entry. A frame with
25
+ * no more than `maxColors` distinct binned colours keeps them all.
26
+ */
27
+ export function quantizeFrame(rgba, maxColors = 256) {
28
+ const pixels = rgba.length >> 2;
29
+ const count = new Uint32Array(BINS);
30
+ const sumR = new Float64Array(BINS);
31
+ const sumG = new Float64Array(BINS);
32
+ const sumB = new Float64Array(BINS);
33
+ for (let p = 0, i = 0; p < pixels; p++, i += 4) {
34
+ const r = rgba[i];
35
+ const g = rgba[i + 1];
36
+ const b = rgba[i + 2];
37
+ const bin = binOf(r, g, b);
38
+ count[bin] = count[bin] + 1;
39
+ sumR[bin] = sumR[bin] + r;
40
+ sumG[bin] = sumG[bin] + g;
41
+ sumB[bin] = sumB[bin] + b;
42
+ }
43
+ const used = [];
44
+ for (let bin = 0; bin < BINS; bin++)
45
+ if (count[bin])
46
+ used.push(bin);
47
+ const channel = (bin, c) => (bin >> (10 - 5 * c)) & 31;
48
+ // A box's widest channel is measured once, when it is made — the split loop asks for it
49
+ // of every box on every pass, and re-scanning 32k bins 256 times a frame is the cost here.
50
+ const boxOf = (bins) => {
51
+ let pixels = 0;
52
+ const lo = [31, 31, 31];
53
+ const hi = [0, 0, 0];
54
+ for (const bin of bins) {
55
+ pixels += count[bin];
56
+ for (const c of [0, 1, 2]) {
57
+ const v = channel(bin, c);
58
+ if (v < lo[c])
59
+ lo[c] = v;
60
+ if (v > hi[c])
61
+ hi[c] = v;
62
+ }
63
+ }
64
+ const ranges = [0, 1, 2].map((c) => hi[c] - lo[c]);
65
+ const c = ranges.indexOf(Math.max(...ranges));
66
+ return { bins, pixels, c, range: ranges[c] };
67
+ };
68
+ const boxes = [boxOf(used)];
69
+ while (boxes.length < maxColors) {
70
+ let pick = -1;
71
+ let score = 0;
72
+ for (let i = 0; i < boxes.length; i++) {
73
+ const box = boxes[i];
74
+ if (box.bins.length < 2)
75
+ continue;
76
+ const s = box.pixels * (box.range + 1);
77
+ if (s > score) {
78
+ score = s;
79
+ pick = i;
80
+ }
81
+ }
82
+ if (pick < 0)
83
+ break; // every box is one colour
84
+ const box = boxes[pick];
85
+ const { c } = box;
86
+ box.bins.sort((a, b) => channel(a, c) - channel(b, c));
87
+ let seen = 0;
88
+ let cut = 1;
89
+ for (let i = 0; i < box.bins.length - 1; i++) {
90
+ seen += count[box.bins[i]];
91
+ cut = i + 1;
92
+ if (seen * 2 >= box.pixels)
93
+ break;
94
+ }
95
+ boxes.splice(pick, 1, boxOf(box.bins.slice(0, cut)), boxOf(box.bins.slice(cut)));
96
+ }
97
+ const palette = new Uint8Array(Math.max(1, boxes.length) * 3);
98
+ const lut = new Uint8Array(BINS);
99
+ boxes.forEach((box, entry) => {
100
+ let r = 0;
101
+ let g = 0;
102
+ let b = 0;
103
+ for (const bin of box.bins) {
104
+ r += sumR[bin];
105
+ g += sumG[bin];
106
+ b += sumB[bin];
107
+ }
108
+ const n = Math.max(1, box.pixels);
109
+ palette[entry * 3] = Math.round(r / n);
110
+ palette[entry * 3 + 1] = Math.round(g / n);
111
+ palette[entry * 3 + 2] = Math.round(b / n);
112
+ });
113
+ // Each bin maps to its NEAREST palette entry, not merely the box it fell in: a box's
114
+ // average can sit closer to a neighbour's members than to some of its own.
115
+ const entries = palette.length / 3;
116
+ for (const bin of used) {
117
+ const n = count[bin];
118
+ const r = sumR[bin] / n;
119
+ const g = sumG[bin] / n;
120
+ const b = sumB[bin] / n;
121
+ let best = 0;
122
+ let bestDistance = Number.POSITIVE_INFINITY;
123
+ for (let e = 0; e < entries; e++) {
124
+ const dr = r - palette[e * 3];
125
+ const dg = g - palette[e * 3 + 1];
126
+ const db = b - palette[e * 3 + 2];
127
+ const d = dr * dr + dg * dg + db * db;
128
+ if (d < bestDistance) {
129
+ bestDistance = d;
130
+ best = e;
131
+ }
132
+ }
133
+ lut[bin] = best;
134
+ }
135
+ const indices = new Uint8Array(pixels);
136
+ for (let p = 0, i = 0; p < pixels; p++, i += 4)
137
+ indices[p] = lut[binOf(rgba[i], rgba[i + 1], rgba[i + 2])];
138
+ return { palette, indices };
139
+ }
140
+ /**
141
+ * GIF's variable-width LZW over 8-bit indices, as the bytes between the minimum code size and
142
+ * the block terminator (before they are cut into 255-byte sub-blocks).
143
+ *
144
+ * 🔴 The code width grows when the NEXT code to be assigned reaches `1 << width`, and only
145
+ * then — the decoder learns each entry one code later than the encoder makes it, and growing
146
+ * a code early or late desynchronises every code after it into noise.
147
+ */
148
+ export function lzwEncode(indices, minCodeSize = 8) {
149
+ const clear = 1 << minCodeSize;
150
+ const end = clear + 1;
151
+ const out = [];
152
+ let width = minCodeSize + 1;
153
+ let next = end + 1;
154
+ let bits = 0;
155
+ let held = 0;
156
+ const emit = (code) => {
157
+ held |= code << bits;
158
+ bits += width;
159
+ while (bits >= 8) {
160
+ out.push(held & 0xff);
161
+ held >>>= 8;
162
+ bits -= 8;
163
+ }
164
+ };
165
+ let table = new Map();
166
+ emit(clear);
167
+ if (indices.length === 0) {
168
+ emit(end);
169
+ if (bits > 0)
170
+ out.push(held & 0xff);
171
+ return Uint8Array.from(out);
172
+ }
173
+ let prefix = indices[0];
174
+ for (let i = 1; i < indices.length; i++) {
175
+ const k = indices[i];
176
+ const key = (prefix << 8) | k;
177
+ const known = table.get(key);
178
+ if (known !== undefined) {
179
+ prefix = known;
180
+ continue;
181
+ }
182
+ emit(prefix);
183
+ if (next === 4096) {
184
+ emit(clear);
185
+ table = new Map();
186
+ width = minCodeSize + 1;
187
+ next = end + 1;
188
+ }
189
+ else {
190
+ if (next >= 1 << width)
191
+ width++;
192
+ table.set(key, next++);
193
+ }
194
+ prefix = k;
195
+ }
196
+ emit(prefix);
197
+ emit(end);
198
+ if (bits > 0)
199
+ out.push(held & 0xff);
200
+ return Uint8Array.from(out);
201
+ }
202
+ /** A GIF built a frame at a time. `finish()` closes it and hands back the file. */
203
+ export class GifWriter {
204
+ width;
205
+ height;
206
+ parts = [];
207
+ /** Centiseconds owed to the next frame — see {@link addFrame}. */
208
+ carry = 0;
209
+ constructor(width, height,
210
+ /** 0 loops forever, which is what a GIF made from a clip is for. */
211
+ loop = 0) {
212
+ this.width = width;
213
+ this.height = height;
214
+ if (width < 1 || height < 1 || width > 0xffff || height > 0xffff)
215
+ throw new Error(`A GIF cannot be ${width}×${height}.`);
216
+ const head = new Uint8Array(13 + 19);
217
+ head.set([0x47, 0x49, 0x46, 0x38, 0x39, 0x61]); // GIF89a
218
+ put16(head, 6, width);
219
+ put16(head, 8, height);
220
+ // No global colour table: every frame carries its own.
221
+ head.set([0x00, 0x00, 0x00], 10);
222
+ // NETSCAPE2.0 application extension — the loop count.
223
+ head.set([0x21, 0xff, 0x0b, ...ascii("NETSCAPE2.0"), 0x03, 0x01], 13);
224
+ put16(head, 29, loop);
225
+ head[31] = 0x00;
226
+ this.parts.push(head);
227
+ }
228
+ /**
229
+ * One frame of `width × height` RGBA, shown for `delayMs`.
230
+ *
231
+ * GIF counts delay in hundredths of a second, so 15 fps (6.67 cs) cannot be written
232
+ * exactly. The remainder is carried into the next frame rather than rounded away, so a
233
+ * 3-second clip plays for 3 seconds instead of drifting to 2.7 or 3.5.
234
+ */
235
+ addFrame(rgba, delayMs) {
236
+ if (rgba.length !== this.width * this.height * 4)
237
+ throw new Error(`A ${this.width}×${this.height} frame is ${this.width * this.height * 4} bytes, not ${rgba.length}.`);
238
+ const exact = delayMs / 10 + this.carry;
239
+ const delay = Math.max(2, Math.round(exact));
240
+ this.carry = exact - delay;
241
+ const { palette, indices } = quantizeFrame(rgba);
242
+ const tableBits = Math.max(1, Math.ceil(Math.log2(palette.length / 3)));
243
+ const table = new Uint8Array(3 << tableBits);
244
+ table.set(palette);
245
+ const control = new Uint8Array(8);
246
+ control.set([0x21, 0xf9, 0x04, 0x04]); // graphic control, disposal 1: leave the frame in place
247
+ put16(control, 4, delay);
248
+ const descriptor = new Uint8Array(10);
249
+ descriptor[0] = 0x2c;
250
+ put16(descriptor, 5, this.width);
251
+ put16(descriptor, 7, this.height);
252
+ descriptor[9] = 0x80 | (tableBits - 1); // a local colour table of 2^tableBits entries
253
+ // The minimum code size follows the table (never below GIF's floor of 2), so every index
254
+ // is a root code — what every decoder, Safari's included, expects.
255
+ const minCodeSize = Math.max(2, tableBits);
256
+ const data = lzwEncode(indices, minCodeSize);
257
+ const blocks = new Uint8Array(1 + data.length + Math.ceil(data.length / 255) + 1);
258
+ blocks[0] = minCodeSize;
259
+ let at = 1;
260
+ for (let i = 0; i < data.length; i += 255) {
261
+ const piece = data.subarray(i, i + 255);
262
+ blocks[at++] = piece.length;
263
+ blocks.set(piece, at);
264
+ at += piece.length;
265
+ }
266
+ blocks[at] = 0x00;
267
+ this.parts.push(control, descriptor, table, blocks);
268
+ }
269
+ finish() {
270
+ this.parts.push(Uint8Array.of(0x3b));
271
+ const total = this.parts.reduce((n, part) => n + part.length, 0);
272
+ const file = new Uint8Array(total);
273
+ let at = 0;
274
+ for (const part of this.parts) {
275
+ file.set(part, at);
276
+ at += part.length;
277
+ }
278
+ return file;
279
+ }
280
+ }
281
+ function put16(bytes, at, value) {
282
+ bytes[at] = value & 0xff;
283
+ bytes[at + 1] = (value >> 8) & 0xff;
284
+ }
285
+ function ascii(text) {
286
+ return [...text].map((ch) => ch.charCodeAt(0));
287
+ }
288
+ //# sourceMappingURL=gifEncode.js.map