@getvitops/generator 8.3.0-alpha.3 → 8.3.0-alpha.5

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 (43) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/assets/css/index.css +1 -0
  3. package/assets/css/layout-utilities.css +13 -0
  4. package/assets/css/layout.css +23 -0
  5. package/assets/css/patterns/carousel.css +9 -2
  6. package/assets/css/patterns/details.css +14 -0
  7. package/assets/css/patterns/forms.css +14 -1
  8. package/assets/css/patterns/logos.css +14 -0
  9. package/assets/css/patterns/masthead.css +201 -0
  10. package/assets/css/patterns/section.css +10 -0
  11. package/assets/css/patterns/sitenav.css +111 -0
  12. package/assets/css/patterns/steps.css +85 -3
  13. package/assets/css/patterns/subgrid.css +9 -0
  14. package/assets/css/patterns/tone.css +16 -4
  15. package/assets/js/elements.js +1 -1
  16. package/config.schema.json +228 -5
  17. package/dist/config-BaMpGSUZ.mjs +1856 -0
  18. package/dist/config-BaMpGSUZ.mjs.map +1 -0
  19. package/dist/{config-D5xuz8--.mjs → config-Bie2MqRh.mjs} +7 -4
  20. package/dist/config-Bie2MqRh.mjs.map +1 -0
  21. package/dist/config-C1p83v26.mjs +1832 -0
  22. package/dist/config-C1p83v26.mjs.map +1 -0
  23. package/dist/config.d.mts +270 -7
  24. package/dist/config.d.mts.map +1 -1
  25. package/dist/config.mjs +1 -1
  26. package/dist/index.d.mts +2 -2
  27. package/dist/index.d.mts.map +1 -1
  28. package/dist/index.mjs +63 -9
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/{schema-C-P9dF9F.d.mts → schema-7FhnyZZy.d.mts} +9 -1
  31. package/dist/schema-7FhnyZZy.d.mts.map +1 -0
  32. package/dist/{tokens-CaIGQQLk.mjs → tokens-D0DsePUl.mjs} +11 -7
  33. package/dist/tokens-D0DsePUl.mjs.map +1 -0
  34. package/dist/{tokens-DH5cpvKd.d.mts → tokens-GQUicLBj.d.mts} +10 -3
  35. package/dist/tokens-GQUicLBj.d.mts.map +1 -0
  36. package/dist/tokens.d.mts +1 -1
  37. package/dist/tokens.mjs +1 -1
  38. package/package.json +4 -4
  39. package/schema.json +19 -0
  40. package/dist/config-D5xuz8--.mjs.map +0 -1
  41. package/dist/schema-C-P9dF9F.d.mts.map +0 -1
  42. package/dist/tokens-CaIGQQLk.mjs.map +0 -1
  43. package/dist/tokens-DH5cpvKd.d.mts.map +0 -1
package/dist/config.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as DesignSystem } from "./schema-C-P9dF9F.mjs";
1
+ import { t as DesignSystem } from "./schema-7FhnyZZy.mjs";
2
2
  import { AD_PROVIDERS, AdPropertySchema, AdProvider, BIGIN_DATA_CENTERS, CRM_PROVIDERS, CrmProviderConfig, IndexNowSchema, IndexingSchema, ReviewLocationSchema, ReviewsSchema, SearchConsoleSchema, SearchConsoleSetupSchema } from "@getvitops/config";
3
3
  import * as z from "@zod/mini";
4
4
  declare const PostalAddressSchema: z.ZodMiniObject<{
@@ -292,7 +292,7 @@ declare const SiteSectionSchema: z.ZodMiniObject<{
292
292
  date: z.ZodMiniOptional<z.ZodMiniString<string>>;
293
293
  }, z.core.$strict>>;
294
294
  }, z.core.$strict>>>;
295
- templates: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
295
+ templates: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
296
296
  type: z.ZodMiniLiteral<"nav">;
297
297
  tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
298
298
  present: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
@@ -320,6 +320,7 @@ declare const SiteSectionSchema: z.ZodMiniObject<{
320
320
  textarea: "textarea";
321
321
  select: "select";
322
322
  checkbox: "checkbox";
323
+ checkboxes: "checkboxes";
323
324
  radio: "radio";
324
325
  hidden: "hidden";
325
326
  }>;
@@ -338,13 +339,79 @@ declare const SiteSectionSchema: z.ZodMiniObject<{
338
339
  type: z.ZodMiniLiteral<"nodes">;
339
340
  tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
340
341
  nodes: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
341
- }, z.core.$strict>]>>>;
342
+ }, z.core.$strict>], "type">>>;
342
343
  navigation: z.ZodMiniOptional<z.ZodMiniObject<{
343
344
  activeTemplate: z.ZodMiniOptional<z.ZodMiniObject<{
344
345
  default: z.ZodMiniOptional<z.ZodMiniString<string>>;
345
346
  breakpoints: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
346
347
  }, z.core.$strict>>;
347
348
  }, z.core.$strict>>;
