@bendyline/squisq 2.0.0 → 2.1.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 (85) hide show
  1. package/dist/{Doc-ylqWKDc_.d.ts → Doc-DynJleo-.d.ts} +159 -2
  2. package/dist/{ImageEditDoc-D828IXJ1.d.ts → ImageEditDoc-Ca4Tr9uN.d.ts} +1 -1
  3. package/dist/{chunk-PXLVXTLW.js → chunk-ILWDXLUK.js} +24 -6
  4. package/dist/chunk-ILWDXLUK.js.map +1 -0
  5. package/dist/{chunk-6PJRB2CF.js → chunk-JHZWYRSW.js} +570 -2
  6. package/dist/chunk-JHZWYRSW.js.map +1 -0
  7. package/dist/{chunk-GF3BVNLU.js → chunk-JI77MGAK.js} +195 -27
  8. package/dist/chunk-JI77MGAK.js.map +1 -0
  9. package/dist/{chunk-QVANWDPH.js → chunk-OTKVFVL6.js} +1403 -41
  10. package/dist/chunk-OTKVFVL6.js.map +1 -0
  11. package/dist/{chunk-LYNJEOAC.js → chunk-QUUPYOSP.js} +8 -2
  12. package/dist/chunk-QUUPYOSP.js.map +1 -0
  13. package/dist/chunk-VWCJ2WXC.js +215 -0
  14. package/dist/chunk-VWCJ2WXC.js.map +1 -0
  15. package/dist/{chunk-QTSJOY54.js → chunk-VYFRI7R6.js} +2 -2
  16. package/dist/{chunk-T3TI7GSZ.js → chunk-XNLB57UD.js} +2 -2
  17. package/dist/doc/index.d.ts +144 -5
  18. package/dist/doc/index.js +24 -4
  19. package/dist/generate/index.d.ts +1 -1
  20. package/dist/imageEdit/index.d.ts +3 -3
  21. package/dist/index.d.ts +6 -5
  22. package/dist/index.js +66 -8
  23. package/dist/jsonForm/index.d.ts +1 -1
  24. package/dist/jsonForm/index.js +4 -4
  25. package/dist/materializePageSection-DDzubQXo.d.ts +223 -0
  26. package/dist/narration/index.d.ts +1 -1
  27. package/dist/narration/index.js +3 -3
  28. package/dist/schemas/index.d.ts +30 -5
  29. package/dist/schemas/index.js +41 -3
  30. package/dist/{themeLibrary-RjVgLpUi.d.ts → themeLibrary-B72m0W1y.d.ts} +1 -1
  31. package/dist/transform/index.d.ts +8 -9
  32. package/dist/transform/index.js +1 -1
  33. package/package.json +1 -1
  34. package/src/__tests__/customThemesFrontmatter.test.ts +1 -0
  35. package/src/__tests__/markdown.test.ts +13 -4
  36. package/src/__tests__/markdownSanitize.test.ts +7 -5
  37. package/src/__tests__/materializeBlockLayers.test.ts +32 -0
  38. package/src/__tests__/materializePageSections.test.ts +404 -0
  39. package/src/__tests__/pageStyle.test.ts +258 -0
  40. package/src/__tests__/templateAnnotationParse.test.ts +13 -0
  41. package/src/doc/index.ts +34 -0
  42. package/src/doc/markdownToDoc.ts +3 -1
  43. package/src/doc/materializeBlockLayers.ts +170 -9
  44. package/src/doc/page/PageSection.ts +174 -0
  45. package/src/doc/page/materializePageSection.ts +616 -0
  46. package/src/doc/page/resolvePageBlock.ts +108 -0
  47. package/src/doc/page/sectionExtractors.ts +466 -0
  48. package/src/doc/pageCss.ts +628 -0
  49. package/src/doc/templateInputs.ts +1 -0
  50. package/src/doc/templates/__tests__/listBlock.test.ts +64 -0
  51. package/src/doc/templates/listBlock.ts +88 -30
  52. package/src/schemas/Doc.ts +22 -1
  53. package/src/schemas/PageStyle.ts +213 -0
  54. package/src/schemas/Theme.ts +7 -0
  55. package/src/schemas/index.ts +2 -0
  56. package/src/schemas/pageStyleDefaults.ts +204 -0
  57. package/src/schemas/themeCompile.ts +7 -0
  58. package/src/schemas/themeValidator.ts +183 -0
  59. package/src/schemas/themes/bold.json +29 -0
  60. package/src/schemas/themes/cinematic.json +32 -0
  61. package/src/schemas/themes/documentary.json +29 -0
  62. package/src/schemas/themes/gezellig.json +31 -1
  63. package/src/schemas/themes/magazine.json +37 -0
  64. package/src/schemas/themes/minimalist.json +29 -0
  65. package/src/schemas/themes/morning-light.json +32 -0
  66. package/src/schemas/themes/standard-dark.json +24 -0
  67. package/src/schemas/themes/standard.json +24 -0
  68. package/src/schemas/themes/tech-dark.json +42 -0
  69. package/src/schemas/themes/warm-earth.json +24 -0
  70. package/src/transform/registry.ts +19 -0
  71. package/src/transform/styles/dataDriven.ts +1 -0
  72. package/src/transform/styles/documentary.ts +1 -0
  73. package/src/transform/styles/magazine.ts +1 -0
  74. package/src/transform/styles/minimal.ts +1 -0
  75. package/src/transform/styles/narrative.ts +1 -0
  76. package/src/transform/types.ts +7 -0
  77. package/dist/chunk-6PJRB2CF.js.map +0 -1
  78. package/dist/chunk-FVJUUTEM.js +0 -74
  79. package/dist/chunk-FVJUUTEM.js.map +0 -1
  80. package/dist/chunk-GF3BVNLU.js.map +0 -1
  81. package/dist/chunk-LYNJEOAC.js.map +0 -1
  82. package/dist/chunk-PXLVXTLW.js.map +0 -1
  83. package/dist/chunk-QVANWDPH.js.map +0 -1
  84. /package/dist/{chunk-QTSJOY54.js.map → chunk-VYFRI7R6.js.map} +0 -0
  85. /package/dist/{chunk-T3TI7GSZ.js.map → chunk-XNLB57UD.js.map} +0 -0
