@tmorrow/cre8-wc 2.3.4 → 2.3.6

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 (469) hide show
  1. package/a2ui/catalog-kg.json +195 -7
  2. package/a2ui/catalog.compact.json +63 -4
  3. package/a2ui/catalog.json +152 -3
  4. package/a2ui/inert-props.json +1 -1
  5. package/cdn/cre8-wc.esm.js +12614 -10799
  6. package/cdn/cre8-wc.esm.js.map +1 -1
  7. package/cdn/cre8-wc.min.js +8318 -6586
  8. package/cdn/cre8-wc.min.js.map +1 -1
  9. package/dist/assets/{Changelog-Documentation-KVZaGCrM.js → Changelog-Documentation-Df3oEE8P.js} +1 -1
  10. package/dist/assets/{Code-Guidelines-MLEqij8-.js → Code-Guidelines-C9lzKDe_.js} +1 -1
  11. package/dist/assets/{Color-6AOWCN3U-gep76IeU.js → Color-6AOWCN3U-DHuHh4rV.js} +1 -1
  12. package/dist/assets/{Contributing-Guidelines-Bt0K4OQJ.js → Contributing-Guidelines-B7MkFK_8.js} +1 -1
  13. package/dist/assets/{DocsRenderer-JROSPFPF-ZXzBW5vb.js → DocsRenderer-JROSPFPF-BIYBNFaz.js} +1 -1
  14. package/dist/assets/{Tokens-Documentation-3Wgmzu4M.js → Tokens-Documentation-BVWu9IZF.js} +1 -1
  15. package/dist/assets/{WithTooltip-7X4HQR7L-BGg1AeW_.js → WithTooltip-7X4HQR7L-C1jY6FTJ.js} +1 -1
  16. package/dist/assets/{accordion-item.stories-OrnOMQYE.js → accordion-item.stories-CCc_5N2k.js} +65 -66
  17. package/dist/assets/{accordion.stories-D-vQti3L.js → accordion.stories-g3fhuwAf.js} +64 -65
  18. package/dist/assets/{address-form.stories-ijYA_xUo.js → address-form.stories-0d7ZzW-G.js} +2 -2
  19. package/dist/assets/{alert.stories-BRuaE3Fz.js → alert.stories-tqSNDhCu.js} +63 -64
  20. package/dist/assets/{badge-BAvcCZKg.js → badge-D6EpCJXK.js} +58 -59
  21. package/dist/assets/{badge.stories-DfRAoLjf.js → badge.stories-Q7iAA4SM.js} +1 -1
  22. package/dist/assets/{band.stories-DmFW5_qW.js → band.stories-_2iwAs8T.js} +68 -59
  23. package/dist/assets/{blocks-DaRdDsLJ.js → blocks-D37TnjJk.js} +5 -5
  24. package/dist/assets/{breadcrumbs.stories-DQpKOPux.js → breadcrumbs.stories-B2UTahU6.js} +113 -115
  25. package/dist/assets/{button-CKAKDdnt.js → button-BYSQD8Gp.js} +57 -58
  26. package/dist/assets/{button-group-BE61zidL.js → button-group-Clrz8Qlx.js} +57 -58
  27. package/dist/assets/{button-group.stories-DJTqGcwu.js → button-group.stories-2tYKyE_S.js} +1 -1
  28. package/dist/assets/{button.stories-Bi5uMmVy.js → button.stories-DIic_g44.js} +1 -1
  29. package/dist/assets/{card-Ba_U5Ofz.js → card-Hnd7rRWF.js} +100 -62
  30. package/dist/assets/card.stories-CJ2oVtcP.js +69 -0
  31. package/dist/assets/{chart.stories-CYez_qCE.js → chart.stories-DY-mVTkR.js} +71 -62
  32. package/dist/assets/{checkbox-field-item-CMFG4Oj2.js → checkbox-field-item-AzitqhZQ.js} +58 -59
  33. package/dist/assets/{checkbox-field-item.stories-Dr-efaxE.js → checkbox-field-item.stories-C5kh3YAQ.js} +1 -1
  34. package/dist/assets/{checkbox-field.stories-DQZetpTg.js → checkbox-field.stories-C7oDF7AJ.js} +61 -62
  35. package/dist/assets/container-grid.stories-KJKHfjzu.js +974 -0
  36. package/dist/assets/container.stories-DgYxypy6.js +636 -0
  37. package/dist/assets/{cre8-element-C32P9iMC.js → cre8-element-C-P96xHp.js} +1 -1
  38. package/dist/assets/{cre8-form-element-C-cxFbUF.js → cre8-form-element-1YjfSY90.js} +1 -1
  39. package/dist/assets/{danger-button.stories-D1jFAMuu.js → danger-button.stories-DjO-dusH.js} +75 -76
  40. package/dist/assets/{date-picker.stories-CF0p6Acs.js → date-picker.stories-BuoLDvt5.js} +287 -292
  41. package/dist/assets/{divider-C1KL_AxK.js → divider-C0LMK6Iw.js} +56 -57
  42. package/dist/assets/{divider.stories-pDMv71LL.js → divider.stories-BVG4AJFY.js} +1 -1
  43. package/dist/assets/{dropdown-BsCUc3cP.js → dropdown-Dyzrh4vW.js} +115 -117
  44. package/dist/assets/{dropdown-item.stories-DBShD_vk.js → dropdown-item.stories-Cvya6h_o.js} +1 -1
  45. package/dist/assets/{dropdown.stories-DVRa7cfL.js → dropdown.stories-CGyaMLDz.js} +1 -1
  46. package/dist/assets/{f-po-Bskj3oQY.js → f-po-qGnzb4u2.js} +1 -1
  47. package/dist/assets/{feature.stories-BG27bJO6.js → feature.stories-NH-XwyuG.js} +62 -63
  48. package/dist/assets/{field-g3Qu1hyk.js → field-DW7G8q1Z.js} +1 -1
  49. package/dist/assets/{field-note-VLKkFhY-.js → field-note-Bo9Uvf0_.js} +59 -60
  50. package/dist/assets/{field-note.stories-Csbwk50n.js → field-note.stories-BtghmWb1.js} +1 -1
  51. package/dist/assets/{field.stories-BSYd3vhk.js → field.stories-CZtgfXbq.js} +1 -1
  52. package/dist/assets/{field.styles-DsJqDxUf.js → field.styles-DY4WEjtf.js} +137 -59
  53. package/dist/assets/{footer.stories-D9QlbogX.js → footer.stories-5deowSLC.js} +58 -59
  54. package/dist/assets/{form-DnCnqQJV.js → form-C_mLqAJr.js} +1 -1
  55. package/dist/assets/{form.stories-BQ-PyPR-.js → form.stories-Cd-nnRvS.js} +2 -2
  56. package/dist/assets/{formatter-L2YTDE3Q-C-OPFuCo.js → formatter-L2YTDE3Q-Boj-9QnE.js} +1 -1
  57. package/dist/assets/{global-nav-item-Cyd-gXMg.js → global-nav-item-CpegmRaY.js} +57 -58
  58. package/dist/assets/{global-nav-item.stories-DyQtpxdu.js → global-nav-item.stories-pzQ6MjlF.js} +1 -1
  59. package/dist/assets/{global-nav.stories-Clb8iztc.js → global-nav.stories-Cdi6-0Mv.js} +57 -58
  60. package/dist/assets/{grid-item-CaYWmI3M.js → grid-Ceoso7cm.js} +68 -659
  61. package/dist/assets/grid-item-2TZHxEoC.js +614 -0
  62. package/dist/assets/{grid.stories-KIc6tHSz.js → grid.stories-Bt9-ikgE.js} +2 -2
  63. package/dist/assets/{header.stories-ByiUDWAm.js → header.stories-BpKWWJPz.js} +62 -63
  64. package/dist/assets/{heading-DPFC7eAf.js → heading-DJFZJNk9.js} +56 -57
  65. package/dist/assets/{heading.stories-B6g2yudF.js → heading.stories-rcwb69Bn.js} +1 -1
  66. package/dist/assets/{hero.stories-BFvke-pF.js → hero.stories-CUqDnDxZ.js} +83 -74
  67. package/dist/assets/{icon-CRGiEUM0.js → icon-JqBqZA-z.js} +63 -64
  68. package/dist/assets/{icon.stories-Di0IMAzu.js → icon.stories-BCMK0dvc.js} +1 -1
  69. package/dist/assets/if-defined-DA22R8ho.js +1 -0
  70. package/dist/assets/iframe-B4bTcHfE.js +7725 -0
  71. package/dist/assets/{inline-alert.stories-DcBYTS33.js → inline-alert.stories-4nXCXIqv.js} +74 -75
  72. package/dist/assets/{layout-container.stories-gcHzBHmG.js → layout-container.stories-BrGLregS.js} +69 -60
  73. package/dist/assets/{layout.stories-DFFlIxeB.js → layout.stories-Be6tUf5G.js} +140 -121
  74. package/dist/assets/{linelength-container.stories-Dt4Ip3sb.js → linelength-container.stories-BqPn1Ved.js} +67 -58
  75. package/dist/assets/{link-B6NbXrLJ.js → link-BV5p2Gem.js} +56 -57
  76. package/dist/assets/{link-list.stories-OkQpni3G.js → link-list.stories-CzddL0Pv.js} +123 -115
  77. package/dist/assets/{link.stories-OaEY7xHH.js → link.stories-CAQgjgEF.js} +1 -1
  78. package/dist/assets/{list.stories-BAyuq-cx.js → list.stories-CWm_R35G.js} +130 -122
  79. package/dist/assets/{loading-spinner-KSDrx_ka.js → loading-spinner-DKyQa4wk.js} +57 -58
  80. package/dist/assets/{loading-spinner.stories-ShyO4iO0.js → loading-spinner.stories-CAkmVKiI.js} +1 -1
  81. package/dist/assets/{logo.stories-BrDvrPB-.js → logo.stories-B1W8YgnP.js} +58 -59
  82. package/dist/assets/{main.stories-CfJoNAKl.js → main.stories-BBZA2Wa5.js} +56 -57
  83. package/dist/assets/{modal-Cq-m-mQ7.js → modal-BuNx7jRd.js} +65 -66
  84. package/dist/assets/{modal-CISxdJcE.js → modal-CjEkzDMa.js} +1 -1
  85. package/dist/assets/{modal.stories-CW7gUcjn.js → modal.stories-m0YBMD_a.js} +1 -1
  86. package/dist/assets/{multi-select.stories-CPMil75q.js → multi-select.stories-BsUU_ii5.js} +64 -65
  87. package/dist/assets/{nav-container.stories-VKjgNgHm.js → nav-container.stories-D8GvauAI.js} +58 -59
  88. package/dist/assets/{page-header.stories-hn1qhVLu.js → page-header.stories-BlfHczHd.js} +59 -60
  89. package/dist/assets/{pagination.stories-DhzZlNPD.js → pagination.stories-DO4TELjQ.js} +121 -123
  90. package/dist/assets/{percent-bar.stories-DYMx9PHm.js → percent-bar.stories-BAtNh-5P.js} +62 -63
  91. package/dist/assets/{popover.stories-B2NpvzMD.js → popover.stories-IEVMINQi.js} +60 -61
  92. package/dist/assets/{primary-nav.stories-BuXodij-.js → primary-nav.stories-DpV4KV4E.js} +120 -122
  93. package/dist/assets/{progress-meter-B5W9x0fA.js → progress-meter-Cd3UEFGp.js} +56 -57
  94. package/dist/assets/{progress-meter.stories-APJim4AM.js → progress-meter.stories-BbZSzuOC.js} +1 -1
  95. package/dist/assets/{progress-steps-item-8XodA5dv.js → progress-steps-item-DBrxAXer.js} +58 -59
  96. package/dist/assets/{progress-steps-item.stories-OjQxDOgb.js → progress-steps-item.stories-uTT_r8tA.js} +1 -1
  97. package/dist/assets/{progress-steps.stories-DgaVveY8.js → progress-steps.stories-Ce5crIHK.js} +78 -79
  98. package/dist/assets/{radio-field-item-JTAZN5iJ.js → radio-field-item-79BwrnBC.js} +124 -126
  99. package/dist/assets/{radio-field-item.stories-6lLJPzWh.js → radio-field-item.stories-DSnw6Pet.js} +1 -1
  100. package/dist/assets/{radio-field.stories-DhyHIJ1d.js → radio-field.stories-DfWP-EBm.js} +1 -1
  101. package/dist/assets/{remove-tag-BNsCfIXN.js → remove-tag-BMrp6VdQ.js} +58 -59
  102. package/dist/assets/{remove-tag.stories-CYFnO6ay.js → remove-tag.stories-DzflfmWP.js} +1 -1
  103. package/dist/assets/{sample-modal.stories-ChZkcfns.js → sample-modal.stories-CkAkkA1F.js} +1 -1
  104. package/dist/assets/{section.stories-D6w1QGJm.js → section.stories-BsRdbbnp.js} +72 -60
  105. package/dist/assets/{select-tile-BvYPheBA.js → select-tile-DT1BbbTN.js} +58 -59
  106. package/dist/assets/{select-tile-list.stories-CSuU-x9D.js → select-tile-list.stories-Y8v5jLtk.js} +63 -64
  107. package/dist/assets/{select-tile.stories-B0yyaVxn.js → select-tile.stories-DXaZ1Ah3.js} +1 -1
  108. package/dist/assets/{select.stories-DwqSLN8h.js → select.stories-CLirye_v.js} +65 -66
  109. package/dist/assets/{sign-in.stories-BKL7agXB.js → sign-in.stories-D9NOZ9gm.js} +1 -1
  110. package/dist/assets/{skeleton-loader.stories-RqGyzk5b.js → skeleton-loader.stories-DNWnBUN6.js} +62 -63
  111. package/dist/assets/{split-button.stories-CSTNKnIT.js → split-button.stories-CiM0ElvX.js} +55 -56
  112. package/dist/assets/{spread-CEvCYGEM.js → spread-Bid2THYj.js} +1 -1
  113. package/dist/assets/state-DNEXh1sp.js +1 -0
  114. package/dist/assets/{submenu.stories-DKOEXdqn.js → submenu.stories-C4DuErMw.js} +115 -117
  115. package/dist/assets/{syntaxhighlighter-T5IQBZDB-Bm_AIazA.js → syntaxhighlighter-T5IQBZDB-DgGEO4R-.js} +1 -1
  116. package/dist/assets/{table-header-C_hYFQ0R.js → table-header-DiIfs7Zl.js} +333 -339
  117. package/dist/assets/{table-object.stories-BadrBE5L.js → table-object.stories-t_9FrO15.js} +58 -59
  118. package/dist/assets/{table.stories-Cp-T52kH.js → table.stories-Bd9nRXO9.js} +1 -1
  119. package/dist/assets/{tabs.stories-BbAXTeuR.js → tabs.stories-Btd9l55I.js} +170 -173
  120. package/dist/assets/{tag-D72styE8.js → tag-CxNMRZ9X.js} +58 -59
  121. package/dist/assets/{tag-list.stories-DFZO0bXv.js → tag-list.stories-Cy8D2LK5.js} +62 -63
  122. package/dist/assets/{tag.stories-BMuaNnlk.js → tag.stories-Bf9eD94c.js} +1 -1
  123. package/dist/assets/{tertiary-nav.stories-CuD-XiX1.js → tertiary-nav.stories-B2FfUXjc.js} +119 -121
  124. package/dist/assets/{text-link-DLmoWt5E.js → text-link-BmXuHtC1.js} +59 -60
  125. package/dist/assets/{text-link.stories-DEUZpyiU.js → text-link.stories-CwSENnir.js} +1 -1
  126. package/dist/assets/{text-passage-iKhUwSNA.js → text-passage-BrueaqOk.js} +111 -113
  127. package/dist/assets/{text-passage.stories-DKc1vgTW.js → text-passage.stories-Cnaez_uH.js} +1 -1
  128. package/dist/assets/{tooltip.stories-BtDMnRW6.js → tooltip.stories-CcqiPZI9.js} +67 -68
  129. package/dist/assets/{utility-nav.stories-Cf5aqb-I.js → utility-nav.stories-CWPHaVQf.js} +117 -119
  130. package/dist/design-tokens/core/scss/theming/body.scss +1 -1
  131. package/dist/design-tokens/core/scss/theming/colors.scss +1 -1
  132. package/dist/design-tokens/core/scss/theming/component.scss +2 -4
  133. package/dist/design-tokens/core/scss/theming/head.css +1 -1
  134. package/dist/design-tokens/core/scss/theming/head.scss +1 -1
  135. package/dist/iframe.html +1 -1
  136. package/dist/index.json +1 -1
  137. package/dist/project.json +1 -1
  138. package/dist/sb-addons/a11y-3/manager-bundle.js +3 -3
  139. package/dist/sb-addons/docs-1/manager-bundle.js +7 -7
  140. package/dist/sb-addons/storybook-5/manager-bundle.js +3 -3
  141. package/dist/sb-addons/themes-2/manager-bundle.js +1 -1
  142. package/dist/sb-addons/vitest-4/manager-bundle.js +1 -1
  143. package/lib/cdn-entry.d.ts +3 -1
  144. package/lib/cdn-entry.d.ts.map +1 -1
  145. package/lib/cdn-entry.js +3 -1
  146. package/lib/cdn-entry.js.map +1 -1
  147. package/lib/components/accordion/accordion.styles.d.ts.map +1 -1
  148. package/lib/components/accordion/accordion.styles.js +54 -55
  149. package/lib/components/accordion/accordion.styles.js.map +1 -1
  150. package/lib/components/accordion-item/accordion-item.styles.d.ts.map +1 -1
  151. package/lib/components/accordion-item/accordion-item.styles.js +54 -55
  152. package/lib/components/accordion-item/accordion-item.styles.js.map +1 -1
  153. package/lib/components/alert/alert.styles.d.ts.map +1 -1
  154. package/lib/components/alert/alert.styles.js +54 -55
  155. package/lib/components/alert/alert.styles.js.map +1 -1
  156. package/lib/components/badge/badge.styles.d.ts.map +1 -1
  157. package/lib/components/badge/badge.styles.js +54 -55
  158. package/lib/components/badge/badge.styles.js.map +1 -1
  159. package/lib/components/band/band.styles.d.ts.map +1 -1
  160. package/lib/components/band/band.styles.js +64 -55
  161. package/lib/components/band/band.styles.js.map +1 -1
  162. package/lib/components/breadcrumbs/breadcrumbs.styles.d.ts.map +1 -1
  163. package/lib/components/breadcrumbs/breadcrumbs.styles.js +54 -55
  164. package/lib/components/breadcrumbs/breadcrumbs.styles.js.map +1 -1
  165. package/lib/components/breadcrumbs-item/breadcrumbs-item.styles.d.ts.map +1 -1
  166. package/lib/components/breadcrumbs-item/breadcrumbs-item.styles.js +54 -55
  167. package/lib/components/breadcrumbs-item/breadcrumbs-item.styles.js.map +1 -1
  168. package/lib/components/button/button.styles.d.ts.map +1 -1
  169. package/lib/components/button/button.styles.js +54 -55
  170. package/lib/components/button/button.styles.js.map +1 -1
  171. package/lib/components/button-group/button-group.styles.d.ts.map +1 -1
  172. package/lib/components/button-group/button-group.styles.js +54 -55
  173. package/lib/components/button-group/button-group.styles.js.map +1 -1
  174. package/lib/components/card/card.d.ts +8 -0
  175. package/lib/components/card/card.d.ts.map +1 -1
  176. package/lib/components/card/card.js +4 -0
  177. package/lib/components/card/card.js.map +1 -1
  178. package/lib/components/card/card.styles.d.ts.map +1 -1
  179. package/lib/components/card/card.styles.js +95 -57
  180. package/lib/components/card/card.styles.js.map +1 -1
  181. package/lib/components/chart/chart.styles.d.ts.map +1 -1
  182. package/lib/components/chart/chart.styles.js +64 -55
  183. package/lib/components/chart/chart.styles.js.map +1 -1
  184. package/lib/components/checkbox-field/checkbox-field.styles.d.ts.map +1 -1
  185. package/lib/components/checkbox-field/checkbox-field.styles.js +54 -55
  186. package/lib/components/checkbox-field/checkbox-field.styles.js.map +1 -1
  187. package/lib/components/checkbox-field-item/checkbox-field-item.styles.d.ts.map +1 -1
  188. package/lib/components/checkbox-field-item/checkbox-field-item.styles.js +54 -55
  189. package/lib/components/checkbox-field-item/checkbox-field-item.styles.js.map +1 -1
  190. package/lib/components/container/container.d.ts +48 -0
  191. package/lib/components/container/container.d.ts.map +1 -0
  192. package/lib/components/container/container.js +56 -0
  193. package/lib/components/container/container.js.map +1 -0
  194. package/lib/components/container/container.styles.d.ts +3 -0
  195. package/lib/components/container/container.styles.d.ts.map +1 -0
  196. package/lib/components/container/container.styles.js +624 -0
  197. package/lib/components/container/container.styles.js.map +1 -0
  198. package/lib/components/container-grid/container-grid.d.ts +55 -0
  199. package/lib/components/container-grid/container-grid.d.ts.map +1 -0
  200. package/lib/components/container-grid/container-grid.js +59 -0
  201. package/lib/components/container-grid/container-grid.js.map +1 -0
  202. package/lib/components/container-grid/container-grid.styles.d.ts +3 -0
  203. package/lib/components/container-grid/container-grid.styles.d.ts.map +1 -0
  204. package/lib/components/container-grid/container-grid.styles.js +949 -0
  205. package/lib/components/container-grid/container-grid.styles.js.map +1 -0
  206. package/lib/components/danger-button/danger-button.styles.d.ts.map +1 -1
  207. package/lib/components/danger-button/danger-button.styles.js +54 -55
  208. package/lib/components/danger-button/danger-button.styles.js.map +1 -1
  209. package/lib/components/date-picker/calendar/calendar.styles.d.ts.map +1 -1
  210. package/lib/components/date-picker/calendar/calendar.styles.js +54 -55
  211. package/lib/components/date-picker/calendar/calendar.styles.js.map +1 -1
  212. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.styles.d.ts.map +1 -1
  213. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.styles.js +54 -55
  214. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.styles.js.map +1 -1
  215. package/lib/components/date-picker/calendar-navigation/calendar-navigation.styles.d.ts.map +1 -1
  216. package/lib/components/date-picker/calendar-navigation/calendar-navigation.styles.js +54 -55
  217. package/lib/components/date-picker/calendar-navigation/calendar-navigation.styles.js.map +1 -1
  218. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.styles.d.ts.map +1 -1
  219. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.styles.js +54 -55
  220. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.styles.js.map +1 -1
  221. package/lib/components/date-picker/date-picker.styles.d.ts.map +1 -1
  222. package/lib/components/date-picker/date-picker.styles.js +56 -57
  223. package/lib/components/date-picker/date-picker.styles.js.map +1 -1
  224. package/lib/components/divider/divider.styles.d.ts.map +1 -1
  225. package/lib/components/divider/divider.styles.js +54 -55
  226. package/lib/components/divider/divider.styles.js.map +1 -1
  227. package/lib/components/dropdown/dropdown.styles.d.ts.map +1 -1
  228. package/lib/components/dropdown/dropdown.styles.js +54 -55
  229. package/lib/components/dropdown/dropdown.styles.js.map +1 -1
  230. package/lib/components/dropdown-item/dropdown-item.styles.d.ts.map +1 -1
  231. package/lib/components/dropdown-item/dropdown-item.styles.js +54 -55
  232. package/lib/components/dropdown-item/dropdown-item.styles.js.map +1 -1
  233. package/lib/components/feature/feature.styles.d.ts.map +1 -1
  234. package/lib/components/feature/feature.styles.js +54 -55
  235. package/lib/components/feature/feature.styles.js.map +1 -1
  236. package/lib/components/field/field.styles.d.ts.map +1 -1
  237. package/lib/components/field/field.styles.js +137 -59
  238. package/lib/components/field/field.styles.js.map +1 -1
  239. package/lib/components/field-note/field-note.styles.d.ts.map +1 -1
  240. package/lib/components/field-note/field-note.styles.js +54 -55
  241. package/lib/components/field-note/field-note.styles.js.map +1 -1
  242. package/lib/components/footer/footer.styles.d.ts.map +1 -1
  243. package/lib/components/footer/footer.styles.js +54 -55
  244. package/lib/components/footer/footer.styles.js.map +1 -1
  245. package/lib/components/global-nav/global-nav.styles.d.ts.map +1 -1
  246. package/lib/components/global-nav/global-nav.styles.js +54 -55
  247. package/lib/components/global-nav/global-nav.styles.js.map +1 -1
  248. package/lib/components/global-nav-item/global-nav-item.styles.d.ts.map +1 -1
  249. package/lib/components/global-nav-item/global-nav-item.styles.js +54 -55
  250. package/lib/components/global-nav-item/global-nav-item.styles.js.map +1 -1
  251. package/lib/components/grid/grid.styles.d.ts.map +1 -1
  252. package/lib/components/grid/grid.styles.js +64 -55
  253. package/lib/components/grid/grid.styles.js.map +1 -1
  254. package/lib/components/grid-item/grid-item.d.ts +7 -0
  255. package/lib/components/grid-item/grid-item.d.ts.map +1 -1
  256. package/lib/components/grid-item/grid-item.js +13 -1
  257. package/lib/components/grid-item/grid-item.js.map +1 -1
  258. package/lib/components/grid-item/grid-item.styles.d.ts.map +1 -1
  259. package/lib/components/grid-item/grid-item.styles.js +70 -57
  260. package/lib/components/grid-item/grid-item.styles.js.map +1 -1
  261. package/lib/components/header/header.styles.d.ts.map +1 -1
  262. package/lib/components/header/header.styles.js +54 -55
  263. package/lib/components/header/header.styles.js.map +1 -1
  264. package/lib/components/heading/heading.styles.d.ts.map +1 -1
  265. package/lib/components/heading/heading.styles.js +54 -55
  266. package/lib/components/heading/heading.styles.js.map +1 -1
  267. package/lib/components/hero/hero.styles.d.ts.map +1 -1
  268. package/lib/components/hero/hero.styles.js +67 -58
  269. package/lib/components/hero/hero.styles.js.map +1 -1
  270. package/lib/components/icon/icon.styles.d.ts.map +1 -1
  271. package/lib/components/icon/icon.styles.js +54 -55
  272. package/lib/components/icon/icon.styles.js.map +1 -1
  273. package/lib/components/inline-alert/inline-alert.styles.d.ts.map +1 -1
  274. package/lib/components/inline-alert/inline-alert.styles.js +54 -55
  275. package/lib/components/inline-alert/inline-alert.styles.js.map +1 -1
  276. package/lib/components/layout/layout.styles.d.ts.map +1 -1
  277. package/lib/components/layout/layout.styles.js +64 -55
  278. package/lib/components/layout/layout.styles.js.map +1 -1
  279. package/lib/components/layout-container/layout-container.styles.d.ts.map +1 -1
  280. package/lib/components/layout-container/layout-container.styles.js +64 -55
  281. package/lib/components/layout-container/layout-container.styles.js.map +1 -1
  282. package/lib/components/layout-section/layout-section.d.ts +8 -0
  283. package/lib/components/layout-section/layout-section.d.ts.map +1 -1
  284. package/lib/components/layout-section/layout-section.js +4 -0
  285. package/lib/components/layout-section/layout-section.js.map +1 -1
  286. package/lib/components/layout-section/layout-section.styles.d.ts.map +1 -1
  287. package/lib/components/layout-section/layout-section.styles.js +65 -55
  288. package/lib/components/layout-section/layout-section.styles.js.map +1 -1
  289. package/lib/components/linelength-container/linelength-container.styles.d.ts.map +1 -1
  290. package/lib/components/linelength-container/linelength-container.styles.js +64 -55
  291. package/lib/components/linelength-container/linelength-container.styles.js.map +1 -1
  292. package/lib/components/link/link.styles.d.ts.map +1 -1
  293. package/lib/components/link/link.styles.js +54 -55
  294. package/lib/components/link/link.styles.js.map +1 -1
  295. package/lib/components/link-list/link-list.styles.d.ts.map +1 -1
  296. package/lib/components/link-list/link-list.styles.js +64 -55
  297. package/lib/components/link-list/link-list.styles.js.map +1 -1
  298. package/lib/components/link-list-item/link-list-item.styles.d.ts.map +1 -1
  299. package/lib/components/link-list-item/link-list-item.styles.js +54 -55
  300. package/lib/components/link-list-item/link-list-item.styles.js.map +1 -1
  301. package/lib/components/list/list.styles.d.ts.map +1 -1
  302. package/lib/components/list/list.styles.js +64 -55
  303. package/lib/components/list/list.styles.js.map +1 -1
  304. package/lib/components/list-item/list-item.styles.d.ts.map +1 -1
  305. package/lib/components/list-item/list-item.styles.js +54 -55
  306. package/lib/components/list-item/list-item.styles.js.map +1 -1
  307. package/lib/components/loading-spinner/loading-spinner.styles.d.ts.map +1 -1
  308. package/lib/components/loading-spinner/loading-spinner.styles.js +54 -55
  309. package/lib/components/loading-spinner/loading-spinner.styles.js.map +1 -1
  310. package/lib/components/logo/logo.styles.d.ts.map +1 -1
  311. package/lib/components/logo/logo.styles.js +54 -55
  312. package/lib/components/logo/logo.styles.js.map +1 -1
  313. package/lib/components/main/main.styles.d.ts.map +1 -1
  314. package/lib/components/main/main.styles.js +54 -55
  315. package/lib/components/main/main.styles.js.map +1 -1
  316. package/lib/components/modal/modal.styles.d.ts.map +1 -1
  317. package/lib/components/modal/modal.styles.js +54 -55
  318. package/lib/components/modal/modal.styles.js.map +1 -1
  319. package/lib/components/multi-select/multi-select.styles.d.ts.map +1 -1
  320. package/lib/components/multi-select/multi-select.styles.js +54 -55
  321. package/lib/components/multi-select/multi-select.styles.js.map +1 -1
  322. package/lib/components/nav-container/nav-container.styles.d.ts.map +1 -1
  323. package/lib/components/nav-container/nav-container.styles.js +54 -55
  324. package/lib/components/nav-container/nav-container.styles.js.map +1 -1
  325. package/lib/components/page-header/page-header.styles.d.ts.map +1 -1
  326. package/lib/components/page-header/page-header.styles.js +54 -55
  327. package/lib/components/page-header/page-header.styles.js.map +1 -1
  328. package/lib/components/pagination/page-counter/page-counter.styles.d.ts.map +1 -1
  329. package/lib/components/pagination/page-counter/page-counter.styles.js +54 -55
  330. package/lib/components/pagination/page-counter/page-counter.styles.js.map +1 -1
  331. package/lib/components/pagination/pagination.styles.d.ts.map +1 -1
  332. package/lib/components/pagination/pagination.styles.js +54 -55
  333. package/lib/components/pagination/pagination.styles.js.map +1 -1
  334. package/lib/components/percent-bar/percent-bar.styles.d.ts.map +1 -1
  335. package/lib/components/percent-bar/percent-bar.styles.js +54 -55
  336. package/lib/components/percent-bar/percent-bar.styles.js.map +1 -1
  337. package/lib/components/popover/popover.styles.d.ts.map +1 -1
  338. package/lib/components/popover/popover.styles.js +54 -55
  339. package/lib/components/popover/popover.styles.js.map +1 -1
  340. package/lib/components/primary-nav/primary-nav.styles.d.ts.map +1 -1
  341. package/lib/components/primary-nav/primary-nav.styles.js +54 -55
  342. package/lib/components/primary-nav/primary-nav.styles.js.map +1 -1
  343. package/lib/components/primary-nav-item/primary-nav-item.styles.d.ts.map +1 -1
  344. package/lib/components/primary-nav-item/primary-nav-item.styles.js +54 -55
  345. package/lib/components/primary-nav-item/primary-nav-item.styles.js.map +1 -1
  346. package/lib/components/progress-meter/progress-meter.styles.d.ts.map +1 -1
  347. package/lib/components/progress-meter/progress-meter.styles.js +54 -55
  348. package/lib/components/progress-meter/progress-meter.styles.js.map +1 -1
  349. package/lib/components/progress-steps/progress-steps.styles.d.ts.map +1 -1
  350. package/lib/components/progress-steps/progress-steps.styles.js +54 -55
  351. package/lib/components/progress-steps/progress-steps.styles.js.map +1 -1
  352. package/lib/components/progress-steps-item/progress-steps-item.styles.d.ts.map +1 -1
  353. package/lib/components/progress-steps-item/progress-steps-item.styles.js +54 -55
  354. package/lib/components/progress-steps-item/progress-steps-item.styles.js.map +1 -1
  355. package/lib/components/radio-field/radio-field.styles.d.ts.map +1 -1
  356. package/lib/components/radio-field/radio-field.styles.js +54 -55
  357. package/lib/components/radio-field/radio-field.styles.js.map +1 -1
  358. package/lib/components/radio-field-item/radio-field-item.styles.d.ts.map +1 -1
  359. package/lib/components/radio-field-item/radio-field-item.styles.js +54 -55
  360. package/lib/components/radio-field-item/radio-field-item.styles.js.map +1 -1
  361. package/lib/components/remove-tag/remove-tag.styles.d.ts.map +1 -1
  362. package/lib/components/remove-tag/remove-tag.styles.js +54 -55
  363. package/lib/components/remove-tag/remove-tag.styles.js.map +1 -1
  364. package/lib/components/section/section.styles.d.ts.map +1 -1
  365. package/lib/components/section/section.styles.js +68 -56
  366. package/lib/components/section/section.styles.js.map +1 -1
  367. package/lib/components/select/select.styles.d.ts.map +1 -1
  368. package/lib/components/select/select.styles.js +54 -55
  369. package/lib/components/select/select.styles.js.map +1 -1
  370. package/lib/components/select-tile/select-tile.styles.d.ts.map +1 -1
  371. package/lib/components/select-tile/select-tile.styles.js +54 -55
  372. package/lib/components/select-tile/select-tile.styles.js.map +1 -1
  373. package/lib/components/select-tile-list/select-tile-list.styles.d.ts.map +1 -1
  374. package/lib/components/select-tile-list/select-tile-list.styles.js +54 -55
  375. package/lib/components/select-tile-list/select-tile-list.styles.js.map +1 -1
  376. package/lib/components/skeleton-loader/skeleton-loader.styles.d.ts.map +1 -1
  377. package/lib/components/skeleton-loader/skeleton-loader.styles.js +54 -55
  378. package/lib/components/skeleton-loader/skeleton-loader.styles.js.map +1 -1
  379. package/lib/components/split-button/split-button.styles.d.ts.map +1 -1
  380. package/lib/components/split-button/split-button.styles.js +54 -55
  381. package/lib/components/split-button/split-button.styles.js.map +1 -1
  382. package/lib/components/submenu/submenu.styles.d.ts.map +1 -1
  383. package/lib/components/submenu/submenu.styles.js +54 -55
  384. package/lib/components/submenu/submenu.styles.js.map +1 -1
  385. package/lib/components/submenu-item/submenu-item.styles.d.ts.map +1 -1
  386. package/lib/components/submenu-item/submenu-item.styles.js +54 -55
  387. package/lib/components/submenu-item/submenu-item.styles.js.map +1 -1
  388. package/lib/components/tab/tab.styles.d.ts.map +1 -1
  389. package/lib/components/tab/tab.styles.js +54 -55
  390. package/lib/components/tab/tab.styles.js.map +1 -1
  391. package/lib/components/tab-panel/tab-panel.styles.d.ts.map +1 -1
  392. package/lib/components/tab-panel/tab-panel.styles.js +54 -55
  393. package/lib/components/tab-panel/tab-panel.styles.js.map +1 -1
  394. package/lib/components/table/table.styles.d.ts.map +1 -1
  395. package/lib/components/table/table.styles.js +54 -55
  396. package/lib/components/table/table.styles.js.map +1 -1
  397. package/lib/components/table-body/table-body.styles.d.ts.map +1 -1
  398. package/lib/components/table-body/table-body.styles.js +54 -55
  399. package/lib/components/table-body/table-body.styles.js.map +1 -1
  400. package/lib/components/table-cell/table-cell.styles.d.ts.map +1 -1
  401. package/lib/components/table-cell/table-cell.styles.js +54 -55
  402. package/lib/components/table-cell/table-cell.styles.js.map +1 -1
  403. package/lib/components/table-header/table-header.styles.d.ts.map +1 -1
  404. package/lib/components/table-header/table-header.styles.js +54 -55
  405. package/lib/components/table-header/table-header.styles.js.map +1 -1
  406. package/lib/components/table-header-cell/table-header-cell.styles.d.ts.map +1 -1
  407. package/lib/components/table-header-cell/table-header-cell.styles.js +54 -55
  408. package/lib/components/table-header-cell/table-header-cell.styles.js.map +1 -1
  409. package/lib/components/table-object/table-object.styles.d.ts.map +1 -1
  410. package/lib/components/table-object/table-object.styles.js +54 -55
  411. package/lib/components/table-object/table-object.styles.js.map +1 -1
  412. package/lib/components/table-row/table-row.styles.d.ts.map +1 -1
  413. package/lib/components/table-row/table-row.styles.js +54 -55
  414. package/lib/components/table-row/table-row.styles.js.map +1 -1
  415. package/lib/components/tabs/tabs.styles.d.ts.map +1 -1
  416. package/lib/components/tabs/tabs.styles.js +54 -55
  417. package/lib/components/tabs/tabs.styles.js.map +1 -1
  418. package/lib/components/tag/tag.styles.d.ts.map +1 -1
  419. package/lib/components/tag/tag.styles.js +54 -55
  420. package/lib/components/tag/tag.styles.js.map +1 -1
  421. package/lib/components/tag-list/tag-list.styles.d.ts.map +1 -1
  422. package/lib/components/tag-list/tag-list.styles.js +54 -55
  423. package/lib/components/tag-list/tag-list.styles.js.map +1 -1
  424. package/lib/components/tertiary-nav/tertiary-nav.styles.d.ts.map +1 -1
  425. package/lib/components/tertiary-nav/tertiary-nav.styles.js +54 -55
  426. package/lib/components/tertiary-nav/tertiary-nav.styles.js.map +1 -1
  427. package/lib/components/tertiary-nav-item/tertiary-nav-item.styles.d.ts.map +1 -1
  428. package/lib/components/tertiary-nav-item/tertiary-nav-item.styles.js +54 -55
  429. package/lib/components/tertiary-nav-item/tertiary-nav-item.styles.js.map +1 -1
  430. package/lib/components/text-link/text-link.styles.d.ts.map +1 -1
  431. package/lib/components/text-link/text-link.styles.js +54 -55
  432. package/lib/components/text-link/text-link.styles.js.map +1 -1
  433. package/lib/components/text-passage/text-passage-light-dom.styles.d.ts.map +1 -1
  434. package/lib/components/text-passage/text-passage-light-dom.styles.js +54 -55
  435. package/lib/components/text-passage/text-passage-light-dom.styles.js.map +1 -1
  436. package/lib/components/text-passage/text-passage.styles.d.ts.map +1 -1
  437. package/lib/components/text-passage/text-passage.styles.js +54 -55
  438. package/lib/components/text-passage/text-passage.styles.js.map +1 -1
  439. package/lib/components/tooltip/tooltip.styles.d.ts.map +1 -1
  440. package/lib/components/tooltip/tooltip.styles.js +54 -55
  441. package/lib/components/tooltip/tooltip.styles.js.map +1 -1
  442. package/lib/components/utility-nav/utility-nav.styles.d.ts.map +1 -1
  443. package/lib/components/utility-nav/utility-nav.styles.js +54 -55
  444. package/lib/components/utility-nav/utility-nav.styles.js.map +1 -1
  445. package/lib/components/utility-nav-item/utility-nav-item.styles.d.ts.map +1 -1
  446. package/lib/components/utility-nav-item/utility-nav-item.styles.js +54 -55
  447. package/lib/components/utility-nav-item/utility-nav-item.styles.js.map +1 -1
  448. package/lib/design-tokens/core/scss/theming/body.scss +1 -1
  449. package/lib/design-tokens/core/scss/theming/colors.scss +1 -1
  450. package/lib/design-tokens/core/scss/theming/component.scss +2 -4
  451. package/lib/design-tokens/core/scss/theming/head.css +1 -1
  452. package/lib/design-tokens/core/scss/theming/head.module.js +1 -1
  453. package/lib/design-tokens/core/scss/theming/head.module.js.map +1 -1
  454. package/lib/design-tokens/core/scss/theming/head.scss +1 -1
  455. package/lib/index.d.ts +2 -0
  456. package/lib/index.d.ts.map +1 -1
  457. package/lib/index.js +2 -0
  458. package/lib/index.js.map +1 -1
  459. package/lib/scripts/convert-scss-to-ts.js +58 -25
  460. package/lib/scripts/convert-scss-to-ts.js.map +1 -1
  461. package/lib/scripts/generate-mcp-manifest.js +2 -0
  462. package/lib/scripts/generate-mcp-manifest.js.map +1 -1
  463. package/mcp-manifest.json +100 -4
  464. package/package.json +1 -1
  465. package/react-manifest.json +89 -2
  466. package/dist/assets/card.stories-Dp0eU_cY.js +0 -45
  467. package/dist/assets/if-defined-CE1QkYoV.js +0 -1
  468. package/dist/assets/iframe-BH5yZqve.js +0 -7725
  469. package/dist/assets/state-D1tm_mFF.js +0 -1