349
+ chrome: z.ZodMiniOptional<z.ZodMiniObject<{
350
+ masthead: z.ZodMiniOptional<z.ZodMiniObject<{
351
+ position: z.ZodMiniOptional<z.ZodMiniEnum<{
352
+ static: "static";
353
+ sticky: "sticky";
354
+ fixed: "fixed";
355
+ }>>;
356
+ behavior: z.ZodMiniOptional<z.ZodMiniEnum<{
357
+ always: "always";
358
+ "hide-on-scroll": "hide-on-scroll";
359
+ }>>;
360
+ surface: z.ZodMiniOptional<z.ZodMiniEnum<{
361
+ solid: "solid";
362
+ glass: "glass";
363
+ transparent: "transparent";
364
+ "transparent-until-scrolled": "transparent-until-scrolled";
365
+ }>>;
366
+ tone: z.ZodMiniOptional<z.ZodMiniString<string>>;
367
+ layout: z.ZodMiniOptional<z.ZodMiniEnum<{
368
+ full: "full";
369
+ inset: "inset";
370
+ floating: "floating";
371
+ }>>;
372
+ width: z.ZodMiniOptional<z.ZodMiniEnum<{
373
+ full: "full";
374
+ content: "content";
375
+ }>>;
376
+ elevation: z.ZodMiniOptional<z.ZodMiniObject<{
377
+ shadow: z.ZodMiniOptional<z.ZodMiniString<string>>;
378
+ border: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
379
+ onScroll: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
380
+ }, z.core.$strict>>;
381
+ height: z.ZodMiniOptional<z.ZodMiniString<string>>;
382
+ inset: z.ZodMiniOptional<z.ZodMiniString<string>>;
383
+ }, z.core.$strict>>;
384
+ nav: z.ZodMiniOptional<z.ZodMiniObject<{
385
+ breakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
386
+ sm: "sm";
387
+ md: "md";
388
+ lg: "lg";
389
+ xl: "xl";
390
+ }>>;
391
+ mobileBreakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
392
+ sm: "sm";
393
+ md: "md";
394
+ lg: "lg";
395
+ xl: "xl";
396
+ }>>;
397
+ megaBreakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
398
+ sm: "sm";
399
+ md: "md";
400
+ lg: "lg";
401
+ xl: "xl";
402
+ }>>;
403
+ depth: z.ZodMiniOptional<z.ZodMiniInt>;
404
+ megaDepth: z.ZodMiniOptional<z.ZodMiniInt>;
405
+ compact: z.ZodMiniOptional<z.ZodMiniEnum<{
406
+ drawer: "drawer";
407
+ dropdown: "dropdown";
408
+ }>>;
409
+ drawerSide: z.ZodMiniOptional<z.ZodMiniEnum<{
410
+ start: "start";
411
+ end: "end";
412
+ }>>;
413
+ }, z.core.$strict>>;
414
+ }, z.core.$strict>>;
348
415
  seo: z.ZodMiniOptional<z.ZodMiniObject<{
349
416
  siteName: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
350
417
  titleTemplate: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
@@ -424,6 +491,21 @@ declare const SiteSectionSchema: z.ZodMiniObject<{
424
491
  analytics: "analytics";
425
492
  }>>;
426
493
  platforms: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
494
+ phoneNumbers: z.ZodMiniOptional<z.ZodMiniObject<{
495
+ number: z.ZodMiniString<string>;
496
+ sources: z.ZodMiniRecord<z.ZodMiniEnum<{
497
+ google: "google";
498
+ meta: "meta";
499
+ linkedin: "linkedin";
500
+ reddit: "reddit";
501
+ tiktok: "tiktok";
502
+ microsoft: "microsoft";
503
+ pinterest: "pinterest";
504
+ snapchat: "snapchat";
505
+ "default-paid": "default-paid";
506
+ }> & z.core.$partial, z.ZodMiniString<string>>;
507
+ provider: z.ZodMiniOptional<z.ZodMiniString<string>>;
508
+ }, z.core.$strict>>;
427
509
  }, z.core.$strict>>;
428
510
  ads: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniEnum<{
429
511
  google: "google";
@@ -447,6 +529,11 @@ declare const SiteSectionSchema: z.ZodMiniObject<{
447
529
  email: z.ZodMiniOptional<z.ZodMiniString<string>>;
448
530
  form: z.ZodMiniOptional<z.ZodMiniString<string>>;
449
531
  }, z.core.$strict>]>>;
532
+ callTracking: z.ZodMiniOptional<z.ZodMiniObject<{
533
+ label: z.ZodMiniString<string>;
534
+ number: z.ZodMiniString<string>;
535
+ cache: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
536
+ }, z.core.$strict>>;
450
537
  reporting: z.ZodMiniOptional<z.ZodMiniEnum<{
451
538
  client: "client";
452
539
  server: "server";
@@ -857,6 +944,7 @@ export declare const ConfigSchema: z.ZodMiniObject<{
857
944
  light: "light";
858
945
  dark: "dark";
859
946
  }>>;
947
+ acknowledgeContrast: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
860
948
  }, z.core.$strict>]>>>;
861
949
  utilities: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
862
950
  fill: "fill";
@@ -1162,7 +1250,7 @@ export declare const ConfigSchema: z.ZodMiniObject<{
1162
1250
  date: z.ZodMiniOptional<z.ZodMiniString<string>>;
1163
1251
  }, z.core.$strict>>;
1164
1252
  }, z.core.$strict>>>;
1165
- templates: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
1253
+ templates: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
1166
1254
  type: z.ZodMiniLiteral<"nav">;
1167
1255
  tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
1168
1256
  present: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
@@ -1190,6 +1278,7 @@ export declare const ConfigSchema: z.ZodMiniObject<{
1190
1278
  textarea: "textarea";
1191
1279
  select: "select";
1192
1280
  checkbox: "checkbox";
1281
+ checkboxes: "checkboxes";
1193
1282
  radio: "radio";
1194
1283
  hidden: "hidden";
1195
1284
  }>;
@@ -1208,13 +1297,79 @@ export declare const ConfigSchema: z.ZodMiniObject<{
1208
1297
  type: z.ZodMiniLiteral<"nodes">;
1209
1298
  tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
1210
1299
  nodes: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
1211
- }, z.core.$strict>]>>>;
1300
+ }, z.core.$strict>], "type">>>;
1212
1301
  navigation: z.ZodMiniOptional<z.ZodMiniObject<{
1213
1302
  activeTemplate: z.ZodMiniOptional<z.ZodMiniObject<{
1214
1303
  default: z.ZodMiniOptional<z.ZodMiniString<string>>;
1215
1304
  breakpoints: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
1216
1305
  }, z.core.$strict>>;
1217
1306
  }, z.core.$strict>>;
