@kerfjs/ui 5.0.0-beta.9 → 5.0.0-beta.90

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 (802) hide show
  1. package/README.md +540 -132
  2. package/ai/application-ui-diagnostic-ids-v1.json +113 -0
  3. package/ai/application-ui-profile-sync.cjs +548 -0
  4. package/ai/application-ui-profile.d.mts +1 -0
  5. package/ai/application-ui-profile.d.ts +106 -0
  6. package/ai/application-ui-profile.defaults.json +96 -0
  7. package/ai/application-ui-profile.mjs +653 -0
  8. package/ai/application-ui-profile.schema.json +140 -0
  9. package/ai/catalog-authoring.json +34 -0
  10. package/ai/catalog-authoring.schema.json +105 -0
  11. package/ai/compile-time-contracts-v1.json +149 -0
  12. package/ai/compile-time-contracts-v1.schema.json +52 -0
  13. package/ai/component-catalog-extension.schema.json +104 -0
  14. package/ai/component-catalog.json +4487 -633
  15. package/ai/component-catalog.schema.json +94 -1
  16. package/ai/component-class-owners.cjs +83 -0
  17. package/ai/component-composition-extension.d.ts +7 -0
  18. package/ai/component-composition-extension.schema.json +7 -0
  19. package/ai/component-composition-rules.json +520 -0
  20. package/ai/component-composition.d.ts +129 -0
  21. package/ai/component-composition.json +7470 -0
  22. package/ai/component-composition.schema.json +408 -0
  23. package/ai/components/README.md +172 -0
  24. package/ai/components/anchored-surface.md +86 -0
  25. package/ai/components/application-tabs.md +65 -0
  26. package/ai/components/badge.md +72 -0
  27. package/ai/components/chip.md +72 -0
  28. package/ai/components/collapsible-panel.md +102 -0
  29. package/ai/components/content-item.md +96 -0
  30. package/ai/components/disclosure-arrow.md +77 -0
  31. package/ai/components/document-baseline.md +75 -0
  32. package/ai/components/empty-state.md +80 -0
  33. package/ai/components/feedback.md +71 -0
  34. package/ai/components/floating-toolbar.md +82 -0
  35. package/ai/components/foundation.md +65 -0
  36. package/ai/components/grid.md +100 -0
  37. package/ai/components/headers.md +63 -0
  38. package/ai/components/layout.md +75 -0
  39. package/ai/components/list-action-row.md +91 -0
  40. package/ai/components/list-header.md +91 -0
  41. package/ai/components/list-inset-control.md +74 -0
  42. package/ai/components/list-inset-text.md +72 -0
  43. package/ai/components/list-item.md +94 -0
  44. package/ai/components/list.md +106 -0
  45. package/ai/components/loading-spinner.md +73 -0
  46. package/ai/components/lucide-icon.md +97 -0
  47. package/ai/components/nav-stack.md +105 -0
  48. package/ai/components/pane.md +106 -0
  49. package/ai/components/popup-menu.md +171 -0
  50. package/ai/components/recipe-app-shell.md +57 -0
  51. package/ai/components/recipe-collapsible-sidebar.md +57 -0
  52. package/ai/components/recipe-compact-toolbar.md +57 -0
  53. package/ai/components/recipe-composer-form.md +57 -0
  54. package/ai/components/recipe-list-detail-dialog.md +57 -0
  55. package/ai/components/recipe-list-workspace-states.md +57 -0
  56. package/ai/components/recipe-loading-inspector.md +57 -0
  57. package/ai/components/recipe-navigation-sidebar.md +57 -0
  58. package/ai/components/recipe-navigation-stack.md +57 -0
  59. package/ai/components/recipe-workspace-header.md +57 -0
  60. package/ai/components/resize.md +106 -0
  61. package/ai/components/row.md +96 -0
  62. package/ai/components/segmented-control.md +82 -0
  63. package/ai/components/select.md +115 -0
  64. package/ai/components/skeleton.md +84 -0
  65. package/ai/components/spacer.md +86 -0
  66. package/ai/components/split-view.md +103 -0
  67. package/ai/components/state-banner.md +94 -0
  68. package/ai/components/sunken-panel.md +79 -0
  69. package/ai/components/surface-scaffold.md +87 -0
  70. package/ai/components/tab-bar.md +113 -0
  71. package/ai/components/tab-navigator.md +96 -0
  72. package/ai/components/tabs.md +95 -0
  73. package/ai/components/text.md +87 -0
  74. package/ai/components/token-search-field.md +107 -0
  75. package/ai/components/toolbar-control-group.md +121 -0
  76. package/ai/components/toolbar-text.md +98 -0
  77. package/ai/components/toolbar.md +101 -0
  78. package/ai/components/value-table.md +73 -0
  79. package/ai/components/wa-accordion-item.md +55 -0
  80. package/ai/components/wa-accordion.md +65 -0
  81. package/ai/components/wa-animated-image.md +55 -0
  82. package/ai/components/wa-animation.md +55 -0
  83. package/ai/components/wa-avatar.md +55 -0
  84. package/ai/components/wa-badge.md +55 -0
  85. package/ai/components/wa-breadcrumb-item.md +53 -0
  86. package/ai/components/wa-breadcrumb.md +55 -0
  87. package/ai/components/wa-button-group.md +59 -0
  88. package/ai/components/wa-button.md +55 -0
  89. package/ai/components/wa-callout.md +58 -0
  90. package/ai/components/wa-card.md +59 -0
  91. package/ai/components/wa-carousel-item.md +53 -0
  92. package/ai/components/wa-carousel.md +55 -0
  93. package/ai/components/wa-checkbox-group.md +55 -0
  94. package/ai/components/wa-checkbox.md +55 -0
  95. package/ai/components/wa-color-picker.md +55 -0
  96. package/ai/components/wa-comparison.md +55 -0
  97. package/ai/components/wa-copy-button.md +55 -0
  98. package/ai/components/wa-details.md +61 -0
  99. package/ai/components/wa-dialog.md +59 -0
  100. package/ai/components/wa-divider.md +53 -0
  101. package/ai/components/wa-drawer.md +55 -0
  102. package/ai/components/wa-dropdown-item.md +60 -0
  103. package/ai/components/wa-dropdown.md +60 -0
  104. package/ai/components/wa-format-bytes.md +53 -0
  105. package/ai/components/wa-format-date.md +53 -0
  106. package/ai/components/wa-format-number.md +53 -0
  107. package/ai/components/wa-icon.md +58 -0
  108. package/ai/components/wa-include.md +53 -0
  109. package/ai/components/wa-input.md +59 -0
  110. package/ai/components/wa-intersection-observer.md +53 -0
  111. package/ai/components/wa-known-date.md +53 -0
  112. package/ai/components/wa-markdown.md +53 -0
  113. package/ai/components/wa-mutation-observer.md +53 -0
  114. package/ai/components/wa-number-input.md +55 -0
  115. package/ai/components/wa-option.md +59 -0
  116. package/ai/components/wa-otp-input.md +53 -0
  117. package/ai/components/wa-page.md +53 -0
  118. package/ai/components/wa-pagination.md +55 -0
  119. package/ai/components/wa-popover.md +55 -0
  120. package/ai/components/wa-popup.md +53 -0
  121. package/ai/components/wa-progress-bar.md +53 -0
  122. package/ai/components/wa-progress-ring.md +53 -0
  123. package/ai/components/wa-qr-code.md +53 -0
  124. package/ai/components/wa-radio-group.md +59 -0
  125. package/ai/components/wa-radio.md +55 -0
  126. package/ai/components/wa-random-content.md +53 -0
  127. package/ai/components/wa-rating.md +55 -0
  128. package/ai/components/wa-relative-time.md +53 -0
  129. package/ai/components/wa-resize-observer.md +53 -0
  130. package/ai/components/wa-scroller.md +53 -0
  131. package/ai/components/wa-select.md +63 -0
  132. package/ai/components/wa-skeleton.md +53 -0
  133. package/ai/components/wa-slider.md +55 -0
  134. package/ai/components/wa-spinner.md +58 -0
  135. package/ai/components/wa-split-panel.md +58 -0
  136. package/ai/components/wa-switch.md +53 -0
  137. package/ai/components/wa-tab-group.md +69 -0
  138. package/ai/components/wa-tab-panel.md +60 -0
  139. package/ai/components/wa-tab.md +59 -0
  140. package/ai/components/wa-tag.md +59 -0
  141. package/ai/components/wa-textarea.md +53 -0
  142. package/ai/components/wa-time-input.md +55 -0
  143. package/ai/components/wa-toast-item.md +60 -0
  144. package/ai/components/wa-toast.md +60 -0
  145. package/ai/components/wa-tooltip.md +55 -0
  146. package/ai/components/wa-tree-item.md +55 -0
  147. package/ai/components/wa-tree.md +55 -0
  148. package/ai/components/wa-zoomable-frame.md +55 -0
  149. package/ai/components/workbench.md +119 -0
  150. package/ai/public-api-signatures-v1.md +2835 -351
  151. package/ai/skill.md +401 -63
  152. package/ai/webawesome-jsx-signatures-v1.md +9 -2
  153. package/analyzer/cli.mjs +49 -0
  154. package/analyzer/component-ownership.d.mts +72 -0
  155. package/analyzer/component-ownership.mjs +429 -0
  156. package/analyzer/index.d.mts +53 -0
  157. package/analyzer/index.mjs +2346 -0
  158. package/analyzer/loud-pairs.d.mts +49 -0
  159. package/analyzer/loud-pairs.mjs +357 -0
  160. package/analyzer/report.schema.json +66 -0
  161. package/analyzer/selectors.d.mts +21 -0
  162. package/analyzer/selectors.mjs +212 -0
  163. package/catalog-projection-cli.mjs +96 -0
  164. package/catalog-projection.d.mts +55 -0
  165. package/catalog-projection.mjs +62 -0
  166. package/dist/anchored-surface.d.ts +30 -0
  167. package/dist/anchored-surface.js +3 -0
  168. package/dist/anchored-surface.js.map +1 -0
  169. package/dist/app-tab.d.ts +39 -4
  170. package/dist/app-tab.js +2 -1
  171. package/dist/badge.d.ts +54 -0
  172. package/dist/badge.js +3 -0
  173. package/dist/badge.js.map +1 -0
  174. package/dist/browser/anchored-surface.js +3 -0
  175. package/dist/browser/badge.js +3 -0
  176. package/dist/browser/catalog.js +28 -0
  177. package/dist/browser/chip.js +3 -0
  178. package/dist/browser/collapsible-panel.js +9 -0
  179. package/dist/browser/content-item.js +3 -0
  180. package/dist/browser/floating-toolbar.js +3 -0
  181. package/dist/browser/grid.js +3 -0
  182. package/dist/browser/list-action-row.js +1 -0
  183. package/dist/browser/list-header.js +3 -1
  184. package/dist/browser/list-inset-control.js +3 -0
  185. package/dist/browser/list-inset-text.js +3 -0
  186. package/dist/browser/list-item.js +1 -0
  187. package/dist/browser/list.js +3 -0
  188. package/dist/browser/nav-stack.js +11 -0
  189. package/dist/browser/pane.js +3 -0
  190. package/dist/browser/popup-menu.js +3 -0
  191. package/dist/browser/row.js +3 -0
  192. package/dist/browser/segmented-control.js +0 -1
  193. package/dist/browser/select.js +2 -1
  194. package/dist/browser/spacer.js +3 -0
  195. package/dist/browser/split-view.js +13 -0
  196. package/dist/browser/state-banner.js +1 -0
  197. package/dist/browser/sunken-panel.js +3 -0
  198. package/dist/browser/surface-scaffold.js +3 -0
  199. package/dist/browser/tab-navigator.js +4 -0
  200. package/dist/browser/text.js +3 -0
  201. package/dist/browser/toolbar-control-group.js +1 -0
  202. package/dist/browser/workbench.js +14 -0
  203. package/dist/catalog-resources.d.ts +48 -0
  204. package/dist/catalog-resources.js +22 -0
  205. package/dist/catalog-resources.js.map +1 -0
  206. package/dist/catalog.d.ts +76 -103
  207. package/dist/catalog.js +566 -87
  208. package/dist/catalog.js.map +1 -1
  209. package/dist/chip.d.ts +36 -0
  210. package/dist/chip.js +3 -0
  211. package/dist/chip.js.map +1 -0
  212. package/dist/chunk-2GOCOLQL.js +270 -0
  213. package/dist/chunk-2GOCOLQL.js.map +1 -0
  214. package/dist/{chunk-56RJXPHG.js → chunk-2YPPNFYT.js} +7 -4
  215. package/dist/chunk-2YPPNFYT.js.map +1 -0
  216. package/dist/chunk-3CXRQAYT.js +288 -0
  217. package/dist/chunk-3CXRQAYT.js.map +1 -0
  218. package/dist/chunk-3DXHNLME.js +69 -0
  219. package/dist/chunk-3DXHNLME.js.map +1 -0
  220. package/dist/chunk-3PO7JEK7.js +188 -0
  221. package/dist/chunk-3PO7JEK7.js.map +1 -0
  222. package/dist/chunk-3XPGJUUQ.js +37 -0
  223. package/dist/chunk-3XPGJUUQ.js.map +1 -0
  224. package/dist/chunk-4Y4L5YEI.js +66 -0
  225. package/dist/chunk-4Y4L5YEI.js.map +1 -0
  226. package/dist/chunk-5BZBIRQG.js +452 -0
  227. package/dist/chunk-5BZBIRQG.js.map +1 -0
  228. package/dist/chunk-6IVNMC6R.js +19 -0
  229. package/dist/chunk-6IVNMC6R.js.map +1 -0
  230. package/dist/chunk-7QQ3HE47.js +17 -0
  231. package/dist/chunk-7QQ3HE47.js.map +1 -0
  232. package/dist/chunk-A7DYEERU.js +59 -0
  233. package/dist/chunk-A7DYEERU.js.map +1 -0
  234. package/dist/chunk-AN5IWMTM.js +24 -0
  235. package/dist/chunk-AN5IWMTM.js.map +1 -0
  236. package/dist/chunk-B3TROLC2.js +104 -0
  237. package/dist/chunk-B3TROLC2.js.map +1 -0
  238. package/dist/chunk-BYHGRKC3.js +44 -0
  239. package/dist/chunk-BYHGRKC3.js.map +1 -0
  240. package/dist/chunk-CD5TOO22.js +82 -0
  241. package/dist/chunk-CD5TOO22.js.map +1 -0
  242. package/dist/chunk-CEJ5FK6G.js +288 -0
  243. package/dist/chunk-CEJ5FK6G.js.map +1 -0
  244. package/dist/chunk-DL55BSQX.js +52 -0
  245. package/dist/chunk-DL55BSQX.js.map +1 -0
  246. package/dist/chunk-DQDTZE4W.js +70 -0
  247. package/dist/chunk-DQDTZE4W.js.map +1 -0
  248. package/dist/chunk-FL6J644M.js +116 -0
  249. package/dist/chunk-FL6J644M.js.map +1 -0
  250. package/dist/chunk-GPCAXYMT.js +165 -0
  251. package/dist/chunk-GPCAXYMT.js.map +1 -0
  252. package/dist/chunk-GS2QD3N7.js +14 -0
  253. package/dist/chunk-GS2QD3N7.js.map +1 -0
  254. package/dist/chunk-H45DAZBL.js +491 -0
  255. package/dist/chunk-H45DAZBL.js.map +1 -0
  256. package/dist/chunk-IM3GKYOG.js +202 -0
  257. package/dist/chunk-IM3GKYOG.js.map +1 -0
  258. package/dist/chunk-IOS2NXW7.js +53 -0
  259. package/dist/chunk-IOS2NXW7.js.map +1 -0
  260. package/dist/chunk-J3AWE5I4.js +50 -0
  261. package/dist/chunk-J3AWE5I4.js.map +1 -0
  262. package/dist/chunk-JOR5LGYE.js +55 -0
  263. package/dist/chunk-JOR5LGYE.js.map +1 -0
  264. package/dist/chunk-KAJVVN7Q.js +138 -0
  265. package/dist/chunk-KAJVVN7Q.js.map +1 -0
  266. package/dist/chunk-KL3W6FUN.js +506 -0
  267. package/dist/chunk-KL3W6FUN.js.map +1 -0
  268. package/dist/{chunk-7BR3DO2A.js → chunk-LAZLBC2Q.js} +14 -5
  269. package/dist/chunk-LAZLBC2Q.js.map +1 -0
  270. package/dist/chunk-LFPW4YC6.js +222 -0
  271. package/dist/chunk-LFPW4YC6.js.map +1 -0
  272. package/dist/chunk-MN3POJFN.js +44 -0
  273. package/dist/chunk-MN3POJFN.js.map +1 -0
  274. package/dist/chunk-MORVLMDG.js +59 -0
  275. package/dist/chunk-MORVLMDG.js.map +1 -0
  276. package/dist/chunk-MTCTX25G.js +139 -0
  277. package/dist/chunk-MTCTX25G.js.map +1 -0
  278. package/dist/chunk-MXNIVEVL.js +48 -0
  279. package/dist/chunk-MXNIVEVL.js.map +1 -0
  280. package/dist/chunk-NJZMR7HM.js +135 -0
  281. package/dist/chunk-NJZMR7HM.js.map +1 -0
  282. package/dist/chunk-NMWDHZVM.js +35 -0
  283. package/dist/chunk-NMWDHZVM.js.map +1 -0
  284. package/dist/chunk-NP3FSLNX.js +58 -0
  285. package/dist/chunk-NP3FSLNX.js.map +1 -0
  286. package/dist/{chunk-YGN7OMLT.js → chunk-NS2TBYM4.js} +8 -5
  287. package/dist/chunk-NS2TBYM4.js.map +1 -0
  288. package/dist/chunk-O27D24CA.js +250 -0
  289. package/dist/chunk-O27D24CA.js.map +1 -0
  290. package/dist/chunk-PGL6TXFW.js +48 -0
  291. package/dist/chunk-PGL6TXFW.js.map +1 -0
  292. package/dist/chunk-QQICWWNX.js +71 -0
  293. package/dist/chunk-QQICWWNX.js.map +1 -0
  294. package/dist/chunk-S3ECMF23.js +33 -0
  295. package/dist/chunk-S3ECMF23.js.map +1 -0
  296. package/dist/chunk-S4ZGTDSG.js +18 -0
  297. package/dist/chunk-S4ZGTDSG.js.map +1 -0
  298. package/dist/chunk-SJW5BCEQ.js +174 -0
  299. package/dist/chunk-SJW5BCEQ.js.map +1 -0
  300. package/dist/chunk-TTGIHMDR.js +149 -0
  301. package/dist/chunk-TTGIHMDR.js.map +1 -0
  302. package/dist/chunk-U657IHFB.js +158 -0
  303. package/dist/chunk-U657IHFB.js.map +1 -0
  304. package/dist/chunk-VLGQIYZ5.js +295 -0
  305. package/dist/chunk-VLGQIYZ5.js.map +1 -0
  306. package/dist/chunk-XK4E225T.js +34 -0
  307. package/dist/chunk-XK4E225T.js.map +1 -0
  308. package/dist/chunk-XKZPBRU7.js +135 -0
  309. package/dist/chunk-XKZPBRU7.js.map +1 -0
  310. package/dist/chunk-XNXKIPU5.js +779 -0
  311. package/dist/chunk-XNXKIPU5.js.map +1 -0
  312. package/dist/chunk-Y43B6DS3.js +66 -0
  313. package/dist/chunk-Y43B6DS3.js.map +1 -0
  314. package/dist/chunk-Y6KT7ZTR.js +109 -0
  315. package/dist/chunk-Y6KT7ZTR.js.map +1 -0
  316. package/dist/chunk-YOKEL75M.js +48 -0
  317. package/dist/chunk-YOKEL75M.js.map +1 -0
  318. package/dist/collapsible-panel.d.ts +137 -0
  319. package/dist/collapsible-panel.js +136 -0
  320. package/dist/collapsible-panel.js.map +1 -0
  321. package/dist/content-item.d.ts +99 -0
  322. package/dist/content-item.js +4 -0
  323. package/dist/content-item.js.map +1 -0
  324. package/dist/css-values.d.ts +119 -0
  325. package/dist/css-values.js +3 -0
  326. package/dist/css-values.js.map +1 -0
  327. package/dist/device-class.js +34 -6
  328. package/dist/device-class.js.map +1 -1
  329. package/dist/disclosure-arrow.d.ts +6 -1
  330. package/dist/disclosure-arrow.js +2 -1
  331. package/dist/empty-state.d.ts +5 -2
  332. package/dist/empty-state.js +2 -1
  333. package/dist/flex-alignment-4ms8ZbV8.d.ts +5 -0
  334. package/dist/floating-toolbar.d.ts +51 -0
  335. package/dist/floating-toolbar.js +3 -0
  336. package/dist/floating-toolbar.js.map +1 -0
  337. package/dist/grid.d.ts +58 -0
  338. package/dist/grid.js +6 -0
  339. package/dist/grid.js.map +1 -0
  340. package/dist/help-tags-register.d.ts +13 -0
  341. package/dist/help-tags-register.js +9 -0
  342. package/dist/help-tags-register.js.map +1 -0
  343. package/dist/index.d.ts +41 -17
  344. package/dist/index.js +46 -23
  345. package/dist/list-action-row.d.ts +15 -3
  346. package/dist/list-action-row.js +4 -1
  347. package/dist/list-header.d.ts +65 -10
  348. package/dist/list-header.js +4 -1
  349. package/dist/list-inset-control.d.ts +22 -0
  350. package/dist/list-inset-control.js +3 -0
  351. package/dist/list-inset-control.js.map +1 -0
  352. package/dist/list-inset-text.d.ts +30 -0
  353. package/dist/list-inset-text.js +4 -0
  354. package/dist/list-inset-text.js.map +1 -0
  355. package/dist/list-item.d.ts +34 -5
  356. package/dist/list-item.js +4 -1
  357. package/dist/list.d.ts +64 -0
  358. package/dist/list.js +7 -0
  359. package/dist/list.js.map +1 -0
  360. package/dist/loading-spinner.d.ts +12 -2
  361. package/dist/loading-spinner.js +2 -1
  362. package/dist/lucide-icon.d.ts +14 -2
  363. package/dist/lucide-icon.js +2 -1
  364. package/dist/nav-stack-BvSKY448.d.ts +109 -0
  365. package/dist/nav-stack.d.ts +13 -38
  366. package/dist/nav-stack.js +11 -1
  367. package/dist/pane.d.ts +116 -0
  368. package/dist/pane.js +4 -0
  369. package/dist/pane.js.map +1 -0
  370. package/dist/panel-toolbar-CL9tYOkh.d.ts +72 -0
  371. package/dist/popup-menu-register.d.ts +9 -0
  372. package/dist/popup-menu-register.js +244 -0
  373. package/dist/popup-menu-register.js.map +1 -0
  374. package/dist/popup-menu.d.ts +100 -0
  375. package/dist/popup-menu.js +3 -0
  376. package/dist/popup-menu.js.map +1 -0
  377. package/dist/resizable-region.d.ts +32 -3
  378. package/dist/resizable-region.js +1 -1
  379. package/dist/row.d.ts +49 -0
  380. package/dist/row.js +7 -0
  381. package/dist/row.js.map +1 -0
  382. package/dist/segmented-control.d.ts +12 -9
  383. package/dist/segmented-control.js +1 -2
  384. package/dist/select-register.d.ts +5 -1
  385. package/dist/select-register.js +247 -3
  386. package/dist/select-register.js.map +1 -1
  387. package/dist/select.d.ts +103 -8
  388. package/dist/select.js +3 -1
  389. package/dist/semantic-content-BbzjvSu9.d.ts +14 -0
  390. package/dist/semantic-tone-CdW013KF.d.ts +4 -0
  391. package/dist/sides-BPSWde0A.d.ts +4 -0
  392. package/dist/skeleton.d.ts +14 -7
  393. package/dist/skeleton.js +2 -1
  394. package/dist/spacer.d.ts +18 -0
  395. package/dist/spacer.js +4 -0
  396. package/dist/spacer.js.map +1 -0
  397. package/dist/split-view.d.ts +43 -6
  398. package/dist/split-view.js +125 -10
  399. package/dist/split-view.js.map +1 -1
  400. package/dist/state-banner.d.ts +21 -7
  401. package/dist/state-banner.js +3 -1
  402. package/dist/styles/anchored-surface.css +15 -0
  403. package/dist/styles/app-tab.css +232 -0
  404. package/dist/styles/badge.css +118 -0
  405. package/dist/styles/catalog/components/catalog-example-stack.css +9 -0
  406. package/dist/styles/catalog/components/catalog-example.css +167 -0
  407. package/dist/styles/catalog/components/catalog-stage.css +54 -0
  408. package/dist/styles/catalog/components/catalog.css +26 -0
  409. package/dist/styles/catalog.css +5 -482
  410. package/dist/styles/chip.css +138 -0
  411. package/dist/styles/collapsible-panel.css +580 -0
  412. package/dist/styles/components/actions/floating-toolbar/floating-toolbar.css +119 -0
  413. package/dist/styles/components/actions/popup-menu/popup-menu.css +285 -0
  414. package/dist/styles/components/actions/toolbar/toolbar.css +417 -0
  415. package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +891 -0
  416. package/dist/styles/components/actions/toolbar-text/toolbar-text.css +171 -0
  417. package/dist/styles/components/collections/list/list.css +136 -0
  418. package/dist/styles/components/collections/list-action-row/list-action-row.css +258 -0
  419. package/dist/styles/components/collections/list-header/list-header.css +229 -0
  420. package/dist/styles/components/collections/list-inset-control/list-inset-control.css +30 -0
  421. package/dist/styles/components/collections/list-inset-text/list-inset-text.css +29 -0
  422. package/dist/styles/components/collections/list-item/list-item.css +255 -0
  423. package/dist/styles/components/data-display/value-table/value-table.css +107 -0
  424. package/dist/styles/components/feedback/anchored-surface/anchored-surface.css +15 -0
  425. package/dist/styles/components/feedback/badge/badge.css +118 -0
  426. package/dist/styles/components/feedback/chip/chip.css +138 -0
  427. package/dist/styles/components/feedback/empty-state/empty-state.css +47 -0
  428. package/dist/styles/components/feedback/loading-spinner/loading-spinner.css +25 -0
  429. package/dist/styles/components/feedback/skeleton/skeleton.css +92 -0
  430. package/dist/styles/components/feedback/state-banner/state-banner.css +248 -0
  431. package/dist/styles/components/forms/segmented-control/segmented-control.css +196 -0
  432. package/dist/styles/components/forms/select/select.css +454 -0
  433. package/dist/styles/components/forms/token-search-field/token-search-field.css +392 -0
  434. package/dist/styles/components/layout/collapsible-panel/collapsible-panel.css +580 -0
  435. package/dist/styles/components/layout/grid/grid.css +88 -0
  436. package/dist/styles/components/layout/pane/pane.css +309 -0
  437. package/dist/styles/components/layout/resizable-region/resizable-region.css +545 -0
  438. package/dist/styles/components/layout/row/row.css +114 -0
  439. package/dist/styles/components/layout/spacer/spacer.css +11 -0
  440. package/dist/styles/components/layout/split-view/split-view.css +146 -0
  441. package/dist/styles/components/layout/workbench/workbench.css +1092 -0
  442. package/dist/styles/components/media/lucide-icon/lucide-icon.css +15 -0
  443. package/dist/styles/components/navigation/app-tab/app-tab.css +384 -0
  444. package/dist/styles/components/navigation/disclosure-arrow/disclosure-arrow.css +23 -0
  445. package/dist/styles/components/navigation/nav-stack/nav-stack.css +258 -0
  446. package/dist/styles/components/navigation/tab-bar/tab-bar.css +186 -0
  447. package/dist/styles/components/navigation/tab-navigator/tab-navigator.css +253 -0
  448. package/dist/styles/components/surfaces/content-item/content-item.css +120 -0
  449. package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +34 -0
  450. package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +111 -0
  451. package/dist/styles/components/typography/text/text.css +158 -0
  452. package/dist/styles/content-item.css +120 -0
  453. package/dist/styles/document.css +33 -0
  454. package/dist/styles/floating-toolbar.css +119 -0
  455. package/dist/styles/foundation.css +187 -45
  456. package/dist/styles/grid.css +88 -0
  457. package/dist/styles/layout.css +3 -41
  458. package/dist/styles/list-action-row.css +104 -6
  459. package/dist/styles/list-header.css +128 -59
  460. package/dist/styles/list-inset-control.css +30 -0
  461. package/dist/styles/list-inset-text.css +29 -0
  462. package/dist/styles/list-item.css +165 -33
  463. package/dist/styles/list.css +136 -0
  464. package/dist/styles/loading-spinner.css +4 -0
  465. package/dist/styles/lucide-icon.css +9 -0
  466. package/dist/styles/nav-stack.css +196 -50
  467. package/dist/styles/pane.css +309 -0
  468. package/dist/styles/popup-menu.css +285 -0
  469. package/dist/styles/resizable-region.css +438 -4
  470. package/dist/styles/row.css +114 -0
  471. package/dist/styles/segmented-control.css +36 -9
  472. package/dist/styles/select.css +337 -21
  473. package/dist/styles/skeleton.css +64 -3
  474. package/dist/styles/spacer.css +11 -0
  475. package/dist/styles/split-view.css +114 -3
  476. package/dist/styles/state-banner.css +94 -19
  477. package/dist/styles/styles.css +10 -1
  478. package/dist/styles/sunken-panel.css +34 -0
  479. package/dist/styles/surface-scaffold.css +111 -0
  480. package/dist/styles/tab-bar.css +150 -9
  481. package/dist/styles/tab-navigator.css +253 -0
  482. package/dist/styles/text.css +158 -0
  483. package/dist/styles/token-search-field.css +167 -56
  484. package/dist/styles/toolbar-control-group.css +710 -30
  485. package/dist/styles/toolbar-text.css +139 -8
  486. package/dist/styles/toolbar.css +367 -11
  487. package/dist/styles/value-table.css +39 -7
  488. package/dist/styles/webawesome.css +392 -17
  489. package/dist/styles/workbench.css +1005 -7
  490. package/dist/sunken-panel.d.ts +31 -0
  491. package/dist/sunken-panel.js +3 -0
  492. package/dist/sunken-panel.js.map +1 -0
  493. package/dist/surface-scaffold-register.d.ts +4 -0
  494. package/dist/surface-scaffold-register.js +59 -0
  495. package/dist/surface-scaffold-register.js.map +1 -0
  496. package/dist/surface-scaffold.d.ts +38 -0
  497. package/dist/surface-scaffold.js +3 -0
  498. package/dist/surface-scaffold.js.map +1 -0
  499. package/dist/tab-bar.d.ts +39 -6
  500. package/dist/tab-bar.js +1 -1
  501. package/dist/tab-navigator.d.ts +93 -0
  502. package/dist/tab-navigator.js +97 -0
  503. package/dist/tab-navigator.js.map +1 -0
  504. package/dist/text.d.ts +63 -0
  505. package/dist/text.js +3 -0
  506. package/dist/text.js.map +1 -0
  507. package/dist/token-search-field.d.ts +3 -43
  508. package/dist/token-search-field.js +2 -1
  509. package/dist/token-search-model-DTcTXWMS.d.ts +154 -0
  510. package/dist/token-search-model.d.ts +3 -0
  511. package/dist/token-search-model.js +3 -0
  512. package/dist/token-search-model.js.map +1 -0
  513. package/dist/toolbar-control-group.d.ts +89 -7
  514. package/dist/toolbar-control-group.js +3 -1
  515. package/dist/toolbar-text.d.ts +45 -9
  516. package/dist/toolbar-text.js +2 -1
  517. package/dist/toolbar.d.ts +59 -7
  518. package/dist/toolbar.js +1 -1
  519. package/dist/types-oLe_N1w0.d.ts +130 -0
  520. package/dist/value-table.d.ts +11 -3
  521. package/dist/value-table.js +2 -1
  522. package/dist/webawesome.d.ts +8 -1
  523. package/dist/wire-catalog.d.ts +76 -4
  524. package/dist/wire-catalog.js +250 -14
  525. package/dist/wire-catalog.js.map +1 -1
  526. package/dist/wire-content-items.d.ts +11 -0
  527. package/dist/wire-content-items.js +139 -0
  528. package/dist/wire-content-items.js.map +1 -0
  529. package/dist/wire-nav-stack.d.ts +4 -1
  530. package/dist/wire-nav-stack.js +191 -15
  531. package/dist/wire-nav-stack.js.map +1 -1
  532. package/dist/wire-resizable-regions.d.ts +2 -1
  533. package/dist/wire-resizable-regions.js +2 -1
  534. package/dist/wire-scroll-dividers.d.ts +72 -0
  535. package/dist/wire-scroll-dividers.js +3 -0
  536. package/dist/wire-scroll-dividers.js.map +1 -0
  537. package/dist/wire-sidebar.d.ts +63 -0
  538. package/dist/wire-sidebar.js +231 -0
  539. package/dist/wire-sidebar.js.map +1 -0
  540. package/dist/wire-tab-bars.d.ts +19 -2
  541. package/dist/wire-tab-bars.js +1 -1
  542. package/dist/wire-tab-navigator.d.ts +11 -0
  543. package/dist/wire-tab-navigator.js +21 -0
  544. package/dist/wire-tab-navigator.js.map +1 -0
  545. package/dist/wire-token-search-fields.d.ts +65 -3
  546. package/dist/wire-token-search-fields.js +2 -1
  547. package/dist/wire-toolbar-visibility.d.ts +13 -0
  548. package/dist/wire-toolbar-visibility.js +3 -0
  549. package/dist/wire-toolbar-visibility.js.map +1 -0
  550. package/dist/wire-workbench.d.ts +116 -0
  551. package/dist/wire-workbench.js +6 -0
  552. package/dist/wire-workbench.js.map +1 -0
  553. package/dist/workbench.d.ts +246 -9
  554. package/dist/workbench.js +18 -15
  555. package/dist/workbench.js.map +1 -1
  556. package/docs/accessibility.md +495 -24
  557. package/docs/anchored-surface.md +51 -0
  558. package/docs/app-layouts.md +141 -10
  559. package/docs/apple-hig.md +1 -0
  560. package/docs/catalog.md +395 -62
  561. package/docs/collapsible-panel.md +382 -0
  562. package/docs/component-contract.md +740 -53
  563. package/docs/component-integration.md +75 -0
  564. package/docs/component-selection.md +682 -97
  565. package/docs/design/templates/empty-state/filtered-dark.svg +1 -0
  566. package/docs/design/templates/empty-state/filtered.svg +1 -0
  567. package/docs/design/templates/empty-state/with-action-dark.svg +1 -0
  568. package/docs/design/templates/empty-state/with-action.svg +1 -0
  569. package/docs/design/templates/empty-state-dark.svg +1 -0
  570. package/docs/design/templates/empty-state.svg +1 -0
  571. package/docs/design/templates/list/compact-dark.svg +1 -0
  572. package/docs/design/templates/list/compact.svg +1 -0
  573. package/docs/design/templates/list/stack-dark.svg +1 -0
  574. package/docs/design/templates/list/stack.svg +1 -0
  575. package/docs/design/templates/list-action-row/default-dark.svg +1 -0
  576. package/docs/design/templates/list-action-row/default.svg +1 -0
  577. package/docs/design/templates/list-action-row/selected-dark.svg +1 -0
  578. package/docs/design/templates/list-action-row/selected.svg +1 -0
  579. package/docs/design/templates/list-action-row-dark.svg +1 -0
  580. package/docs/design/templates/list-action-row.svg +1 -0
  581. package/docs/design/templates/list-dark.svg +1 -0
  582. package/docs/design/templates/list-header/action-dark.svg +1 -0
  583. package/docs/design/templates/list-header/action.svg +1 -0
  584. package/docs/design/templates/list-header/count-dark.svg +1 -0
  585. package/docs/design/templates/list-header/count.svg +1 -0
  586. package/docs/design/templates/list-header/inline-action-dark.svg +1 -0
  587. package/docs/design/templates/list-header/inline-action.svg +1 -0
  588. package/docs/design/templates/list-header/size-l-dark.svg +1 -0
  589. package/docs/design/templates/list-header/size-l.svg +1 -0
  590. package/docs/design/templates/list-header/size-m-dark.svg +1 -0
  591. package/docs/design/templates/list-header/size-m.svg +1 -0
  592. package/docs/design/templates/list-header/size-xl-dark.svg +1 -0
  593. package/docs/design/templates/list-header/size-xl.svg +1 -0
  594. package/docs/design/templates/list-header/size-xs-dark.svg +1 -0
  595. package/docs/design/templates/list-header/size-xs.svg +1 -0
  596. package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -0
  597. package/docs/design/templates/list-header/toggle-collapsed.svg +1 -0
  598. package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -0
  599. package/docs/design/templates/list-header/toggle-expanded.svg +1 -0
  600. package/docs/design/templates/list-header-dark.svg +1 -0
  601. package/docs/design/templates/list-header.svg +1 -0
  602. package/docs/design/templates/list-item/default-dark.svg +1 -0
  603. package/docs/design/templates/list-item/default.svg +1 -0
  604. package/docs/design/templates/list-item/multiline-dark.svg +1 -0
  605. package/docs/design/templates/list-item/multiline.svg +1 -0
  606. package/docs/design/templates/list-item/selected-dark.svg +1 -0
  607. package/docs/design/templates/list-item/selected.svg +1 -0
  608. package/docs/design/templates/list-item/trailing-dark.svg +1 -0
  609. package/docs/design/templates/list-item/trailing.svg +1 -0
  610. package/docs/design/templates/list-item-dark.svg +1 -0
  611. package/docs/design/templates/list-item.svg +1 -0
  612. package/docs/design/templates/list.svg +1 -0
  613. package/docs/design/templates/segmented-control/equal-dark.svg +1 -0
  614. package/docs/design/templates/segmented-control/equal.svg +1 -0
  615. package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -0
  616. package/docs/design/templates/segmented-control/pill-small.svg +1 -0
  617. package/docs/design/templates/segmented-control-dark.svg +1 -0
  618. package/docs/design/templates/segmented-control.svg +1 -0
  619. package/docs/design/templates/skeleton/avatar-dark.svg +1 -0
  620. package/docs/design/templates/skeleton/avatar.svg +1 -0
  621. package/docs/design/templates/skeleton/block-dark.svg +1 -0
  622. package/docs/design/templates/skeleton/block.svg +1 -0
  623. package/docs/design/templates/skeleton/lines-dark.svg +1 -0
  624. package/docs/design/templates/skeleton/lines.svg +1 -0
  625. package/docs/design/templates/skeleton-dark.svg +1 -0
  626. package/docs/design/templates/skeleton.svg +1 -0
  627. package/docs/design/templates/state-banner/danger-dark.svg +1 -0
  628. package/docs/design/templates/state-banner/danger.svg +1 -0
  629. package/docs/design/templates/state-banner/info-badge-dark.svg +1 -0
  630. package/docs/design/templates/state-banner/info-badge.svg +1 -0
  631. package/docs/design/templates/state-banner/info-dark.svg +1 -0
  632. package/docs/design/templates/state-banner/info.svg +1 -0
  633. package/docs/design/templates/state-banner/success-dark.svg +1 -0
  634. package/docs/design/templates/state-banner/success.svg +1 -0
  635. package/docs/design/templates/state-banner/warning-dark.svg +1 -0
  636. package/docs/design/templates/state-banner/warning.svg +1 -0
  637. package/docs/design/templates/state-banner-dark.svg +1 -0
  638. package/docs/design/templates/state-banner.svg +1 -0
  639. package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -0
  640. package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -0
  641. package/docs/design/templates/tab-bar-dark.svg +1 -0
  642. package/docs/design/templates/tab-bar.svg +1 -0
  643. package/docs/design/templates/token-search-field/empty-dark.svg +1 -0
  644. package/docs/design/templates/token-search-field/empty.svg +1 -0
  645. package/docs/design/templates/token-search-field/tokens-dark.svg +1 -0
  646. package/docs/design/templates/token-search-field/tokens.svg +1 -0
  647. package/docs/design/templates/token-search-field-dark.svg +1 -0
  648. package/docs/design/templates/token-search-field.svg +1 -0
  649. package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -0
  650. package/docs/design/templates/toolbar/title-and-actions.svg +1 -0
  651. package/docs/design/templates/toolbar/width-visibility-320-dark.svg +1 -0
  652. package/docs/design/templates/toolbar/width-visibility-320.svg +1 -0
  653. package/docs/design/templates/toolbar/width-visibility-600-dark.svg +1 -0
  654. package/docs/design/templates/toolbar/width-visibility-600.svg +1 -0
  655. package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -0
  656. package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -0
  657. package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -0
  658. package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -0
  659. package/docs/design/templates/toolbar-control-group/icon-tile-brand-dark.svg +1 -0
  660. package/docs/design/templates/toolbar-control-group/icon-tile-brand.svg +1 -0
  661. package/docs/design/templates/toolbar-control-group/icon-tile-danger-dark.svg +1 -0
  662. package/docs/design/templates/toolbar-control-group/icon-tile-danger.svg +1 -0
  663. package/docs/design/templates/toolbar-control-group/icon-tile-neutral-dark.svg +1 -0
  664. package/docs/design/templates/toolbar-control-group/icon-tile-neutral.svg +1 -0
  665. package/docs/design/templates/toolbar-control-group/icon-tile-success-dark.svg +1 -0
  666. package/docs/design/templates/toolbar-control-group/icon-tile-success.svg +1 -0
  667. package/docs/design/templates/toolbar-control-group/icon-tile-warning-dark.svg +1 -0
  668. package/docs/design/templates/toolbar-control-group/icon-tile-warning.svg +1 -0
  669. package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -0
  670. package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -0
  671. package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -0
  672. package/docs/design/templates/toolbar-control-group/with-text.svg +1 -0
  673. package/docs/design/templates/toolbar-control-group-dark.svg +1 -0
  674. package/docs/design/templates/toolbar-control-group.svg +1 -0
  675. package/docs/design/templates/toolbar-dark.svg +1 -0
  676. package/docs/design/templates/toolbar-text/dark-tone-dark.svg +1 -0
  677. package/docs/design/templates/toolbar-text/dark-tone.svg +1 -0
  678. package/docs/design/templates/toolbar-text/default-dark.svg +1 -0
  679. package/docs/design/templates/toolbar-text/default.svg +1 -0
  680. package/docs/design/templates/toolbar-text/large-dark.svg +1 -0
  681. package/docs/design/templates/toolbar-text/large.svg +1 -0
  682. package/docs/design/templates/toolbar-text/small-dark.svg +1 -0
  683. package/docs/design/templates/toolbar-text/small.svg +1 -0
  684. package/docs/design/templates/toolbar-text-dark.svg +1 -0
  685. package/docs/design/templates/toolbar-text.svg +1 -0
  686. package/docs/design/templates/toolbar.svg +1 -0
  687. package/docs/design/templates/value-table/details-dark.svg +1 -0
  688. package/docs/design/templates/value-table/details.svg +1 -0
  689. package/docs/design/templates/value-table-dark.svg +1 -0
  690. package/docs/design/templates/value-table.svg +1 -0
  691. package/docs/design/templates.md +140 -0
  692. package/docs/design-philosophy.md +56 -19
  693. package/docs/device-class.md +10 -9
  694. package/docs/document-baseline.md +42 -0
  695. package/docs/examples/application-ui-profile.json +60 -0
  696. package/docs/examples/command-palette-adapter.tsx +69 -17
  697. package/docs/examples/component-catalog-extension.json +52 -0
  698. package/docs/examples/component-composition-extension.json +80 -0
  699. package/docs/layout.md +612 -53
  700. package/docs/nav-stack.md +163 -14
  701. package/docs/recipes.md +127 -52
  702. package/docs/split-view.md +76 -5
  703. package/docs/sunken-panel.md +93 -0
  704. package/docs/surface-scaffold.md +74 -0
  705. package/docs/tab-navigator.md +218 -0
  706. package/docs/type-contracts.md +137 -0
  707. package/docs/ui-analyzer.md +404 -0
  708. package/docs/ui-doctor.md +202 -0
  709. package/docs/ui-evaluator.md +139 -0
  710. package/docs/ux-demo.md +45 -15
  711. package/docs/webawesome-theme.md +204 -16
  712. package/docs/workbench.md +623 -12
  713. package/doctor/cli.mjs +120 -0
  714. package/doctor/component-style-checks.mjs +457 -0
  715. package/doctor/config.schema.json +94 -0
  716. package/doctor/eslint-diagnostics.d.mts +24 -0
  717. package/doctor/eslint-diagnostics.mjs +24 -0
  718. package/doctor/index.d.mts +122 -0
  719. package/doctor/index.mjs +1403 -0
  720. package/doctor/report.schema.json +118 -0
  721. package/evaluator/cli.mjs +89 -0
  722. package/evaluator/index.d.mts +90 -0
  723. package/evaluator/index.mjs +1203 -0
  724. package/evaluator/report.schema.json +152 -0
  725. package/llms.txt +562 -49
  726. package/package.json +247 -27
  727. package/scripts/component-catalog-extension-validation.mjs +28 -0
  728. package/traversal-exclusions.mjs +27 -0
  729. package/ux-demo/recipes/app-shell.tsx +204 -16
  730. package/ux-demo/recipes/collapsible-sidebar.tsx +260 -0
  731. package/ux-demo/recipes/compact-toolbar.tsx +135 -14
  732. package/ux-demo/recipes/composer-form.tsx +133 -21
  733. package/ux-demo/recipes/list-detail-dialog.tsx +255 -14
  734. package/ux-demo/recipes/list-workspace-states.tsx +183 -11
  735. package/ux-demo/recipes/loaders.ts +11 -3
  736. package/ux-demo/recipes/loading-inspector.tsx +161 -36
  737. package/ux-demo/recipes/mount-recipe.ts +28 -10
  738. package/ux-demo/recipes/navigation-sidebar.tsx +137 -11
  739. package/ux-demo/recipes/navigation-stack.tsx +79 -24
  740. package/ux-demo/recipes/types.ts +23 -2
  741. package/ux-demo/recipes/workspace-header.tsx +86 -5
  742. package/dist/browser/panel-header.js +0 -7
  743. package/dist/chunk-2RJBFNB6.js +0 -172
  744. package/dist/chunk-2RJBFNB6.js.map +0 -1
  745. package/dist/chunk-2TS7ZSYX.js +0 -20
  746. package/dist/chunk-2TS7ZSYX.js.map +0 -1
  747. package/dist/chunk-2Z5TWHKQ.js +0 -34
  748. package/dist/chunk-2Z5TWHKQ.js.map +0 -1
  749. package/dist/chunk-37T3VNIZ.js +0 -19
  750. package/dist/chunk-37T3VNIZ.js.map +0 -1
  751. package/dist/chunk-55DATV3A.js +0 -10
  752. package/dist/chunk-55DATV3A.js.map +0 -1
  753. package/dist/chunk-56RJXPHG.js.map +0 -1
  754. package/dist/chunk-7BR3DO2A.js.map +0 -1
  755. package/dist/chunk-7JB7VPRI.js +0 -34
  756. package/dist/chunk-7JB7VPRI.js.map +0 -1
  757. package/dist/chunk-7LDCTU7D.js +0 -134
  758. package/dist/chunk-7LDCTU7D.js.map +0 -1
  759. package/dist/chunk-AQNKJRFH.js +0 -79
  760. package/dist/chunk-AQNKJRFH.js.map +0 -1
  761. package/dist/chunk-B24C4A6T.js +0 -22
  762. package/dist/chunk-B24C4A6T.js.map +0 -1
  763. package/dist/chunk-BLK3UEEI.js +0 -23
  764. package/dist/chunk-BLK3UEEI.js.map +0 -1
  765. package/dist/chunk-DAFFDO33.js +0 -14
  766. package/dist/chunk-DAFFDO33.js.map +0 -1
  767. package/dist/chunk-I7INRJO4.js +0 -17
  768. package/dist/chunk-I7INRJO4.js.map +0 -1
  769. package/dist/chunk-L4OKFDJY.js +0 -24
  770. package/dist/chunk-L4OKFDJY.js.map +0 -1
  771. package/dist/chunk-LC3YSAZC.js +0 -39
  772. package/dist/chunk-LC3YSAZC.js.map +0 -1
  773. package/dist/chunk-M5JRI6MN.js +0 -27
  774. package/dist/chunk-M5JRI6MN.js.map +0 -1
  775. package/dist/chunk-MBR3TYNL.js +0 -14
  776. package/dist/chunk-MBR3TYNL.js.map +0 -1
  777. package/dist/chunk-MFKMHK5W.js +0 -10
  778. package/dist/chunk-MFKMHK5W.js.map +0 -1
  779. package/dist/chunk-MQIZAD4A.js +0 -227
  780. package/dist/chunk-MQIZAD4A.js.map +0 -1
  781. package/dist/chunk-RUNWEPR4.js +0 -10
  782. package/dist/chunk-RUNWEPR4.js.map +0 -1
  783. package/dist/chunk-W2FK7ZNY.js +0 -26
  784. package/dist/chunk-W2FK7ZNY.js.map +0 -1
  785. package/dist/chunk-W5EQ3HYQ.js +0 -42
  786. package/dist/chunk-W5EQ3HYQ.js.map +0 -1
  787. package/dist/chunk-WVPYVDXY.js +0 -15
  788. package/dist/chunk-WVPYVDXY.js.map +0 -1
  789. package/dist/chunk-YGN7OMLT.js.map +0 -1
  790. package/dist/panel-header.d.ts +0 -36
  791. package/dist/panel-header.js +0 -7
  792. package/dist/panel-header.js.map +0 -1
  793. package/dist/styles/panel-header.css +0 -64
  794. package/dist/styles/tab-scaffold.css +0 -84
  795. package/dist/tab-scaffold.d.ts +0 -30
  796. package/dist/tab-scaffold.js +0 -16
  797. package/dist/tab-scaffold.js.map +0 -1
  798. package/dist/wire-tab-scaffold.d.ts +0 -11
  799. package/dist/wire-tab-scaffold.js +0 -16
  800. package/dist/wire-tab-scaffold.js.map +0 -1
  801. package/docs/tab-scaffold.md +0 -41
  802. package/ux-demo/recipes/recipes.css +0 -361