@@ -142,8 +142,99 @@ function deriveScale(seedHex, spread = 0.15) {
142
142
  };
143
143
  }
144
144
 
145
+ // src/schemas/PageStyle.ts
146
+ var PAGE_SECTION_KINDS = [
147
+ "hero",
148
+ "banner",
149
+ "stat-band",
150
+ "quote-band",
151
+ "feature-split",
152
+ "media-figure",
153
+ "gallery",
154
+ "callout",
155
+ "card-grid",
156
+ "item-list",
157
+ "timeline-rail",
158
+ "table-section",
159
+ "canvas-embed",
160
+ "prose",
161
+ "footer"
162
+ ];
163
+ var PAGE_DESIGN_FAMILIES = [
164
+ "clean",
165
+ "editorial",
166
+ "brutalist",
167
+ "terminal",
168
+ "cinematic",
169
+ "documentary",
170
+ "organic",
171
+ "soft"
172
+ ];
173
+ var PAGE_SECTION_SPACINGS = ["compact", "comfortable", "generous"];
174
+ var PAGE_DIVIDERS = [
175
+ "none",
176
+ "gap-only",
177
+ "hairline",
178
+ "thick-rule",
179
+ "double-rule",
180
+ "dotted"
181
+ ];
182
+ var PAGE_BACKGROUND_RHYTHMS = [
183
+ "flat",
184
+ "alternate",
185
+ "accent-bands",
186
+ "tinted-panels"
187
+ ];
188
+ var PAGE_HERO_STYLES = [
189
+ "stacked",
190
+ "split",
191
+ "full-bleed",
192
+ "letterbox",
193
+ "oversized-type"
194
+ ];
195
+ var PAGE_EYEBROWS = ["none", "kicker", "numbered", "mono-tag"];
196
+ var PAGE_HEADING_SCALES = ["regular", "display", "oversized"];
197
+ var PAGE_HEADING_CASES = ["none", "uppercase"];
198
+ var PAGE_HEADING_UNDERLINES = ["none", "accent-bar", "full-rule"];
199
+ var PAGE_IMAGE_FRAMINGS = [
200
+ "flush",
201
+ "rounded",
202
+ "bordered",
203
+ "polaroid",
204
+ "letterboxed",
205
+ "circle-accent"
206
+ ];
207
+ var PAGE_SHADOWS = ["none", "soft", "crisp", "heavy"];
208
+ var PAGE_QUOTE_MARKS = ["none", "oversized-glyph", "accent-bar"];
209
+ var PAGE_NUMERAL_STYLES = ["plain", "oversized", "boxed", "mono"];
210
+ var PAGE_PATTERNS = ["none", "dots", "grid", "diagonal", "noise"];
211
+ var PAGE_EMPHASES = ["lead", "strong", "standard", "quiet"];
212
+ var PAGE_BACKGROUNDS = ["base", "alternate", "accent", "media"];
213
+ var PAGE_ACCENT_STRATEGIES = ["primary-only", "cycle", "alternate-two", "none"];
214
+
145
215
  // src/schemas/themeValidator.ts