1307
+ chrome: z.ZodMiniOptional<z.ZodMiniObject<{
1308
+ masthead: z.ZodMiniOptional<z.ZodMiniObject<{
1309
+ position: z.ZodMiniOptional<z.ZodMiniEnum<{
1310
+ static: "static";
1311
+ sticky: "sticky";
1312
+ fixed: "fixed";
1313
+ }>>;
1314
+ behavior: z.ZodMiniOptional<z.ZodMiniEnum<{
1315
+ always: "always";
1316
+ "hide-on-scroll": "hide-on-scroll";
1317
+ }>>;
1318
+ surface: z.ZodMiniOptional<z.ZodMiniEnum<{
1319
+ solid: "solid";
1320
+ glass: "glass";
1321
+ transparent: "transparent";
1322
+ "transparent-until-scrolled": "transparent-until-scrolled";
1323
+ }>>;
1324
+ tone: z.ZodMiniOptional<z.ZodMiniString<string>>;
1325
+ layout: z.ZodMiniOptional<z.ZodMiniEnum<{
1326
+ full: "full";
1327
+ inset: "inset";
1328
+ floating: "floating";
1329
+ }>>;
1330
+ width: z.ZodMiniOptional<z.ZodMiniEnum<{
1331
+ full: "full";
1332
+ content: "content";
1333
+ }>>;
1334
+ elevation: z.ZodMiniOptional<z.ZodMiniObject<{
1335
+ shadow: z.ZodMiniOptional<z.ZodMiniString<string>>;
1336
+ border: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
1337
+ onScroll: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
1338
+ }, z.core.$strict>>;
1339
+ height: z.ZodMiniOptional<z.ZodMiniString<string>>;
1340
+ inset: z.ZodMiniOptional<z.ZodMiniString<string>>;
1341
+ }, z.core.$strict>>;
1342
+ nav: z.ZodMiniOptional<z.ZodMiniObject<{
1343
+ breakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
1344
+ sm: "sm";
1345
+ md: "md";
1346
+ lg: "lg";
1347
+ xl: "xl";
1348
+ }>>;
1349
+ mobileBreakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
1350
+ sm: "sm";
1351
+ md: "md";
1352
+ lg: "lg";
1353
+ xl: "xl";
1354
+ }>>;
1355
+ megaBreakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
1356
+ sm: "sm";
1357
+ md: "md";
1358
+ lg: "lg";
1359
+ xl: "xl";
1360
+ }>>;
1361
+ depth: z.ZodMiniOptional<z.ZodMiniInt>;
1362
+ megaDepth: z.ZodMiniOptional<z.ZodMiniInt>;
1363
+ compact: z.ZodMiniOptional<z.ZodMiniEnum<{
1364
+ drawer: "drawer";
1365
+ dropdown: "dropdown";
1366
+ }>>;
1367
+ drawerSide: z.ZodMiniOptional<z.ZodMiniEnum<{
1368
+ start: "start";
1369
+ end: "end";
1370
+ }>>;
1371
+ }, z.core.$strict>>;
1372
+ }, z.core.$strict>>;
1218
1373
  seo: z.ZodMiniOptional<z.ZodMiniObject<{
1219
1374
  siteName: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
1220
1375
  titleTemplate: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
@@ -1294,6 +1449,21 @@ export declare const ConfigSchema: z.ZodMiniObject<{
1294
1449
  analytics: "analytics";
1295
1450
  }>>;
1296
1451
  platforms: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
1452
+ phoneNumbers: z.ZodMiniOptional<z.ZodMiniObject<{
1453
+ number: z.ZodMiniString<string>;
1454
+ sources: z.ZodMiniRecord<z.ZodMiniEnum<{
1455
+ google: "google";
1456
+ meta: "meta";
1457
+ linkedin: "linkedin";
1458
+ reddit: "reddit";
1459
+ tiktok: "tiktok";
1460
+ microsoft: "microsoft";
1461
+ pinterest: "pinterest";
1462
+ snapchat: "snapchat";
1463
+ "default-paid": "default-paid";
1464
+ }> & z.core.$partial, z.ZodMiniString<string>>;
1465
+ provider: z.ZodMiniOptional<z.ZodMiniString<string>>;
1466
+ }, z.core.$strict>>;
1297
1467
  }, z.core.$strict>>;
1298
1468
  ads: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniEnum<{
1299
1469
  google: "google";
@@ -1317,6 +1487,11 @@ export declare const ConfigSchema: z.ZodMiniObject<{
1317
1487
  email: z.ZodMiniOptional<z.ZodMiniString<string>>;
1318
1488
  form: z.ZodMiniOptional<z.ZodMiniString<string>>;
1319
1489
  }, z.core.$strict>]>>;
1490
+ callTracking: z.ZodMiniOptional<z.ZodMiniObject<{
1491
+ label: z.ZodMiniString<string>;
1492
+ number: z.ZodMiniString<string>;
1493
+ cache: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
1494
+ }, z.core.$strict>>;
1320
1495
  reporting: z.ZodMiniOptional<z.ZodMiniEnum<{
1321
1496
  client: "client";
1322
1497
  server: "server";
@@ -1616,6 +1791,7 @@ export declare const configJsonSchema: {
1616
1791
  light: "light";
1617
1792
  dark: "dark";
1618
1793
  }>>;
1794
+ acknowledgeContrast: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
1619
1795
  }, z.core.$strict>]>>>;
1620
1796
  utilities: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
1621
1797
  fill: "fill";
@@ -1921,7 +2097,7 @@ export declare const configJsonSchema: {
1921
2097
  date: z.ZodMiniOptional<z.ZodMiniString<string>>;
1922
2098
  }, z.core.$strict>>;
1923
2099
  }, z.core.$strict>>>;
1924
- templates: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniObject<{
2100
+ templates: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
1925
2101
  type: z.ZodMiniLiteral<"nav">;
1926
2102
  tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
1927
2103
  present: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnknown>>;
@@ -1949,6 +2125,7 @@ export declare const configJsonSchema: {
1949
2125
  textarea: "textarea";
1950
2126
  select: "select";
1951
2127
  checkbox: "checkbox";
2128
+ checkboxes: "checkboxes";
1952
2129
  radio: "radio";
1953
2130
  hidden: "hidden";
1954
2131
  }>;
@@ -1967,13 +2144,79 @@ export declare const configJsonSchema: {
1967
2144
  type: z.ZodMiniLiteral<"nodes">;
1968
2145
  tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
1969
2146
  nodes: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
1970
- }, z.core.$strict>]>>>;
2147
+ }, z.core.$strict>], "type">>>;
1971
2148
  navigation: z.ZodMiniOptional<z.ZodMiniObject<{
1972
2149
  activeTemplate: z.ZodMiniOptional<z.ZodMiniObject<{
1973
2150
  default: z.ZodMiniOptional<z.ZodMiniString<string>>;
1974
2151
  breakpoints: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
1975
2152
  }, z.core.$strict>>;
1976
2153
  }, z.core.$strict>>;
