@tmorrow/cre8-wc 2.3.0 → 2.3.2

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 (160) hide show
  1. package/a2ui/catalog-kg.json +6837 -116
  2. package/a2ui/catalog.compact.json +3 -3
  3. package/a2ui/catalog.json +73 -73
  4. package/a2ui/check-deploy-drift.mjs +147 -0
  5. package/a2ui/generate-catalog-kg.mjs +194 -18
  6. package/a2ui/kg-sources.mjs +291 -0
  7. package/a2ui/patterns/alert-banner.json +16 -0
  8. package/a2ui/patterns/data-table.json +67 -0
  9. package/a2ui/patterns/login-form.json +55 -0
  10. package/a2ui/patterns/modal-dialog.json +47 -0
  11. package/a2ui/patterns/page-layout.json +55 -0
  12. package/a2ui/patterns/tabbed-content.json +37 -0
  13. package/dist/assets/{Changelog-Documentation-BEz7qwHC.js → Changelog-Documentation-DyRD5g5c.js} +1 -1
  14. package/dist/assets/{Code-Guidelines-BRlChdnm.js → Code-Guidelines-DIxeIc7I.js} +1 -1
  15. package/dist/assets/{Color-6AOWCN3U-DeiMoXtk.js → Color-6AOWCN3U-Dznni4GY.js} +1 -1
  16. package/dist/assets/{Contributing-Guidelines-ZYkPHT5D.js → Contributing-Guidelines-C361mreO.js} +1 -1
  17. package/dist/assets/{DocsRenderer-JROSPFPF-DLyaYyWd.js → DocsRenderer-JROSPFPF-DVzuXMfE.js} +1 -1
  18. package/dist/assets/{Tokens-Documentation-DdehD3DX.js → Tokens-Documentation-DQ55nCPE.js} +1 -1
  19. package/dist/assets/{WithTooltip-7X4HQR7L-BWB3Yb4o.js → WithTooltip-7X4HQR7L-57g4vxQ5.js} +1 -1
  20. package/dist/assets/{accordion-item.stories-BAnUfHf7.js → accordion-item.stories-Cz0JPYkb.js} +1 -1
  21. package/dist/assets/{accordion.stories-B-5tkfuu.js → accordion.stories-CKPEtfSL.js} +1 -1
  22. package/dist/assets/{address-form.stories-DL1-wOd_.js → address-form.stories-clpPw22i.js} +1 -1
  23. package/dist/assets/{alert.stories-DkQjKtTE.js → alert.stories-UoZRIq2Z.js} +1 -1
  24. package/dist/assets/{badge-DyapNgMi.js → badge-Bf3zamLa.js} +1 -1
  25. package/dist/assets/{badge.stories-8NMDzMHB.js → badge.stories-BpZgJgka.js} +1 -1
  26. package/dist/assets/{band.stories-D5Z1gvOr.js → band.stories-CX5fEcU0.js} +1 -1
  27. package/dist/assets/{blocks-DTMWhAiD.js → blocks-F7P3fIJh.js} +5 -5
  28. package/dist/assets/{breadcrumbs.stories-CY40buuT.js → breadcrumbs.stories-CRuQAhFW.js} +1 -1
  29. package/dist/assets/{button-B559dEsw.js → button-BIrV07TC.js} +1 -1
  30. package/dist/assets/{button-group-Dg6GrxAH.js → button-group-Dnp9PfP1.js} +1 -1
  31. package/dist/assets/{button-group.stories-BxJK661K.js → button-group.stories-Br_EMXmB.js} +1 -1
  32. package/dist/assets/{button.stories-CzS_9O5r.js → button.stories-Dh9JhOw6.js} +1 -1
  33. package/dist/assets/{card-BoBkN7zZ.js → card-D7QkgRPU.js} +1 -1
  34. package/dist/assets/{card.stories-CJM3mMAl.js → card.stories-DZ6fUn4F.js} +1 -1
  35. package/dist/assets/{chart.stories-DTfsMOMw.js → chart.stories-5mvT-zpx.js} +1 -1
  36. package/dist/assets/{checkbox-field-item-D3itMvx5.js → checkbox-field-item-ysgkDLCX.js} +1 -1
  37. package/dist/assets/{checkbox-field-item.stories-dbJJd5j4.js → checkbox-field-item.stories-C-OuHysX.js} +1 -1
  38. package/dist/assets/{checkbox-field.stories-D0U38na0.js → checkbox-field.stories-DET4STIP.js} +1 -1
  39. package/dist/assets/{cre8-element-DmRct7AK.js → cre8-element-D3XuogmB.js} +1 -1
  40. package/dist/assets/{cre8-form-element-DOU8_QgO.js → cre8-form-element-CYVZKUkM.js} +1 -1
  41. package/dist/assets/{danger-button.stories-C9I-81sl.js → danger-button.stories-fAfsxvin.js} +1 -1
  42. package/dist/assets/{date-picker.stories-BLywvSGj.js → date-picker.stories-Ck6AgzHE.js} +1 -1
  43. package/dist/assets/{divider-D5Ptz_gO.js → divider-BY3ZlruA.js} +1 -1
  44. package/dist/assets/{divider.stories-DeZhkiUu.js → divider.stories-owgSQsO4.js} +1 -1
  45. package/dist/assets/{dropdown-CEMfVKWu.js → dropdown-C91qBvHH.js} +1 -1
  46. package/dist/assets/{dropdown-item.stories-Drl5X5AH.js → dropdown-item.stories-B_gF04eB.js} +1 -1
  47. package/dist/assets/{dropdown.stories-gErmDoak.js → dropdown.stories-CAVN9Hfk.js} +1 -1
  48. package/dist/assets/{f-po-ClP0V3UU.js → f-po-BibEwLg7.js} +1 -1
  49. package/dist/assets/{feature.stories-DMWFA4_w.js → feature.stories-BfyMh3-v.js} +1 -1
  50. package/dist/assets/{field-CyeqmMLD.js → field-BGNR3p0L.js} +1 -1
  51. package/dist/assets/{field-note-4gAB1YtN.js → field-note-BnKZocKm.js} +1 -1
  52. package/dist/assets/{field-note.stories-BIkt-4nw.js → field-note.stories-DY8NRFUg.js} +1 -1
  53. package/dist/assets/{field.stories-Bp-i75cD.js → field.stories-BPk8Sd15.js} +1 -1
  54. package/dist/assets/{field.styles-BuRZIGyO.js → field.styles-DluEkAA0.js} +1 -1
  55. package/dist/assets/{footer.stories-Dct4TXtx.js → footer.stories-DxcGN204.js} +1 -1
  56. package/dist/assets/{form-DdOes3CI.js → form-BEztLvfh.js} +1 -1
  57. package/dist/assets/{form.stories-Bxijt3vs.js → form.stories-Cm6F6p8Q.js} +1 -1
  58. package/dist/assets/{formatter-L2YTDE3Q-BC-dAH-7.js → formatter-L2YTDE3Q-EtWfIGsw.js} +1 -1
  59. package/dist/assets/{global-nav-item-B-CZOxU0.js → global-nav-item-BjYreeQ_.js} +1 -1
  60. package/dist/assets/{global-nav-item.stories-5fOY46FM.js → global-nav-item.stories-CtIfegX4.js} +1 -1
  61. package/dist/assets/{global-nav.stories-DKE_MdUD.js → global-nav.stories-CpxixIgP.js} +1 -1
  62. package/dist/assets/{grid-item-BoB-uijb.js → grid-item-DfRshyU7.js} +1 -1
  63. package/dist/assets/{grid.stories-CFmGCOQD.js → grid.stories-HoL4hFK5.js} +1 -1
  64. package/dist/assets/{header.stories-CTNVu9H3.js → header.stories-DtnMiHw5.js} +1 -1
  65. package/dist/assets/{heading-CLjq87aR.js → heading-Bd8rz14W.js} +1 -1
  66. package/dist/assets/{heading.stories-DtV0xOBN.js → heading.stories-D6LqhrSJ.js} +1 -1
  67. package/dist/assets/{hero.stories-Ca6F0_ZF.js → hero.stories-DbVmgYoe.js} +1 -1
  68. package/dist/assets/{icon-DPDhfDk5.js → icon-5TiNNxPR.js} +1 -1
  69. package/dist/assets/{icon.stories-C3Q7NyK3.js → icon.stories-CSF4vjWQ.js} +1 -1
  70. package/dist/assets/if-defined-BYzWFJjz.js +1 -0
  71. package/dist/assets/{iframe-Cd639NOt.js → iframe-DNXIQNo5.js} +4 -4
  72. package/dist/assets/{inline-alert.stories-DQzPNO1M.js → inline-alert.stories-DPeI6lZo.js} +1 -1
  73. package/dist/assets/{layout-container.stories-CEu1E5xz.js → layout-container.stories-DjnXlNhJ.js} +1 -1
  74. package/dist/assets/{layout.stories-C-r1Ysar.js → layout.stories-RpAgLydl.js} +1 -1
  75. package/dist/assets/{linelength-container.stories-Z1xot9Nf.js → linelength-container.stories-CBXpDJq9.js} +1 -1
  76. package/dist/assets/{link-D8WlhTPZ.js → link-Yrdg4UMD.js} +1 -1
  77. package/dist/assets/{link-list.stories-9cOc5cKF.js → link-list.stories-B5HBzRbn.js} +1 -1
  78. package/dist/assets/{link.stories-D54TIq-J.js → link.stories-CMfRfExj.js} +1 -1
  79. package/dist/assets/{list.stories-C1Jx4AhC.js → list.stories-DxiKX7Ag.js} +1 -1
  80. package/dist/assets/{loading-spinner-ByesL8fd.js → loading-spinner-Dtn9_2xi.js} +1 -1
  81. package/dist/assets/{loading-spinner.stories-B7qYKdri.js → loading-spinner.stories-BLxVyD_V.js} +1 -1
  82. package/dist/assets/{logo.stories-jiwYTlr2.js → logo.stories-Bp4xEAgc.js} +1 -1
  83. package/dist/assets/{main.stories-DIohnnzB.js → main.stories-Dl_ReGW2.js} +1 -1
  84. package/dist/assets/{modal-LqTEYNjw.js → modal-BkUVltsh.js} +1 -1
  85. package/dist/assets/{modal-DO_Vneby.js → modal-D805CQSw.js} +1 -1
  86. package/dist/assets/{modal.stories-Bf16sUUo.js → modal.stories-Cmt-pN5U.js} +1 -1
  87. package/dist/assets/{multi-select.stories-D2FX0drF.js → multi-select.stories-BUY8eZbU.js} +1 -1
  88. package/dist/assets/{nav-container.stories-Dz8D1KTt.js → nav-container.stories-8-Hdrqet.js} +1 -1
  89. package/dist/assets/{page-header.stories-QSawevlA.js → page-header.stories-DnIfsM6p.js} +1 -1
  90. package/dist/assets/{pagination.stories-zXMokh9Q.js → pagination.stories-BGHD1N4G.js} +1 -1
  91. package/dist/assets/{percent-bar.stories-CExBGXPP.js → percent-bar.stories-BHkYQ9QF.js} +1 -1
  92. package/dist/assets/{popover.stories-wZjzpaSh.js → popover.stories-_kYFHU0l.js} +1 -1
  93. package/dist/assets/{primary-nav.stories-B9chy1Uv.js → primary-nav.stories-CtvK3j2S.js} +1 -1
  94. package/dist/assets/{progress-meter-OmPLl0CJ.js → progress-meter-BlWAgZUd.js} +1 -1
  95. package/dist/assets/{progress-meter.stories-BY73_kXC.js → progress-meter.stories-GeVuGj_S.js} +1 -1
  96. package/dist/assets/{progress-steps-item-DX7cfkY6.js → progress-steps-item-DJNftsaD.js} +1 -1
  97. package/dist/assets/{progress-steps-item.stories-CUJlwofh.js → progress-steps-item.stories-1UHAaQUG.js} +1 -1
  98. package/dist/assets/{progress-steps.stories-B9o0nT3v.js → progress-steps.stories-BeZeRh7H.js} +1 -1
  99. package/dist/assets/{radio-field-item-ApN9fT3r.js → radio-field-item-CT1M0B3m.js} +1 -1
  100. package/dist/assets/{radio-field-item.stories-5eMm6X-l.js → radio-field-item.stories-BI1bjaVr.js} +1 -1
  101. package/dist/assets/{radio-field.stories-nUhPXwi3.js → radio-field.stories-BImvG2r2.js} +1 -1
  102. package/dist/assets/{remove-tag-1irQee-a.js → remove-tag-4TqbdK7Q.js} +1 -1
  103. package/dist/assets/{remove-tag.stories-CBKcGI5F.js → remove-tag.stories-BRl0J94X.js} +1 -1
  104. package/dist/assets/{sample-modal.stories-D2h88MGz.js → sample-modal.stories-DF5OldDU.js} +1 -1
  105. package/dist/assets/{section.stories-FSvR1k6O.js → section.stories-ElOjlSK7.js} +1 -1
  106. package/dist/assets/{select-tile-C0MvyMiv.js → select-tile-DNBzrxMY.js} +1 -1
  107. package/dist/assets/{select-tile-list.stories-B6tc2fV5.js → select-tile-list.stories-oKhYBTxt.js} +1 -1
  108. package/dist/assets/{select-tile.stories-BeJuC0QL.js → select-tile.stories-vu14aNAr.js} +1 -1
  109. package/dist/assets/{select.stories-iqUp3i6o.js → select.stories-CyxFtumd.js} +1 -1
  110. package/dist/assets/{sign-in.stories-LiBRbPNv.js → sign-in.stories-BLk1lY2i.js} +1 -1
  111. package/dist/assets/{skeleton-loader.stories-BKrmx5lC.js → skeleton-loader.stories-B9RgJ96w.js} +1 -1
  112. package/dist/assets/{split-button.stories-CzGaEK2m.js → split-button.stories-DAoFf1Px.js} +1 -1
  113. package/dist/assets/{spread-t5SXTlkZ.js → spread-DycKdtF1.js} +1 -1
  114. package/dist/assets/state-CETXgFRU.js +1 -0
  115. package/dist/assets/{submenu.stories-PZXeOJN7.js → submenu.stories-JGU9u6xB.js} +1 -1
  116. package/dist/assets/{syntaxhighlighter-T5IQBZDB-wKvCRvsc.js → syntaxhighlighter-T5IQBZDB-BWE8R-LG.js} +1 -1
  117. package/dist/assets/{table-header-CbbWqMDC.js → table-header-BFBYVGrO.js} +1 -1
  118. package/dist/assets/{table-object.stories-BhUz4NJk.js → table-object.stories-DZlKjO9A.js} +1 -1
  119. package/dist/assets/{table.stories-kpLio1OA.js → table.stories-BXgbpGTm.js} +1 -1
  120. package/dist/assets/{tabs.stories-DX6mOsXJ.js → tabs.stories-DavvGpOC.js} +1 -1
  121. package/dist/assets/{tag-BhnWTIDT.js → tag-CB0gsxGW.js} +1 -1
  122. package/dist/assets/{tag-list.stories-Bbkyxw29.js → tag-list.stories-CwO4ONea.js} +1 -1
  123. package/dist/assets/{tag.stories-eiczN1_F.js → tag.stories-CyhRz7Ae.js} +1 -1
  124. package/dist/assets/{tertiary-nav.stories-BmZ5z1S7.js → tertiary-nav.stories-D0avN5fj.js} +1 -1
  125. package/dist/assets/{text-link-B1JUg0aF.js → text-link-DeikfyWI.js} +1 -1
  126. package/dist/assets/{text-link.stories-P9lrKEa2.js → text-link.stories-DJ0ePcYU.js} +1 -1
  127. package/dist/assets/{text-passage-DfLhIsZs.js → text-passage-Cw8VlQkR.js} +1 -1
  128. package/dist/assets/{text-passage.stories-CSpA8rpO.js → text-passage.stories-B7S5M-Zh.js} +1 -1
  129. package/dist/assets/{tooltip.stories-CreTe2cH.js → tooltip.stories-CbsS1Mok.js} +1 -1
  130. package/dist/assets/{utility-nav.stories-D5lUQ87g.js → utility-nav.stories-BlsohD-7.js} +1 -1
  131. package/dist/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-Bold.woff2 +0 -0
  132. package/dist/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-LatinExt.woff2 +0 -0
  133. package/dist/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-Medium.woff2 +0 -0
  134. package/dist/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-Regular.woff2 +0 -0
  135. package/dist/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-SemiBold.woff2 +0 -0
  136. package/dist/design-tokens/brands/cre8-vivid/css/fonts.css +31 -0
  137. package/dist/design-tokens/brands/cre8-vivid/css/tokens_brand.css +609 -0
  138. package/dist/design-tokens/brands/cre8-vivid/css/tokens_cre8-vivid.css +248 -0
  139. package/dist/iframe.html +1 -1
  140. package/dist/project.json +1 -1
  141. package/dist/sb-addons/storybook-5/manager-bundle.js +1 -1
  142. package/lib/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-Bold.woff2 +0 -0
  143. package/lib/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-LatinExt.woff2 +0 -0
  144. package/lib/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-Medium.woff2 +0 -0
  145. package/lib/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-Regular.woff2 +0 -0
  146. package/lib/design-tokens/brands/cre8-vivid/css/assets/fonts/PlusJakartaSans-SemiBold.woff2 +0 -0
  147. package/lib/design-tokens/brands/cre8-vivid/css/fonts.css +31 -0
  148. package/lib/design-tokens/brands/cre8-vivid/css/tokens_brand.css +609 -0
  149. package/lib/design-tokens/brands/cre8-vivid/css/tokens_cre8-vivid.css +248 -0
  150. package/lib/design-tokens/brands/cre8-vivid/css/tokens_cre8-vivid.module.d.ts +3 -0
  151. package/lib/design-tokens/brands/cre8-vivid/css/tokens_cre8-vivid.module.d.ts.map +1 -0
  152. package/lib/design-tokens/brands/cre8-vivid/css/tokens_cre8-vivid.module.js +890 -0
  153. package/lib/design-tokens/brands/cre8-vivid/css/tokens_cre8-vivid.module.js.map +1 -0
  154. package/lib/scripts/generate-mcp-manifest.js +1 -0
  155. package/lib/scripts/generate-mcp-manifest.js.map +1 -1
  156. package/mcp-manifest.json +21 -21
  157. package/package.json +2 -1
  158. package/react-manifest.json +19 -19
  159. package/dist/assets/if-defined-CxQseQbA.js +0 -1
  160. package/dist/assets/state-XoJdIlqR.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens_cre8-vivid.module.js","sourceRoot":"","sources":["../../../../../design-tokens/brands/cre8-vivid/css/tokens_cre8-vivid.module.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAu3Bb,CAAC;AAEF,eAAe,KAAK,CAAC","sourcesContent":["const vivid = `\n@font-face {\n\tfont-family: 'Plus Jakarta Sans';\n\tfont-style: normal;\n\tfont-weight: 400;\n\tsrc: url('assets/fonts/PlusJakartaSans-Regular.woff2') format('woff2');\n\tfont-display: fallback;\n}\n\n@font-face {\n\tfont-family: 'Plus Jakarta Sans';\n\tfont-style: medium;\n\tfont-weight: 500;\n\tsrc: url('assets/fonts/PlusJakartaSans-Medium.woff2') format('woff2');\n\tfont-display: fallback;\n}\n\n@font-face {\n\tfont-family: 'Plus Jakarta Sans';\n\tfont-style: medium;\n\tfont-weight: 600;\n\tsrc: url('assets/fonts/PlusJakartaSans-SemiBold.woff2') format('woff2');\n\tfont-display: fallback;\n}\n\n@font-face {\n\tfont-family: 'Plus Jakarta Sans';\n\tfont-style: normal;\n\tfont-weight: 700;\n\tsrc: url('assets/fonts/PlusJakartaSans-Bold.woff2') format('woff2');\n\tfont-display: fallback;\n}\n/**\n * cre8-vivid — a high-saturation brand for cre8.\n *\n * Derived from cre8-a2ui and identical to it in structure, typography and\n * spacing. What changes is colour, and one change carries the rest:\n *\n * The a2ui status ramp maps success to cyan and error to pink. Neither hue\n * means what it says, and the two sit close enough that an alert's status has\n * to be read rather than seen. cre8-vivid goes back to the conventional\n * mapping — green good, red bad, amber caution — with violet for attention so\n * that no two statuses share a hue.\n *\n * The brand ramp moves from a single flat blue to indigo paired with cyan, and\n * ships that pairing as a gradient token. Correct-but-forgettable is a real\n * failure mode for a product surface; this is the answer to it.\n *\n * Everything below is a complete sheet, not an override layer: a viewer that\n * loads only \\`tokens_cre8-vivid.css\\` gets a whole design system.\n */\n\n:root {\n --cre8-desktop-menu-padding-vertical-padding: 1rem;\n --cre8-desktop-menu-padding-horizontal-padding: 0.5rem;\n --cre8-input-padding: 0.625rem 0.875rem;\n --cre8-input-label-margin-left: 0;\n --cre8-color-header-bg-default: #ffffff;\n --cre8-color-header-inverse-bg-default: #3B82F6;\n --cre8-color-header-menu-bg-default: #ffffff;\n --cre8-color-header-menu-inverse-bg-default: #3B82F6;\n --cre8-color-header-menu-bg-hover: #F8FAFC;\n --cre8-color-header-menu-inverse-bg-hover: #2563EB;\n --cre8-color-header-menu-bg-focus: #F8FAFC;\n --cre8-color-header-menu-inverse-bg-focus: #2563EB;\n --cre8-color-header-menu-bg-active: #E2E8F0;\n --cre8-color-header-menu-inverse-bg-active: #1D4ED8;\n --cre8-color-header-menu-bg-pressed: #E2E8F0;\n --cre8-color-header-menu-inverse-bg-pressed: #1D4ED8;\n --cre8-color-header-menu-bg-selected: #F8FAFC;\n --cre8-color-header-menu-inverse-bg-selected: #2563EB;\n --cre8-color-header-menu-content-default: #3B82F6;\n --cre8-color-header-menu-inverse-content-default: #ffffff;\n --cre8-color-header-menu-content-hover: #2563EB;\n --cre8-color-header-menu-inverse-content-hover: #ffffff;\n --cre8-color-header-menu-content-focus: #3B82F6;\n --cre8-color-header-menu-inverse-content-focus: #ffffff;\n --cre8-color-header-menu-content-active: #1D4ED8;\n --cre8-color-header-menu-inverse-content-active: #ffffff;\n --cre8-color-header-menu-content-pressed: #1D4ED8;\n --cre8-color-header-menu-inverse-content-pressed: #ffffff;\n --cre8-color-header-menu-content-selected: #2563EB;\n --cre8-color-header-menu-inverse-content-selected: #ffffff;\n --cre8-color-header-menu-border-default: rgba(15, 23, 42, 0.0);\n --cre8-color-header-menu-inverse-border-default: rgba(15, 23, 42, 0.0);\n --cre8-color-header-menu-border-hover: rgba(15, 23, 42, 0.0);\n --cre8-color-header-menu-inverse-border-hover: #ffffff;\n --cre8-color-header-menu-border-focus: #2563EB;\n --cre8-color-header-menu-inverse-border-focus: #ffffff;\n --cre8-color-header-menu-border-active: #3B82F6;\n --cre8-color-header-menu-inverse-border-active: #ffffff;\n --cre8-color-header-menu-border-pressed: #3B82F6;\n --cre8-color-header-menu-inverse-border-pressed: #ffffff;\n --cre8-color-header-menu-border-selected: #2563EB;\n --cre8-color-header-menu-inverse-border-selected: #F8FAFC;\n --cre8-color-header-submenu-bg-default: #ffffff;\n --cre8-color-header-submenu-inverse-bg-default: #3B82F6;\n --cre8-color-header-submenu-bg-hover: #F8FAFC;\n --cre8-color-header-submenu-inverse-bg-hover: #2563EB;\n --cre8-color-header-submenu-bg-focus: #ffffff;\n --cre8-color-header-submenu-inverse-bg-focus: #3B82F6;\n --cre8-color-header-submenu-bg-active: #E2E8F0;\n --cre8-color-header-submenu-inverse-bg-active: #1D4ED8;\n --cre8-color-header-submenu-bg-pressed: #E2E8F0;\n --cre8-color-header-submenu-inverse-bg-pressed: #1D4ED8;\n --cre8-color-header-submenu-bg-selected: #F8FAFC;\n --cre8-color-header-submenu-inverse-bg-selected: #2563EB;\n --cre8-color-header-submenu-content-default: #3B82F6;\n --cre8-color-header-submenu-inverse-content-default: #ffffff;\n --cre8-color-header-submenu-content-hover: #2563EB;\n --cre8-color-header-submenu-inverse-content-hover: #ffffff;\n --cre8-color-header-submenu-content-focus: #2563EB;\n --cre8-color-header-submenu-inverse-content-focus: #ffffff;\n --cre8-color-header-submenu-content-active: #1D4ED8;\n --cre8-color-header-submenu-inverse-content-active: #ffffff;\n --cre8-color-header-submenu-content-pressed: #1D4ED8;\n --cre8-color-header-submenu-inverse-content-pressed: #ffffff;\n --cre8-color-header-submenu-content-selected: #3B82F6;\n --cre8-color-header-submenu-inverse-content-selected: #ffffff;\n --cre8-color-header-submenu-border-default: #ffffff;\n --cre8-color-header-submenu-inverse-border-default: #3B82F6;\n --cre8-color-header-submenu-border-hover: #F8FAFC;\n --cre8-color-header-submenu-inverse-border-hover: #2563EB;\n --cre8-color-header-submenu-border-focus: #3B82F6;\n --cre8-color-header-submenu-inverse-border-focus: #ffffff;\n --cre8-color-header-submenu-border-active: #E2E8F0;\n --cre8-color-header-submenu-inverse-border-active: #1D4ED8;\n --cre8-color-header-submenu-border-pressed: #E2E8F0;\n --cre8-color-header-submenu-inverse-border-pressed: #1D4ED8;\n --cre8-color-header-submenu-border-selected: #2563EB;\n --cre8-color-header-submenu-inverse-border-selected: #F8FAFC;\n --cre8-color-header-bg-secondary: #3B82F6;\n --cre8-color-header-inverse-bg-secondary: #ffffff;\n --cre8-color-header-bg-tertiary: #3B82F6;\n --cre8-color-header-inverse-bg-tertiary: #ffffff;\n --cre8-color-footer-bg-default: #1E40AF;\n --cre8-color-footer-bg-secondary: #F8FAFC;\n --cre8-color-footer-content-secondary: #ffffff;\n --cre8-color-footer-link-hover: #93C5FD;\n --cre8-color-footer-link-default: #93C5FD;\n --cre8-spacing-0: 0rem;\n --cre8-spacing-2: 0.125rem;\n --cre8-spacing-4: 0.25rem;\n --cre8-spacing-6: 0.375rem;\n --cre8-spacing-8: 0.5rem;\n --cre8-spacing-12: 0.75rem;\n --cre8-spacing-14: 0.875rem;\n --cre8-spacing-16: 1rem;\n --cre8-spacing-18: 1.125rem;\n --cre8-spacing-24: 1.5rem;\n --cre8-spacing-32: 2rem;\n --cre8-spacing-40: 2.5rem;\n --cre8-spacing-48: 3rem;\n --cre8-spacing-64: 4rem;\n --cre8-spacing-80: 5rem;\n --cre8-spacing-96: 6rem;\n --cre8-spacing-120: 7.5rem;\n --cre8-spacing-160: 10rem;\n --cre8-color-button-primary-bg: #4F46E5;\n --cre8-color-button-primary-inverse-bg: #BFDBFE;\n --cre8-color-button-primary-bg-hover: #4338CA;\n --cre8-color-button-primary-inverse-bg-hover: #93C5FD;\n --cre8-color-button-primary-bg-active: #3730A3;\n --cre8-color-button-primary-inverse-bg-active: #60A5FA;\n --cre8-color-button-primary-bg-disabled: #E2E8F0;\n --cre8-color-button-primary-inverse-bg-disabled: #64748B;\n --cre8-color-button-primary-content: #FFFFFF;\n --cre8-color-button-primary-inverse-content: #1E40AF;\n --cre8-color-button-primary-content-hover: #ffffff;\n --cre8-color-button-primary-inverse-content-hover: #1E40AF;\n --cre8-color-button-primary-content-active: #ffffff;\n --cre8-color-button-primary-inverse-content-active: #1E40AF;\n --cre8-color-button-primary-content-disabled: #475569;\n --cre8-color-button-primary-inverse-content-disabled: #1E293B;\n --cre8-color-button-primary-border: #4F46E5;\n --cre8-color-button-primary-inverse-border: #BFDBFE;\n --cre8-color-button-primary-border-hover: #4338CA;\n --cre8-color-button-primary-inverse-border-hover: #93C5FD;\n --cre8-color-button-primary-border-active: #3730A3;\n --cre8-color-button-primary-inverse-border-active: #60A5FA;\n --cre8-color-button-primary-border-disabled: #E2E8F0;\n --cre8-color-button-primary-inverse-border-disabled: #64748B;\n --cre8-color-button-primary-outline: #1D4ED8;\n --cre8-color-button-primary-inverse-outline: #BFDBFE;\n --cre8-color-button-primary-danger-bg: #E11D48;\n --cre8-color-button-primary-danger-inverse-bg: #F9A8D4;\n --cre8-color-button-primary-danger-bg-hover: #BE123C;\n --cre8-color-button-primary-danger-inverse-bg-hover: #FBCFE8;\n --cre8-color-button-primary-danger-bg-active: #BE185D;\n --cre8-color-button-primary-danger-inverse-bg-active: #FCE7F3;\n --cre8-color-button-primary-danger-bg-disabled: #E2E8F0;\n --cre8-color-button-primary-danger-inverse-bg-disabled: #64748B;\n --cre8-color-button-primary-danger-content: #ffffff;\n --cre8-color-button-primary-danger-inverse-content: #0F172A;\n --cre8-color-button-primary-danger-content-hover: #ffffff;\n --cre8-color-button-primary-danger-inverse-content-hover: #0F172A;\n --cre8-color-button-primary-danger-content-active: #ffffff;\n --cre8-color-button-primary-danger-inverse-content-active: #0F172A;\n --cre8-color-button-primary-danger-content-disabled: #475569;\n --cre8-color-button-primary-danger-inverse-content-disabled: #1E293B;\n --cre8-color-button-primary-danger-border: #E11D48;\n --cre8-color-button-primary-danger-inverse-border: #F9A8D4;\n --cre8-color-button-primary-danger-border-hover: #BE123C;\n --cre8-color-button-primary-danger-inverse-border-hover: #FBCFE8;\n --cre8-color-button-primary-danger-border-active: #BE185D;\n --cre8-color-button-primary-danger-inverse-border-active: #FCE7F3;\n --cre8-color-button-primary-danger-border-disabled: #E2E8F0;\n --cre8-color-button-primary-danger-inverse-border-disabled: #64748B;\n --cre8-color-button-primary-danger-outline: #1D4ED8;\n --cre8-color-button-primary-danger-inverse-outline: #BFDBFE;\n --cre8-color-button-secondary-neutral-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-secondary-neutral-inverse-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-secondary-neutral-content: #0F172A;\n --cre8-color-button-secondary-neutral-inverse-content: #ffffff;\n --cre8-color-button-secondary-neutral-border: #0F172A;\n --cre8-color-button-secondary-neutral-inverse-border: #ffffff;\n --cre8-color-button-secondary-neutral-bg-hover: rgba(15, 23, 42, 0.10);\n --cre8-color-button-secondary-neutral-inverse-bg-hover: rgba(15, 23, 42, 0.20);\n --cre8-color-button-secondary-neutral-content-hover: #0F172A;\n --cre8-color-button-secondary-neutral-inverse-content-hover: #ffffff;\n --cre8-color-button-secondary-neutral-border-hover: #0F172A;\n --cre8-color-button-secondary-neutral-inverse-border-hover: #ffffff;\n --cre8-color-button-secondary-neutral-border-active: #0F172A;\n --cre8-color-button-secondary-neutral-inverse-border-active: #ffffff;\n --cre8-color-button-secondary-neutral-bg-active: rgba(15, 23, 42, 0.20);\n --cre8-color-button-secondary-neutral-inverse-bg-active: rgba(15, 23, 42, 0.50);\n --cre8-color-button-secondary-neutral-content-active: #0F172A;\n --cre8-color-button-secondary-neutral-inverse-content-active: #ffffff;\n --cre8-color-button-secondary-neutral-bg-disabled: #E2E8F0;\n --cre8-color-button-secondary-neutral-inverse-bg-disabled: #64748B;\n --cre8-color-button-secondary-neutral-border-disabled: #E2E8F0;\n --cre8-color-button-secondary-neutral-inverse-border-disabled: #64748B;\n --cre8-color-button-secondary-neutral-content-disabled: #475569;\n --cre8-color-button-secondary-neutral-inverse-content-disabled: #1E293B;\n --cre8-color-button-secondary-neutral-outline: #1E3A8A;\n --cre8-color-button-secondary-neutral-inverse-outline: #BFDBFE;\n --cre8-color-button-secondary-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-secondary-inverse-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-secondary-bg-hover: #EFF6FF;\n --cre8-color-button-secondary-inverse-bg-hover: rgba(15, 23, 42, 0.0);\n --cre8-color-button-secondary-bg-active: #DBEAFE;\n --cre8-color-button-secondary-inverse-bg-active: #1E3A8A;\n --cre8-color-button-secondary-bg-disabled: #E2E8F0;\n --cre8-color-button-secondary-inverse-bg-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-secondary-content: #3B82F6;\n --cre8-color-button-secondary-inverse-content: #BFDBFE;\n --cre8-color-button-secondary-content-hover: #2563EB;\n --cre8-color-button-secondary-inverse-content-hover: #93C5FD;\n --cre8-color-button-secondary-content-active: #1D4ED8;\n --cre8-color-button-secondary-inverse-content-active: #60A5FA;\n --cre8-color-button-secondary-content-disabled: #475569;\n --cre8-color-button-secondary-inverse-content-disabled: #64748B;\n --cre8-color-button-secondary-border: #3B82F6;\n --cre8-color-button-secondary-inverse-border: #BFDBFE;\n --cre8-color-button-secondary-border-hover: #2563EB;\n --cre8-color-button-secondary-inverse-border-hover: #93C5FD;\n --cre8-color-button-secondary-border-active: #1D4ED8;\n --cre8-color-button-secondary-inverse-border-active: #60A5FA;\n --cre8-color-button-secondary-border-disabled: #64748B;\n --cre8-color-button-secondary-inverse-border-disabled: #64748B;\n --cre8-color-button-secondary-outline: #1D4ED8;\n --cre8-color-button-secondary-inverse-outline: #93C5FD;\n --cre8-color-button-secondary-danger-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-secondary-danger-inverse-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-secondary-danger-bg-hover: #DB2777;\n --cre8-color-button-secondary-danger-inverse-bg-hover: #FBCFE8;\n --cre8-color-button-secondary-danger-bg-active: #BE185D;\n --cre8-color-button-secondary-danger-inverse-bg-active: #FCE7F3;\n --cre8-color-button-secondary-danger-bg-disabled: #E2E8F0;\n --cre8-color-button-secondary-danger-inverse-bg-disabled: #64748B;\n --cre8-color-button-secondary-danger-content: #EC4899;\n --cre8-color-button-secondary-danger-inverse-content: #F472B6;\n --cre8-color-button-secondary-danger-content-hover: #ffffff;\n --cre8-color-button-secondary-danger-inverse-content-hover: #0F172A;\n --cre8-color-button-secondary-danger-content-active: #ffffff;\n --cre8-color-button-secondary-danger-inverse-content-active: #0F172A;\n --cre8-color-button-secondary-danger-content-disabled: #475569;\n --cre8-color-button-secondary-danger-inverse-content-disabled: #1E293B;\n --cre8-color-button-secondary-danger-border: #EC4899;\n --cre8-color-button-secondary-danger-inverse-border: #F472B6;\n --cre8-color-button-secondary-danger-border-hover: #DB2777;\n --cre8-color-button-secondary-danger-inverse-border-hover: #FBCFE8;\n --cre8-color-button-secondary-danger-border-active: #BE185D;\n --cre8-color-button-secondary-danger-inverse-border-active: #FCE7F3;\n --cre8-color-button-secondary-danger-border-disabled: #E2E8F0;\n --cre8-color-button-secondary-danger-inverse-border-disabled: #64748B;\n --cre8-color-button-secondary-danger-outline: #1D4ED8;\n --cre8-color-button-secondary-danger-inverse-outline: #BFDBFE;\n --cre8-color-button-tertiary-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-inverse-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-bg-hover: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-inverse-bg-hover: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-bg-active: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-inverse-bg-active: #172554;\n --cre8-color-button-tertiary-bg-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-inverse-bg-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-content: #3B82F6;\n --cre8-color-button-tertiary-inverse-content: #BFDBFE;\n --cre8-color-button-tertiary-content-hover: #2563EB;\n --cre8-color-button-tertiary-inverse-content-hover: #93C5FD;\n --cre8-color-button-tertiary-content-active: #1D4ED8;\n --cre8-color-button-tertiary-inverse-content-active: #60A5FA;\n --cre8-color-button-tertiary-content-disabled: #475569;\n --cre8-color-button-tertiary-inverse-content-disabled: #64748B;\n --cre8-color-button-tertiary-border: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-inverse-border: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-border-hover: #2563EB;\n --cre8-color-button-tertiary-inverse-border-hover: #93C5FD;\n --cre8-color-button-tertiary-border-active: #1D4ED8;\n --cre8-color-button-tertiary-inverse-border-active: #60A5FA;\n --cre8-color-button-tertiary-border-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-inverse-border-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-outline: #1D4ED8;\n --cre8-color-button-tertiary-inverse-outline: #93C5FD;\n --cre8-color-button-tertiary-neutral-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-inverse-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-content: #0F172A;\n --cre8-color-button-tertiary-neutral-inverse-content: #ffffff;\n --cre8-color-button-tertiary-neutral-border: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-inverse-border: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-bg-hover: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-inverse-bg-hover: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-content-hover: #0F172A;\n --cre8-color-button-tertiary-neutral-inverse-content-hover: #ffffff;\n --cre8-color-button-tertiary-neutral-border-hover: #0F172A;\n --cre8-color-button-tertiary-neutral-inverse-border-hover: #ffffff;\n --cre8-color-button-tertiary-neutral-border-active: #0F172A;\n --cre8-color-button-tertiary-neutral-inverse-border-active: #ffffff;\n --cre8-color-button-tertiary-neutral-bg-active: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-inverse-bg-active: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-content-active: #0F172A;\n --cre8-color-button-tertiary-neutral-inverse-content-active: #ffffff;\n --cre8-color-button-tertiary-neutral-bg-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-inverse-bg-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-border-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-inverse-border-disabled: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-neutral-content-disabled: #475569;\n --cre8-color-button-tertiary-neutral-inverse-content-disabled: #1E293B;\n --cre8-color-button-tertiary-neutral-outline: #1E3A8A;\n --cre8-color-button-tertiary-neutral-inverse-outline: #BFDBFE;\n --cre8-color-button-tertiary-danger-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-danger-inverse-bg: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-danger-bg-hover: #DB2777;\n --cre8-color-button-tertiary-danger-inverse-bg-hover: #FBCFE8;\n --cre8-color-button-tertiary-danger-bg-active: #BE185D;\n --cre8-color-button-tertiary-danger-inverse-bg-active: #FCE7F3;\n --cre8-color-button-tertiary-danger-bg-disabled: #E2E8F0;\n --cre8-color-button-tertiary-danger-inverse-bg-disabled: #64748B;\n --cre8-color-button-tertiary-danger-content: #EC4899;\n --cre8-color-button-tertiary-danger-inverse-content: #F472B6;\n --cre8-color-button-tertiary-danger-content-hover: #ffffff;\n --cre8-color-button-tertiary-danger-inverse-content-hover: #0F172A;\n --cre8-color-button-tertiary-danger-content-active: #ffffff;\n --cre8-color-button-tertiary-danger-inverse-content-active: #0F172A;\n --cre8-color-button-tertiary-danger-content-disabled: #475569;\n --cre8-color-button-tertiary-danger-inverse-content-disabled: #1E293B;\n --cre8-color-button-tertiary-danger-border: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-danger-inverse-border: rgba(15, 23, 42, 0.0);\n --cre8-color-button-tertiary-danger-border-hover: #DB2777;\n --cre8-color-button-tertiary-danger-inverse-border-hover: #FBCFE8;\n --cre8-color-button-tertiary-danger-border-active: #BE185D;\n --cre8-color-button-tertiary-danger-inverse-border-active: #FCE7F3;\n --cre8-color-button-tertiary-danger-border-disabled: #E2E8F0;\n --cre8-color-button-tertiary-danger-inverse-border-disabled: #64748B;\n --cre8-color-button-tertiary-danger-outline: #1D4ED8;\n --cre8-color-button-tertiary-danger-inverse-outline: #BFDBFE;\n --cre8-button-padding-vertical-small: 0.5rem;\n --cre8-button-padding-vertical-medium: 0.75rem;\n --cre8-button-padding-vertical-large: 1rem;\n --cre8-button-padding-vertical-icon-only: 0.5rem;\n --cre8-button-padding-vertical-small-icon-only: 0.5rem;\n --cre8-button-padding-vertical-medium-icon-only: 1rem;\n --cre8-button-padding-vertical-large-icon-only: 1rem;\n --cre8-button-padding-horizontal-small: 1rem;\n --cre8-button-padding-horizontal-medium: 1.5rem;\n --cre8-button-padding-horizontal-large: 2rem;\n --cre8-button-padding-horizontal-icon-only: 0.5rem;\n --cre8-button-padding-horizontal-small-icon-only: 0.5rem;\n --cre8-button-padding-horizontal-medium-icon-only: 1rem;\n --cre8-button-padding-horizontal-large-icon-only: 1rem;\n --cre8-color-bg-default: #FFFFFF;\n --cre8-color-bg-default-hover: #EEF0FF;\n --cre8-color-bg-default-active: #DDE1FF;\n --cre8-color-bg-subtle: #F2F5FD;\n --cre8-color-bg-moderate: #9AA3BF;\n --cre8-color-bg-inverse-moderate: #64748B;\n --cre8-color-bg-strong: #0A0F1F;\n --cre8-color-bg-disabled: #E4E8F4;\n --cre8-color-bg-brand: #FFFFFF;\n --cre8-color-bg-brand-active: #DDE1FF;\n --cre8-color-bg-brand-hover: #EEF0FF;\n --cre8-color-bg-brand-strong: #4F46E5;\n --cre8-color-bg-brand-strong-hover: #4338CA;\n --cre8-color-bg-brand-strong-active: #3730A3;\n --cre8-color-bg-brand-xstrong: #3730A3;\n --cre8-color-bg-brand-xstrong-hover: #4338CA;\n --cre8-color-bg-brand-xstrong-active: #312E81;\n --cre8-color-bg-success: #E7FBF3;\n --cre8-color-bg-success-strong: #10B981;\n --cre8-color-bg-error: #FFEFF2;\n --cre8-color-bg-error-strong: #E11D48;\n --cre8-color-bg-warning: #FFF7E6;\n --cre8-color-bg-warning-strong: #F59E0B;\n --cre8-color-bg-info: #EEF0FF;\n --cre8-color-bg-info-strong: #4F46E5;\n --cre8-color-bg-attention: #F3EEFF;\n --cre8-color-bg-attention-strong: #8B5CF6;\n --cre8-color-bg-opacity-transparent: rgba(15, 23, 42, 0.0);\n --cre8-color-bg-opacity-default: rgba(15, 23, 42, 0.50);\n --cre8-color-bg-active: #0F172A;\n --cre8-color-bg-inverse-active: #ffffff;\n --cre8-color-content-default: #0A0F1F;\n --cre8-color-content-subtle: #5B6484;\n --cre8-color-content-disabled: #9AA3BF;\n --cre8-color-content-knockout: #FFFFFF;\n --cre8-color-content-brand: #4F46E5;\n --cre8-color-content-brand-strong: #4338CA;\n --cre8-color-content-brand-knockout: #ECFEFF;\n --cre8-color-content-success: #059669;\n --cre8-color-content-success-icon: #059669;\n --cre8-color-content-error: #BE123C;\n --cre8-color-content-error-icon: #BE123C;\n --cre8-color-content-warning-icon: #D97706;\n --cre8-color-content-info-icon: #4F46E5;\n --cre8-color-content-attention-icon: #7C3AED;\n --cre8-color-content-link: #4F46E5;\n --cre8-color-content-inverse-link: #BFDBFE;\n --cre8-color-content-link-hover: #4338CA;\n --cre8-color-content-inverse-link-hover: #93C5FD;\n --cre8-color-content-link-focus: #ffffff;\n --cre8-color-content-inverse-link-focus: #0F172A;\n --cre8-color-content-link-visited: #7C3AED;\n --cre8-color-content-inverse-link-visited: #E9D5FF;\n --cre8-color-content-link-disabled: #475569;\n --cre8-color-content-inverse-link-disabled: #E2E8F0;\n --cre8-color-content-link-active: #3730A3;\n --cre8-color-content-inverse-link-active: #60A5FA;\n --cre8-color-border-default: #E4E8F4;\n --cre8-color-border-strong: #9AA3BF;\n --cre8-color-border-knockout: #ffffff;\n --cre8-color-border-disabled: #CBD5E1;\n --cre8-color-border-brand: #4F46E5;\n --cre8-color-border-brand-subtle: #A5B0FF;\n --cre8-color-border-brand-strong: #4338CA;\n --cre8-color-border-success: #10B981;\n --cre8-color-border-error: #E11D48;\n --cre8-color-border-warning: #F59E0B;\n --cre8-color-border-info: #4F46E5;\n --cre8-color-border-attention: #8B5CF6;\n --cre8-color-border-transparent: rgba(15, 23, 42, 0.0);\n --cre8-color-border-active-outline: #2563EB;\n --cre8-color-border-inverse-active-outline: #BFDBFE;\n --cre8-font-size-0: 0.75rem;\n --cre8-font-size-1: 0.875rem;\n --cre8-font-size-2: 1rem;\n --cre8-font-size-3: 1.125rem;\n --cre8-font-size-4: 1.25rem;\n --cre8-font-size-5: 1.5rem;\n --cre8-font-size-6: 1.75rem;\n --cre8-font-size-7: 2rem;\n --cre8-font-size-8: 2.5rem;\n --cre8-font-size-9: 3rem;\n --cre8-font-size-10: 3.5rem;\n --cre8-font-size-11: 4rem;\n --cre8-font-size-12: 4.5rem;\n --cre8-font-size-13: 5rem;\n --cre8-letter-spacing-0: -1.5;\n --cre8-letter-spacing-1: -1;\n --cre8-letter-spacing-2: -0.5;\n --cre8-letter-spacing-3: 0;\n --cre8-letter-spacing-4: 2;\n --cre8-letter-spacing-5: 1;\n --cre8-letter-spacing-6: 1.5;\n --cre8-paragraph-spacing-0: 0;\n --cre8-text-case-none: none;\n --cre8-text-case-uppercase: uppercase;\n --cre8-text-decoration-none: none;\n --cre8-text-decoration-underline: underline;\n --cre8-paragraph-indent-0: 0px;\n --cre8-border-radius-small: 12px;\n --cre8-border-radius-checkbox: 4px;\n --cre8-border-radius-default: 12px;\n --cre8-border-radius-large: 24px;\n --cre8-border-radius-round: 900px;\n --cre8-border-radius-button: 900px;\n --cre8-border-radius-badge: 900px;\n --cre8-border-radius-tabs: 12px;\n --cre8-border-radius-container: 24px;\n --cre8-border-radius-field: 12px;\n --cre8-border-radius-field-brand: 12px;\n --cre8-border-radius-brand: 900px;\n --cre8-border-radius-none: 0px;\n --cre8-border-width-none: 0rem;\n --cre8-border-width-default: 0.0625rem;\n --cre8-border-width-focus: 0.125rem;\n --cre8-border-width-large: 0.25rem;\n --cre8-border-width-button-tertiary-outline-focus: 0.125rem;\n --cre8-border-width-button-default: 0.125rem;\n --cre8-border-width-tab-selected: 0.125rem;\n --cre8-border-width-tab-default: 0.125rem;\n --cre8-border-style-button-tertiary-outline-focus: solid;\n --cre8-border-style-default: solid;\n --cre8-breakpoint-xsm: 375px;\n --cre8-breakpoint-sm: 560px;\n --cre8-breakpoint-md: 768px;\n --cre8-breakpoint-lg: 960px;\n --cre8-breakpoint-xl: 1200px;\n --cre8-breakpoint-xxl: 1400px;\n\n /* Elevation — neutral-tinted, driven by the overlay primitives */\n --cre8-shadow-none: none;\n --cre8-shadow-button: none;\n --cre8-shadow-small: 0 1px 3px 0 oklch(from var(--cre8-neutral-900) l c h / 0.06);\n --cre8-shadow-default: 0 4px 12px 0 oklch(from var(--cre8-neutral-900) l c h / 0.08);\n --cre8-shadow-large: 0 8px 24px 0 oklch(from var(--cre8-neutral-900) l c h / 0.12);\n}\n\n/* ===========================================================================\n MODE — the 152 hand-maintained inverse tokens collapse to this block.\n Only the mode indirection is remapped; the semantic and component tiers\n re-resolve through it, so every component follows with no per-component\n work. The legacy --cre8-color-*-inverse-* names are still emitted above\n and still resolve to their original values.\n\n Put [data-mode] on <html> for the whole document, or pair it with\n [data-cre8-theme] on any element to scope the mode to that subtree.\n =========================================================================== */\n[data-mode=\"inverse\"] {\n --cre8-mode-bg-default: var(--cre8-neutral-800);\n --cre8-mode-bg-default-hover: var(--cre8-neutral-700);\n --cre8-mode-bg-subtle: var(--cre8-neutral-900);\n --cre8-mode-bg-strong: var(--cre8-neutral-50);\n --cre8-mode-bg-disabled: var(--cre8-neutral-700);\n --cre8-mode-bg-brand: var(--cre8-primary-900);\n --cre8-mode-bg-brand-hover: var(--cre8-primary-800);\n --cre8-mode-bg-brand-strong: var(--cre8-primary-300);\n --cre8-mode-bg-brand-strong-hover: var(--cre8-primary-200);\n --cre8-mode-content-default: var(--cre8-neutral-50);\n --cre8-mode-content-subtle: var(--cre8-neutral-400);\n --cre8-mode-content-disabled: var(--cre8-neutral-600);\n --cre8-mode-content-knockout: var(--cre8-neutral-900);\n --cre8-mode-content-brand: var(--cre8-primary-300);\n --cre8-mode-content-brand-strong: var(--cre8-primary-200);\n --cre8-mode-content-link: var(--cre8-primary-300);\n --cre8-mode-content-link-hover: var(--cre8-primary-200);\n --cre8-mode-border-default: var(--cre8-neutral-700);\n --cre8-mode-border-strong: var(--cre8-neutral-500);\n --cre8-mode-border-brand: var(--cre8-primary-300);\n}\n\n@media (prefers-color-scheme: dark) {\n [data-mode=\"auto\"] {\n --cre8-mode-bg-default: var(--cre8-neutral-800);\n --cre8-mode-bg-default-hover: var(--cre8-neutral-700);\n --cre8-mode-bg-subtle: var(--cre8-neutral-900);\n --cre8-mode-bg-strong: var(--cre8-neutral-50);\n --cre8-mode-bg-disabled: var(--cre8-neutral-700);\n --cre8-mode-bg-brand: var(--cre8-primary-900);\n --cre8-mode-bg-brand-hover: var(--cre8-primary-800);\n --cre8-mode-bg-brand-strong: var(--cre8-primary-300);\n --cre8-mode-bg-brand-strong-hover: var(--cre8-primary-200);\n --cre8-mode-content-default: var(--cre8-neutral-50);\n --cre8-mode-content-subtle: var(--cre8-neutral-400);\n --cre8-mode-content-disabled: var(--cre8-neutral-600);\n --cre8-mode-content-knockout: var(--cre8-neutral-900);\n --cre8-mode-content-brand: var(--cre8-primary-300);\n --cre8-mode-content-brand-strong: var(--cre8-primary-200);\n --cre8-mode-content-link: var(--cre8-primary-300);\n --cre8-mode-content-link-hover: var(--cre8-primary-200);\n --cre8-mode-border-default: var(--cre8-neutral-700);\n --cre8-mode-border-strong: var(--cre8-neutral-500);\n --cre8-mode-border-brand: var(--cre8-primary-300);\n }\n}\n\n/**\n * Brand gradient.\n *\n * cre8 has no gradient primitive, because until now no brand needed one. It is\n * the identity of cre8-vivid rather than decoration on top of it, so it belongs\n * with the tokens and not in an application stylesheet.\n */\n:root {\n --cre8-gradient-brand: linear-gradient(135deg, #4F46E5 0%, #06B6D4 100%);\n --cre8-gradient-brand-rich: linear-gradient(150deg, #4F46E5 0%, #6D28D9 42%, #06B6D4 100%);\n --cre8-gradient-brand-from: #4F46E5;\n --cre8-gradient-brand-to: #06B6D4;\n}\n\n/**\n * Dark mode.\n *\n * The sheet a2ui inherits gates dark values on \\`[data-mode=\"auto\"]\\`, which\n * means a page that never sets that attribute has no dark mode at all. These\n * are the same token names under \\`prefers-color-scheme\\`, so a plain page\n * follows the system. Accent hues step lighter — full-saturation indigo on\n * near-black does not hold enough contrast to read as text.\n */\n@media (prefers-color-scheme: dark) {\n :root {\n --cre8-color-bg-default: #111A30;\n --cre8-color-bg-default-hover: #18223C;\n --cre8-color-bg-default-active: #1E2947;\n --cre8-color-bg-subtle: #0D1425;\n --cre8-color-bg-strong: #E9EDF7;\n --cre8-color-bg-disabled: #1E2740;\n\n --cre8-color-bg-brand: #141A3A;\n --cre8-color-bg-brand-strong: #6366F1;\n --cre8-color-bg-brand-strong-hover: #818CF8;\n --cre8-color-bg-success: #06251B;\n --cre8-color-bg-error: #2A0B14;\n --cre8-color-bg-warning: #2A1C05;\n --cre8-color-bg-info: #141A3A;\n --cre8-color-bg-attention: #1E1440;\n\n --cre8-color-content-default: #E9EDF7;\n --cre8-color-content-subtle: #9AA3BF;\n --cre8-color-content-disabled: #5B6484;\n --cre8-color-content-brand: #A5B0FF;\n --cre8-color-content-brand-strong: #C7CDFF;\n --cre8-color-content-success: #34D399;\n --cre8-color-content-success-icon: #34D399;\n --cre8-color-content-error: #FB7185;\n --cre8-color-content-error-icon: #FB7185;\n --cre8-color-content-warning-icon: #FBBF24;\n --cre8-color-content-info-icon: #A5B0FF;\n --cre8-color-content-attention-icon: #C4B5FD;\n --cre8-color-content-link: #A5B0FF;\n\n --cre8-color-border-default: #1E2740;\n --cre8-color-border-strong: #39435F;\n\n --cre8-color-button-primary-bg: #6366F1;\n --cre8-color-button-primary-bg-hover: #818CF8;\n --cre8-color-button-primary-border: #6366F1;\n --cre8-color-button-primary-border-hover: #818CF8;\n\n --cre8-gradient-brand-rich: linear-gradient(150deg, #4338CA 0%, #6D28D9 45%, #0891B2 100%);\n }\n}\n:root{--cre8-typography-body-xlarge-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-xlarge-font-size: var(--cre8-font-size-5);\n --cre8-typography-body-xlarge-font-weight: var(--cre8-font-weights-inter-0);\n --cre8-typography-body-xlarge-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-xlarge-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-body-xlarge-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-xlarge-strong-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-xlarge-strong-font-size: var(--cre8-font-size-5);\n --cre8-typography-body-xlarge-strong-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-body-xlarge-strong-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-xlarge-strong-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-body-xlarge-strong-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-xlarge-link-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-xlarge-link-font-size: var(--cre8-font-size-5);\n --cre8-typography-body-xlarge-link-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-body-xlarge-link-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-xlarge-link-text-decoration: var(--cre8-text-decoration-underline);\n --cre8-typography-body-xlarge-link-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-large-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-large-font-size: var(--cre8-font-size-3);\n --cre8-typography-body-large-font-weight: var(--cre8-font-weights-inter-0);\n --cre8-typography-body-large-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-large-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-body-large-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-large-strong-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-large-strong-font-size: var(--cre8-font-size-3);\n --cre8-typography-body-large-strong-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-body-large-strong-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-large-strong-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-body-large-strong-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-default-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-default-font-size: var(--cre8-font-size-2);\n --cre8-typography-body-default-font-weight: var(--cre8-font-weights-inter-0);\n --cre8-typography-body-default-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-default-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-body-default-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-default-strong-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-default-strong-font-size: var(--cre8-font-size-2);\n --cre8-typography-body-default-strong-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-body-default-strong-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-default-strong-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-body-default-strong-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-small-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-small-font-size: var(--cre8-font-size-1);\n --cre8-typography-body-small-font-weight: var(--cre8-font-weights-inter-0);\n --cre8-typography-body-small-line-height: var(--cre8-line-heights-8);\n --cre8-typography-body-small-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-body-small-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-small-strong-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-small-strong-font-size: var(--cre8-font-size-1);\n --cre8-typography-body-small-strong-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-body-small-strong-line-height: var(--cre8-line-heights-8);\n --cre8-typography-body-small-strong-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-body-small-strong-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-large-link-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-large-link-font-size: var(--cre8-font-size-3);\n --cre8-typography-body-large-link-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-body-large-link-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-large-link-text-decoration: var(--cre8-text-decoration-underline);\n --cre8-typography-body-large-link-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-default-link-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-default-link-font-size: var(--cre8-font-size-2);\n --cre8-typography-body-default-link-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-body-default-link-line-height: var(--cre8-line-heights-7);\n --cre8-typography-body-default-link-text-decoration: var(--cre8-text-decoration-underline);\n --cre8-typography-body-default-link-text-transform: var(--cre8-text-case-none);\n--cre8-typography-body-small-link-font-family: var(--cre8-font-families-inter);\n --cre8-typography-body-small-link-font-size: var(--cre8-font-size-1);\n --cre8-typography-body-small-link-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-body-small-link-line-height: var(--cre8-line-heights-8);\n --cre8-typography-body-small-link-text-decoration: var(--cre8-text-decoration-underline);\n --cre8-typography-body-small-link-text-transform: var(--cre8-text-case-none);\n--cre8-typography-label-default-font-family: var(--cre8-font-families-inter);\n --cre8-typography-label-default-font-size: var(--cre8-font-size-2);\n --cre8-typography-label-default-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-label-default-line-height: var(--cre8-line-heights-7);\n --cre8-typography-label-default-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-label-default-text-transform: var(--cre8-text-case-none);\n--cre8-typography-label-large-font-family: var(--cre8-font-families-inter);\n --cre8-typography-label-large-font-size: var(--cre8-font-size-3);\n --cre8-typography-label-large-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-label-large-line-height: var(--cre8-line-heights-5);\n --cre8-typography-label-large-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-label-large-text-transform: var(--cre8-text-case-none);\n--cre8-typography-label-small-font-family: var(--cre8-font-families-inter);\n --cre8-typography-label-small-font-size: var(--cre8-font-size-1);\n --cre8-typography-label-small-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-label-small-line-height: var(--cre8-line-heights-7);\n --cre8-typography-label-small-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-label-small-text-transform: var(--cre8-text-case-none);\n--cre8-typography-title-xlarge-font-family: var(--cre8-font-families-inter);\n --cre8-typography-title-xlarge-font-size: var(--cre8-font-size-8);\n --cre8-typography-title-xlarge-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-title-xlarge-line-height: var(--cre8-line-heights-4);\n --cre8-typography-title-xlarge-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-title-xlarge-text-transform: var(--cre8-text-case-none);\n--cre8-typography-title-xlarge-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-title-xlarge-mobile-font-size: var(--cre8-font-size-7);\n --cre8-typography-title-xlarge-mobile-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-title-xlarge-mobile-line-height: var(--cre8-line-heights-4);\n --cre8-typography-title-xlarge-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-title-xlarge-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-title-large-font-family: var(--cre8-font-families-inter);\n --cre8-typography-title-large-font-size: var(--cre8-font-size-6);\n --cre8-typography-title-large-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-title-large-line-height: var(--cre8-line-heights-1);\n --cre8-typography-title-large-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-title-large-text-transform: var(--cre8-text-case-none);\n--cre8-typography-title-large-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-title-large-mobile-font-size: var(--cre8-font-size-5);\n --cre8-typography-title-large-mobile-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-title-large-mobile-line-height: var(--cre8-line-heights-1);\n --cre8-typography-title-large-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-title-large-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-title-default-font-family: var(--cre8-font-families-inter);\n --cre8-typography-title-default-font-size: var(--cre8-font-size-5);\n --cre8-typography-title-default-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-title-default-line-height: var(--cre8-line-heights-2);\n --cre8-typography-title-default-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-title-default-text-transform: var(--cre8-text-case-none);\n--cre8-typography-title-default-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-title-default-mobile-font-size: var(--cre8-font-size-3);\n --cre8-typography-title-default-mobile-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-title-default-mobile-line-height: var(--cre8-line-heights-2);\n --cre8-typography-title-default-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-title-default-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-title-small-font-family: var(--cre8-font-families-inter);\n --cre8-typography-title-small-font-size: var(--cre8-font-size-3);\n --cre8-typography-title-small-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-title-small-line-height: var(--cre8-line-heights-6);\n --cre8-typography-title-small-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-title-small-text-transform: var(--cre8-text-case-none);\n--cre8-typography-title-small-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-title-small-mobile-font-size: var(--cre8-font-size-2);\n --cre8-typography-title-small-mobile-font-weight: var(--cre8-font-weights-inter-1);\n --cre8-typography-title-small-mobile-line-height: var(--cre8-line-heights-6);\n --cre8-typography-title-small-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-title-small-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-headline-large-font-family: var(--cre8-font-families-inter);\n --cre8-typography-headline-large-font-size: var(--cre8-font-size-9);\n --cre8-typography-headline-large-font-weight: var(--cre8-font-weights-inter-3);\n --cre8-typography-headline-large-line-height: var(--cre8-line-heights-0);\n --cre8-typography-headline-large-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-headline-large-text-transform: var(--cre8-text-case-none);\n--cre8-typography-headline-large-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-headline-large-mobile-font-size: var(--cre8-font-size-8);\n --cre8-typography-headline-large-mobile-font-weight: var(--cre8-font-weights-inter-3);\n --cre8-typography-headline-large-mobile-line-height: var(--cre8-line-heights-0);\n --cre8-typography-headline-large-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-headline-large-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-headline-default-font-family: var(--cre8-font-families-inter);\n --cre8-typography-headline-default-font-size: var(--cre8-font-size-8);\n --cre8-typography-headline-default-font-weight: var(--cre8-font-weights-inter-3);\n --cre8-typography-headline-default-line-height: var(--cre8-line-heights-0);\n --cre8-typography-headline-default-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-headline-default-text-transform: var(--cre8-text-case-none);\n--cre8-typography-headline-default-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-headline-default-mobile-font-size: var(--cre8-font-size-7);\n --cre8-typography-headline-default-mobile-font-weight: var(--cre8-font-weights-inter-3);\n --cre8-typography-headline-default-mobile-line-height: var(--cre8-line-heights-0);\n --cre8-typography-headline-default-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-headline-default-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-headline-small-font-family: var(--cre8-font-families-inter);\n --cre8-typography-headline-small-font-size: var(--cre8-font-size-7);\n --cre8-typography-headline-small-font-weight: var(--cre8-font-weights-inter-3);\n --cre8-typography-headline-small-line-height: var(--cre8-line-heights-0);\n --cre8-typography-headline-small-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-headline-small-text-transform: var(--cre8-text-case-none);\n--cre8-typography-headline-small-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-headline-small-mobile-font-size: var(--cre8-font-size-6);\n --cre8-typography-headline-small-mobile-font-weight: var(--cre8-font-weights-inter-3);\n --cre8-typography-headline-small-mobile-line-height: var(--cre8-line-heights-0);\n --cre8-typography-headline-small-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-headline-small-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-headline-xsmall-font-family: var(--cre8-font-families-inter);\n --cre8-typography-headline-xsmall-font-size: var(--cre8-font-size-5);\n --cre8-typography-headline-xsmall-font-weight: var(--cre8-font-weights-inter-3);\n --cre8-typography-headline-xsmall-line-height: var(--cre8-line-heights-0);\n --cre8-typography-headline-xsmall-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-headline-xsmall-text-transform: var(--cre8-text-case-none);\n--cre8-typography-headline-xsmall-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-headline-xsmall-mobile-font-size: var(--cre8-font-size-5);\n --cre8-typography-headline-xsmall-mobile-font-weight: var(--cre8-font-weights-inter-3);\n --cre8-typography-headline-xsmall-mobile-line-height: var(--cre8-line-heights-0);\n --cre8-typography-headline-xsmall-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-headline-xsmall-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-display-large-font-family: var(--cre8-font-families-inter);\n --cre8-typography-display-large-font-size: var(--cre8-font-size-13);\n --cre8-typography-display-large-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-display-large-line-height: var(--cre8-line-heights-0);\n --cre8-typography-display-large-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-display-large-text-transform: var(--cre8-text-case-none);\n--cre8-typography-display-large-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-display-large-mobile-font-size: var(--cre8-font-size-12);\n --cre8-typography-display-large-mobile-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-display-large-mobile-line-height: var(--cre8-line-heights-0);\n --cre8-typography-display-large-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-display-large-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-display-default-font-family: var(--cre8-font-families-inter);\n --cre8-typography-display-default-font-size: var(--cre8-font-size-11);\n --cre8-typography-display-default-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-display-default-line-height: var(--cre8-line-heights-0);\n --cre8-typography-display-default-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-display-default-text-transform: var(--cre8-text-case-none);\n--cre8-typography-display-default-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-display-default-mobile-font-size: var(--cre8-font-size-10);\n --cre8-typography-display-default-mobile-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-display-default-mobile-line-height: var(--cre8-line-heights-0);\n --cre8-typography-display-default-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-display-default-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-display-small-font-family: var(--cre8-font-families-inter);\n --cre8-typography-display-small-font-size: var(--cre8-font-size-9);\n --cre8-typography-display-small-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-display-small-line-height: var(--cre8-line-heights-0);\n --cre8-typography-display-small-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-display-small-text-transform: var(--cre8-text-case-none);\n--cre8-typography-display-small-mobile-font-family: var(--cre8-font-families-inter);\n --cre8-typography-display-small-mobile-font-size: var(--cre8-font-size-8);\n --cre8-typography-display-small-mobile-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-display-small-mobile-line-height: var(--cre8-line-heights-0);\n --cre8-typography-display-small-mobile-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-display-small-mobile-text-transform: var(--cre8-text-case-none);\n--cre8-typography-meta-default-font-family: var(--cre8-font-families-inter);\n --cre8-typography-meta-default-font-size: var(--cre8-font-size-2);\n --cre8-typography-meta-default-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-meta-default-line-height: var(--cre8-line-heights-3);\n --cre8-typography-meta-default-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-meta-default-text-transform: var(--cre8-text-case-uppercase);\n--cre8-typography-meta-default-sentence-case-font-family: var(--cre8-font-families-inter);\n --cre8-typography-meta-default-sentence-case-font-size: var(--cre8-font-size-2);\n --cre8-typography-meta-default-sentence-case-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-meta-default-sentence-case-line-height: var(--cre8-line-heights-11);\n --cre8-typography-meta-default-sentence-case-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-meta-default-sentence-case-text-transform: var(--cre8-text-case-none);\n--cre8-typography-meta-large-font-family: var(--cre8-font-families-inter);\n --cre8-typography-meta-large-font-size: var(--cre8-font-size-4);\n --cre8-typography-meta-large-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-meta-large-line-height: var(--cre8-line-heights-3);\n --cre8-typography-meta-large-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-meta-large-text-transform: var(--cre8-text-case-uppercase);\n--cre8-typography-meta-small-font-family: var(--cre8-font-families-inter);\n --cre8-typography-meta-small-font-size: var(--cre8-font-size-1);\n --cre8-typography-meta-small-font-weight: var(--cre8-font-weights-inter-2);\n --cre8-typography-meta-small-line-height: var(--cre8-line-heights-3);\n --cre8-typography-meta-small-text-decoration: var(--cre8-text-decoration-none);\n --cre8-typography-meta-small-text-transform: var(--cre8-text-case-uppercase);}\n`;\n\nexport default vivid;\n"]}