146
216
  var VALID_FALLBACK = /* @__PURE__ */ new Set(["serif", "sans-serif", "monospace", "system-ui"]);
217
+ var VALID_SECTION_KINDS = new Set(PAGE_SECTION_KINDS);
218
+ var VALID_DESIGN_FAMILIES = new Set(PAGE_DESIGN_FAMILIES);
219
+ var VALID_PAGE_EMPHASES = new Set(PAGE_EMPHASES);
220
+ var VALID_PAGE_BACKGROUNDS = new Set(PAGE_BACKGROUNDS);
221
+ var VALID_ACCENT_STRATEGIES = new Set(PAGE_ACCENT_STRATEGIES);
222
+ var PAGE_TOKEN_ENUMS = {
223
+ sectionSpacing: new Set(PAGE_SECTION_SPACINGS),
224
+ divider: new Set(PAGE_DIVIDERS),
225
+ backgroundRhythm: new Set(PAGE_BACKGROUND_RHYTHMS),
226
+ heroStyle: new Set(PAGE_HERO_STYLES),
227
+ imageFraming: new Set(PAGE_IMAGE_FRAMINGS),
228
+ shadow: new Set(PAGE_SHADOWS),
229
+ quoteMark: new Set(PAGE_QUOTE_MARKS),
230
+ numeralStyle: new Set(PAGE_NUMERAL_STYLES)
231
+ };
232
+ var HEADING_TREATMENT_ENUMS = {
233
+ eyebrow: { values: new Set(PAGE_EYEBROWS), required: true },
234
+ scale: { values: new Set(PAGE_HEADING_SCALES), required: true },
235
+ case: { values: new Set(PAGE_HEADING_CASES), required: false },
236
+ underline: { values: new Set(PAGE_HEADING_UNDERLINES), required: false }
237
+ };
147
238
  var VALID_TITLE_WEIGHT = /* @__PURE__ */ new Set(["normal", "bold"]);