2154
+ chrome: z.ZodMiniOptional<z.ZodMiniObject<{
2155
+ masthead: z.ZodMiniOptional<z.ZodMiniObject<{
2156
+ position: z.ZodMiniOptional<z.ZodMiniEnum<{
2157
+ static: "static";
2158
+ sticky: "sticky";
2159
+ fixed: "fixed";
2160
+ }>>;
2161
+ behavior: z.ZodMiniOptional<z.ZodMiniEnum<{
2162
+ always: "always";
2163
+ "hide-on-scroll": "hide-on-scroll";
2164
+ }>>;
2165
+ surface: z.ZodMiniOptional<z.ZodMiniEnum<{
2166
+ solid: "solid";
2167
+ glass: "glass";
2168
+ transparent: "transparent";
2169
+ "transparent-until-scrolled": "transparent-until-scrolled";
2170
+ }>>;
2171
+ tone: z.ZodMiniOptional<z.ZodMiniString<string>>;
2172
+ layout: z.ZodMiniOptional<z.ZodMiniEnum<{
2173
+ full: "full";
2174
+ inset: "inset";
2175
+ floating: "floating";
2176
+ }>>;
2177
+ width: z.ZodMiniOptional<z.ZodMiniEnum<{
2178
+ full: "full";
2179
+ content: "content";
2180
+ }>>;
2181
+ elevation: z.ZodMiniOptional<z.ZodMiniObject<{
2182
+ shadow: z.ZodMiniOptional<z.ZodMiniString<string>>;
2183
+ border: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
2184
+ onScroll: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
2185
+ }, z.core.$strict>>;
2186
+ height: z.ZodMiniOptional<z.ZodMiniString<string>>;
2187
+ inset: z.ZodMiniOptional<z.ZodMiniString<string>>;
2188
+ }, z.core.$strict>>;
2189
+ nav: z.ZodMiniOptional<z.ZodMiniObject<{
2190
+ breakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
2191
+ sm: "sm";
2192
+ md: "md";
2193
+ lg: "lg";
2194
+ xl: "xl";
2195
+ }>>;
2196
+ mobileBreakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
2197
+ sm: "sm";
2198
+ md: "md";
2199
+ lg: "lg";
2200
+ xl: "xl";
2201
+ }>>;
2202
+ megaBreakpoint: z.ZodMiniOptional<z.ZodMiniEnum<{
2203
+ sm: "sm";
2204
+ md: "md";
2205
+ lg: "lg";
2206
+ xl: "xl";
2207
+ }>>;
2208
+ depth: z.ZodMiniOptional<z.ZodMiniInt>;
2209
+ megaDepth: z.ZodMiniOptional<z.ZodMiniInt>;
2210
+ compact: z.ZodMiniOptional<z.ZodMiniEnum<{
2211
+ drawer: "drawer";
2212
+ dropdown: "dropdown";
2213
+ }>>;
2214
+ drawerSide: z.ZodMiniOptional<z.ZodMiniEnum<{
2215
+ start: "start";
2216
+ end: "end";
2217
+ }>>;
2218
+ }, z.core.$strict>>;
2219
+ }, z.core.$strict>>;
1977
2220
  seo: z.ZodMiniOptional<z.ZodMiniObject<{
1978
2221
  siteName: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
1979
2222
  titleTemplate: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>]>>;
@@ -2053,6 +2296,21 @@ export declare const configJsonSchema: {
2053
2296
  analytics: "analytics";
2054
2297
  }>>;
2055
2298
  platforms: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
2299
+ phoneNumbers: z.ZodMiniOptional<z.ZodMiniObject<{
2300
+ number: z.ZodMiniString<string>;
2301
+ sources: z.ZodMiniRecord<z.ZodMiniEnum<{
2302
+ google: "google";
2303
+ meta: "meta";
2304
+ linkedin: "linkedin";
2305
+ reddit: "reddit";
2306
+ tiktok: "tiktok";
2307
+ microsoft: "microsoft";
2308
+ pinterest: "pinterest";
2309
+ snapchat: "snapchat";
2310
+ "default-paid": "default-paid";
2311
+ }> & z.core.$partial, z.ZodMiniString<string>>;
2312
+ provider: z.ZodMiniOptional<z.ZodMiniString<string>>;
2313
+ }, z.core.$strict>>;
2056
2314
  }, z.core.$strict>>;
2057
2315
  ads: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniEnum<{
2058
2316
  google: "google";
@@ -2076,6 +2334,11 @@ export declare const configJsonSchema: {
2076
2334
  email: z.ZodMiniOptional<z.ZodMiniString<string>>;
2077
2335
  form: z.ZodMiniOptional<z.ZodMiniString<string>>;
2078
2336
  }, z.core.$strict>]>>;
