bookcover-core 0.8.0 → 0.9.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.
@@ -0,0 +1,5 @@
1
+ /** Raw SVG text for a bundled built-in icon, keyed by its bare id (without "builtin:" prefix) */
2
+ export declare function find_builtin_icon(id: string): string | undefined;
3
+ /** All bundled built-in icon ids, without the "builtin:" prefix */
4
+ export declare function list_builtin_icons(): string[];
5
+ //# sourceMappingURL=builtin_icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin_icons.d.ts","sourceRoot":"","sources":["../src/builtin_icons.ts"],"names":[],"mappings":"AAYA,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,EAAE,EAAC,MAAM,GAAE,MAAM,GAAG,SAAS,CAE9D;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,IAAG,MAAM,EAAE,CAE5C"}
@@ -0,0 +1,18 @@
1
+ // Built-in icons bundled directly into the build, for cases where a suitable icon isn't
2
+ // available on Iconify (or the app wants to ship its own drawing rather than depend on an
3
+ // external collection). Source SVGs live in generator/icon_svgs/ (open any one directly in an
4
+ // SVG editor and edit freely; they use currentColor for the fill, recolored at generate time
5
+ // the same way as a fetched Iconify icon — see recolor_svg() in icon_cache.ts) and are bundled
6
+ // into generated/icon_svgs_data.ts by .bin/gen_icon_svgs at build time. Referenced by id as
7
+ // "builtin:<id>" (e.g. "builtin:cross") — resolve_icon() in icon_cache.ts checks this map
8
+ // before falling back to an Iconify API fetch.
9
+ import { BUILTIN_ICON_SVGS } from './generated/icon_svgs_data.js';
10
+ /** Raw SVG text for a bundled built-in icon, keyed by its bare id (without "builtin:" prefix) */
11
+ export function find_builtin_icon(id) {
12
+ return BUILTIN_ICON_SVGS[id];
13
+ }
14
+ /** All bundled built-in icon ids, without the "builtin:" prefix */
15
+ export function list_builtin_icons() {
16
+ return Object.keys(BUILTIN_ICON_SVGS).sort();
17
+ }
18
+ //# sourceMappingURL=builtin_icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin_icons.js","sourceRoot":"","sources":["../src/builtin_icons.ts"],"names":[],"mappings":"AACA,wFAAwF;AACxF,0FAA0F;AAC1F,8FAA8F;AAC9F,6FAA6F;AAC7F,+FAA+F;AAC/F,4FAA4F;AAC5F,0FAA0F;AAC1F,+CAA+C;AAE/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAA;AAE/D,iGAAiG;AACjG,MAAM,UAAU,iBAAiB,CAAC,EAAS;IACvC,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,kBAAkB;IAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAA;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"data_file.d.ts","sourceRoot":"","sources":["../src/data_file.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AAyC9C;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,MAAM,EAAC,WAAW,EAClB,IAAI,EAAC,mBAAmB,EACxB,MAAM,EAAC,cAAc,EACrB,gBAAgB,EAAC,MAAM,EAAE,EACzB,kBAAkB,EAAC,MAAM,EAAE,EAC3B,kBAAkB,EAAC,MAAM,EAAE,EAC3B,kBAAkB,EAAC,MAAM,EAAE,EAC3B,oBAAoB,EAAC,MAAM,EAAE,EAC7B,kBAAkB,EAAC,MAAM,EAAE,EAC3B,iBAAiB,EAAC,MAAM,EAAE,EAC1B,uBAAuB,EAAC,MAAM,EAAE,EAChC,wBAAwB,EAAC,MAAM,EAAE,EACjC,UAAU,EAAC,SAAS,EACpB,cAAc,EAAC,MAAM,GAAG,IAAI,EAC5B,eAAe,EAAC,OAAO,EACvB,WAAW,EAAC,OAAO,EACnB,QAAQ,EAAC,OAAO,EAChB,WAAW,EAAC,OAAO,EACnB,oBAAoB,CAAC,EAAC,MAAM,GAC9B,MAAM,CAqMP"}
1
+ {"version":3,"file":"data_file.d.ts","sourceRoot":"","sources":["../src/data_file.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AAyC9C;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,MAAM,EAAC,WAAW,EAClB,IAAI,EAAC,mBAAmB,EACxB,MAAM,EAAC,cAAc,EACrB,gBAAgB,EAAC,MAAM,EAAE,EACzB,kBAAkB,EAAC,MAAM,EAAE,EAC3B,kBAAkB,EAAC,MAAM,EAAE,EAC3B,kBAAkB,EAAC,MAAM,EAAE,EAC3B,oBAAoB,EAAC,MAAM,EAAE,EAC7B,kBAAkB,EAAC,MAAM,EAAE,EAC3B,iBAAiB,EAAC,MAAM,EAAE,EAC1B,uBAAuB,EAAC,MAAM,EAAE,EAChC,wBAAwB,EAAC,MAAM,EAAE,EACjC,UAAU,EAAC,SAAS,EACpB,cAAc,EAAC,MAAM,GAAG,IAAI,EAC5B,eAAe,EAAC,OAAO,EACvB,WAAW,EAAC,OAAO,EACnB,QAAQ,EAAC,OAAO,EAChB,WAAW,EAAC,OAAO,EACnB,oBAAoB,CAAC,EAAC,MAAM,GAC9B,MAAM,CA6MP"}
package/dist/data_file.js CHANGED
@@ -39,6 +39,11 @@ function num(name, value) {
39
39
  */
40
40
  export function build_data_file(schema, dims, colors, font_body_family, font_title1_family, font_title2_family, font_title3_family, font_subtitle_family, font_author_family, font_blurb_family, font_spine_title_family, font_spine_author_family, font_sizes, image_filename, image_is_vector, has_barcode, has_icon, has_pattern, pattern_aspect_ratio) {
41
41
  const lines = ['// Auto-generated by paper_cover generator — do not edit', ''];
42
+ // Coil/wire bindings need extra clearance on the spine-adjacent edge of each panel for the
43
+ // punched holes (2mm gap + 5mm hole width). Kept in sync manually with 3d/src/geometry.ts's
44
+ // HOLE_LEFT_GAP_MM/HOLE_WIDTH_MM — the two packages don't share a workspace.
45
+ const is_spiral = schema.binding_type === 'paperback_coil' || schema.binding_type === 'paperback_wire';
46
+ const spiral_margin_mm = is_spiral ? 7 : 0;
42
47
  // Total dimensions
43
48
  lines.push('// Total dimensions');
44
49
  lines.push(mmval('total_width', dims.cover_total_width.toNumber()));
@@ -50,8 +55,8 @@ export function build_data_file(schema, dims, colors, font_body_family, font_tit
50
55
  lines.push(mmval('back_x', dims.cover_region_back.x.toNumber()));
51
56
  lines.push(mmval('spine_x', dims.cover_region_spine.x.toNumber()));
52
57
  lines.push(mmval('front_x', dims.cover_region_front.x.toNumber()));
53
- // Barcode region (x from canvas left, y from trim bottom)
54
- lines.push(mmval('barcode_x', dims.cover_region_barcode.x.toNumber()));
58
+ // Barcode region (x from canvas left, y from trim bottom) — pulled clear of the spiral margin
59
+ lines.push(mmval('barcode_x', dims.cover_region_barcode.x.toNumber() - spiral_margin_mm));
55
60
  lines.push(mmval('barcode_y', dims.cover_region_barcode.y.toNumber()));
56
61
  lines.push(mmval('barcode_w', dims.cover_region_barcode.w.toNumber()));
57
62
  lines.push(mmval('barcode_h', dims.cover_region_barcode.h.toNumber()));
@@ -113,7 +118,6 @@ export function build_data_file(schema, dims, colors, font_body_family, font_tit
113
118
  lines.push(color('color_blurb_bg', colors.blurb_background));
114
119
  lines.push(color('color_spine_title', colors.spine_title));
115
120
  lines.push(color('color_spine_author', colors.spine_author));
116
- lines.push(color('color_accent', colors.accent));
117
121
  lines.push('');
118
122
  // Typography
119
123
  lines.push('// Typography');
@@ -173,13 +177,16 @@ export function build_data_file(schema, dims, colors, font_body_family, font_tit
173
177
  const back_margin_mm = Math.max(face_height_mm * (schema.margin_back ?? 10) / 100, min_back_margin_mm);
174
178
  lines.push(mmval('front_margin', front_margin_mm));
175
179
  lines.push(mmval('back_margin', back_margin_mm));
176
- // Derived content areas
177
- lines.push(mmval('front_content_w', face_width_mm - front_margin_mm * 2));
180
+ lines.push(mmval('spiral_margin', spiral_margin_mm));
181
+ // Derived content areas — front narrows on the spine (left) side only, for spiral holes
182
+ lines.push(mmval('front_content_w', face_width_mm - front_margin_mm * 2 - spiral_margin_mm));
178
183
  lines.push(mmval('front_content_h', face_height_mm - front_margin_mm * 2));
179
184
  lines.push(mmval('back_content_w', face_width_mm - back_margin_mm * 2));
180
185
  lines.push(mmval('back_content_h', face_height_mm - back_margin_mm * 2));
181
- // Blurb width (% of face_width, clamped to back content width)
182
- const back_content_w_mm = face_width_mm - back_margin_mm * 2;
186
+ // Blurb width (% of face_width, clamped to back content width). The spiral margin is
187
+ // subtracted here too (not just from the centering dx in cover.typ) so a maxed-out
188
+ // blurb_width can't get pushed past the fore-edge margin once centering shifts it left.
189
+ const back_content_w_mm = face_width_mm - back_margin_mm * 2 - spiral_margin_mm;
183
190
  const blurb_w_mm = Math.min(face_width_mm * (schema.blurb_width ?? 80) / 100, back_content_w_mm);
184
191
  lines.push(mmval('blurb_width', blurb_w_mm));
185
192
  lines.push(mmval('blurb_padding', blurb_padding_mm));
@@ -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
@@ -14,7 +14,6 @@ export interface ResolvedColors {
14
14
  blurb_background: string | null;
15
15
  spine_title: string;
16
16
  spine_author: string;
17
- accent: string;
18
17
  }
19
18
  export type PaletteScheme = 'triadic' | 'analogous' | 'split_complementary' | 'complementary' | 'accent_tones';
20
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"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"}
package/dist/design.js CHANGED
@@ -8,8 +8,6 @@ import { hex_override_to_hsl } from './colors.js';
8
8
  // these two are the only values with nothing to contrast against yet.
9
9
  const COLOR_DEFAULTS = {
10
10
  front_background: 'hsl(0deg, 0%, 100%)', // K=0% (white) — imageless, colorless base case
11
- accent: 'hsl(0deg, 0%, 20%)', // K=80% — spine_background when spine_color is
12
- // entirely unset (not even null)
13
11
  };
14
12
  /** Parse an hsl(Hdeg, S%, L%) string into a chroma Color instance */
15
13
  function from_hsl(hsl_str) {
@@ -122,6 +120,14 @@ function auto_contrast_text(bg) {
122
120
  ? 'hsl(0deg, 0%, 100%)' // white — better on dark backgrounds
123
121
  : 'hsl(0deg, 0%, 10%)'; // near-black (K90% for print)
124
122
  }
123
+ /** Same contrast choice as auto_contrast_text, but hex-in/hex-out — for callers (pick_vivid_tint)
124
+ * that need to stay in hex rather than the hsl(Hdeg, S%, L%) string format */
125
+ function auto_contrast_hex(bg_hex) {
126
+ const white = chroma.hsl(0, 0, 1);
127
+ const black = chroma.hsl(0, 0, 0.1);
128
+ const bg = chroma(bg_hex);
129
+ return (contrast_ratio(white, bg) >= contrast_ratio(black, bg) ? white : black).hex();
130
+ }
125
131
  // Saturation clamp bands for image-derived colors — floor keeps even a fairly gray region
126
132
  // visibly tinted, ceiling avoids inventing more color than the source photo actually has
127
133
  const TINT_SATURATION_RANGE = [0.35, 0.7];
@@ -266,12 +272,8 @@ const EXTREME_BACKDROP_LIGHTNESS = [0.1, 0.9];
266
272
  */
267
273
  export function pick_vivid_tint(candidates, backdrop, min_contrast = 4.5) {
268
274
  const backdrop_hex = region_hex(backdrop);
269
- if (backdrop.lightness < EXTREME_BACKDROP_LIGHTNESS[0] || backdrop.lightness > EXTREME_BACKDROP_LIGHTNESS[1]) {
270
- const white = chroma.hsl(0, 0, 1);
271
- const black = chroma.hsl(0, 0, 0.1);
272
- const bg = chroma(backdrop_hex);
273
- return (contrast_ratio(white, bg) >= contrast_ratio(black, bg) ? white : black).hex();
274
- }
275
+ if (backdrop.lightness < EXTREME_BACKDROP_LIGHTNESS[0] || backdrop.lightness > EXTREME_BACKDROP_LIGHTNESS[1])
276
+ return auto_contrast_hex(backdrop_hex);
275
277
  const TIE_EPSILON = 0.01;
276
278
  const grayscale = { hue: 0, saturation: 0, lightness: 0.5, lightness_spread: 0 };
277
279
  const pool = [...candidates, grayscale];
@@ -280,7 +282,12 @@ export function pick_vivid_tint(candidates, backdrop, min_contrast = 4.5) {
280
282
  // band like a real candidate would turn it into a hue=0 (red) color instead of neutral
281
283
  const sat = region === grayscale ? 0
282
284
  : Math.min(TINT_SATURATION_RANGE[1], Math.max(TINT_SATURATION_RANGE[0], region.saturation));
283
- const hex = tinted_contrast_text(region.hue, sat, backdrop_hex, min_contrast);
285
+ // The grayscale fallback goes straight to black/white rather than through
286
+ // tinted_contrast_text — at 0 saturation that can plateau at an actual mid-gray (l=0.5)
287
+ // whenever plain gray already clears min_contrast, which reads as washed-out, not neutral
288
+ const hex = region === grayscale
289
+ ? auto_contrast_hex(backdrop_hex)
290
+ : tinted_contrast_text(region.hue, sat, backdrop_hex, min_contrast);
284
291
  const lightness = chroma(hex).hsl()[2] || 0;
285
292
  let deviation = Math.abs(lightness - 0.5);
286
293
  // The grayscale entry is the deliberate neutral fallback — its 0 saturation must never
@@ -415,7 +422,6 @@ function image_backdrop_for_position(position, coverage, regions, bg_region) {
415
422
  * auto-contrast against its real backdrop when there's no image (or no tint available).
416
423
  */
417
424
  export function resolve_colors(schema, image_regions) {
418
- const accent = COLOR_DEFAULTS.accent;
419
425
  const all_regions = image_regions ? all_image_regions(image_regions) : [];
420
426
  // Front background: explicit bg_color wins; else complement the image; else a neutral tan
421
427
  // for a vector background (no pixels to sample); else plain white
@@ -468,8 +474,8 @@ export function resolve_colors(schema, image_regions) {
468
474
  front_gradient_end: shift_hue(front_bg, -35),
469
475
  // Back background falls back to front background
470
476
  back_background: front_bg,
471
- // Spine background: null = no separate spine color; undefined = fall back to accent
472
- spine_background: schema.spine_color === undefined ? accent : schema.spine_color,
477
+ // Spine background: null (or unset) = no separate spine color (spine uses primary)
478
+ spine_background: schema.spine_color ?? null,
473
479
  front_title1: title1,
474
480
  front_title2: title2,
475
481
  front_title3: title3,
@@ -479,7 +485,6 @@ export function resolve_colors(schema, image_regions) {
479
485
  blurb_background,
480
486
  spine_title: schema.spine_title_color ?? spine_text,
481
487
  spine_author: schema.spine_author_color ?? spine_text,
482
- accent,
483
488
  };
484
489
  }
485
490
  // Base font: always Noto Serif (downloaded at runtime; not bundled with typst)
@@ -1 +1 @@
1
- {"version":3,"file":"design.js","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"AACA,kFAAkF;AAElF,OAAO,MAAM,MAAM,WAAW,CAAA;AAE9B,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAA;AAG/C,+EAA+E;AAC/E,uFAAuF;AACvF,4FAA4F;AAC5F,4FAA4F;AAC5F,sEAAsE;AACtE,MAAM,cAAc,GAAG;IACnB,gBAAgB,EAAE,qBAAqB,EAAI,iDAAiD;IAC5F,MAAM,EAAE,oBAAoB,EAAe,+CAA+C;IAC9C,iCAAiC;CAChF,CAAA;AAoBD,qEAAqE;AACrE,SAAS,QAAQ,CAAC,OAAc;IAC5B,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;IAC5F,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAA;IACxD,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;AACvF,CAAC;AAED,4EAA4E;AAC5E,SAAS,WAAW,CAAC,GAAU;IAC3B,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC/D,CAAC;AAED,uEAAuE;AACvE,SAAS,MAAM,CAAC,CAAc;IAC1B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACzB,mDAAmD;IACnD,OAAO,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;AAC5F,CAAC;AAED,uFAAuF;AACvF,SAAS,SAAS,CAAC,OAAc,EAAE,OAAc;IAC7C,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;AAC3E,CAAC;AAID,mEAAmE;AACnE,MAAM,mBAAmB,GAA4D;IACjF,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IACtB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5B,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;IAClC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;CAC1B,CAAA;AAED,2FAA2F;AAC3F,0FAA0F;AAC1F,MAAM,wBAAwB,GAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAC7D,MAAM,uBAAuB,GAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE7D,+FAA+F;AAC/F,+FAA+F;AAC/F,wEAAwE;AACxE,MAAM,YAAY,GAAqC;IACnD,EAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAC;IACzB,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAC;IAC3B,EAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAC;CAC7B,CAAA;AACD,MAAM,eAAe,GAAG,GAAG,CAAA,CAAC,sEAAsE;AAClG,MAAM,+BAA+B,GAAG,IAAI,CAAA,CAAC,kDAAkD;AAC/F,MAAM,2BAA2B,GAAG,IAAI,CAAA,CAAC,yDAAyD;AAClG,MAAM,yBAAyB,GAAG,IAAI,CAAA;AACtC,MAAM,4BAA4B,GAAG,IAAI,CAAA,CAAC,6DAA6D;AAEvG;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,IAAW,EAAE,KAAY;IACpD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,CAAC,MAAM,EAAE,AAAD,EAAG,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAA;IAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAA;IACvB,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,+BAA+B,CAAA;IAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,4BAA4B,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAChH,MAAM,MAAM,GAAY,EAAE,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACtG,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACrE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAW,EAAE,KAAY,EAAE,MAAoB;IAC5E,IAAI,MAAM,KAAK,cAAc;QAAE,OAAO,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACxE,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;IACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAA;IACvB,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAY,EAAE,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC1C,uFAAuF;QACvF,sFAAsF;QACtF,0DAA0D;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACpC,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC;cAC/B,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QACvE,MAAM,KAAK,GAAG,uBAAuB,CAAC,CAAC,CAAC;cAClC,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QACrE,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CACd,uBAAuB,CAAC,CAAC,CAAC,EAC1B,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC,CACrE,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,gFAAgF;AAChF,SAAS,OAAO,CAAC,CAAc;IAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAA;IACvB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACxC,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IACxC,OAAO,cAAc,IAAI,cAAc,CAAA;AAC3C,CAAC;AAED,gGAAgG;AAChG,SAAS,kBAAkB,CAAC,EAAS;IACjC,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,qBAAqB,CAAE,qCAAqC;QAC9D,CAAC,CAAC,oBAAoB,CAAA,CAAG,8BAA8B;AAC/D,CAAC;AAcD,0FAA0F;AAC1F,yFAAyF;AACzF,MAAM,qBAAqB,GAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAC1D,MAAM,qBAAqB,GAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAC3D,MAAM,eAAe,GAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACpD,MAAM,cAAc,GAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACnD,4FAA4F;AAC5F,gFAAgF;AAChF,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAC/B,8FAA8F;AAC9F,+FAA+F;AAC/F,iGAAiG;AACjG,iGAAiG;AACjG,4FAA4F;AAC5F,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAChC,8FAA8F;AAC9F,kFAAkF;AAClF,MAAM,+BAA+B,GAAG,IAAI,CAAA;AAC5C,6FAA6F;AAC7F,0FAA0F;AAC1F,2FAA2F;AAC3F,+FAA+F;AAC/F,0FAA0F;AAC1F,mFAAmF;AACnF,+FAA+F;AAC/F,gGAAgG;AAChG,8FAA8F;AAC9F,oCAAoC;AACpC,MAAM,wBAAwB,GAAG,IAAI,CAAA;AACrC,MAAM,oBAAoB,GAAoB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACrD,MAAM,2BAA2B,GAAG,IAAI,CAAA;AAExC,kDAAkD;AAClD,MAAM,UAAU,UAAU,CAAC,MAAkB;IACzC,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAA;AAC5E,CAAC;AAED;;8FAE8F;AAC9F,MAAM,UAAU,aAAa,CAAC,CAAa,EAAE,CAAa;IACtD,MAAM,MAAM,GAAG,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAA;IAClD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAA;IACzF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAA;IACzF,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;IAC1D,OAAO;QACH,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QACvC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAC7C,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;QAC1C,sFAAsF;QACtF,iFAAiF;QACjF,gBAAgB,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;KAC5G,CAAA;AACL,CAAC;AAED,+FAA+F;AAC/F,SAAS,cAAc,CAAC,CAAc,EAAE,CAAc;IAClD,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAA;IACxB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAU,EAAE,UAAiB,EAAE,MAAa,EAAE,YAAY,GAAG,GAAG;IACjG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACzB,MAAM,SAAS,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IAC9D,MAAM,WAAW,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAElE,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,YAAY;QAChC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IAE/B,0FAA0F;IAC1F,2FAA2F;IAC3F,MAAM,aAAa,GAAG,CAAC,OAAc,EAAgB,EAAE;QACnD,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,YAAY;YAAE,OAAO,IAAI,CAAA;QACpD,IAAI,IAAI,GAAG,OAAO,CAAA;QAClB,IAAI,GAAG,GAAG,GAAG,CAAA;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,YAAY;gBAAE,IAAI,GAAG,GAAG,CAAA;;gBAC3C,GAAG,GAAG,GAAG,CAAA;QAClB,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAC/B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACjF,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC,IAAc,CAAC,CAAC,GAAG,EAAE,CAAA;IAC1D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAA;IAChD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IACtE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAC7B,CAAC;AAED,8FAA8F;AAC9F,+FAA+F;AAC/F,yFAAyF;AACzF,MAAM,eAAe,GAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;AACjD,6FAA6F;AAC7F,gGAAgG;AAChG,8EAA8E;AAC9E,MAAM,wBAAwB,GAAG,IAAI,CAAA;AACrC,MAAM,4BAA4B,GAAG,GAAG,CAAA;AACxC,+FAA+F;AAC/F,MAAM,aAAa,GAAG,GAAG,CAAA;AAEzB;mGACmG;AACnG,SAAS,kBAAkB,CAAC,GAAU,EAAE,UAAiB,EAAE,mBAA0B;IACjF,IAAI,mBAAmB,GAAG,4BAA4B;QAAE,OAAO,KAAK,CAAA;IACpE,MAAM,OAAO,GAAG,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAA;IACtE,OAAO,OAAO,IAAI,UAAU,IAAI,wBAAwB,CAAA;AAC5D,CAAC;AAED,gGAAgG;AAChG,MAAM,0BAA0B,GAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE9D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,UAAwB,EAAE,QAAoB,EAAE,YAAY,GAAG,GAAG;IAC9F,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,QAAQ,CAAC,SAAS,GAAG,0BAA0B,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACnC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;QAC/B,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAA;IACzF,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAA;IACxB,MAAM,SAAS,GAAe,EAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAC,CAAA;IAC1F,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,EAAE,SAAS,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC7B,sFAAsF;QACtF,uFAAuF;QACvF,MAAM,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QAC/F,MAAM,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QAC7E,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,CAAA;QACzC,uFAAuF;QACvF,sFAAsF;QACtF,4DAA4D;QAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC;YAAE,SAAS,IAAI,aAAa,CAAA;QACtG,OAAO,EAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACF,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,WAAW,CAAA;QACjE,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW;eAC3E,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAA;QACxD,IAAI,cAAc,IAAI,oBAAoB;YAAE,IAAI,GAAG,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAA;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,UAAwB,EAAE,gBAAwB;IAC9E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAA;IACrF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjF,uFAAuF;IACvF,0FAA0F;IAC1F,0FAA0F;IAC1F,gFAAgF;IAChF,uFAAuF;IACvF,+EAA+E;IAC/E,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,GAAG,oBAAoB,IAAI,MAAM,CAAC,UAAU,GAAG,+BAA+B,CAAA;QACtG,MAAM,UAAU,GAAG,KAAK,GAAG,wBAAwB;eAC5C,MAAM,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC;eAC9E,MAAM,CAAC,UAAU,GAAG,2BAA2B,CAAA;QACtD,IAAI,UAAU,IAAI,UAAU;YACxB,OAAO,SAAS,CAAA;IACxB,CAAC;IACD,yFAAyF;IACzF,oFAAoF;IACpF,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,GAAG,+BAA+B,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/F,IAAI,CAAC,GAAG,gBAAgB,CAAA;IACxB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAA;QAC3E,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAC/C,CAAC;AAED,uCAAuC;AACvC,EAAE;AACF,wFAAwF;AACxF,2FAA2F;AAC3F,4FAA4F;AAC5F,8FAA8F;AAC9F,wFAAwF;AACxF,8FAA8F;AAC9F,wCAAwC;AAExC,6FAA6F;AAC7F,6FAA6F;AAC7F,iGAAiG;AACjG,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAA;AAoB7C;+EAC+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,OAAoB;IAClD,OAAO;QACH,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY;QACvC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAA;AACL,CAAC;AAED;sCACsC;AACtC,SAAS,eAAe,CAAC,CAAc;IACnC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACzB,OAAO,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAC,CAAA;AAC1E,CAAC;AAED,gGAAgG;AAChG,4FAA4F;AAC5F,wEAAwE;AACxE,MAAM,yBAAyB,GAAiC,EAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAA;AAChG,2FAA2F;AAC3F,+FAA+F;AAC/F,wCAAwC;AACxC,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAElC,4FAA4F;AAC5F,SAAS,gBAAgB,CAAC,QAAsB,EAAE,QAAoB;IAClE,OAAO,yBAAyB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,gBAAgB,GAAG,uBAAuB,CAAA;AACpG,CAAC;AAED;;8CAE8C;AAC9C,SAAS,UAAU,CAAC,QAAe,EAAE,OAAoB;IACrD,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,iBAAiB;QAC1E,OAAO,EAAC,GAAG,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAC,CAAA;IAC3E,OAAO,EAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAC,CAAA;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,2BAA2B,CAChC,QAAsB,EACtB,QAAe,EACf,OAAoB,EACpB,SAAqB;IAErB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;QAChD,OAAO,SAAS,CAAA;IACpB,IAAI,QAAQ,KAAK,eAAe;QAC5B,OAAO,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAA;IAChE,MAAM,EAAC,GAAG,EAAE,MAAM,EAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACnD,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,GAAG,CAAA;IAClC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IACxC,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB,EAAE,aAAkC;IACjF,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAA;IACpC,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEzE,0FAA0F;IAC1F,kEAAkE;IAClE,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACvD,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;gBAChD,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;IAEvC,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAA;IAEpD,uFAAuF;IACvF,iFAAiF;IACjF,MAAM,cAAc,GAAG,aAAa,IAAI,QAAQ,KAAK,MAAM,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,KAAK;QACpG,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAC;QAChG,CAAC,CAAC,SAAS,CAAA;IAEf,0FAA0F;IAC1F,gEAAgE;IAChE,MAAM,eAAe,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,CAAC,QAAsB,EAAgB,EAAE;QACtD,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;QAC/B,MAAM,EAAC,GAAG,EAAE,MAAM,EAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,CAAA;QAChG,OAAO,eAAe,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzF,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;WACnF,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAA;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAA;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;WAC1F,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;WACpF,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAEnC,wFAAwF;IACxF,0FAA0F;IAC1F,0CAA0C;IAC1C,MAAM,cAAc,GAAG,cAAc,EAAE,IAAI,IAAI,cAAc,CAAA;IAC7D,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,CAAA;IACxD,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI;QAC1D,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CACxC,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;IAE9E,yFAAyF;IACzF,wDAAwD;IACxD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;QACvE,CAAC,CAAC,cAAc,EAAE,KAAK,IAAI,cAAc,CAAA;IAC7C,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;IAE7D,OAAO;QACH,gBAAgB,EAAE,QAAQ;QAC1B,6DAA6D;QAC7D,oBAAoB,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7C,kBAAkB,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC5C,iDAAiD;QACjD,eAAe,EAAE,QAAQ;QACzB,oFAAoF;QACpF,gBAAgB,EAAE,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;QAChF,YAAY,EAAE,MAAM;QACpB,YAAY,EAAE,MAAM;QACpB,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,MAAM;QACpB,KAAK;QACL,gBAAgB;QAChB,WAAW,EAAE,MAAM,CAAC,iBAAiB,IAAI,UAAU;QACnD,YAAY,EAAE,MAAM,CAAC,kBAAkB,IAAI,UAAU;QACrD,MAAM;KACT,CAAA;AACL,CAAC;AAED,+EAA+E;AAC/E,MAAM,SAAS,GAAG,YAAY,CAAA;AAe9B;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACnD,MAAM,IAAI,GAAc,EAAC,MAAM,EAAE,SAAS,EAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAA;IACzC,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAA;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAA;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAA;IAC7C,qEAAqE;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAA;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAA;IACvC,gDAAgD;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAA;IACrD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,IAAI,QAAQ,CAAA;IACzD,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAC,CAAA;AAC7F,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,MAAkB;IACpD,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAC9B,CAAA;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAc,EAAE,OAAc;IACrD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AAC3E,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,OAAO,CAAC,CAAQ,EAAE,CAAQ,EAAE,CAAQ;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AACvE,CAAC"}
1
+ {"version":3,"file":"design.js","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** Raw SVG text for each bundled built-in icon, keyed by id, using currentColor so
2
+ * resolve_icon() in icon_cache.ts can recolor them like any Iconify icon */
3
+ export declare const BUILTIN_ICON_SVGS: Record<string, string>;
4
+ //# sourceMappingURL=icon_svgs_data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon_svgs_data.d.ts","sourceRoot":"","sources":["../../src/generated/icon_svgs_data.ts"],"names":[],"mappings":"AAGA;6EAC6E;AAC7E,eAAO,MAAM,iBAAiB,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAEnD,CAAA"}
@@ -0,0 +1,8 @@
1
+ // GENERATED by .bin/gen_icon_svgs from generator/icon_svgs/*.svg — do not edit
2
+ // Edit the source .svg files instead, then rerun the generator build
3
+ /** Raw SVG text for each bundled built-in icon, keyed by id, using currentColor so
4
+ * resolve_icon() in icon_cache.ts can recolor them like any Iconify icon */
5
+ export const BUILTIN_ICON_SVGS = {
6
+ "cross": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<path d=\"M0 0h24v24H0z\" fill=\"none\" />\n\t<path fill=\"currentColor\" d=\"m 11,2 h 2 v 5 h 5 V 9 H 13 V 22 H 11 V 9 H 6 V 7 h 5 z\" />\n</svg>",
7
+ };
8
+ //# sourceMappingURL=icon_svgs_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon_svgs_data.js","sourceRoot":"","sources":["../../src/generated/icon_svgs_data.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,qEAAqE;AAErE;6EAC6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACpD,OAAO,EAAE,wNAAwN;CACpO,CAAA"}
@@ -2,7 +2,7 @@
2
2
  // Edit the source .typ files instead, then rerun the generator build
3
3
  /** The cover.typ / _helpers.typ templates baked in at this package version */
4
4
  export const DEFAULT_TEMPLATES = {
5
- cover: "\n// Book cover template — receives all variables from _data.typ\n#import \"_data.typ\": *\n\n// -- Page setup --\n#set page(\n width: total_width,\n height: total_height,\n margin: 0mm,\n)\n\n#set text(font: font_body_family)\n#set quote(block: true)\n#show quote: set pad(x: 3em)\n\n// ============================================================\n// Helper functions\n// ============================================================\n\n#import \"_helpers.typ\": *\n\n\n// ============================================================\n// Layer 1 — Background fills\n// ============================================================\n\n#place(\n top + left,\n rect(\n width: total_width,\n height: total_height,\n fill: if has_front_gradient {\n gradient.linear(\n (color_front_gradient_start, 0%),\n (color_front_bg, 30%),\n (color_front_bg, 45%),\n (color_front_gradient_end, 100%),\n angle: -40deg,\n )\n } else {\n color_front_bg\n },\n ),\n)\n\n\n#if has_pattern {\n let tiled = pattern(\n size: (pattern_tile_w, pattern_tile_h),\n image(\"pattern.svg\", width: pattern_tile_w, height: pattern_tile_h),\n )\n place(\n top + left,\n rect(width: total_width, height: total_height, fill: tiled),\n )\n}\n\n\n// ============================================================\n// Layer 2 — Background image\n// ============================================================\n\n#if has_image {\n if image_coverage == \"full\" {\n // Full spread: image covers entire canvas (back + spine + front)\n place(\n top + left,\n dx: 0mm,\n dy: 0mm,\n image(\n image_filename,\n width: total_width,\n height: total_height,\n fit: if image_is_vector { \"stretch\" } else { \"cover\" },\n ),\n )\n } else if image_coverage == \"painted\" {\n // Painted: image inset on front cover — 15mm margin horizontally and from bottom, 50% trim height\n let painted_w = face_width - 30mm\n let painted_h = face_height * 0.5 // sync: index.ts painted_h = face_height * 0.5\n place(\n top + left,\n dx: front_x + 15mm,\n dy: bleed + face_height * (1/3),\n image(\n image_filename,\n width: painted_w,\n height: painted_h,\n fit: \"stretch\", // Should be exact but just in case, ensures full frame visible\n ),\n )\n } else if image_coverage == \"feature\" {\n // Feature: same size and position as painted but with rounded corners via box clip\n let painted_w = face_width - 30mm\n let painted_h = face_height * 0.5\n place(\n top + left,\n dx: front_x + 15mm,\n dy: bleed + face_height * (1/3),\n box(\n width: painted_w,\n height: painted_h,\n radius: 6mm,\n clip: true,\n image(\n image_filename,\n width: painted_w,\n height: painted_h,\n fit: \"cover\",\n ),\n ),\n )\n } else if image_coverage == \"front_partial\" {\n // Lower 2/3: image covers the full front face width, bottom 2/3 of height, flush to the bottom trim edge\n let w = face_width\n let h = face_height * (2 / 3)\n place(\n top + left,\n dx: front_x,\n dy: bleed + face_height - h,\n image(\n image_filename,\n width: w,\n height: h,\n fit: \"cover\",\n ),\n )\n } else {\n // Front only: image covers the front panel including all bleed margins\n place(\n top + left,\n dx: front_x,\n dy: 0mm,\n image(\n image_filename,\n width: face_width + bleed,\n height: total_height,\n fit: if image_is_vector { \"stretch\" } else { \"cover\" },\n ),\n )\n }\n}\n\n\n// ============================================================\n// Layer 2b — Icon on front cover\n// ============================================================\n\n#if has_icon {\n let icon_size = calc.min(face_height * 0.4, face_width * 0.8)\n if icon_mode != \"center\" {\n icon_size = calc.min(face_height * 0.5, face_width * 0.8)\n }\n // Apply user-controlled size multiplier (1.0 = default)\n icon_size = icon_size * icon_size_mod\n let offset_icon_dx = front_x + (face_width - icon_size) + (icon_size * 0.15)\n let offset_icon_dy = bleed * -1 + (icon_size * 0.15)\n\n // Place ghost icons first (if any) so below main one\n if icon_mode == \"echo\" {\n place(\n bottom + left,\n dx: offset_icon_dx + icon_size * 0.1,\n dy: offset_icon_dy - icon_size * 0.15,\n image(\"icon_ghost.svg\", width: icon_size, height: icon_size),\n )\n place(\n bottom + left,\n dx: offset_icon_dx - icon_size * 0.1,\n dy: offset_icon_dy + icon_size * 0.1,\n image(\"icon_ghost2.svg\", width: icon_size, height: icon_size),\n )\n }\n\n if icon_mode == \"center\" {\n // Center — large icon centered horizontally, positioned in the lower/mid section\n place(\n bottom + left,\n dx: front_x + (face_width - icon_size) / 2,\n dy: (face_height * 0.2 + bleed) * -1,\n image(\"icon_main.svg\", width: icon_size, height: icon_size),\n )\n } else {\n // Offset/echo: large icon offset towards bottom-right, slightly overflowing the trim edge\n place(\n bottom + left,\n dx: offset_icon_dx,\n dy: offset_icon_dy,\n image(\"icon_main.svg\", width: icon_size, height: icon_size),\n )\n }\n}\n\n\n// ============================================================\n// Layer 2c — Spine background\n// ============================================================\n\n// Spine background (only when spread has a spine) — drawn after pattern so it covers it\n#if has_spine and color_spine_bg != none {\n place(\n top + left,\n dx: spine_x,\n dy: 0mm,\n rect(width: spine_width, height: total_height, fill: color_spine_bg),\n )\n}\n\n\n// ============================================================\n// Layer 3 — Back panel content\n// ============================================================\n\n// back_margin, back_content_w imported from _data.typ\n\n// Blurb container box with background color and 1cm padding around the text\n// Content is scaled down if it would overflow the available back-panel height\n#if has_blurb {\n let blurb_content = {\n set par(justify: true) if blurb_justify\n set par(leading: 1em * blurb_spacing)\n // Compact heading styles for a small blurb box — size and leading are hardcoded\n // independent of blurb_spacing, since headings rarely wrap and need tight leading\n show heading.where(level: 1): it => {\n set block(above: 2em, below: 1em)\n set text(size: 1.3em)\n set par(leading: 0.5em)\n it\n }\n show heading.where(level: 2): it => {\n set block(above: 2em, below: 1em)\n set text(size: 1.15em)\n set par(leading: 0.5em)\n it\n }\n align(blurb_alignment, text(\n font: font_blurb_family,\n size: fs_back_blurb * blurb_size,\n fill: color_blurb,\n blurb,\n ))\n }\n let blurb_max_h = back_content_h - blurb_padding * 2\n place(\n top + left,\n dx: back_x + (face_width - blurb_width) / 2,\n dy: bleed + back_margin,\n rect(\n width: blurb_width,\n fill: color_blurb_bg,\n stroke: none,\n radius: 1.5mm,\n inset: blurb_padding,\n context {\n let avail_w = blurb_width - blurb_padding * 2\n let natural = measure(blurb_content, width: avail_w)\n if natural.height > blurb_max_h {\n let ratio = blurb_max_h / natural.height\n scale(x: ratio * 100%, y: ratio * 100%, reflow: true, blurb_content)\n } else {\n blurb_content\n }\n },\n ),\n )\n}\n\n// ISBN barcode — position and size from printing-services cover_region_barcode\n#if has_barcode {\n place(\n bottom + left,\n dx: barcode_x,\n dy: barcode_y * -1,\n image(\"barcode.svg\", width: barcode_w, height: barcode_h),\n )\n}\n\n// ============================================================\n// Layer 4 — Spine content\n// ============================================================\n\n#if has_spine and has_spine_text and fs_spine_title > 0mm {\n // Title rotated along spine (bottom-to-top reading direction).\n // place() anchors the unrotated bounding box top-left, so we subtract\n // half the unrotated dimensions to keep the visual center on the spine.\n place(\n top + left,\n dx: spine_x + spine_width * 0.5 - face_height * 0.4,\n dy: bleed + face_height * 0.5 - spine_width * 0.5,\n rotate(\n 90deg,\n origin: center,\n box(\n width: face_height * 0.8,\n height: spine_width,\n align(\n center + horizon,\n // Shrink title + author together as one unit if they overflow the spine length\n shrink-to-width(\n stack(\n dir: ltr,\n spacing: spine_width * 0.3,\n text(\n font: font_spine_title_family,\n size: fs_spine_title * spine_title_size_mod,\n fill: color_spine_title,\n weight: spine_title_weight,\n style: if spine_title_italic { \"italic\" } else { \"normal\" },\n spine_title,\n ),\n if has_author and fs_spine_author > 0mm {\n text(\n font: font_spine_author_family,\n size: fs_spine_author * spine_author_size_mod,\n fill: color_spine_author,\n weight: spine_author_weight,\n style: if spine_author_italic { \"italic\" } else { \"normal\" },\n spine_author,\n )\n },\n ),\n ),\n ),\n ),\n ),\n )\n}\n\n// Small icon at the bottom of the spine (when spine is wide enough for text)\n#if has_spine_icon {\n let spine_icon_size = spine_width * 0.7\n let spine_icon_side_margin = (spine_width - spine_icon_size) / 2\n // Bottom margin is twice the side margin\n let spine_icon_bottom_margin = spine_icon_side_margin * 2\n place(\n top + left,\n dx: spine_x + spine_icon_side_margin,\n dy: bleed + face_height - spine_icon_size - spine_icon_bottom_margin,\n image(\"icon_spine.svg\", width: spine_icon_size, height: spine_icon_size),\n )\n}\n\n// ============================================================\n// Layer 5 — Front panel content\n// ============================================================\n\n// front_margin, front_content_w imported from _data.typ\n\n// Base font size — proportional to trim height, multiplied by per-title size modifier\n#let fs_title_base = face_height * 0.05\n#let fs_subtitle = face_height * 0.025 * subtitle_size\n#let fs_author = face_height * 0.035 * author_size\n\n// Render a single title line with its per-title styling, shrunk to fit if too wide\n#let render_title(txt, font_family, size_mod, weight, is_italic, color) = {\n if txt != \"\" {\n box(\n width: front_content_w,\n shrink-to-width(\n align(title_alignment, text(\n font: font_family,\n size: fs_title_base * size_mod,\n fill: color,\n weight: weight,\n style: if is_italic { \"italic\" } else { \"normal\" },\n txt,\n )),\n ),\n )\n }\n}\n\n// Render each title line, then filter out empty ones so they don't create stack spacing gaps\n#let title_lines_rendered = stack(\n dir: ttb,\n spacing: face_height * title_spacing / 100,\n ..(\n render_title(title1, font_title1_family, title1_size, title1_weight, title1_italic, color_front_title1),\n render_title(title2, font_title2_family, title2_size, title2_weight, title2_italic, color_front_title2),\n render_title(title3, font_title3_family, title3_size, title3_weight, title3_italic, color_front_title3),\n ).filter(x => x != none),\n)\n\n// All subtitle lines in one container — shrink-to-width scales them all together uniformly\n// text() wraps shrink-to-width so inner content inherits the scaled size (no explicit size inside)\n#let subtitle_lines_rendered = text(\n font: font_subtitle_family,\n size: fs_subtitle,\n weight: subtitle_weight,\n style: if subtitle_italic { \"italic\" } else { \"normal\" },\n fill: color_front_subtitle,\n box(\n width: front_content_w,\n shrink-to-width(\n stack(\n dir: ttb,\n spacing: face_height * subtitle_spacing / 100,\n ..subtitle_lines.map(line => align(subtitle_alignment, line)),\n )\n ),\n ),\n)\n\n// Author styled text — single line, shrunk to fit width\n#let author_rendered = box(\n width: front_content_w,\n shrink-to-width(\n align(author_alignment, text(\n font: font_author_family,\n size: fs_author,\n fill: color_front_author,\n weight: author_weight,\n style: if author_italic { \"italic\" } else { \"normal\" },\n author,\n )),\n ),\n)\n\n// Title group: stacked title lines\n#let title_group = stack(\n dir: ttb,\n spacing: face_height * title_spacing / 100,\n title_lines_rendered,\n)\n\n// Check which elements belong to each position box\n#let top_has_title = title_position == \"top\"\n#let top_has_subtitle = has_subtitle and subtitle_position == \"top\"\n#let top_has_author = has_author and author_position == \"top\"\n#let top_has_any = top_has_title or top_has_subtitle or top_has_author\n\n#let mid_has_title = title_position == \"middle\"\n#let mid_has_subtitle = has_subtitle and subtitle_position == \"middle\"\n#let mid_has_author = has_author and author_position == \"middle\"\n#let mid_has_any = mid_has_title or mid_has_subtitle or mid_has_author\n\n#let bot_has_title = title_position == \"bottom\"\n#let bot_has_subtitle = has_subtitle and subtitle_position == \"bottom\"\n#let bot_has_author = has_author and author_position == \"bottom\"\n#let bot_has_any = bot_has_title or bot_has_subtitle or bot_has_author\n\n// Build a content group for a position box (order within box: title | subtitle | author)\n// Each element gets its own vertical margins inside the box\n#let make_pos_box(has_t, has_s, has_a) = box(\n width: front_content_w,\n stack(\n dir: ttb,\n if has_t { v(face_height * title_margin_top / 100) },\n if has_t { title_group },\n if has_t { v(face_height * title_margin_bottom / 100) },\n if has_s { v(face_height * subtitle_margin_top / 100) },\n if has_s { subtitle_lines_rendered },\n if has_s { v(face_height * subtitle_margin_bottom / 100) },\n if has_a { v(face_height * author_margin_top / 100) },\n if has_a { author_rendered },\n if has_a { v(face_height * author_margin_bottom / 100) },\n ),\n)\n\n// Place each non-empty position box on the front panel (within panel margin on all sides)\n#if top_has_any {\n place(\n top + left,\n dx: front_x + front_margin,\n dy: bleed + front_margin,\n make_pos_box(top_has_title, top_has_subtitle, top_has_author),\n )\n}\n#if mid_has_any {\n place(\n horizon + left,\n dx: front_x + front_margin,\n make_pos_box(mid_has_title, mid_has_subtitle, mid_has_author),\n )\n}\n#if bot_has_any {\n place(\n bottom + left,\n dx: front_x + front_margin,\n dy: (bleed + front_margin) * -1,\n make_pos_box(bot_has_title, bot_has_subtitle, bot_has_author),\n )\n}\n\n\n// ============================================================\n// Layer 6 — Home-print margin (white rounded borders for home inkjet printers)\n// ============================================================\n\n#if home_print {\n // Render the back and front as two separate rounded cards, each with a white\n // border, so a home printer that can't reach the paper edge still prints\n // cleanly. One white matte covers the spread with two rounded windows punched\n // out — one per trim face, each inset by `home_margin` on all sides with\n // `home_corner`-rounded corners. Windows track the trim faces (not a spine-\n // centre split), so the bleed and spine become white gutter and every side —\n // including the inner/gutter edge — gets a real margin. A single matte (vs.\n // two abutting ones) avoids a hairline seam down the gutter.\n let m = home_margin\n let win_w = face_width - 2 * m\n let win_h = face_height - 2 * m\n let win_y = bleed + m\n let back_win = (bleed + m, win_y, win_w, win_h)\n let front_win = (total_width - bleed - face_width + m, win_y, win_w, win_h)\n home-print-matte(total_width, total_height, (back_win, front_win), home_corner)\n}\n",
5
+ cover: "\n// Book cover template — receives all variables from _data.typ\n#import \"_data.typ\": *\n\n// -- Page setup --\n#set page(\n width: total_width,\n height: total_height,\n margin: 0mm,\n)\n\n#set text(font: font_body_family)\n#set quote(block: true)\n#show quote: set pad(x: 3em)\n\n// ============================================================\n// Helper functions\n// ============================================================\n\n#import \"_helpers.typ\": *\n\n\n// ============================================================\n// Layer 1 — Background fills\n// ============================================================\n\n#place(\n top + left,\n rect(\n width: total_width,\n height: total_height,\n fill: if has_front_gradient {\n gradient.linear(\n (color_front_gradient_start, 0%),\n (color_front_bg, 30%),\n (color_front_bg, 45%),\n (color_front_gradient_end, 100%),\n angle: -40deg,\n )\n } else {\n color_front_bg\n },\n ),\n)\n\n\n#if has_pattern {\n let tiled = pattern(\n size: (pattern_tile_w, pattern_tile_h),\n image(\"pattern.svg\", width: pattern_tile_w, height: pattern_tile_h),\n )\n place(\n top + left,\n rect(width: total_width, height: total_height, fill: tiled),\n )\n}\n\n\n// ============================================================\n// Layer 2 — Background image\n// ============================================================\n\n#if has_image {\n if image_coverage == \"full\" {\n // Full spread: image covers entire canvas (back + spine + front)\n place(\n top + left,\n dx: 0mm,\n dy: 0mm,\n image(\n image_filename,\n width: total_width,\n height: total_height,\n fit: if image_is_vector { \"stretch\" } else { \"cover\" },\n ),\n )\n } else if image_coverage == \"painted\" {\n // Painted: image inset on front cover — 15mm margin horizontally and from bottom, 50% trim height\n let painted_w = face_width - 30mm\n let painted_h = face_height * 0.5 // sync: index.ts painted_h = face_height * 0.5\n place(\n top + left,\n dx: front_x + 15mm,\n dy: bleed + face_height * (1/3),\n image(\n image_filename,\n width: painted_w,\n height: painted_h,\n fit: \"stretch\", // Should be exact but just in case, ensures full frame visible\n ),\n )\n } else if image_coverage == \"feature\" {\n // Feature: same size and position as painted but with rounded corners via box clip\n let painted_w = face_width - 30mm\n let painted_h = face_height * 0.5\n place(\n top + left,\n dx: front_x + 15mm,\n dy: bleed + face_height * (1/3),\n box(\n width: painted_w,\n height: painted_h,\n radius: 6mm,\n clip: true,\n image(\n image_filename,\n width: painted_w,\n height: painted_h,\n fit: \"cover\",\n ),\n ),\n )\n } else if image_coverage == \"front_partial\" {\n // Lower 2/3: image covers the full front face width, bottom 2/3 of height, flush to the bottom trim edge\n let w = face_width\n let h = face_height * (2 / 3)\n place(\n top + left,\n dx: front_x,\n dy: bleed + face_height - h,\n image(\n image_filename,\n width: w,\n height: h,\n fit: \"cover\",\n ),\n )\n } else {\n // Front only: image covers the front panel including all bleed margins\n place(\n top + left,\n dx: front_x,\n dy: 0mm,\n image(\n image_filename,\n width: face_width + bleed,\n height: total_height,\n fit: if image_is_vector { \"stretch\" } else { \"cover\" },\n ),\n )\n }\n}\n\n\n// ============================================================\n// Layer 2b — Icon on front cover\n// ============================================================\n\n#if has_icon {\n let icon_size = calc.min(face_height * 0.4, face_width * 0.8)\n if icon_mode != \"center\" {\n icon_size = calc.min(face_height * 0.5, face_width * 0.8)\n }\n // Apply user-controlled size multiplier (1.0 = default)\n icon_size = icon_size * icon_size_mod\n let offset_icon_dx = front_x + (face_width - icon_size) + (icon_size * 0.15)\n let offset_icon_dy = bleed * -1 + (icon_size * 0.15)\n\n // Place ghost icons first (if any) so below main one\n if icon_mode == \"echo\" {\n place(\n bottom + left,\n dx: offset_icon_dx + icon_size * 0.1,\n dy: offset_icon_dy - icon_size * 0.15,\n image(\"icon_ghost.svg\", width: icon_size, height: icon_size),\n )\n place(\n bottom + left,\n dx: offset_icon_dx - icon_size * 0.1,\n dy: offset_icon_dy + icon_size * 0.1,\n image(\"icon_ghost2.svg\", width: icon_size, height: icon_size),\n )\n }\n\n if icon_mode == \"center\" {\n // Center — large icon centered horizontally, positioned in the lower/mid section\n place(\n bottom + left,\n dx: front_x + (face_width - icon_size) / 2,\n dy: (face_height * 0.2 + bleed) * -1,\n image(\"icon_main.svg\", width: icon_size, height: icon_size),\n )\n } else {\n // Offset/echo: large icon offset towards bottom-right, slightly overflowing the trim edge\n place(\n bottom + left,\n dx: offset_icon_dx,\n dy: offset_icon_dy,\n image(\"icon_main.svg\", width: icon_size, height: icon_size),\n )\n }\n}\n\n\n// ============================================================\n// Layer 2c — Spine background\n// ============================================================\n\n// Spine background (only when spread has a spine) — drawn after pattern so it covers it\n#if has_spine and color_spine_bg != none {\n place(\n top + left,\n dx: spine_x,\n dy: 0mm,\n rect(width: spine_width, height: total_height, fill: color_spine_bg),\n )\n}\n\n\n// ============================================================\n// Layer 3 — Back panel content\n// ============================================================\n\n// back_margin, back_content_w, spiral_margin imported from _data.typ\n\n// Blurb container box with background color and 1cm padding around the text\n// Content is scaled down if it would overflow the available back-panel height\n#if has_blurb {\n let blurb_content = {\n set par(justify: true) if blurb_justify\n set par(leading: 1em * blurb_spacing)\n // Compact heading styles for a small blurb box — size and leading are hardcoded\n // independent of blurb_spacing, since headings rarely wrap and need tight leading\n show heading.where(level: 1): it => {\n set block(above: 2em, below: 1em)\n set text(size: 1.3em)\n set par(leading: 0.5em)\n it\n }\n show heading.where(level: 2): it => {\n set block(above: 2em, below: 1em)\n set text(size: 1.15em)\n set par(leading: 0.5em)\n it\n }\n align(blurb_alignment, text(\n font: font_blurb_family,\n size: fs_back_blurb * blurb_size,\n fill: color_blurb,\n blurb,\n ))\n }\n let blurb_max_h = back_content_h - blurb_padding * 2\n place(\n top + left,\n // Centered within the safe area, not the full face — spiral_margin is 0 for other bindings\n dx: back_x + (face_width - spiral_margin - blurb_width) / 2,\n dy: bleed + back_margin,\n rect(\n width: blurb_width,\n fill: color_blurb_bg,\n stroke: none,\n radius: 1.5mm,\n inset: blurb_padding,\n context {\n let avail_w = blurb_width - blurb_padding * 2\n let natural = measure(blurb_content, width: avail_w)\n if natural.height > blurb_max_h {\n let ratio = blurb_max_h / natural.height\n scale(x: ratio * 100%, y: ratio * 100%, reflow: true, blurb_content)\n } else {\n blurb_content\n }\n },\n ),\n )\n}\n\n// ISBN barcode — position and size from printing-services cover_region_barcode\n#if has_barcode {\n place(\n bottom + left,\n dx: barcode_x,\n dy: barcode_y * -1,\n image(\"barcode.svg\", width: barcode_w, height: barcode_h),\n )\n}\n\n// ============================================================\n// Layer 4 — Spine content\n// ============================================================\n\n#if has_spine and has_spine_text and fs_spine_title > 0mm {\n // Title rotated along spine (bottom-to-top reading direction).\n // place() anchors the unrotated bounding box top-left, so we subtract\n // half the unrotated dimensions to keep the visual center on the spine.\n place(\n top + left,\n dx: spine_x + spine_width * 0.5 - face_height * 0.4,\n dy: bleed + face_height * 0.5 - spine_width * 0.5,\n rotate(\n 90deg,\n origin: center,\n box(\n width: face_height * 0.8,\n height: spine_width,\n align(\n center + horizon,\n // Shrink title + author together as one unit if they overflow the spine length\n shrink-to-width(\n stack(\n dir: ltr,\n spacing: spine_width * 0.3,\n text(\n font: font_spine_title_family,\n size: fs_spine_title * spine_title_size_mod,\n fill: color_spine_title,\n weight: spine_title_weight,\n style: if spine_title_italic { \"italic\" } else { \"normal\" },\n spine_title,\n ),\n if has_author and fs_spine_author > 0mm {\n text(\n font: font_spine_author_family,\n size: fs_spine_author * spine_author_size_mod,\n fill: color_spine_author,\n weight: spine_author_weight,\n style: if spine_author_italic { \"italic\" } else { \"normal\" },\n spine_author,\n )\n },\n ),\n ),\n ),\n ),\n ),\n )\n}\n\n// Small icon at the bottom of the spine (when spine is wide enough for text)\n#if has_spine_icon {\n let spine_icon_size = spine_width * 0.7\n let spine_icon_side_margin = (spine_width - spine_icon_size) / 2\n // Bottom margin is twice the side margin\n let spine_icon_bottom_margin = spine_icon_side_margin * 2\n place(\n top + left,\n dx: spine_x + spine_icon_side_margin,\n dy: bleed + face_height - spine_icon_size - spine_icon_bottom_margin,\n image(\"icon_spine.svg\", width: spine_icon_size, height: spine_icon_size),\n )\n}\n\n// ============================================================\n// Layer 5 — Front panel content\n// ============================================================\n\n// front_margin, front_content_w, spiral_margin imported from _data.typ\n\n// Base font size — proportional to trim height, multiplied by per-title size modifier\n#let fs_title_base = face_height * 0.05\n#let fs_subtitle = face_height * 0.025 * subtitle_size\n#let fs_author = face_height * 0.035 * author_size\n\n// Render a single title line with its per-title styling, shrunk to fit if too wide\n#let render_title(txt, font_family, size_mod, weight, is_italic, color) = {\n if txt != \"\" {\n box(\n width: front_content_w,\n shrink-to-width(\n align(title_alignment, text(\n font: font_family,\n size: fs_title_base * size_mod,\n fill: color,\n weight: weight,\n style: if is_italic { \"italic\" } else { \"normal\" },\n txt,\n )),\n ),\n )\n }\n}\n\n// Render each title line, then filter out empty ones so they don't create stack spacing gaps\n#let title_lines_rendered = stack(\n dir: ttb,\n spacing: face_height * title_spacing / 100,\n ..(\n render_title(title1, font_title1_family, title1_size, title1_weight, title1_italic, color_front_title1),\n render_title(title2, font_title2_family, title2_size, title2_weight, title2_italic, color_front_title2),\n render_title(title3, font_title3_family, title3_size, title3_weight, title3_italic, color_front_title3),\n ).filter(x => x != none),\n)\n\n// All subtitle lines in one container — shrink-to-width scales them all together uniformly\n// text() wraps shrink-to-width so inner content inherits the scaled size (no explicit size inside)\n#let subtitle_lines_rendered = text(\n font: font_subtitle_family,\n size: fs_subtitle,\n weight: subtitle_weight,\n style: if subtitle_italic { \"italic\" } else { \"normal\" },\n fill: color_front_subtitle,\n box(\n width: front_content_w,\n shrink-to-width(\n stack(\n dir: ttb,\n spacing: face_height * subtitle_spacing / 100,\n ..subtitle_lines.map(line => align(subtitle_alignment, line)),\n )\n ),\n ),\n)\n\n// Author styled text — single line, shrunk to fit width\n#let author_rendered = box(\n width: front_content_w,\n shrink-to-width(\n align(author_alignment, text(\n font: font_author_family,\n size: fs_author,\n fill: color_front_author,\n weight: author_weight,\n style: if author_italic { \"italic\" } else { \"normal\" },\n author,\n )),\n ),\n)\n\n// Title group: stacked title lines\n#let title_group = stack(\n dir: ttb,\n spacing: face_height * title_spacing / 100,\n title_lines_rendered,\n)\n\n// Check which elements belong to each position box\n#let top_has_title = title_position == \"top\"\n#let top_has_subtitle = has_subtitle and subtitle_position == \"top\"\n#let top_has_author = has_author and author_position == \"top\"\n#let top_has_any = top_has_title or top_has_subtitle or top_has_author\n\n#let mid_has_title = title_position == \"middle\"\n#let mid_has_subtitle = has_subtitle and subtitle_position == \"middle\"\n#let mid_has_author = has_author and author_position == \"middle\"\n#let mid_has_any = mid_has_title or mid_has_subtitle or mid_has_author\n\n#let bot_has_title = title_position == \"bottom\"\n#let bot_has_subtitle = has_subtitle and subtitle_position == \"bottom\"\n#let bot_has_author = has_author and author_position == \"bottom\"\n#let bot_has_any = bot_has_title or bot_has_subtitle or bot_has_author\n\n// Build a content group for a position box (order within box: title | subtitle | author)\n// Each element gets its own vertical margins inside the box\n#let make_pos_box(has_t, has_s, has_a) = box(\n width: front_content_w,\n stack(\n dir: ttb,\n if has_t { v(face_height * title_margin_top / 100) },\n if has_t { title_group },\n if has_t { v(face_height * title_margin_bottom / 100) },\n if has_s { v(face_height * subtitle_margin_top / 100) },\n if has_s { subtitle_lines_rendered },\n if has_s { v(face_height * subtitle_margin_bottom / 100) },\n if has_a { v(face_height * author_margin_top / 100) },\n if has_a { author_rendered },\n if has_a { v(face_height * author_margin_bottom / 100) },\n ),\n)\n\n// Place each non-empty position box on the front panel (within panel margin on all sides)\n#if top_has_any {\n place(\n top + left,\n dx: front_x + front_margin + spiral_margin,\n dy: bleed + front_margin,\n make_pos_box(top_has_title, top_has_subtitle, top_has_author),\n )\n}\n#if mid_has_any {\n place(\n horizon + left,\n dx: front_x + front_margin + spiral_margin,\n make_pos_box(mid_has_title, mid_has_subtitle, mid_has_author),\n )\n}\n#if bot_has_any {\n place(\n bottom + left,\n dx: front_x + front_margin + spiral_margin,\n dy: (bleed + front_margin) * -1,\n make_pos_box(bot_has_title, bot_has_subtitle, bot_has_author),\n )\n}\n\n\n// ============================================================\n// Layer 6 — Home-print margin (white rounded borders for home inkjet printers)\n// ============================================================\n\n#if home_print {\n // Render the back and front as two separate rounded cards, each with a white\n // border, so a home printer that can't reach the paper edge still prints\n // cleanly. One white matte covers the spread with two rounded windows punched\n // out — one per trim face, each inset by `home_margin` on all sides with\n // `home_corner`-rounded corners. Windows track the trim faces (not a spine-\n // centre split), so the bleed and spine become white gutter and every side —\n // including the inner/gutter edge — gets a real margin. A single matte (vs.\n // two abutting ones) avoids a hairline seam down the gutter.\n let m = home_margin\n let win_w = face_width - 2 * m\n let win_h = face_height - 2 * m\n let win_y = bleed + m\n let back_win = (bleed + m, win_y, win_w, win_h)\n let front_win = (total_width - bleed - face_width + m, win_y, win_w, win_h)\n home-print-matte(total_width, total_height, (back_win, front_win), home_corner)\n}\n",
6
6
  helpers: "\n// Shared helper functions for the cover template\n\n// Scale content so it fits within the container width using geometric scaling.\n// Uses scale() rather than text(size: ...) so inner explicit font sizes are also scaled.\n#let fit-to-width(max-text-size: auto, min-text-size: 2mm, it) = context {\n let effective-max = if max-text-size == auto { text.size * 3 } else { max-text-size }\n let effective-min = if min-text-size == auto { text.size * 0.33 } else { min-text-size }\n // Express size limits as dimensionless ratios relative to current text size\n let max-ratio = effective-max / text.size\n let min-ratio = effective-min / text.size\n let contentsize = measure(it)\n layout(size => {\n if contentsize.width > 0mm {\n let ratio = calc.min(size.width / contentsize.width, size.height / contentsize.height)\n let clamped = calc.max(calc.min(ratio, max-ratio), min-ratio)\n if clamped != 1.0 {\n scale(x: clamped * 100%, y: clamped * 100%, reflow: true, it)\n } else {\n it\n }\n }\n })\n}\n\n// Variant that only shrinks (never grows beyond current text size)\n#let shrink-to-width(min-text-size: auto, it) = context {\n fit-to-width(max-text-size: text.size, min-text-size: min-text-size, it)\n}\n\n// Curve segments tracing one rounded rectangle (absolute coords), for compositing\n// into a larger path. Corners use a cubic-bezier handle (0.5523r) to approximate arcs.\n#let rounded-subpath(x, y, w, h, r) = {\n let k = 0.5523 * r\n (\n curve.move((x + r, y), relative: false),\n curve.line((x + w - r, y), relative: false),\n curve.cubic((x + w - r + k, y), (x + w, y + r - k), (x + w, y + r), relative: false),\n curve.line((x + w, y + h - r), relative: false),\n curve.cubic((x + w, y + h - r + k), (x + w - r + k, y + h), (x + w - r, y + h), relative: false),\n curve.line((x + r, y + h), relative: false),\n curve.cubic((x + r - k, y + h), (x, y + h - r + k), (x, y + h - r), relative: false),\n curve.line((x, y + r), relative: false),\n curve.cubic((x, y + r - k), (x + r - k, y), (x + r, y), relative: false),\n curve.close(),\n )\n}\n\n// White \"matte\" covering the whole canvas (cw × ch) with rounded-rect windows\n// punched out via even-odd fill, so the artwork shows through each window as a\n// rounded card surrounded by a white border. Used for home-print margins on\n// edge-to-edge-incapable printers. `windows` is an array of (x, y, w, h) tuples.\n#let home-print-matte(cw, ch, windows, r) = {\n let segs = (\n curve.move((0mm, 0mm), relative: false),\n curve.line((cw, 0mm), relative: false),\n curve.line((cw, ch), relative: false),\n curve.line((0mm, ch), relative: false),\n curve.close(),\n )\n for win in windows {\n segs = segs + rounded-subpath(win.at(0), win.at(1), win.at(2), win.at(3), r)\n }\n place(top + left, curve(fill: white, fill-rule: \"even-odd\", ..segs))\n}\n",
7
7
  };
8
8
  //# sourceMappingURL=templates_data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates_data.js","sourceRoot":"","sources":["../../src/generated/templates_data.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,qEAAqE;AAIrE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACvC,KAAK,EAAE,qjkBAAqjkB;IAC5jkB,OAAO,EAAE,ygGAAygG;CACrhG,CAAA"}
1
+ {"version":3,"file":"templates_data.js","sourceRoot":"","sources":["../../src/generated/templates_data.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,qEAAqE;AAIrE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACvC,KAAK,EAAE,wvkBAAwvkB;IAC/vkB,OAAO,EAAE,ygGAAygG;CACrhG,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"vector_bg_images_data.d.ts","sourceRoot":"","sources":["../../src/generated/vector_bg_images_data.ts"],"names":[],"mappings":"AAGA;qGACqG;AACrG,eAAO,MAAM,oBAAoB,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CA2BtD,CAAA"}
1
+ {"version":3,"file":"vector_bg_images_data.d.ts","sourceRoot":"","sources":["../../src/generated/vector_bg_images_data.ts"],"names":[],"mappings":"AAGA;qGACqG;AACrG,eAAO,MAAM,oBAAoB,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CA4BtD,CAAA"}