148
239
  var VALID_GRADIENT_PRESETS = /* @__PURE__ */ new Set([
149
240
  "dark-vignette",
@@ -444,6 +535,130 @@ var V = class {
444
535
  arr.forEach((entry, i) => this.persistentLayer(`${path}.${side}[${i}]`, entry));
445
536
  }
446
537
  }
538
+ scalarHints(path, v) {
539
+ if (!this.isObject(v)) {
540
+ this.err(path, "expected object");
541
+ return;
542
+ }
543
+ for (const key of Object.keys(v)) {
544
+ const t = typeof v[key];
545
+ if (t !== "string" && t !== "number" && t !== "boolean") {
546
+ this.err(`${path}.${key}`, `expected string|number|boolean, got ${t}`);
547
+ }
548
+ }
549
+ }
550
+ pageSectionOverride(path, v) {
551
+ if (!this.isObject(v)) {
552
+ this.err(path, "expected object");
553
+ return;
554
+ }
555
+ if (v.kind !== void 0 && (!this.isString(v.kind) || !VALID_SECTION_KINDS.has(v.kind))) {
556
+ this.err(`${path}.kind`, `expected one of: ${PAGE_SECTION_KINDS.join(", ")}`);
557
+ }
558
+ if (v.variant !== void 0 && !this.isString(v.variant)) {
559
+ this.err(`${path}.variant`, "expected string");
560
+ }
561
+ if (v.emphasis !== void 0 && (!this.isString(v.emphasis) || !VALID_PAGE_EMPHASES.has(v.emphasis))) {
562
+ this.err(`${path}.emphasis`, `expected one of: ${PAGE_EMPHASES.join(", ")}`);
563
+ }
564
+ if (v.background !== void 0 && (!this.isString(v.background) || !VALID_PAGE_BACKGROUNDS.has(v.background))) {
565
+ this.err(`${path}.background`, `expected one of: ${PAGE_BACKGROUNDS.join(", ")}`);
566
+ }
567
+ if (v.hints !== void 0) this.scalarHints(`${path}.hints`, v.hints);
568
+ }
569
+ pageTokens(path, v) {
570
+ if (!this.isObject(v)) {
571
+ this.err(path, "expected object");
572
+ return;
573
+ }
574
+ for (const k of ["contentMaxWidth", "wideMaxWidth", "cornerRadius"]) {
575
+ if (!this.isNumber(v[k])) {
576
+ this.err(`${path}.${k}`, "expected number");
577
+ }
578
+ }
579
+ for (const [k, values] of Object.entries(PAGE_TOKEN_ENUMS)) {
580
+ if (!this.isString(v[k]) || !values.has(v[k])) {
581
+ this.err(`${path}.${k}`, `expected one of: ${Array.from(values).join(", ")}`);
582
+ }
583
+ }
584
+ if (v.pattern !== void 0) {
585
+ if (!this.isString(v.pattern) || !PAGE_PATTERNS.includes(v.pattern)) {
586
+ this.err(`${path}.pattern`, `expected one of: ${PAGE_PATTERNS.join(", ")}`);
587
+ }
588
+ }
589
+ const ht = v.headingTreatment;
590
+ if (!this.isObject(ht)) {
591
+ this.err(`${path}.headingTreatment`, "expected object");
592
+ return;
593
+ }
594
+ for (const [k, spec] of Object.entries(HEADING_TREATMENT_ENUMS)) {
595
+ const val = ht[k];
596
+ if (val === void 0) {
597
+ if (spec.required) this.err(`${path}.headingTreatment.${k}`, "required");
598
+ continue;
599
+ }
600
+ if (!this.isString(val) || !spec.values.has(val)) {
601
+ this.err(
602
+ `${path}.headingTreatment.${k}`,
603
+ `expected one of: ${Array.from(spec.values).join(", ")}`
604
+ );
605
+ }
606
+ }
607
+ }
608
+ pageStyle(path, v) {
609
+ if (!this.isObject(v)) {
610
+ this.err(path, "expected object");
611
+ return;
612
+ }
613
+ if (!this.isString(v.family) || !VALID_DESIGN_FAMILIES.has(v.family)) {
614
+ this.err(`${path}.family`, `expected one of: ${PAGE_DESIGN_FAMILIES.join(", ")}`);
615
+ }
616
+ if (v.tokens === void 0) {
617
+ this.err(`${path}.tokens`, "required");
618
+ } else {
619
+ this.pageTokens(`${path}.tokens`, v.tokens);
620
+ }
621
+ if (v.sections !== void 0) {
622
+ if (!this.isObject(v.sections)) {
623
+ this.err(`${path}.sections`, "expected object map");
624
+ } else {
625
+ for (const key of Object.keys(v.sections)) {
626
+ if (!VALID_SECTION_KINDS.has(key)) {
627
+ this.err(`${path}.sections.${key}`, `unknown section kind`);
628
+ continue;
629
+ }
630
+ this.pageSectionOverride(`${path}.sections.${key}`, v.sections[key]);
631
+ }
632
+ }
633
+ }
634
+ if (v.templates !== void 0) {
635
+ if (!this.isObject(v.templates)) {
636
+ this.err(`${path}.templates`, "expected object map");
637
+ } else {
638
+ for (const key of Object.keys(v.templates)) {
639
+ this.pageSectionOverride(`${path}.templates.${key}`, v.templates[key]);
640
+ }
641
+ }
642
+ }
643
+ if (v.accentRotation === void 0) {
644
+ this.err(`${path}.accentRotation`, "required");
645
+ } else if (!this.isObject(v.accentRotation)) {
646
+ this.err(`${path}.accentRotation`, "expected object");
647
+ } else {
648
+ const rotation = v.accentRotation;
649
+ if (!this.isString(rotation.strategy) || !VALID_ACCENT_STRATEGIES.has(rotation.strategy)) {
650
+ this.err(
651
+ `${path}.accentRotation.strategy`,
652
+ `expected one of: ${PAGE_ACCENT_STRATEGIES.join(", ")}`
653
+ );
654
+ }
655
+ if (rotation.schemes !== void 0) {
656
+ if (!Array.isArray(rotation.schemes) || rotation.schemes.some((s) => typeof s !== "string")) {
657
+ this.err(`${path}.accentRotation.schemes`, "expected array of strings");
658
+ }
659
+ }
660
+ }
661
+ }
447
662
  };
