bookcover-core 0.5.0 → 0.7.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 (73) hide show
  1. package/dist/assets.d.ts +0 -5
  2. package/dist/assets.d.ts.map +1 -1
  3. package/dist/assets.js +1 -7
  4. package/dist/assets.js.map +1 -1
  5. package/dist/build_files.d.ts +2 -1
  6. package/dist/build_files.d.ts.map +1 -1
  7. package/dist/build_files.js +2 -4
  8. package/dist/build_files.js.map +1 -1
  9. package/dist/builtin_bg_regions.d.ts +15 -0
  10. package/dist/builtin_bg_regions.d.ts.map +1 -0
  11. package/dist/builtin_bg_regions.js +73 -0
  12. package/dist/builtin_bg_regions.js.map +1 -0
  13. package/dist/colors.d.ts +8 -1
  14. package/dist/colors.d.ts.map +1 -1
  15. package/dist/colors.js +22 -8
  16. package/dist/colors.js.map +1 -1
  17. package/dist/data_file.d.ts +1 -1
  18. package/dist/data_file.d.ts.map +1 -1
  19. package/dist/data_file.js +2 -1
  20. package/dist/data_file.js.map +1 -1
  21. package/dist/design.d.ts +60 -0
  22. package/dist/design.d.ts.map +1 -1
  23. package/dist/design.js +291 -0
  24. package/dist/design.js.map +1 -1
  25. package/dist/form_schema.d.ts +20 -1
  26. package/dist/form_schema.d.ts.map +1 -1
  27. package/dist/form_schema.js +99 -8
  28. package/dist/form_schema.js.map +1 -1
  29. package/dist/form_state.d.ts +3 -2
  30. package/dist/form_state.d.ts.map +1 -1
  31. package/dist/form_state.js +2 -1
  32. package/dist/form_state.js.map +1 -1
  33. package/dist/generated/builtin_bg_regions.d.ts +15 -0
  34. package/dist/generated/builtin_bg_regions.d.ts.map +1 -0
  35. package/dist/generated/builtin_bg_regions.js +73 -0
  36. package/dist/generated/builtin_bg_regions.js.map +1 -0
  37. package/dist/generated/templates_data.d.ts +4 -0
  38. package/dist/generated/templates_data.d.ts.map +1 -0
  39. package/dist/generated/templates_data.js +8 -0
  40. package/dist/generated/templates_data.js.map +1 -0
  41. package/dist/generated/vector_bg_images_data.d.ts +4 -0
  42. package/dist/generated/vector_bg_images_data.d.ts.map +1 -0
  43. package/dist/generated/vector_bg_images_data.js +33 -0
  44. package/dist/generated/vector_bg_images_data.js.map +1 -0
  45. package/dist/generated/vector_patterns_data.d.ts +4 -0
  46. package/dist/generated/vector_patterns_data.d.ts.map +1 -0
  47. package/dist/generated/vector_patterns_data.js +33 -0
  48. package/dist/generated/vector_patterns_data.js.map +1 -0
  49. package/dist/image_regions.d.ts +29 -0
  50. package/dist/image_regions.d.ts.map +1 -0
  51. package/dist/image_regions.js +135 -0
  52. package/dist/image_regions.js.map +1 -0
  53. package/dist/index.d.ts +16 -5
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +33 -16
  56. package/dist/index.js.map +1 -1
  57. package/dist/schema.d.ts +3 -2
  58. package/dist/schema.d.ts.map +1 -1
  59. package/dist/schema.js +2 -1
  60. package/dist/schema.js.map +1 -1
  61. package/dist/templates_data.d.ts +4 -0
  62. package/dist/templates_data.d.ts.map +1 -0
  63. package/dist/templates_data.js +8 -0
  64. package/dist/templates_data.js.map +1 -0
  65. package/dist/vector_backgrounds.d.ts +11 -0
  66. package/dist/vector_backgrounds.d.ts.map +1 -0
  67. package/dist/vector_backgrounds.js +54 -0
  68. package/dist/vector_backgrounds.js.map +1 -0
  69. package/dist/vector_patterns_data.d.ts +4 -0
  70. package/dist/vector_patterns_data.d.ts.map +1 -0
  71. package/dist/vector_patterns_data.js +66 -0
  72. package/dist/vector_patterns_data.js.map +1 -0
  73. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"data_file.js","sourceRoot":"","sources":["../src/data_file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data_file.js","sourceRoot":"","sources":["../src/data_file.ts"],"names":[],"mappings":"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"}
package/dist/design.d.ts CHANGED
@@ -16,6 +16,66 @@ export interface ResolvedColors {
16
16
  spine_author: string;
17
17
  accent: string;
18
18
  }