@@ -112,6 +112,7 @@ const CATEGORY_MAP = {
112
112
  'skeleton-loader': 'Feedback',
113
113
  'progress-meter': 'Feedback',
114
114
  'percent-bar': 'Feedback',
115
+ 'progress-steps': 'Feedback',
115
116
  'progress-steps-item': 'Feedback',
116
117
  'table': 'Data',
117
118
  'table-header': 'Data',
@@ -1 +1 @@
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 '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-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 '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.2.2",
2
+ "version": "2.3.1",
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.",
@@ -1643,6 +1643,26 @@
1643
1643
  "cssProperties": {},
1644
1644
  "examples": []
1645
1645
  },
1646
+ {
1647
+ "name": "cre8-progress-steps",
1648
+ "category": "Feedback",
1649
+ "description": "The Progress Steps component is used to display where a user is in a multistep process.\nIt clearly indicates the total number of steps, which steps are complete and incomplete,\nand which step you’re currently on. They help users estimate how long a task will take and can be\nused to track status on orders.\n\nThe Progress Steps component should be used as a parent component for `cre8-progress-steps-item` components.\nThese Components serve a contextual purpose and don't provide any functionality.\n\n# How to Use\n\nProgress Steps is used when there is ample horizontal space and two to six steps. It displays each step by name\nand number to help users understand exactly where they are in a process. It is the preferred option for desktop.\nProgress Steps should change to Compact Steps on mobile web to conserve space.\n\nProgress Steps can also be used to track order status. It provides a quick visual of how an order is progressing\nwith options to alert users of any problems along the way. When used for order status, Progress Steps should\nchange to Vertical Steps on mobile web to conserve space while allowing alerts and messages to remain visible.",
1650
+ "attributes": {
1651
+ "steps": {
1652
+ "type": "Cre8ProgressStepData[]",
1653
+ "description": "Steps for a data-driven progress indicator. Note that the visible label is\neach item's `name` prop rather than its content — `cre8-progress-steps-item`\ndoes not render children, which is easy to get wrong by hand."
1654
+ }
1655
+ },
1656
+ "properties": {},
1657
+ "slots": {
1658
+ "default": {
1659
+ "description": "The Progress Steps Item components that represent the steps in the multistep process."
1660
+ }
1661
+ },
1662
+ "events": {},
1663
+ "cssProperties": {},
1664
+ "examples": []
1665
+ },
1646
1666
  {
1647
1667
  "name": "cre8-progress-steps-item",
1648
1668
  "category": "Feedback",
@@ -3908,26 +3928,6 @@
3908
3928
  }
