@tmorrow/cre8-wc 2.0.7 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/a2ui/catalog +5 -5
  2. package/a2ui/catalog-kg.json +156 -20
  3. package/a2ui/catalog.compact.json +2466 -0
  4. package/a2ui/catalog.json +1636 -139
  5. package/a2ui/catalog.svg +2445 -2445
  6. package/a2ui/check-layer-parity.mjs +277 -0
  7. package/a2ui/examples/compound-families.json +298 -0
  8. package/a2ui/examples/llm-observability.json +678 -650
  9. package/a2ui/generate-catalog.mjs +256 -5
  10. package/a2ui/inert-props.json +32 -0
  11. package/a2ui/registry.js +28 -0
  12. package/a2ui/registry.ts +31 -0
  13. package/a2ui/render-audit.mjs +294 -0
  14. package/a2ui/renderer.d.ts +2 -1
  15. package/a2ui/renderer.js +1 -1
  16. package/a2ui/renderer.ts +1 -1
  17. package/a2ui/smoke-test.mjs +39 -5
  18. package/a2ui/stream/diff-test.mjs +299 -0
  19. package/a2ui/stream/diff.d.ts +28 -0
  20. package/a2ui/stream/diff.js +130 -0
  21. package/a2ui/stream/diff.ts +145 -0
  22. package/a2ui/stream/index.d.ts +11 -0
  23. package/a2ui/stream/index.js +11 -0
  24. package/a2ui/stream/index.ts +43 -0
  25. package/a2ui/stream/model.d.ts +66 -0
  26. package/a2ui/stream/model.js +429 -0
  27. package/a2ui/stream/model.ts +472 -0
  28. package/a2ui/stream/pointer.d.ts +34 -0
  29. package/a2ui/stream/pointer.js +146 -0
  30. package/a2ui/stream/pointer.ts +147 -0
  31. package/a2ui/stream/renderer.d.ts +51 -0
  32. package/a2ui/stream/renderer.js +282 -0
  33. package/a2ui/stream/renderer.ts +291 -0
  34. package/a2ui/stream/stream-test.mjs +592 -0
  35. package/a2ui/stream/types.d.ts +173 -0
  36. package/a2ui/stream/types.js +17 -0
  37. package/a2ui/stream/types.ts +127 -0
  38. package/a2ui/types.d.ts +5 -0
  39. package/a2ui/types.ts +5 -0
  40. package/cdn/cre8-wc.esm.js +3527 -3226
  41. package/cdn/cre8-wc.esm.js.map +1 -1
  42. package/cdn/cre8-wc.min.js +289 -289
  43. package/cdn/cre8-wc.min.js.map +1 -1
  44. package/dist/assets/{Changelog-Documentation-BguNswiM.js → Changelog-Documentation-CeOetLxK.js} +1 -1
  45. package/dist/assets/{Code-Guidelines-BM3dZyzL.js → Code-Guidelines-BjdezAjj.js} +1 -1
  46. package/dist/assets/{Color-6AOWCN3U-C4AEGNk3.js → Color-6AOWCN3U-DPFGZitI.js} +1 -1
  47. package/dist/assets/{Contributing-Guidelines-DZURVehh.js → Contributing-Guidelines-B1M2V1hW.js} +1 -1
  48. package/dist/assets/{DocsRenderer-JROSPFPF-DeZmCI9u.js → DocsRenderer-JROSPFPF-BBy8KWNl.js} +1 -1
  49. package/dist/assets/{Tokens-Documentation-ZecGbtQg.js → Tokens-Documentation-CdTxFDLe.js} +1 -1
  50. package/dist/assets/{WithTooltip-7X4HQR7L-2Hfrkir-.js → WithTooltip-7X4HQR7L-DZzTNMQ7.js} +1 -1
  51. package/dist/assets/{accordion-item.stories-D-MjrX5G.js → accordion-item.stories-Bl26JlHp.js} +1 -9
  52. package/dist/assets/{accordion.stories-icgNa1dl.js → accordion.stories-DjoLApQw.js} +3 -11
  53. package/dist/assets/{alert.stories-BzDaXtj-.js → alert.stories-pO1y3YCQ.js} +15 -31
  54. package/dist/assets/{badge-C5wOWgyg.js → badge-BTxW3bN2.js} +3 -11
  55. package/dist/assets/{badge.stories-5GfB4jVI.js → badge.stories-vqh63RJ2.js} +1 -1
  56. package/dist/assets/{band.stories-DhXaP_kL.js → band.stories-CjKRppSb.js} +1 -9
  57. package/dist/assets/{blocks-DhUVut8Z.js → blocks-1be_-L6v.js} +5 -5
  58. package/dist/assets/{breadcrumbs.stories-CrPUBVk1.js → breadcrumbs.stories-Doyfy3V9.js} +2 -18
  59. package/dist/assets/{button-CJL8yzAT.js → button-CgaWukz0.js} +1 -9
  60. package/dist/assets/{button-group-BgwgtSFC.js → button-group-G7qN4MwM.js} +1 -9
  61. package/dist/assets/{button-group.stories-W-07gO63.js → button-group.stories-cL3Kay6M.js} +1 -1
  62. package/dist/assets/{button.stories-BPzJ-sCv.js → button.stories-C9HSpxWb.js} +6 -6
  63. package/dist/assets/{card.stories-mlFGY2Xn.js → card.stories-BbU8YymD.js} +3 -11
  64. package/dist/assets/{chart.stories-C8yuHHeK.js → chart.stories-BL4FxIA_.js} +1 -1
  65. package/dist/assets/{checkbox-field-item-iHcdmTNw.js → checkbox-field-item-DIMHcWM0.js} +1 -9
  66. package/dist/assets/{checkbox-field-item.stories-D1aVLDXn.js → checkbox-field-item.stories-XbB4x_lO.js} +1 -1
  67. package/dist/assets/{checkbox-field.stories-BoVB2jCx.js → checkbox-field.stories-YnqFUI4K.js} +2 -10
  68. package/dist/assets/{cre8-element-DfmMtHJO.js → cre8-element-B35i4Lyg.js} +1 -1
  69. package/dist/assets/{cre8-form-element-bQpK8UYN.js → cre8-form-element-Cfc5VeYV.js} +1 -1
  70. package/dist/assets/{danger-button.stories-Cb4ljnhQ.js → danger-button.stories-xh25hmfd.js} +1 -9
  71. package/dist/assets/{date-picker.stories-Cje3qk8D.js → date-picker.stories-DD_ctzEF.js} +1 -49
  72. package/dist/assets/{divider-B_PXBGWD.js → divider-xZ2KARHf.js} +2 -10
  73. package/dist/assets/{divider.stories-CtfeBqVV.js → divider.stories-Bk9oF-OV.js} +1 -1
  74. package/dist/assets/{dropdown-Cgwne34I.js → dropdown-BEP5x3CW.js} +6 -22
  75. package/dist/assets/{dropdown-item.stories-pXkDLRuv.js → dropdown-item.stories-Iaw_UrEP.js} +1 -1
  76. package/dist/assets/{dropdown.stories-DZnmHieY.js → dropdown.stories-B0OlKD7h.js} +1 -1
  77. package/dist/assets/{example-drug-card.stories-DTzLXTFx.js → example-drug-card.stories-Bp5JIeE_.js} +1 -1
  78. package/dist/assets/{f-po-C2WpbOFJ.js → f-po-BdPzDRD-.js} +1 -1
  79. package/dist/assets/{feature.stories-DffXdJch.js → feature.stories-DYE1Js70.js} +1 -9
  80. package/dist/assets/{field-DzYRqQb2.js → field-BpUYyRW1.js} +1 -9
  81. package/dist/assets/{field-note-DKXZiXLU.js → field-note-fccBckVl.js} +3 -11
  82. package/dist/assets/{field-note.stories-DS_0bQul.js → field-note.stories-BH9AZMbF.js} +1 -1
  83. package/dist/assets/{field.stories-BvXn0oG6.js → field.stories-BQPtmziK.js} +1 -1
  84. package/dist/assets/{footer.stories-C3ZibisU.js → footer.stories-DCWEciqD.js} +1 -9
  85. package/dist/assets/{form-example.stories-C-TuOeF2.js → form-example.stories-9IDC0AgX.js} +1 -1
  86. package/dist/assets/{formatter-L2YTDE3Q-CJVnxOUW.js → formatter-L2YTDE3Q-B9u1AOWn.js} +1 -1
  87. package/dist/assets/{global-nav-item-xQL7wVjY.js → global-nav-item-T4htN-yO.js} +6 -14
  88. package/dist/assets/{global-nav-item.stories-Dp9TE3aR.js → global-nav-item.stories-2dWRfCXv.js} +1 -1
  89. package/dist/assets/{global-nav.stories-B5Nk8JZ0.js → global-nav.stories-Fh1gScqg.js} +2 -10
  90. package/dist/assets/{grid-DYgnZBsd.js → grid-C5CKMXNe.js} +3 -19
  91. package/dist/assets/{grid.stories-BFiXTq2C.js → grid.stories-BLmCNdeA.js} +1 -1
  92. package/dist/assets/{header.stories-D1f7xhjV.js → header.stories-BkDrjJtj.js} +1 -9
  93. package/dist/assets/{heading-485Jz7JZ.js → heading-Dbka33DK.js} +2 -10
  94. package/dist/assets/{heading.stories-gPF_SmTc.js → heading.stories-Be40_bmG.js} +1 -1
  95. package/dist/assets/{hero.stories-BHlFNdvF.js → hero.stories-vRu7PZG9.js} +1 -9
  96. package/dist/assets/{icon-DeTLDzTS.js → icon-ChfRWXWy.js} +2 -10
  97. package/dist/assets/{icon-description-o-YaiEjK.js → icon-description-BBSwDykJ.js} +1 -1
  98. package/dist/assets/{icon-description.stories-BdPRvEwe.js → icon-description.stories-Cg6ekOme.js} +1 -1
  99. package/dist/assets/{icon.stories-BxWpqxT5.js → icon.stories-Cj4U7L5G.js} +1 -1
  100. package/dist/assets/if-defined-Bxnzk64Q.js +1 -0
  101. package/dist/assets/{iframe-dHvya7sk.js → iframe-BNJP6ovU.js} +35 -35
  102. package/dist/assets/{inline-alert.stories-FH0bQ0jh.js → inline-alert.stories-CygBYI02.js} +1 -9
  103. package/dist/assets/{layout-container.stories-D6Z6Kx78.js → layout-container.stories-TMyIJteJ.js} +2 -10
  104. package/dist/assets/{layout.stories-CNYuwC_r.js → layout.stories-ylRM-ANL.js} +7 -23
  105. package/dist/assets/{linelength-container.stories-pCRXZvxS.js → linelength-container.stories-Br2v8jXE.js} +1 -9
  106. package/dist/assets/{link-BpCiLxNW.js → link-CRE0Eqdo.js} +1 -9
  107. package/dist/assets/{link-list.stories-12vsAa1P.js → link-list.stories--y-urrVo.js} +7 -23
  108. package/dist/assets/{link.stories-DAoQtY4_.js → link.stories-C3WQOgkY.js} +2 -2
  109. package/dist/assets/{list.stories-D0N3yBIf.js → list.stories-Bd2bxkxn.js} +7 -23
  110. package/dist/assets/{loading-spinner-g6iJajXH.js → loading-spinner-C52KNq6y.js} +4 -12
  111. package/dist/assets/{loading-spinner.stories-B6_mgPxB.js → loading-spinner.stories-DPRGEeHT.js} +1 -1
  112. package/dist/assets/{logo.stories-BvMwN2qg.js → logo.stories-2LBqqraT.js} +1 -9
  113. package/dist/assets/{main.stories-pL4zefbs.js → main.stories-BQzD7iWD.js} +2 -10
  114. package/dist/assets/{medication-card.stories-DK1XGJic.js → medication-card.stories-Wc-hA0-s.js} +5 -5
  115. package/dist/assets/{medication-form.stories-Bj5dLp5S.js → medication-form.stories-DfFOCDaU.js} +1 -1
  116. package/dist/assets/{modal-CO0M4e_8.js → modal-CCfbY4fF.js} +1 -9
  117. package/dist/assets/{modal-BNu8xy08.js → modal-GglWRNJp.js} +1 -1
  118. package/dist/assets/{modal.stories-CHYBrq_E.js → modal.stories-CpybCs79.js} +1 -1
  119. package/dist/assets/{multi-select.stories-C9XXsWio.js → multi-select.stories-BhzEKRui.js} +1 -9
  120. package/dist/assets/{nav-container.stories-DU9fhvDu.js → nav-container.stories-Be1YlegP.js} +3 -11
  121. package/dist/assets/{page-header.stories-BrstKiEY.js → page-header.stories-BOVLQ0YF.js} +1 -9
  122. package/dist/assets/{pagination.stories-Bw2M2iOn.js → pagination.stories-D62sa_1K.js} +9 -25
  123. package/dist/assets/{percent-bar.stories-UQRXYUqd.js → percent-bar.stories-CYi4El7T.js} +1 -9
  124. package/dist/assets/{popover.stories-ZkwrRFpR.js → popover.stories-B9O8F4yv.js} +1 -9
  125. package/dist/assets/{primary-nav.stories-wqOKwgQn.js → primary-nav.stories-Bt-o7h45.js} +1 -17
  126. package/dist/assets/{progress-meter-TzASasu0.js → progress-meter-Dit59091.js} +1 -9
  127. package/dist/assets/{progress-meter.stories-qfJALZf8.js → progress-meter.stories-CYnOCmjo.js} +1 -1
  128. package/dist/assets/{progress-steps-item-KvW1d_7L.js → progress-steps-item-CWJsad0s.js} +1 -9
  129. package/dist/assets/{progress-steps-item.stories-uOn6tJ1W.js → progress-steps-item.stories-ePn_6bPn.js} +1 -1
  130. package/dist/assets/{progress-steps.stories-CKFPx8D0.js → progress-steps.stories-CblrEcXF.js} +1 -9
  131. package/dist/assets/{radio-field-item-CTaR50XR.js → radio-field-item-Bm-0RWPe.js} +5 -21
  132. package/dist/assets/{radio-field-item.stories-DQSLj8W1.js → radio-field-item.stories-y_TrTRIW.js} +1 -1
  133. package/dist/assets/{radio-field.stories-Btmc_Iep.js → radio-field.stories-CSWrbUrn.js} +1 -1
  134. package/dist/assets/{remove-tag-BSEZ7VT8.js → remove-tag-lCr57c5r.js} +1 -9
  135. package/dist/assets/{remove-tag.stories-diRKi7Ua.js → remove-tag.stories-CDfwCdvZ.js} +1 -1
  136. package/dist/assets/{request-prescription.stories-DQvra7ia.js → request-prescription.stories-O4zqokfb.js} +1 -1
  137. package/dist/assets/{sample-modal.stories-deE1EBfZ.js → sample-modal.stories-BZ4N2R2Z.js} +1 -1
  138. package/dist/assets/{section.stories-DF4mcy2O.js → section.stories-D_1InThX.js} +1 -9
  139. package/dist/assets/{select-tile-D-C8oSrm.js → select-tile-BqqB3ZtE.js} +2 -10
  140. package/dist/assets/{select-tile-list.stories-vsBQUIcl.js → select-tile-list.stories-Di4ILgV8.js} +1 -9
  141. package/dist/assets/{select-tile.stories-CqHzN5fc.js → select-tile.stories-D3h_6zlV.js} +6 -6
  142. package/dist/assets/{select.stories-8aOGxTtr.js → select.stories-BB2phP9A.js} +1 -9
  143. package/dist/assets/{skeleton-loader.stories-CwR2-aC5.js → skeleton-loader.stories-y4uml_kV.js} +5 -13
  144. package/dist/assets/{split-button.stories-CyfdrK4u.js → split-button.stories-C_82I4ME.js} +2 -10
  145. package/dist/assets/{spread-BPiNgQQF.js → spread-CnPic3C2.js} +1 -1
  146. package/dist/assets/state-DkQhleoO.js +1 -0
  147. package/dist/assets/{submenu.stories-CDhNzZzh.js → submenu.stories-UDtaREr1.js} +2 -18
  148. package/dist/assets/{syntaxhighlighter-T5IQBZDB-BzI6WxUR.js → syntaxhighlighter-T5IQBZDB-D-I_s_yD.js} +1 -1
  149. package/dist/assets/{table-header-CfcchoYz.js → table-header-2837i43H.js} +3 -51
  150. package/dist/assets/{table-object.stories-Bd5qdfMU.js → table-object.stories-D4KoI-wA.js} +1 -9
  151. package/dist/assets/{table.stories-DxuBe9dJ.js → table.stories-DUJDibEp.js} +1 -1
  152. package/dist/assets/{tabs.stories-Cpc3OHJx.js → tabs.stories-C06SngOF.js} +5 -29
  153. package/dist/assets/{tag-list.stories-BmyCmrTF.js → tag-list.stories-Du-IoYzu.js} +2 -10
  154. package/dist/assets/{tag-vQFuZneb.js → tag-oHGdclJl.js} +1 -9
  155. package/dist/assets/{tag.stories-DGzrNUbb.js → tag.stories-C5D5IbuK.js} +1 -1
  156. package/dist/assets/{tertiary-nav.stories-D4q5K-am.js → tertiary-nav.stories-B1GU8Zi4.js} +3 -19
  157. package/dist/assets/{text-link-4qLRIeJB.js → text-link-B3m3KEqY.js} +1 -9
  158. package/dist/assets/{text-link.stories-D6BRm2I5.js → text-link.stories-4O6qn82H.js} +1 -1
  159. package/dist/assets/{text-passage-DGaI5i2I.js → text-passage-xQVosjOr.js} +3 -19
  160. package/dist/assets/{text-passage.stories-DkmXVUhH.js → text-passage.stories-Da1nspwG.js} +1 -1
  161. package/dist/assets/{tooltip.stories-B7ADDq7o.js → tooltip.stories-DLKyyeKn.js} +6 -14
  162. package/dist/assets/{utility-nav.stories-ffXVvyLp.js → utility-nav.stories-B6xBFe7z.js} +5 -21
  163. package/dist/design-tokens/brands/cre8/css/tokens_brand.css +1 -1
  164. package/dist/design-tokens/core/scss/theming/component.css +1 -1
  165. package/dist/design-tokens/core/scss/theming/variables.css +1 -7
  166. package/dist/design-tokens/core/scss/theming/variables.scss +0 -11
  167. package/dist/icons/cre8-icons.svg +1 -1
  168. package/dist/iframe.html +1 -24
  169. package/dist/index.html +25 -77
  170. package/dist/project.json +1 -1
  171. package/lib/a2ui/registry.d.ts.map +1 -1
  172. package/lib/a2ui/registry.js +28 -0
  173. package/lib/a2ui/registry.js.map +1 -1
  174. package/lib/a2ui/renderer.d.ts +2 -1
  175. package/lib/a2ui/renderer.d.ts.map +1 -1
  176. package/lib/a2ui/renderer.js +1 -1
  177. package/lib/a2ui/renderer.js.map +1 -1
  178. package/lib/a2ui/stream/diff.d.ts +29 -0
  179. package/lib/a2ui/stream/diff.d.ts.map +1 -0
  180. package/lib/a2ui/stream/diff.js +131 -0
  181. package/lib/a2ui/stream/diff.js.map +1 -0
  182. package/lib/a2ui/stream/index.d.ts +12 -0
  183. package/lib/a2ui/stream/index.d.ts.map +1 -0
  184. package/lib/a2ui/stream/index.js +12 -0
  185. package/lib/a2ui/stream/index.js.map +1 -0
  186. package/lib/a2ui/stream/model.d.ts +67 -0
  187. package/lib/a2ui/stream/model.d.ts.map +1 -0
  188. package/lib/a2ui/stream/model.js +423 -0
  189. package/lib/a2ui/stream/model.js.map +1 -0
  190. package/lib/a2ui/stream/pointer.d.ts +35 -0
  191. package/lib/a2ui/stream/pointer.d.ts.map +1 -0
  192. package/lib/a2ui/stream/pointer.js +147 -0
  193. package/lib/a2ui/stream/pointer.js.map +1 -0
  194. package/lib/a2ui/stream/renderer.d.ts +52 -0
  195. package/lib/a2ui/stream/renderer.d.ts.map +1 -0
  196. package/lib/a2ui/stream/renderer.js +279 -0
  197. package/lib/a2ui/stream/renderer.js.map +1 -0
  198. package/lib/a2ui/stream/types.d.ts +174 -0
  199. package/lib/a2ui/stream/types.d.ts.map +1 -0
  200. package/lib/a2ui/stream/types.js +18 -0
  201. package/lib/a2ui/stream/types.js.map +1 -0
  202. package/lib/a2ui/types.d.ts +5 -0
  203. package/lib/a2ui/types.d.ts.map +1 -1
  204. package/lib/a2ui/types.js.map +1 -1
  205. package/lib/components/accordion/accordion.d.ts +15 -0
  206. package/lib/components/accordion/accordion.d.ts.map +1 -1
  207. package/lib/components/accordion/accordion.js +23 -0
  208. package/lib/components/accordion/accordion.js.map +1 -1
  209. package/lib/components/badge/badge.d.ts +4 -17
  210. package/lib/components/badge/badge.d.ts.map +1 -1
  211. package/lib/components/badge/badge.js +0 -15
  212. package/lib/components/badge/badge.js.map +1 -1
  213. package/lib/components/breadcrumbs/breadcrumbs.d.ts +14 -0
  214. package/lib/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  215. package/lib/components/breadcrumbs/breadcrumbs.js +21 -0
  216. package/lib/components/breadcrumbs/breadcrumbs.js.map +1 -1
  217. package/lib/components/chart/chart.d.ts +3 -3
  218. package/lib/components/chart/chart.js +6 -6
  219. package/lib/components/chart/chart.js.map +1 -1
  220. package/lib/components/checkbox-field/checkbox-field.d.ts +19 -0
  221. package/lib/components/checkbox-field/checkbox-field.d.ts.map +1 -1
  222. package/lib/components/checkbox-field/checkbox-field.js +28 -0
  223. package/lib/components/checkbox-field/checkbox-field.js.map +1 -1
  224. package/lib/components/cre8-element.d.ts +19 -0
  225. package/lib/components/cre8-element.d.ts.map +1 -1
  226. package/lib/components/cre8-element.js +51 -2
  227. package/lib/components/cre8-element.js.map +1 -1
  228. package/lib/components/divider/divider.d.ts +1 -1
  229. package/lib/components/divider/divider.d.ts.map +1 -1
  230. package/lib/components/divider/divider.js.map +1 -1
  231. package/lib/components/dropdown/dropdown.d.ts +13 -0
  232. package/lib/components/dropdown/dropdown.d.ts.map +1 -1
  233. package/lib/components/dropdown/dropdown.js +19 -0
  234. package/lib/components/dropdown/dropdown.js.map +1 -1
  235. package/lib/components/dropdown-item/dropdown-item.d.ts +1 -1
  236. package/lib/components/dropdown-item/dropdown-item.js +2 -2
  237. package/lib/components/dropdown-item/dropdown-item.js.map +1 -1
  238. package/lib/components/heading/heading.d.ts +3 -5
  239. package/lib/components/heading/heading.d.ts.map +1 -1
  240. package/lib/components/heading/heading.js +2 -4
  241. package/lib/components/heading/heading.js.map +1 -1
  242. package/lib/components/link-list/link-list.d.ts +19 -0
  243. package/lib/components/link-list/link-list.d.ts.map +1 -1
  244. package/lib/components/link-list/link-list.js +19 -0
  245. package/lib/components/link-list/link-list.js.map +1 -1
  246. package/lib/components/list/list.d.ts +13 -0
  247. package/lib/components/list/list.d.ts.map +1 -1
  248. package/lib/components/list/list.js +15 -0
  249. package/lib/components/list/list.js.map +1 -1
  250. package/lib/components/modal/modal.d.ts +2 -2
  251. package/lib/components/modal/modal.js +2 -2
  252. package/lib/components/modal/modal.js.map +1 -1
  253. package/lib/components/multi-select/multi-select.d.ts +2 -2
  254. package/lib/components/multi-select/multi-select.js +5 -5
  255. package/lib/components/multi-select/multi-select.js.map +1 -1
  256. package/lib/components/pagination/pagination.d.ts +1 -1
  257. package/lib/components/pagination/pagination.js +2 -2
  258. package/lib/components/pagination/pagination.js.map +1 -1
  259. package/lib/components/percent-bar/percent-bar.d.ts +2 -0
  260. package/lib/components/percent-bar/percent-bar.d.ts.map +1 -1
  261. package/lib/components/percent-bar/percent-bar.js +3 -1
  262. package/lib/components/percent-bar/percent-bar.js.map +1 -1
  263. package/lib/components/popover/popover.d.ts +6 -7
  264. package/lib/components/popover/popover.d.ts.map +1 -1
  265. package/lib/components/popover/popover.js +4 -4
  266. package/lib/components/popover/popover.js.map +1 -1
  267. package/lib/components/progress-meter/progress-meter.d.ts +0 -8
  268. package/lib/components/progress-meter/progress-meter.d.ts.map +1 -1
  269. package/lib/components/progress-meter/progress-meter.js +0 -7
  270. package/lib/components/progress-meter/progress-meter.js.map +1 -1
  271. package/lib/components/progress-steps/progress-steps.d.ts +16 -0
  272. package/lib/components/progress-steps/progress-steps.d.ts.map +1 -1
  273. package/lib/components/progress-steps/progress-steps.js +25 -0
  274. package/lib/components/progress-steps/progress-steps.js.map +1 -1
  275. package/lib/components/progress-steps-item/progress-steps-item.d.ts +1 -3
  276. package/lib/components/progress-steps-item/progress-steps-item.d.ts.map +1 -1
  277. package/lib/components/progress-steps-item/progress-steps-item.js +0 -1
  278. package/lib/components/progress-steps-item/progress-steps-item.js.map +1 -1
  279. package/lib/components/radio-field/radio-field.d.ts +33 -0
  280. package/lib/components/radio-field/radio-field.d.ts.map +1 -1
  281. package/lib/components/radio-field/radio-field.js +62 -0
  282. package/lib/components/radio-field/radio-field.js.map +1 -1
  283. package/lib/components/remove-tag/remove-tag.d.ts +1 -1
  284. package/lib/components/remove-tag/remove-tag.js +3 -3
  285. package/lib/components/remove-tag/remove-tag.js.map +1 -1
  286. package/lib/components/split-button/split-button.d.ts +3 -0
  287. package/lib/components/split-button/split-button.d.ts.map +1 -1
  288. package/lib/components/split-button/split-button.js +5 -2
  289. package/lib/components/split-button/split-button.js.map +1 -1
  290. package/lib/components/tab/tab.d.ts +1 -1
  291. package/lib/components/tab/tab.js +3 -3
  292. package/lib/components/tab/tab.js.map +1 -1
  293. package/lib/components/table/table.d.ts +36 -0
  294. package/lib/components/table/table.d.ts.map +1 -1
  295. package/lib/components/table/table.js +55 -0
  296. package/lib/components/table/table.js.map +1 -1
  297. package/lib/components/tabs/tabs.d.ts +20 -3
  298. package/lib/components/tabs/tabs.d.ts.map +1 -1
  299. package/lib/components/tabs/tabs.js +33 -5
  300. package/lib/components/tabs/tabs.js.map +1 -1
  301. package/lib/components/tag-list/tag-list.d.ts +17 -0
  302. package/lib/components/tag-list/tag-list.d.ts.map +1 -1
  303. package/lib/components/tag-list/tag-list.js +25 -0
  304. package/lib/components/tag-list/tag-list.js.map +1 -1
  305. package/lib/components/tooltip/tooltip.d.ts +2 -2
  306. package/lib/components/tooltip/tooltip.js +4 -4
  307. package/lib/components/tooltip/tooltip.js.map +1 -1
  308. package/lib/components/utils/light-children.d.ts +40 -0
  309. package/lib/components/utils/light-children.d.ts.map +1 -0
  310. package/lib/components/utils/light-children.js +100 -0
  311. package/lib/components/utils/light-children.js.map +1 -0
  312. package/lib/directives/if-truthy.d.ts +1 -1
  313. package/lib/light-children-TlEXev5S.js +39 -0
  314. package/lib/scripts/generate-mcp-manifest.js +38 -0
  315. package/lib/scripts/generate-mcp-manifest.js.map +1 -1
  316. package/lib/scripts/generate-react-wrappers.d.ts +8 -1
  317. package/lib/scripts/generate-react-wrappers.d.ts.map +1 -1
  318. package/lib/scripts/generate-react-wrappers.js +45 -1
  319. package/lib/scripts/generate-react-wrappers.js.map +1 -1
  320. package/mcp-manifest.json +169 -52
  321. package/package.json +14 -5
  322. package/react-manifest.json +153 -47
  323. package/dist/assets/if-defined-HKKhGupN.js +0 -1
  324. package/dist/assets/iframe-CWwoGI65.css +0 -1
  325. package/dist/assets/state-CfuknrX8.js +0 -1
  326. package/dist/fonts/PlusJakartaSans-Bold.woff2 +0 -0
  327. package/dist/fonts/PlusJakartaSans-Medium.woff2 +0 -0
  328. package/dist/fonts/PlusJakartaSans-Regular.woff2 +0 -0
  329. package/dist/fonts/PlusJakartaSans-SemiBold.woff2 +0 -0
  330. package/dist/logo.svg +0 -1
  331. package/dist/sb-addons/storybook-4/manager-bundle.js +0 -8
  332. /package/dist/icons/{express-scripts copy.svg → pharmacy copy.svg} +0 -0
  333. /package/dist/icons/{express-scripts.svg → pharmacy.svg} +0 -0