19
+ export type PaletteScheme = 'triadic' | 'analogous' | 'split_complementary' | 'complementary' | 'accent_tones';
20
+ /**
21
+ * Derive `count` aesthetically-harmonious hex colors from a base color (hex or hsl() string).
22
+ * The 'accent_tones' scheme uses a fixed tuned tone set (see generate_accent_tones); the other
23
+ * schemes use a hue-harmony wheel, with saturation/lightness clamped into a mid-range band so
24
+ * the palette stays visibly colorful even when the base is near-white or near-black.
25
+ */
26
+ export declare function generate_palette(base: string, count: number, scheme: PaletteScheme): string[];
27
+ export interface RegionStats {
28
+ hue: number;
29
+ saturation: number;
30
+ lightness: number;
31
+ lightness_spread: number;
32
+ }
33
+ /** Build a hex color from a RegionStats triple */
34
+ export declare function region_hex(region: RegionStats): string;
35
+ /** Blend two sampled regions — saturation-weighted circular mean for hue (biases toward the
36
+ * more colorful of the two), plain mean for saturation/lightness. Used for text positioned
37
+ * between two sampled regions (e.g. 'middle'), which isn't backed by either one directly. */
38
+ export declare function blend_regions(a: RegionStats, b: RegionStats): RegionStats;
39
+ /**
40
+ * Preserve the given hue+saturation and find the least-extreme lightness (closest to 50%, i.e.
41
+ * most colorful) that still clears `min_contrast` against `bg_hex` — unlike auto_contrast_text,
42
+ * which always jumps straight to pure white/near-black. Contrast against a fixed background is
43
+ * unimodal in lightness, and both extremes (L=0/L=1) degenerate to pure black/white regardless
44
+ * of hue/saturation, so a bisection toward each extreme converges whenever the target is
45
+ * achievable at all. It isn't always: WCAG guarantees max(contrast_white, contrast_black) >=
46
+ * ~4.58 for any background, but that's a floor, not a ceiling — a mid-dark-gray background can
47
+ * cap out well below a demanding `min_contrast` (e.g. ~7+) even at pure black or white. In that
48
+ * case this falls back to whichever extreme gets closest, same as auto_contrast_text would.
49
+ */
50
+ export declare function tinted_contrast_text(hue: number, saturation: number, bg_hex: string, min_contrast?: number): string;
51
+ /**
52
+ * Cross-region hue search for text color: try each candidate region's hue against the given
53
+ * backdrop, plus a plain grayscale option, and keep whichever produces the most vivid (least
54
+ * contrast-compromised) still-readable result. Regions aren't treated as isolated — e.g. text
55
+ * over a pale sky can legitimately borrow a saturated hue from a dark sea elsewhere in the same
56
+ * photo, if that reads better than darkening the sky's own washed-out hue. Candidates that
57
+ * would land in muddy/dirty territory (a washed-out hue forced dark) are penalized, whichever
58
+ * region they come from, so a cleaner alternative — another region's hue, or plain grayscale —
59
+ * wins unless the muddy option is clearly the most vivid available. Ties (within ~1% lightness)
60
+ * favor the backdrop's own region over the plain grayscale fallback, to avoid gratuitous
61
+ * cross-borrowing when it doesn't actually help.
62
+ *
63
+ * Against a near-black or near-white backdrop, this whole search breaks down: almost any hue
64
+ * already clears contrast at 50% lightness without ever being pushed toward an extreme, so it
65
+ * "wins" on the deviation metric below despite reading as a washed, dull mid-tone — and the
66
+ * muddy check never even applies, since that only fires once a candidate is forced dark. A
67
+ * backdrop this stark calls for plain black/white, so the hue search is skipped outright.
68
+ */
69
+ export declare function pick_vivid_tint(candidates: RegionStats[], backdrop: RegionStats, min_contrast?: number): string;
70
+ /**
71
+ * Derive a coordinating solid-fill color from sampled image regions — used wherever the image
72
+ * itself isn't visible (bg_color, accent, and blurb/spine fills outside full-wrap coverage).
73
+ * Picks the most saturated candidate as the hue source. With no `target_lightness`, clamps
74
+ * lightness into a light or dark band depending on whether the candidates read light or dark
75
+ * overall (for general fills); a fixed `target_lightness` near 0.5 gives a punchier, more
76
+ * vivid result (for decorative accents).
77
+ */
78
+ export declare function synthesize_fill(candidates: RegionStats[], target_lightness?: number): string;
19
79
  /** Merge user-supplied colors with defaults, deriving related fields when possible */
20
80
  export declare function resolve_colors(schema: CoverSchema): ResolvedColors;
21
81
  /** Per-field resolved font configs — the single source of the font inheritance chain */