@@ -5,9 +5,45 @@ import { glob } from 'glob';
5
5
  import * as sass from 'sass';
6
6
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
7
  const packageRoot = path.join(__dirname, '..');
8
- // Read the pre-compiled head.css to prepend as additionalData (matches Vite config behavior)
9
- const headCssPath = path.join(packageRoot, 'design-tokens/core/scss/theming/head.css');
10
- const headCss = fs.readFileSync(headCssPath, 'utf8');
8
+ const themingDir = path.join(packageRoot, 'design-tokens/core/scss/theming');
9
+ // Resolves the absolute-style `/design-tokens/...` specifiers used by the SCSS sources.
10
+ const designTokenImporter = {
11
+ findFileUrl(url) {
12
+ if (url.startsWith('/design-tokens/')) {
13
+ return new URL(`file://${path.join(packageRoot, url.substring(1))}`);
14
+ }
15
+ if (url.startsWith('design-tokens/')) {
16
+ return new URL(`file://${path.join(packageRoot, url)}`);
17
+ }
18
+ return null;
19
+ },
20
+ };
21
+ /**
22
+ * Compile head.scss -> head.css + head.module.ts.
23
+ *
24
+ * These two are prepended into every component's styles (head.css here,
25
+ * head.module.ts in the Storybook preview), so they have to be derived from
26
+ * head.scss rather than hand-maintained - otherwise a fix in the SCSS never
27
+ * reaches the components.
28
+ */
29
+ function compileHead() {
30
+ const css = sass.compile(path.join(themingDir, 'head.scss'), {
31
+ style: 'compressed',
32
+ loadPaths: [themingDir, packageRoot, path.join(packageRoot, 'node_modules')],
33
+ importers: [designTokenImporter],
34
+ silenceDeprecations: ['import'],
35
+ }).css;
36
+ fs.writeFileSync(path.join(themingDir, 'head.css'), css, 'utf8');
37
+ const escaped = css
38
+ .replace(/\\/g, '\\\\')
39
+ .replace(/`/g, '\\`')
40
+ .replace(/\$\{/g, '\\${');
41
+ fs.writeFileSync(path.join(themingDir, 'head.module.ts'), `import {css} from 'lit';\nexport const headModule = css\`\n${escaped}\n\`;\n\nexport default headModule;\n`, 'utf8');
42
+ return css;
43
+ }
44
+ // Prepended into every component's compiled styles (matches Vite config behavior)
45
+ const headCss = compileHead();
46
+ console.log('Compiled: design-tokens/core/scss/theming/head.scss -> head.css, head.module.ts');
11
47
  // Find all component SCSS modules
12
48
  const scssFiles = glob.sync('components/**/*.module.scss', { cwd: packageRoot });
13
49
  let successCount = 0;
@@ -21,15 +57,29 @@ let fatalErrors = 0;
21
57
  */
22
58
  function preprocessScss(source) {
23
59
  const lines = source.split('\n');
60
+ // Collect every namespace the @use -> @import rewrite is about to drop, so
61
+ // the de-namespacing below stays in step with it. Hard-coding `component`
62
+ // meant any other namespace survived into the compile, failed, and left the
63
+ // previous .styles.ts in place as a stale artifact.
64
+ const namespaces = new Set(['component']);
65
+ for (const line of lines) {
66
+ const match = line.match(/^\s*@use\s+['"].+?['"]\s+as\s+(\w+)\s*;/)
67
+ || line.match(/^\s*@import\s+['"].+?['"]\s+as\s+(\w+)\s*;/);
68
+ if (match) {
69
+ namespaces.add(match[1]);
70
+ }
71
+ }
24
72
  return lines.map((line) => {
25
73
  // Convert @use '...' as X → @import '...'
26
74
  line = line.replace(/^(\s*)@use\s+(['"])(.+?)\2\s+as\s+\w+\s*;/, '$1@import $2$3$2;');
27
75
  // Remove invalid `as X` from @import
28
76
  line = line.replace(/^(\s*@import\s+['"].+?['"])\s+as\s+\w+\s*;/, '$1;');
29
- // De-namespace component.$var $var
30
- line = line.replace(/component\.\$/g, '$');
31
- // De-namespace @include component.mixin @include mixin
32
- line = line.replace(/@include\s+component\./g, '@include ');
77
+ for (const ns of namespaces) {
78
+ // De-namespace ns.$var $var
79
+ line = line.replace(new RegExp(`\\b${ns}\\.\\$`, 'g'), '$');
80
+ // De-namespace @include ns.mixin → @include mixin
81
+ line = line.replace(new RegExp(`@include\\s+${ns}\\.`, 'g'), '@include ');
82
+ }
33
83
  return line;
34
84
  }).join('\n');
35
85
  }
@@ -51,24 +101,7 @@ for (const relPath of scssFiles) {
51
101
  packageRoot,
52
102
  path.join(packageRoot, 'node_modules'),
53
103
  ],
54
- importers: [
55
- {
56
- findFileUrl(url) {
57
- // Handle absolute-style paths like /design-tokens/...
58
- if (url.startsWith('/design-tokens/')) {
59
- const cleaned = url.substring(1);
60
- const resolved = path.join(packageRoot, cleaned);
61
- return new URL(`file://${resolved}`);
62
- }
63
- // Handle bare design-tokens/ paths
64
- if (url.startsWith('design-tokens/')) {
65
- const resolved = path.join(packageRoot, url);
66
- return new URL(`file://${resolved}`);
67
- }
68
- return null;
69
- },
70
- },
71
- ],
104
+ importers: [designTokenImporter],
72
105
  silenceDeprecations: ['import'],
73
106
  });
74
107
  // Escape backticks and template literal expressions in the compiled CSS
@@ -1 +1 @@
1
- {"version":3,"file":"convert-scss-to-ts.js","sourceRoot":"","sources":["../../scripts/convert-scss-to-ts.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { glob } from 'glob';\nimport * as sass from 'sass';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst packageRoot = path.join(__dirname, '..');\n\n// Read the pre-compiled head.css to prepend as additionalData (matches Vite config behavior)\nconst headCssPath = path.join(packageRoot, 'design-tokens/core/scss/theming/head.css');\nconst headCss = fs.readFileSync(headCssPath, 'utf8');\n\n// Find all component SCSS modules\nconst scssFiles = glob.sync('components/**/*.module.scss', { cwd: packageRoot });\n\nlet successCount = 0;\nlet errorCount = 0;\nlet fatalErrors = 0;\n\n/**\n * Pre-process SCSS source to fix syntax issues before compilation:\n * 1. Convert @use to @import (avoid @use ordering issues with head.css prepend)\n * 2. De-namespace `component.$var` → `$var` and `@include component.mixin()` → `@include mixin()`\n * 3. Remove `@import ... as X` (invalid @import syntax, convert to plain @import)\n */\nfunction preprocessScss(source: string): string {\n const lines = source.split('\\n');\n\n return lines.map((line) => {\n // Convert @use '...' as X → @import '...'\n line = line.replace(/^(\\s*)@use\\s+(['\"])(.+?)\\2\\s+as\\s+\\w+\\s*;/, '$1@import $2$3$2;');\n\n // Remove invalid `as X` from @import\n line = line.replace(/^(\\s*@import\\s+['\"].+?['\"])\\s+as\\s+\\w+\\s*;/, '$1;');\n\n // De-namespace component.$var → $var\n line = line.replace(/component\\.\\$/g, '$');\n\n // De-namespace @include component.mixin → @include mixin\n line = line.replace(/@include\\s+component\\./g, '@include ');\n\n return line;\n }).join('\\n');\n}\n\nfor (const relPath of scssFiles) {\n const scssPath = path.join(packageRoot, relPath);\n const tsPath = scssPath.replace(/\\.module\\.scss$/, '.styles.ts');\n const fileDir = path.dirname(scssPath);\n\n try {\n let scssContent = fs.readFileSync(scssPath, 'utf8');\n\n // Pre-process to fix @use/@import and namespace issues\n scssContent = preprocessScss(scssContent);\n\n // Prepend head.css content (already compiled CSS, passes through SCSS compiler)\n const fullSource = headCss + '\\n' + scssContent;\n\n const result = sass.compileString(fullSource, {\n style: 'expanded',\n url: new URL(`file://${scssPath}`),\n loadPaths: [\n fileDir,\n packageRoot,\n path.join(packageRoot, 'node_modules'),\n ],\n importers: [\n {\n findFileUrl(url: string) {\n // Handle absolute-style paths like /design-tokens/...\n if (url.startsWith('/design-tokens/')) {\n const cleaned = url.substring(1);\n const resolved = path.join(packageRoot, cleaned);\n return new URL(`file://${resolved}`);\n }\n // Handle bare design-tokens/ paths\n if (url.startsWith('design-tokens/')) {\n const resolved = path.join(packageRoot, url);\n return new URL(`file://${resolved}`);\n }\n return null;\n },\n },\n ],\n silenceDeprecations: ['import' as any],\n });\n\n // Escape backticks and template literal expressions in the compiled CSS\n const escapedCss = result.css\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/`/g, '\\\\`')\n .replace(/\\$\\{/g, '\\\\${');\n\n const tsContent = `import { css } from 'lit';\\nconst styles = css\\`${escapedCss}\\`;\\nexport default styles;\\n`;\n\n fs.writeFileSync(tsPath, tsContent, 'utf8');\n console.log(`Compiled: ${relPath} -> ${path.basename(tsPath)}`);\n successCount++;\n } catch (err: any) {\n // Check if an existing .styles.ts exists (from prior compilation)\n const hasExisting = fs.existsSync(tsPath);\n const label = hasExisting ? 'WARN' : 'ERROR';\n console.error(`${label} compiling ${relPath}: ${err.message}${hasExisting ? ' (keeping existing .styles.ts)' : ''}`);\n errorCount++;\n if (!hasExisting) {\n fatalErrors++;\n }\n }\n}\n\nconsole.log(`\\nDone: ${successCount} compiled, ${errorCount} warnings/errors`);\n\nif (fatalErrors > 0) {\n console.error(`${fatalErrors} file(s) failed with no existing .styles.ts fallback`);\n process.exit(1);\n}\n"]}
1
+ {"version":3,"file":"convert-scss-to-ts.js","sourceRoot":"","sources":["../../scripts/convert-scss-to-ts.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { glob } from 'glob';\nimport * as sass from 'sass';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst packageRoot = path.join(__dirname, '..');\n\nconst themingDir = path.join(packageRoot, 'design-tokens/core/scss/theming');\n\n// Resolves the absolute-style `/design-tokens/...` specifiers used by the SCSS sources.\nconst designTokenImporter = {\n findFileUrl(url: string) {\n if (url.startsWith('/design-tokens/')) {\n return new URL(`file://${path.join(packageRoot, url.substring(1))}`);\n }\n if (url.startsWith('design-tokens/')) {\n return new URL(`file://${path.join(packageRoot, url)}`);\n }\n return null;\n },\n};\n\n/**\n * Compile head.scss -> head.css + head.module.ts.\n *\n * These two are prepended into every component's styles (head.css here,\n * head.module.ts in the Storybook preview), so they have to be derived from\n * head.scss rather than hand-maintained - otherwise a fix in the SCSS never\n * reaches the components.\n */\nfunction compileHead(): string {\n const css = sass.compile(path.join(themingDir, 'head.scss'), {\n style: 'compressed',\n loadPaths: [themingDir, packageRoot, path.join(packageRoot, 'node_modules')],\n importers: [designTokenImporter],\n silenceDeprecations: ['import' as any],\n }).css;\n\n fs.writeFileSync(path.join(themingDir, 'head.css'), css, 'utf8');\n\n const escaped = css\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/`/g, '\\\\`')\n .replace(/\\$\\{/g, '\\\\${');\n fs.writeFileSync(\n path.join(themingDir, 'head.module.ts'),\n `import {css} from 'lit';\\nexport const headModule = css\\`\\n${escaped}\\n\\`;\\n\\nexport default headModule;\\n`,\n 'utf8',\n );\n\n return css;\n}\n\n// Prepended into every component's compiled styles (matches Vite config behavior)\nconst headCss = compileHead();\nconsole.log('Compiled: design-tokens/core/scss/theming/head.scss -> head.css, head.module.ts');\n\n// Find all component SCSS modules\nconst scssFiles = glob.sync('components/**/*.module.scss', { cwd: packageRoot });\n\nlet successCount = 0;\nlet errorCount = 0;\nlet fatalErrors = 0;\n\n/**\n * Pre-process SCSS source to fix syntax issues before compilation:\n * 1. Convert @use to @import (avoid @use ordering issues with head.css prepend)\n * 2. De-namespace `component.$var` → `$var` and `@include component.mixin()` → `@include mixin()`\n * 3. Remove `@import ... as X` (invalid @import syntax, convert to plain @import)\n */\nfunction preprocessScss(source: string): string {\n const lines = source.split('\\n');\n\n // Collect every namespace the @use -> @import rewrite is about to drop, so\n // the de-namespacing below stays in step with it. Hard-coding `component`\n // meant any other namespace survived into the compile, failed, and left the\n // previous .styles.ts in place as a stale artifact.\n const namespaces = new Set<string>(['component']);\n for (const line of lines) {\n const match = line.match(/^\\s*@use\\s+['\"].+?['\"]\\s+as\\s+(\\w+)\\s*;/)\n || line.match(/^\\s*@import\\s+['\"].+?['\"]\\s+as\\s+(\\w+)\\s*;/);\n if (match) {\n namespaces.add(match[1]);\n }\n }\n\n return lines.map((line) => {\n // Convert @use '...' as X → @import '...'\n line = line.replace(/^(\\s*)@use\\s+(['\"])(.+?)\\2\\s+as\\s+\\w+\\s*;/, '$1@import $2$3$2;');\n\n // Remove invalid `as X` from @import\n line = line.replace(/^(\\s*@import\\s+['\"].+?['\"])\\s+as\\s+\\w+\\s*;/, '$1;');\n\n for (const ns of namespaces) {\n // De-namespace ns.$var → $var\n line = line.replace(new RegExp(`\\\\b${ns}\\\\.\\\\$`, 'g'), '$');\n\n // De-namespace @include ns.mixin → @include mixin\n line = line.replace(new RegExp(`@include\\\\s+${ns}\\\\.`, 'g'), '@include ');\n }\n\n return line;\n }).join('\\n');\n}\n\nfor (const relPath of scssFiles) {\n const scssPath = path.join(packageRoot, relPath);\n const tsPath = scssPath.replace(/\\.module\\.scss$/, '.styles.ts');\n const fileDir = path.dirname(scssPath);\n\n try {\n let scssContent = fs.readFileSync(scssPath, 'utf8');\n\n // Pre-process to fix @use/@import and namespace issues\n scssContent = preprocessScss(scssContent);\n\n // Prepend head.css content (already compiled CSS, passes through SCSS compiler)\n const fullSource = headCss + '\\n' + scssContent;\n\n const result = sass.compileString(fullSource, {\n style: 'expanded',\n url: new URL(`file://${scssPath}`),\n loadPaths: [\n fileDir,\n packageRoot,\n path.join(packageRoot, 'node_modules'),\n ],\n importers: [designTokenImporter],\n silenceDeprecations: ['import' as any],\n });\n\n // Escape backticks and template literal expressions in the compiled CSS\n const escapedCss = result.css\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/`/g, '\\\\`')\n .replace(/\\$\\{/g, '\\\\${');\n\n const tsContent = `import { css } from 'lit';\\nconst styles = css\\`${escapedCss}\\`;\\nexport default styles;\\n`;\n\n fs.writeFileSync(tsPath, tsContent, 'utf8');\n console.log(`Compiled: ${relPath} -> ${path.basename(tsPath)}`);\n successCount++;\n } catch (err: any) {\n // Check if an existing .styles.ts exists (from prior compilation)\n const hasExisting = fs.existsSync(tsPath);\n const label = hasExisting ? 'WARN' : 'ERROR';\n console.error(`${label} compiling ${relPath}: ${err.message}${hasExisting ? ' (keeping existing .styles.ts)' : ''}`);\n errorCount++;\n if (!hasExisting) {\n fatalErrors++;\n }\n }\n}\n\nconsole.log(`\\nDone: ${successCount} compiled, ${errorCount} warnings/errors`);\n\nif (fatalErrors > 0) {\n console.error(`${fatalErrors} file(s) failed with no existing .styles.ts fallback`);\n process.exit(1);\n}\n"]}
@@ -59,6 +59,8 @@ const CATEGORY_MAP = {
59
59
  'text-area': 'Forms',
60
60
  'form-fieldset': 'Forms',
61
61
  'card': 'Layout',
62
+ 'container': 'Layout',
63
+ 'container-grid': 'Layout',
62
64
  'grid': 'Layout',
63
65
  'grid-item': 'Layout',
64
66
  'layout': 'Layout',
@@ -1 +1 @@
1
- {"version":3,"file":"generate-mcp-manifest.js","sourceRoot":"","sources":["../../scripts/generate-mcp-manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAEnC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,iBAAiB,GAAG;IACxB,eAAe;IACf,2BAA2B;IAC3B,0BAA0B;IAC1B,0BAA0B;IAC1B,mBAAmB;CACpB,CAAC;AAEF,wEAAwE;AACxE,MAAM,YAAY,GAA2B;IAC3C,QAAQ,EAAE,SAAS;IACnB,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,OAAO;IACrB,QAAQ,EAAE,OAAO;IACjB,cAAc,EAAE,OAAO;IACvB,gBAAgB,EAAE,OAAO;IACzB,sBAAsB,EAAE,OAAO;IAC/B,qBAAqB,EAAE,OAAO;IAC9B,aAAa,EAAE,OAAO;IACtB,mBAAmB,EAAE,OAAO;IAC5B,kBAAkB,EAAE,OAAO;IAC3B,aAAa,EAAE,OAAO;IACtB,aAAa,EAAE,OAAO;IACtB,mBAAmB,EAAE,OAAO;IAC5B,kBAAkB,EAAE,OAAO;IAC3B,cAAc,EAAE,OAAO;IACvB,WAAW,EAAE,OAAO;IACpB,eAAe,EAAE,OAAO;IACxB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE,QAAQ;IAClB,kBAAkB,EAAE,QAAQ;IAC5B,gBAAgB,EAAE,QAAQ;IAC1B,sBAAsB,EAAE,QAAQ;IAChC,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,YAAY;IACvB,cAAc,EAAE,YAAY;IAC5B,WAAW,EAAE,YAAY;IACzB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,YAAY;IACzB,gBAAgB,EAAE,YAAY;IAC9B,aAAa,EAAE,YAAY;IAC3B,kBAAkB,EAAE,YAAY;IAChC,YAAY,EAAE,YAAY;IAC1B,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,YAAY;IAC1B,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,YAAY;IAC1B,iBAAiB,EAAE,YAAY;IAC/B,aAAa,EAAE,YAAY;IAC3B,kBAAkB,EAAE,YAAY;IAChC,cAAc,EAAE,YAAY;IAC5B,mBAAmB,EAAE,YAAY;IACjC,aAAa,EAAE,YAAY;IAC3B,kBAAkB,EAAE,YAAY;IAChC,eAAe,EAAE,YAAY;IAC7B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,YAAY;IACzB,gBAAgB,EAAE,YAAY;IAC9B,iBAAiB,EAAE,YAAY;IAC/B,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,YAAY;IAC7B,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,cAAc,EAAE,YAAY;IAC5B,OAAO,EAAE,UAAU;IACnB,cAAc,EAAE,UAAU;IAC1B,OAAO,EAAE,UAAU;IACnB,iBAAiB,EAAE,UAAU;IAC7B,iBAAiB,EAAE,UAAU;IAC7B,gBAAgB,EAAE,UAAU;IAC5B,aAAa,EAAE,UAAU;IACzB,gBAAgB,EAAE,UAAU;IAC5B,qBAAqB,EAAE,UAAU;IACjC,OAAO,EAAE,MAAM;IACf,cAAc,EAAE,MAAM;IACtB,mBAAmB,EAAE,MAAM;IAC3B,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,MAAM;IACtB,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,MAAM;IACpB,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,WAAW;CAC3B,CAAC;AAuFF,uEAAuE;AAGvE;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAgB;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAExC,sDAAsD;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,wDAAwD;IACxD,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,IAAI,kBAAkB,KAAK,OAAO,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5G,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClD,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAElD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,UAAmB,EAAE,IAAa;IACtD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACzG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,UAAU;IACV,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAEvC,SAAS;IACT,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe;IACf,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,QAAQ,IAAI,SAAS,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,QAAQ,GAAiD,EAAE,CAAC;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,yBAAyB;IACzB,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAE9D,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,KAAK,GAAG,YAAY,cAAc,GAAG,CAAC;YAC1C,IAAI,QAAQ;gBAAE,KAAK,IAAI,UAAU,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC;gBACZ,WAAW,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;gBAClE,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC;YACZ,WAAW,EAAE,SAAS,YAAY,CAAC,IAAI,CAAC,EAAE;YAC1C,IAAI,EAAE,IAAI,IAAI,UAAU,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG;SACrE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjF,CAAC;AAED,uEAAuE;AAEvE,SAAS,YAAY,CAAC,GAAW;IAC/B,2EAA2E;IAC3E,2EAA2E;IAC3E,uEAAuE;IACvE,wEAAwE;IACxE,kDAAkD;IAClD,MAAM,UAAU,GAAiC,EAAE,CAAC;IACpD,MAAM,UAAU,GAAmH,EAAE,CAAC;IAEtI,6DAA6D;IAG7D,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAClC,IAAI,YAAY,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;QAC7D,IAAI,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAE3D,IAAI,WAAW,EAAE,CAAC;YAChB,oEAAoE;YACpE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,iDAAiD;YACjD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAChC,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;QAC9B,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB;QAChE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY;QACtD,iBAAiB,EAAE,YAAY,EAAE,gBAAgB;KAClD,CAAC,CAAC;IACH,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS;YAAE,SAAS,CAAC,wBAAwB;QACtD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,KAAK,GAA2C,EAAE,IAAI,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,kBAAkB;IAClB,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;QACxC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACvE,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,WAAW;YAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAC5E,CAAC;IAED,2BAA2B;IAC3B,MAAM,aAAa,GAAmC,EAAE,CAAC;IACzD,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QAC9C,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,WAAW;YAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzF,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa;QAClF,UAAU;QACV,UAAU;QACV,KAAK;QACL,MAAM;QACN,aAAa;QACb,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,IAAI;IACX,kBAAkB;IAClB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;IAEnD,IAAI,OAAkB,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,MAAM,qBAAqB,CAAC,CAAC;IAE/D,mBAAmB;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAC3B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC,CAC/D,CAAC;IAEF,iDAAiD;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAClD,CAAC;IAEF,uBAAuB;IACvB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,mEAAmE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAChG,sDAAsD,CACzD,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;SAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC3C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACpD,GAAG,CAAC,YAAY,CAAC;SACjB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,8BAA8B;QAC9B,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QACxC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhE,uCAAuC;IACvC,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrH,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,SAAS,EAAE,MAAM;QACjB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,KAAK,EAAE;QACtD;;;;;WAKG;QACH,gBAAgB,EAAE,iBAAiB;QACnC,UAAU;QACV,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,YAAY;KACb,CAAC;IAEF,eAAe;IACf,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACnD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,EAAE,CAAC","sourcesContent":["/**\n * Generate MCP Manifest from Web Component Analyzer output.\n *\n * Reads WCA JSON output and transforms it into the MCP manifest format\n * used by the cre8-mcp server for component intelligence.\n */\n\nimport { readFileSync, writeFileSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\nconst ROOT = join(__dirname, '..');\n\n/**\n * Custom elements that register but are not part of the public API.\n *\n * These are sub-components: they call `customElements.define` as a side effect\n * of their parent being imported, but nothing exports them from `index.ts` or\n * `cdn-entry.ts`, so a consumer cannot use them on their own.\n *\n * The list is explicit because the exclusion used to be accidental — the\n * analyzer glob was `components/*​/*.ts`, one level too shallow to see anything\n * nested, so all five vanished from the manifest, the catalog, the compact\n * projection, the React manifest and custom-elements.json without anyone\n * choosing that. Now the glob reaches everything and the omission is a\n * decision, pinned here and asserted by `check-layer-parity.mjs`. Adding a\n * component can no longer silently skip the pipeline.\n *\n * To publish one: delete it here and export it from `index.ts`/`cdn-entry.ts`.\n */\nconst INTERNAL_ELEMENTS = [\n 'cre8-calendar',\n 'cre8-calendar-month-modal',\n 'cre8-calendar-navigation',\n 'cre8-calendar-year-modal',\n 'cre8-page-counter',\n];\n\n// ─── Category Mapping ────────────────────────────────────────────────\nconst CATEGORY_MAP: Record<string, string> = {\n 'button': 'Actions',\n 'danger-button': 'Actions',\n 'button-group': 'Actions',\n 'split-button': 'Actions',\n 'form': 'Forms',\n 'field': 'Forms',\n 'field-note': 'Forms',\n 'select': 'Forms',\n 'multi-select': 'Forms',\n 'checkbox-field': 'Forms',\n 'checkbox-field-group': 'Forms',\n 'checkbox-field-item': 'Forms',\n 'radio-field': 'Forms',\n 'radio-field-group': 'Forms',\n 'radio-field-item': 'Forms',\n 'date-picker': 'Forms',\n 'select-tile': 'Forms',\n 'select-tile-group': 'Forms',\n 'select-tile-list': 'Forms',\n 'toggle-field': 'Forms',\n 'text-area': 'Forms',\n 'form-fieldset': 'Forms',\n 'card': 'Layout',\n 'grid': 'Layout',\n 'grid-item': 'Layout',\n 'layout': 'Layout',\n 'layout-container': 'Layout',\n 'layout-section': 'Layout',\n 'linelength-container': 'Layout',\n 'section': 'Layout',\n 'hero': 'Layout',\n 'band': 'Layout',\n 'divider': 'Layout',\n 'main': 'Layout',\n 'heading': 'Typography',\n 'text-passage': 'Typography',\n 'text-link': 'Typography',\n 'link': 'Navigation',\n 'link-list': 'Navigation',\n 'link-list-item': 'Navigation',\n 'breadcrumbs': 'Navigation',\n 'breadcrumbs-item': 'Navigation',\n 'pagination': 'Navigation',\n 'header': 'Navigation',\n 'footer': 'Navigation',\n 'footer-nav': 'Navigation',\n 'tabs': 'Navigation',\n 'tab': 'Navigation',\n 'tab-panel': 'Navigation',\n 'global-nav': 'Navigation',\n 'global-nav-item': 'Navigation',\n 'primary-nav': 'Navigation',\n 'primary-nav-item': 'Navigation',\n 'tertiary-nav': 'Navigation',\n 'tertiary-nav-item': 'Navigation',\n 'utility-nav': 'Navigation',\n 'utility-nav-item': 'Navigation',\n 'nav-container': 'Navigation',\n 'skip-nav': 'Navigation',\n 'accordion': 'Disclosure',\n 'accordion-item': 'Disclosure',\n 'accordion-panel': 'Disclosure',\n 'dropdown': 'Disclosure',\n 'dropdown-item': 'Disclosure',\n 'modal': 'Disclosure',\n 'popover': 'Disclosure',\n 'tooltip': 'Disclosure',\n 'submenu': 'Disclosure',\n 'submenu-item': 'Disclosure',\n 'alert': 'Feedback',\n 'inline-alert': 'Feedback',\n 'badge': 'Feedback',\n 'loading-spinner': 'Feedback',\n 'skeleton-loader': 'Feedback',\n 'progress-meter': 'Feedback',\n 'percent-bar': 'Feedback',\n 'progress-steps': 'Feedback',\n 'progress-steps-item': 'Feedback',\n 'table': 'Data',\n 'table-header': 'Data',\n 'table-header-cell': 'Data',\n 'table-body': 'Data',\n 'table-row': 'Data',\n 'table-cell': 'Data',\n 'table-object': 'Data',\n 'list': 'Data',\n 'list-item': 'Data',\n 'tag': 'Data',\n 'tag-list': 'Data',\n 'remove-tag': 'Data',\n 'chart': 'Data',\n 'icon': 'Media',\n 'logo': 'Media',\n 'feature': 'Marketing',\n 'page-header': 'Marketing',\n};\n\n// ─── WCA Types ───────────────────────────────────────────────────────\ninterface WcaTag {\n name: string;\n path: string;\n description?: string;\n attributes?: WcaAttribute[];\n properties?: WcaProperty[];\n slots?: WcaSlot[];\n events?: WcaEvent[];\n cssParts?: WcaCssPart[];\n cssProperties?: WcaCssProperty[];\n}\n\ninterface WcaAttribute {\n name: string;\n type?: string;\n default?: string;\n description?: string;\n}\n\ninterface WcaProperty {\n name: string;\n type?: string;\n default?: string;\n attribute?: string;\n description?: string;\n}\n\ninterface WcaSlot {\n name: string;\n description?: string;\n}\n\ninterface WcaEvent {\n name: string;\n description?: string;\n}\n\ninterface WcaCssPart {\n name: string;\n description?: string;\n}\n\ninterface WcaCssProperty {\n name: string;\n description?: string;\n}\n\ninterface WcaOutput {\n tags: WcaTag[];\n}\n\n// ─── MCP Manifest Types ─────────────────────────────────────────────\ninterface McpAttribute {\n type: string;\n values?: string[];\n default?: string | boolean | number;\n description?: string;\n}\n\ninterface McpSlot {\n description?: string;\n}\n\ninterface McpEvent {\n detail?: Record<string, unknown>;\n description?: string;\n}\n\ninterface McpCssProperty {\n description?: string;\n}\n\ninterface McpComponent {\n name: string;\n category: string;\n description: string;\n attributes: Record<string, McpAttribute>;\n properties: Record<string, { type: string; description?: string }>;\n slots: Record<string, McpSlot>;\n events: Record<string, McpEvent>;\n cssProperties: Record<string, McpCssProperty>;\n examples: Array<{ description: string; html: string }>;\n}\n\n// ─── Transform Helpers ──────────────────────────────────────────────\n\n\n/**\n * Parse a WCA type string into a base type and optional values array.\n * e.g. '\"primary\" | \"secondary\" | \"tertiary\"' → { type: 'string', values: ['primary', 'secondary', 'tertiary'] }\n */\nfunction parseType(typeStr?: string): { type: string; values?: string[] } {\n if (!typeStr) return { type: 'string' };\n\n // Check for union of string literals: \"a\" | \"b\" | \"c\"\n const unionMatch = typeStr.match(/^\"[^\"]*\"(\\s*\\|\\s*\"[^\"]*\")+$/);\n if (unionMatch) {\n const values = [...typeStr.matchAll(/\"([^\"]*)\"/g)].map(m => m[1]);\n return { type: 'string', values };\n }\n\n // Check for union with undefined: \"a\" | \"b\" | undefined\n const unionWithUndefined = typeStr.replace(/\\s*\\|\\s*undefined/g, '').trim();\n if (unionWithUndefined !== typeStr) {\n return parseType(unionWithUndefined);\n }\n\n // Map common types\n const lower = typeStr.toLowerCase().trim();\n if (lower === 'boolean' || lower === 'true | false' || lower === 'false | true') return { type: 'boolean' };\n if (lower === 'number') return { type: 'number' };\n if (lower === 'string') return { type: 'string' };\n\n return { type: typeStr };\n}\n\n/**\n * Parse a default value string into the appropriate JS type.\n */\nfunction parseDefault(defaultStr?: string, type?: string): string | boolean | number | undefined {\n if (defaultStr === undefined || defaultStr === 'undefined' || defaultStr === '\"\"' || defaultStr === \"''\") {\n return undefined;\n }\n\n // Boolean\n if (defaultStr === 'false') return false;\n if (defaultStr === 'true') return true;\n\n // Number\n if (type === 'number' && !isNaN(Number(defaultStr))) {\n return Number(defaultStr);\n }\n\n // Strip quotes\n const unquoted = defaultStr.replace(/^[\"']|[\"']$/g, '');\n return unquoted || undefined;\n}\n\n/**\n * Get the component short name (without cre8- prefix) for category lookup.\n */\nfunction getShortName(tagName: string): string {\n return tagName.replace(/^cre8-/, '');\n}\n\n/**\n * Determine category from component name.\n */\nfunction getCategory(tagName: string): string {\n const short = getShortName(tagName);\n return CATEGORY_MAP[short] || 'Other';\n}\n\n/**\n * Generate basic examples for a component based on its attributes.\n */\nfunction generateExamples(tag: WcaTag): Array<{ description: string; html: string }> {\n const examples: Array<{ description: string; html: string }> = [];\n const name = tag.name;\n\n // Find variant attribute\n const variantAttr = tag.attributes?.find(a => a.name === 'variant');\n const textAttr = tag.attributes?.find(a => a.name === 'text');\n\n if (variantAttr) {\n const { values } = parseType(variantAttr.type);\n if (values && values.length > 0) {\n const primaryVariant = values[0];\n let attrs = `variant=\"${primaryVariant}\"`;\n if (textAttr) attrs += ` text=\"${capitalize(getShortName(name))}\"`;\n examples.push({\n description: `${capitalize(primaryVariant)} ${getShortName(name)}`,\n html: `<${name} ${attrs}></${name}>`,\n });\n }\n } else if (textAttr) {\n examples.push({\n description: `Basic ${getShortName(name)}`,\n html: `<${name} text=\"${capitalize(getShortName(name))}\"></${name}>`,\n });\n }\n\n return examples;\n}\n\nfunction capitalize(s: string): string {\n return s.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');\n}\n\n// ─── Main Transform ─────────────────────────────────────────────────\n\nfunction transformTag(tag: WcaTag): McpComponent {\n // Separate WCA attributes into true HTML attributes vs JS-only properties.\n // In Lit, @property() without an explicit `attribute:` option auto-creates\n // a lowercased attribute. But camelCase names (e.g. iconRotateDegree →\n // \"iconrotatedegree\") are awkward and rarely used as HTML attributes in\n // practice. We treat those as properties instead.\n const attributes: Record<string, McpAttribute> = {};\n const properties: Record<string, { type: string; values?: string[]; default?: string | boolean | number; description?: string }> = {};\n\n // Build a set of property names that WCA links to attributes\n\n\n for (const attr of tag.attributes || []) {\n const { type, values } = parseType(attr.type);\n const defaultValue = parseDefault(attr.default, type);\n const isCamelCase = /[A-Z]/.test(attr.name);\n\n const entry: McpAttribute = { type };\n if (values) entry.values = values;\n if (defaultValue !== undefined) entry.default = defaultValue;\n if (attr.description) entry.description = attr.description;\n\n if (isCamelCase) {\n // CamelCase → treat as a JS property (set via .prop or Lit binding)\n properties[attr.name] = entry;\n } else {\n // Simple lowercase name → genuine HTML attribute\n attributes[attr.name] = entry;\n }\n }\n\n // Add properties that WCA lists with no attribute linkage (true prop-only),\n // but skip inherited Lit/DOM internals that aren't useful for consumers\n const SKIP_PROPERTIES = new Set([\n 'styles', 'formAssociated', 'field', 'form', 'validationMessage',\n 'validity', 'willValidate', 'shadowRoot', 'renderRoot',\n 'isUpdatePending', 'hasUpdated', 'updateComplete',\n ]);\n for (const prop of tag.properties || []) {\n if (prop.attribute) continue; // Already handled above\n if (SKIP_PROPERTIES.has(prop.name)) continue;\n const { type } = parseType(prop.type);\n const entry: { type: string; description?: string } = { type };\n if (prop.description) entry.description = prop.description;\n properties[prop.name] = entry;\n }\n\n // Transform slots\n const slots: Record<string, McpSlot> = {};\n for (const slot of tag.slots || []) {\n const slotName = slot.name || 'default';\n slots[slotName] = {};\n if (slot.description) slots[slotName].description = slot.description;\n }\n\n // Transform events\n const events: Record<string, McpEvent> = {};\n for (const event of tag.events || []) {\n events[event.name] = { detail: {} };\n if (event.description) events[event.name].description = event.description;\n }\n\n // Transform CSS properties\n const cssProperties: Record<string, McpCssProperty> = {};\n for (const cssProp of tag.cssProperties || []) {\n cssProperties[cssProp.name] = {};\n if (cssProp.description) cssProperties[cssProp.name].description = cssProp.description;\n }\n\n return {\n name: tag.name,\n category: getCategory(tag.name),\n description: tag.description || `${capitalize(getShortName(tag.name))} component.`,\n attributes,\n properties,\n slots,\n events,\n cssProperties,\n examples: generateExamples(tag),\n };\n}\n\nfunction main() {\n // Read WCA output\n const wcaPath = process.argv[2] || '/tmp/wca-raw.json';\n console.log(`Reading WCA output from: ${wcaPath}`);\n\n let wcaData: WcaOutput;\n try {\n wcaData = JSON.parse(readFileSync(wcaPath, 'utf-8'));\n } catch (err) {\n console.error(`Failed to read WCA output: ${err}`);\n process.exit(1);\n }\n\n console.log(`Found ${wcaData.tags.length} tags in WCA output`);\n\n // Read static data\n const staticData = JSON.parse(\n readFileSync(join(__dirname, 'mcp-static-data.json'), 'utf-8')\n );\n\n // Read package.json for version and dependencies\n const pkgJson = JSON.parse(\n readFileSync(join(ROOT, 'package.json'), 'utf-8')\n );\n\n // Transform components\n const seen = new Set(wcaData.tags.map(t => t.name).filter(n => n.startsWith('cre8-')));\n const missingInternals = INTERNAL_ELEMENTS.filter(n => !seen.has(n));\n if (missingInternals.length) {\n throw new Error(\n `INTERNAL_ELEMENTS lists element(s) the analyzer no longer sees: ${missingInternals.join(', ')}. ` +\n `Remove them from the list, or fix the analyzer glob.`\n );\n }\n\n const components = wcaData.tags\n .filter(tag => tag.name.startsWith('cre8-'))\n .filter(tag => !INTERNAL_ELEMENTS.includes(tag.name))\n .map(transformTag)\n .sort((a, b) => {\n // Sort by category, then name\n const catCompare = a.category.localeCompare(b.category);\n if (catCompare !== 0) return catCompare;\n return a.name.localeCompare(b.name);\n });\n\n console.log(`Transformed ${components.length} components`);\n\n // Log category distribution\n const categories: Record<string, number> = {};\n for (const comp of components) {\n categories[comp.category] = (categories[comp.category] || 0) + 1;\n }\n console.log('Categories:', JSON.stringify(categories, null, 2));\n\n // Build dependencies from package.json\n const dependencies: Record<string, string> = {};\n const depKeys = ['lit', '@lit/context', '@lit/react', '@a11y/focus-trap', 'chart.js', 'classnames', 'nanoid', 'zod'];\n for (const key of depKeys) {\n if (pkgJson.dependencies?.[key]) {\n dependencies[key] = pkgJson.dependencies[key];\n }\n }\n\n // Build manifest\n const manifest = {\n version: pkgJson.version,\n library: pkgJson.name,\n tagPrefix: 'cre8',\n description: pkgJson.description,\n framework: `Lit ${pkgJson.dependencies?.lit || '3.x'}`,\n /**\n * Elements that register but are intentionally absent from `components`.\n * Recorded here so `check-layer-parity.mjs` can tell a deliberate omission\n * from a component that silently fell out of the pipeline, without keeping\n * a second copy of the list.\n */\n internalElements: INTERNAL_ELEMENTS,\n components,\n baseClasses: staticData.baseClasses,\n patterns: staticData.patterns,\n designTokens: staticData.designTokens,\n accessibility: staticData.accessibility,\n dependencies,\n };\n\n // Write output\n const outputPath = join(ROOT, 'mcp-manifest.json');\n writeFileSync(outputPath, JSON.stringify(manifest, null, 2) + '\\n');\n console.log(`Wrote manifest to: ${outputPath}`);\n console.log(`Total components: ${components.length}`);\n}\n\nmain();\n"]}
1
+ {"version":3,"file":"generate-mcp-manifest.js","sourceRoot":"","sources":["../../scripts/generate-mcp-manifest.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Generate MCP Manifest from Web Component Analyzer output.\n *\n * Reads WCA JSON output and transforms it into the MCP manifest format\n * used by the cre8-mcp server for component intelligence.\n */\n\nimport { readFileSync, writeFileSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\nconst ROOT = join(__dirname, '..');\n\n/**\n * Custom elements that register but are not part of the public API.\n *\n * These are sub-components: they call `customElements.define` as a side effect\n * of their parent being imported, but nothing exports them from `index.ts` or\n * `cdn-entry.ts`, so a consumer cannot use them on their own.\n *\n * The list is explicit because the exclusion used to be accidental — the\n * analyzer glob was `components/*​/*.ts`, one level too shallow to see anything\n * nested, so all five vanished from the manifest, the catalog, the compact\n * projection, the React manifest and custom-elements.json without anyone\n * choosing that. Now the glob reaches everything and the omission is a\n * decision, pinned here and asserted by `check-layer-parity.mjs`. Adding a\n * component can no longer silently skip the pipeline.\n *\n * To publish one: delete it here and export it from `index.ts`/`cdn-entry.ts`.\n */\nconst INTERNAL_ELEMENTS = [\n 'cre8-calendar',\n 'cre8-calendar-month-modal',\n 'cre8-calendar-navigation',\n 'cre8-calendar-year-modal',\n 'cre8-page-counter',\n];\n\n// ─── Category Mapping ────────────────────────────────────────────────\nconst CATEGORY_MAP: Record<string, string> = {\n 'button': 'Actions',\n 'danger-button': 'Actions',\n 'button-group': 'Actions',\n 'split-button': 'Actions',\n 'form': 'Forms',\n 'field': 'Forms',\n 'field-note': 'Forms',\n 'select': 'Forms',\n 'multi-select': 'Forms',\n 'checkbox-field': 'Forms',\n 'checkbox-field-group': 'Forms',\n 'checkbox-field-item': 'Forms',\n 'radio-field': 'Forms',\n 'radio-field-group': 'Forms',\n 'radio-field-item': 'Forms',\n 'date-picker': 'Forms',\n 'select-tile': 'Forms',\n 'select-tile-group': 'Forms',\n 'select-tile-list': 'Forms',\n 'toggle-field': 'Forms',\n 'text-area': 'Forms',\n 'form-fieldset': 'Forms',\n 'card': 'Layout',\n 'container': 'Layout',\n 'container-grid': 'Layout',\n 'grid': 'Layout',\n 'grid-item': 'Layout',\n 'layout': 'Layout',\n 'layout-container': 'Layout',\n 'layout-section': 'Layout',\n 'linelength-container': 'Layout',\n 'section': 'Layout',\n 'hero': 'Layout',\n 'band': 'Layout',\n 'divider': 'Layout',\n 'main': 'Layout',\n 'heading': 'Typography',\n 'text-passage': 'Typography',\n 'text-link': 'Typography',\n 'link': 'Navigation',\n 'link-list': 'Navigation',\n 'link-list-item': 'Navigation',\n 'breadcrumbs': 'Navigation',\n 'breadcrumbs-item': 'Navigation',\n 'pagination': 'Navigation',\n 'header': 'Navigation',\n 'footer': 'Navigation',\n 'footer-nav': 'Navigation',\n 'tabs': 'Navigation',\n 'tab': 'Navigation',\n 'tab-panel': 'Navigation',\n 'global-nav': 'Navigation',\n 'global-nav-item': 'Navigation',\n 'primary-nav': 'Navigation',\n 'primary-nav-item': 'Navigation',\n 'tertiary-nav': 'Navigation',\n 'tertiary-nav-item': 'Navigation',\n 'utility-nav': 'Navigation',\n 'utility-nav-item': 'Navigation',\n 'nav-container': 'Navigation',\n 'skip-nav': 'Navigation',\n 'accordion': 'Disclosure',\n 'accordion-item': 'Disclosure',\n 'accordion-panel': 'Disclosure',\n 'dropdown': 'Disclosure',\n 'dropdown-item': 'Disclosure',\n 'modal': 'Disclosure',\n 'popover': 'Disclosure',\n 'tooltip': 'Disclosure',\n 'submenu': 'Disclosure',\n 'submenu-item': 'Disclosure',\n 'alert': 'Feedback',\n 'inline-alert': 'Feedback',\n 'badge': 'Feedback',\n 'loading-spinner': 'Feedback',\n 'skeleton-loader': 'Feedback',\n 'progress-meter': 'Feedback',\n 'percent-bar': 'Feedback',\n 'progress-steps': 'Feedback',\n 'progress-steps-item': 'Feedback',\n 'table': 'Data',\n 'table-header': 'Data',\n 'table-header-cell': 'Data',\n 'table-body': 'Data',\n 'table-row': 'Data',\n 'table-cell': 'Data',\n 'table-object': 'Data',\n 'list': 'Data',\n 'list-item': 'Data',\n 'tag': 'Data',\n 'tag-list': 'Data',\n 'remove-tag': 'Data',\n 'chart': 'Data',\n 'icon': 'Media',\n 'logo': 'Media',\n 'feature': 'Marketing',\n 'page-header': 'Marketing',\n};\n\n// ─── WCA Types ───────────────────────────────────────────────────────\ninterface WcaTag {\n name: string;\n path: string;\n description?: string;\n attributes?: WcaAttribute[];\n properties?: WcaProperty[];\n slots?: WcaSlot[];\n events?: WcaEvent[];\n cssParts?: WcaCssPart[];\n cssProperties?: WcaCssProperty[];\n}\n\ninterface WcaAttribute {\n name: string;\n type?: string;\n default?: string;\n description?: string;\n}\n\ninterface WcaProperty {\n name: string;\n type?: string;\n default?: string;\n attribute?: string;\n description?: string;\n}\n\ninterface WcaSlot {\n name: string;\n description?: string;\n}\n\ninterface WcaEvent {\n name: string;\n description?: string;\n}\n\ninterface WcaCssPart {\n name: string;\n description?: string;\n}\n\ninterface WcaCssProperty {\n name: string;\n description?: string;\n}\n\ninterface WcaOutput {\n tags: WcaTag[];\n}\n\n// ─── MCP Manifest Types ─────────────────────────────────────────────\ninterface McpAttribute {\n type: string;\n values?: string[];\n default?: string | boolean | number;\n description?: string;\n}\n\ninterface McpSlot {\n description?: string;\n}\n\ninterface McpEvent {\n detail?: Record<string, unknown>;\n description?: string;\n}\n\ninterface McpCssProperty {\n description?: string;\n}\n\ninterface McpComponent {\n name: string;\n category: string;\n description: string;\n attributes: Record<string, McpAttribute>;\n properties: Record<string, { type: string; description?: string }>;\n slots: Record<string, McpSlot>;\n events: Record<string, McpEvent>;\n cssProperties: Record<string, McpCssProperty>;\n examples: Array<{ description: string; html: string }>;\n}\n\n// ─── Transform Helpers ──────────────────────────────────────────────\n\n\n/**\n * Parse a WCA type string into a base type and optional values array.\n * e.g. '\"primary\" | \"secondary\" | \"tertiary\"' → { type: 'string', values: ['primary', 'secondary', 'tertiary'] }\n */\nfunction parseType(typeStr?: string): { type: string; values?: string[] } {\n if (!typeStr) return { type: 'string' };\n\n // Check for union of string literals: \"a\" | \"b\" | \"c\"\n const unionMatch = typeStr.match(/^\"[^\"]*\"(\\s*\\|\\s*\"[^\"]*\")+$/);\n if (unionMatch) {\n const values = [...typeStr.matchAll(/\"([^\"]*)\"/g)].map(m => m[1]);\n return { type: 'string', values };\n }\n\n // Check for union with undefined: \"a\" | \"b\" | undefined\n const unionWithUndefined = typeStr.replace(/\\s*\\|\\s*undefined/g, '').trim();\n if (unionWithUndefined !== typeStr) {\n return parseType(unionWithUndefined);\n }\n\n // Map common types\n const lower = typeStr.toLowerCase().trim();\n if (lower === 'boolean' || lower === 'true | false' || lower === 'false | true') return { type: 'boolean' };\n if (lower === 'number') return { type: 'number' };\n if (lower === 'string') return { type: 'string' };\n\n return { type: typeStr };\n}\n\n/**\n * Parse a default value string into the appropriate JS type.\n */\nfunction parseDefault(defaultStr?: string, type?: string): string | boolean | number | undefined {\n if (defaultStr === undefined || defaultStr === 'undefined' || defaultStr === '\"\"' || defaultStr === \"''\") {\n return undefined;\n }\n\n // Boolean\n if (defaultStr === 'false') return false;\n if (defaultStr === 'true') return true;\n\n // Number\n if (type === 'number' && !isNaN(Number(defaultStr))) {\n return Number(defaultStr);\n }\n\n // Strip quotes\n const unquoted = defaultStr.replace(/^[\"']|[\"']$/g, '');\n return unquoted || undefined;\n}\n\n/**\n * Get the component short name (without cre8- prefix) for category lookup.\n */\nfunction getShortName(tagName: string): string {\n return tagName.replace(/^cre8-/, '');\n}\n\n/**\n * Determine category from component name.\n */\nfunction getCategory(tagName: string): string {\n const short = getShortName(tagName);\n return CATEGORY_MAP[short] || 'Other';\n}\n\n/**\n * Generate basic examples for a component based on its attributes.\n */\nfunction generateExamples(tag: WcaTag): Array<{ description: string; html: string }> {\n const examples: Array<{ description: string; html: string }> = [];\n const name = tag.name;\n\n // Find variant attribute\n const variantAttr = tag.attributes?.find(a => a.name === 'variant');\n const textAttr = tag.attributes?.find(a => a.name === 'text');\n\n if (variantAttr) {\n const { values } = parseType(variantAttr.type);\n if (values && values.length > 0) {\n const primaryVariant = values[0];\n let attrs = `variant=\"${primaryVariant}\"`;\n if (textAttr) attrs += ` text=\"${capitalize(getShortName(name))}\"`;\n examples.push({\n description: `${capitalize(primaryVariant)} ${getShortName(name)}`,\n html: `<${name} ${attrs}></${name}>`,\n });\n }\n } else if (textAttr) {\n examples.push({\n description: `Basic ${getShortName(name)}`,\n html: `<${name} text=\"${capitalize(getShortName(name))}\"></${name}>`,\n });\n }\n\n return examples;\n}\n\nfunction capitalize(s: string): string {\n return s.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');\n}\n\n// ─── Main Transform ─────────────────────────────────────────────────\n\nfunction transformTag(tag: WcaTag): McpComponent {\n // Separate WCA attributes into true HTML attributes vs JS-only properties.\n // In Lit, @property() without an explicit `attribute:` option auto-creates\n // a lowercased attribute. But camelCase names (e.g. iconRotateDegree →\n // \"iconrotatedegree\") are awkward and rarely used as HTML attributes in\n // practice. We treat those as properties instead.\n const attributes: Record<string, McpAttribute> = {};\n const properties: Record<string, { type: string; values?: string[]; default?: string | boolean | number; description?: string }> = {};\n\n // Build a set of property names that WCA links to attributes\n\n\n for (const attr of tag.attributes || []) {\n const { type, values } = parseType(attr.type);\n const defaultValue = parseDefault(attr.default, type);\n const isCamelCase = /[A-Z]/.test(attr.name);\n\n const entry: McpAttribute = { type };\n if (values) entry.values = values;\n if (defaultValue !== undefined) entry.default = defaultValue;\n if (attr.description) entry.description = attr.description;\n\n if (isCamelCase) {\n // CamelCase → treat as a JS property (set via .prop or Lit binding)\n properties[attr.name] = entry;\n } else {\n // Simple lowercase name → genuine HTML attribute\n attributes[attr.name] = entry;\n }\n }\n\n // Add properties that WCA lists with no attribute linkage (true prop-only),\n // but skip inherited Lit/DOM internals that aren't useful for consumers\n const SKIP_PROPERTIES = new Set([\n 'styles', 'formAssociated', 'field', 'form', 'validationMessage',\n 'validity', 'willValidate', 'shadowRoot', 'renderRoot',\n 'isUpdatePending', 'hasUpdated', 'updateComplete',\n ]);\n for (const prop of tag.properties || []) {\n if (prop.attribute) continue; // Already handled above\n if (SKIP_PROPERTIES.has(prop.name)) continue;\n const { type } = parseType(prop.type);\n const entry: { type: string; description?: string } = { type };\n if (prop.description) entry.description = prop.description;\n properties[prop.name] = entry;\n }\n\n // Transform slots\n const slots: Record<string, McpSlot> = {};\n for (const slot of tag.slots || []) {\n const slotName = slot.name || 'default';\n slots[slotName] = {};\n if (slot.description) slots[slotName].description = slot.description;\n }\n\n // Transform events\n const events: Record<string, McpEvent> = {};\n for (const event of tag.events || []) {\n events[event.name] = { detail: {} };\n if (event.description) events[event.name].description = event.description;\n }\n\n // Transform CSS properties\n const cssProperties: Record<string, McpCssProperty> = {};\n for (const cssProp of tag.cssProperties || []) {\n cssProperties[cssProp.name] = {};\n if (cssProp.description) cssProperties[cssProp.name].description = cssProp.description;\n }\n\n return {\n name: tag.name,\n category: getCategory(tag.name),\n description: tag.description || `${capitalize(getShortName(tag.name))} component.`,\n attributes,\n properties,\n slots,\n events,\n cssProperties,\n examples: generateExamples(tag),\n };\n}\n\nfunction main() {\n // Read WCA output\n const wcaPath = process.argv[2] || '/tmp/wca-raw.json';\n console.log(`Reading WCA output from: ${wcaPath}`);\n\n let wcaData: WcaOutput;\n try {\n wcaData = JSON.parse(readFileSync(wcaPath, 'utf-8'));\n } catch (err) {\n console.error(`Failed to read WCA output: ${err}`);\n process.exit(1);\n }\n\n console.log(`Found ${wcaData.tags.length} tags in WCA output`);\n\n // Read static data\n const staticData = JSON.parse(\n readFileSync(join(__dirname, 'mcp-static-data.json'), 'utf-8')\n );\n\n // Read package.json for version and dependencies\n const pkgJson = JSON.parse(\n readFileSync(join(ROOT, 'package.json'), 'utf-8')\n );\n\n // Transform components\n const seen = new Set(wcaData.tags.map(t => t.name).filter(n => n.startsWith('cre8-')));\n const missingInternals = INTERNAL_ELEMENTS.filter(n => !seen.has(n));\n if (missingInternals.length) {\n throw new Error(\n `INTERNAL_ELEMENTS lists element(s) the analyzer no longer sees: ${missingInternals.join(', ')}. ` +\n `Remove them from the list, or fix the analyzer glob.`\n );\n }\n\n const components = wcaData.tags\n .filter(tag => tag.name.startsWith('cre8-'))\n .filter(tag => !INTERNAL_ELEMENTS.includes(tag.name))\n .map(transformTag)\n .sort((a, b) => {\n // Sort by category, then name\n const catCompare = a.category.localeCompare(b.category);\n if (catCompare !== 0) return catCompare;\n return a.name.localeCompare(b.name);\n });\n\n console.log(`Transformed ${components.length} components`);\n\n // Log category distribution\n const categories: Record<string, number> = {};\n for (const comp of components) {\n categories[comp.category] = (categories[comp.category] || 0) + 1;\n }\n console.log('Categories:', JSON.stringify(categories, null, 2));\n\n // Build dependencies from package.json\n const dependencies: Record<string, string> = {};\n const depKeys = ['lit', '@lit/context', '@lit/react', '@a11y/focus-trap', 'chart.js', 'classnames', 'nanoid', 'zod'];\n for (const key of depKeys) {\n if (pkgJson.dependencies?.[key]) {\n dependencies[key] = pkgJson.dependencies[key];\n }\n }\n\n // Build manifest\n const manifest = {\n version: pkgJson.version,\n library: pkgJson.name,\n tagPrefix: 'cre8',\n description: pkgJson.description,\n framework: `Lit ${pkgJson.dependencies?.lit || '3.x'}`,\n /**\n * Elements that register but are intentionally absent from `components`.\n * Recorded here so `check-layer-parity.mjs` can tell a deliberate omission\n * from a component that silently fell out of the pipeline, without keeping\n * a second copy of the list.\n */\n internalElements: INTERNAL_ELEMENTS,\n components,\n baseClasses: staticData.baseClasses,\n patterns: staticData.patterns,\n designTokens: staticData.designTokens,\n accessibility: staticData.accessibility,\n dependencies,\n };\n\n // Write output\n const outputPath = join(ROOT, 'mcp-manifest.json');\n writeFileSync(outputPath, JSON.stringify(manifest, null, 2) + '\\n');\n console.log(`Wrote manifest to: ${outputPath}`);\n console.log(`Total components: ${components.length}`);\n}\n\nmain();\n"]}
package/mcp-manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.3.3",
2
+ "version": "2.3.6",
3
3
  "library": "@tmorrow/cre8-wc",
4
4
  "tagPrefix": "cre8",
5
5
  "description": "cre8 Web Components is a library of presentational UI web components to be consumed by # web applications.",
@@ -2744,7 +2744,12 @@
2744
2744
  "description": "Alignment variant\n- **center** renders a card that has center aligned content/text"
2745
2745
  }
2746
2746
  },
2747
- "properties": {},
2747
+ "properties": {
2748
+ "fullHeight": {
2749
+ "type": "boolean",
2750
+ "description": "Full height\n1) Stretches the card to fill its parent's height and width. Off by\n default - only turn this on when the card is a flex/grid item whose\n siblings should determine its height, e.g. a row of cards that should\n line up edge to edge regardless of how much content each one has."
2751
+ }
2752
+ },
2748
2753
  "slots": {
2749
2754
  "body": {
2750
2755
  "description": "The card's body content"
@@ -2765,6 +2770,87 @@
2765
2770
  }
2766
2771
  ]
2767
2772
  },
2773
+ {
2774
+ "name": "cre8-container",
2775
+ "category": "Layout",
2776
+ "description": "`cre8-container` establishes a CSS containment context so anything slotted\ninside it - a `cre8-container-grid`, a `cre8-card`, plain markup - can be\nstyled with `@container` queries against *this element's own rendered\nsize*, not the viewport. It renders no visible chrome of its own; the only\neffect is making container queries possible for its content.\n\n# How to Use\n1. Wrap `cre8-container` around whatever should respond to the space it is\nactually given rather than the screen size - a sidebar widget, a card\nthat might land in a narrow or a wide column depending on a layout the\ncomponent itself can't see.\n2. Write `@container` rules in your own stylesheet keyed to `name`, if\nset, to target this container specifically when containers are nested\nand the nearest one isn't the one you mean to query.",
2777
+ "attributes": {
2778
+ "type": {
2779
+ "type": "string",
2780
+ "values": [
2781
+ "inline-size",
2782
+ "size",
2783
+ "normal"
2784
+ ],
2785
+ "description": "Containment type\n- **inline-size** (default) contains layout, style, and inline size -\n the right choice for width-based `@container` queries on a\n block-level container\n- **size** contains both the inline and block size, so `@container`\n rules can also query height - only use this when the container's own\n height does not depend on its content\n- **normal** names the container without adding size containment, for\n `@container style(...)` queries"
2786
+ },
2787
+ "name": {
2788
+ "type": "string",
2789
+ "description": "Container name\n1) Lets `@container <name> (...)` target this container specifically\n when containers are nested and the nearest one isn't the one being\n queried."
2790
+ }
2791
+ },
2792
+ "properties": {},
2793
+ "slots": {
2794
+ "default": {
2795
+ "description": "The content to establish a containment context for"
2796
+ }
2797
+ },
2798
+ "events": {},
2799
+ "cssProperties": {},
2800
+ "examples": []
2801
+ },
2802
+ {
2803
+ "name": "cre8-container-grid",
2804
+ "category": "Layout",
2805
+ "description": "`cre8-container-grid` is `cre8-grid`'s layout vocabulary - stacked to\nN-across patterns - keyed to this element's own rendered width via\n`@container` instead of the viewport via `@media`. It establishes its own\ncontainment context, so use it wherever the number of columns should\ndepend on the space actually available: a grid placed in a narrow sidebar\non a wide viewport still stacks, and a grid placed in a wide main column\non a narrow viewport still goes multi-up.",
2806
+ "attributes": {
2807
+ "variant": {
2808
+ "type": "string",
2809
+ "values": [
2810
+ "side-by-side",
2811
+ "2up",
2812
+ "3up",
2813
+ "1-3up",
2814
+ "4up",
2815
+ "1-4up",
2816
+ "1-2-4up",
2817
+ "2-4-6up"
2818
+ ],
2819
+ "description": "Style variant\n- **side-by-side** yields a grid whose grid items display side-by-side (2 per row) regardless of width\n- **2up** yields a grid whose grid items are stacked when this element is narrow\n but display side-by-side once it has enough of its own width to do so\n- **3up** yields a grid whose grid items are stacked when narrow,\n transforms to a 2-across pattern and then transforms again to a 3-across pattern\n- **1-3up** yields a grid whose grid items are stacked when narrow\n and transforms to a 3-across pattern once wide enough\n- **4up** yields a grid whose grid items are stacked when narrow,\n transforms to a 2-across pattern, transforms again to a 3-across pattern,\n and ultimately transforms to a 4-across pattern\n- **1-2-4up** yields a grid whose grid items are stacked when narrow,\n transforms to a 2-across pattern, and ultimately transforms to a 4-across pattern\n- **1-4up** yields a grid whose grid items are stacked when narrow,\n transforms to a 4-across pattern once wide enough"
2820
+ },
2821
+ "gap": {
2822
+ "type": "string",
2823
+ "values": [
2824
+ "sm",
2825
+ "lg",
2826
+ "none"
2827
+ ],
2828
+ "description": "Style variant\n- **none** yields a grid whose grid items are spaced without any gutter in between\n- **sm** yields a grid whose grid items are spaced with a gap smaller than the default\n- **lg** yields a grid whose grid items are spaced with a gap larger than the default"
2829
+ },
2830
+ "break": {
2831
+ "type": "string",
2832
+ "values": [
2833
+ "faster",
2834
+ "slower"
2835
+ ],
2836
+ "description": "Break variant\n- **faster** breaks the grid at a smaller container width than the default.\n Example: 2up grid breaks to 2 per row at a smaller width than default\n- **slower** breaks the grid at a larger container width than the default.\n Example: 2up grid breaks to 2 per row at a larger width than default"
2837
+ }
2838
+ },
2839
+ "properties": {},
2840
+ "slots": {
2841
+ "default": {
2842
+ "description": "The grid items"
2843
+ }
2844
+ },
2845
+ "events": {},
2846
+ "cssProperties": {},
2847
+ "examples": [
2848
+ {
2849
+ "description": "Side By Side container-grid",
2850
+ "html": "<cre8-container-grid variant=\"side-by-side\"></cre8-container-grid>"
2851
+ }
2852
+ ]
2853
+ },
2768
2854
  {
2769
2855
  "name": "cre8-divider",
2770
2856
  "category": "Layout",
@@ -2856,7 +2942,12 @@
2856
2942
  "category": "Layout",
2857
2943
  "description": "Grid Item component.",
2858
2944
  "attributes": {},
2859
- "properties": {},
2945
+ "properties": {
2946
+ "fullHeight": {
2947
+ "type": "boolean",
2948
+ "description": "Full height\n1) Stretches the item to fill the height of its row. Off by default -\n only turn this on when the items in a row should line up edge to\n edge regardless of how much content each one has."
2949
+ }
2950
+ },
2860
2951
  "slots": {
2861
2952
  "default": {
2862
2953
  "description": "The content of the grid item"
@@ -2964,7 +3055,12 @@
2964
3055
  "description": "Top style\n1) Used to create dynamic sticky containers that can be adjusted based on the content"
2965
3056
  }
2966
3057
  },
2967
- "properties": {},
3058
+ "properties": {
3059
+ "fullHeight": {
3060
+ "type": "boolean",
3061
+ "description": "Full height\n1) Stretches the section to fill the height of its row in `cre8-layout`'s\n grid. Off by default - only turn this on when the sections in a row\n should line up edge to edge regardless of how much content each one\n has."
3062
+ }
3063
+ },
2968
3064
  "slots": {
2969
3065
  "default": {
2970
3066
  "description": "The content of the layout section"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tmorrow/cre8-wc",
3
- "version": "2.3.4",
3
+ "version": "2.3.6",
4
4
  "description": "cre8 Web Components is a library of presentational UI web components to be consumed by # web applications.",
5
5
  "license": "BSD-3-Clause",
6
6
  "scripts": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.3.3",
2
+ "version": "2.3.6",
3
3
  "library": "@tmorrow/cre8-react",
4
4
  "componentPrefix": "Cre8",
5
5
  "description": "React wrappers for cre8 Web Components (@tmorrow/cre8-wc)",
@@ -2495,6 +2495,10 @@
2495
2495
  "type": "\"center\"",
2496
2496
  "description": "Alignment variant\n- **center** renders a card that has center aligned content/text"
2497
2497
  },
2498
+ "fullHeight": {
2499
+ "type": "boolean",
2500
+ "description": "Full height\n1) Stretches the card to fill its parent's height and width. Off by\n default - only turn this on when the card is a flex/grid item whose\n siblings should determine its height, e.g. a row of cards that should\n line up edge to edge regardless of how much content each one has."
2501
+ },
2498
2502
  "children": {
2499
2503
  "type": "React.ReactNode",
2500
2504
  "description": "Slotted content. Named slots (set slot=\"...\" on the child): body, header, footer"
@@ -2507,6 +2511,81 @@
2507
2511
  }
2508
2512
  ]
2509
2513
  },
2514
+ {
2515
+ "name": "Cre8Container",
2516
+ "tagName": "cre8-container",
2517
+ "category": "Layout",
2518
+ "description": "`cre8-container` establishes a CSS containment context so anything slotted\ninside it - a `cre8-container-grid`, a `cre8-card`, plain markup - can be\nstyled with `@container` queries against *this element's own rendered\nsize*, not the viewport. It renders no visible chrome of its own; the only\neffect is making container queries possible for its content.\n\n# How to Use\n1. Wrap `cre8-container` around whatever should respond to the space it is\nactually given rather than the screen size - a sidebar widget, a card\nthat might land in a narrow or a wide column depending on a layout the\ncomponent itself can't see.\n2. Write `@container` rules in your own stylesheet keyed to `name`, if\nset, to target this container specifically when containers are nested\nand the nearest one isn't the one you mean to query.",
2519
+ "props": {
2520
+ "type": {
2521
+ "type": "string",
2522
+ "values": [
2523
+ "inline-size",
2524
+ "size",
2525
+ "normal"
2526
+ ],
2527
+ "description": "Containment type\n- **inline-size** (default) contains layout, style, and inline size -\n the right choice for width-based `@container` queries on a\n block-level container\n- **size** contains both the inline and block size, so `@container`\n rules can also query height - only use this when the container's own\n height does not depend on its content\n- **normal** names the container without adding size containment, for\n `@container style(...)` queries"
2528
+ },
2529
+ "name": {
2530
+ "type": "string",
2531
+ "description": "Container name\n1) Lets `@container <name> (...)` target this container specifically\n when containers are nested and the nearest one isn't the one being\n queried."
2532
+ },
2533
+ "children": {
2534
+ "type": "React.ReactNode",
2535
+ "description": "Slotted content."
2536
+ }
2537
+ },
2538
+ "examples": []
2539
+ },
2540
+ {
2541
+ "name": "Cre8ContainerGrid",
2542
+ "tagName": "cre8-container-grid",
2543
+ "category": "Layout",
2544
+ "description": "`cre8-container-grid` is `cre8-grid`'s layout vocabulary - stacked to\nN-across patterns - keyed to this element's own rendered width via\n`@container` instead of the viewport via `@media`. It establishes its own\ncontainment context, so use it wherever the number of columns should\ndepend on the space actually available: a grid placed in a narrow sidebar\non a wide viewport still stacks, and a grid placed in a wide main column\non a narrow viewport still goes multi-up.",
2545
+ "props": {
2546
+ "variant": {
2547
+ "type": "string",
2548
+ "values": [
2549
+ "side-by-side",
2550
+ "2up",
2551
+ "3up",
2552
+ "1-3up",
2553
+ "4up",
2554
+ "1-4up",
2555
+ "1-2-4up",
2556
+ "2-4-6up"
2557
+ ],
2558
+ "description": "Style variant\n- **side-by-side** yields a grid whose grid items display side-by-side (2 per row) regardless of width\n- **2up** yields a grid whose grid items are stacked when this element is narrow\n but display side-by-side once it has enough of its own width to do so\n- **3up** yields a grid whose grid items are stacked when narrow,\n transforms to a 2-across pattern and then transforms again to a 3-across pattern\n- **1-3up** yields a grid whose grid items are stacked when narrow\n and transforms to a 3-across pattern once wide enough\n- **4up** yields a grid whose grid items are stacked when narrow,\n transforms to a 2-across pattern, transforms again to a 3-across pattern,\n and ultimately transforms to a 4-across pattern\n- **1-2-4up** yields a grid whose grid items are stacked when narrow,\n transforms to a 2-across pattern, and ultimately transforms to a 4-across pattern\n- **1-4up** yields a grid whose grid items are stacked when narrow,\n transforms to a 4-across pattern once wide enough"
2559
+ },
2560
+ "gap": {
2561
+ "type": "string",
2562
+ "values": [
2563
+ "sm",
2564
+ "lg",
2565
+ "none"
2566
+ ],
2567
+ "description": "Style variant\n- **none** yields a grid whose grid items are spaced without any gutter in between\n- **sm** yields a grid whose grid items are spaced with a gap smaller than the default\n- **lg** yields a grid whose grid items are spaced with a gap larger than the default"
2568
+ },
2569
+ "break": {
2570
+ "type": "string",
2571
+ "values": [
2572
+ "faster",
2573
+ "slower"
2574
+ ],
2575
+ "description": "Break variant\n- **faster** breaks the grid at a smaller container width than the default.\n Example: 2up grid breaks to 2 per row at a smaller width than default\n- **slower** breaks the grid at a larger container width than the default.\n Example: 2up grid breaks to 2 per row at a larger width than default"
2576
+ },
2577
+ "children": {
2578
+ "type": "React.ReactNode",
2579
+ "description": "Slotted content."
2580
+ }
2581
+ },
2582
+ "examples": [
2583
+ {
2584
+ "description": "Side By Side container-grid",
2585
+ "jsx": "<Cre8ContainerGrid variant=\"side-by-side\" />"
2586
+ }
2587
+ ]
2588
+ },
2510
2589
  {
2511
2590
  "name": "Cre8Divider",
2512
2591
  "tagName": "cre8-divider",
@@ -2593,6 +2672,10 @@
2593
2672
  "category": "Layout",
2594
2673
  "description": "Grid Item component.",
2595
2674
  "props": {
2675
+ "fullHeight": {
2676
+ "type": "boolean",
2677
+ "description": "Full height\n1) Stretches the item to fill the height of its row. Off by default -\n only turn this on when the items in a row should line up edge to\n edge regardless of how much content each one has."
2678
+ },
2596
2679
  "children": {
2597
2680
  "type": "React.ReactNode",
2598
2681
  "description": "Slotted content."
@@ -2688,6 +2771,10 @@
2688
2771
  "default": "1rem",
2689
2772
  "description": "Top style\n1) Used to create dynamic sticky containers that can be adjusted based on the content"
2690
2773
  },
2774
+ "fullHeight": {
2775
+ "type": "boolean",
2776
+ "description": "Full height\n1) Stretches the section to fill the height of its row in `cre8-layout`'s\n grid. Off by default - only turn this on when the sections in a row\n should line up edge to edge regardless of how much content each one\n has."
2777
+ },
2691
2778
  "children": {
2692
2779
  "type": "React.ReactNode",
2693
2780
  "description": "Slotted content."
@@ -3731,7 +3818,7 @@
3731
3818
  },
3732
3819
  "dependencies": {
3733
3820
  "@lit/react": "^1.0.8",
3734
- "@tmorrow/cre8-wc": "^2.3.3",
3821
+ "@tmorrow/cre8-wc": "^2.3.6",
3735
3822
  "react": ">=18",
3736
3823
  "react-dom": ">=18"
3737
3824
  }