@tryvitris/website-harness 0.1.0-beta.5 → 0.1.0-beta.7

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 (458) hide show
  1. package/README.md +6 -4
  2. package/agent/graph.yaml +0 -2
  3. package/agent/refs/components.md +5 -41
  4. package/agent/refs/compose.md +1 -1
  5. package/agent/refs/implement.md +2 -2
  6. package/agent/refs/jev.md +1 -1
  7. package/agent/refs/layout.md +1 -1
  8. package/agent/refs/storyboard.md +1 -1
  9. package/agent/refs/template-adaptation.md +1 -1
  10. package/bin/api/agent/evaluate.js +10 -15
  11. package/bin/api/agent/grade.js +10 -15
  12. package/bin/api/cli/api.js +18 -23
  13. package/bin/api/cli.js +20 -25
  14. package/bin/api/engine.js +11 -16
  15. package/bin/api/hosting.js +12 -17
  16. package/bin/api/index.js +2 -3
  17. package/bin/api/references.js +1 -2
  18. package/bin/api/render.js +2 -4
  19. package/bin/chunks/{chunk-4GZCAWWK.js → chunk-4MFPATAB.js} +2 -4
  20. package/bin/chunks/{chunk-5OOPJNGN.js → chunk-5JTBC6UK.js} +1 -4
  21. package/bin/chunks/{chunk-Z2UNY47A.js → chunk-5YSPWKFF.js} +1 -1
  22. package/bin/chunks/{chunk-FYN4T4SV.js → chunk-7V3OKLKH.js} +15 -26
  23. package/bin/chunks/{chunk-3CTBXY5K.js → chunk-FRABKM65.js} +1936 -1899
  24. package/bin/chunks/{chunk-4DM5TTLG.js → chunk-H7Y72HXC.js} +5 -5
  25. package/bin/chunks/{chunk-R7YELY3C.js → chunk-HL6JVA4A.js} +100 -81
  26. package/bin/chunks/{chunk-54JC5L35.js → chunk-O55LAQ2C.js} +3 -5
  27. package/bin/chunks/{chunk-VH7PM7KJ.js → chunk-P56ZDMX7.js} +4 -6
  28. package/bin/chunks/{chunk-7VLBEAFW.js → chunk-PGFFKPK6.js} +2 -2
  29. package/bin/chunks/{chunk-YQYHROLZ.js → chunk-QRWGFLUU.js} +2 -2
  30. package/bin/chunks/{chunk-CBEJZO4L.js → chunk-TTAUU3AZ.js} +2 -2
  31. package/bin/chunks/{chunk-E5Y46VBX.js → chunk-VTI32UGJ.js} +200 -103
  32. package/bin/chunks/{chunk-DRJQ4OOU.js → chunk-WOORR67N.js} +0 -45
  33. package/bin/chunks/{chunk-B5I45LFD.js → chunk-YZWEXHT4.js} +11 -13
  34. package/bin/chunks/{chunk-YCVGD2CG.js → chunk-ZIROO2U4.js} +1204 -1176
  35. package/bin/chunks/{chunk-42IXFXUD.js → chunk-ZWFG4GPG.js} +11 -15
  36. package/bin/chunks/{design-context-store-IAT2P2OC.js → design-context-store-DCZOAK56.js} +10 -15
  37. package/bin/chunks/{packets-VBMY4SQJ.js → packets-QOLWPRNV.js} +10 -15
  38. package/bin/chunks/{policy-2I37JUU3.js → policy-MP2JZXI3.js} +1 -1
  39. package/bin/chunks/{preparation-S4MG3RPL.js → preparation-T2IOD5SJ.js} +10 -15
  40. package/bin/chunks/{questions-HKELBDFL.js → questions-XK545GCX.js} +1 -11
  41. package/bin/types/src/agent/composition-authoring.d.ts +2 -2
  42. package/bin/types/src/agent/jev/calibration.d.ts +2 -2
  43. package/bin/types/src/agent/jev/config.d.ts +1 -1
  44. package/bin/types/src/agent/jev/questions.d.ts +0 -10
  45. package/bin/types/src/agent/jev/types.d.ts +0 -2
  46. package/bin/types/src/agent/site-inputs.d.ts +9 -1
  47. package/bin/types/src/agent/template-catalog.d.ts +20 -0
  48. package/bin/types/src/agent/theme-selection.d.ts +4 -2
  49. package/bin/types/src/build/archives.d.ts +2 -0
  50. package/bin/vitris-art.js +10 -15
  51. package/bin/vitris-build.js +3 -5
  52. package/bin/vitris-create-site.js +12 -17
  53. package/bin/vitris-cursor-hook.js +10 -15
  54. package/bin/vitris-eval.js +12 -17
  55. package/bin/vitris-go.js +14 -19
  56. package/bin/vitris-harvest.js +11 -16
  57. package/bin/vitris-knowledge.js +11 -16
  58. package/bin/vitris-launch-preflight.js +11 -17
  59. package/bin/vitris-motion-view.js +13 -19
  60. package/bin/vitris-references.js +4 -7
  61. package/bin/vitris-refresh.js +11 -16
  62. package/bin/vitris-stock.js +1 -1
  63. package/bin/vitris-themes.js +10 -15
  64. package/bin/vitris-upgrade.js +11 -16
  65. package/bin/vitris-verify-browser.js +43 -8
  66. package/bin/vitris-verify-performance.js +3 -5
  67. package/bin/vitris.js +20 -25
  68. package/design-system/MASTER.md +2 -2
  69. package/docs/CLI.md +2 -1
  70. package/docs/DISTRIBUTION.md +1 -1
  71. package/package.json +2 -7
  72. package/templates/site/README.md +2 -0
  73. package/templates/site/gitignore +1 -0
  74. package/bin/chunks/chunk-6H3T46F5.js +0 -25
  75. package/bin/chunks/chunk-ANMJRJQ5.js +0 -31
  76. package/bin/chunks/chunk-FOXUQXTV.js +0 -278
  77. package/bin/chunks/chunk-HNORQ74T.js +0 -40
  78. package/bin/chunks/chunk-T7DGRVTP.js +0 -458
  79. package/bin/types/src/agent/jev/block-catalog.d.ts +0 -95
  80. package/bin/types/src/agent/jev/component-select.d.ts +0 -102
  81. package/bin/types/src/blocks/library-profile.d.ts +0 -9
  82. package/bin/types/src/blocks/metadata.d.ts +0 -65
  83. package/bin/vitris-blocks.js +0 -238
  84. package/blocks/CONVENTIONS.md +0 -121
  85. package/blocks/INDEX.md +0 -130
  86. package/blocks/about/about-awards/README.md +0 -36
  87. package/blocks/about/about-awards/styles.css +0 -13
  88. package/blocks/about/about-awards/template.html +0 -1
  89. package/blocks/about/about-credentials/README.md +0 -33
  90. package/blocks/about/about-credentials/block.meta.json +0 -85
  91. package/blocks/about/about-credentials/styles.css +0 -4
  92. package/blocks/about/about-credentials/template.html +0 -1
  93. package/blocks/about/about-founder/README.md +0 -35
  94. package/blocks/about/about-founder/styles.css +0 -9
  95. package/blocks/about/about-founder/template.html +0 -1
  96. package/blocks/about/about-mission/README.md +0 -31
  97. package/blocks/about/about-mission/styles.css +0 -5
  98. package/blocks/about/about-mission/template.html +0 -1
  99. package/blocks/about/about-statement/README.md +0 -28
  100. package/blocks/about/about-statement/styles.css +0 -7
  101. package/blocks/about/about-statement/template.html +0 -1
  102. package/blocks/about/about-story/README.md +0 -35
  103. package/blocks/about/about-story/styles.css +0 -5
  104. package/blocks/about/about-story/template.html +0 -1
  105. package/blocks/about/about-timeline/README.md +0 -33
  106. package/blocks/about/about-timeline/styles.css +0 -8
  107. package/blocks/about/about-timeline/template.html +0 -1
  108. package/blocks/about/about-values/README.md +0 -31
  109. package/blocks/about/about-values/styles.css +0 -3
  110. package/blocks/about/about-values/template.html +0 -1
  111. package/blocks/blog/blog-featured/README.md +0 -39
  112. package/blocks/blog/blog-featured/styles.css +0 -12
  113. package/blocks/blog/blog-featured/template.html +0 -1
  114. package/blocks/blog/blog-index/README.md +0 -34
  115. package/blocks/blog/blog-index/styles.css +0 -6
  116. package/blocks/blog/blog-index/template.html +0 -1
  117. package/blocks/blog/blog-post-header/README.md +0 -31
  118. package/blocks/blog/blog-post-header/styles.css +0 -8
  119. package/blocks/blog/blog-post-header/template.html +0 -1
  120. package/blocks/contact/contact-cards/README.md +0 -32
  121. package/blocks/contact/contact-cards/styles.css +0 -7
  122. package/blocks/contact/contact-cards/template.html +0 -1
  123. package/blocks/contact/contact-chips/README.md +0 -41
  124. package/blocks/contact/contact-chips/styles.css +0 -13
  125. package/blocks/contact/contact-chips/template.html +0 -1
  126. package/blocks/contact/contact-hours/README.md +0 -41
  127. package/blocks/contact/contact-hours/block.meta.json +0 -87
  128. package/blocks/contact/contact-hours/styles.css +0 -8
  129. package/blocks/contact/contact-hours/template.html +0 -1
  130. package/blocks/contact/contact-map/README.md +0 -39
  131. package/blocks/contact/contact-map/styles.css +0 -10
  132. package/blocks/contact/contact-map/template.html +0 -1
  133. package/blocks/contact/contact-offices/README.md +0 -32
  134. package/blocks/contact/contact-offices/styles.css +0 -8
  135. package/blocks/contact/contact-offices/template.html +0 -1
  136. package/blocks/contact/contact-phone-first/README.md +0 -33
  137. package/blocks/contact/contact-phone-first/block.meta.json +0 -86
  138. package/blocks/contact/contact-phone-first/styles.css +0 -11
  139. package/blocks/contact/contact-phone-first/template.html +0 -1
  140. package/blocks/contact/contact-split/README.md +0 -43
  141. package/blocks/contact/contact-split/styles.css +0 -12
  142. package/blocks/contact/contact-split/template.html +0 -1
  143. package/blocks/contact/contact-visit/README.md +0 -36
  144. package/blocks/contact/contact-visit/block.meta.json +0 -88
  145. package/blocks/contact/contact-visit/styles.css +0 -13
  146. package/blocks/contact/contact-visit/template.html +0 -1
  147. package/blocks/contact/service-areas/README.md +0 -32
  148. package/blocks/contact/service-areas/styles.css +0 -9
  149. package/blocks/contact/service-areas/template.html +0 -1
  150. package/blocks/content/glossary/README.md +0 -35
  151. package/blocks/content/glossary/styles.css +0 -6
  152. package/blocks/content/glossary/template.html +0 -1
  153. package/blocks/content/list-split/README.md +0 -33
  154. package/blocks/content/list-split/styles.css +0 -13
  155. package/blocks/content/list-split/template.html +0 -1
  156. package/blocks/content/prose-split/README.md +0 -32
  157. package/blocks/content/prose-split/styles.css +0 -12
  158. package/blocks/content/prose-split/template.html +0 -1
  159. package/blocks/content/specification-ledger/README.md +0 -32
  160. package/blocks/content/specification-ledger/block.meta.json +0 -85
  161. package/blocks/content/specification-ledger/styles.css +0 -10
  162. package/blocks/content/specification-ledger/template.html +0 -1
  163. package/blocks/cta/cta-band/README.md +0 -33
  164. package/blocks/cta/cta-band/styles.css +0 -11
  165. package/blocks/cta/cta-band/template.html +0 -1
  166. package/blocks/cta/cta-card/README.md +0 -35
  167. package/blocks/cta/cta-card/styles.css +0 -8
  168. package/blocks/cta/cta-card/template.html +0 -1
  169. package/blocks/cta/cta-floating-bar/README.md +0 -28
  170. package/blocks/cta/cta-floating-bar/styles.css +0 -8
  171. package/blocks/cta/cta-floating-bar/template.html +0 -1
  172. package/blocks/cta/cta-inline/README.md +0 -30
  173. package/blocks/cta/cta-inline/styles.css +0 -9
  174. package/blocks/cta/cta-inline/template.html +0 -1
  175. package/blocks/cta/cta-newsletter/README.md +0 -34
  176. package/blocks/cta/cta-newsletter/styles.css +0 -8
  177. package/blocks/cta/cta-newsletter/template.html +0 -1
  178. package/blocks/cta/cta-photo-fan/README.md +0 -36
  179. package/blocks/cta/cta-photo-fan/styles.css +0 -14
  180. package/blocks/cta/cta-photo-fan/template.html +0 -1
  181. package/blocks/cta/cta-split/README.md +0 -38
  182. package/blocks/cta/cta-split/styles.css +0 -10
  183. package/blocks/cta/cta-split/template.html +0 -1
  184. package/blocks/faq/faq-accordion/README.md +0 -36
  185. package/blocks/faq/faq-accordion/styles.css +0 -6
  186. package/blocks/faq/faq-accordion/template.html +0 -1
  187. package/blocks/faq/faq-grouped/README.md +0 -40
  188. package/blocks/faq/faq-grouped/styles.css +0 -20
  189. package/blocks/faq/faq-grouped/template.html +0 -1
  190. package/blocks/faq/faq-split/README.md +0 -37
  191. package/blocks/faq/faq-split/styles.css +0 -5
  192. package/blocks/faq/faq-split/template.html +0 -1
  193. package/blocks/faq/faq-tabs/README.md +0 -36
  194. package/blocks/faq/faq-tabs/styles.css +0 -3
  195. package/blocks/faq/faq-tabs/template.html +0 -1
  196. package/blocks/feature/feature-bento/README.md +0 -33
  197. package/blocks/feature/feature-bento/styles.css +0 -7
  198. package/blocks/feature/feature-bento/template.html +0 -1
  199. package/blocks/feature/feature-compare-table/README.md +0 -44
  200. package/blocks/feature/feature-compare-table/styles.css +0 -15
  201. package/blocks/feature/feature-compare-table/template.html +0 -1
  202. package/blocks/feature/feature-comparison/README.md +0 -34
  203. package/blocks/feature/feature-comparison/styles.css +0 -6
  204. package/blocks/feature/feature-comparison/template.html +0 -1
  205. package/blocks/feature/feature-grid-3/README.md +0 -34
  206. package/blocks/feature/feature-grid-3/styles.css +0 -8
  207. package/blocks/feature/feature-grid-3/template.html +0 -1
  208. package/blocks/feature/feature-icon-list/README.md +0 -39
  209. package/blocks/feature/feature-icon-list/styles.css +0 -9
  210. package/blocks/feature/feature-icon-list/template.html +0 -1
  211. package/blocks/feature/feature-spotlight/README.md +0 -39
  212. package/blocks/feature/feature-spotlight/styles.css +0 -5
  213. package/blocks/feature/feature-spotlight/template.html +0 -1
  214. package/blocks/feature/feature-stats-band/README.md +0 -33
  215. package/blocks/feature/feature-stats-band/styles.css +0 -8
  216. package/blocks/feature/feature-stats-band/template.html +0 -1
  217. package/blocks/feature/feature-tabs/README.md +0 -38
  218. package/blocks/feature/feature-tabs/styles.css +0 -7
  219. package/blocks/feature/feature-tabs/template.html +0 -1
  220. package/blocks/feature/feature-thumb-list/README.md +0 -38
  221. package/blocks/feature/feature-thumb-list/styles.css +0 -13
  222. package/blocks/feature/feature-thumb-list/template.html +0 -1
  223. package/blocks/feature/feature-zigzag/README.md +0 -31
  224. package/blocks/feature/feature-zigzag/styles.css +0 -6
  225. package/blocks/feature/feature-zigzag/template.html +0 -1
  226. package/blocks/footer/footer-columns/README.md +0 -39
  227. package/blocks/footer/footer-columns/styles.css +0 -16
  228. package/blocks/footer/footer-columns/template.html +0 -1
  229. package/blocks/footer/footer-compact/README.md +0 -33
  230. package/blocks/footer/footer-compact/styles.css +0 -12
  231. package/blocks/footer/footer-compact/template.html +0 -1
  232. package/blocks/footer/footer-cta/README.md +0 -37
  233. package/blocks/footer/footer-cta/styles.css +0 -18
  234. package/blocks/footer/footer-cta/template.html +0 -1
  235. package/blocks/footer/footer-social/README.md +0 -37
  236. package/blocks/footer/footer-social/styles.css +0 -17
  237. package/blocks/footer/footer-social/template.html +0 -1
  238. package/blocks/footer/footer-wordmark/README.md +0 -40
  239. package/blocks/footer/footer-wordmark/styles.css +0 -19
  240. package/blocks/footer/footer-wordmark/template.html +0 -1
  241. package/blocks/gallery/gallery-before-after/README.md +0 -31
  242. package/blocks/gallery/gallery-before-after/styles.css +0 -6
  243. package/blocks/gallery/gallery-before-after/template.html +0 -1
  244. package/blocks/gallery/gallery-carousel/README.md +0 -32
  245. package/blocks/gallery/gallery-carousel/styles.css +0 -7
  246. package/blocks/gallery/gallery-carousel/template.html +0 -1
  247. package/blocks/gallery/gallery-grid/README.md +0 -39
  248. package/blocks/gallery/gallery-grid/styles.css +0 -13
  249. package/blocks/gallery/gallery-grid/template.html +0 -1
  250. package/blocks/gallery/gallery-masonry/README.md +0 -33
  251. package/blocks/gallery/gallery-masonry/styles.css +0 -4
  252. package/blocks/gallery/gallery-masonry/template.html +0 -1
  253. package/blocks/gallery/gallery-mosaic-split/README.md +0 -40
  254. package/blocks/gallery/gallery-mosaic-split/styles.css +0 -15
  255. package/blocks/gallery/gallery-mosaic-split/template.html +0 -1
  256. package/blocks/hero/hero-asymmetric/README.md +0 -34
  257. package/blocks/hero/hero-asymmetric/styles.css +0 -13
  258. package/blocks/hero/hero-asymmetric/template.html +0 -10
  259. package/blocks/hero/hero-before-after/README.md +0 -38
  260. package/blocks/hero/hero-before-after/styles.css +0 -8
  261. package/blocks/hero/hero-before-after/template.html +0 -19
  262. package/blocks/hero/hero-editorial/README.md +0 -34
  263. package/blocks/hero/hero-editorial/block.meta.json +0 -85
  264. package/blocks/hero/hero-editorial/styles.css +0 -6
  265. package/blocks/hero/hero-editorial/template.html +0 -10
  266. package/blocks/hero/hero-evidence/README.md +0 -32
  267. package/blocks/hero/hero-evidence/block.meta.json +0 -85
  268. package/blocks/hero/hero-evidence/styles.css +0 -13
  269. package/blocks/hero/hero-evidence/template.html +0 -1
  270. package/blocks/hero/hero-form/README.md +0 -46
  271. package/blocks/hero/hero-form/styles.css +0 -11
  272. package/blocks/hero/hero-form/template.html +0 -15
  273. package/blocks/hero/hero-menu/README.md +0 -36
  274. package/blocks/hero/hero-menu/styles.css +0 -7
  275. package/blocks/hero/hero-menu/template.html +0 -10
  276. package/blocks/hero/hero-overlay/README.md +0 -35
  277. package/blocks/hero/hero-overlay/styles.css +0 -14
  278. package/blocks/hero/hero-overlay/template.html +0 -10
  279. package/blocks/hero/hero-page/README.md +0 -35
  280. package/blocks/hero/hero-page/styles.css +0 -19
  281. package/blocks/hero/hero-page/template.html +0 -1
  282. package/blocks/hero/hero-product/README.md +0 -41
  283. package/blocks/hero/hero-product/styles.css +0 -11
  284. package/blocks/hero/hero-product/template.html +0 -14
  285. package/blocks/hero/hero-service/README.md +0 -37
  286. package/blocks/hero/hero-service/block.meta.json +0 -85
  287. package/blocks/hero/hero-service/styles.css +0 -17
  288. package/blocks/hero/hero-service/template.html +0 -1
  289. package/blocks/hero/hero-split/README.md +0 -36
  290. package/blocks/hero/hero-split/styles.css +0 -7
  291. package/blocks/hero/hero-split/template.html +0 -11
  292. package/blocks/hero/hero-statement/README.md +0 -33
  293. package/blocks/hero/hero-statement/styles.css +0 -8
  294. package/blocks/hero/hero-statement/template.html +0 -1
  295. package/blocks/hero/hero-stats/README.md +0 -37
  296. package/blocks/hero/hero-stats/styles.css +0 -10
  297. package/blocks/hero/hero-stats/template.html +0 -10
  298. package/blocks/hero/hero-video-still/README.md +0 -36
  299. package/blocks/hero/hero-video-still/styles.css +0 -9
  300. package/blocks/hero/hero-video-still/template.html +0 -13
  301. package/blocks/icons.md +0 -44
  302. package/blocks/incentives/incentive-banner/README.md +0 -28
  303. package/blocks/incentives/incentive-banner/styles.css +0 -7
  304. package/blocks/incentives/incentive-banner/template.html +0 -1
  305. package/blocks/incentives/incentive-cards/README.md +0 -31
  306. package/blocks/incentives/incentive-cards/styles.css +0 -4
  307. package/blocks/incentives/incentive-cards/template.html +0 -1
  308. package/blocks/navbar/nav-announcement/README.md +0 -35
  309. package/blocks/navbar/nav-announcement/styles.css +0 -10
  310. package/blocks/navbar/nav-announcement/template.html +0 -14
  311. package/blocks/navbar/nav-centered/README.md +0 -35
  312. package/blocks/navbar/nav-centered/styles.css +0 -11
  313. package/blocks/navbar/nav-centered/template.html +0 -12
  314. package/blocks/navbar/nav-minimal/README.md +0 -29
  315. package/blocks/navbar/nav-minimal/styles.css +0 -5
  316. package/blocks/navbar/nav-minimal/template.html +0 -6
  317. package/blocks/navbar/nav-split/README.md +0 -34
  318. package/blocks/navbar/nav-split/styles.css +0 -11
  319. package/blocks/navbar/nav-split/template.html +0 -11
  320. package/blocks/navbar/nav-utility/README.md +0 -37
  321. package/blocks/navbar/nav-utility/styles.css +0 -17
  322. package/blocks/navbar/nav-utility/template.html +0 -12
  323. package/blocks/pricing/menu-featured/README.md +0 -34
  324. package/blocks/pricing/menu-featured/styles.css +0 -4
  325. package/blocks/pricing/menu-featured/template.html +0 -1
  326. package/blocks/pricing/menu-sections/README.md +0 -33
  327. package/blocks/pricing/menu-sections/styles.css +0 -9
  328. package/blocks/pricing/menu-sections/template.html +0 -1
  329. package/blocks/pricing/pricing-table/README.md +0 -40
  330. package/blocks/pricing/pricing-table/styles.css +0 -9
  331. package/blocks/pricing/pricing-table/template.html +0 -1
  332. package/blocks/pricing/pricing-tiers/README.md +0 -34
  333. package/blocks/pricing/pricing-tiers/styles.css +0 -7
  334. package/blocks/pricing/pricing-tiers/template.html +0 -1
  335. package/blocks/pricing/pricing-toggle/README.md +0 -34
  336. package/blocks/pricing/pricing-toggle/styles.css +0 -10
  337. package/blocks/pricing/pricing-toggle/template.html +0 -1
  338. package/blocks/process/process-carousel/README.md +0 -33
  339. package/blocks/process/process-carousel/styles.css +0 -5
  340. package/blocks/process/process-carousel/template.html +0 -1
  341. package/blocks/process/process-split/README.md +0 -35
  342. package/blocks/process/process-split/styles.css +0 -6
  343. package/blocks/process/process-split/template.html +0 -1
  344. package/blocks/process/process-stepper/README.md +0 -40
  345. package/blocks/process/process-stepper/styles.css +0 -11
  346. package/blocks/process/process-stepper/template.html +0 -1
  347. package/blocks/process/process-steps/README.md +0 -35
  348. package/blocks/process/process-steps/styles.css +0 -6
  349. package/blocks/process/process-steps/template.html +0 -1
  350. package/blocks/process/process-sticky/README.md +0 -38
  351. package/blocks/process/process-sticky/styles.css +0 -12
  352. package/blocks/process/process-sticky/template.html +0 -1
  353. package/blocks/process/process-timeline/README.md +0 -35
  354. package/blocks/process/process-timeline/styles.css +0 -10
  355. package/blocks/process/process-timeline/template.html +0 -1
  356. package/blocks/services/services-cards/README.md +0 -34
  357. package/blocks/services/services-cards/styles.css +0 -3
  358. package/blocks/services/services-cards/template.html +0 -1
  359. package/blocks/services/services-carousel/README.md +0 -34
  360. package/blocks/services/services-carousel/styles.css +0 -6
  361. package/blocks/services/services-carousel/template.html +0 -1
  362. package/blocks/services/services-list/README.md +0 -32
  363. package/blocks/services/services-list/block.meta.json +0 -85
  364. package/blocks/services/services-list/styles.css +0 -10
  365. package/blocks/services/services-list/template.html +0 -1
  366. package/blocks/services/services-menu/README.md +0 -39
  367. package/blocks/services/services-menu/styles.css +0 -6
  368. package/blocks/services/services-menu/template.html +0 -1
  369. package/blocks/services/services-packages/README.md +0 -34
  370. package/blocks/services/services-packages/styles.css +0 -6
  371. package/blocks/services/services-packages/template.html +0 -1
  372. package/blocks/services/services-panels/README.md +0 -36
  373. package/blocks/services/services-panels/styles.css +0 -15
  374. package/blocks/services/services-panels/template.html +0 -1
  375. package/blocks/services/services-photo-grid/README.md +0 -39
  376. package/blocks/services/services-photo-grid/styles.css +0 -10
  377. package/blocks/services/services-photo-grid/template.html +0 -1
  378. package/blocks/services/services-priority/README.md +0 -33
  379. package/blocks/services/services-priority/block.meta.json +0 -86
  380. package/blocks/services/services-priority/styles.css +0 -16
  381. package/blocks/services/services-priority/template.html +0 -1
  382. package/blocks/stats/stats-cards/README.md +0 -31
  383. package/blocks/stats/stats-cards/styles.css +0 -4
  384. package/blocks/stats/stats-cards/template.html +0 -1
  385. package/blocks/stats/stats-mosaic/README.md +0 -27
  386. package/blocks/stats/stats-mosaic/styles.css +0 -9
  387. package/blocks/stats/stats-mosaic/template.html +0 -1
  388. package/blocks/stats/stats-row/README.md +0 -29
  389. package/blocks/stats/stats-row/styles.css +0 -8
  390. package/blocks/stats/stats-row/template.html +0 -1
  391. package/blocks/stats/stats-split/README.md +0 -35
  392. package/blocks/stats/stats-split/styles.css +0 -3
  393. package/blocks/stats/stats-split/template.html +0 -1
  394. package/blocks/team/team-featured/README.md +0 -42
  395. package/blocks/team/team-featured/styles.css +0 -9
  396. package/blocks/team/team-featured/template.html +0 -1
  397. package/blocks/team/team-grid/README.md +0 -35
  398. package/blocks/team/team-grid/styles.css +0 -8
  399. package/blocks/team/team-grid/template.html +0 -1
  400. package/blocks/team/team-list/README.md +0 -32
  401. package/blocks/team/team-list/styles.css +0 -7
  402. package/blocks/team/team-list/template.html +0 -1
  403. package/blocks/testimonial/testimonial-carousel/README.md +0 -32
  404. package/blocks/testimonial/testimonial-carousel/styles.css +0 -7
  405. package/blocks/testimonial/testimonial-carousel/template.html +0 -1
  406. package/blocks/testimonial/testimonial-grid/README.md +0 -32
  407. package/blocks/testimonial/testimonial-grid/styles.css +0 -5
  408. package/blocks/testimonial/testimonial-grid/template.html +0 -1
  409. package/blocks/testimonial/testimonial-mosaic/README.md +0 -38
  410. package/blocks/testimonial/testimonial-mosaic/styles.css +0 -14
  411. package/blocks/testimonial/testimonial-mosaic/template.html +0 -1
  412. package/blocks/testimonial/testimonial-platform/README.md +0 -34
  413. package/blocks/testimonial/testimonial-platform/styles.css +0 -17
  414. package/blocks/testimonial/testimonial-platform/template.html +0 -1
  415. package/blocks/testimonial/testimonial-rating/README.md +0 -28
  416. package/blocks/testimonial/testimonial-rating/styles.css +0 -6
  417. package/blocks/testimonial/testimonial-rating/template.html +0 -1
  418. package/blocks/testimonial/testimonial-spotlight/README.md +0 -31
  419. package/blocks/testimonial/testimonial-spotlight/styles.css +0 -9
  420. package/blocks/testimonial/testimonial-spotlight/template.html +0 -1
  421. package/blocks/testimonial/testimonial-switcher/README.md +0 -39
  422. package/blocks/testimonial/testimonial-switcher/styles.css +0 -23
  423. package/blocks/testimonial/testimonial-switcher/template.html +0 -1
  424. package/blocks/testimonial/testimonial-wall/README.md +0 -34
  425. package/blocks/testimonial/testimonial-wall/styles.css +0 -7
  426. package/blocks/testimonial/testimonial-wall/template.html +0 -1
  427. package/blocks/trust-strip/trust-badges/README.md +0 -30
  428. package/blocks/trust-strip/trust-badges/styles.css +0 -5
  429. package/blocks/trust-strip/trust-badges/template.html +0 -1
  430. package/blocks/trust-strip/trust-certs/README.md +0 -31
  431. package/blocks/trust-strip/trust-certs/styles.css +0 -12
  432. package/blocks/trust-strip/trust-certs/template.html +0 -1
  433. package/blocks/trust-strip/trust-logos/README.md +0 -32
  434. package/blocks/trust-strip/trust-logos/styles.css +0 -5
  435. package/blocks/trust-strip/trust-logos/template.html +0 -1
  436. package/blocks/trust-strip/trust-quote/README.md +0 -29
  437. package/blocks/trust-strip/trust-quote/styles.css +0 -5
  438. package/blocks/trust-strip/trust-quote/template.html +0 -1
  439. package/blocks/trust-strip/trust-reviews/README.md +0 -35
  440. package/blocks/trust-strip/trust-reviews/styles.css +0 -9
  441. package/blocks/trust-strip/trust-reviews/template.html +0 -1
  442. package/blocks/work/case-alternating/README.md +0 -34
  443. package/blocks/work/case-alternating/block.meta.json +0 -86
  444. package/blocks/work/case-alternating/styles.css +0 -7
  445. package/blocks/work/case-alternating/template.html +0 -1
  446. package/blocks/work/case-carousel/README.md +0 -26
  447. package/blocks/work/case-carousel/styles.css +0 -7
  448. package/blocks/work/case-carousel/template.html +0 -1
  449. package/blocks/work/case-header/README.md +0 -38
  450. package/blocks/work/case-header/styles.css +0 -18
  451. package/blocks/work/case-header/template.html +0 -1
  452. package/blocks/work/project-evidence/README.md +0 -35
  453. package/blocks/work/project-evidence/block.meta.json +0 -87
  454. package/blocks/work/project-evidence/styles.css +0 -12
  455. package/blocks/work/project-evidence/template.html +0 -1
  456. package/blocks/work/project-grid/README.md +0 -38
  457. package/blocks/work/project-grid/styles.css +0 -9
  458. package/blocks/work/project-grid/template.html +0 -1