@@ -0,0 +1,80 @@
1
+ # EmptyState
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:empty-state` · Kerf UI · component · Feedback
6
+
7
+ ## When to use
8
+
9
+ Actionable empty and busy content states.
10
+
11
+ - Explain absent or busy content and offer an optional recovery action.
12
+
13
+ **Not when:**
14
+
15
+ - Do not use for an inline update or transient success.
16
+
17
+ **Alternatives:**
18
+
19
+ - [StateBanner](./state-banner.md) (nearest)
20
+ - [Toast](./wa-toast.md) (prefer-over)
21
+
22
+ ## Imports
23
+
24
+ - JavaScript: `@kerfjs/ui/empty-state` — exports `EmptyState`.
25
+ - CSS: the browser build of `@kerfjs/ui/empty-state` pulls its CSS automatically; import `@kerfjs/ui/empty-state.css` manually only without the `browser` export condition.
26
+ - Declared side effects: browser-condition-css.
27
+
28
+ ## Props
29
+
30
+ Exact prop names and types: [`@kerfjs/ui/empty-state`](../public-api-signatures-v1.md#kerfjsuiempty-state) in `public-api-signatures-v1.md`. Do not infer props from examples.
31
+
32
+ **Variants (configure, do not restyle):**
33
+
34
+ - actionable
35
+ - busy
36
+ - illustrated
37
+
38
+ ## Composition
39
+
40
+ - Parents: any.
41
+ - Contexts: `empty-content`, `busy-content`.
42
+ - Children: unrestricted.
43
+ - Built from: [LucideIcon](./lucide-icon.md), [LoadingSpinner](./loading-spinner.md).
44
+
45
+ Zones (a zone is bound to JSX only through its listed prop; never assume the zone id is a prop):
46
+
47
+ - `icon` — JSX prop `icon`; accepts `dormant-decoration`; 0–1.
48
+ - `action` — JSX prop `action`; accepts `control`; 0–1.
49
+
50
+ ## State and wiring
51
+
52
+ **The app owns:** empty/busy policy; recovery action; copy.
53
+
54
+ No wiring helper.
55
+
56
+ ## Geometry
57
+
58
+ 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.
59
+
60
+ ## Accessibility
61
+
62
+ - Busy state uses aria-busy; the illustration never supplies the only label.
63
+
64
+ ## Styling boundary
65
+
66
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
67
+
68
+ Public class hooks (select for layout placement only, never to change the component's look): `kui-empty-state`, `kui-empty-state__action`, `kui-empty-state__icon`.
69
+
70
+ Never put `kui-empty-state`, `kui-empty-state__action`, `kui-empty-state__icon` on an element you write; render `EmptyState` instead (`KUI-L103`).
71
+
72
+ Public tokens it reads: `--kui-color-neutral-on-quiet`, `--kui-color-text`, `--kui-empty-state-foreground`, `--kui-empty-state-title`, `--kui-font-l`, `--kui-font-s`, `--kui-space-xl`, `--kui-space-xs`. Set a token only where its public contract allows; prefer a prop.
73
+
74
+ Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
75
+
76
+ ## Related
77
+
78
+ - Components: [LucideIcon](./lucide-icon.md), [LoadingSpinner](./loading-spinner.md), [StateBanner](./state-banner.md), [Toast](./wa-toast.md).
79
+ - Docs: [`docs/component-selection.md`](../../docs/component-selection.md), [`docs/component-selection.md#ambiguous-choices`](../../docs/component-selection.md#ambiguous-choices).
80
+ - UX catalog route: `?component=empty-state`.
@@ -0,0 +1,71 @@
1
+ # Feedback
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:feedback` · Kerf UI · CSS composition · Feedback
6
+
7
+ ## When to use
8
+
9
+ Banners, empty states, and labeled progress.
10
+
11
+ - Compose persistent status, empty/busy content, and compact loading feedback.
12
+
13
+ **Not when:**
14
+
15
+ - Do not collapse different message lifetimes or urgency into one visual treatment.
16
+
17
+ **Alternatives:**
18
+
19
+ - [StateBanner](./state-banner.md) (nearest)
20
+ - [EmptyState](./empty-state.md) (nearest)
21
+ - [Callout](./wa-callout.md) (prefer-over)
22
+ - [Toast](./wa-toast.md) (prefer-over)
23
+
24
+ ## Imports
25
+
26
+ - Nothing to import: this is a reference composition.
27
+ - Declared side effects: css.
28
+
29
+ ## Props
30
+
31
+ No props: this entry has no JavaScript API.
32
+
33
+ **Variants (configure, do not restyle):**
34
+
35
+ - banner
36
+ - empty
37
+ - busy
38
+ - spinner
39
+
40
+ ## Composition
41
+
42
+ - Parents: any.
43
+ - Contexts: `application-ui`.
44
+ - Children: unrestricted.
45
+ - Built from: [StateBanner](./state-banner.md), [EmptyState](./empty-state.md), [LoadingSpinner](./loading-spinner.md).
46
+
47
+ ## State and wiring
48
+
49
+ **The app owns:** state mapping; message lifetime; recovery policy.
50
+
51
+ No wiring helper.
52
+
53
+ ## Geometry
54
+
55
+ Margin: child · border: child · padding: child (layout role: feedback). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
56
+
57
+ ## Accessibility
58
+
59
+ - Choose polite status versus assertive alert deliberately.
60
+
61
+ ## Styling boundary
62
+
63
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
64
+
65
+ Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
66
+
67
+ ## Related
68
+
69
+ - Components: [StateBanner](./state-banner.md), [EmptyState](./empty-state.md), [LoadingSpinner](./loading-spinner.md), [Callout](./wa-callout.md), [Toast](./wa-toast.md).
70
+ - Docs: [`docs/component-selection.md`](../../docs/component-selection.md), [`docs/component-selection.md#ambiguous-choices`](../../docs/component-selection.md#ambiguous-choices).
71
+ - UX catalog route: `?component=feedback`.
@@ -0,0 +1,82 @@
1
+ # FloatingToolbar
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:floating-toolbar` · Kerf UI · component · Structure
6
+
7
+ ## When to use
8
+
9
+ A transparent, forced-dark toolbar that floats over its container's content.
10
+
11
+ - Float a small cluster of controls (e.g. a drawer restore) over scrolling content without covering dialogs.
12
+
13
+ **Not when:**
14
+
15
+ - Do not use for a primary page or panel toolbar, or for anything that must sit above overlays (it is not top-layer).
16
+
17
+ **Alternatives:**
18
+
19
+ - [Toolbar](./toolbar.md) (nearest)
20
+
21
+ ## Imports
22
+
23
+ - JavaScript: `@kerfjs/ui/floating-toolbar` — exports `FloatingToolbar`.
24
+ - CSS: the browser build of `@kerfjs/ui/floating-toolbar` pulls its CSS automatically; import `@kerfjs/ui/floating-toolbar.css` manually only without the `browser` export condition.
25
+ - Declared side effects: browser-condition-css.
26
+
27
+ ## Props
28
+
29
+ Exact prop names and types: [`@kerfjs/ui/floating-toolbar`](../public-api-signatures-v1.md#kerfjsuifloating-toolbar) in `public-api-signatures-v1.md`. Do not infer props from examples.
30
+
31
+ **Variants (configure, do not restyle):**
32
+
33
+ - bottom-end
34
+ - bottom-start
35
+ - bottom
36
+ - top-end
37
+ - top-start
38
+ - top
39
+ - inline placement
40
+ - safe-area-aware per-edge inset
41
+
42
+ **CSS-value props** (typed builders from `@kerfjs/ui/css-values`; raw CSS strings are rejected):
43
+
44
+ - `inset`: length grammar; raw values: forbid; helpers `px`, `rem`, `em`, `pct`, `space`, `lengthVar`, `calc` — e.g. `inset={space("xs")}`
45
+
46
+ ## Composition
47
+
48
+ - Parents: any.
49
+ - Contexts: `application-ui`.
50
+ - Children: unrestricted.
51
+
52
+ ## State and wiring
53
+
54
+ **The app owns:** controls; position; visibility.
55
+
56
+ No wiring helper.
57
+
58
+ ## Geometry
59
+
60
+ Margin: none · border: child · padding: child (layout role: structure). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
61
+
62
+ ## Accessibility
63
+
64
+ - Give the toolbar an accessible name (label is required — it exposes role="toolbar").
65
+
66
+ ## Styling boundary
67
+
68
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
69
+
70
+ Public class hooks (select for layout placement only, never to change the component's look): `kui-floating-toolbar`.
71
+
72
+ Never put `kui-floating-toolbar` on an element you write; render `FloatingToolbar` instead (`KUI-L103`).
73
+
74
+ Public tokens it reads: `--kui-floating-toolbar-inset`, `--kui-floating-toolbar-inset-block-start`, `--kui-floating-toolbar-inset-block-end`, `--kui-floating-toolbar-inset-inline-start`, `--kui-floating-toolbar-inset-inline-end`, `--kui-space-m`, `--kui-space-xs`. Set a token only where its public contract allows; prefer a prop.
75
+
76
+ Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
77
+
78
+ ## Related
79
+
80
+ - Components: [Toolbar](./toolbar.md).
81
+ - Docs: [`docs/component-selection.md`](../../docs/component-selection.md), [`docs/component-selection.md#problem-to-component-matrix`](../../docs/component-selection.md#problem-to-component-matrix).
82
+ - UX catalog route: `?component=floating-toolbar`.
@@ -0,0 +1,65 @@
1
+ # Foundation tokens
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:foundation` · Kerf UI · CSS composition · Foundation
6
+
7
+ The complete public typography, spacing, breakpoint, geometry, radius, color, focus, and shadow token surface shipped by foundation.css.
8
+
9
+ ## When to use
10
+
11
+ Provide the shared semantic token foundation for application themes and every styled Kerf UI component.
12
+
13
+ - Theme a Kerf application globally or reuse the shipped semantic typography, spacing, geometry, color, focus, and shadow values in application-owned composition CSS.
14
+
15
+ **Not when:**
16
+
17
+ - Do not replace a component-specific prop or token with a broad foundation override when only one component instance should change.
18
+
19
+ ## Imports
20
+
21
+ - CSS: import `@kerfjs/ui/foundation.css` once.
22
+ - Declared side effects: css.
23
+
24
+ ## Props
25
+
26
+ No props: this entry has no JavaScript API.
27
+
28
+ **Variants (configure, do not restyle):**
29
+
30
+ - light
31
+ - dark
32
+ - increased contrast
33
+
34
+ ## Composition
35
+
36
+ - Parents: any.
37
+ - Contexts: `application-ui`.
38
+ - Children: unrestricted.
39
+
40
+ ## State and wiring
41
+
42
+ **The app owns:** application theme overrides; responsive policy at the cataloged device-class breakpoints.
43
+
44
+ No wiring helper.
45
+
46
+ ## Geometry
47
+
48
+ Margin: none · border: none · padding: none (layout role: foundation). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
49
+
50
+ ## Accessibility
51
+
52
+ - Preserve semantic contrast relationships and the visible focus ring when overriding foundation colors.
53
+
54
+ ## Styling boundary
55
+
56
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
57
+
58
+ Public tokens it reads: `--kui-font-sans`, `--kui-font-mono`, `--kui-font-2xs`, `--kui-font-xs`, `--kui-font-s`, `--kui-font-m`, `--kui-font-l`, `--kui-font-xl`, `--kui-font-2xl`, `--kui-font-weight-semibold`, `--kui-space-none`, `--kui-space-2xs`, `--kui-space-xs`, `--kui-space-s`, `--kui-space-m`, `--kui-space-l`, `--kui-space-xl`, `--kui-bp-mobile`, `--kui-bp-tablet`, `--kui-bp-desktop`, `--kui-bp-xl-desktop`, `--kui-layout-inline-margin`, `--kui-layout-item-border-width`, `--kui-layout-item-padding`, `--kui-layout-item-gap`, `--kui-layout-content-gap`, `--kui-layout-control-gap`, `--kui-layout-metadata-gap`, `--kui-layout-highlight-inset`, `--kui-layout-rounded-radius`, `--kui-layout-pill-radius`, `--kui-toolbar-group-inner-size`, `--kui-toolbar-group-size`, `--kui-toolbar-gap`, `--kui-safe-area-block-start`, `--kui-safe-area-block-end`, `--kui-safe-area-inline-start`, `--kui-safe-area-inline-end`, `--kui-radius-s`, `--kui-radius-m`, `--kui-radius-l`, `--kui-radius-circle`, `--kui-radius-pill`, `--kui-disclosure-icon-scale`, `--kui-color-surface`, `--kui-color-surface-raised`, `--kui-color-surface-lowered`, `--kui-color-text`, `--kui-color-text-quiet`, `--kui-color-text-link`, `--kui-color-neutral-fill-quiet`, `--kui-color-neutral-fill-normal`, `--kui-color-neutral-fill-loud`, `--kui-color-neutral-border-quiet`, `--kui-color-neutral-border-normal`, `--kui-color-neutral-border-loud`, `--kui-color-neutral-on-quiet`, `--kui-color-neutral-on-normal`, `--kui-color-neutral-on-loud`, `--kui-color-brand-fill-loud`, `--kui-color-brand-fill-quiet`, `--kui-color-brand-fill-normal`, `--kui-color-brand-border-quiet`, `--kui-color-brand-border-normal`, `--kui-color-brand-border-loud`, `--kui-color-brand-on-quiet`, `--kui-color-brand-on-normal`, `--kui-color-brand-on-loud`, `--kui-color-brand-on-fill`, `--kui-color-pop-fill-loud`, `--kui-color-pop-fill-quiet`, `--kui-color-pop-fill-normal`, `--kui-color-pop-border-quiet`, `--kui-color-pop-border-normal`, `--kui-color-pop-border-loud`, `--kui-color-pop-on-quiet`, `--kui-color-pop-on-normal`, `--kui-color-pop-on-loud`, `--kui-color-pop-on-fill`, `--kui-color-success-fill-loud`, `--kui-color-success-fill-quiet`, `--kui-color-success-fill-normal`, `--kui-color-success-border-quiet`, `--kui-color-success-border-normal`, `--kui-color-success-border-loud`, `--kui-color-success-on-quiet`, `--kui-color-success-on-normal`, `--kui-color-success-on-loud`, `--kui-color-success-on-fill`, `--kui-color-warning-fill-loud`, `--kui-color-warning-fill-quiet`, `--kui-color-warning-fill-normal`, `--kui-color-warning-border-quiet`, `--kui-color-warning-border-normal`, `--kui-color-warning-border-loud`, `--kui-color-warning-on-quiet`, `--kui-color-warning-on-normal`, `--kui-color-warning-on-loud`, `--kui-color-warning-on-fill`, `--kui-color-danger-fill-loud`, `--kui-color-danger-fill-quiet`, `--kui-color-danger-fill-normal`, `--kui-color-danger-border-quiet`, `--kui-color-danger-border-normal`, `--kui-color-danger-border-loud`, `--kui-color-danger-on-quiet`, `--kui-color-danger-on-normal`, `--kui-color-danger-on-loud`, `--kui-color-danger-on-fill`, `--kui-focus-ring`, `--kui-shadow-s`, `--kui-shadow-l`. Set a token only where its public contract allows; prefer a prop.
59
+
60
+ Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
61
+
62
+ ## Related
63
+
64
+ - Docs: [`docs/component-selection.md`](../../docs/component-selection.md), [`docs/component-selection.md#foundation-tokens`](../../docs/component-selection.md#foundation-tokens).
65
+ - UX catalog route: `?component=foundation`.
@@ -0,0 +1,100 @@
1
+ # Grid
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:grid` · Kerf UI · component · Structure
6
+
7
+ Equal-width columns with a fixed count or a minimum-width responsive mode, typed gaps, physical-side text/control insets, and optional flex participation.
8
+
9
+ ## When to use
10
+
11
+ Arrange related siblings in equal-width columns with either a fixed count or automatic container-width collapse.
12
+
13
+ - Arrange related siblings into a fixed positive number of equal-width columns.
14
+ - Fit equal-width columns down to a typed minimum and collapse as the container narrows.
15
+ - Prevent wider intrinsic content from making one fractional track wider than its peers.
16
+ - Use a finite flex keyword or the flex() builder when Grid participates in a flexible parent layout.
17
+
18
+ **Not when:**
19
+
20
+ - Do not use Grid for intrinsic, asymmetric, spanning, or masonry tracks; use application-owned CSS grid.
21
+ - Do not use Grid when columns need a user-operable separator; use ResizableRegion.
22
+ - Do not combine fixed columns with minColumnWidth; choose one layout mode.
23
+ - Do not pass raw CSS strings to gap or flex, mix their distinct grammars, or use s/xl spacing steps without a deliberate exception.
24
+
25
+ **Alternatives:**
26
+
27
+ - [Row](./row.md) (axis-alternative) — Use Row for one horizontal flex line, alignment, or wrapping rather than fixed equal tracks.
28
+ - [List](./list.md) (axis-alternative) — Use List when the main layout axis is vertical.
29
+ - [ResizableRegion](./resize.md) (interactive-alternative) — Use ResizableRegion when people must adjust the boundary between tracks.
30
+
31
+ ## Imports
32
+
33
+ - JavaScript: `@kerfjs/ui/grid` — exports `Grid`.
34
+ - CSS: the browser build of `@kerfjs/ui/grid` pulls its CSS automatically; import `@kerfjs/ui/grid.css` manually only without the `browser` export condition.
35
+ - Declared side effects: browser-condition-css.
36
+
37
+ ## Props
38
+
39
+ Exact prop names and types: [`@kerfjs/ui/grid`](../public-api-signatures-v1.md#kerfjsuigrid) in `public-api-signatures-v1.md`. Do not infer props from examples.
40
+
41
+ **Variants (configure, do not restyle):**
42
+
43
+ - any positive safe-integer equal-track count
44
+ - typed minimum column width with automatic container-width collapse
45
+ - named none/2xs/xs/s/m/l/xl token gap
46
+ - typed CssLength gap
47
+ - boolean, finite-keyword, or typed CssFlex flex
48
+ - top/right/bottom/left text and control inset combinations
49
+ - fill: the layout root fills a definite-height parent
50
+ - rootAttributes: safe data-\* metadata on the root
51
+ - selectionMode=multiple: labeled multi-select grid for ContentItem tiles
52
+
53
+ **CSS-value props** (typed builders from `@kerfjs/ui/css-values`; raw CSS strings are rejected):
54
+
55
+ - `minColumnWidth`: length grammar; raw values: forbid; helpers `px`, `rem`, `em`, `pct`, `space`, `lengthVar`, `calc` — e.g. `minColumnWidth={px(376)}`
56
+ - `gap`: length grammar; raw values: forbid; shorthands `none`, `2xs`, `xs`, `m`, `l`; exceptional (justify) `s`, `xl`; helpers `px`, `rem`, `em`, `pct`, `space`, `lengthVar`, `calc` — e.g. `gap="m"`
57
+ - `flex`: flex grammar; raw values: forbid; shorthands `none`, `auto`, `initial`; helpers `flex` — e.g. `flex`
58
+
59
+ ## Composition
60
+
61
+ - Parents: any.
62
+ - Contexts: `application-ui`.
63
+ - Children: unrestricted.
64
+
65
+ ## State and wiring
66
+
67
+ **The app owns:** child semantics and content; fixed column count or responsive minimum width; typed gap, flex, and physical-side inset choices.
68
+
69
+ No wiring helper.
70
+
71
+ ## Geometry
72
+
73
+ Margin: none · border: none · padding: conditional (layout role: structure). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
74
+
75
+ - textInsets adds 17px and controlInsets adds 8px on selected physical sides; text wins on overlap.
76
+ - Fixed tracks use minmax(0, 1fr); responsive tracks use auto-fit with a minimum width capped at 100%, preserving equal distribution without narrow overflow.
77
+
78
+ ## Accessibility
79
+
80
+ - Grid adds no role by default; selectionMode=multiple requires ariaLabel and supplies a multi-select grid for ContentItem row/gridcell tiles.
81
+ - wireContentItems uses rendered tile positions for Left/Right/Up/Down and reaches the first or last tile with Home/End.
82
+ - Responsive column-count changes preserve source and focus order.
83
+
84
+ ## Styling boundary
85
+
86
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
87
+
88
+ Public class hooks (select for layout placement only, never to change the component's look): `kui-grid`.
89
+
90
+ Never put `kui-grid` on an element you write; render `Grid` instead (`KUI-L103`).
91
+
92
+ Public tokens it reads: `--kui-grid-gap`, `--kui-layout-item-gap`. Set a token only where its public contract allows; prefer a prop.
93
+
94
+ Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
95
+
96
+ ## Related
97
+
98
+ - Components: [Row](./row.md), [List](./list.md), [ResizableRegion](./resize.md).
99
+ - Docs: [`docs/layout.md`](../../docs/layout.md), [`docs/layout.md#grid`](../../docs/layout.md#grid).
100
+ - UX catalog route: `?component=grid`.
@@ -0,0 +1,63 @@
1
+ # Headers
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:headers` · Kerf UI · CSS composition · Structure
6
+
7
+ ## When to use
8
+
9
+ Page, dialog, and definition-list hierarchy.
10
+
11
+ - Compose page, dialog, and definition-list hierarchy from their distinct primitives.
12
+
13
+ **Not when:**
14
+
15
+ - Do not reuse one header primitive only because its typography looks similar.
16
+
17
+ ## Imports
18
+
19
+ - Nothing to import: this is a reference composition.
20
+ - Declared side effects: css.
21
+
22
+ ## Props
23
+
24
+ No props: this entry has no JavaScript API.
25
+
26
+ **Variants (configure, do not restyle):**
27
+
28
+ - page
29
+ - dialog
30
+ - key/value
31
+
32
+ ## Composition
33
+
34
+ - Parents: any.
35
+ - Contexts: `application-ui`.
36
+ - Children: unrestricted.
37
+ - Built from: [Toolbar](./toolbar.md), [ToolbarControlGroup](./toolbar-control-group.md), [ToolbarText](./toolbar-text.md), [ValueTable](./value-table.md).
38
+
39
+ ## State and wiring
40
+
41
+ **The app owns:** scope hierarchy; copy; actions.
42
+
43
+ No wiring helper.
44
+
45
+ ## Geometry
46
+
47
+ Margin: child · border: child · padding: child (layout role: structure). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
48
+
49
+ ## Accessibility
50
+
51
+ - Preserve heading and description relationships for the containing surface.
52
+
53
+ ## Styling boundary
54
+
55
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
56
+
57
+ Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
58
+
59
+ ## Related
60
+
61
+ - Components: [Toolbar](./toolbar.md), [ToolbarControlGroup](./toolbar-control-group.md), [ToolbarText](./toolbar-text.md), [ValueTable](./value-table.md).
62
+ - Docs: [`docs/component-selection.md`](../../docs/component-selection.md), [`docs/component-selection.md#ambiguous-choices`](../../docs/component-selection.md#ambiguous-choices).
63
+ - UX catalog route: `?component=headers`.
@@ -0,0 +1,75 @@
1
+ # Application layout
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:layout` · Kerf UI · CSS composition · Foundation
6
+
7
+ Unpadded panes, 24px content stacks, and self-contained 8/1/8 content items for application layout boundaries.
8
+
9
+ ## When to use
10
+
11
+ Provide one reusable pane, toolbar, content stack, and content-item geometry across sidebars, main areas, and dialogs.
12
+
13
+ - Build sidebars, main areas, inspectors, or dialogs from an unpadded pane with optional toolbar/footer and one content stack.
14
+ - Relocate a hidden pane's restore control into the adjacent main toolbar on the same logical edge.
15
+
16
+ **Not when:**
17
+
18
+ - Do not pad the pane itself or add wrapper insets around children that already own content-item geometry.
19
+ - Do not leave an empty icon-only rail after collapsing a pane.
20
+
21
+ ## Imports
22
+
23
+ - CSS: import `@kerfjs/ui/layout.css` once.
24
+ - Declared side effects: css.
25
+
26
+ ## Props
27
+
28
+ No props: this entry has no JavaScript API.
29
+
30
+ **Variants (configure, do not restyle):**
31
+
32
+ - toolbar + content
33
+ - toolbar + content + footer
34
+ - hidden inline-start pane restored from main-toolbar leading
35
+ - hidden inline-end pane restored from main-toolbar trailing
36
+
37
+ ## Composition
38
+
39
+ - Parents: any.
40
+ - Contexts: `application-ui`.
41
+ - Children: unrestricted.
42
+ - Built from: [ContentItem](./content-item.md).
43
+
44
+ ## State and wiring
45
+
46
+ **The app owns:** layout hierarchy; reading width; responsive relocation; pane visibility and matching collapse/restore controls.
47
+
48
+ No wiring helper.
49
+
50
+ ## Geometry
51
+
52
+ Margin: child · border: child · padding: child (layout role: foundation). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
53
+
54
+ ## Accessibility
55
+
56
+ - Keep reading and focus order coherent when controls wrap or panes relocate, and preserve one scroll owner per pane.
57
+ - When collapse replaces one control with its counterpart in another toolbar, move focus to the newly rendered restore or collapse control.
58
+
59
+ ## Styling boundary
60
+
61
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
62
+
63
+ Public class hooks (select for layout placement only, never to change the component's look): `kui-content`, `kui-control-cluster`, `kui-inline-metadata`, `kui-scroll-owner`.
64
+
65
+ Classes an application may place on its own elements: `kui-content`, `kui-control-cluster`, `kui-inline-metadata`, `kui-scroll-owner`.
66
+
67
+ Public tokens it reads: `--kui-layout-control-gap`, `--kui-layout-content-gap`, `--kui-layout-inline-margin`, `--kui-layout-item-border-width`, `--kui-layout-item-padding`, `--kui-layout-metadata-gap`, `--kui-layout-pill-radius`, `--kui-layout-rounded-radius`. Set a token only where its public contract allows; prefer a prop.
68
+
69
+ Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
70
+
71
+ ## Related
72
+
73
+ - Components: [ContentItem](./content-item.md).
74
+ - Docs: [`docs/component-selection.md`](../../docs/component-selection.md), [`docs/layout.md#public-roles-and-tokens`](../../docs/layout.md#public-roles-and-tokens).
75
+ - UX catalog route: `?component=layout`.
@@ -0,0 +1,91 @@
1
+ # ListActionRow
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:list-action-row` · Kerf UI · component · Navigation
6
+
7
+ Configurable navigation rows with structured labels, status/busy metadata, density, group dividers, and sibling primary/trailing native-button actions.
8
+
9
+ ## When to use
10
+
11
+ Keep a selectable primary row action and an independently named trailing action as sibling native controls inside one noninteractive visual row.
12
+
13
+ - A navigation or item row needs both a primary selectable action and an independently focusable trailing action.
14
+
15
+ **Not when:**
16
+
17
+ - Use ListItem when trailing content is dormant metadata; use AppTab only for tablist semantics and ToolbarControlGroup only for toolbar controls.
18
+ - Do not inject declaration strings; use className, public tokens, and cataloged component props for application styling.
19
+
20
+ **Alternatives:**
21
+
22
+ - [ListItem](./list-item.md) (nearest) — Trailing content is noninteractive.
23
+ - [AppTab](./tabs.md) (semantic alternative) — The primary control selects a tabpanel inside TabBar.
24
+
25
+ ## Imports
26
+
27
+ - JavaScript: `@kerfjs/ui/list-action-row` — exports `ListActionRow`.
28
+ - CSS: the browser build of `@kerfjs/ui/list-action-row` pulls its CSS automatically; import `@kerfjs/ui/list-action-row.css` manually only without the `browser` export condition.
29
+ - Declared side effects: browser-condition-css.
30
+
31
+ ## Props
32
+
33
+ Exact prop names and types: [`@kerfjs/ui/list-action-row`](../public-api-signatures-v1.md#kerfjsuilist-action-row) in `public-api-signatures-v1.md`. Do not infer props from examples.
34
+
35
+ **Variants (configure, do not restyle):**
36
+
37
+ - selected
38
+ - pressed
39
+ - disabled primary
40
+ - disabled trailing action
41
+ - multiline
42
+ - placeholder (loading)
43
+ - compact density
44
+ - description and status
45
+ - busy while retaining content
46
+ - interaction-revealed trailing action
47
+ - before, after, or paired group divider
48
+
49
+ **CSS-value props** (typed builders from `@kerfjs/ui/css-values`; raw CSS strings are rejected):
50
+
51
+ - `style`: declarations grammar; raw values: forbid — e.g. `className="app-row"`
52
+
53
+ ## Composition
54
+
55
+ - Parents: any.
56
+ - Contexts: `application-ui`.
57
+ - Children: unrestricted.
58
+ - Built from: [LucideIcon](./lucide-icon.md), [LoadingSpinner](./loading-spinner.md).
59
+
60
+ ## State and wiring
61
+
62
+ **The app owns:** routing; selection; action handling; domain data attributes; popover or context-menu policy.
63
+
64
+ No wiring helper.
65
+
66
+ ## Geometry
67
+
68
+ Margin: self · border: self · padding: self (layout role: navigation). `self` means the component already owns it — do not add wrapper padding, margin, or borders around it.
69
+
70
+ ## Accessibility
71
+
72
+ - The noninteractive root contains two sibling native buttons in primary-then-trailing focus order; each button has its own action, item identity, accessible name, and disabled state.
73
+ - Selection semantics are exposed only by the primary button; label, icon, and trailingActionIcon are dormant SafeHtml and must not contain interactive descendants; never place an interactive descendant in ListItem.trailing.
74
+
75
+ ## Styling boundary
76
+
77
+ The component owns its own styles. Configure it through its props and variants; do not override its internals.
78
+
79
+ Public class hooks (select for layout placement only, never to change the component's look): `kui-list-action-row`, `kui-list-action-row__icon`, `kui-list-action-row__label`, `kui-list-action-row__primary-label`, `kui-list-action-row__description`, `kui-list-action-row__status`, `kui-list-action-row__primary`, `kui-list-action-row__trailing-action`.
80
+
81
+ Never put `kui-list-action-row`, `kui-list-action-row__icon`, `kui-list-action-row__label`, `kui-list-action-row__primary-label`, `kui-list-action-row__description`, `kui-list-action-row__status`, `kui-list-action-row__primary`, `kui-list-action-row__trailing-action` on an element you write; render `ListActionRow` instead (`KUI-L103`).
82
+
83
+ Public tokens it reads: `--kui-color-brand-border-quiet`, `--kui-color-brand-fill-normal`, `--kui-color-neutral-border-normal`, `--kui-color-neutral-fill-normal`, `--kui-color-neutral-fill-quiet`, `--kui-color-neutral-on-normal`, `--kui-color-neutral-on-quiet`, `--kui-color-neutral-border-quiet`, `--kui-focus-ring`, `--kui-layout-inline-margin`, `--kui-layout-item-gap`, `--kui-layout-item-padding`, `--kui-layout-rounded-radius`, `--kui-radius-pill`, `--kui-list-action-row-background`, `--kui-list-action-row-border`, `--kui-list-action-row-color`, `--kui-list-action-row-hover-background`, `--kui-list-action-row-hover-border`, `--kui-list-action-row-selected-background`, `--kui-list-action-row-selected-border`, `--kui-list-action-row-selected-color`, `--kui-list-action-row-trailing-hover-background`, `--kui-list-group-divider-color`, `--kui-font-xs`. Set a token only where its public contract allows; prefer a prop.
84
+
85
+ Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
86
+
87
+ ## Related
88
+
89
+ - Components: [LucideIcon](./lucide-icon.md), [LoadingSpinner](./loading-spinner.md), [ListItem](./list-item.md), [AppTab](./tabs.md).
90
+ - Docs: [`docs/component-selection.md`](../../docs/component-selection.md), [`docs/component-selection.md#problem-to-component-matrix`](../../docs/component-selection.md#problem-to-component-matrix).
91
+ - UX catalog route: `?component=list-action-row`.