448
663
  function validateTheme(input) {
449
664
  const v = new V();
@@ -497,6 +712,9 @@ function validateTheme(input) {
497
712
  if (input.persistentLayers !== void 0) {
498
713
  v.persistentLayers("persistentLayers", input.persistentLayers);
499
714
  }
715
+ if (input.pageStyle !== void 0) {
716
+ v.pageStyle("pageStyle", input.pageStyle);
717
+ }
500
718
  if (v.errors.length === 0) {
501
719
  return { valid: true, errors: [], theme: input };
502
720
  }
@@ -671,6 +889,30 @@ var standard_default = {
671
889
  text: "#115e59",
672
890
  accent: "#0d9488"
673
891
  }
892
+ },
893
+ pageStyle: {
894
+ family: "clean",
895
+ tokens: {
896
+ contentMaxWidth: 760,
897
+ wideMaxWidth: 1100,
898
+ sectionSpacing: "comfortable",
899
+ cornerRadius: 8,
900
+ divider: "hairline",
901
+ backgroundRhythm: "alternate",
902
+ heroStyle: "stacked",
903
+ headingTreatment: {
904
+ eyebrow: "kicker",
905
+ scale: "regular",
906
+ underline: "none"
907
+ },
908
+ imageFraming: "rounded",
909
+ shadow: "soft",
910
+ quoteMark: "accent-bar",
911
+ numeralStyle: "plain"
912
+ },
913
+ accentRotation: {
914
+ strategy: "cycle"
915
+ }
674
916
  }
675
917
  };
676
918
 
@@ -758,6 +1000,30 @@ var standard_dark_default = {
758
1000
  }
759
1001
  }
760
1002
  ]
1003
+ },
1004
+ pageStyle: {
1005
+ family: "clean",
1006
+ tokens: {
1007
+ contentMaxWidth: 760,
1008
+ wideMaxWidth: 1100,
1009
+ sectionSpacing: "comfortable",
1010
+ cornerRadius: 8,
1011
+ divider: "hairline",
1012
+ backgroundRhythm: "tinted-panels",
1013
+ heroStyle: "stacked",
1014
+ headingTreatment: {
1015
+ eyebrow: "kicker",
1016
+ scale: "regular",
1017
+ underline: "none"
1018
+ },
1019
+ imageFraming: "rounded",
1020
+ shadow: "none",
1021
+ quoteMark: "accent-bar",
1022
+ numeralStyle: "oversized"
1023
+ },
1024
+ accentRotation: {
1025
+ strategy: "cycle"
1026
+ }
761
1027
  }
762
1028
  };
763
1029
 
@@ -856,6 +1122,35 @@ var documentary_default = {
856
1122
  }
857
1123
  }
858
1124
  ]
1125
+ },
1126
+ pageStyle: {
1127
+ family: "documentary",
1128
+ tokens: {
1129
+ contentMaxWidth: 680,
1130
+ wideMaxWidth: 1e3,
1131
+ sectionSpacing: "generous",
1132
+ cornerRadius: 2,
1133
+ divider: "thick-rule",
1134
+ backgroundRhythm: "flat",
1135
+ heroStyle: "letterbox",
1136
+ headingTreatment: {
1137
+ eyebrow: "numbered",
1138
+ scale: "display",
1139
+ underline: "none"
1140
+ },
1141
+ imageFraming: "letterboxed",
1142
+ shadow: "none",
1143
+ quoteMark: "accent-bar",
1144
+ numeralStyle: "boxed"
1145
+ },
1146
+ sections: {
1147
+ "quote-band": {
1148
+ variant: "editorial"
1149
+ }
1150
+ },
1151
+ accentRotation: {
1152
+ strategy: "primary-only"
1153
+ }
859
1154
  }
860
1155
  };
