@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
@@ -0,0 +1,277 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Asserts that every layer describing the component library agrees.
4
+ *
5
+ * node a2ui/check-layer-parity.mjs
6
+ *
7
+ * The library is described six times over — the source that registers the
8
+ * elements, the MCP manifest, the A2UI catalog, the compact projection, the
9
+ * React manifest, and custom-elements.json — each generated by a different
10
+ * script from a different glob. Nothing forced them to agree, and they didn't:
11
+ * an analyzer glob one level too shallow dropped five components from all five
12
+ * derived layers at once, silently, for months.
13
+ *
14
+ * This is the check that makes that unmergeable. It compares the layers against
15
+ * each other rather than against a hardcoded expectation, so it keeps working as
16
+ * components are added.
17
+ *
18
+ * Deliberate omissions are legal but must be declared: `internalElements` in the
19
+ * manifest is the single place they live, and every one is re-verified here.
20
+ */
21
+
22
+ import { readFileSync, existsSync } from 'node:fs';
23
+ import { execSync } from 'node:child_process';
24
+ import { fileURLToPath } from 'node:url';
25
+ import { dirname, join } from 'node:path';
26
+
27
+ const HERE = dirname(fileURLToPath(import.meta.url));
28
+ const WC = join(HERE, '..');
29
+ const REPO = join(WC, '..', '..');
30
+
31
+ const read = (p) => JSON.parse(readFileSync(p, 'utf8'));
32
+
33
+ const failures = [];
34
+ const notes = [];
35
+ function check(name, fn) {
36
+ try {
37
+ const note = fn();
38
+ if (note) notes.push(` ok ${name} — ${note}`);
39
+ else notes.push(` ok ${name}`);
40
+ } catch (err) {
41
+ failures.push(`FAIL ${name}\n ${err.message}`);
42
+ }
43
+ }
44
+
45
+ function assertSameSet(label, a, b, aName, bName) {
46
+ const missingFromB = [...a].filter((x) => !b.has(x)).sort();
47
+ const missingFromA = [...b].filter((x) => !a.has(x)).sort();
48
+ if (missingFromB.length || missingFromA.length) {
49
+ const parts = [];
50
+ if (missingFromB.length) parts.push(`in ${aName} but not ${bName}: ${missingFromB.join(', ')}`);
51
+ if (missingFromA.length) parts.push(`in ${bName} but not ${aName}: ${missingFromA.join(', ')}`);
52
+ throw new Error(`${label}\n ${parts.join('\n ')}`);
53
+ }
54
+ }
55
+
56
+ // ── Load every layer ─────────────────────────────────────────────────
57
+
58
+ const manifest = read(join(WC, 'mcp-manifest.json'));
59
+ const catalog = read(join(WC, 'a2ui', 'catalog.json'));
60
+ const compact = read(join(WC, 'a2ui', 'catalog.compact.json'));
61
+
62
+ const registered = new Set(
63
+ execSync(`grep -rho "customElements.define('[^']*'" "${join(WC, 'components')}" --include='*.ts' || true`)
64
+ .toString()
65
+ .split('\n')
66
+ .map((line) => (line.match(/'([^']+)'/) || [])[1])
67
+ .filter(Boolean)
68
+ );
69
+
70
+ const internal = new Set(manifest.internalElements ?? []);
71
+ const publicSource = new Set([...registered].filter((n) => !internal.has(n)));
72
+
73
+ const manifestNames = new Set(manifest.components.map((c) => c.name));
74
+ const catalogNames = new Set(Object.keys(catalog.$defs.components));
75
+ const compactNames = new Set(compact.components.map((c) => c.name));
76
+
77
+ // ── Component-set parity ─────────────────────────────────────────────
78
+
79
+ check('every registered element is accounted for', () => {
80
+ if (!registered.size) throw new Error('found no customElements.define calls — the grep is broken');
81
+ const unaccounted = [...registered].filter((n) => !manifestNames.has(n) && !internal.has(n));
82
+ if (unaccounted.length) {
83
+ throw new Error(
84
+ `element(s) register but appear in no layer and are not declared internal:\n` +
85
+ ` ${unaccounted.join(', ')}\n` +
86
+ ` Either export them, or add them to INTERNAL_ELEMENTS in scripts/generate-mcp-manifest.ts.`
87
+ );
88
+ }
89
+ return `${registered.size} registered, ${internal.size} declared internal`;
90
+ });
91
+
92
+ check('declared internals actually exist', () => {
93
+ const ghosts = [...internal].filter((n) => !registered.has(n));
94
+ if (ghosts.length) {
95
+ throw new Error(`declared internal but no longer registered: ${ghosts.join(', ')} — stale entry`);
96
+ }
97
+ const leaked = [...internal].filter((n) => manifestNames.has(n));
98
+ if (leaked.length) throw new Error(`declared internal but present in the manifest: ${leaked.join(', ')}`);
99
+ return internal.size ? [...internal].join(', ') : 'none';
100
+ });
101
+
102
+ check('source (minus internals) == manifest', () =>
103
+ assertSameSet('component sets differ', publicSource, manifestNames, 'source', 'manifest'));
104
+
105
+ check('manifest == catalog', () =>
106
+ assertSameSet('component sets differ', manifestNames, catalogNames, 'manifest', 'catalog'));
107
+
108
+ check('catalog == compact', () =>
109
+ assertSameSet('component sets differ', catalogNames, compactNames, 'catalog', 'compact'));
110
+
111
+ const reactPath = join(WC, 'react-manifest.json');
112
+ check('catalog == react manifest', () => {
113
+ if (!existsSync(reactPath)) throw new Error('react-manifest.json is missing');
114
+ const react = read(reactPath);
115
+ const names = new Set((react.components ?? []).map((c) => c.tagName ?? c.name));
116
+ assertSameSet('component sets differ', catalogNames, names, 'catalog', 'react');
117
+ });
118
+
119
+ const cemPath = join(REPO, 'custom-elements.json');
120
+ check('catalog == custom-elements.json', () => {
121
+ if (!existsSync(cemPath)) throw new Error('custom-elements.json is missing');
122
+ const cem = read(cemPath);
123
+ const names = new Set(
124
+ (cem.modules ?? []).flatMap((m) => (m.declarations ?? []).map((d) => d.tagName).filter(Boolean))
125
+ );
126
+ assertSameSet(
127
+ 'component sets differ (note: build:custom-elements.json uses a shallower glob than build:mcp-manifest)',
128
+ catalogNames,
129
+ names,
130
+ 'catalog',
131
+ 'custom-elements.json'
132
+ );
133
+ });
134
+
135
+ // ── Field-level parity ───────────────────────────────────────────────
136
+
137
+ check('catalog and compact agree on every prop and enum', () => {
138
+ const compactByName = new Map(compact.components.map((c) => [c.name, c]));
139
+ for (const [name, def] of Object.entries(catalog.$defs.components)) {
140
+ const catProps = def.properties?.props?.properties ?? {};
141
+ const cmpProps = compactByName.get(name)?.props ?? {};
142
+ assertSameSet(`${name}: prop sets differ`, new Set(Object.keys(catProps)), new Set(Object.keys(cmpProps)), 'catalog', 'compact');
143
+ for (const [prop, spec] of Object.entries(catProps)) {
144
+ const a = spec.enum ?? null;
145
+ const b = cmpProps[prop]?.enum ?? null;
146
+ if (JSON.stringify(a) !== JSON.stringify(b)) {
147
+ throw new Error(`${name}.${prop}: enum differs — catalog ${JSON.stringify(a)} vs compact ${JSON.stringify(b)}`);
148
+ }
149
+ }
150
+ }
151
+ const total = Object.values(catalog.$defs.components).reduce(
152
+ (n, d) => n + Object.keys(d.properties?.props?.properties ?? {}).length, 0);
153
+ return `${total} props`;
154
+ });
155
+
156
+ check('catalog and compact agree on containment', () => {
157
+ const compactByName = new Map(compact.components.map((c) => [c.name, c]));
158
+ for (const [name, def] of Object.entries(catalog.$defs.components)) {
159
+ const cmp = compactByName.get(name);
160
+ const catChildren = def.properties?.children !== undefined;
161
+ if (catChildren !== (cmp.acceptsChildren === true)) {
162
+ throw new Error(`${name}: catalog children=${catChildren} vs compact acceptsChildren=${cmp.acceptsChildren === true}`);
163
+ }
164
+ const catSlots = new Set(Object.keys(def.properties?.slots?.properties ?? {}));
165
+ assertSameSet(`${name}: slot sets differ`, catSlots, new Set(cmp.slots ?? []), 'catalog', 'compact');
166
+ }
167
+ });
168
+
169
+ check('manifest, catalog metadata, catalog schema and compact agree on events', () => {
170
+ const compactByName = new Map(compact.components.map((c) => [c.name, c]));
171
+ const native = new Set(catalog['x-native-events'] ?? []);
172
+ if (!native.size) throw new Error('catalog declares no x-native-events — the validator reads that list from here');
173
+
174
+ let total = 0;
175
+ for (const component of manifest.components) {
176
+ const fromManifest = new Set(Object.keys(component.events ?? {}));
177
+ const def = catalog.$defs.components[component.name];
178
+ const fromMetadata = new Set(Object.keys(def['x-events'] ?? {}));
179
+ const fromCompact = new Set(compactByName.get(component.name)?.events ?? []);
180
+
181
+ assertSameSet(`${component.name}: events differ`, fromManifest, fromMetadata, 'manifest', 'catalog x-events');
182
+ assertSameSet(`${component.name}: events differ`, fromMetadata, fromCompact, 'catalog x-events', 'compact');
183
+
184
+ // The validatable schema must admit every declared event, and must not
185
+ // invent any. Compared by admission rather than by set equality because a
186
+ // component may declare a custom event that shadows a native name —
187
+ // `cre8-tag` dispatches its own `change` — in which case the native branch
188
+ // legitimately absorbs it.
189
+ const names = def.properties?.events?.propertyNames;
190
+ if (!names) throw new Error(`${component.name}: no properties.events — events are not schema-validated`);
191
+ const branches = names.anyOf ?? [names];
192
+ const explicit = new Set(branches.flatMap((b) => b.enum ?? []));
193
+ const refsNative = branches.some((b) => b.$ref === '#/$defs/NativeEventName');
194
+ const admits = (n) => explicit.has(n) || (refsNative && native.has(n));
195
+
196
+ const unadmitted = [...fromMetadata].filter((n) => !admits(n));
197
+ if (unadmitted.length) {
198
+ throw new Error(`${component.name}: declared but not admitted by properties.events: ${unadmitted.join(', ')}`);
199
+ }
200
+ const invented = [...explicit].filter((n) => !fromMetadata.has(n) && !native.has(n));
201
+ if (invented.length) {
202
+ throw new Error(`${component.name}: properties.events admits undeclared event(s): ${invented.join(', ')}`);
203
+ }
204
+ total += fromManifest.size;
205
+ }
206
+ return `${total} events across ${manifest.components.length} components, ${native.size} native`;
207
+ });
208
+
209
+ check('the schema and the renderer agree on text children', () => {
210
+ const renderer = readFileSync(join(WC, 'a2ui', 'renderer.ts'), 'utf8');
211
+ const rendersText = /typeof\s+child\s*===\s*['"]string['"]/.test(renderer);
212
+ const child = catalog.$defs.Child;
213
+ const schemaAllowsText = !!child?.oneOf?.some((b) => b.type === 'string');
214
+
215
+ if (rendersText && !schemaAllowsText) {
216
+ throw new Error(
217
+ 'renderer.ts turns string children into text nodes, but the schema does not permit them.\n' +
218
+ ' Text renders yet fails validation, and no schema-constrained generator can emit it.'
219
+ );
220
+ }
221
+ if (!rendersText && schemaAllowsText) {
222
+ throw new Error('the schema permits text children but the renderer no longer handles them');
223
+ }
224
+
225
+ // Every containment point must route through Child, or the ones that don't
226
+ // silently keep the old behaviour.
227
+ const offenders = [];
228
+ for (const [name, def] of Object.entries(catalog.$defs.components)) {
229
+ const children = def.properties?.children;
230
+ if (children && children.items?.$ref !== '#/$defs/Child') offenders.push(`${name}.children`);
231
+ for (const [slot, spec] of Object.entries(def.properties?.slots?.properties ?? {})) {
232
+ if (spec.items?.$ref !== '#/$defs/Child') offenders.push(`${name}.slots.${slot}`);
233
+ }
234
+ }
235
+ if (offenders.length) {
236
+ throw new Error(`containment not routed through $defs/Child: ${offenders.slice(0, 5).join(', ')}`);
237
+ }
238
+
239
+ // A document root is a component; bare text is not a document.
240
+ if (catalog.properties?.root?.$ref !== '#/$defs/Component') {
241
+ throw new Error('the document root must be a Component, not a Child');
242
+ }
243
+ return `${offenders.length === 0 ? 'all containment routed through Child' : ''}`;
244
+ });
245
+
246
+ check('the runtime validator reads its native-event list from the catalog', () => {
247
+ const source = readFileSync(join(WC, 'a2ui', 'registry.ts'), 'utf8');
248
+ const code = source.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:])\/\/.*$/gm, '$1');
249
+ if (!/x-native-events/.test(code)) {
250
+ throw new Error('registry.ts no longer reads x-native-events — it has grown a second copy of the list');
251
+ }
252
+ if (/const\s+NATIVE_DOM_EVENTS\s*=\s*new Set\(\[/.test(code)) {
253
+ throw new Error('registry.ts hardcodes a native-event list again; read catalog["x-native-events"] instead');
254
+ }
255
+ });
256
+
257
+ check('the catalog matches the manifest it was generated from', () => {
258
+ if (catalog['x-a2ui']?.libraryVersion !== manifest.version) {
259
+ throw new Error(
260
+ `catalog was built from version ${catalog['x-a2ui']?.libraryVersion}, manifest is ${manifest.version} — regenerate with build:a2ui:catalog`
261
+ );
262
+ }
263
+ if (compact.libraryVersion !== manifest.version) {
264
+ throw new Error(`compact was built from version ${compact.libraryVersion}, manifest is ${manifest.version}`);
265
+ }
266
+ return `all at ${manifest.version}`;
267
+ });
268
+
269
+ // ── Report ───────────────────────────────────────────────────────────
270
+
271
+ for (const note of notes) console.log(note);
272
+ if (failures.length) {
273
+ console.error('\n' + failures.join('\n'));
274
+ console.error(`\n${failures.length} layer(s) out of parity`);
275
+ process.exit(1);
276
+ }
277
+ console.log(`\nok — ${notes.length} parity checks passed; every layer agrees`);
@@ -0,0 +1,298 @@
1
+ {
2
+ "component": "cre8-layout-container",
3
+ "children": [
4
+ {
5
+ "component": "cre8-heading",
6
+ "props": {
7
+ "tagVariant": "h1",
8
+ "type": "headline-large"
9
+ },
10
+ "children": [
11
+ "Compound components, worked"
12
+ ]
13
+ },
14
+ {
15
+ "component": "cre8-text-passage",
16
+ "children": [
17
+ "Every family below is nested the way its Storybook story nests it. This spec exists so get_composition can answer from ground truth rather than from a naming rule."
18
+ ]
19
+ },
20
+ {
21
+ "component": "cre8-accordion",
22
+ "props": {
23
+ "borderType": "rounded",
24
+ "hasDivider": true
25
+ },
26
+ "children": [
27
+ {
28
+ "component": "cre8-accordion-item",
29
+ "props": {
30
+ "heading": "What is a surface?",
31
+ "headingTagVariant": "h3",
32
+ "isActive": true
33
+ },
34
+ "slots": {
35
+ "default": [
36
+ {
37
+ "component": "cre8-text-passage",
38
+ "children": [
39
+ "A region of UI an agent builds up over time while someone watches it happen."
40
+ ]
41
+ }
42
+ ]
43
+ }
44
+ },
45
+ {
46
+ "component": "cre8-accordion-item",
47
+ "props": {
48
+ "heading": "How do patches address a node?",
49
+ "headingTagVariant": "h3"
50
+ },
51
+ "slots": {
52
+ "default": [
53
+ {
54
+ "component": "cre8-text-passage",
55
+ "children": [
56
+ "By the position path the renderer already emits on events: $.slots.footer[0]."
57
+ ]
58
+ }
59
+ ]
60
+ }
61
+ }
62
+ ]
63
+ },
64
+ {
65
+ "component": "cre8-divider"
66
+ },
67
+ {
68
+ "component": "cre8-tag-list",
69
+ "props": {
70
+ "label": "Topics",
71
+ "fieldId": "topics"
72
+ },
73
+ "children": [
74
+ {
75
+ "component": "cre8-tag",
76
+ "props": {
77
+ "text": "Design tokens",
78
+ "type": "checkbox",
79
+ "variant": "neutral",
80
+ "shape": "round",
81
+ "name": "topics"
82
+ }
83
+ },
84
+ {
85
+ "component": "cre8-tag",
86
+ "props": {
87
+ "text": "Streaming UI",
88
+ "type": "checkbox",
89
+ "variant": "neutral",
90
+ "shape": "round",
91
+ "name": "topics"
92
+ }
93
+ },
94
+ {
95
+ "component": "cre8-tag",
96
+ "props": {
97
+ "text": "Accessibility",
98
+ "type": "checkbox",
99
+ "variant": "neutral",
100
+ "shape": "round",
101
+ "name": "topics"
102
+ }
103
+ },
104
+ {
105
+ "component": "cre8-tag",
106
+ "props": {
107
+ "text": "Web components",
108
+ "type": "checkbox",
109
+ "variant": "neutral",
110
+ "shape": "round",
111
+ "name": "topics"
112
+ }
113
+ }
114
+ ]
115
+ },
116
+ {
117
+ "component": "cre8-divider"
118
+ },
119
+ {
120
+ "component": "cre8-checkbox-field",
121
+ "props": {
122
+ "label": "Notify me about",
123
+ "fieldNote": "You can change this later."
124
+ },
125
+ "children": [
126
+ {
127
+ "component": "cre8-checkbox-field-item",
128
+ "props": {
129
+ "label": "Catalog changes",
130
+ "name": "notify",
131
+ "value": "catalog",
132
+ "checked": true
133
+ }
134
+ },
135
+ {
136
+ "component": "cre8-checkbox-field-item",
137
+ "props": {
138
+ "label": "Breaking spec changes",
139
+ "name": "notify",
140
+ "value": "breaking"
141
+ }
142
+ }
143
+ ]
144
+ },
145
+ {
146
+ "component": "cre8-divider"
147
+ },
148
+ {
149
+ "component": "cre8-list",
150
+ "children": [
151
+ {
152
+ "component": "cre8-list-item",
153
+ "children": [
154
+ "Validate before returning a spec."
155
+ ]
156
+ },
157
+ {
158
+ "component": "cre8-list-item",
159
+ "children": [
160
+ "Look up children-vs-slots; it cannot be guessed."
161
+ ]
162
+ },
163
+ {
164
+ "component": "cre8-list-item",
165
+ "children": [
166
+ "Stream tokens with appendText, not by resending the tree."
167
+ ]
168
+ }
169
+ ]
170
+ },
171
+ {
172
+ "component": "cre8-divider"
173
+ },
174
+ {
175
+ "component": "cre8-link-list",
176
+ "props": {
177
+ "behavior": "responsive"
178
+ },
179
+ "children": [
180
+ {
181
+ "component": "cre8-link-list-item",
182
+ "props": {
183
+ "href": "/docs/kb"
184
+ },
185
+ "slots": {
186
+ "default": [
187
+ "Knowledge base"
188
+ ]
189
+ }
190
+ },
191
+ {
192
+ "component": "cre8-link-list-item",
193
+ "props": {
194
+ "href": "/a2ui/catalog"
195
+ },
196
+ "slots": {
197
+ "default": [
198
+ "A2UI catalog"
199
+ ]
200
+ }
201
+ }
202
+ ]
203
+ },
204
+ {
205
+ "component": "cre8-divider"
206
+ },
207
+ {
208
+ "component": "cre8-progress-steps",
209
+ "children": [
210
+ {
211
+ "component": "cre8-progress-steps-item",
212
+ "props": {
213
+ "name": "Open surface",
214
+ "message": "Returned a URL",
215
+ "state": "complete"
216
+ }
217
+ },
218
+ {
219
+ "component": "cre8-progress-steps-item",
220
+ "props": {
221
+ "name": "Stream ops",
222
+ "message": "Patching live",
223
+ "state": "current"
224
+ }
225
+ },
226
+ {
227
+ "component": "cre8-progress-steps-item",
228
+ "props": {
229
+ "name": "Await events",
230
+ "message": "Waiting on a click"
231
+ }
232
+ }
233
+ ]
234
+ },
235
+ {
236
+ "component": "cre8-divider"
237
+ },
238
+ {
239
+ "component": "cre8-breadcrumbs",
240
+ "props": {
241
+ "navAriaLabel": "Breadcrumb"
242
+ },
243
+ "children": [
244
+ {
245
+ "component": "cre8-breadcrumbs-item",
246
+ "children": [
247
+ {
248
+ "component": "cre8-text-link",
249
+ "props": {
250
+ "href": "/docs"
251
+ },
252
+ "slots": {
253
+ "default": [
254
+ "Docs"
255
+ ]
256
+ }
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ "component": "cre8-breadcrumbs-item",
262
+ "children": [
263
+ "Streaming UI"
264
+ ]
265
+ }
266
+ ]
267
+ },
268
+ {
269
+ "component": "cre8-divider"
270
+ },
271
+ {
272
+ "component": "cre8-dropdown",
273
+ "props": {
274
+ "buttonText": "Theme"
275
+ },
276
+ "children": [
277
+ {
278
+ "component": "cre8-dropdown-item",
279
+ "props": {
280
+ "ariaLabel": "Use the cre8 brand"
281
+ },
282
+ "children": [
283
+ "cre8"
284
+ ]
285
+ },
286
+ {
287
+ "component": "cre8-dropdown-item",
288
+ "props": {
289
+ "ariaLabel": "Use the a2ui brand"
290
+ },
291
+ "children": [
292
+ "cre8-a2ui"
293
+ ]
294
+ }
295
+ ]
296
+ }
297
+ ]
298
+ }