@kerfjs/ui 5.0.0-beta.56 → 5.0.0-beta.58

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 (287) hide show
  1. package/README.md +81 -37
  2. package/ai/application-ui-diagnostic-ids-v1.json +9 -1
  3. package/ai/application-ui-profile-sync.cjs +1 -1
  4. package/ai/application-ui-profile.defaults.json +63 -8
  5. package/ai/application-ui-profile.mjs +1 -1
  6. package/ai/component-catalog.json +211 -33
  7. package/ai/component-catalog.schema.json +2 -0
  8. package/ai/component-class-owners.cjs +83 -0
  9. package/ai/component-composition-extension.d.ts +7 -0
  10. package/ai/component-composition-extension.schema.json +7 -0
  11. package/ai/{component-catalog-v2-overrides.json → component-composition-rules.json} +2 -1
  12. package/ai/{component-catalog-v2.d.ts → component-composition.d.ts} +9 -5
  13. package/ai/{component-catalog-v2.json → component-composition.json} +155 -24
  14. package/ai/{component-catalog-v2.schema.json → component-composition.schema.json} +21 -5
  15. package/ai/components/README.md +170 -0
  16. package/ai/components/application-tabs.md +65 -0
  17. package/ai/components/badge.md +72 -0
  18. package/ai/components/collapsible-panel.md +102 -0
  19. package/ai/components/content-item.md +90 -0
  20. package/ai/components/disclosure-arrow.md +77 -0
  21. package/ai/components/document-baseline.md +75 -0
  22. package/ai/components/empty-state.md +80 -0
  23. package/ai/components/feedback.md +71 -0
  24. package/ai/components/floating-toolbar.md +80 -0
  25. package/ai/components/foundation.md +65 -0
  26. package/ai/components/grid.md +93 -0
  27. package/ai/components/headers.md +63 -0
  28. package/ai/components/layout.md +75 -0
  29. package/ai/components/list-action-row.md +91 -0
  30. package/ai/components/list-header.md +89 -0
  31. package/ai/components/list-inset-control.md +74 -0
  32. package/ai/components/list-inset-text.md +72 -0
  33. package/ai/components/list-item.md +88 -0
  34. package/ai/components/list.md +103 -0
  35. package/ai/components/loading-spinner.md +72 -0
  36. package/ai/components/lucide-icon.md +66 -0
  37. package/ai/components/nav-stack.md +103 -0
  38. package/ai/components/pane.md +100 -0
  39. package/ai/components/popup-menu.md +82 -0
  40. package/ai/components/recipe-app-shell.md +57 -0
  41. package/ai/components/recipe-collapsible-sidebar.md +57 -0
  42. package/ai/components/recipe-compact-toolbar.md +57 -0
  43. package/ai/components/recipe-composer-form.md +57 -0
  44. package/ai/components/recipe-list-detail-dialog.md +57 -0
  45. package/ai/components/recipe-list-workspace-states.md +57 -0
  46. package/ai/components/recipe-loading-inspector.md +57 -0
  47. package/ai/components/recipe-navigation-sidebar.md +57 -0
  48. package/ai/components/recipe-navigation-stack.md +57 -0
  49. package/ai/components/recipe-workspace-header.md +57 -0
  50. package/ai/components/resize.md +101 -0
  51. package/ai/components/row.md +96 -0
  52. package/ai/components/segmented-control.md +82 -0
  53. package/ai/components/select.md +107 -0
  54. package/ai/components/skeleton.md +84 -0
  55. package/ai/components/spacer.md +86 -0
  56. package/ai/components/split-view.md +102 -0
  57. package/ai/components/state-banner.md +92 -0
  58. package/ai/components/sunken-panel.md +79 -0
  59. package/ai/components/surface-scaffold.md +78 -0
  60. package/ai/components/tab-bar.md +112 -0
  61. package/ai/components/tab-scaffold.md +94 -0
  62. package/ai/components/tabs.md +90 -0
  63. package/ai/components/text.md +82 -0
  64. package/ai/components/token-search-field.md +101 -0
  65. package/ai/components/toolbar-control-group.md +102 -0
  66. package/ai/components/toolbar-text.md +76 -0
  67. package/ai/components/toolbar.md +95 -0
  68. package/ai/components/value-table.md +72 -0
  69. package/ai/components/wa-accordion-item.md +55 -0
  70. package/ai/components/wa-accordion.md +65 -0
  71. package/ai/components/wa-animated-image.md +55 -0
  72. package/ai/components/wa-animation.md +55 -0
  73. package/ai/components/wa-avatar.md +55 -0
  74. package/ai/components/wa-badge.md +55 -0
  75. package/ai/components/wa-breadcrumb-item.md +53 -0
  76. package/ai/components/wa-breadcrumb.md +55 -0
  77. package/ai/components/wa-button-group.md +59 -0
  78. package/ai/components/wa-button.md +55 -0
  79. package/ai/components/wa-callout.md +58 -0
  80. package/ai/components/wa-card.md +59 -0
  81. package/ai/components/wa-carousel-item.md +53 -0
  82. package/ai/components/wa-carousel.md +55 -0
  83. package/ai/components/wa-checkbox-group.md +55 -0
  84. package/ai/components/wa-checkbox.md +55 -0
  85. package/ai/components/wa-color-picker.md +55 -0
  86. package/ai/components/wa-comparison.md +55 -0
  87. package/ai/components/wa-copy-button.md +55 -0
  88. package/ai/components/wa-details.md +61 -0
  89. package/ai/components/wa-dialog.md +59 -0
  90. package/ai/components/wa-divider.md +53 -0
  91. package/ai/components/wa-drawer.md +55 -0
  92. package/ai/components/wa-dropdown-item.md +60 -0
  93. package/ai/components/wa-dropdown.md +60 -0
  94. package/ai/components/wa-format-bytes.md +53 -0
  95. package/ai/components/wa-format-date.md +53 -0
  96. package/ai/components/wa-format-number.md +53 -0
  97. package/ai/components/wa-icon.md +58 -0
  98. package/ai/components/wa-include.md +53 -0
  99. package/ai/components/wa-input.md +59 -0
  100. package/ai/components/wa-intersection-observer.md +53 -0
  101. package/ai/components/wa-known-date.md +53 -0
  102. package/ai/components/wa-markdown.md +53 -0
  103. package/ai/components/wa-mutation-observer.md +53 -0
  104. package/ai/components/wa-number-input.md +55 -0
  105. package/ai/components/wa-option.md +59 -0
  106. package/ai/components/wa-otp-input.md +53 -0
  107. package/ai/components/wa-page.md +53 -0
  108. package/ai/components/wa-pagination.md +55 -0
  109. package/ai/components/wa-popover.md +55 -0
  110. package/ai/components/wa-popup.md +53 -0
  111. package/ai/components/wa-progress-bar.md +53 -0
  112. package/ai/components/wa-progress-ring.md +53 -0
  113. package/ai/components/wa-qr-code.md +53 -0
  114. package/ai/components/wa-radio-group.md +59 -0
  115. package/ai/components/wa-radio.md +55 -0
  116. package/ai/components/wa-random-content.md +53 -0
  117. package/ai/components/wa-rating.md +55 -0
  118. package/ai/components/wa-relative-time.md +53 -0
  119. package/ai/components/wa-resize-observer.md +53 -0
  120. package/ai/components/wa-scroller.md +53 -0
  121. package/ai/components/wa-select.md +63 -0
  122. package/ai/components/wa-skeleton.md +53 -0
  123. package/ai/components/wa-slider.md +55 -0
  124. package/ai/components/wa-spinner.md +58 -0
  125. package/ai/components/wa-split-panel.md +58 -0
  126. package/ai/components/wa-switch.md +53 -0
  127. package/ai/components/wa-tab-group.md +69 -0
  128. package/ai/components/wa-tab-panel.md +60 -0
  129. package/ai/components/wa-tab.md +59 -0
  130. package/ai/components/wa-tag.md +59 -0
  131. package/ai/components/wa-textarea.md +53 -0
  132. package/ai/components/wa-time-input.md +55 -0
  133. package/ai/components/wa-toast-item.md +60 -0
  134. package/ai/components/wa-toast.md +60 -0
  135. package/ai/components/wa-tooltip.md +55 -0
  136. package/ai/components/wa-tree-item.md +55 -0
  137. package/ai/components/wa-tree.md +55 -0
  138. package/ai/components/wa-zoomable-frame.md +55 -0
  139. package/ai/components/workbench.md +114 -0
  140. package/ai/public-api-signatures-v1.md +174 -43
  141. package/ai/skill.md +100 -48
  142. package/ai/webawesome-jsx-signatures-v1.md +1 -1
  143. package/analyzer/component-ownership.d.mts +56 -0
  144. package/analyzer/component-ownership.mjs +184 -0
  145. package/analyzer/index.d.mts +3 -0
  146. package/analyzer/index.mjs +274 -20
  147. package/analyzer/selectors.d.mts +21 -0
  148. package/analyzer/selectors.mjs +212 -0
  149. package/dist/browser/catalog.js +25 -0
  150. package/dist/browser/collapsible-panel.js +7 -0
  151. package/dist/browser/nav-stack.js +8 -0
  152. package/dist/browser/split-view.js +10 -0
  153. package/dist/browser/tab-scaffold.js +4 -0
  154. package/dist/browser/workbench.js +10 -0
  155. package/dist/catalog-resources.d.ts +2 -2
  156. package/dist/catalog.d.ts +3 -3
  157. package/dist/catalog.js +8 -7
  158. package/dist/catalog.js.map +1 -1
  159. package/dist/{chunk-QQOTQTDD.js → chunk-2CCMJTVY.js} +13 -10
  160. package/dist/chunk-2CCMJTVY.js.map +1 -0
  161. package/dist/{chunk-PK4N5QTO.js → chunk-553ASUK6.js} +2 -3
  162. package/dist/chunk-553ASUK6.js.map +1 -0
  163. package/dist/{chunk-G33XC2NB.js → chunk-6YFHCLHG.js} +2 -2
  164. package/dist/chunk-6YFHCLHG.js.map +1 -0
  165. package/dist/{chunk-ZIYOJFZD.js → chunk-7JUBXOIV.js} +17 -4
  166. package/dist/chunk-7JUBXOIV.js.map +1 -0
  167. package/dist/{chunk-T4UZTNZ4.js → chunk-EVYKTVBQ.js} +2 -11
  168. package/dist/chunk-EVYKTVBQ.js.map +1 -0
  169. package/dist/{chunk-AK67F6QN.js → chunk-EZVNC4J6.js} +4 -1
  170. package/dist/chunk-EZVNC4J6.js.map +1 -0
  171. package/dist/{chunk-MA6Z6EIM.js → chunk-F4QMLOXJ.js} +3 -2
  172. package/dist/chunk-F4QMLOXJ.js.map +1 -0
  173. package/dist/chunk-JCV4GXWB.js +249 -0
  174. package/dist/chunk-JCV4GXWB.js.map +1 -0
  175. package/dist/chunk-K47P7QZC.js +17 -0
  176. package/dist/chunk-K47P7QZC.js.map +1 -0
  177. package/dist/{chunk-MOBRFZH3.js → chunk-OUK6QRDR.js} +2 -12
  178. package/dist/chunk-OUK6QRDR.js.map +1 -0
  179. package/dist/{chunk-VNPQDCQZ.js → chunk-QOWG4ZCL.js} +3 -2
  180. package/dist/chunk-QOWG4ZCL.js.map +1 -0
  181. package/dist/{chunk-V65EOWNF.js → chunk-QPUPLNNB.js} +20 -8
  182. package/dist/chunk-QPUPLNNB.js.map +1 -0
  183. package/dist/{chunk-O3EXIBEZ.js → chunk-W4XKTST6.js} +8 -7
  184. package/dist/chunk-W4XKTST6.js.map +1 -0
  185. package/dist/{chunk-K6UNVKDK.js → chunk-XDKAYSVD.js} +3 -1
  186. package/dist/chunk-XDKAYSVD.js.map +1 -0
  187. package/dist/collapsible-panel.d.ts +9 -9
  188. package/dist/collapsible-panel.js +2 -2
  189. package/dist/collapsible-panel.js.map +1 -1
  190. package/dist/index.d.ts +2 -1
  191. package/dist/index.js +11 -9
  192. package/dist/list-action-row.js +2 -1
  193. package/dist/list-header.js +1 -1
  194. package/dist/list-item.js +2 -1
  195. package/dist/nav-stack.d.ts +13 -1
  196. package/dist/nav-stack.js +1 -1
  197. package/dist/pane.d.ts +20 -3
  198. package/dist/pane.js +1 -1
  199. package/dist/{panel-toolbar-C8sF-YZC.d.ts → panel-toolbar-DqwtBxQL.d.ts} +13 -13
  200. package/dist/select.js +1 -1
  201. package/dist/split-view.d.ts +3 -3
  202. package/dist/split-view.js +3 -2
  203. package/dist/split-view.js.map +1 -1
  204. package/dist/state-banner.js +1 -1
  205. package/dist/styles/app-tab.css +31 -0
  206. package/dist/styles/badge.css +19 -11
  207. package/dist/styles/collapsible-panel.css +13 -9
  208. package/dist/styles/floating-toolbar.css +25 -6
  209. package/dist/styles/list-header.css +0 -12
  210. package/dist/styles/list.css +4 -4
  211. package/dist/styles/nav-stack.css +46 -19
  212. package/dist/styles/pane.css +50 -0
  213. package/dist/styles/popup-menu.css +151 -0
  214. package/dist/styles/resizable-region.css +22 -10
  215. package/dist/styles/select.css +28 -14
  216. package/dist/styles/skeleton.css +30 -3
  217. package/dist/styles/split-view.css +10 -7
  218. package/dist/styles/state-banner.css +0 -19
  219. package/dist/styles/surface-scaffold.css +8 -3
  220. package/dist/styles/tab-bar.css +79 -28
  221. package/dist/styles/tab-scaffold.css +25 -1
  222. package/dist/styles/text.css +16 -0
  223. package/dist/styles/toolbar-control-group.css +121 -66
  224. package/dist/styles/toolbar-text.css +21 -0
  225. package/dist/styles/toolbar.css +8 -32
  226. package/dist/styles/workbench.css +18 -18
  227. package/dist/tab-scaffold.d.ts +11 -1
  228. package/dist/tab-scaffold.js +2 -0
  229. package/dist/tab-scaffold.js.map +1 -1
  230. package/dist/toolbar-control-group.d.ts +3 -1
  231. package/dist/toolbar-control-group.js +1 -1
  232. package/dist/toolbar-text.d.ts +7 -1
  233. package/dist/toolbar-text.js +1 -1
  234. package/dist/toolbar.d.ts +8 -1
  235. package/dist/toolbar.js +1 -1
  236. package/dist/{types-DXAGogOS.d.ts → types-BuHELdXR.d.ts} +1 -1
  237. package/dist/wire-catalog.d.ts +3 -1
  238. package/dist/wire-catalog.js +2 -0
  239. package/dist/wire-catalog.js.map +1 -1
  240. package/dist/wire-scroll-dividers.d.ts +69 -0
  241. package/dist/wire-scroll-dividers.js +3 -0
  242. package/dist/wire-scroll-dividers.js.map +1 -0
  243. package/dist/workbench.d.ts +17 -16
  244. package/dist/workbench.js +1 -1
  245. package/docs/app-layouts.md +9 -1
  246. package/docs/catalog.md +10 -5
  247. package/docs/collapsible-panel.md +22 -13
  248. package/docs/component-contract.md +147 -21
  249. package/docs/component-selection.md +21 -8
  250. package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -1
  251. package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -1
  252. package/docs/design/templates/tab-bar-dark.svg +1 -1
  253. package/docs/design/templates/tab-bar.svg +1 -1
  254. package/docs/design-philosophy.md +30 -3
  255. package/docs/examples/application-ui-profile.json +4 -4
  256. package/docs/examples/{component-catalog-extension-v2.json → component-composition-extension.json} +3 -3
  257. package/docs/layout.md +82 -3
  258. package/docs/nav-stack.md +33 -3
  259. package/docs/split-view.md +10 -5
  260. package/docs/tab-scaffold.md +23 -1
  261. package/docs/type-contracts.md +4 -3
  262. package/docs/ui-analyzer.md +99 -5
  263. package/docs/ui-doctor.md +10 -0
  264. package/docs/workbench.md +31 -20
  265. package/doctor/index.mjs +6 -1
  266. package/llms.txt +85 -20
  267. package/package.json +17 -5
  268. package/ux-demo/recipes/collapsible-sidebar.tsx +0 -1
  269. package/ux-demo/recipes/composer-form.tsx +0 -1
  270. package/ux-demo/recipes/list-detail-dialog.tsx +0 -2
  271. package/ux-demo/recipes/list-workspace-states.tsx +0 -1
  272. package/ux-demo/recipes/loading-inspector.tsx +0 -1
  273. package/ux-demo/recipes/workspace-header.tsx +0 -1
  274. package/ai/component-catalog-extension-v2.d.ts +0 -7
  275. package/ai/component-catalog-extension-v2.schema.json +0 -7
  276. package/dist/chunk-AK67F6QN.js.map +0 -1
  277. package/dist/chunk-G33XC2NB.js.map +0 -1
  278. package/dist/chunk-K6UNVKDK.js.map +0 -1
  279. package/dist/chunk-MA6Z6EIM.js.map +0 -1
  280. package/dist/chunk-MOBRFZH3.js.map +0 -1
  281. package/dist/chunk-O3EXIBEZ.js.map +0 -1
  282. package/dist/chunk-PK4N5QTO.js.map +0 -1
  283. package/dist/chunk-QQOTQTDD.js.map +0 -1
  284. package/dist/chunk-T4UZTNZ4.js.map +0 -1
  285. package/dist/chunk-V65EOWNF.js.map +0 -1
  286. package/dist/chunk-VNPQDCQZ.js.map +0 -1
  287. package/dist/chunk-ZIYOJFZD.js.map +0 -1