861
1156
 
@@ -903,6 +1198,35 @@ var minimalist_default = {
903
1198
  red: { bg: "#fff5f5", text: "#c53030", accent: "#e53e3e" },
904
1199
  orange: { bg: "#fffaf0", text: "#c05621", accent: "#dd6b20" },
905
1200
  teal: { bg: "#e6fffa", text: "#285e61", accent: "#319795" }
1201
+ },
1202
+ pageStyle: {
1203
+ family: "clean",
1204
+ tokens: {
1205
+ contentMaxWidth: 720,
1206
+ wideMaxWidth: 1e3,
1207
+ sectionSpacing: "generous",
1208
+ cornerRadius: 8,
1209
+ divider: "gap-only",
1210
+ backgroundRhythm: "flat",
1211
+ heroStyle: "stacked",
1212
+ headingTreatment: {
1213
+ eyebrow: "none",
1214
+ scale: "display",
1215
+ underline: "none"
1216
+ },
1217
+ imageFraming: "flush",
1218
+ shadow: "none",
1219
+ quoteMark: "none",
1220
+ numeralStyle: "plain"
1221
+ },
1222
+ sections: {
1223
+ "quote-band": {
1224
+ emphasis: "quiet"
1225
+ }
1226
+ },
1227
+ accentRotation: {
1228
+ strategy: "primary-only"
1229
+ }
906
1230
  }
907
1231
  };
908
1232
 
@@ -953,6 +1277,35 @@ var bold_default = {
953
1277
  red: { bg: "#1a202c", text: "#fc8181", accent: "#feb2b2" },
954
1278
  orange: { bg: "#1a202c", text: "#f6ad55", accent: "#fbd38d" },
955
1279
  teal: { bg: "#1a202c", text: "#4fd1c5", accent: "#81e6d9" }
1280
+ },
1281
+ pageStyle: {
1282
+ family: "brutalist",
1283
+ tokens: {
1284
+ contentMaxWidth: 760,
1285
+ wideMaxWidth: 1200,
1286
+ sectionSpacing: "compact",
1287
+ cornerRadius: 0,
1288
+ divider: "thick-rule",
1289
+ backgroundRhythm: "accent-bands",
1290
+ heroStyle: "oversized-type",
1291
+ headingTreatment: {
1292
+ eyebrow: "kicker",
1293
+ scale: "oversized",
1294
+ case: "uppercase"
1295
+ },
1296
+ imageFraming: "bordered",
1297
+ shadow: "heavy",
1298
+ quoteMark: "none",
1299
+ numeralStyle: "oversized"
1300
+ },
1301
+ sections: {
1302
+ "quote-band": {
1303
+ background: "accent"
1304
+ }
1305
+ },
1306
+ accentRotation: {
1307
+ strategy: "cycle"
1308
+ }
956
1309
  }
957
1310
  };
958
1311
 
@@ -1040,6 +1393,38 @@ var morning_light_default = {
1040
1393
  }
1041
1394
  }
1042
1395
  ]
1396
+ },
1397
+ pageStyle: {
1398
+ family: "soft",
1399
+ tokens: {
1400
+ contentMaxWidth: 760,
1401
+ wideMaxWidth: 1100,
1402
+ sectionSpacing: "comfortable",
1403
+ cornerRadius: 14,
1404
+ divider: "dotted",
1405
+ backgroundRhythm: "tinted-panels",
1406
+ heroStyle: "split",
1407
+ headingTreatment: {
1408
+ eyebrow: "kicker",
1409
+ scale: "regular",
1410
+ underline: "none"
1411
+ },
1412
+ imageFraming: "rounded",
1413
+ shadow: "soft",
1414
+ quoteMark: "oversized-glyph",
1415
+ numeralStyle: "plain",
1416
+ pattern: "noise"
1417
+ },
1418
+ sections: {
1419
+ callout: {
1420
+ hints: {
1421
+ framing: "circle-accent"
1422
+ }
1423
+ }
1424
+ },
1425
+ accentRotation: {
1426
+ strategy: "alternate-two"
1427
+ }
1043
1428
  }
1044
1429
  };
1045
1430
 
@@ -1143,6 +1528,48 @@ var tech_dark_default = {
1143
1528
  }
1144
1529
  }
1145
1530
  ]