3909
3929
  ]
3910
3930
  },
3911
- {
3912
- "name": "cre8-progress-steps",
3913
- "category": "Other",
3914
- "description": "The Progress Steps component is used to display where a user is in a multistep process.\nIt clearly indicates the total number of steps, which steps are complete and incomplete,\nand which step you’re currently on. They help users estimate how long a task will take and can be\nused to track status on orders.\n\nThe Progress Steps component should be used as a parent component for `cre8-progress-steps-item` components.\nThese Components serve a contextual purpose and don't provide any functionality.\n\n# How to Use\n\nProgress Steps is used when there is ample horizontal space and two to six steps. It displays each step by name\nand number to help users understand exactly where they are in a process. It is the preferred option for desktop.\nProgress Steps should change to Compact Steps on mobile web to conserve space.\n\nProgress Steps can also be used to track order status. It provides a quick visual of how an order is progressing\nwith options to alert users of any problems along the way. When used for order status, Progress Steps should\nchange to Vertical Steps on mobile web to conserve space while allowing alerts and messages to remain visible.",
3915
- "attributes": {
3916
- "steps": {
3917
- "type": "Cre8ProgressStepData[]",
3918
- "description": "Steps for a data-driven progress indicator. Note that the visible label is\neach item's `name` prop rather than its content — `cre8-progress-steps-item`\ndoes not render children, which is easy to get wrong by hand."
3919
- }
3920
- },
3921
- "properties": {},
3922
- "slots": {
3923
- "default": {
3924
- "description": "The Progress Steps Item components that represent the steps in the multistep process."
3925
- }
3926
- },
3927
- "events": {},
3928
- "cssProperties": {},
3929
- "examples": []
3930
- },
3931
3931
  {
3932
3932
  "name": "cre8-heading",
3933
3933
  "category": "Typography",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tmorrow/cre8-wc",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
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": {
@@ -16,6 +16,7 @@
16
16
  "build:a2ui": "pnpm run build:a2ui:catalog && pnpm run build:a2ui:kg && pnpm run build:a2ui:compile",
17
17
  "build:a2ui:catalog": "node a2ui/generate-catalog.mjs",
18
18
  "build:a2ui:kg": "node a2ui/generate-catalog-kg.mjs",
19
+ "check:deploy-drift": "node a2ui/check-deploy-drift.mjs",
19
20
  "build:a2ui:compile": "tsc --module esnext --moduleResolution bundler --target es2022 --lib es2022,dom,dom.iterable --strict --skipLibCheck --declaration --outDir a2ui a2ui/types.ts a2ui/registry.ts a2ui/renderer.ts a2ui/index.ts a2ui/stream/types.ts a2ui/stream/pointer.ts a2ui/stream/model.ts a2ui/stream/renderer.ts a2ui/stream/diff.ts a2ui/stream/index.ts",
20
21
  "a2ui:demo": "python3 -m http.server 8765",
21
22
  "storybook:react": "pnpm run build:react && cd react-wrappers && npx storybook dev -p 9009",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.2.2",
2
+ "version": "2.3.1",
3
3
  "library": "@tmorrow/cre8-react",
4
4
  "componentPrefix": "Cre8",
5
5
  "description": "React wrappers for cre8 Web Components (@tmorrow/cre8-wc)",
@@ -1479,6 +1479,23 @@
1479
1479
  },