@@ -1,86 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "id": "contact/contact-phone-first",
4
- "revision": 1,
5
- "status": "draft",
6
- "owner": "Vitris design library",
7
- "sourceHash": "3623088d798410ade10459edfb313f50b0f28ce74b38f543c1eca2a08b61aee0",
8
- "fit": {
9
- "visitorJobs": [
10
- "Call the business and find a backup channel"
11
- ],
12
- "pageRoles": [
13
- "contact"
14
- ],
15
- "useWhen": [
16
- "Call the business and find a backup channel"
17
- ],
18
- "avoidWhen": [
19
- "The content or media cannot support this composition"
20
- ]
21
- },
22
- "content": {
23
- "requiredSlots": [
24
- "heading",
25
- "phone"
26
- ],
27
- "optionalSlots": [
28
- "eyebrow",
29
- "intro",
30
- "details"
31
- ],
32
- "testedItemCounts": [
33
- 1
34
- ]
35
- },
36
- "media": {
37
- "min": 0,
38
- "max": 8,
39
- "optionalBehavior": "Recompose without empty media frames when media is optional",
40
- "aspect": [
41
- "content-dependent"
42
- ]
43
- },
44
- "composition": {
45
- "hierarchy": "large phone action with practical details",
46
- "alignment": "split",
47
- "density": "compact",
48
- "mediaProminence": "none",
49
- "geometry": [
50
- "phone-led",
51
- "split"
52
- ],
53
- "boundary": "section boundary adapts to adjacent content"
54
- },
55
- "adaptation": {
56
- "flexible": [
57
- "spacing",
58
- "surface treatment",
59
- "type scale"
60
- ],
61
- "invariants": [
62
- "semantic reading order",
63
- "one clear section purpose"
64
- ],
65
- "customWhen": [
66
- "The visitor job needs a different hierarchy"
67
- ]
68
- },
69
- "responsive": {
70
- "readingOrder": "DOM order follows the visitor narrative",
71
- "reflow": "Stack or resize according to content",
72
- "crop": "Keep important subjects visible"
73
- },
74
- "interaction": {
75
- "behavior": "Native links and controls",
76
- "islands": []
77
- },
78
- "evidence": {
79
- "provenance": [
80
- "Original Vitris block source"
81
- ],
82
- "testedContexts": [],
83
- "accessibility": [],
84
- "previewManifest": "../../../design-system/block-previews/v1/contact--contact-phone-first.json"
85
- }
86
- }
@@ -1,11 +0,0 @@
1
- .c-contact-phone-first{background:var(--color-surface-2)}
2
- .c-contact-phone-first__layout{display:grid;gap:var(--space-7)}
3
- .c-contact-phone-first__lead{display:grid;gap:var(--space-4);align-content:start}
4
- .c-contact-phone-first__lead h2{max-width:16ch}
5
- .c-contact-phone-first__lead .lede{max-width:48ch}
6
- .c-contact-phone-first__details{display:grid;gap:var(--space-5);border-top:2px solid var(--color-accent);padding-top:var(--space-5)}
7
- .c-contact-phone-first__phone{display:grid;gap:var(--space-2)}
8
- .c-contact-phone-first__phone a{font-family:var(--font-display);font-size:clamp(1.7rem,1rem + 2.3vw,3rem);line-height:1.1;overflow-wrap:anywhere;text-decoration-thickness:.06em;text-underline-offset:.12em}
9
- .c-contact-phone-first__secondary{display:grid;gap:var(--space-3)}
10
- .c-contact-phone-first__secondary > *{margin:0}
11
- @media(min-width:850px){.c-contact-phone-first__layout{grid-template-columns:minmax(0,1fr) minmax(18rem,.85fr);gap:var(--space-8)}}
@@ -1 +0,0 @@
1
- <section class="c-contact-phone-first section"><div class="wrap c-contact-phone-first__layout"><div class="c-contact-phone-first__lead"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="intro"></slot></div><div class="c-contact-phone-first__details"><div class="c-contact-phone-first__phone"><slot name="phone"></slot></div><div class="c-contact-phone-first__secondary"><slot name="details"></slot></div></div></div></section>
@@ -1,43 +0,0 @@
1
- # contact-split
2
-
3
- NAP + lead form.
4
-
5
- - **Category:** contact
6
- - **Media:** optional map still
7
- - **Registers:** all
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` |
17
- | `details` | 3 `<a>` rows: `.icon-tile` + `<span><strong>value</strong><span>note</span></span>` (phone, email, address) |
18
- | `form-title` | `<h3>` for the form card |
19
- | `form` | `<form data-lead-form class="form-grid">` with `.field`s and a `.btn` |
20
-
21
- ## Example
22
-
23
- ```html
24
- <contact-split>
25
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Contact</p>
26
- <h2 slot="heading">Tell us about the roof.</h2>
27
- <p slot="lede" class="lede">A real person reads every message. Estimates are free and never pushy.</p>
28
- <a slot="details" href="tel:+15550102000"><span class="icon-tile icon-tile--muted"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 3h4l2 5-3 2a12 12 0 0 0 6 6l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 4 5a2 2 0 0 1 2-2z"/></svg></span><span><strong>(555) 010-2000</strong><span>Mon–Fri 7:30–5:00 · Sat by appointment</span></span></a>
29
- <a slot="details" href="mailto:hello@harborroofing.example"><span class="icon-tile icon-tile--muted"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></svg></span><span><strong>hello@harborroofing.example</strong><span>We reply within one business day</span></span></a>
30
- <a slot="details" href="https://maps.example/harbor" rel="noopener"><span class="icon-tile icon-tile--muted"><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 22s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12z"/><circle cx="12" cy="10" r="2.5"/></svg></span><span><strong>12 Harbor St, Portland, ME 04101</strong><span>Free parking behind the building</span></span></a>
31
- <h3 slot="form-title">Request an estimate</h3>
32
- <form slot="form" data-lead-form class="form-grid form-grid--2">
33
- <div class="field"><label for="cs-name">Name</label><input class="input" id="cs-name" name="name" autocomplete="name" required></div>
34
- <div class="field"><label for="cs-phone">Phone</label><input class="input" id="cs-phone" name="phone" type="tel" autocomplete="tel"></div>
35
- <div class="field field--full"><label for="cs-email">Email</label><input class="input" id="cs-email" name="email" type="email" autocomplete="email" required></div>
36
- <div class="field field--full"><label for="cs-msg">What's going on?</label><textarea class="textarea" id="cs-msg" name="message" placeholder="Leak over the kitchen, house built 1987, asphalt shingles…"></textarea></div>
37
- <div class="field field--full"><button class="btn btn-lg" type="submit">Send request</button></div>
38
- <small class="field--full">We'll call or email within one business day.</small>
39
- </form>
40
- </contact-split>
41
- ```
42
-
43
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,12 +0,0 @@
1
- .c-contact-split__copy .section__head{margin-bottom:var(--space-6)}
2
- .c-contact-split__details{display:grid;gap:var(--space-4);list-style:none;margin:0;padding:0}
3
- .c-contact-split__details > a{display:flex;gap:var(--space-4);align-items:flex-start;text-decoration:none;color:inherit}
4
- .c-contact-split__details > a > span:last-child{display:grid;gap:.15rem}
5
- .c-contact-split__details strong{font-weight:600}
6
- .c-contact-split__details > a > span:last-child > span{color:var(--color-muted);font-size:var(--step-0)}
7
- .c-contact-split__details > a:hover strong{color:var(--color-accent)}
8
- .c-contact-split__card .card__body{padding:var(--space-6);gap:var(--space-4)}
9
- .c-contact-split__card h3{font-size:var(--step-2)}
10
- .c-contact-split__card .btn{justify-self:start}
11
- .c-contact-split__card small{color:var(--color-muted)}
12
- @media(min-width:720px){.c-contact-split .split{grid-template-columns:2fr 3fr}}
@@ -1 +0,0 @@
1
- <section class="c-contact-split section"><div class="wrap split split--top"><div class="c-contact-split__copy"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-contact-split__details"><slot name="details"></slot></div></div><div class="card c-contact-split__card"><div class="card__body"><slot name="form-title"></slot><slot name="form"></slot></div></div></div></section>
@@ -1,36 +0,0 @@
1
- # contact-visit
2
-
3
- Location, hours, and access information without relying on a decorative map. The address gets prominence; practical notes answer what a visitor needs before traveling. This is a fictional teaching example.
4
-
5
- - **Category:** contact
6
- - **Media:** none
7
- - **Registers:** food, beauty, professional, trade
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional context label |
15
- | `heading` | `<h2>` about visiting |
16
- | `intro` | Optional arrival context |
17
- | `place` | Verified address in `<address>` |
18
- | `hours` | Current opening hours, including exceptions if relevant |
19
- | `access` | Optional access, transit, or parking information |
20
- | `actions` | Optional directions or booking link |
21
-
22
- ## Example
23
-
24
- ```html
25
- <contact-visit>
26
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Visit us · fictional example</p>
27
- <h2 slot="heading">Find us before you set out.</h2>
28
- <p slot="intro" class="lede">The arrival details belong here when the visit is part of the service.</p>
29
- <address slot="place">Example Studio<br>12 Sample Street<br>Portland, ME 04101</address>
30
- <div slot="hours"><h3>Hours</h3><p>Monday–Friday, 9 a.m.–5 p.m.</p></div>
31
- <div slot="access"><h3>Access</h3><p>Confirm entrance and accessibility details with the business before publishing.</p></div>
32
- <a slot="actions" class="btn-outline" href="/contact">Contact the studio</a>
33
- </contact-visit>
34
- ```
35
-
36
- This block works with no photo or map. Replace every address, hour, and access statement with checked facts; add an accurate map link if useful.
@@ -1,88 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "id": "contact/contact-visit",
4
- "revision": 1,
5
- "status": "draft",
6
- "owner": "Vitris design library",
7
- "sourceHash": "6c2f4f834640bbb77daef89b452da92ddaedcd4c0730d88ec051a805c77e6349",
8
- "fit": {
9
- "visitorJobs": [
10
- "Find the address, hours, and access details"
11
- ],
12
- "pageRoles": [
13
- "visit"
14
- ],
15
- "useWhen": [
16
- "Find the address, hours, and access details"
17
- ],
18
- "avoidWhen": [
19
- "The content or media cannot support this composition"
20
- ]
21
- },
22
- "content": {
23
- "requiredSlots": [
24
- "heading",
25
- "place",
26
- "hours"
27
- ],
28
- "optionalSlots": [
29
- "eyebrow",
30
- "intro",
31
- "access",
32
- "actions"
33
- ],
34
- "testedItemCounts": [
35
- 1
36
- ]
37
- },
38
- "media": {
39
- "min": 0,
40
- "max": 8,
41
- "optionalBehavior": "Recompose without empty media frames when media is optional",
42
- "aspect": [
43
- "content-dependent"
44
- ]
45
- },
46
- "composition": {
47
- "hierarchy": "place with practical details",
48
- "alignment": "split",
49
- "density": "medium",
50
- "mediaProminence": "none",
51
- "geometry": [
52
- "place-led",
53
- "split"
54
- ],
55
- "boundary": "section boundary adapts to adjacent content"
56
- },
57
- "adaptation": {
58
- "flexible": [
59
- "spacing",
60
- "surface treatment",
61
- "type scale"
62
- ],
63
- "invariants": [
64
- "semantic reading order",
65
- "one clear section purpose"
66
- ],
67
- "customWhen": [
68
- "The visitor job needs a different hierarchy"
69
- ]
70
- },
71
- "responsive": {
72
- "readingOrder": "DOM order follows the visitor narrative",
73
- "reflow": "Stack or resize according to content",
74
- "crop": "Keep important subjects visible"
75
- },
76
- "interaction": {
77
- "behavior": "Native links and controls",
78
- "islands": []
79
- },
80
- "evidence": {
81
- "provenance": [
82
- "Original Vitris block source"
83
- ],
84
- "testedContexts": [],
85
- "accessibility": [],
86
- "previewManifest": "../../../design-system/block-previews/v1/contact--contact-visit.json"
87
- }
88
- }
@@ -1,13 +0,0 @@
1
- .c-contact-visit{overflow-wrap:anywhere}
2
- .c-contact-visit__head{display:grid;gap:var(--space-3);margin-bottom:var(--space-6)}
3
- .c-contact-visit__head h2{max-width:18ch}
4
- .c-contact-visit__head p{max-width:56ch}
5
- .c-contact-visit__layout{display:grid;gap:var(--space-5)}
6
- .c-contact-visit__place{background:var(--color-surface-2);padding:var(--space-6);display:grid;align-content:end;min-height:18rem;min-width:0}
7
- .c-contact-visit__place address{font-style:normal;font-family:var(--font-display);font-size:var(--step-2);line-height:1.25}
8
- .c-contact-visit__practical{border-top:2px solid var(--color-accent);display:grid;gap:var(--space-4);align-content:start;padding-top:var(--space-4);min-width:0}
9
- .c-contact-visit .btn,.c-contact-visit .btn-outline{white-space:normal;text-align:center;max-width:100%}
10
- .c-contact-visit__practical > *{margin:0}
11
- .c-contact-visit__practical h3{font-size:var(--step-1)}
12
- .c-contact-visit__practical .btn,.c-contact-visit__practical .btn-outline{justify-self:start}
13
- @media(min-width:800px){.c-contact-visit__layout{grid-template-columns:minmax(0,1.1fr) minmax(17rem,.7fr);gap:var(--space-7)}}
@@ -1 +0,0 @@
1
- <section class="c-contact-visit section"><div class="wrap"><div class="c-contact-visit__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="intro"></slot></div><div class="c-contact-visit__layout"><div class="c-contact-visit__place"><slot name="place"></slot></div><div class="c-contact-visit__practical"><slot name="hours"></slot><slot name="access"></slot><slot name="actions"></slot></div></div></div></section>
@@ -1,32 +0,0 @@
1
- # service-areas
2
-
3
- Towns we serve as chips, with a fallback line.
4
-
5
- - **Category:** contact
6
- - **Media:** none
7
- - **Registers:** trade, beauty, food
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` (one sentence) |
17
- | `areas` | 6–16 `<li>` town names |
18
- | `note` | Optional `<p>` fallback ("Don't see your town?…") with a link |
19
-
20
- ## Example
21
-
22
- ```html
23
- <service-areas>
24
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Service area</p>
25
- <h2 slot="heading">Towns we cover in Greater Portland.</h2>
26
- <p slot="lede" class="lede">If we can get a truck there before lunch, we'll roof it.</p>
27
- <li slot="areas">Portland</li><li slot="areas">South Portland</li><li slot="areas">Falmouth</li><li slot="areas">Cape Elizabeth</li><li slot="areas">Scarborough</li><li slot="areas">Westbrook</li><li slot="areas">Yarmouth</li><li slot="areas">Cumberland</li><li slot="areas">Gorham</li><li slot="areas">Windham</li><li slot="areas">Freeport</li><li slot="areas">Saco</li>
28
- <p slot="note">Don't see your town? If you're within 30 minutes of one of these, you're covered — <a href="/contact">just ask</a>.</p>
29
- </service-areas>
30
- ```
31
-
32
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,9 +0,0 @@
1
- .c-service-areas__grid{display:grid;gap:var(--space-5)}
2
- .c-service-areas__grid .section__head{margin-bottom:0}
3
- .c-service-areas__body{display:grid;gap:var(--space-4);align-content:start}
4
- .c-service-areas__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}
5
- .c-service-areas__list > li{display:inline-flex;align-items:center;min-height:2.25rem;padding:.35rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--step-0);font-weight:500;background:var(--color-surface)}
6
- .c-service-areas__note{font-size:var(--step-0);color:var(--color-muted)}
7
- .c-service-areas__note:empty{display:none}
8
- .c-service-areas__note p{margin:0}
9
- @media(min-width:900px){.c-service-areas__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--space-9);align-items:start}}
@@ -1 +0,0 @@
1
- <section class="c-service-areas section"><div class="wrap c-service-areas__grid"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><div class="c-service-areas__body"><ul class="c-service-areas__list"><slot name="areas"></slot></ul><div class="c-service-areas__note"><slot name="note"></slot></div></div></div></section>
@@ -1,35 +0,0 @@
1
- # glossary
2
-
3
- Term / definition grid — jargon a customer sees on an estimate.
4
-
5
- - **Category:** content
6
- - **Media:** none
7
- - **Registers:** trade, professional, b2b
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional `<p class="eyebrow">` |
15
- | `heading` | `<h2>` |
16
- | `lede` | Optional `<p class="lede">` (one sentence) |
17
- | `terms` | 6–12 `<div><dt>Term</dt><dd>One-sentence definition.</dd></div>` |
18
-
19
- ## Example
20
-
21
- ```html
22
- <glossary>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Plain language</p>
24
- <h2 slot="heading">Commonly used roofing terms</h2>
25
- <p slot="lede" class="lede">The words you'll see on your estimate, each explained in one sentence.</p>
26
- <div slot="terms"><dt>Decking</dt><dd>The wood sheets under your shingles — the surface everything else is fastened to.</dd></div>
27
- <div slot="terms"><dt>Underlayment</dt><dd>The water barrier between shingles and decking. It catches what the shingles miss.</dd></div>
28
- <div slot="terms"><dt>Flashing</dt><dd>Bent metal that seals the joints where your roof meets chimneys, walls, and skylights.</dd></div>
29
- <div slot="terms"><dt>Drip edge</dt><dd>Metal along the roof's edges that steers runoff into the gutters instead of behind them.</dd></div>
30
- <div slot="terms"><dt>Valley</dt><dd>The crease where two slopes meet — where the most water runs on your roof.</dd></div>
31
- <div slot="terms"><dt>Ridge vent</dt><dd>A low-profile vent along the peak that lets hot attic air out.</dd></div>
32
- </glossary>
33
- ```
34
-
35
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,6 +0,0 @@
1
- .c-glossary__grid{display:grid;gap:var(--space-5) var(--space-7);margin:0}
2
- .c-glossary__grid > *{padding-top:var(--space-4);border-top:1px solid var(--color-border)}
3
- .c-glossary__grid dt{margin-bottom:var(--space-1);font-weight:600;font-size:var(--step-1)}
4
- .c-glossary__grid dd{margin:0;color:var(--color-muted);font-size:var(--step-0);line-height:1.6}
5
- @media(min-width:720px){.c-glossary__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
6
- @media(min-width:1080px){.c-glossary__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@@ -1 +0,0 @@
1
- <section class="c-glossary section"><div class="wrap"><div class="section__head"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="lede"></slot></div><dl class="c-glossary__grid"><slot name="terms"></slot></dl></div></section>
@@ -1,33 +0,0 @@
1
- # list-split
2
-
3
- Label left, hairline rows right (values, process, challenge → result).
4
-
5
- - **Category:** content
6
- - **Media:** none
7
- - **Registers:** all
8
- - **Variants:** numbered
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `label` | `<h2>` short label |
15
- | `lede` | Optional `<p class="lede">` |
16
- | `rows` | 3–6 `<div><h3>Title</h3><p>One or two sentences.</p></div>` |
17
-
18
- ## Example
19
-
20
- ```html
21
- <list-split>
22
- <h2 slot="label">How the work runs</h2>
23
- <p slot="lede" class="lede">Four stages, one point of contact, no surprises at the end.</p>
24
- <div slot="rows"><h3>Discovery</h3><p>We get to know your business, your customers, and what the mark needs to carry.</p></div>
25
- <div slot="rows"><h3>Concept design</h3><p>Three directions, each exploring a distinct idea. You pick the one that feels like you.</p></div>
26
- <div slot="rows"><h3>Refinement</h3><p>Colour, typography, and spacing tuned until it holds up on a truck door and a favicon.</p></div>
27
- <div slot="rows"><h3>Delivery</h3><p>Final files in every format, a short guideline, and a call to walk your printer through it.</p></div>
28
- </list-split>
29
- ```
30
-
31
- Variants: `<list-split variant="numbered">`.
32
-
33
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,13 +0,0 @@
1
- .c-list-split__grid{display:grid;gap:var(--space-5)}
2
- .c-list-split__label{display:grid;gap:var(--space-3);align-content:start}
3
- .c-list-split__label h2{font-size:var(--step-2)}
4
- .c-list-split__rows{counter-reset:row}
5
- .c-list-split__rows > *{display:grid;gap:var(--space-2);padding-block:var(--space-5);border-top:1px solid var(--color-border);counter-increment:row}
6
- .c-list-split__rows > :last-child{border-bottom:1px solid var(--color-border)}
7
- .c-list-split__rows h3{font-size:var(--step-1)}
8
- .c-list-split__rows p{margin:0;color:var(--color-muted);max-width:40rem}
9
- @media(min-width:720px){.c-list-split__grid{grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:var(--space-7)}}
10
- @media(min-width:1080px){.c-list-split__grid{grid-template-columns:minmax(0,18rem) minmax(0,1fr);gap:var(--space-9)}}
11
- .c-list-split--numbered .c-list-split__rows > *{grid-template-columns:3rem minmax(0,1fr)}
12
- .c-list-split--numbered .c-list-split__rows > *::before{content:counter(row,decimal-leading-zero);grid-row:1/span 2;font-family:var(--font-display);font-size:var(--step-1);font-weight:600;color:var(--color-accent);font-variant-numeric:tabular-nums}
13
- .c-list-split--numbered .c-list-split__rows > * > *{grid-column:2}
@@ -1 +0,0 @@
1
- <section class="c-list-split section"><div class="wrap c-list-split__grid"><div class="c-list-split__label sticky-col"><slot name="label"></slot><slot name="lede"></slot></div><div class="c-list-split__rows"><slot name="rows"></slot></div></div></section>
@@ -1,32 +0,0 @@
1
- # prose-split
2
-
3
- Short label left, prose right; optional facts row (client, date, scope).
4
-
5
- - **Category:** content
6
- - **Media:** none
7
- - **Registers:** all
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `label` | `<h2>` short label ("Our story", "Project overview") |
15
- | `(default)` | 2–4 `<p>` paragraphs |
16
- | `meta` | Optional 2–4 `<div><span>Label</span><strong>Value</strong></div>` facts |
17
-
18
- ## Example
19
-
20
- ```html
21
- <prose-split>
22
- <h2 slot="label">Project overview</h2>
23
- <p>We worked with Nextdock from their earliest sketches, creating a logo that reflects speed and innovation. The new identity helped them attract early adopters and secure their first round of investment.</p>
24
- <p>The system covers the wordmark, an app icon, packaging for the developer kit, and a set of motion rules for the product UI.</p>
25
- <div slot="meta"><span>Client</span><strong>Nextdock</strong></div>
26
- <div slot="meta"><span>Date</span><strong>March 2026</strong></div>
27
- <div slot="meta"><span>Industry</span><strong>Technology</strong></div>
28
- <div slot="meta"><span>Services</span><strong>Logo design</strong></div>
29
- </prose-split>
30
- ```
31
-
32
- Copy this folder into the site repo as `components/<your-name>/`, rename the root class to `c-<your-name>`, and adapt slots, copy, and media.
@@ -1,12 +0,0 @@
1
- .c-prose-split__grid{display:grid;gap:var(--space-5)}
2
- .c-prose-split__label h2{font-size:var(--step-2)}
3
- .c-prose-split__body{max-width:44rem}
4
- .c-prose-split__prose{display:grid;gap:var(--space-4)}
5
- .c-prose-split__prose p{margin:0;font-size:var(--step-1);line-height:1.65}
6
- .c-prose-split__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) var(--space-5);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}
7
- .c-prose-split__meta:empty{display:none}
8
- .c-prose-split__meta > *{display:grid;gap:var(--space-1)}
9
- .c-prose-split__meta span{font-size:var(--step-0);color:var(--color-muted)}
10
- .c-prose-split__meta strong{font-weight:600}
11
- @media(min-width:720px){.c-prose-split__grid{grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:var(--space-7)}.c-prose-split__meta{grid-template-columns:repeat(4,minmax(0,1fr))}}
12
- @media(min-width:1080px){.c-prose-split__grid{grid-template-columns:minmax(0,18rem) minmax(0,1fr);gap:var(--space-9)}}
@@ -1 +0,0 @@
1
- <section class="c-prose-split section"><div class="wrap c-prose-split__grid"><div class="c-prose-split__label"><slot name="label"></slot></div><div class="c-prose-split__body"><div class="c-prose-split__prose"><slot></slot></div><div class="c-prose-split__meta"><slot name="meta"></slot></div></div></div></section>
@@ -1,32 +0,0 @@
1
- # specification-ledger
2
-
3
- A dense, readable fact ledger for product or service specifications. The heading introduces why the distinctions matter; rows keep units and limits visible. The example describes a fictional material offer.
4
-
5
- - **Category:** content
6
- - **Media:** none
7
- - **Registers:** b2b, trade, professional
8
- - **Variants:** (none)
9
-
10
- ## Slots
11
-
12
- | Slot | Content |
13
- |------|---------|
14
- | `eyebrow` | Optional section label |
15
- | `heading` | `<h2>` explaining the facts |
16
- | `intro` | Optional concise interpretation |
17
- | `items` | Three or more `<div>` rows containing `<dt>` and `<dd>` |
18
-
19
- ## Example
20
-
21
- ```html
22
- <specification-ledger>
23
- <p slot="eyebrow" class="eyebrow eyebrow--accent">Material guide · fictional example</p>
24
- <h2 slot="heading">What changes with the material.</h2>
25
- <p slot="intro" class="lede">Use this space to explain which specification affects the visitor's decision, then give the exact details below.</p>
26
- <div slot="items"><dt>Finish</dt><dd>Natural split face; color variation is expected.</dd></div>
27
- <div slot="items"><dt>Available sizes</dt><dd>Confirm current sizes from the supplier inventory before publishing.</dd></div>
28
- <div slot="items"><dt>Installation</dt><dd>Selection depends on roof pitch, substrate, and local conditions.</dd></div>
29
- </specification-ledger>
30
- ```
31
-
32
- Verify every dimension, standard, and availability claim. The row layout stacks labels above values at narrow widths.
@@ -1,85 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "id": "content/specification-ledger",
4
- "revision": 1,
5
- "status": "draft",
6
- "owner": "Vitris design library",
7
- "sourceHash": "f9d910387d0f2c82791502a76d178f2deb8e48e50387190fc15d1ad9611149f2",
8
- "fit": {
9
- "visitorJobs": [
10
- "Compare precise specifications"
11
- ],
12
- "pageRoles": [
13
- "product details"
14
- ],
15
- "useWhen": [
16
- "Compare precise specifications"
17
- ],
18
- "avoidWhen": [
19
- "The content or media cannot support this composition"
20
- ]
21
- },
22
- "content": {
23
- "requiredSlots": [
24
- "heading",
25
- "items"
26
- ],
27
- "optionalSlots": [
28
- "eyebrow",
29
- "intro"
30
- ],
31
- "testedItemCounts": [
32
- 1
33
- ]
34
- },
35
- "media": {
36
- "min": 0,
37
- "max": 8,
38
- "optionalBehavior": "Recompose without empty media frames when media is optional",
39
- "aspect": [
40
- "content-dependent"
41
- ]
42
- },
43
- "composition": {
44
- "hierarchy": "dense fact ledger",
45
- "alignment": "split",
46
- "density": "dense",
47
- "mediaProminence": "none",
48
- "geometry": [
49
- "ledger",
50
- "rows"
51
- ],
52
- "boundary": "section boundary adapts to adjacent content"
53
- },
54
- "adaptation": {
55
- "flexible": [
56
- "spacing",
57
- "surface treatment",
58
- "type scale"
59
- ],
60
- "invariants": [
61
- "semantic reading order",
62
- "one clear section purpose"
63
- ],
64
- "customWhen": [
65
- "The visitor job needs a different hierarchy"
66
- ]
67
- },
68
- "responsive": {
69
- "readingOrder": "DOM order follows the visitor narrative",
70
- "reflow": "Stack or resize according to content",
71
- "crop": "Keep important subjects visible"
72
- },
73
- "interaction": {
74
- "behavior": "Native links and controls",
75
- "islands": []
76
- },
77
- "evidence": {
78
- "provenance": [
79
- "Original Vitris block source"
80
- ],
81
- "testedContexts": [],
82
- "accessibility": [],
83
- "previewManifest": "../../../design-system/block-previews/v1/content--specification-ledger.json"
84
- }
85
- }
@@ -1,10 +0,0 @@
1
- .c-specification-ledger__layout{display:grid;gap:var(--space-6)}
2
- .c-specification-ledger__intro{display:grid;gap:var(--space-3);align-content:start}
3
- .c-specification-ledger__intro h2{max-width:18ch}
4
- .c-specification-ledger__intro p{max-width:50ch}
5
- .c-specification-ledger__list{border-top:2px solid var(--color-text);margin:0}
6
- .c-specification-ledger__list > div{display:grid;grid-template-columns:minmax(7rem,.45fr) minmax(0,1fr);gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border)}
7
- .c-specification-ledger__list dt{font-weight:600}
8
- .c-specification-ledger__list dd{margin:0;color:var(--color-muted);max-width:56ch}
9
- @media(max-width:420px){.c-specification-ledger__list > div{grid-template-columns:1fr;gap:var(--space-1)}}
10
- @media(min-width:900px){.c-specification-ledger__layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-8)}}
@@ -1 +0,0 @@
1
- <section class="c-specification-ledger section"><div class="wrap c-specification-ledger__layout"><div class="c-specification-ledger__intro"><slot name="eyebrow"></slot><slot name="heading"></slot><slot name="intro"></slot></div><dl class="c-specification-ledger__list"><slot name="items"></slot></dl></div></section>