2337
+ callTracking: z.ZodMiniOptional<z.ZodMiniObject<{
2338
+ label: z.ZodMiniString<string>;
2339
+ number: z.ZodMiniString<string>;
2340
+ cache: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
2341
+ }, z.core.$strict>>;
2079
2342
  reporting: z.ZodMiniOptional<z.ZodMiniEnum<{
2080
2343
  client: "client";
2081
2344
  server: "server";
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.mts","names":[],"sources":["../src/config.ts"],"mappings":"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"}
1
+ {"version":3,"file":"config.d.mts","names":[],"sources":["../src/config.ts"],"mappings":"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"}
package/dist/config.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { C as resolveTheme, E as validateConfig, S as resolvePrivacyContact, T as stripNulls, _ as getAt, a as CONFIG_VERSION, b as resolveConfig, c as JURISDICTIONS, d as SiteFontSchema, f as configJsonSchema, g as formatConfig, h as experimentDimensionWarnings, i as CONFIG_SCHEMA_URL, l as JURISDICTION_COUNTRIES, m as designSystemPath, n as BIGIN_DATA_CENTERS, o as CRM_PROVIDERS, p as deepMerge, r as CONFIG_SCHEMA_LOCAL_PATH, s as ConfigSchema, t as AD_PROVIDERS, u as PLAN_CAPABILITIES, v as isConfig, w as setAt, x as resolveInput, y as mergePatch } from "./config-D5xuz8--.mjs";
1
+ import { C as resolveTheme, E as validateConfig, S as resolvePrivacyContact, T as stripNulls, _ as getAt, a as CONFIG_VERSION, b as resolveConfig, c as JURISDICTIONS, d as SiteFontSchema, f as configJsonSchema, g as formatConfig, h as experimentDimensionWarnings, i as CONFIG_SCHEMA_URL, l as JURISDICTION_COUNTRIES, m as designSystemPath, n as BIGIN_DATA_CENTERS, o as CRM_PROVIDERS, p as deepMerge, r as CONFIG_SCHEMA_LOCAL_PATH, s as ConfigSchema, t as AD_PROVIDERS, u as PLAN_CAPABILITIES, v as isConfig, w as setAt, x as resolveInput, y as mergePatch } from "./config-BaMpGSUZ.mjs";
2
2
 
3
3
  export { AD_PROVIDERS, BIGIN_DATA_CENTERS, CONFIG_SCHEMA_LOCAL_PATH, CONFIG_SCHEMA_URL, CONFIG_VERSION, CRM_PROVIDERS, ConfigSchema, JURISDICTIONS, JURISDICTION_COUNTRIES, PLAN_CAPABILITIES, SiteFontSchema, configJsonSchema, deepMerge, designSystemPath, experimentDimensionWarnings, formatConfig, getAt, isConfig, mergePatch, resolveConfig, resolveInput, resolvePrivacyContact, resolveTheme, setAt, stripNulls, validateConfig };
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
- import { a as ValidationResult, i as SCHEMA_URL, n as DesignSystemSchema, o as jsonSchema, r as SCHEMA_LOCAL_PATH, s as validate, t as DesignSystem } from "./schema-C-P9dF9F.mjs";
1
+ import { a as ValidationResult, i as SCHEMA_URL, n as DesignSystemSchema, o as jsonSchema, r as SCHEMA_LOCAL_PATH, s as validate, t as DesignSystem } from "./schema-7FhnyZZy.mjs";
2
2
  import { AD_PROVIDERS, AdProvider, BIGIN_DATA_CENTERS, CONFIG_SCHEMA_LOCAL_PATH, CONFIG_SCHEMA_URL, CONFIG_VERSION, CRM_PROVIDERS, Config, ConfigSchema, ConfigValidationResult, ContactObject, CrmProviderConfig, JURISDICTIONS, JURISDICTION_COUNTRIES, Jurisdiction, OrganizationConfig, PLAN_CAPABILITIES, PlanCapability, PostalAddress, ResolvedInput, SiteAdProperty, SiteExperiment, SiteFont, SiteFontSchema, SiteIndexNow, SiteIndexing, SitePlan, SiteReviewLocation, SiteReviews, SiteSearchConsole, SiteSearchConsoleSetup, SiteSection, configJsonSchema, deepMerge, designSystemPath, experimentDimensionWarnings, formatConfig, getAt, isConfig, mergePatch, resolveConfig, resolveInput, resolvePrivacyContact, resolveTheme, setAt, stripNulls, validateConfig } from "./config.mjs";
3
3
  import { a as spriteId, i as loadIconSvg, n as IconSpriteResult, r as buildIconSprite, t as IconSpriteOptions } from "./icons-sprite-CQ5Zj4go.mjs";
4
- import { C as roleHue, S as TYPO_KEYMAP, T as roleSolidOptions, _ as DARK_SEL, a as RoleKind, b as RoleSpec, c as expandPalette, f as patchToOverrideCss, g as BASE_HOOK, h as validateColorContract, i as NUMERIC_STEPS, l as functionalRole, m as tokenVar, n as ExpandedHue, o as buildReverseIndex, p as tokenClass, r as FunctionalRole, s as checkContrast, t as CONTRAST, v as REQUIRED_ROLES, w as roleKind, x as TW_CLASH, y as ROLE_TOKEN_KEYS } from "./tokens-DH5cpvKd.mjs";
4
+ import { C as roleHue, S as TYPO_KEYMAP, T as roleSolidOptions, _ as DARK_SEL, a as RoleKind, b as RoleSpec, c as expandPalette, f as patchToOverrideCss, g as BASE_HOOK, h as validateColorContract, i as NUMERIC_STEPS, l as functionalRole, m as tokenVar, n as ExpandedHue, o as buildReverseIndex, p as tokenClass, r as FunctionalRole, s as checkContrast, t as CONTRAST, v as REQUIRED_ROLES, w as roleKind, x as TW_CLASH, y as ROLE_TOKEN_KEYS } from "./tokens-GQUicLBj.mjs";
5
5
  import { ContentNode } from "@getvitops/utils";
6
6
  type Format = 'bricks' | 'css' | 'tailwind' | 'design';
7
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/generate.ts","../src/docs.ts","../src/tiers.ts","../src/token-refs.ts","../src/legal/providers.ts","../src/legal/derive.ts","../src/legal/templates/cookies.ca.ts","../src/legal/templates/cookies.qc.ts","../src/legal/templates/privacy.ca.ts","../src/legal/templates/privacy.qc.ts","../src/legal/templates/terms.ca.ts","../src/legal/templates/terms.qc.ts","../src/legal/templates/index.ts","../src/legal/render.ts","../src/legal/index.ts","../src/robots.ts","../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/generate.ts","../src/docs.ts","../src/tiers.ts","../src/token-refs.ts","../src/legal/providers.ts","../src/legal/derive.ts","../src/legal/templates/cookies.ca.ts","../src/legal/templates/cookies.qc.ts","../src/legal/templates/privacy.ca.ts","../src/legal/templates/privacy.qc.ts","../src/legal/templates/terms.ca.ts","../src/legal/templates/terms.qc.ts","../src/legal/templates/index.ts","../src/legal/render.ts","../src/legal/index.ts","../src/robots.ts","../src/index.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { C as roleKind, S as roleHue, _ as ROLE_TOKEN_KEYS, a as expandPalette, b as TYPO_KEYMAP, c as monotonicityErrors, d as tokenVar, f as validateColorContract, g as REQUIRED_ROLES, h as LAYOUT_TOKENS, i as checkContrast, l as patchToOverrideCss, m as DARK_SEL, n as NUMERIC_STEPS, o as functionalRole, p as BASE_HOOK, r as buildReverseIndex, s as ladderWarnings, t as CONTRAST, u as tokenClass, v as SYSTEM_DARK_SEL, w as roleSolidOptions, x as layoutDecls, y as TW_CLASH } from "./tokens-CaIGQQLk.mjs";
2
- import { A as jsonSchema, C as resolveTheme, D as DesignSystemSchema, E as validateConfig, M as movedTokens, O as SCHEMA_LOCAL_PATH, S as resolvePrivacyContact, T as stripNulls, _ as getAt, a as CONFIG_VERSION, b as resolveConfig, c as JURISDICTIONS, d as SiteFontSchema, f as configJsonSchema, g as formatConfig, h as experimentDimensionWarnings, i as CONFIG_SCHEMA_URL, j as validate, k as SCHEMA_URL, l as JURISDICTION_COUNTRIES, m as designSystemPath, n as BIGIN_DATA_CENTERS, o as CRM_PROVIDERS, p as deepMerge, r as CONFIG_SCHEMA_LOCAL_PATH, s as ConfigSchema, t as AD_PROVIDERS, u as PLAN_CAPABILITIES, v as isConfig, w as setAt, x as resolveInput, y as mergePatch } from "./config-D5xuz8--.mjs";
1
+ import { C as roleKind, S as roleHue, _ as ROLE_TOKEN_KEYS, a as expandPalette, b as TYPO_KEYMAP, c as monotonicityErrors, d as tokenVar, f as validateColorContract, g as REQUIRED_ROLES, h as LAYOUT_TOKENS, i as checkContrast, l as patchToOverrideCss, m as DARK_SEL, n as NUMERIC_STEPS, o as functionalRole, p as BASE_HOOK, r as buildReverseIndex, s as ladderWarnings, t as CONTRAST, u as tokenClass, v as SYSTEM_DARK_SEL, w as roleSolidOptions, x as layoutDecls, y as TW_CLASH } from "./tokens-D0DsePUl.mjs";
2
+ import { A as jsonSchema, C as resolveTheme, D as DesignSystemSchema, E as validateConfig, M as movedTokens, O as SCHEMA_LOCAL_PATH, S as resolvePrivacyContact, T as stripNulls, _ as getAt, a as CONFIG_VERSION, b as resolveConfig, c as JURISDICTIONS, d as SiteFontSchema, f as configJsonSchema, g as formatConfig, h as experimentDimensionWarnings, i as CONFIG_SCHEMA_URL, j as validate, k as SCHEMA_URL, l as JURISDICTION_COUNTRIES, m as designSystemPath, n as BIGIN_DATA_CENTERS, o as CRM_PROVIDERS, p as deepMerge, r as CONFIG_SCHEMA_LOCAL_PATH, s as ConfigSchema, t as AD_PROVIDERS, u as PLAN_CAPABILITIES, v as isConfig, w as setAt, x as resolveInput, y as mergePatch } from "./config-BaMpGSUZ.mjs";
3
3
  import { buildIconSprite, loadIconSvg, spriteId } from "./icons-sprite.mjs";
4
4
  import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
5
5
  import { dirname, join } from "node:path";
@@ -202,9 +202,11 @@ const TIERS = {
202
202
  "steps__body",
203
203
  "steps__title",
204
204
  "steps__text",
205
- "steps--row"
206
- ], "patterns/steps.css"),
207
- use: "`<ol class=\"steps tone\">` of `<li class=\"steps__item\">` each holding a `.steps__body` with a real heading. The number is a CSS counter and the connector line a pseudo-element; `.steps--row` runs it sideways when wide."
205
+ "steps--row",
206
+ "steps--cards",
207
+ "steps--animated"
208
+ ], "patterns/steps.css", true),
209
+ use: "`<ol class=\"steps tone\">` of `<li class=\"steps__item\">` each holding a `.steps__body` with a real heading. The number is a CSS counter and the connector line a pseudo-element; `.steps--row` runs it sideways when wide; `.steps--cards` puts each step in a card and `.steps--animated` draws the connector on scroll. The marker size and card geometry are the `steps` entry of `patterns.items` (`--steps-marker-size`, the `content` group tokens)."
208
210
  },