1480
1480
  "examples": []
1481
1481
  },
1482
+ {
1483
+ "name": "Cre8ProgressSteps",
1484
+ "tagName": "cre8-progress-steps",
1485
+ "category": "Feedback",
1486
+ "description": "The Progress Steps component is used to display where a user is in a multistep process.\nIt clearly indicates the total number of steps, which steps are complete and incomplete,\nand which step you’re currently on. They help users estimate how long a task will take and can be\nused to track status on orders.\n\nThe Progress Steps component should be used as a parent component for `cre8-progress-steps-item` components.\nThese Components serve a contextual purpose and don't provide any functionality.\n\n# How to Use\n\nProgress Steps is used when there is ample horizontal space and two to six steps. It displays each step by name\nand number to help users understand exactly where they are in a process. It is the preferred option for desktop.\nProgress Steps should change to Compact Steps on mobile web to conserve space.\n\nProgress Steps can also be used to track order status. It provides a quick visual of how an order is progressing\nwith options to alert users of any problems along the way. When used for order status, Progress Steps should\nchange to Vertical Steps on mobile web to conserve space while allowing alerts and messages to remain visible.",
1487
+ "props": {
1488
+ "steps": {
1489
+ "type": "Cre8ProgressStepData[]",
1490
+ "description": "Steps for a data-driven progress indicator. Note that the visible label is\neach item's `name` prop rather than its content — `cre8-progress-steps-item`\ndoes not render children, which is easy to get wrong by hand."
1491
+ },
1492
+ "children": {
1493
+ "type": "React.ReactNode",
1494
+ "description": "Slotted content."
1495
+ }
1496
+ },
1497
+ "examples": []
1498
+ },
1482
1499
  {
1483
1500
  "name": "Cre8ProgressStepsItem",
1484
1501
  "tagName": "cre8-progress-steps-item",
@@ -3484,23 +3501,6 @@
3484
3501
  }