@@ -1 +1 @@
1
- {"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AAkBxD,MAAM,WAAW,cAAc;IAC3B,gBAAgB,EAAC,MAAM,CAAA;IACvB,oBAAoB,EAAC,MAAM,CAAA;IAC3B,kBAAkB,EAAC,MAAM,CAAA;IACzB,eAAe,EAAC,MAAM,CAAA;IACtB,gBAAgB,EAAC,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAC,MAAM,CAAA;IACnB,YAAY,EAAC,MAAM,CAAA;IACnB,YAAY,EAAC,MAAM,CAAA;IACnB,cAAc,EAAC,MAAM,CAAA;IACrB,YAAY,EAAC,MAAM,CAAA;IACnB,KAAK,EAAC,MAAM,CAAA;IACZ,gBAAgB,EAAC,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,EAAC,MAAM,CAAA;IAClB,YAAY,EAAC,MAAM,CAAA;IACnB,MAAM,EAAC,MAAM,CAAA;CAChB;AAsCD,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,MAAM,EAAC,WAAW,GAAE,cAAc,CAkChE;AAKD,wFAAwF;AACxF,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAC,UAAU,CAAA;IACf,MAAM,EAAC,UAAU,CAAA;IACjB,MAAM,EAAC,UAAU,CAAA;IACjB,MAAM,EAAC,UAAU,CAAA;IACjB,QAAQ,EAAC,UAAU,CAAA;IACnB,MAAM,EAAC,UAAU,CAAA;IACjB,KAAK,EAAC,UAAU,CAAA;IAChB,WAAW,EAAC,UAAU,CAAA;IACtB,YAAY,EAAC,UAAU,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAC,WAAW,GAAE,mBAAmB,CAc3E;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,MAAM,EAAC,WAAW,GAAE,MAAM,CAAC,MAAM,mBAAmB,EAAE,MAAM,CAAC,CAKlG;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,GAAE,MAAM,CAEhE;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAE,MAAM,CAE3D"}
1
+ {"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AAkBxD,MAAM,WAAW,cAAc;IAC3B,gBAAgB,EAAC,MAAM,CAAA;IACvB,oBAAoB,EAAC,MAAM,CAAA;IAC3B,kBAAkB,EAAC,MAAM,CAAA;IACzB,eAAe,EAAC,MAAM,CAAA;IACtB,gBAAgB,EAAC,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAC,MAAM,CAAA;IACnB,YAAY,EAAC,MAAM,CAAA;IACnB,YAAY,EAAC,MAAM,CAAA;IACnB,cAAc,EAAC,MAAM,CAAA;IACrB,YAAY,EAAC,MAAM,CAAA;IACnB,KAAK,EAAC,MAAM,CAAA;IACZ,gBAAgB,EAAC,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,EAAC,MAAM,CAAA;IAClB,YAAY,EAAC,MAAM,CAAA;IACnB,MAAM,EAAC,MAAM,CAAA;CAChB;AA4BD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,qBAAqB,GAAG,eAAe,GAAG,cAAc,CAAA;AAmD9G;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,MAAM,EAAC,aAAa,GAAE,MAAM,EAAE,CAyBzF;AAiBD,MAAM,WAAW,WAAW;IACxB,GAAG,EAAC,MAAM,CAAA;IACV,UAAU,EAAC,MAAM,CAAA;IACjB,SAAS,EAAC,MAAM,CAAA;IAChB,gBAAgB,EAAC,MAAM,CAAA;CAC1B;AAkCD,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,MAAM,EAAC,WAAW,GAAE,MAAM,CAEpD;AAED;;8FAE8F;AAC9F,wBAAgB,aAAa,CAAC,CAAC,EAAC,WAAW,EAAE,CAAC,EAAC,WAAW,GAAE,WAAW,CAatE;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,YAAY,SAAM,GAAE,MAAM,CA6B5G;AAyBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAC,WAAW,EAAE,EAAE,QAAQ,EAAC,WAAW,EAAE,YAAY,SAAM,GAAE,MAAM,CAiCzG;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAC,WAAW,EAAE,EAAE,gBAAgB,CAAC,EAAC,MAAM,GAAE,MAAM,CA4BzF;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,MAAM,EAAC,WAAW,GAAE,cAAc,CAkChE;AAKD,wFAAwF;AACxF,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAC,UAAU,CAAA;IACf,MAAM,EAAC,UAAU,CAAA;IACjB,MAAM,EAAC,UAAU,CAAA;IACjB,MAAM,EAAC,UAAU,CAAA;IACjB,QAAQ,EAAC,UAAU,CAAA;IACnB,MAAM,EAAC,UAAU,CAAA;IACjB,KAAK,EAAC,UAAU,CAAA;IAChB,WAAW,EAAC,UAAU,CAAA;IACtB,YAAY,EAAC,UAAU,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAC,WAAW,GAAE,mBAAmB,CAc3E;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,MAAM,EAAC,WAAW,GAAE,MAAM,CAAC,MAAM,mBAAmB,EAAE,MAAM,CAAC,CAKlG;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,MAAM,GAAE,MAAM,CAEhE;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAE,MAAM,CAE3D"}
package/dist/design.js CHANGED
@@ -37,6 +37,81 @@ function shift_hue(hsl_str, degrees) {
37
37
  const [h, s, l] = c.hsl();
38
38
  return to_hsl(chroma.hsl(((h || 0) + degrees + 360) % 360, s - 0.4, l));
39
39
  }