1531
+ },
1532
+ pageStyle: {
1533
+ family: "terminal",
1534
+ tokens: {
1535
+ contentMaxWidth: 820,
1536
+ wideMaxWidth: 1200,
1537
+ sectionSpacing: "compact",
1538
+ cornerRadius: 2,
1539
+ divider: "hairline",
1540
+ backgroundRhythm: "tinted-panels",
1541
+ heroStyle: "stacked",
1542
+ headingTreatment: {
1543
+ eyebrow: "mono-tag",
1544
+ scale: "regular",
1545
+ underline: "none"
1546
+ },
1547
+ imageFraming: "bordered",
1548
+ shadow: "none",
1549
+ quoteMark: "none",
1550
+ numeralStyle: "mono",
1551
+ pattern: "grid"
1552
+ },
1553
+ templates: {
1554
+ diagram: {
1555
+ hints: {
1556
+ frame: "terminal"
1557
+ }
1558
+ },
1559
+ tree: {
1560
+ hints: {
1561
+ frame: "terminal"
1562
+ }
1563
+ },
1564
+ timeline: {
1565
+ hints: {
1566
+ frame: "terminal"
1567
+ }
1568
+ }
1569
+ },
1570
+ accentRotation: {
1571
+ strategy: "primary-only"
1572
+ }
1146
1573
  }
1147
1574
  };
1148
1575
 
@@ -1234,6 +1661,43 @@ var magazine_default = {
1234
1661
  }
1235
1662
  }
1236
1663
  ]
1664
+ },
1665
+ pageStyle: {
1666
+ family: "editorial",
1667
+ tokens: {
1668
+ contentMaxWidth: 720,
1669
+ wideMaxWidth: 1240,
1670
+ sectionSpacing: "comfortable",
1671
+ cornerRadius: 6,
1672
+ divider: "double-rule",
1673
+ backgroundRhythm: "flat",
1674
+ heroStyle: "split",
1675
+ headingTreatment: {
1676
+ eyebrow: "kicker",
1677
+ scale: "display",
1678
+ underline: "none"
1679
+ },
1680
+ imageFraming: "flush",
1681
+ shadow: "none",
1682
+ quoteMark: "oversized-glyph",
1683
+ numeralStyle: "oversized",
1684
+ pattern: "diagonal"
1685
+ },
1686
+ sections: {
1687
+ prose: {
1688
+ hints: {
1689
+ dropCap: true
1690
+ }
1691
+ },
1692
+ "feature-split": {
1693
+ hints: {
1694
+ alternate: true
1695
+ }
1696
+ }
1697
+ },
1698
+ accentRotation: {
1699
+ strategy: "alternate-two"
1700
+ }
1237
1701
  }
1238
1702
  };
1239
1703
 
@@ -1347,6 +1811,38 @@ var cinematic_default = {
1347
1811
  }
1348
1812
  }
1349
1813
  ]
1814
+ },
1815
+ pageStyle: {
1816
+ family: "cinematic",
1817
+ tokens: {
1818
+ contentMaxWidth: 760,
1819
+ wideMaxWidth: 1100,
1820
+ sectionSpacing: "generous",
1821
+ cornerRadius: 0,
1822
+ divider: "gap-only",
1823
+ backgroundRhythm: "flat",
1824
+ heroStyle: "full-bleed",
1825
+ headingTreatment: {
1826
+ eyebrow: "kicker",
1827
+ scale: "display",
1828
+ case: "uppercase"
1829
+ },
1830
+ imageFraming: "letterboxed",
1831
+ shadow: "none",
1832
+ quoteMark: "none",
1833
+ numeralStyle: "oversized",
1834
+ pattern: "noise"
1835
+ },
1836
+ sections: {
1837
+ "quote-band": {
1838
+ hints: {
1839
+ vignette: true
1840
+ }
1841
+ }
1842
+ },
1843
+ accentRotation: {
1844
+ strategy: "primary-only"
1845
+ }
1350
1846
  }
1351
1847
  };
1352
1848
 
@@ -1399,6 +1895,30 @@ var warm_earth_default = {
1399
1895
  config: { type: "gradientBackground", preset: "earth-tones" }
1400
1896
  }
1401
1897
  ]