@@ -0,0 +1,55 @@
1
+ # Animation
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-animation` · Web Awesome · component · Helpers · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Declarative Web Animations API wrapper with preset effects.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/animation/animation.js` once (a side effect).
19
+ - Custom element: `<wa-animation>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+ - Built from: [Select](./select.md).
32
+
33
+ ## State and wiring
34
+
35
+ No wiring helper.
36
+
37
+ ## Geometry
38
+
39
+ Margin: none · border: child · padding: child (layout role: helpers). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
40
+
41
+ ## Accessibility
42
+
43
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
44
+
45
+ ## Styling boundary
46
+
47
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
48
+
49
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
50
+
51
+ ## Related
52
+
53
+ - Components: [Select](./select.md).
54
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
55
+ - UX catalog route: `?component=wa-animation`.
@@ -0,0 +1,55 @@
1
+ # Avatar
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-avatar` · Web Awesome · component · Media · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Person or entity image with initials fallback.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/avatar/avatar.js` once (a side effect).
19
+ - Custom element: `<wa-avatar>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+ - Built from: [Icon](./wa-icon.md).
32
+
33
+ ## State and wiring
34
+
35
+ No wiring helper.
36
+
37
+ ## Geometry
38
+
39
+ Margin: none · border: self · padding: none (layout role: media). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
40
+
41
+ ## Accessibility
42
+
43
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
44
+
45
+ ## Styling boundary
46
+
47
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
48
+
49
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
50
+
51
+ ## Related
52
+
53
+ - Components: [Icon](./wa-icon.md).
54
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
55
+ - UX catalog route: `?component=wa-avatar`.
@@ -0,0 +1,55 @@
1
+ # Badge
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-badge` · Web Awesome · component · Feedback · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Compact status or count label with semantic variants.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/badge/badge.js` once (a side effect).
19
+ - Custom element: `<wa-badge>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+
32
+ ## State and wiring
33
+
34
+ No wiring helper.
35
+
36
+ ## Geometry
37
+
38
+ Margin: none · border: self · padding: self (layout role: feedback). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
39
+
40
+ ## Accessibility
41
+
42
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
43
+
44
+ ## Styling boundary
45
+
46
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
47
+
48
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
49
+
50
+ Public tokens it reads: `--kui-wa-badge-accent-foreground`, `--kui-wa-badge-filled-background`, `--kui-wa-badge-filled-foreground`. Set a token only where its public contract allows; prefer a prop.
51
+
52
+ ## Related
53
+
54
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
55
+ - UX catalog route: `?component=wa-badge`.
@@ -0,0 +1,53 @@
1
+ # Breadcrumb Item
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-breadcrumb-item` · Web Awesome · component · Navigation · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ One link or current-location item in a breadcrumb.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/breadcrumb-item/breadcrumb-item.js` once (a side effect).
19
+ - Custom element: `<wa-breadcrumb-item>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+
32
+ ## State and wiring
33
+
34
+ No wiring helper.
35
+
36
+ ## Geometry
37
+
38
+ Margin: none · border: none · padding: none (layout role: navigation). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
39
+
40
+ ## Accessibility
41
+
42
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
43
+
44
+ ## Styling boundary
45
+
46
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
47
+
48
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
49
+
50
+ ## Related
51
+
52
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
53
+ - UX catalog route: `?component=wa-breadcrumb-item`.
@@ -0,0 +1,55 @@
1
+ # Breadcrumb
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-breadcrumb` · Web Awesome · component · Navigation · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Ordered navigation trail for the current location.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/breadcrumb/breadcrumb.js` once (a side effect).
19
+ - Custom element: `<wa-breadcrumb>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+ - Built from: [Icon](./wa-icon.md), [Breadcrumb Item](./wa-breadcrumb-item.md).
32
+
33
+ ## State and wiring
34
+
35
+ No wiring helper.
36
+
37
+ ## Geometry
38
+
39
+ Margin: none · border: child · padding: child (layout role: navigation). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
40
+
41
+ ## Accessibility
42
+
43
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
44
+
45
+ ## Styling boundary
46
+
47
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
48
+
49
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
50
+
51
+ ## Related
52
+
53
+ - Components: [Icon](./wa-icon.md), [Breadcrumb Item](./wa-breadcrumb-item.md).
54
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
55
+ - UX catalog route: `?component=wa-breadcrumb`.
@@ -0,0 +1,59 @@
1
+ # Button Group
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-button-group` · Web Awesome · component · Actions · recommendation: conditional
6
+
7
+ ## When to use
8
+
9
+ Exceptional grouped actions; prefer Kerf SegmentedControl for exclusive choices.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ **Alternatives:**
16
+
17
+ - [SegmentedControl](./segmented-control.md) (prefer-kerf)
18
+
19
+ ## Imports
20
+
21
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
22
+ - Registration: import `@awesome.me/webawesome/dist/components/button-group/button-group.js` once (a side effect).
23
+ - Custom element: `<wa-button-group>`.
24
+ - Declared side effects: custom-element-registration.
25
+
26
+ ## Props
27
+
28
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
29
+
30
+ ## Composition
31
+
32
+ - Parents: any.
33
+ - Contexts: `application-ui`.
34
+ - Children: unrestricted.
35
+ - Built from: [Button](./wa-button.md).
36
+
37
+ ## State and wiring
38
+
39
+ No wiring helper.
40
+
41
+ ## Geometry
42
+
43
+ Margin: none · border: child · padding: child (layout role: actions). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
44
+
45
+ ## Accessibility
46
+
47
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
48
+
49
+ ## Styling boundary
50
+
51
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
52
+
53
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
54
+
55
+ ## Related
56
+
57
+ - Components: [Button](./wa-button.md), [SegmentedControl](./segmented-control.md).
58
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage), [`docs/component-selection.md#web-awesome-overlap-policy`](../../docs/component-selection.md#web-awesome-overlap-policy).
59
+ - UX catalog route: `?component=wa-button-group`.
@@ -0,0 +1,55 @@
1
+ # Button
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-button` · Web Awesome · component · Actions · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Action control with semantic variants, appearances, loading, and icon support.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/button/button.js` once (a side effect).
19
+ - Custom element: `<wa-button>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+ - Built from: [Icon](./wa-icon.md), [Spinner](./wa-spinner.md).
32
+
33
+ ## State and wiring
34
+
35
+ No wiring helper.
36
+
37
+ ## Geometry
38
+
39
+ Margin: none · border: self · padding: self (layout role: actions). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
40
+
41
+ ## Accessibility
42
+
43
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
44
+
45
+ ## Styling boundary
46
+
47
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
48
+
49
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
50
+
51
+ ## Related
52
+
53
+ - Components: [Icon](./wa-icon.md), [Spinner](./wa-spinner.md).
54
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
55
+ - UX catalog route: `?component=wa-button`.
@@ -0,0 +1,58 @@
1
+ # Callout
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-callout` · Web Awesome · component · Feedback · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Prominent contextual message with semantic variants.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ **Alternatives:**
16
+
17
+ - [StateBanner](./state-banner.md) (prefer-kerf)
18
+
19
+ ## Imports
20
+
21
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
22
+ - Registration: import `@awesome.me/webawesome/dist/components/callout/callout.js` once (a side effect).
23
+ - Custom element: `<wa-callout>`.
24
+ - Declared side effects: custom-element-registration.
25
+
26
+ ## Props
27
+
28
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
29
+
30
+ ## Composition
31
+
32
+ - Parents: any.
33
+ - Contexts: `application-ui`.
34
+ - Children: unrestricted.
35
+
36
+ ## State and wiring
37
+
38
+ No wiring helper.
39
+
40
+ ## Geometry
41
+
42
+ Margin: self · border: self · padding: self (layout role: feedback). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
43
+
44
+ ## Accessibility
45
+
46
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
47
+
48
+ ## Styling boundary
49
+
50
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
51
+
52
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
53
+
54
+ ## Related
55
+
56
+ - Components: [StateBanner](./state-banner.md).
57
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage), [`docs/component-selection.md#web-awesome-overlap-policy`](../../docs/component-selection.md#web-awesome-overlap-policy).
58
+ - UX catalog route: `?component=wa-callout`.
@@ -0,0 +1,59 @@
1
+ # Card
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-card` · Web Awesome · component · Layout · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Groups related content and optional header, media, and footer slots.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/card/card.js` once (a side effect).
19
+ - Custom element: `<wa-card>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ **Variants (configure, do not restyle):**
27
+
28
+ - sunken appearance
29
+
30
+ ## Composition
31
+
32
+ - Parents: any.
33
+ - Contexts: `application-ui`.
34
+ - Children: unrestricted.
35
+
36
+ ## State and wiring
37
+
38
+ No wiring helper.
39
+
40
+ ## Geometry
41
+
42
+ Margin: self · border: self · padding: self (layout role: layout). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
43
+
44
+ ## Accessibility
45
+
46
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
47
+
48
+ ## Styling boundary
49
+
50
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
51
+
52
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
53
+
54
+ Public tokens it reads: `--kui-wa-surface-margin`, `--kui-wa-surface-inset`, `--kui-wa-sunken-background`, `--kui-wa-sunken-radius`. Set a token only where its public contract allows; prefer a prop.
55
+
56
+ ## Related
57
+
58
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
59
+ - UX catalog route: `?component=wa-card`.
@@ -0,0 +1,53 @@
1
+ # Carousel Item
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-carousel-item` · Web Awesome · component · Media · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ One content slide inside a carousel.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/carousel-item/carousel-item.js` once (a side effect).
19
+ - Custom element: `<wa-carousel-item>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+
32
+ ## State and wiring
33
+
34
+ No wiring helper.
35
+
36
+ ## Geometry
37
+
38
+ Margin: none · border: none · padding: none (layout role: media). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
39
+
40
+ ## Accessibility
41
+
42
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
43
+
44
+ ## Styling boundary
45
+
46
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
47
+
48
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
49
+
50
+ ## Related
51
+
52
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
53
+ - UX catalog route: `?component=wa-carousel-item`.
@@ -0,0 +1,55 @@
1
+ # Carousel
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-carousel` · Web Awesome · component · Media · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Navigable horizontal or vertical collection of slides.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/carousel/carousel.js` once (a side effect).
19
+ - Custom element: `<wa-carousel>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+ - Built from: [Icon](./wa-icon.md), [Carousel Item](./wa-carousel-item.md).
32
+
33
+ ## State and wiring
34
+
35
+ No wiring helper.
36
+
37
+ ## Geometry
38
+
39
+ Margin: none · border: self · padding: child (layout role: media). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
40
+
41
+ ## Accessibility
42
+
43
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
44
+
45
+ ## Styling boundary
46
+
47
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
48
+
49
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
50
+
51
+ ## Related
52
+
53
+ - Components: [Icon](./wa-icon.md), [Carousel Item](./wa-carousel-item.md).
54
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
55
+ - UX catalog route: `?component=wa-carousel`.
@@ -0,0 +1,55 @@
1
+ # Checkbox Group
2
+
3
+ <!-- Generated by scripts/sync-component-docs.mjs from ai/component-catalog.json and ai/component-composition.json. Do not edit; run `npm run catalog:sync`. -->
4
+
5
+ `@kerfjs/ui:wa-checkbox-group` · Web Awesome · component · Forms · recommendation: supported
6
+
7
+ ## When to use
8
+
9
+ Labels and validates a related set of checkboxes.
10
+
11
+ **Not when:**
12
+
13
+ - Do not choose it from catalog presence alone; confirm that its semantic and interaction contract matches the product need.
14
+
15
+ ## Imports
16
+
17
+ - Theme CSS: import `@kerfjs/ui/webawesome.css` once.
18
+ - Registration: import `@awesome.me/webawesome/dist/components/checkbox-group/checkbox-group.js` once (a side effect).
19
+ - Custom element: `<wa-checkbox-group>`.
20
+ - Declared side effects: custom-element-registration.
21
+
22
+ ## Props
23
+
24
+ Typed JSX attributes: [`webawesome-jsx-signatures-v1.md`](../webawesome-jsx-signatures-v1.md) (import `@kerfjs/ui/webawesome` for types only). Use the Web Awesome attribute API; do not reach into its shadow DOM.
25
+
26
+ ## Composition
27
+
28
+ - Parents: any.
29
+ - Contexts: `application-ui`.
30
+ - Children: unrestricted.
31
+ - Built from: [Checkbox](./wa-checkbox.md).
32
+
33
+ ## State and wiring
34
+
35
+ No wiring helper.
36
+
37
+ ## Geometry
38
+
39
+ Margin: self · border: child · padding: child (layout role: forms). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
40
+
41
+ ## Accessibility
42
+
43
+ No component-specific obligations beyond native semantics and a visible or accessible name for every control.
44
+
45
+ ## Styling boundary
46
+
47
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
48
+
49
+ Theme it only through `@kerfjs/ui/webawesome.css` and cataloged tokens. Do not restyle its shadow DOM or uncataloged `::part()` targets (`KUI-L011`).
50
+
51
+ ## Related
52
+
53
+ - Components: [Checkbox](./wa-checkbox.md).
54
+ - Docs: [`docs/webawesome-theme.md#coverage`](../../docs/webawesome-theme.md#coverage).
55
+ - UX catalog route: `?component=wa-checkbox-group`.