40
+ // Fixed hue offsets (degrees from the base hue) per harmony scheme
41
+ const PALETTE_HUE_OFFSETS = {
42
+ triadic: [0, 120, 240],
43
+ analogous: [0, -30, 30, -60],
44
+ split_complementary: [0, 150, 210],
45
+ complementary: [0, 180],
46
+ };
47
+ // Clamp bands applied to every generated palette color, regardless of the base color's own
48
+ // S/L — keeps the palette visibly colorful even when the base is near-white or near-black
49
+ const PALETTE_SATURATION_RANGE = [0.4, 0.65];
50
+ const PALETTE_LIGHTNESS_RANGE = [0.35, 0.65];
51
+ // Per-tone hue offset/saturation/lightness for the 'accent_tones' scheme, tuned by eye against
52
+ // the curated vector-background pattern set (see vector_backgrounds.ts) — one warm-ish primary
53
+ // tone plus two supporting tones rather than an evenly-spaced hue wheel
54
+ const ACCENT_TONES = [
55
+ { dh: 0, s: 0.44, l: 0.30 },
56
+ { dh: -55, s: 0.36, l: 0.44 },
57
+ { dh: 45, s: 0.32, l: 0.60 },
58
+ ];
59
+ const ACCENT_TONE_MIX = 0.3; // softens each tone by mixing this fraction of the base color back in
60
+ const ACCENT_DARK_LIGHTNESS_THRESHOLD = 0.45; // base lighter than this counts as a "light" base
61
+ const ACCENT_DARK_LIGHTNESS_BOOST = 0.28; // extra lightness added to each tone against a dark base
62
+ const ACCENT_DARK_LIGHTNESS_CAP = 0.82;
63
+ const ACCENT_DARK_MIX_TARGET_WHITE = 0.35; // against a dark base, soften toward this much white instead
64
+ /**
65
+ * Derive 'accent_tones' colors — a small fixed set of tones (see ACCENT_TONES) rather than an
66
+ * evenly-spaced hue-harmony wheel, each softened by mixing back toward the base color so the
67
+ * result reads as coordinated with it rather than clashing. Against a dark base, tones are
68
+ * boosted lighter and mixed toward white instead, so pattern fills stay legible.
69
+ */
70
+ function generate_accent_tones(base, count) {
71
+ const base_color = parse_color(base);
72
+ const [base_h, , base_l] = base_color.hsl();
73
+ const hue = base_h || 0;
74
+ const is_dark = (base_l || 0) < ACCENT_DARK_LIGHTNESS_THRESHOLD;
75
+ const mix_target = is_dark ? chroma.mix(base_color, '#ffffff', ACCENT_DARK_MIX_TARGET_WHITE, 'rgb') : base_color;
76
+ const colors = [];
77
+ for (let i = 0; i < count; i++) {
78
+ const tone = ACCENT_TONES[i % ACCENT_TONES.length];
79
+ const l = is_dark ? Math.min(ACCENT_DARK_LIGHTNESS_CAP, tone.l + ACCENT_DARK_LIGHTNESS_BOOST) : tone.l;
80
+ const tone_color = chroma.hsl((hue + tone.dh + 360) % 360, tone.s, l);
81
+ colors.push(chroma.mix(tone_color, mix_target, ACCENT_TONE_MIX, 'rgb').hex());
82
+ }
83
+ return colors;
84
+ }
85
+ /**
86
+ * Derive `count` aesthetically-harmonious hex colors from a base color (hex or hsl() string).
87
+ * The 'accent_tones' scheme uses a fixed tuned tone set (see generate_accent_tones); the other
88
+ * schemes use a hue-harmony wheel, with saturation/lightness clamped into a mid-range band so
89
+ * the palette stays visibly colorful even when the base is near-white or near-black.
90
+ */
91
+ export function generate_palette(base, count, scheme) {
92
+ if (scheme === 'accent_tones')
93
+ return generate_accent_tones(base, count);
94
+ const [base_h] = parse_color(base).hsl();
95
+ const hue = base_h || 0;
96
+ const offsets = PALETTE_HUE_OFFSETS[scheme];
97
+ const colors = [];
98
+ for (let i = 0; i < count; i++) {
99
+ const offset = offsets[i % offsets.length];
100
+ // Extra cycles past the scheme's natural hue count vary lightness instead of repeating
101
+ // the same tone verbatim, so a design asking for more colors than the scheme provides
102
+ // still gets a tint/shade rather than a visible duplicate
103
+ const cycle = Math.floor(i / offsets.length);
104
+ const h = (hue + offset + 360) % 360;
105
+ const s = PALETTE_SATURATION_RANGE[0]
106
+ + (PALETTE_SATURATION_RANGE[1] - PALETTE_SATURATION_RANGE[0]) * 0.5;
107
+ const l_mid = PALETTE_LIGHTNESS_RANGE[0]
108
+ + (PALETTE_LIGHTNESS_RANGE[1] - PALETTE_LIGHTNESS_RANGE[0]) * 0.5;
109
+ const l_step = cycle % 2 === 0 ? 1 : -1;
110
+ const l = Math.min(PALETTE_LIGHTNESS_RANGE[1], Math.max(PALETTE_LIGHTNESS_RANGE[0], l_mid + l_step * cycle * 0.1));
111
+ colors.push(chroma.hsl(h, s, l).hex());
112
+ }
113
+ return colors;
114
+ }
40
115
  /** Return white or near-black, whichever has more WCAG contrast against the given background */