1898
+ },
1899
+ pageStyle: {
1900
+ family: "organic",
1901
+ tokens: {
1902
+ contentMaxWidth: 740,
1903
+ wideMaxWidth: 1080,
1904
+ sectionSpacing: "comfortable",
1905
+ cornerRadius: 12,
1906
+ divider: "thick-rule",
1907
+ backgroundRhythm: "tinted-panels",
1908
+ heroStyle: "stacked",
1909
+ headingTreatment: {
1910
+ eyebrow: "kicker",
1911
+ scale: "regular",
1912
+ underline: "accent-bar"
1913
+ },
1914
+ imageFraming: "polaroid",
1915
+ shadow: "soft",
1916
+ quoteMark: "oversized-glyph",
1917
+ numeralStyle: "boxed"
1918
+ },
1919
+ accentRotation: {
1920
+ strategy: "alternate-two"
1921
+ }
1402
1922
  }
1403
1923
  };
1404
1924
 
@@ -1407,7 +1927,7 @@ var gezellig_default = {
1407
1927
  schemaVersion: "1",
1408
1928
  id: "gezellig",
1409
1929
  name: "Gezellig",
1410
- description: "Warm sage + terracotta palette inspired by the Gezel desktop app. Subtle orange-tinted dark background, cream text, sage and terracotta accents.",
1930
+ description: "Cozy, warm-hued palette with a subtle orange-tinted dark background, cream text, and sage and terracotta accents.",
1411
1931
  colors: {
1412
1932
  primary: "#b0724c",
1413
1933
  secondary: "#667f62",
@@ -1494,6 +2014,36 @@ var gezellig_default = {
1494
2014
  }
1495
2015
  }
1496
2016
  ]
2017
+ },
2018
+ pageStyle: {
2019
+ family: "soft",
2020
+ tokens: {
2021
+ contentMaxWidth: 740,
2022
+ wideMaxWidth: 1060,
2023
+ sectionSpacing: "comfortable",
2024
+ cornerRadius: 16,
2025
+ divider: "dotted",
2026
+ backgroundRhythm: "tinted-panels",
2027
+ heroStyle: "stacked",
2028
+ headingTreatment: {
2029
+ eyebrow: "kicker",
2030
+ scale: "regular",
2031
+ case: "none"
2032
+ },
2033
+ imageFraming: "circle-accent",
2034
+ shadow: "soft",
2035
+ quoteMark: "oversized-glyph",
2036
+ numeralStyle: "plain",
2037
+ pattern: "noise"
2038
+ },
2039
+ sections: {
2040
+ "quote-band": {
2041
+ background: "alternate"
2042
+ }
2043
+ },
2044
+ accentRotation: {
2045
+ strategy: "alternate-two"
2046
+ }
1497
2047
  }
1498
2048
  };
1499
2049
 
@@ -1789,6 +2339,24 @@ export {
1789
2339
  contrastRatio,
1790
2340
  pickContrastingText,
1791
2341
  deriveScale,
2342
+ PAGE_SECTION_KINDS,
2343
+ PAGE_DESIGN_FAMILIES,
2344
+ PAGE_SECTION_SPACINGS,
2345
+ PAGE_DIVIDERS,
2346
+ PAGE_BACKGROUND_RHYTHMS,
2347
+ PAGE_HERO_STYLES,
2348
+ PAGE_EYEBROWS,
2349
+ PAGE_HEADING_SCALES,
2350
+ PAGE_HEADING_CASES,
2351
+ PAGE_HEADING_UNDERLINES,
2352
+ PAGE_IMAGE_FRAMINGS,
2353
+ PAGE_SHADOWS,
2354
+ PAGE_QUOTE_MARKS,
2355
+ PAGE_NUMERAL_STYLES,
2356
+ PAGE_PATTERNS,
2357
+ PAGE_EMPHASES,
2358
+ PAGE_BACKGROUNDS,
2359
+ PAGE_ACCENT_STRATEGIES,
1792
2360
  validateTheme,
1793
2361
  assertTheme,
1794
2362
  FRONTMATTER_CUSTOM_THEMES_KEY,
@@ -1812,4 +2380,4 @@ export {
1812
2380
  guessFontFallback,
1813
2381
  matchFontFamily
1814
2382
  };
1815
- //# sourceMappingURL=chunk-6PJRB2CF.js.map
2383
+ //# sourceMappingURL=chunk-JHZWYRSW.js.map