209
211
  stats: {
210
212
  emdash: ["vitops_stats"],
@@ -470,13 +472,15 @@ const TIERS = {
470
472
  "sitenav",
471
473
  "sitenav__link",
472
474
  "sitenav--drawer-start",
475
+ "sitenav--panel-dropdown",
476
+ "sitenav--mega",
473
477
  "navlist",
474
478
  "navlist--columns"
475
479
  ], "patterns/sitenav.css"),
476
480
  astro: [...a("SiteNav", "css"), ...a("SiteFooter", "css")],
477
481
  emdash: ["vitops_nav"],
478
482
  bricks: "vitops-sitenav",
479
- use: "`.sitenav` with `--bp-*` and a drawer direction. `<details>` + Invoker Commands, no JS. In Astro: `<SiteNav {...await loadNavMenus(getMenu)} />` renders EmDash menu `primary` (the default: dropdowns from `md`, drawer below) and, if they exist, `primary-mobile` (depth-1 nav below `md`) and `primary-mega` (mega panels from `xl`) — adding the menu in the admin is the whole change. An item's `titleAttr` is its description. `<SiteFooter sitemap legal name>` renders `footer-sitemap` + `footer-legal` + the copyright line. For a menu inside page content (a site map, a section's links, footer-style columns) use `.navlist` — plain nested lists, `--inline` / `--columns` — or, in EmDash, the `vitops_nav` block (menu, layout `list|inline|columns|sitenav`, depth 1–3, heading, tone). Name each `<nav>` uniquely: the header is `Primary` and the footer `Site map` / `Legal`, and the block never reuses those."
483
+ use: "`.sitenav` with `--bp-*` and a drawer direction. `<details>` + Invoker Commands, no JS. In Astro: `<SiteNav {...await loadNavMenus(getMenu)} />` renders EmDash menu `primary` (the default: dropdowns from `md`, drawer below) and, if they exist, `primary-mobile` (depth-1 nav below `md`) and `primary-mega` (mega panels from `xl`) — adding the menu in the admin is the whole change. An item's `titleAttr` is its description. Per-site behaviour lives in `site.chrome.nav` — `<SiteNav {...nav} {...resolveNavOptions(site)} />` sets `compact` (`drawer` | `dropdown`: an anchored, columnar panel under the toggle), `drawerSide`, the breakpoints and depths. For a mega panel's featured column pass `megaPanel={VitopsMegaPanel}` (`@getvitops/emdash/astro`): it renders the widget area `mega-<item slug>` (or the item's `mega-area:<name>` class) and nothing when there is none. `<SiteFooter sitemap legal name>` renders `footer-sitemap` + `footer-legal` + the copyright line. For a menu inside page content (a site map, a section's links, footer-style columns) use `.navlist` — plain nested lists, `--inline` / `--columns` — or, in EmDash, the `vitops_nav` block (menu, layout `list|inline|columns|sitenav`, depth 1–3, heading, tone). Name each `<nav>` uniquely: the header is `Primary` and the footer `Site map` / `Legal`, and the block never reuses those."
480
484
  },