3485
3502
  ]
3486
3503
  },
3487
- {
3488
- "name": "Cre8ProgressSteps",
3489
- "tagName": "cre8-progress-steps",
3490
- "category": "Other",
3491
- "description": "The Progress Steps component is used to display where a user is in a multistep process.\nIt clearly indicates the total number of steps, which steps are complete and incomplete,\nand which step you’re currently on. They help users estimate how long a task will take and can be\nused to track status on orders.\n\nThe Progress Steps component should be used as a parent component for `cre8-progress-steps-item` components.\nThese Components serve a contextual purpose and don't provide any functionality.\n\n# How to Use\n\nProgress Steps is used when there is ample horizontal space and two to six steps. It displays each step by name\nand number to help users understand exactly where they are in a process. It is the preferred option for desktop.\nProgress Steps should change to Compact Steps on mobile web to conserve space.\n\nProgress Steps can also be used to track order status. It provides a quick visual of how an order is progressing\nwith options to alert users of any problems along the way. When used for order status, Progress Steps should\nchange to Vertical Steps on mobile web to conserve space while allowing alerts and messages to remain visible.",
3492
- "props": {
3493
- "steps": {
3494
- "type": "Cre8ProgressStepData[]",
3495
- "description": "Steps for a data-driven progress indicator. Note that the visible label is\neach item's `name` prop rather than its content — `cre8-progress-steps-item`\ndoes not render children, which is easy to get wrong by hand."
3496
- },
3497
- "children": {
3498
- "type": "React.ReactNode",
3499
- "description": "Slotted content."
3500
- }
3501
- },
3502
- "examples": []
3503
- },
3504
3504
  {
3505
3505
  "name": "Cre8Heading",
3506
3506
  "tagName": "cre8-heading",
@@ -3731,7 +3731,7 @@
3731
3731
  },
3732
3732
  "dependencies": {
3733
3733
  "@lit/react": "^1.0.8",
3734
- "@tmorrow/cre8-wc": "^2.2.2",
3734
+ "@tmorrow/cre8-wc": "^2.3.1",
3735
3735
  "react": ">=18",
3736
3736
  "react-dom": ">=18"
3737
3737
  }
@@ -1 +0,0 @@
1
- import{A as r}from"./iframe-Cd639NOt.js";const m=o=>o??r;export{m as o};
@@ -1 +0,0 @@
1
- import{n as r}from"./cre8-element-DmRct7AK.js";function n(t){return r({...t,state:!0,attribute:!1})}export{n as r};