package/mcp-manifest.json CHANGED
@@ -1,9 +1,16 @@
1
1
  {
2
- "version": "2.0.7",
2
+ "version": "2.1.0",
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.",
6
6
  "framework": "Lit 3.3.1",
7
+ "internalElements": [
8
+ "cre8-calendar",
9
+ "cre8-calendar-month-modal",
10
+ "cre8-calendar-navigation",
11
+ "cre8-calendar-year-modal",
12
+ "cre8-page-counter"
13
+ ],
7
14
  "components": [
8
15
  {
9
16
  "name": "cre8-button",
@@ -387,11 +394,13 @@
387
394
  }
388
395
  },
389
396
  "events": {
390
- "text-click": {
391
- "detail": {}
397
+ "split-button-text-click": {
398
+ "detail": {},
399
+ "description": "Fires when the main text button is clicked."
392
400
  },
393
- "dropdown-click": {
394
- "detail": {}
401
+ "split-button-dropdown-click": {
402
+ "detail": {},
403
+ "description": "Fires when the dropdown toggle is clicked."
395
404
  }
396
405
  },
397
406
  "cssProperties": {},
@@ -479,15 +488,15 @@
479
488
  },
480
489
  "slots": {},
481
490
  "events": {
482
- "cre8-chart-click": {
491
+ "chart-click": {
483
492
  "detail": {},
484
493
  "description": "Fired when a chart element is clicked"
485
494
  },
486
- "cre8-chart-hover": {
495
+ "chart-hover": {
487
496
  "detail": {},
488
497
  "description": "Fired when hovering over chart elements"
489
498
  },
490
- "cre8-chart-ready": {
499
+ "chart-ready": {
491
500
  "detail": {},
492
501
  "description": "Fired when the chart is initialized"
493
502
  }
@@ -511,6 +520,10 @@
511
520
  "padded"
512
521
  ],
513
522
  "description": "Spacing variants\n<cre8-text-passage size=\"sm\">\n<ul>\n<li>**padded** applies more padding in between list items compared to the default</li>\n<li>**condensed** reduces padding in between list items compared to the default</li>\n</ul>\n</cre8-text-passage>"
523
+ },
524
+ "items": {
525
+ "type": "Cre8ListItemData[]",
526
+ "description": "Items for a data-driven list. Set this and the list builds its own\n`cre8-list-item` children in the light DOM — the same composition you would\nwrite by hand. Leave it unset to compose the list yourself."
514
527
  }
515
528
  },
516
529
  "properties": {},
@@ -565,7 +578,7 @@
565
578
  "properties": {},
566
579
  "slots": {},
567
580
  "events": {
568
- "removeTagClicked": {
581
+ "remove-tag-click": {
569
582
  "detail": {},
570
583
  "description": "Fires when the remove tag is clicked."
571
584
  }
@@ -583,6 +596,14 @@
583
596
  "category": "Data",
584
597
  "description": "Table component.",
585
598
  "attributes": {
599
+ "columns": {
600
+ "type": "Cre8TableColumn[]",
601
+ "description": "Columns for a data-driven table. Set this with `rows` and the table builds\nits own header, body, rows and cells — the same composition you would write\nby hand, generated into the light DOM, so nothing about styling or\nbehaviour changes.\n\nLeave both unset to compose the table yourself with `cre8-table-header`,\n`cre8-table-body` and friends. Do not do both on one table."
602
+ },
603
+ "rows": {
604
+ "type": "Cre8TableRowData[]",
605
+ "description": "Rows for a data-driven table. Each row is either an object keyed by the\ncolumns' `key`, or an array of values positioned to match `columns`."
606
+ },
586
607
  "caption": {
587
608
  "type": "string",
588
609
  "description": "Specifies the caption/title of the table, visible to all users.\nIncreases accessibility of table."
@@ -855,6 +876,10 @@
855
876
  "label": {
856
877
  "type": "string",
857
878
  "description": "Tag list legend label"
879
+ },
880
+ "tags": {
881
+ "type": "Cre8TagData[]",
882
+ "description": "Tags for a data-driven tag list. Set this and the list builds its own\n`cre8-tag` children in the light DOM. Leave it unset to compose them\nyourself."
858
883
  }
859
884
  },
860
885
  "properties": {
@@ -876,7 +901,12 @@
876
901
  "name": "cre8-accordion",
877
902
  "category": "Disclosure",
878
903
  "description": "The component is a vertically stacked list of headers that reveal or hide sections of related content on a page.\nThe header title gives the user a high level overview of the content allowing the user to decide\nwhich sections to expand for the information.\n\nAccordion contains Accordion Items as children. This component is the wrapper for grouping related accordion items.\n\nUsers can select different border types: default (no border), rectangle, rounded bottom, and rounded.",
879
- "attributes": {},
904
+ "attributes": {
905
+ "items": {
906
+ "type": "Cre8AccordionItemData[]",
907
+ "description": "Panels for a data-driven accordion. Each becomes a `cre8-accordion-item`\nwith its heading as a prop and its content in the default slot."
908
+ }
909
+ },
880
910
  "properties": {
881
911
  "borderType": {
882
912
  "type": "string",
@@ -974,7 +1004,12 @@
974
1004
  "name": "cre8-dropdown",
975
1005
  "category": "Disclosure",
976
1006
  "description": "The Dropdown menu itself is a container that can host multiple interactive items, commonly formatted as a list",
977
- "attributes": {},
1007
+ "attributes": {
1008
+ "items": {
1009
+ "type": "Cre8DropdownItemData[]",
1010
+ "description": "Items for a data-driven dropdown. Set this and the dropdown builds its own\n`cre8-dropdown-item` children in the light DOM."
1011
+ }
1012
+ },
978
1013
  "properties": {
979
1014
  "buttonText": {
980
1015
  "type": "string",
@@ -1022,7 +1057,7 @@
1022
1057
  }
1023
1058
  },
1024
1059
  "events": {
1025
- "dropdown-item-selected": {
1060
+ "dropdown-item-select": {
1026
1061
  "detail": {},
1027
1062
  "description": "Fires when the item is clicked. `event.detail.originalEvent` holds the source `MouseEvent`."
1028
1063
  }
@@ -1091,7 +1126,7 @@
1091
1126
  }
1092
1127
  },
1093
1128
  "events": {
1094
- "close-modal": {
1129
+ "modal-close": {
1095
1130
  "detail": {},
1096
1131
  "description": "Fires when the modal is dismissed via the close button, overlay click, or Escape key."
1097
1132
  }
@@ -1110,7 +1145,12 @@
1110
1145
  },
1111
1146
  "position": {
1112
1147
  "type": "string",
1113
- "description": "Positions the popover panel absolutely to the trigger\n- **default** positions the popover panel below the trigger\n- **top** positions the popover panel below the trigger\n- **left** positions the popover panel below the trigger\n- **right** positions the popover panel below the trigger"
1148
+ "values": [
1149
+ "top",
1150
+ "left",
1151
+ "right"
1152
+ ],
1153
+ "description": "Positions the popover panel absolutely to the trigger\n- Omitting this prop positions the popover panel below the trigger\n- **top** positions the popover panel above the trigger\n- **left** positions the popover panel to the left of the trigger\n- **right** positions the popover panel to the right of the trigger"
1114
1154
  }
1115
1155
  },
1116
1156
  "properties": {
@@ -1162,11 +1202,11 @@
1162
1202
  }
1163
1203
  },
1164
1204
  "events": {
1165
- "open": {
1205
+ "popover-open": {
1166
1206
  "detail": {},
1167
1207
  "description": "Fires when the popover opens. `event.detail.isActive` is `true`."
1168
1208
  },
1169
- "close": {
1209
+ "popover-close": {
1170
1210
  "detail": {},
1171
1211
  "description": "Fires when the popover closes. `event.detail.isActive` is `false`."
1172
1212
  }
@@ -1277,11 +1317,11 @@
1277
1317
  }
1278
1318
  },
1279
1319
  "events": {
1280
- "open": {
1320
+ "tooltip-open": {
1281
1321
  "detail": {},
1282
1322
  "description": "Fires when the tooltip is shown. `event.detail.isActive` is `true`."
1283
1323
  },
1284
- "close": {
1324
+ "tooltip-close": {
1285
1325
  "detail": {},
1286
1326
  "description": "Fires when the tooltip is hidden. `event.detail.isActive` is `false`."
1287
1327
  }
@@ -1384,11 +1424,22 @@
1384
1424
  },
1385
1425
  "status": {
1386
1426
  "type": "string",
1387
- "description": "Status (a color variant prop)\n- **neutral** (default) renders a badge with a neutral state treatment\n- **success** renders a badge with success state treatment\n- **warning** renders a badge with warning state treatment\n- **error** renders a badge with error state treatment\n- **info** renders a badge with information state treatment\n- **attention** renders a badge with attention state treatment"
1427
+ "values": [
1428
+ "error",
1429
+ "info",
1430
+ "warning",
1431
+ "success",
1432
+ "attention"
1433
+ ],
1434
+ "description": "Status (a color variant prop)\n- Omitting this prop renders a badge with the neutral state treatment\n- **success** renders a badge with success state treatment\n- **warning** renders a badge with warning state treatment\n- **error** renders a badge with error state treatment\n- **info** renders a badge with information state treatment\n- **attention** renders a badge with attention state treatment"
1388
1435
  },
1389
1436
  "variant": {
1390
1437
  "type": "string",
1391
- "description": "Background Style Variant\n\n- **dark|undefined** (default) renders a badge with a dark background\n- **light** renders a badge with a light background\n- **white** renders a badge with a white background"
1438
+ "values": [
1439
+ "light",
1440
+ "white"
1441
+ ],
1442
+ "description": "Background Style Variant\n\n- Omitting this prop renders a badge with a dark background\n- **light** renders a badge with a light background\n- **white** renders a badge with a white background"
1392
1443
  },
1393
1444
  "svg": {
1394
1445
  "type": "string",
@@ -1399,7 +1450,12 @@
1399
1450
  "slots": {},
1400
1451
  "events": {},
1401
1452
  "cssProperties": {},
1402
- "examples": []
1453
+ "examples": [
1454
+ {
1455
+ "description": "Light badge",
1456
+ "html": "<cre8-badge variant=\"light\" text=\"Badge\"></cre8-badge>"
1457
+ }
1458
+ ]
1403
1459
  },
1404
1460
  {
1405
1461
  "name": "cre8-inline-alert",
@@ -1532,8 +1588,9 @@
1532
1588
  },
1533
1589
  "slots": {},
1534
1590
  "events": {
1535
- "leftActionButtonClick": {
1536
- "detail": {}
1591
+ "percent-bar-left-action-click": {
1592
+ "detail": {},
1593
+ "description": "Fires when the left action button is clicked."
1537
1594
  }
1538
1595
  },
1539
1596
  "cssProperties": {},
@@ -1545,7 +1602,12 @@
1545
1602
  "description": "A progress meter provides feedback that the system is working and gives\nthe user an indication of how much time they will wait.\nThis indicator should be used when the system response time is longer and determinable.",
1546
1603
  "attributes": {
1547
1604
  "status": {
1548
- "type": "status",
1605
+ "type": "string",
1606
+ "values": [
1607
+ "error",
1608
+ "warning",
1609
+ "success"
1610
+ ],
1549
1611
  "description": "Progress Status\n- **Default** renders a meter with default status fill\n- **Error** renders a meter with an error status fill\n- **Warning** renders a meter with a warning status\n- **Success** renders a meter with a success status fill"
1550
1612
  },
1551
1613
  "knockout": {
@@ -1586,6 +1648,17 @@
1586
1648
  "category": "Feedback",
1587
1649
  "description": "The Progress Steps Item component is used to display a single step in a multi-step process.\nIt should be used as a child component of `cre8-progress-steps`.\nThese Components serve a contextual purpose and don't provide any functionality.",
1588
1650
  "attributes": {
1651
+ "state": {
1652
+ "type": "string",
1653
+ "values": [
1654
+ "error",
1655
+ "warning",
1656
+ "complete",
1657
+ "current",
1658
+ "incomplete"
1659
+ ],
1660
+ "description": "The state of the step."
1661
+ },
1589
1662
  "message": {
1590
1663
  "type": "string",
1591
1664
  "description": "Optional message to display under the step name."
@@ -1594,10 +1667,6 @@
1594
1667
  "type": "string",
1595
1668
  "description": "The name of the step."
1596
1669
  },
1597
- "state": {
1598
- "type": "string",
1599
- "description": "The state of the step: 'complete', 'current', 'error',' incomplete', 'warning';"
1600
- },
1601
1670
  "svg": {
1602
1671
  "type": "string",
1603
1672
  "description": "An SVG string to use as the step icon."
@@ -1656,6 +1725,14 @@
1656
1725
  "label": {
1657
1726
  "type": "string",
1658
1727
  "description": "Checkbox container legend label"
1728
+ },
1729
+ "items": {
1730
+ "type": "Cre8CheckboxItemData[]",
1731
+ "description": "Checkboxes for a data-driven field. Each becomes a\n`cre8-checkbox-field-item`, sharing the field's `name` so they submit as a\ngroup."
1732
+ },
1733
+ "name": {
1734
+ "type": "string",
1735
+ "description": "Form control name shared by every generated item."
1659
1736
  }
1660
1737
  },
1661
1738
  "properties": {
@@ -2075,7 +2152,7 @@
2075
2152
  {
2076
2153
  "name": "cre8-multi-select",
2077
2154
  "category": "Forms",
2078
- "description": "Multiselect is used when multiple options can be chosen from a static dropdown\nThis component has a list of items in the dropdown that can be added as \"selected tags\"\nThe checkbox will always reflect the selected nature of the item and is not removed\nfrom the dropdown when clicked, the tags will be added and removed based on their state.\n\nEvent `selectedItemsChange` emits whenever a tag is added or remove from the list and the\ncurrent list after the change is given in the detail.",
2155
+ "description": "Multiselect is used when multiple options can be chosen from a static dropdown\nThis component has a list of items in the dropdown that can be added as \"selected tags\"\nThe checkbox will always reflect the selected nature of the item and is not removed\nfrom the dropdown when clicked, the tags will be added and removed based on their state.\n\nEvent `multi-select-change` emits whenever a tag is added or remove from the list and the\ncurrent list after the change is given in the detail.",
2079
2156
  "attributes": {
2080
2157
  "items": {
2081
2158
  "type": "string[]",
@@ -2141,7 +2218,7 @@
2141
2218
  }
2142
2219
  },
2143
2220
  "events": {
2144
- "selectedItemsChange": {
2221
+ "multi-select-change": {
2145
2222
  "detail": {},
2146
2223
  "description": "Fires when a tag is added or removed. `event.detail.selectedItems` is the current selection."
2147
2224
  }
@@ -2157,6 +2234,14 @@
2157
2234
  "label": {
2158
2235
  "type": "string",
2159
2236
  "description": "Radio field legend label"
2237
+ },
2238
+ "items": {
2239
+ "type": "Cre8RadioItemData[]",
2240
+ "description": "Options for a data-driven radio field. Each becomes a\n`cre8-radio-field-item` sharing the field's `name`, which is what the form\nsubmits under. Exclusivity is enforced by the field itself — see\n`enforceSingleSelection`, and do not assume `name` alone does it."
2241
+ },
2242
+ "name": {
2243
+ "type": "string",
2244
+ "description": "Form control name shared by every generated option."
2160
2245
  }
2161
2246
  },
2162
2247
  "properties": {
@@ -2633,6 +2718,10 @@
2633
2718
  },
2634
2719
  "status": {
2635
2720
  "type": "string",
2721
+ "values": [
2722
+ "brand",
2723
+ "knockout"
2724
+ ],
2636
2725
  "description": "Status (a color variant prop)\n- By default, the divider has gray color.\n- **brand**, the divider has blue color.\n- **knockout**, the divider has white color."
2637
2726
  }
2638
2727
  },
@@ -2995,7 +3084,12 @@
2995
3084
  "name": "cre8-breadcrumbs",
2996
3085
  "category": "Navigation",
2997
3086
  "description": "The breadcrumbs component is a secondary navigation pattern that helps a user understand where the user is located.\nThe breadcrumbs component shows the users their current location relative to the information architecture\nIt enables the users to quickly move up to a parent level or previous location.\n\n## How to Use\n\n- Import 'Breadcrumbs' component.\n- Add the pages in the path of the breadcrumbs using `cre8-breadcrumbs-item`.\nAll the pages in the breadcrumbs component should be interactive.\n- All the page should link to their respective pages (except the current page) using `cre8-link`.\n- The current page is included in the breadcrumbs trail.\n- The current page is always the last text listed and is not an interactive link.",
2998
- "attributes": {},
3087
+ "attributes": {
3088
+ "items": {
3089
+ "type": "Cre8BreadcrumbData[]",
3090
+ "description": "Crumbs for a data-driven trail. Each becomes a `cre8-breadcrumbs-item`,\nwrapping a `cre8-text-link` when it has an `href`."
3091
+ }
3092
+ },
2999
3093
  "properties": {
3000
3094
  "navAriaLabel": {
3001
3095
  "type": "string",
@@ -3276,6 +3370,10 @@
3276
3370
  "display"
3277
3371
  ],
3278
3372
  "description": "Style variants\n- **secondary** renders a link list with a more subtle visual treatment\n- **display** renders a link list with a display treatment (e.g. article title)"
3373
+ },
3374
+ "items": {
3375
+ "type": "Cre8LinkData[]",
3376
+ "description": "Links for a data-driven list. Each becomes a `cre8-link-list-item`.\n\nWorth knowing if you compose these by hand: the label goes in the item's\ndefault slot, *not* its `text` prop. That prop is declared and documented\nbut never rendered, so setting it produces an empty link that passes every\ncheck — see the drift ledger in `docs/kb/07-research.md`. This API routes\naround it."
3279
3377
  }
3280
3378
  },
3281
3379
  "properties": {},
@@ -3403,7 +3501,7 @@
3403
3501
  }
3404
3502
  },
3405
3503
  "events": {
3406
- "pagination.click": {
3504
+ "pagination-change": {
3407
3505
  "detail": {},
3408
3506
  "description": "Fires when the page changes. `event.detail` is `{ buttonName, value }` where `value` is the new current page."
3409
3507
  }
@@ -3532,7 +3630,7 @@
3532
3630
  }
3533
3631
  },
3534
3632
  "events": {
3535
- "tabSelected": {
3633
+ "tab-select": {
3536
3634
  "detail": {},
3537
3635
  "description": "Fires when the tab is clicked. `event.detail.index` is the tab's index."
3538
3636
  }
@@ -3577,6 +3675,10 @@
3577
3675
  "size": {
3578
3676
  "type": "\"sm\"",
3579
3677
  "description": "Tab sizes\n- **default** displays the cre8-tab text with cre8-typography-label-default\n- **sm** displays the cre8-tab text with cre8-typography-label-small"
3678
+ },
3679
+ "items": {
3680
+ "type": "Cre8TabItemData[]",
3681
+ "description": "Tabs for a data-driven tab set. Each entry becomes a `cre8-tab` in the\ndefault slot *and* a `cre8-tab-panel` in the `panel` slot, with matching\nindices — two slots kept in step, which is the part that goes wrong when\nthese are written by hand."
3580
3682
  }
3581
3683
  },
3582
3684
  "properties": {
@@ -3636,8 +3738,9 @@
3636
3738
  }
3637
3739
  },
3638
3740
  "events": {
3639
- "tabChange": {
3640
- "detail": {}
3741
+ "tab-change": {
3742
+ "detail": {},
3743
+ "description": "Fires when the active tab changes. `event.detail` is `{ value, activeTabIndex }`."
3641
3744
  }
3642
3745
  },
3643
3746
  "cssProperties": {},
@@ -3766,7 +3869,12 @@
3766
3869
  "name": "cre8-progress-steps",
3767
3870
  "category": "Other",
3768
3871
  "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.",
3769
- "attributes": {},
3872
+ "attributes": {
3873
+ "steps": {
3874
+ "type": "Cre8ProgressStepData[]",
3875
+ "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."
3876
+ }
3877
+ },
3770
3878
  "properties": {},
3771
3879
  "slots": {
3772
3880
  "default": {
@@ -3784,7 +3892,7 @@
3784
3892
  "attributes": {
3785
3893
  "type": {
3786
3894
  "type": "\"display-default\" | \"display-small\" | \"headline-large\" | \"headline-default\" | \"headline-small\" | \"title-xlarge\" | \"title-large\" | \"title-default\" | \"title-small\" | \"label-large\" | ... 5 more ...",
3787
- "description": "Heading type\n<cre8-text-passage size=\"small\">\n<ul>\n<li>**display-default** renders a heading with the heading display-default preset treatment</li>\n<li>**display-small** renders a heading with the heading display-small preset treatment</li>\n<li>**headline-large** renders a heading with the heading headline-large preset treatment</li>\n<li>**headline-default** renders a heading with the heading headline-default preset treatment</li>\n<li>**headline-small** renders a heading with the heading headline-small preset treatment</li>\n<li>**title-xlarge** renders a heading with the heading title-xlarge preset treatment</li>\n<li>**title-large** renders a heading with the heading title-large preset treatment</li>\n<li>**title-default** renders a heading with the heading title-default preset treatment</li>\n<li>**title-small** renders a heading with the heading title-small preset treatment</li>\n<li>**label-large** renders a heading with the label-large preset treatment</li>\n<li>**label** renders a heading with the label preset treatment</li>\n<li>**label-small** renders a heading with the label-small preset treatment</li>\n<li>**meta-large** renders a heading with the meta-large preset treatment</li>\n<li>**meta-default** renders a heading with the meta-default preset treatment</li>\n<li>**meta-small** renders a heading with the meta-small preset treatment</li>\n</ul>\n</cre8-text-passage>"
3895
+ "description": "Heading type\n<cre8-text-passage size=\"small\">\n<ul>\n<li>**display-default** renders a heading with the heading display-default preset treatment</li>\n<li>**display-small** renders a heading with the heading display-small preset treatment</li>\n<li>**headline-large** renders a heading with the heading headline-large preset treatment</li>\n<li>**headline-default** renders a heading with the heading headline-default preset treatment</li>\n<li>**headline-small** renders a heading with the heading headline-small preset treatment</li>\n<li>**title-xlarge** renders a heading with the heading title-xlarge preset treatment</li>\n<li>**title-large** renders a heading with the heading title-large preset treatment</li>\n<li>**title-default** renders a heading with the heading title-default preset treatment</li>\n<li>**title-small** renders a heading with the heading title-small preset treatment</li>\n<li>**label-large** renders a heading with the label-large preset treatment</li>\n<li>**label-default** renders a heading with the label-default preset treatment</li>\n<li>**label-small** renders a heading with the label-small preset treatment</li>\n<li>**meta-large** renders a heading with the meta-large preset treatment</li>\n<li>**meta-default** renders a heading with the meta-default preset treatment</li>\n<li>**meta-small** renders a heading with the meta-small preset treatment</li>\n</ul>\n</cre8-text-passage>"
3788
3896
  },
3789
3897
  "inverted": {
3790
3898
  "type": "boolean",
@@ -3794,8 +3902,16 @@
3794
3902
  "properties": {
3795
3903
  "tagVariant": {
3796
3904
  "type": "string",
3905
+ "values": [
3906
+ "h1",
3907
+ "h2",
3908
+ "h3",
3909
+ "h4",
3910
+ "h5",
3911
+ "h6"
3912
+ ],
3797
3913
  "default": "h5",
3798
- "description": "Dynamic tag name for the component\n1) This is needed to use proper semantic heading treatments depending on where the banner lives on the page\n<cre8-text-passage size=\"small\">\n<ul>\n<li>**h1** renders an `h1` tag</li>\n<li>**h2** renders an `h2` tag. This is the default</li>\n<li>**h3** renders an `h3` tag</li>\n<li>**h4** renders an `h4` tag</li>\n<li>**h5** renders an `h5` tag</li>\n<li>**h6** renders an `h6` tag</li>\n</ul>\n</cre8-text-passage>"
3914
+ "description": "Dynamic tag name for the component\n1) This is needed to use proper semantic heading treatments depending on where the banner lives on the page\n<cre8-text-passage size=\"small\">\n<ul>\n<li>**h1** renders an `h1` tag</li>\n<li>**h2** renders an `h2` tag</li>\n<li>**h3** renders an `h3` tag</li>\n<li>**h4** renders an `h4` tag</li>\n<li>**h5** renders an `h5` tag. This is the default</li>\n<li>**h6** renders an `h6` tag</li>\n</ul>\n</cre8-text-passage>"
3799
3915
  },
3800
3916
  "brandColor": {
3801
3917
  "type": "boolean",
@@ -3925,13 +4041,13 @@
3925
4041
  "type": "boolean",
3926
4042
  "description": "Required state"
3927
4043
  },
3928
- "is-error": {
4044
+ "isError": {
3929
4045
  "type": "boolean",
3930
- "description": "Error state indicator"
4046
+ "description": "Error state indicator. Lit lowercases property names to derive attribute names, so the attribute is isError/iserror — is-error does not bind."
3931
4047
  },
3932
- "is-success": {
4048
+ "isSuccess": {
3933
4049
  "type": "boolean",
3934
- "description": "Success state indicator"
4050
+ "description": "Success state indicator. Attribute is isSuccess/issuccess, not is-success."
3935
4051
  }
3936
4052
  },
3937
4053
  "properties": {
@@ -3951,25 +4067,26 @@
3951
4067
  "checkValidity()",
3952
4068
  "reportValidity()",
3953
4069
  "setCustomValidity(message)"
3954
- ]
4070
+ ],
4071
+ "constraintValidation": "setValidity() is only ever called from setCustomValidity(). required, pattern, min, max and type=\"email\" are stored as props but never mapped into the validity state, so they do not block submission on their own — an empty required field still submits. Enforce constraints with setCustomValidity() or in the form's submit handler."
3955
4072
  }
3956
4073
  }
3957
4074
  ],
3958
4075
  "patterns": [
3959
4076
  {
3960
4077
  "name": "Login Form",
3961
- "description": "Standard login form with email and password",
3962
- "template": "<cre8-card>\n <cre8-heading tag-variant=\"h2\" type=\"headline-default\">Sign In</cre8-heading>\n <cre8-field label=\"Email\" type=\"email\"></cre8-field>\n <cre8-field label=\"Password\" type=\"password\"></cre8-field>\n <cre8-button text=\"Sign In\" variant=\"primary\" full-width></cre8-button>\n</cre8-card>"
4078
+ "description": "Standard login form with email and password. Three things make it submit rather than merely look right: a real <form> wrapper (cre8 form components participate via ElementInternals, which is inert outside one), type=\"submit\" on the button (cre8-button defaults to type=\"button\"), and a name on every field (setFormValue contributes nothing to FormData without one). Note that required does not block submission on its own — cre8 form elements never map constraint attributes into setValidity, so enforce it with setCustomValidity() or a submit handler.",
4079
+ "template": "<form>\n <cre8-card>\n <cre8-heading tagVariant=\"h2\" type=\"headline-default\">Sign In</cre8-heading>\n <cre8-field label=\"Email\" name=\"email\" type=\"email\" autocomplete=\"email\" required></cre8-field>\n <cre8-field label=\"Password\" name=\"password\" type=\"password\" autocomplete=\"current-password\" required></cre8-field>\n <cre8-button text=\"Sign In\" variant=\"primary\" fullWidth type=\"submit\"></cre8-button>\n </cre8-card>\n</form>"
3963
4080
  },
3964
4081
  {
3965
4082
  "name": "Data Table",
3966
4083
  "description": "Table with header and data rows",
3967
- "template": "<cre8-table variant=\"striped\" is-hoverable>\n <cre8-table-header>\n <cre8-table-row>\n <cre8-table-header-cell>Name</cre8-table-header-cell>\n <cre8-table-header-cell>Status</cre8-table-header-cell>\n </cre8-table-row>\n </cre8-table-header>\n <cre8-table-body>\n <cre8-table-row>\n <cre8-table-cell>Item 1</cre8-table-cell>\n <cre8-table-cell><cre8-badge text=\"Active\" status=\"success\"></cre8-badge></cre8-table-cell>\n </cre8-table-row>\n </cre8-table-body>\n</cre8-table>"
4084
+ "template": "<cre8-table variant=\"striped\" isHoverable>\n <cre8-table-header>\n <cre8-table-row>\n <cre8-table-header-cell>Name</cre8-table-header-cell>\n <cre8-table-header-cell>Status</cre8-table-header-cell>\n </cre8-table-row>\n </cre8-table-header>\n <cre8-table-body>\n <cre8-table-row>\n <cre8-table-cell>Item 1</cre8-table-cell>\n <cre8-table-cell><cre8-badge text=\"Active\" status=\"success\"></cre8-badge></cre8-table-cell>\n </cre8-table-row>\n </cre8-table-body>\n</cre8-table>"
3968
4085
  },
3969
4086
  {
3970
4087
  "name": "Page Layout",
3971
- "description": "Standard page with header, main content, and footer",
3972
- "template": "<cre8-layout>\n <cre8-header>\n <cre8-global-nav>\n <span slot=\"logo\"><cre8-logo></cre8-logo></span>\n <cre8-global-nav-item href=\"/\">Home</cre8-global-nav-item>\n </cre8-global-nav>\n </cre8-header>\n <cre8-main>\n <cre8-layout-container>\n <!-- Page content -->\n </cre8-layout-container>\n </cre8-main>\n <cre8-footer>\n <span slot=\"copyright\">2024 Company Name</span>\n </cre8-footer>\n</cre8-layout>"
4088
+ "description": "Standard page with header, main content, and footer. cre8-global-nav and cre8-footer expose no logo or copyright slot; content addressed to a slot that does not exist is never assigned and renders nowhere, so both go in the default slot.",
4089
+ "template": "<cre8-layout>\n <cre8-header>\n <cre8-logo></cre8-logo>\n <cre8-global-nav>\n <cre8-global-nav-item href=\"/\">Home</cre8-global-nav-item>\n </cre8-global-nav>\n </cre8-header>\n <cre8-main>\n <cre8-layout-container>\n <!-- Page content -->\n </cre8-layout-container>\n </cre8-main>\n <cre8-footer>\n <span>2024 Company Name</span>\n </cre8-footer>\n</cre8-layout>"
3973
4090
  },
3974
4091
  {
3975
4092
  "name": "Alert Banner",
@@ -3978,13 +4095,13 @@
3978
4095
  },
3979
4096
  {
3980
4097
  "name": "Tabbed Content",
3981
- "description": "Content organized in tabs",
3982
- "template": "<cre8-tabs>\n <cre8-tab label=\"Tab 1\" tab-id=\"tab1\" selected></cre8-tab>\n <cre8-tab label=\"Tab 2\" tab-id=\"tab2\"></cre8-tab>\n <cre8-tab-panel tab-id=\"tab1\" slot=\"panel\">Content for Tab 1</cre8-tab-panel>\n <cre8-tab-panel tab-id=\"tab2\" slot=\"panel\">Content for Tab 2</cre8-tab-panel>\n</cre8-tabs>"
4098
+ "description": "Content organized in tabs. cre8-tab has no label, tab-id or selected prop: the label is slotted text content, and cre8-tabs pairs each tab with the panel at the same position and assigns index/isActive itself. Set activeIndex on cre8-tabs to choose the initial tab (defaults to 0).",
4099
+ "template": "<cre8-tabs>\n <cre8-tab>Tab 1</cre8-tab>\n <cre8-tab>Tab 2</cre8-tab>\n <cre8-tab-panel slot=\"panel\">Content for Tab 1</cre8-tab-panel>\n <cre8-tab-panel slot=\"panel\">Content for Tab 2</cre8-tab-panel>\n</cre8-tabs>"
3983
4100
  },
3984
4101
  {
3985
4102
  "name": "Modal Dialog",
3986
- "description": "Modal with header, body, and footer actions",
3987
- "template": "<cre8-modal is-active aria-label=\"Confirmation\">\n <span slot=\"header\">Confirm Action</span>\n <p>Are you sure you want to proceed?</p>\n <div slot=\"footer\">\n <cre8-button text=\"Cancel\" variant=\"secondary\"></cre8-button>\n <cre8-button text=\"Confirm\" variant=\"primary\"></cre8-button>\n </div>\n</cre8-modal>"
4103
+ "description": "Modal with header, body, and footer actions. These buttons are deliberately type=\"button\": they are not in a form, so they do nothing until the app attaches click handlers. Wire both before shipping. If the modal instead collects input, wrap the body and footer in a <form> and give Confirm type=\"submit\" — see the Login Form pattern. Use ariaLabel, not aria-label: the modal renders its inner role=\"dialog\" label from the ariaLabel property, and a host aria-label attribute leaves that dialog unlabelled.",
4104
+ "template": "<cre8-modal isActive ariaLabel=\"Confirmation\">\n <span slot=\"header\">Confirm Action</span>\n <p>Are you sure you want to proceed?</p>\n <div slot=\"footer\">\n <!-- Both require a click handler; type=\"button\" is correct only because there is no form. -->\n <cre8-button text=\"Cancel\" variant=\"secondary\" type=\"button\"></cre8-button>\n <cre8-button text=\"Confirm\" variant=\"primary\" type=\"button\"></cre8-button>\n </div>\n</cre8-modal>"
3988
4105
  }
3989
4106
  ],
3990
4107
  "designTokens": {
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@tmorrow/cre8-wc",
3
- "version": "2.0.7",
3
+ "version": "2.1.0",
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": {
7
7
  "start": "pnpm run build:custom-elements.json && pnpm run storybook",
8
8
  "compile-styles": "npx tsx scripts/convert-scss-to-ts.ts",
9
9
  "build": "rm -rf lib && pnpm run compile-styles && pnpm build:cdn && vite build && tsc && cp .storybook/custom-elements.json custom-elements.json && pnpm run build:react && pnpm run build:mcp-manifest && pnpm run build:react-manifest",
10
- "build:mcp-manifest": "npx web-component-analyzer analyze \"components/*/*.ts\" --format json --outFile /tmp/wca-raw.json && npx tsx scripts/generate-mcp-manifest.ts",
10
+ "build:mcp-manifest": "npx web-component-analyzer analyze \"components/**/*.ts\" --format json --outFile /tmp/wca-raw.json && npx tsx scripts/generate-mcp-manifest.ts",
11
11
  "build:react-manifest": "npx tsx scripts/generate-react-manifest.ts",
12
12
  "build:cdn": "rm -rf cdn && vite build --config vite.config.cdn.ts",
13
13
  "build:react": "rm -rf react-wrappers/components react-wrappers/dist react-wrappers/index.ts && npx tsx scripts/generate-react-wrappers.ts && cd react-wrappers && npx tsc",
14
14
  "build:a2ui": "pnpm run build:a2ui:catalog && pnpm run build:a2ui:compile",
15
15
  "build:a2ui:catalog": "node a2ui/generate-catalog.mjs",
16
- "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",
16
+ "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",
17
17
  "a2ui:demo": "python3 -m http.server 8765",
18
18
  "storybook:react": "pnpm run build:react && cd react-wrappers && npx storybook dev -p 9009",
19
19
  "build-storybook:react": "pnpm run build:react && cd react-wrappers && npx storybook build -o dist-storybook",
@@ -33,7 +33,11 @@
33
33
  "format": "eslint-config --ext .ts,.html . --fix --ignore-path ../../.eslintignore",
34
34
  "publish:react": "cd react-wrappers && npm publish --access public",
35
35
  "release:publish": "node scripts/release.cjs --skip-lint --skip-tests --publish",
36
- "version:bump": "node scripts/version-bump.cjs"
36
+ "version:bump": "node scripts/version-bump.cjs",
37
+ "test:a2ui": "npx tsx a2ui/smoke-test.mjs && npx tsx a2ui/stream/stream-test.mjs && npx tsx a2ui/stream/diff-test.mjs && node a2ui/render-audit.mjs --check && node a2ui/check-layer-parity.mjs",
38
+ "audit:render": "node a2ui/render-audit.mjs",
39
+ "audit:render:check": "node a2ui/render-audit.mjs --check",
40
+ "check:parity": "node a2ui/check-layer-parity.mjs"
37
41
  },
38
42
  "type": "module",
39
43
  "module": "lib/index.js",
@@ -91,12 +95,17 @@
91
95
  "types": "./a2ui/index.d.ts"
92
96
  },
93
97
  "./a2ui/catalog.json": "./a2ui/catalog.json",
98
+ "./a2ui/catalog.compact.json": "./a2ui/catalog.compact.json",
94
99
  "./a2ui/catalog-kg.json": "./a2ui/catalog-kg.json",
95
100
  "./a2ui/*": {
96
101
  "import": "./a2ui/*",
97
102
  "types": "./a2ui/*"
98
103
  },
99
- "./package.json": "./package.json"
104
+ "./package.json": "./package.json",
105
+ "./a2ui/stream": {
106
+ "import": "./a2ui/stream/index.js",
107
+ "types": "./a2ui/stream/index.d.ts"
108
+ }
100
109
  },
101
110
  "repository": {
102
111
  "url": "https://github.com/tmorrowdev/Cre8-Components.git"