41
116
  function auto_contrast_text(bg) {
42
117
  const L = from_hsl(bg).luminance();
@@ -46,6 +121,222 @@ function auto_contrast_text(bg) {
46
121
  ? 'hsl(0deg, 0%, 100%)' // white — better on dark backgrounds
47
122
  : 'hsl(0deg, 0%, 10%)'; // near-black (K90% for print)
48
123
  }
124
+ // Saturation clamp bands for image-derived colors — floor keeps even a fairly gray region
125
+ // visibly tinted, ceiling avoids inventing more color than the source photo actually has
126
+ const TINT_SATURATION_RANGE = [0.35, 0.7];
127
+ const FILL_SATURATION_RANGE = [0.25, 0.55];
128
+ const FILL_LIGHT_BAND = [0.75, 0.9];
129
+ const FILL_DARK_BAND = [0.15, 0.3];
130
+ // Below this average source lightness, synthesize_fill picks the dark band; at or above it,
131
+ // the light band. Set well under 0.5 so the light variant wins for most images.
132
+ const FILL_DARK_THRESHOLD = 0.3;
133
+ // Below this average source lightness, the image reads as essentially black — synthesize_fill
134
+ // goes straight to true black instead of its usual dark band, since a near-black source has no
135
+ // real hue signal to preserve (any surviving tint is rounding noise, not a color choice) and the
136
+ // dark band's ~22% lightness would still show as a washed gray rather than a rich black. Matches
137
+ // the near-black backdrop cutoff pick_vivid_tint already uses (EXTREME_BACKDROP_LIGHTNESS).
138
+ const FILL_BLACK_THRESHOLD = 0.1;
139
+ // A source counts as achromatic (no real hue to pull from — e.g. a black & white photo) below
140
+ // this saturation; shared by the black check above and the tint-floor clamp below
141
+ const ACHROMATIC_SATURATION_THRESHOLD = 0.03;
142
+ // A warm hue (red through amber) pushed dark reads as a flat, muddy brown rather than a rich
143
+ // dark color, no matter how saturated the source actually was — the same perceptual issue
144
+ // MUDDY_HUE_RANGE/is_muddy_when_dark encodes below for text color, just not yet applied to
145
+ // fills, and wider here to reach true reds (hue 0), which are if anything worse offenders than
146
+ // the amber/gold range that function targets. A source that's both quite dark and vividly
147
+ // warm-hued has nothing to gain from round-tripping through that muddy midtone, so
148
+ // synthesize_fill sends it straight to true black instead — but only once it's genuinely vivid
149
+ // (VIVID_WARM_SATURATION_FLOOR): a dull dark warm source (e.g. a duskily-lit brown plant photo)
150
+ // is left alone, since forcing that to black would be a bigger departure from the source than
151
+ // the muddy tint it currently gets.
152
+ const VIVID_WARM_LIGHTNESS_CAP = 0.15;
153
+ const VIVID_WARM_HUE_RANGE = [0, 50];
154
+ const VIVID_WARM_SATURATION_FLOOR = 0.65;
155
+ /** Build a hex color from a RegionStats triple */
156
+ export function region_hex(region) {
157
+ return chroma.hsl(region.hue, region.saturation, region.lightness).hex();
158
+ }
159
+ /** Blend two sampled regions — saturation-weighted circular mean for hue (biases toward the
160
+ * more colorful of the two), plain mean for saturation/lightness. Used for text positioned
161
+ * between two sampled regions (e.g. 'middle'), which isn't backed by either one directly. */
162
+ export function blend_regions(a, b) {
163
+ const to_rad = (deg) => deg * Math.PI / 180;
164
+ const x = Math.cos(to_rad(a.hue)) * a.saturation + Math.cos(to_rad(b.hue)) * b.saturation;
165
+ const y = Math.sin(to_rad(a.hue)) * a.saturation + Math.sin(to_rad(b.hue)) * b.saturation;
166
+ const hue = (Math.atan2(y, x) * 180 / Math.PI + 360) % 360;
167
+ return {
168
+ hue: (x === 0 && y === 0) ? a.hue : hue,
169
+ saturation: (a.saturation + b.saturation) / 2,
170
+ lightness: (a.lightness + b.lightness) / 2,
171
+ // Also account for how far apart the two regions' own lightness is — blending a light
172
+ // region with a dark one is itself a source of "spread" beyond each region's own
173
+ lightness_spread: (a.lightness_spread + b.lightness_spread) / 2 + Math.abs(a.lightness - b.lightness) / 2,
174
+ };
175
+ }
176
+ /** WCAG contrast ratio between two colors (same formula as auto_contrast_text, generalized) */
177
+ function contrast_ratio(a, b) {
178
+ const La = a.luminance();
179
+ const Lb = b.luminance();
180
+ const [l_max, l_min] = La >= Lb ? [La, Lb] : [Lb, La];
181
+ return (l_max + 0.05) / (l_min + 0.05);
182
+ }
183
+ /**
184
+ * Preserve the given hue+saturation and find the least-extreme lightness (closest to 50%, i.e.
185
+ * most colorful) that still clears `min_contrast` against `bg_hex` — unlike auto_contrast_text,
186
+ * which always jumps straight to pure white/near-black. Contrast against a fixed background is
187
+ * unimodal in lightness, and both extremes (L=0/L=1) degenerate to pure black/white regardless
188
+ * of hue/saturation, so a bisection toward each extreme converges whenever the target is
189
+ * achievable at all. It isn't always: WCAG guarantees max(contrast_white, contrast_black) >=
190
+ * ~4.58 for any background, but that's a floor, not a ceiling — a mid-dark-gray background can
191
+ * cap out well below a demanding `min_contrast` (e.g. ~7+) even at pure black or white. In that
192
+ * case this falls back to whichever extreme gets closest, same as auto_contrast_text would.
193
+ */
194
+ export function tinted_contrast_text(hue, saturation, bg_hex, min_contrast = 4.5) {
195
+ const bg = chroma(bg_hex);
196
+ const candidate = (l) => chroma.hsl(hue, saturation, l);
197
+ const contrast_at = (l) => contrast_ratio(candidate(l), bg);
198
+ if (contrast_at(0.5) >= min_contrast)
199
+ return candidate(0.5).hex();
200
+ // Bisect toward an extreme for the least-extreme lightness that clears min_contrast — but
201
+ // only if the extreme itself actually clears it; otherwise the target isn't reachable here
202
+ const search_toward = (extreme) => {
203
+ if (contrast_at(extreme) < min_contrast)
204
+ return null;
205
+ let good = extreme;
206
+ let bad = 0.5;
207
+ for (let i = 0; i < 20; i++) {
208
+ const mid = (good + bad) / 2;
209
+ if (contrast_at(mid) >= min_contrast)
210
+ good = mid;
211
+ else
212
+ bad = mid;
213
+ }
214
+ return good;
215
+ };
216
+ const light = search_toward(1);
217
+ const dark = search_toward(0);
218
+ if (light === null && dark === null)
219
+ return (contrast_at(1) >= contrast_at(0) ? candidate(1) : candidate(0)).hex();
220
+ if (light === null)
221
+ return candidate(dark).hex();
222
+ if (dark === null)
223
+ return candidate(light).hex();
224
+ const l = Math.abs(light - 0.5) <= Math.abs(dark - 0.5) ? light : dark;
225
+ return candidate(l).hex();
226
+ }
227
+ // Warm hues (sand, sunset gold, terracotta) read as "brown" the instant they're forced dark —
228
+ // HSL's saturation number doesn't track this, a fully-saturated dark orange still perceptually
229
+ // reads as brown/dirty, not as a rich dark color — so these are muddy at any saturation.
230
+ const MUDDY_HUE_RANGE = [20, 75];
231
+ // Outside that warm band, only a washed-out/low-saturation hue pushed dark reads as dull and
232
+ // dirty rather than a rich dark color (hazy slate-blue vs. a true navy) — a well-saturated cool
233
+ // hue (navy, forest green) still looks intentional and elegant even when dark
234
+ const MUDDY_SATURATION_CEILING = 0.55;
235
+ const MUDDY_DARK_LIGHTNESS_CEILING = 0.4;
236
+ // Large enough that a muddy candidate only wins when clearly more vivid than every alternative
237
+ const MUDDY_PENALTY = 0.3;
238
+ /** True when a candidate's resulting color would land in "dirty"/muddy territory: a warm hue,
239
+ * or any under-saturated hue, pushed dark for contrast rather than landing on a rich dark tone */
240
+ function is_muddy_when_dark(hue, saturation, resulting_lightness) {
241
+ if (resulting_lightness > MUDDY_DARK_LIGHTNESS_CEILING)
242
+ return false;
243
+ const is_warm = hue >= MUDDY_HUE_RANGE[0] && hue <= MUDDY_HUE_RANGE[1];
244
+ return is_warm || saturation <= MUDDY_SATURATION_CEILING;
245
+ }
246
+ // Backdrop lightness range outside which a hue search is skipped entirely (see pick_vivid_tint)
247
+ const EXTREME_BACKDROP_LIGHTNESS = [0.1, 0.9];
248
+ /**
249
+ * Cross-region hue search for text color: try each candidate region's hue against the given
250
+ * backdrop, plus a plain grayscale option, and keep whichever produces the most vivid (least
251
+ * contrast-compromised) still-readable result. Regions aren't treated as isolated — e.g. text
252
+ * over a pale sky can legitimately borrow a saturated hue from a dark sea elsewhere in the same
253
+ * photo, if that reads better than darkening the sky's own washed-out hue. Candidates that
254
+ * would land in muddy/dirty territory (a washed-out hue forced dark) are penalized, whichever
255
+ * region they come from, so a cleaner alternative — another region's hue, or plain grayscale —
256
+ * wins unless the muddy option is clearly the most vivid available. Ties (within ~1% lightness)
257
+ * favor the backdrop's own region over the plain grayscale fallback, to avoid gratuitous
258
+ * cross-borrowing when it doesn't actually help.
259
+ *
260
+ * Against a near-black or near-white backdrop, this whole search breaks down: almost any hue
261
+ * already clears contrast at 50% lightness without ever being pushed toward an extreme, so it
262
+ * "wins" on the deviation metric below despite reading as a washed, dull mid-tone — and the
263
+ * muddy check never even applies, since that only fires once a candidate is forced dark. A
264
+ * backdrop this stark calls for plain black/white, so the hue search is skipped outright.
265
+ */
266
+ export function pick_vivid_tint(candidates, backdrop, min_contrast = 4.5) {
267
+ const backdrop_hex = region_hex(backdrop);
268
+ if (backdrop.lightness < EXTREME_BACKDROP_LIGHTNESS[0] || backdrop.lightness > EXTREME_BACKDROP_LIGHTNESS[1]) {
269
+ const white = chroma.hsl(0, 0, 1);
270
+ const black = chroma.hsl(0, 0, 0.1);
271
+ const bg = chroma(backdrop_hex);
272
+ return (contrast_ratio(white, bg) >= contrast_ratio(black, bg) ? white : black).hex();
273
+ }
274
+ const TIE_EPSILON = 0.01;
275
+ const grayscale = { hue: 0, saturation: 0, lightness: 0.5, lightness_spread: 0 };
276
+ const pool = [...candidates, grayscale];
277
+ const scored = pool.map(region => {
278
+ // The synthetic grayscale entry must stay at 0 saturation — clamping it into the tint
279
+ // band like a real candidate would turn it into a hue=0 (red) color instead of neutral
280
+ const sat = region === grayscale ? 0
281
+ : Math.min(TINT_SATURATION_RANGE[1], Math.max(TINT_SATURATION_RANGE[0], region.saturation));
282
+ const hex = tinted_contrast_text(region.hue, sat, backdrop_hex, min_contrast);
283
+ const lightness = chroma(hex).hsl()[2] || 0;
284
+ let deviation = Math.abs(lightness - 0.5);
285
+ // The grayscale entry is the deliberate neutral fallback — its 0 saturation must never
286
+ // trip the "washed-out hue" branch of is_muddy_when_dark, or it loses its safe-option
287
+ // status and stops being able to beat real muddy candidates
288
+ if (region !== grayscale && is_muddy_when_dark(region.hue, sat, lightness))
289
+ deviation += MUDDY_PENALTY;
290
+ return { region, hex, deviation };
291
+ });
292
+ let best = scored[0];
293
+ for (const s of scored.slice(1)) {
294
+ const clearly_better = s.deviation < best.deviation - TIE_EPSILON;
295
+ const tied_favors_backdrop = Math.abs(s.deviation - best.deviation) <= TIE_EPSILON
296
+ && s.region === backdrop && best.region !== backdrop;
297
+ if (clearly_better || tied_favors_backdrop)
298
+ best = s;
299
+ }
300
+ return best.hex;
301
+ }
302
+ /**
303
+ * Derive a coordinating solid-fill color from sampled image regions — used wherever the image
304
+ * itself isn't visible (bg_color, accent, and blurb/spine fills outside full-wrap coverage).
305
+ * Picks the most saturated candidate as the hue source. With no `target_lightness`, clamps
306
+ * lightness into a light or dark band depending on whether the candidates read light or dark
307
+ * overall (for general fills); a fixed `target_lightness` near 0.5 gives a punchier, more
308
+ * vivid result (for decorative accents).
309
+ */
310
+ export function synthesize_fill(candidates, target_lightness) {
311
+ if (candidates.length === 0)
312
+ return '#ffffff';
313
+ const avg_l = candidates.reduce((sum, r) => sum + r.lightness, 0) / candidates.length;
314
+ const source = candidates.reduce((a, b) => (b.saturation > a.saturation ? b : a));
315
+ // General fill only (not a punchier fixed-lightness accent) — true black wins over the
316
+ // usual dark band in two cases: a near-black achromatic source (nothing to preserve — the
317
+ // dark band would just show as washed gray), or a dark, vividly warm-hued source (nothing
318
+ // to gain from preserving a hue that reads as muddy brown once forced dark; see
319
+ // VIVID_WARM_HUE_RANGE above). Saturated-but-dark cool/mid hues (a deep navy, a forest
320
+ // green) are left alone — they read as rich, intentional colors even when dark
321
+ if (target_lightness === undefined) {
322
+ const achromatic = avg_l < FILL_BLACK_THRESHOLD && source.saturation < ACHROMATIC_SATURATION_THRESHOLD;
323
+ const vivid_warm = avg_l < VIVID_WARM_LIGHTNESS_CAP
324
+ && source.hue >= VIVID_WARM_HUE_RANGE[0] && source.hue <= VIVID_WARM_HUE_RANGE[1]
325
+ && source.saturation > VIVID_WARM_SATURATION_FLOOR;
326
+ if (achromatic || vivid_warm)
327
+ return '#000000';
328
+ }
329
+ // A genuinely achromatic source (e.g. a black & white photo) has no color to pull from —
330
+ // clamping its saturation up to the tint floor would manufacture a fake hue instead
331
+ const sat = source.saturation < ACHROMATIC_SATURATION_THRESHOLD ? 0
332
+ : Math.min(FILL_SATURATION_RANGE[1], Math.max(FILL_SATURATION_RANGE[0], source.saturation));
333
+ let l = target_lightness;
334
+ if (l === undefined) {
335
+ const band = avg_l < FILL_DARK_THRESHOLD ? FILL_DARK_BAND : FILL_LIGHT_BAND;
336
+ l = (band[0] + band[1]) / 2;
337
+ }
338
+ return chroma.hsl(source.hue, sat, l).hex();
339
+ }
49
340
  /** Merge user-supplied colors with defaults, deriving related fields when possible */
50
341
  export function resolve_colors(schema) {
51
342
  const accent = COLOR_DEFAULTS.accent;
@@ -1 +1 @@
1
- {"version":3,"file":"design.js","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"design.js","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,30 @@
1
1
  import type { FontStyle } from 'typst-fonts';
2
2
  import type { EmbedFormState } from './form_state.js';
3
+ import type { RegionStats } from './design.js';
3
4
  /** Minimal shape build_schema needs to style custom fonts — typst-fonts' CustomFont is
4
5
  * assignable, so callers can pass their uploaded-font store directly */
5
6
  export interface CustomFontStyle {
6
7
  family: string;
7
8
  style: FontStyle;
8
9
  }
10
+ /** Colors sampled from the background image, keyed by where they were sampled from.
11
+ * front_top/front_bottom treat the whole image as the front panel — correct whenever the
12
+ * image is confined to the front panel (any bg_image_coverage besides 'full'). Under 'full'
13
+ * coverage the raw image is a full wrap (back+spine+front side by side), so front text should
14
+ * only look at the front panel's own portion of it, not the back/spine content alongside it —
15
+ * front_top_full/front_bottom_full and back/spine are that full-wrap interpretation, located
16
+ * proportionally within the same image (see analyze_pixel_regions in image_regions.ts). Both
17
+ * interpretations are always sampled together (when dims are resolvable) so switching
18
+ * bg_image_coverage never needs a recompute — it just picks which pair to use. */
19
+ export interface ImageRegions {
20
+ front_top: RegionStats;
21
+ front_bottom: RegionStats;
22
+ front_top_full: RegionStats | null;
23
+ front_bottom_full: RegionStats | null;
24
+ back: RegionStats | null;
25
+ spine: RegionStats | null;
26
+ }
27
+ export declare const VECTOR_BG_AUTO_COLOR = "#e1d1c4";
9
28
  /** Replace straight quotes with typographic curly quotes */
10
29
  export declare function curly_quotes(text: string): string;
11
30
  /** Parse a font family name from user input. Accepts:
@@ -16,5 +35,5 @@ export declare function parse_font_family(text: string): string | null;
16
35
  /** Assemble the full flat schema object from form values. custom_fonts supplies the sniffed
17
36
  * serif/sans style of user-uploaded families (their bytes travel separately to the compiler).
18
37
  * Never reads a background image — that too is passed to the generators out-of-band. */
19
- export declare function build_schema(form: EmbedFormState, custom_fonts?: CustomFontStyle[]): Record<string, unknown>;
38
+ export declare function build_schema(form: EmbedFormState, custom_fonts?: CustomFontStyle[], image_regions?: ImageRegions | null): Record<string, unknown>;
20
39
  //# sourceMappingURL=form_schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form_schema.d.ts","sourceRoot":"","sources":["../src/form_schema.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAInD;yEACyE;AACzE,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAC,MAAM,CAAA;IACb,KAAK,EAAC,SAAS,CAAA;CAClB;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,IAAI,EAAC,MAAM,GAAE,MAAM,CAU/C;AAaD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAC,MAAM,GAAE,MAAM,GAAG,IAAI,CAe3D;AAmBD;;yFAEyF;AACzF,wBAAgB,YAAY,CACxB,IAAI,EAAC,cAAc,EACnB,YAAY,CAAC,EAAC,eAAe,EAAE,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuJxB"}
1
+ {"version":3,"file":"form_schema.d.ts","sourceRoot":"","sources":["../src/form_schema.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAInD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAA;AAG5C;yEACyE;AACzE,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAC,MAAM,CAAA;IACb,KAAK,EAAC,SAAS,CAAA;CAClB;AAED;;;;;;;;mFAQmF;AACnF,MAAM,WAAW,YAAY;IACzB,SAAS,EAAC,WAAW,CAAA;IACrB,YAAY,EAAC,WAAW,CAAA;IACxB,cAAc,EAAC,WAAW,GAAG,IAAI,CAAA;IACjC,iBAAiB,EAAC,WAAW,GAAG,IAAI,CAAA;IACpC,IAAI,EAAC,WAAW,GAAG,IAAI,CAAA;IACvB,KAAK,EAAC,WAAW,GAAG,IAAI,CAAA;CAC3B;AAMD,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAwD7C,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,IAAI,EAAC,MAAM,GAAE,MAAM,CAU/C;AAaD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAC,MAAM,GAAE,MAAM,GAAG,IAAI,CAe3D;AAmBD;;yFAEyF;AACzF,wBAAgB,YAAY,CACxB,IAAI,EAAC,cAAc,EACnB,YAAY,CAAC,EAAC,eAAe,EAAE,EAC/B,aAAa,CAAC,EAAC,YAAY,GAAG,IAAI,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmMxB"}