481
485
  "split-link": {
482
486
  css: c([
@@ -599,6 +603,16 @@ const TIERS = {
599
603
  ], "patterns/nav.css", true),
600
604
  use: "`.menu` / `.navbar`. See `navbar` and `navshell` for the newer shells."
601
605
  },
606
+ masthead: {
607
+ css: c([
608
+ "masthead",
609
+ "masthead--sticky",
610
+ "masthead--glass",
611
+ "masthead--floating"
612
+ ], "patterns/masthead.css"),
613
+ astro: a("Masthead", "css"),
614
+ use: "`<Masthead config={site}>` from `site.chrome.masthead` (position `static|sticky|fixed`, behavior `always|hide-on-scroll`, surface `solid|glass|transparent|transparent-until-scrolled`, layout `full|inset|floating`, `inset` and `height` lengths — fluid ones like `clamp(3.5rem, 8cqi, 4.5rem)` are fine — elevation shadow/border, `onScroll`); a prop overrides one field for a layout. Slots `brand`, default (the `<SiteNav>`), `actions`. Pure CSS — hide-on-scroll and the *-on-scroll states are `scroll-state()` queries that only subtract from a settled bar, so a browser without them (Firefox today) shows a visible, solid, elevated one. It never takes `role=\"banner\"`: a body-level `<header>` already is the landmark, and `.banner` means the announcement bar."
615
+ },
602
616
  navbar: {
603
617
  css: c([
604
618
  "navbar",
@@ -4054,7 +4068,8 @@ function fieldPhrase(name, type) {
4054
4068
  case "password": return "account credentials";
4055
4069
  case "select":
4056
4070
  case "radio":
4057
- case "checkbox": return "your answers to the questions we ask";
4071
+ case "checkbox":
4072
+ case "checkboxes": return "your answers to the questions we ask";
4058
4073
  }
4059
4074
  if (/name/i.test(name)) return "your name";
4060
4075
  if (/compan|organi|business/i.test(name)) return "your company or organization name";
@@ -5243,6 +5258,17 @@ const DEFAULT_ASSETS = join(HERE, "..", "assets");
5243
5258
  * live in a plain `:root`, never `@theme`: a `--color-*` theme key would mint `text-<hue>-<step>-on`
5244
5259
  * utilities nobody asked for.
5245
5260
  */
5261
+ /**
5262
+ * `colors.tint`: the surface tint of a `.tone--tint` element as a mix of the role's solid, instead
5263
+ * of its `muted` step (which can turn muddy: amber's is brown on a dark page). Nothing is emitted
5264
+ * without it, so existing sites are unchanged. Not covered by the contrast contract — a mix over an
5265
+ * arbitrary page is not a pairing the generator can check.
5266
+ */
5267
+ function toneTintRule(tint) {
5268
+ if (!tint) return "";
5269
+ return `/* colors.tint */\n.tone {\n --tone-tint: color-mix(in oklab, var(--tone-solid, currentColor) ${tint.mix}, transparent);\n}\n\n`;
5270
+ }
5271
+ const blockSet = "wc-cards, ul[class], ol[class], details, form, table, figure, .accordion, .section__body";
5246
5272
  function hueOnTokens(palette) {
5247
5273
  const out = [];
5248
5274
  for (const [name, hue] of Object.entries(palette)) for (const [n, hex] of Object.entries(hue.numeric)) out.push(`--color-${name}-${n}-on: ${pickOn(hex)};`);
@@ -5487,7 +5513,11 @@ function build(ds, format, assetsDir, buildOpts = {}) {
5487
5513
  light: planeKeys.flatMap((k) => surfaceRole.light[k] ? [resolve(surfaceRole.light[k])] : []),
5488
5514
  dark: planeKeys.flatMap((k) => surfaceRole.dark[k] ? [resolve(surfaceRole.dark[k])] : [])
5489
5515
  } : void 0;
5490
- const failures = scaleRoles.flatMap((fr) => checkContrast(fr, numericOf, surfaceBg, buildOpts.darkOnly ? ["dark"] : void 0));
5516
+ const failures = scaleRoles.flatMap((fr) => {
5517
+ const spec = ds.colors.roles[fr.role];
5518
+ const tolerance = typeof spec === "object" ? spec.acknowledgeContrast ?? 0 : 0;
5519
+ return checkContrast(fr, numericOf, surfaceBg, buildOpts.darkOnly ? ["dark"] : void 0, tolerance, (msg) => console.warn(`[vitops] contrast acknowledged: ${msg}`));
5520
+ });
5491
5521
  if (failures.length) throw new Error(`colour contrast contract failed (${failures.length} pairing${failures.length === 1 ? "" : "s"}):\n ${failures.join("\n ")}`);
5492
5522
  }
5493
5523
  if (buildOpts.darkOnly) scaleRoles.forEach((fr, i) => {
@@ -5530,7 +5560,7 @@ function build(ds, format, assetsDir, buildOpts = {}) {
5530
5560
  * `TW_CLASH` names.
5531
5561
  */
5532
5562
  const NON_PALETTE_BG = "/* Undo a pattern's fill (Tailwind provides these natively in that format). */\n.bg-transparent { background-color: transparent; }\n.bg-inherit { background-color: inherit; }\n";
5533
- if (BRICKS) generated["color.css"] = "/* Colours provided by Bricks (palette import generates tokens + utilities). */\n" + NON_PALETTE_BG;
5563
+ if (BRICKS) generated["color.css"] = "/* Colours provided by Bricks (palette import generates tokens + utilities). */\n" + NON_PALETTE_BG + toneTintRule(ds.colors.tint);
5534
5564
  else {
5535
5565
  let css = `/* GENERATED from design-system.json — do not edit by hand. */\n:root {\n`;
5536
5566
  css += ` color-scheme: ${buildOpts.darkOnly ? "dark" : "light"};\n`;
@@ -5550,6 +5580,7 @@ function build(ds, format, assetsDir, buildOpts = {}) {
5550
5580
  css += ` --overlay: color-mix(in oklch, var(--color-${surfaceRole.hue}-950) 45%, transparent);\n`;
5551
5581
  }
5552
5582
  css += `}\n\n`;
5583
+ css += toneTintRule(ds.colors.tint);
5553
5584
  {
5554
5585
  let fb = "";
5555
5586
  for (const fr of scaleRoles) for (const [t, val] of Object.entries(fr.dark)) if (fr.light[t] !== val) fb += ` ${tokenVar(fr.role, t)}: ${val};\n`;
@@ -6053,6 +6084,7 @@ function emitTailwind(ctx) {
6053
6084
  for (const line of hueOnTokens(expandedPalette)) fn += ` ${line}\n`;
6054
6085
  if (ctx.darkOnly) fn = ` color-scheme: dark;\n${fn}`;
6055
6086
  parts.push(`/* Role tokens (the public API) */\n:root {\n${fn}}\n`);
6087
+ if (ds.colors.tint) parts.push(toneTintRule(ds.colors.tint));
6056
6088
  }
6057
6089
  parts.push(`/* ── Framework tokens (consumed by the inlined components) ── */\n${twTypeTokensCss}\n${twPatternTokensCss}`);
6058
6090
  let darkBlock = "";
@@ -6122,6 +6154,7 @@ function emitTailwind(ctx) {
6122
6154
  util.push("@utility grid-auto {\n display: grid;\n gap: var(--grid-gap, 1rem);\n grid-template-columns: repeat(auto-fit, minmax(var(--grid-min, 13rem), 1fr));\n &:is(ul, ol) > li + li { margin-block-start: 0; }\n}");
6123
6155
  util.push(`\n/* Opt out of ambient .rhythm item spacing (mirrors layout-utilities.css) */`);
6124
6156
  util.push(`@utility no-rhythm {\n & > li + li { margin-top: 0; }\n}`);
6157
+ util.push(`\n/* Opt-in flex stack (mirrors layout-utilities.css) */\n@utility rhythm-flex {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n & > :is(${blockSet}) { align-self: stretch; }\n}`);
6125
6158
  util.push(`\n/* Vertical-rhythm overrides (mirrors layout.css) */`);
6126
6159
  for (const pair of [
6127
6160
  "h-p",
@@ -6156,6 +6189,8 @@ function emitTailwind(ctx) {
6156
6189
  --rhythm-li-li: 0.3;
6157
6190
  --rhythm-text-media: 1.2;
6158
6191
  --rhythm-media-text: 1.2;
6192
+ --rhythm-block: 2;
6193
+ --rhythm-block-action: 1.6;
6159
6194
  --width-measure: 65ch;
6160
6195
  --width-breakout: 90ch;
6161
6196
  --width-spotlight: 120ch;
@@ -6207,6 +6242,25 @@ body {
6207
6242
  margin-top: calc(var(--rhythm-base) * var(--rhythm-media-text));
6208
6243
  }
6209
6244
 
6245
+ /* Block-level children are a block gap apart, not a paragraph apart: a card row, a stats list, an
6246
+ accordion or a form under a lead sat flush at the prose spacing. \`:is()\` takes its most specific
6247
+ argument (0-1-1), so this beats the paragraph-to-list pairs above (0-1-2 would not tie it).
6248
+ Classless \`ul\`/\`ol\` stay prose. A form's own \`.rhythm\` holds \`div\` fields, which are not listed,
6249
+ so its tight field spacing is untouched. */
6250
+ .rhythm > * + :is(wc-cards, ul[class], ol[class], details, form, table, figure, .accordion, .section__body) {
6251
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-block));
6252
+ }
6253
+ /* A row of buttons after the lead. */
6254
+ .rhythm > * + p.cluster {
6255
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-block-action));
6256
+ }
6257
+ /* A bare link is inline, and an inline box ignores \`margin-top\`, so it sat flush under the
6258
+ paragraph above. Buttons (\`.cta\`, \`.btn\`) are inline-flex and already space. */
6259
+ .rhythm > :where(a:not(.cta, .btn)) {
6260
+ display: block;
6261
+ inline-size: fit-content;
6262
+ }
6263
+
6210
6264
  .centered {
6211
6265
  --_measure: min(var(--width-measure), 100% - var(--gutter) * 2);
6212
6266
  --_breakout: minmax(0, calc((var(--width-breakout) - var(--width-measure)) / 2));