@kerfjs/ui 5.0.0-beta.6 → 5.0.0-beta.61

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 (714) hide show
  1. package/README.md +494 -138
  2. package/ai/application-ui-diagnostic-ids-v1.json +109 -0
  3. package/ai/application-ui-profile-sync.cjs +529 -0
  4. package/ai/application-ui-profile.d.mts +1 -0
  5. package/ai/application-ui-profile.d.ts +102 -0
  6. package/ai/application-ui-profile.defaults.json +96 -0
  7. package/ai/application-ui-profile.mjs +626 -0
  8. package/ai/application-ui-profile.schema.json +130 -0
  9. package/ai/catalog-authoring.json +36 -0
  10. package/ai/catalog-authoring.schema.json +109 -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 +79 -0
  14. package/ai/component-catalog.json +4041 -591
  15. package/ai/component-catalog.schema.json +78 -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 +524 -0
  20. package/ai/component-composition.d.ts +125 -0
  21. package/ai/component-composition.json +7074 -0
  22. package/ai/component-composition.schema.json +375 -0
  23. package/ai/components/README.md +171 -0
  24. package/ai/components/application-tabs.md +65 -0
  25. package/ai/components/badge.md +72 -0
  26. package/ai/components/chip.md +72 -0
  27. package/ai/components/collapsible-panel.md +102 -0
  28. package/ai/components/content-item.md +90 -0
  29. package/ai/components/disclosure-arrow.md +77 -0
  30. package/ai/components/document-baseline.md +75 -0
  31. package/ai/components/empty-state.md +80 -0
  32. package/ai/components/feedback.md +71 -0
  33. package/ai/components/floating-toolbar.md +82 -0
  34. package/ai/components/foundation.md +65 -0
  35. package/ai/components/grid.md +96 -0
  36. package/ai/components/headers.md +63 -0
  37. package/ai/components/layout.md +75 -0
  38. package/ai/components/list-action-row.md +91 -0
  39. package/ai/components/list-header.md +89 -0
  40. package/ai/components/list-inset-control.md +74 -0
  41. package/ai/components/list-inset-text.md +72 -0
  42. package/ai/components/list-item.md +94 -0
  43. package/ai/components/list.md +103 -0
  44. package/ai/components/loading-spinner.md +72 -0
  45. package/ai/components/lucide-icon.md +66 -0
  46. package/ai/components/nav-stack.md +103 -0
  47. package/ai/components/pane.md +100 -0
  48. package/ai/components/popup-menu.md +171 -0
  49. package/ai/components/recipe-app-shell.md +57 -0
  50. package/ai/components/recipe-collapsible-sidebar.md +57 -0
  51. package/ai/components/recipe-compact-toolbar.md +57 -0
  52. package/ai/components/recipe-composer-form.md +57 -0
  53. package/ai/components/recipe-list-detail-dialog.md +57 -0
  54. package/ai/components/recipe-list-workspace-states.md +57 -0
  55. package/ai/components/recipe-loading-inspector.md +57 -0
  56. package/ai/components/recipe-navigation-sidebar.md +57 -0
  57. package/ai/components/recipe-navigation-stack.md +57 -0
  58. package/ai/components/recipe-workspace-header.md +57 -0
  59. package/ai/components/resize.md +106 -0
  60. package/ai/components/row.md +96 -0
  61. package/ai/components/segmented-control.md +82 -0
  62. package/ai/components/select.md +112 -0
  63. package/ai/components/skeleton.md +84 -0
  64. package/ai/components/spacer.md +86 -0
  65. package/ai/components/split-view.md +102 -0
  66. package/ai/components/state-banner.md +94 -0
  67. package/ai/components/sunken-panel.md +79 -0
  68. package/ai/components/surface-scaffold.md +78 -0
  69. package/ai/components/tab-bar.md +112 -0
  70. package/ai/components/tab-scaffold.md +94 -0
  71. package/ai/components/tabs.md +95 -0
  72. package/ai/components/text.md +83 -0
  73. package/ai/components/token-search-field.md +103 -0
  74. package/ai/components/toolbar-control-group.md +102 -0
  75. package/ai/components/toolbar-text.md +78 -0
  76. package/ai/components/toolbar.md +97 -0
  77. package/ai/components/value-table.md +73 -0
  78. package/ai/components/wa-accordion-item.md +55 -0
  79. package/ai/components/wa-accordion.md +65 -0
  80. package/ai/components/wa-animated-image.md +55 -0
  81. package/ai/components/wa-animation.md +55 -0
  82. package/ai/components/wa-avatar.md +55 -0
  83. package/ai/components/wa-badge.md +55 -0
  84. package/ai/components/wa-breadcrumb-item.md +53 -0
  85. package/ai/components/wa-breadcrumb.md +55 -0
  86. package/ai/components/wa-button-group.md +59 -0
  87. package/ai/components/wa-button.md +55 -0
  88. package/ai/components/wa-callout.md +58 -0
  89. package/ai/components/wa-card.md +59 -0
  90. package/ai/components/wa-carousel-item.md +53 -0
  91. package/ai/components/wa-carousel.md +55 -0
  92. package/ai/components/wa-checkbox-group.md +55 -0
  93. package/ai/components/wa-checkbox.md +55 -0
  94. package/ai/components/wa-color-picker.md +55 -0
  95. package/ai/components/wa-comparison.md +55 -0
  96. package/ai/components/wa-copy-button.md +55 -0
  97. package/ai/components/wa-details.md +61 -0
  98. package/ai/components/wa-dialog.md +59 -0
  99. package/ai/components/wa-divider.md +53 -0
  100. package/ai/components/wa-drawer.md +55 -0
  101. package/ai/components/wa-dropdown-item.md +60 -0
  102. package/ai/components/wa-dropdown.md +60 -0
  103. package/ai/components/wa-format-bytes.md +53 -0
  104. package/ai/components/wa-format-date.md +53 -0
  105. package/ai/components/wa-format-number.md +53 -0
  106. package/ai/components/wa-icon.md +58 -0
  107. package/ai/components/wa-include.md +53 -0
  108. package/ai/components/wa-input.md +59 -0
  109. package/ai/components/wa-intersection-observer.md +53 -0
  110. package/ai/components/wa-known-date.md +53 -0
  111. package/ai/components/wa-markdown.md +53 -0
  112. package/ai/components/wa-mutation-observer.md +53 -0
  113. package/ai/components/wa-number-input.md +55 -0
  114. package/ai/components/wa-option.md +59 -0
  115. package/ai/components/wa-otp-input.md +53 -0
  116. package/ai/components/wa-page.md +53 -0
  117. package/ai/components/wa-pagination.md +55 -0
  118. package/ai/components/wa-popover.md +55 -0
  119. package/ai/components/wa-popup.md +53 -0
  120. package/ai/components/wa-progress-bar.md +53 -0
  121. package/ai/components/wa-progress-ring.md +53 -0
  122. package/ai/components/wa-qr-code.md +53 -0
  123. package/ai/components/wa-radio-group.md +59 -0
  124. package/ai/components/wa-radio.md +55 -0
  125. package/ai/components/wa-random-content.md +53 -0
  126. package/ai/components/wa-rating.md +55 -0
  127. package/ai/components/wa-relative-time.md +53 -0
  128. package/ai/components/wa-resize-observer.md +53 -0
  129. package/ai/components/wa-scroller.md +53 -0
  130. package/ai/components/wa-select.md +63 -0
  131. package/ai/components/wa-skeleton.md +53 -0
  132. package/ai/components/wa-slider.md +55 -0
  133. package/ai/components/wa-spinner.md +58 -0
  134. package/ai/components/wa-split-panel.md +58 -0
  135. package/ai/components/wa-switch.md +53 -0
  136. package/ai/components/wa-tab-group.md +69 -0
  137. package/ai/components/wa-tab-panel.md +60 -0
  138. package/ai/components/wa-tab.md +59 -0
  139. package/ai/components/wa-tag.md +59 -0
  140. package/ai/components/wa-textarea.md +53 -0
  141. package/ai/components/wa-time-input.md +55 -0
  142. package/ai/components/wa-toast-item.md +60 -0
  143. package/ai/components/wa-toast.md +60 -0
  144. package/ai/components/wa-tooltip.md +55 -0
  145. package/ai/components/wa-tree-item.md +55 -0
  146. package/ai/components/wa-tree.md +55 -0
  147. package/ai/components/wa-zoomable-frame.md +55 -0
  148. package/ai/components/workbench.md +114 -0
  149. package/ai/public-api-signatures-v1.md +2597 -190
  150. package/ai/skill.md +259 -65
  151. package/ai/webawesome-jsx-signatures-v1.md +9 -2
  152. package/analyzer/cli.mjs +49 -0
  153. package/analyzer/component-ownership.d.mts +56 -0
  154. package/analyzer/component-ownership.mjs +184 -0
  155. package/analyzer/index.d.mts +49 -0
  156. package/analyzer/index.mjs +1458 -0
  157. package/analyzer/loud-pairs.d.mts +49 -0
  158. package/analyzer/loud-pairs.mjs +357 -0
  159. package/analyzer/report.schema.json +66 -0
  160. package/analyzer/selectors.d.mts +21 -0
  161. package/analyzer/selectors.mjs +212 -0
  162. package/dist/app-tab.d.ts +41 -4
  163. package/dist/app-tab.js +3 -1
  164. package/dist/badge.d.ts +52 -0
  165. package/dist/badge.js +3 -0
  166. package/dist/badge.js.map +1 -0
  167. package/dist/browser/app-tab.js +1 -0
  168. package/dist/browser/badge.js +3 -0
  169. package/dist/browser/catalog.js +25 -0
  170. package/dist/browser/chip.js +3 -0
  171. package/dist/browser/collapsible-panel.js +7 -0
  172. package/dist/browser/content-item.js +3 -0
  173. package/dist/browser/floating-toolbar.js +3 -0
  174. package/dist/browser/grid.js +3 -0
  175. package/dist/browser/list-action-row.js +5 -0
  176. package/dist/browser/list-header.js +8 -0
  177. package/dist/browser/list-inset-control.js +3 -0
  178. package/dist/browser/list-inset-text.js +3 -0
  179. package/dist/browser/list-item.js +5 -0
  180. package/dist/browser/list.js +3 -0
  181. package/dist/browser/{panel-header.js → nav-stack.js} +4 -2
  182. package/dist/browser/pane.js +3 -0
  183. package/dist/browser/popup-menu.js +3 -0
  184. package/dist/browser/row.js +3 -0
  185. package/dist/browser/select.js +2 -0
  186. package/dist/browser/skeleton.js +3 -0
  187. package/dist/browser/spacer.js +3 -0
  188. package/dist/browser/split-view.js +10 -0
  189. package/dist/browser/state-banner.js +2 -0
  190. package/dist/browser/sunken-panel.js +3 -0
  191. package/dist/browser/surface-scaffold.js +3 -0
  192. package/dist/browser/tab-scaffold.js +4 -0
  193. package/dist/browser/text.js +3 -0
  194. package/dist/browser/toolbar-text.js +1 -0
  195. package/dist/browser/value-table.js +1 -0
  196. package/dist/browser/workbench.js +10 -0
  197. package/dist/catalog-resources.d.ts +46 -0
  198. package/dist/catalog-resources.js +22 -0
  199. package/dist/catalog-resources.js.map +1 -0
  200. package/dist/catalog.d.ts +90 -0
  201. package/dist/catalog.js +501 -0
  202. package/dist/catalog.js.map +1 -0
  203. package/dist/chip.d.ts +29 -0
  204. package/dist/chip.js +3 -0
  205. package/dist/chip.js.map +1 -0
  206. package/dist/chunk-2G2ZJQYK.js +152 -0
  207. package/dist/chunk-2G2ZJQYK.js.map +1 -0
  208. package/dist/chunk-3SXMEK3B.js +43 -0
  209. package/dist/chunk-3SXMEK3B.js.map +1 -0
  210. package/dist/{chunk-W2FK7ZNY.js → chunk-4R777DUZ.js} +10 -2
  211. package/dist/chunk-4R777DUZ.js.map +1 -0
  212. package/dist/chunk-4SQK27MR.js +202 -0
  213. package/dist/chunk-4SQK27MR.js.map +1 -0
  214. package/dist/chunk-5I7QGQVT.js +24 -0
  215. package/dist/chunk-5I7QGQVT.js.map +1 -0
  216. package/dist/chunk-5PESG2VP.js +115 -0
  217. package/dist/chunk-5PESG2VP.js.map +1 -0
  218. package/dist/chunk-5Q3N6EV7.js +156 -0
  219. package/dist/chunk-5Q3N6EV7.js.map +1 -0
  220. package/dist/chunk-6ZXOQEAN.js +27 -0
  221. package/dist/chunk-6ZXOQEAN.js.map +1 -0
  222. package/dist/chunk-7JUBXOIV.js +103 -0
  223. package/dist/chunk-7JUBXOIV.js.map +1 -0
  224. package/dist/chunk-A3CKOW2R.js +622 -0
  225. package/dist/chunk-A3CKOW2R.js.map +1 -0
  226. package/dist/chunk-AHEG27M7.js +66 -0
  227. package/dist/chunk-AHEG27M7.js.map +1 -0
  228. package/dist/chunk-AUKT3KMG.js +37 -0
  229. package/dist/chunk-AUKT3KMG.js.map +1 -0
  230. package/dist/chunk-AYUHMAI6.js +48 -0
  231. package/dist/chunk-AYUHMAI6.js.map +1 -0
  232. package/dist/chunk-BFPBS5Y4.js +250 -0
  233. package/dist/chunk-BFPBS5Y4.js.map +1 -0
  234. package/dist/{chunk-MQIZAD4A.js → chunk-C4OYOKWX.js} +138 -22
  235. package/dist/chunk-C4OYOKWX.js.map +1 -0
  236. package/dist/chunk-DG6G5EPF.js +35 -0
  237. package/dist/chunk-DG6G5EPF.js.map +1 -0
  238. package/dist/chunk-E36EVCKG.js +34 -0
  239. package/dist/chunk-E36EVCKG.js.map +1 -0
  240. package/dist/chunk-EAC4CDY7.js +57 -0
  241. package/dist/chunk-EAC4CDY7.js.map +1 -0
  242. package/dist/chunk-EZVNC4J6.js +104 -0
  243. package/dist/chunk-EZVNC4J6.js.map +1 -0
  244. package/dist/chunk-F4QMLOXJ.js +135 -0
  245. package/dist/chunk-F4QMLOXJ.js.map +1 -0
  246. package/dist/chunk-GLDWRCAM.js +49 -0
  247. package/dist/chunk-GLDWRCAM.js.map +1 -0
  248. package/dist/chunk-I3Q7KKYM.js +33 -0
  249. package/dist/chunk-I3Q7KKYM.js.map +1 -0
  250. package/dist/chunk-IA7TMD4Y.js +288 -0
  251. package/dist/chunk-IA7TMD4Y.js.map +1 -0
  252. package/dist/chunk-JCV4GXWB.js +249 -0
  253. package/dist/chunk-JCV4GXWB.js.map +1 -0
  254. package/dist/chunk-K47P7QZC.js +17 -0
  255. package/dist/chunk-K47P7QZC.js.map +1 -0
  256. package/dist/chunk-KLJKU6ZL.js +109 -0
  257. package/dist/chunk-KLJKU6ZL.js.map +1 -0
  258. package/dist/{chunk-56RJXPHG.js → chunk-KROD7KZK.js} +7 -4
  259. package/dist/chunk-KROD7KZK.js.map +1 -0
  260. package/dist/chunk-MA73TA6D.js +42 -0
  261. package/dist/chunk-MA73TA6D.js.map +1 -0
  262. package/dist/chunk-MERWRTBG.js +45 -0
  263. package/dist/chunk-MERWRTBG.js.map +1 -0
  264. package/dist/chunk-MEY33VWB.js +44 -0
  265. package/dist/chunk-MEY33VWB.js.map +1 -0
  266. package/dist/chunk-MP2GDBQZ.js +50 -0
  267. package/dist/chunk-MP2GDBQZ.js.map +1 -0
  268. package/dist/chunk-N3GKMPDW.js +51 -0
  269. package/dist/chunk-N3GKMPDW.js.map +1 -0
  270. package/dist/chunk-NAPE7WUS.js +75 -0
  271. package/dist/chunk-NAPE7WUS.js.map +1 -0
  272. package/dist/chunk-NN6GYOA2.js +47 -0
  273. package/dist/chunk-NN6GYOA2.js.map +1 -0
  274. package/dist/chunk-NNMLEDMD.js +399 -0
  275. package/dist/chunk-NNMLEDMD.js.map +1 -0
  276. package/dist/chunk-NYL63PSD.js +95 -0
  277. package/dist/chunk-NYL63PSD.js.map +1 -0
  278. package/dist/chunk-P7D3EMXM.js +52 -0
  279. package/dist/chunk-P7D3EMXM.js.map +1 -0
  280. package/dist/chunk-PSHUSWQH.js +18 -0
  281. package/dist/chunk-PSHUSWQH.js.map +1 -0
  282. package/dist/chunk-Q6YU3BT7.js +138 -0
  283. package/dist/chunk-Q6YU3BT7.js.map +1 -0
  284. package/dist/chunk-RRB26JRJ.js +247 -0
  285. package/dist/chunk-RRB26JRJ.js.map +1 -0
  286. package/dist/{chunk-7BR3DO2A.js → chunk-SRSJO5QE.js} +13 -4
  287. package/dist/chunk-SRSJO5QE.js.map +1 -0
  288. package/dist/chunk-SWVW56CV.js +188 -0
  289. package/dist/chunk-SWVW56CV.js.map +1 -0
  290. package/dist/chunk-TEYARRAK.js +216 -0
  291. package/dist/chunk-TEYARRAK.js.map +1 -0
  292. package/dist/chunk-UCKKT6KO.js +71 -0
  293. package/dist/chunk-UCKKT6KO.js.map +1 -0
  294. package/dist/chunk-UIDKY4UB.js +14 -0
  295. package/dist/chunk-UIDKY4UB.js.map +1 -0
  296. package/dist/chunk-VCBTX62E.js +135 -0
  297. package/dist/chunk-VCBTX62E.js.map +1 -0
  298. package/dist/chunk-VZOFZPSO.js +71 -0
  299. package/dist/chunk-VZOFZPSO.js.map +1 -0
  300. package/dist/{chunk-TRNBHPNW.js → chunk-X5QSICJ3.js} +13 -7
  301. package/dist/chunk-X5QSICJ3.js.map +1 -0
  302. package/dist/chunk-Y74NWGQW.js +418 -0
  303. package/dist/chunk-Y74NWGQW.js.map +1 -0
  304. package/dist/chunk-ZLWQZUGF.js +27 -0
  305. package/dist/chunk-ZLWQZUGF.js.map +1 -0
  306. package/dist/collapsible-panel.d.ts +122 -0
  307. package/dist/collapsible-panel.js +115 -0
  308. package/dist/collapsible-panel.js.map +1 -0
  309. package/dist/content-item.d.ts +46 -0
  310. package/dist/content-item.js +4 -0
  311. package/dist/content-item.js.map +1 -0
  312. package/dist/css-values.d.ts +107 -0
  313. package/dist/css-values.js +3 -0
  314. package/dist/css-values.js.map +1 -0
  315. package/dist/device-class.js +33 -5
  316. package/dist/device-class.js.map +1 -1
  317. package/dist/disclosure-arrow.d.ts +6 -1
  318. package/dist/disclosure-arrow.js +1 -1
  319. package/dist/empty-state.d.ts +5 -2
  320. package/dist/empty-state.js +1 -1
  321. package/dist/flex-alignment-4ms8ZbV8.d.ts +5 -0
  322. package/dist/floating-toolbar.d.ts +51 -0
  323. package/dist/floating-toolbar.js +3 -0
  324. package/dist/floating-toolbar.js.map +1 -0
  325. package/dist/grid.d.ts +42 -0
  326. package/dist/grid.js +5 -0
  327. package/dist/grid.js.map +1 -0
  328. package/dist/help-tags-register.d.ts +13 -0
  329. package/dist/help-tags-register.js +9 -0
  330. package/dist/help-tags-register.js.map +1 -0
  331. package/dist/index.d.ts +35 -14
  332. package/dist/index.js +43 -22
  333. package/dist/list-action-row.d.ts +64 -0
  334. package/dist/list-action-row.js +8 -0
  335. package/dist/list-action-row.js.map +1 -0
  336. package/dist/list-header.d.ts +99 -0
  337. package/dist/list-header.js +10 -0
  338. package/dist/list-header.js.map +1 -0
  339. package/dist/list-inset-control.d.ts +22 -0
  340. package/dist/list-inset-control.js +3 -0
  341. package/dist/list-inset-control.js.map +1 -0
  342. package/dist/list-inset-text.d.ts +30 -0
  343. package/dist/list-inset-text.js +4 -0
  344. package/dist/list-inset-text.js.map +1 -0
  345. package/dist/list-item.d.ts +62 -0
  346. package/dist/list-item.js +8 -0
  347. package/dist/list-item.js.map +1 -0
  348. package/dist/list.d.ts +59 -0
  349. package/dist/list.js +6 -0
  350. package/dist/list.js.map +1 -0
  351. package/dist/loading-spinner.d.ts +3 -1
  352. package/dist/loading-spinner.js +1 -1
  353. package/dist/lucide-icon.d.ts +3 -1
  354. package/dist/lucide-icon.js +1 -1
  355. package/dist/nav-stack.d.ts +60 -10
  356. package/dist/nav-stack.js +6 -1
  357. package/dist/pane.d.ts +102 -0
  358. package/dist/pane.js +4 -0
  359. package/dist/pane.js.map +1 -0
  360. package/dist/panel-toolbar-DqwtBxQL.d.ts +63 -0
  361. package/dist/popup-menu-register.d.ts +9 -0
  362. package/dist/popup-menu-register.js +31 -0
  363. package/dist/popup-menu-register.js.map +1 -0
  364. package/dist/popup-menu.d.ts +99 -0
  365. package/dist/popup-menu.js +3 -0
  366. package/dist/popup-menu.js.map +1 -0
  367. package/dist/resizable-region.d.ts +32 -3
  368. package/dist/resizable-region.js +1 -1
  369. package/dist/row.d.ts +48 -0
  370. package/dist/row.js +6 -0
  371. package/dist/row.js.map +1 -0
  372. package/dist/segmented-control.d.ts +13 -8
  373. package/dist/segmented-control.js +1 -1
  374. package/dist/select-register.d.ts +5 -1
  375. package/dist/select-register.js +243 -2
  376. package/dist/select-register.js.map +1 -1
  377. package/dist/select.d.ts +101 -8
  378. package/dist/select.js +4 -1
  379. package/dist/semantic-content-BbzjvSu9.d.ts +14 -0
  380. package/dist/sides-BPSWde0A.d.ts +4 -0
  381. package/dist/skeleton.d.ts +31 -0
  382. package/dist/skeleton.js +4 -0
  383. package/dist/skeleton.js.map +1 -0
  384. package/dist/spacer.d.ts +18 -0
  385. package/dist/spacer.js +4 -0
  386. package/dist/spacer.js.map +1 -0
  387. package/dist/split-view.d.ts +39 -7
  388. package/dist/split-view.js +120 -10
  389. package/dist/split-view.js.map +1 -1
  390. package/dist/state-banner.d.ts +19 -5
  391. package/dist/state-banner.js +4 -1
  392. package/dist/styles/app-tab.css +104 -0
  393. package/dist/styles/badge.css +118 -0
  394. package/dist/styles/catalog/components/catalog-example-stack.css +9 -0
  395. package/dist/styles/catalog/components/catalog-example.css +164 -0
  396. package/dist/styles/catalog/components/catalog-stage.css +55 -0
  397. package/dist/styles/catalog/components/catalog.css +12 -0
  398. package/dist/styles/catalog.css +5 -0
  399. package/dist/styles/chip.css +118 -0
  400. package/dist/styles/collapsible-panel.css +575 -0
  401. package/dist/styles/content-item.css +30 -0
  402. package/dist/styles/document.css +23 -0
  403. package/dist/styles/floating-toolbar.css +119 -0
  404. package/dist/styles/foundation.css +178 -40
  405. package/dist/styles/grid.css +28 -0
  406. package/dist/styles/layout.css +3 -41
  407. package/dist/styles/list-action-row.css +257 -0
  408. package/dist/styles/list-header.css +228 -0
  409. package/dist/styles/list-inset-control.css +30 -0
  410. package/dist/styles/list-inset-text.css +29 -0
  411. package/dist/styles/list-item.css +245 -0
  412. package/dist/styles/list.css +133 -0
  413. package/dist/styles/nav-stack.css +158 -50
  414. package/dist/styles/pane.css +229 -0
  415. package/dist/styles/popup-menu.css +271 -0
  416. package/dist/styles/resizable-region.css +429 -4
  417. package/dist/styles/row.css +111 -0
  418. package/dist/styles/segmented-control.css +33 -9
  419. package/dist/styles/select.css +262 -9
  420. package/dist/styles/skeleton.css +92 -0
  421. package/dist/styles/spacer.css +11 -0
  422. package/dist/styles/split-view.css +108 -3
  423. package/dist/styles/state-banner.css +94 -19
  424. package/dist/styles/styles.css +14 -4
  425. package/dist/styles/sunken-panel.css +22 -0
  426. package/dist/styles/surface-scaffold.css +56 -0
  427. package/dist/styles/tab-bar.css +132 -9
  428. package/dist/styles/tab-scaffold.css +113 -3
  429. package/dist/styles/text.css +65 -0
  430. package/dist/styles/token-search-field.css +49 -43
  431. package/dist/styles/toolbar-control-group.css +465 -28
  432. package/dist/styles/toolbar-text.css +88 -4
  433. package/dist/styles/toolbar.css +322 -11
  434. package/dist/styles/value-table.css +34 -4
  435. package/dist/styles/webawesome.css +348 -10
  436. package/dist/styles/workbench.css +828 -7
  437. package/dist/sunken-panel.d.ts +22 -0
  438. package/dist/sunken-panel.js +3 -0
  439. package/dist/sunken-panel.js.map +1 -0
  440. package/dist/surface-scaffold.d.ts +30 -0
  441. package/dist/surface-scaffold.js +3 -0
  442. package/dist/surface-scaffold.js.map +1 -0
  443. package/dist/tab-bar.d.ts +31 -6
  444. package/dist/tab-bar.js +1 -1
  445. package/dist/tab-scaffold.d.ts +54 -7
  446. package/dist/tab-scaffold.js +82 -9
  447. package/dist/tab-scaffold.js.map +1 -1
  448. package/dist/text.d.ts +38 -0
  449. package/dist/text.js +3 -0
  450. package/dist/text.js.map +1 -0
  451. package/dist/token-search-field-DvgFLhLL.d.ts +130 -0
  452. package/dist/token-search-field.d.ts +3 -43
  453. package/dist/token-search-field.js +1 -1
  454. package/dist/token-search-model.d.ts +3 -0
  455. package/dist/token-search-model.js +3 -0
  456. package/dist/token-search-model.js.map +1 -0
  457. package/dist/toolbar-control-group.d.ts +65 -7
  458. package/dist/toolbar-control-group.js +1 -1
  459. package/dist/toolbar-text.d.ts +37 -4
  460. package/dist/toolbar-text.js +3 -1
  461. package/dist/toolbar.d.ts +56 -7
  462. package/dist/toolbar.js +1 -1
  463. package/dist/types-BuHELdXR.d.ts +117 -0
  464. package/dist/value-table.d.ts +13 -3
  465. package/dist/value-table.js +3 -1
  466. package/dist/webawesome.d.ts +8 -1
  467. package/dist/wire-catalog.d.ts +82 -0
  468. package/dist/wire-catalog.js +327 -0
  469. package/dist/wire-catalog.js.map +1 -0
  470. package/dist/wire-nav-stack.d.ts +4 -1
  471. package/dist/wire-nav-stack.js +147 -7
  472. package/dist/wire-nav-stack.js.map +1 -1
  473. package/dist/wire-resizable-regions.d.ts +2 -1
  474. package/dist/wire-resizable-regions.js +2 -1
  475. package/dist/wire-scroll-dividers.d.ts +69 -0
  476. package/dist/wire-scroll-dividers.js +3 -0
  477. package/dist/wire-scroll-dividers.js.map +1 -0
  478. package/dist/wire-sidebar.d.ts +63 -0
  479. package/dist/wire-sidebar.js +231 -0
  480. package/dist/wire-sidebar.js.map +1 -0
  481. package/dist/wire-tab-bars.d.ts +19 -2
  482. package/dist/wire-tab-bars.js +1 -1
  483. package/dist/wire-tab-scaffold.js +9 -4
  484. package/dist/wire-tab-scaffold.js.map +1 -1
  485. package/dist/wire-token-search-fields.d.ts +65 -3
  486. package/dist/wire-token-search-fields.js +1 -1
  487. package/dist/wire-workbench.d.ts +109 -0
  488. package/dist/wire-workbench.js +6 -0
  489. package/dist/wire-workbench.js.map +1 -0
  490. package/dist/workbench.d.ts +218 -7
  491. package/dist/workbench.js +13 -15
  492. package/dist/workbench.js.map +1 -1
  493. package/docs/accessibility.md +413 -23
  494. package/docs/app-layouts.md +106 -8
  495. package/docs/catalog.md +440 -0
  496. package/docs/collapsible-panel.md +363 -0
  497. package/docs/component-contract.md +560 -52
  498. package/docs/component-integration.md +75 -0
  499. package/docs/component-selection.md +421 -89
  500. package/docs/design/templates/empty-state/filtered-dark.svg +1 -0
  501. package/docs/design/templates/empty-state/filtered.svg +1 -0
  502. package/docs/design/templates/empty-state/with-action-dark.svg +1 -0
  503. package/docs/design/templates/empty-state/with-action.svg +1 -0
  504. package/docs/design/templates/empty-state-dark.svg +1 -0
  505. package/docs/design/templates/empty-state.svg +1 -0
  506. package/docs/design/templates/list/compact-dark.svg +1 -0
  507. package/docs/design/templates/list/compact.svg +1 -0
  508. package/docs/design/templates/list/stack-dark.svg +1 -0
  509. package/docs/design/templates/list/stack.svg +1 -0
  510. package/docs/design/templates/list-action-row/default-dark.svg +1 -0
  511. package/docs/design/templates/list-action-row/default.svg +1 -0
  512. package/docs/design/templates/list-action-row/selected-dark.svg +1 -0
  513. package/docs/design/templates/list-action-row/selected.svg +1 -0
  514. package/docs/design/templates/list-action-row-dark.svg +1 -0
  515. package/docs/design/templates/list-action-row.svg +1 -0
  516. package/docs/design/templates/list-dark.svg +1 -0
  517. package/docs/design/templates/list-header/action-dark.svg +1 -0
  518. package/docs/design/templates/list-header/action.svg +1 -0
  519. package/docs/design/templates/list-header/count-dark.svg +1 -0
  520. package/docs/design/templates/list-header/count.svg +1 -0
  521. package/docs/design/templates/list-header/inline-action-dark.svg +1 -0
  522. package/docs/design/templates/list-header/inline-action.svg +1 -0
  523. package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -0
  524. package/docs/design/templates/list-header/toggle-collapsed.svg +1 -0
  525. package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -0
  526. package/docs/design/templates/list-header/toggle-expanded.svg +1 -0
  527. package/docs/design/templates/list-header-dark.svg +1 -0
  528. package/docs/design/templates/list-header.svg +1 -0
  529. package/docs/design/templates/list-item/default-dark.svg +1 -0
  530. package/docs/design/templates/list-item/default.svg +1 -0
  531. package/docs/design/templates/list-item/multiline-dark.svg +1 -0
  532. package/docs/design/templates/list-item/multiline.svg +1 -0
  533. package/docs/design/templates/list-item/selected-dark.svg +1 -0
  534. package/docs/design/templates/list-item/selected.svg +1 -0
  535. package/docs/design/templates/list-item/trailing-dark.svg +1 -0
  536. package/docs/design/templates/list-item/trailing.svg +1 -0
  537. package/docs/design/templates/list-item-dark.svg +1 -0
  538. package/docs/design/templates/list-item.svg +1 -0
  539. package/docs/design/templates/list.svg +1 -0
  540. package/docs/design/templates/segmented-control/equal-dark.svg +1 -0
  541. package/docs/design/templates/segmented-control/equal.svg +1 -0
  542. package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -0
  543. package/docs/design/templates/segmented-control/pill-small.svg +1 -0
  544. package/docs/design/templates/segmented-control-dark.svg +1 -0
  545. package/docs/design/templates/segmented-control.svg +1 -0
  546. package/docs/design/templates/skeleton/avatar-dark.svg +1 -0
  547. package/docs/design/templates/skeleton/avatar.svg +1 -0
  548. package/docs/design/templates/skeleton/block-dark.svg +1 -0
  549. package/docs/design/templates/skeleton/block.svg +1 -0
  550. package/docs/design/templates/skeleton/lines-dark.svg +1 -0
  551. package/docs/design/templates/skeleton/lines.svg +1 -0
  552. package/docs/design/templates/skeleton-dark.svg +1 -0
  553. package/docs/design/templates/skeleton.svg +1 -0
  554. package/docs/design/templates/state-banner/danger-dark.svg +1 -0
  555. package/docs/design/templates/state-banner/danger.svg +1 -0
  556. package/docs/design/templates/state-banner/info-badge-dark.svg +1 -0
  557. package/docs/design/templates/state-banner/info-badge.svg +1 -0
  558. package/docs/design/templates/state-banner/info-dark.svg +1 -0
  559. package/docs/design/templates/state-banner/info.svg +1 -0
  560. package/docs/design/templates/state-banner/success-dark.svg +1 -0
  561. package/docs/design/templates/state-banner/success.svg +1 -0
  562. package/docs/design/templates/state-banner/warning-dark.svg +1 -0
  563. package/docs/design/templates/state-banner/warning.svg +1 -0
  564. package/docs/design/templates/state-banner-dark.svg +1 -0
  565. package/docs/design/templates/state-banner.svg +1 -0
  566. package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -0
  567. package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -0
  568. package/docs/design/templates/tab-bar-dark.svg +1 -0
  569. package/docs/design/templates/tab-bar.svg +1 -0
  570. package/docs/design/templates/token-search-field/empty-dark.svg +1 -0
  571. package/docs/design/templates/token-search-field/empty.svg +1 -0
  572. package/docs/design/templates/token-search-field/tokens-dark.svg +1 -0
  573. package/docs/design/templates/token-search-field/tokens.svg +1 -0
  574. package/docs/design/templates/token-search-field-dark.svg +1 -0
  575. package/docs/design/templates/token-search-field.svg +1 -0
  576. package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -0
  577. package/docs/design/templates/toolbar/title-and-actions.svg +1 -0
  578. package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -0
  579. package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -0
  580. package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -0
  581. package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -0
  582. package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -0
  583. package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -0
  584. package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -0
  585. package/docs/design/templates/toolbar-control-group/with-text.svg +1 -0
  586. package/docs/design/templates/toolbar-control-group-dark.svg +1 -0
  587. package/docs/design/templates/toolbar-control-group.svg +1 -0
  588. package/docs/design/templates/toolbar-dark.svg +1 -0
  589. package/docs/design/templates/toolbar-text/default-dark.svg +1 -0
  590. package/docs/design/templates/toolbar-text/default.svg +1 -0
  591. package/docs/design/templates/toolbar-text/large-dark.svg +1 -0
  592. package/docs/design/templates/toolbar-text/large.svg +1 -0
  593. package/docs/design/templates/toolbar-text/small-dark.svg +1 -0
  594. package/docs/design/templates/toolbar-text/small.svg +1 -0
  595. package/docs/design/templates/toolbar-text-dark.svg +1 -0
  596. package/docs/design/templates/toolbar-text.svg +1 -0
  597. package/docs/design/templates/toolbar.svg +1 -0
  598. package/docs/design/templates/value-table/details-dark.svg +1 -0
  599. package/docs/design/templates/value-table/details.svg +1 -0
  600. package/docs/design/templates/value-table-dark.svg +1 -0
  601. package/docs/design/templates/value-table.svg +1 -0
  602. package/docs/design/templates.md +138 -0
  603. package/docs/design-philosophy.md +48 -20
  604. package/docs/device-class.md +10 -9
  605. package/docs/document-baseline.md +38 -0
  606. package/docs/examples/application-ui-profile.json +60 -0
  607. package/docs/examples/command-palette-adapter.tsx +69 -17
  608. package/docs/examples/component-catalog-extension.json +45 -0
  609. package/docs/examples/component-composition-extension.json +80 -0
  610. package/docs/layout.md +409 -59
  611. package/docs/nav-stack.md +126 -14
  612. package/docs/recipes.md +137 -54
  613. package/docs/split-view.md +69 -6
  614. package/docs/sunken-panel.md +58 -0
  615. package/docs/surface-scaffold.md +25 -0
  616. package/docs/tab-scaffold.md +94 -10
  617. package/docs/type-contracts.md +134 -0
  618. package/docs/ui-analyzer.md +306 -0
  619. package/docs/ui-doctor.md +107 -0
  620. package/docs/ui-evaluator.md +139 -0
  621. package/docs/ux-demo.md +40 -16
  622. package/docs/webawesome-theme.md +175 -16
  623. package/docs/workbench.md +534 -12
  624. package/doctor/cli.mjs +115 -0
  625. package/doctor/config.schema.json +68 -0
  626. package/doctor/eslint-diagnostics.d.mts +24 -0
  627. package/doctor/eslint-diagnostics.mjs +24 -0
  628. package/doctor/index.d.mts +116 -0
  629. package/doctor/index.mjs +1277 -0
  630. package/doctor/report.schema.json +118 -0
  631. package/evaluator/cli.mjs +89 -0
  632. package/evaluator/index.d.mts +90 -0
  633. package/evaluator/index.mjs +1203 -0
  634. package/evaluator/report.schema.json +152 -0
  635. package/llms.txt +423 -42
  636. package/package.json +241 -37
  637. package/traversal-exclusions.mjs +27 -0
  638. package/ux-demo/recipes/app-shell.tsx +205 -17
  639. package/ux-demo/recipes/collapsible-sidebar.tsx +260 -0
  640. package/ux-demo/recipes/compact-toolbar.tsx +135 -14
  641. package/ux-demo/recipes/composer-form.tsx +133 -21
  642. package/ux-demo/recipes/list-detail-dialog.tsx +282 -0
  643. package/ux-demo/recipes/list-workspace-states.tsx +183 -11
  644. package/ux-demo/recipes/loaders.ts +15 -5
  645. package/ux-demo/recipes/loading-inspector.tsx +204 -0
  646. package/ux-demo/recipes/mount-recipe.ts +28 -10
  647. package/ux-demo/recipes/navigation-sidebar.tsx +139 -13
  648. package/ux-demo/recipes/navigation-stack.tsx +79 -24
  649. package/ux-demo/recipes/types.ts +23 -2
  650. package/ux-demo/recipes/workspace-header.tsx +86 -5
  651. package/dist/browser/menu-action-row.js +0 -3
  652. package/dist/browser/menu-header.js +0 -5
  653. package/dist/browser/menu-item.js +0 -3
  654. package/dist/chunk-24Z2XE6C.js +0 -10
  655. package/dist/chunk-24Z2XE6C.js.map +0 -1
  656. package/dist/chunk-2RJBFNB6.js +0 -172
  657. package/dist/chunk-2RJBFNB6.js.map +0 -1
  658. package/dist/chunk-55DATV3A.js +0 -10
  659. package/dist/chunk-55DATV3A.js.map +0 -1
  660. package/dist/chunk-56RJXPHG.js.map +0 -1
  661. package/dist/chunk-7BR3DO2A.js.map +0 -1
  662. package/dist/chunk-7LDCTU7D.js +0 -134
  663. package/dist/chunk-7LDCTU7D.js.map +0 -1
  664. package/dist/chunk-AQNKJRFH.js +0 -79
  665. package/dist/chunk-AQNKJRFH.js.map +0 -1
  666. package/dist/chunk-CTQKI2XL.js +0 -28
  667. package/dist/chunk-CTQKI2XL.js.map +0 -1
  668. package/dist/chunk-DAFFDO33.js +0 -14
  669. package/dist/chunk-DAFFDO33.js.map +0 -1
  670. package/dist/chunk-EGHL5S4P.js +0 -33
  671. package/dist/chunk-EGHL5S4P.js.map +0 -1
  672. package/dist/chunk-KZKSBUKC.js +0 -19
  673. package/dist/chunk-KZKSBUKC.js.map +0 -1
  674. package/dist/chunk-M5JRI6MN.js +0 -27
  675. package/dist/chunk-M5JRI6MN.js.map +0 -1
  676. package/dist/chunk-MBR3TYNL.js +0 -14
  677. package/dist/chunk-MBR3TYNL.js.map +0 -1
  678. package/dist/chunk-MFKMHK5W.js +0 -10
  679. package/dist/chunk-MFKMHK5W.js.map +0 -1
  680. package/dist/chunk-MQIZAD4A.js.map +0 -1
  681. package/dist/chunk-NPPD2A6O.js +0 -40
  682. package/dist/chunk-NPPD2A6O.js.map +0 -1
  683. package/dist/chunk-R6JHHBKQ.js +0 -19
  684. package/dist/chunk-R6JHHBKQ.js.map +0 -1
  685. package/dist/chunk-RBTVBGRD.js +0 -23
  686. package/dist/chunk-RBTVBGRD.js.map +0 -1
  687. package/dist/chunk-S3TPM2LP.js +0 -23
  688. package/dist/chunk-S3TPM2LP.js.map +0 -1
  689. package/dist/chunk-TRNBHPNW.js.map +0 -1
  690. package/dist/chunk-VHW5YNIB.js +0 -17
  691. package/dist/chunk-VHW5YNIB.js.map +0 -1
  692. package/dist/chunk-W2FK7ZNY.js.map +0 -1
  693. package/dist/chunk-WVPYVDXY.js +0 -15
  694. package/dist/chunk-WVPYVDXY.js.map +0 -1
  695. package/dist/chunk-XZXRLY5Q.js +0 -33
  696. package/dist/chunk-XZXRLY5Q.js.map +0 -1
  697. package/dist/menu-action-row.d.ts +0 -50
  698. package/dist/menu-action-row.js +0 -4
  699. package/dist/menu-action-row.js.map +0 -1
  700. package/dist/menu-header.d.ts +0 -41
  701. package/dist/menu-header.js +0 -6
  702. package/dist/menu-header.js.map +0 -1
  703. package/dist/menu-item.d.ts +0 -31
  704. package/dist/menu-item.js +0 -4
  705. package/dist/menu-item.js.map +0 -1
  706. package/dist/panel-header.d.ts +0 -26
  707. package/dist/panel-header.js +0 -6
  708. package/dist/panel-header.js.map +0 -1
  709. package/dist/styles/menu-action-row.css +0 -160
  710. package/dist/styles/menu-header.css +0 -160
  711. package/dist/styles/menu-item.css +0 -123
  712. package/dist/styles/panel-header.css +0 -59
  713. package/ux-demo/recipes/master-detail-dialog.tsx +0 -45
  714. package/ux-demo/recipes/recipes.css +0 -355
@@ -1,15 +1,73 @@
1
- import { SafeHtml } from 'kerfjs';
1
+ import * as kerfjs from 'kerfjs';
2
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2
3
 
4
+ type ToolbarControlGroupAppearance = 'contained' | 'borderless';
5
+ type ToolbarControlGroupTone = 'default' | 'dark';
6
+ type ToolbarControlGroupButtonAppearance = 'plain' | 'push';
7
+ type ToolbarControlGroupShape = 'pill' | 'rounded';
8
+ type ToolbarControlGroupSize = 'default' | 'compact';
9
+ type ToolbarControlGroupDensity = 'comfortable' | 'tight';
10
+ type ToolbarControlGroupContent = 'icon' | 'text' | 'mixed' | 'avatar' | 'search';
11
+ type ToolbarControlGroupFocusRing = 'control' | 'outline' | 'halo';
12
+ type ToolbarControlGroupSelectedChrome = 'raised' | 'filled' | 'outline';
13
+ type ToolbarControlGroupSelectedTone = 'brand' | 'neutral' | 'pop';
14
+ type ToolbarControlGroupOverflow = 'visible' | 'scroll';
15
+ type ToolbarControlGroupMenuInset = 'standard' | 'compact' | 'list-zero';
16
+ type ToolbarControlGroupVisibility = 'always' | 'compact-only';
17
+ interface ToolbarActionLinkProps {
18
+ href: string;
19
+ label: string;
20
+ icon?: KerfUiContent;
21
+ /** Optional machine-readable detail hidden visually but included in the default accessible name. */
22
+ detail?: string;
23
+ /** Override the accessible name when surrounding context is needed. */
24
+ ariaLabel?: string;
25
+ /** Open in a new tab with a safe rel and announce that behavior. */
26
+ external?: boolean;
27
+ className?: string;
28
+ /** Native named-slot assignment when composed inside a web component. */
29
+ slot?: string;
30
+ }
31
+ /** A semantic anchor with ToolbarControlGroup-owned action geometry. */
32
+ declare function ToolbarActionLink({ href, label, icon, detail, ariaLabel, external, className, slot, }: ToolbarActionLinkProps): kerfjs.SafeHtml;
3
33
  interface ToolbarControlGroupProps {
4
- children: SafeHtml | SafeHtml[];
34
+ children: KerfUiContent;
5
35
  label?: string;
6
36
  className?: string;
7
37
  expanded?: boolean;
8
38
  single?: boolean;
9
- appearance?: 'contained' | 'borderless';
10
- tone?: 'default' | 'dark';
11
- buttonAppearance?: 'plain' | 'push';
39
+ appearance?: ToolbarControlGroupAppearance;
40
+ tone?: ToolbarControlGroupTone;
41
+ buttonAppearance?: ToolbarControlGroupButtonAppearance;
42
+ /** Corner shape: fully round `pill` (default) or a softer `rounded` rectangle. */
43
+ shape?: ToolbarControlGroupShape;
44
+ size?: ToolbarControlGroupSize;
45
+ density?: ToolbarControlGroupDensity;
46
+ content?: ToolbarControlGroupContent;
47
+ /** Whether controls paint focus individually or the group paints an outline/halo on focus-within. */
48
+ focusRing?: ToolbarControlGroupFocusRing;
49
+ selectedChrome?: ToolbarControlGroupSelectedChrome;
50
+ selectedTone?: ToolbarControlGroupSelectedTone;
51
+ /** Size a nested Web Awesome dropdown trigger as part of this group. */
52
+ nestedDropdown?: boolean;
53
+ /** Configure the nested dropdown menu inset without consumer ::part() CSS. */
54
+ menuInset?: ToolbarControlGroupMenuInset;
55
+ /** Keep an overlong row of actions inside the available width with horizontal scrolling. */
56
+ overflow?: ToolbarControlGroupOverflow;
57
+ /** Responsive visibility owned by the enclosing Toolbar container. */
58
+ visibility?: ToolbarControlGroupVisibility;
59
+ /** Move this group into the work-area toolbar when its panel collapses. */
60
+ relocateOnCollapse?: boolean;
61
+ /** Add contrast behind photo-backed avatar content. */
62
+ scrim?: boolean;
63
+ /**
64
+ * Avatar image URL. A single-control group paints it on the group; a
65
+ * multi-control group paints it only on the pressed selection highlight.
66
+ */
67
+ avatarImage?: string;
68
+ /** Native named-slot assignment when composed inside a web component. */
69
+ slot?: string;
12
70
  }
13
- declare function ToolbarControlGroup({ children, label, className, expanded, single, appearance, tone, buttonAppearance }: ToolbarControlGroupProps): SafeHtml;
71
+ declare function ToolbarControlGroup({ children, label, className, expanded, single, appearance, tone, buttonAppearance, shape, size, density, content, focusRing, selectedChrome, selectedTone, nestedDropdown, menuInset, overflow, visibility, relocateOnCollapse, scrim, avatarImage, slot, }: ToolbarControlGroupProps): kerfjs.SafeHtml;
14
72
 
15
- export { ToolbarControlGroup, type ToolbarControlGroupProps };
73
+ export { ToolbarActionLink, type ToolbarActionLinkProps, ToolbarControlGroup, type ToolbarControlGroupAppearance, type ToolbarControlGroupButtonAppearance, type ToolbarControlGroupContent, type ToolbarControlGroupDensity, type ToolbarControlGroupFocusRing, type ToolbarControlGroupMenuInset, type ToolbarControlGroupOverflow, type ToolbarControlGroupProps, type ToolbarControlGroupSelectedChrome, type ToolbarControlGroupSelectedTone, type ToolbarControlGroupShape, type ToolbarControlGroupSize, type ToolbarControlGroupTone, type ToolbarControlGroupVisibility };
@@ -1,3 +1,3 @@
1
- export { ToolbarControlGroup } from './chunk-MFKMHK5W.js';
1
+ export { ToolbarActionLink, ToolbarControlGroup } from './chunk-7JUBXOIV.js';
2
2
 
3
3
  //# sourceMappingURL=toolbar-control-group.js.map
@@ -1,13 +1,46 @@
1
1
  import * as kerfjs from 'kerfjs';
2
2
 
3
- type ToolbarTextSize = 'xlarge' | 'large' | 'default' | 'small';
4
- interface ToolbarTextProps {
3
+ type ToolbarTextSize = 'xlarge' | 'large' | 'default' | 'small' | 'xsmall';
4
+ /** ARIA heading level for a title exposed as a heading landmark. */
5
+ type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
6
+ interface ToolbarTextBaseProps {
5
7
  text: string;
6
8
  size?: ToolbarTextSize;
7
9
  className?: string;
8
10
  /** Optional id, e.g. so a dialog can reference the title via aria-labelledby. */
9
11
  id?: string;
12
+ /**
13
+ * Expose heading semantics (`role="heading"` + `aria-level`) so the text acts as
14
+ * a heading landmark — e.g. a page's primary title. Omit to keep the plain span
15
+ * (the default), which suits a dialog title referenced via `aria-labelledby`.
16
+ */
17
+ headingLevel?: HeadingLevel;
18
+ /** Render the text as an unanimated loading skeleton instead of its value. */
19
+ placeholder?: boolean;
20
+ /**
21
+ * Show a trailing ellipsis (…) where the text is truncated — on the single line
22
+ * (default), or at the `maxLines` boundary when wrapping. Set false to hard-clip
23
+ * instead. Default true.
24
+ */
25
+ ellipsis?: boolean;
26
+ /**
27
+ * Grow to fill the free space of the flex row it sits in (a Toolbar zone),
28
+ * truncating at the space left by its siblings instead of taking only its
29
+ * text's width. Default false.
30
+ */
31
+ fill?: boolean;
32
+ /** Native named-slot assignment when composed inside a web component. */
33
+ slot?: string;
10
34
  }
11
- declare function ToolbarText({ text, size, className, id }: ToolbarTextProps): kerfjs.SafeHtml;
35
+ type ToolbarTextWrappingProps = {
36
+ /** Wrap onto multiple lines; combine with `maxLines` to cap them. */
37
+ wrap: true;
38
+ maxLines?: number | null;
39
+ } | {
40
+ wrap?: false;
41
+ maxLines?: never;
42
+ };
43
+ type ToolbarTextProps = ToolbarTextBaseProps & ToolbarTextWrappingProps;
44
+ declare function ToolbarText({ text, size, className, id, headingLevel, placeholder, wrap, ellipsis, maxLines, fill, slot, }: ToolbarTextProps): kerfjs.SafeHtml;
12
45
 
13
- export { ToolbarText, type ToolbarTextProps, type ToolbarTextSize };
46
+ export { type HeadingLevel, ToolbarText, type ToolbarTextProps, type ToolbarTextSize };
@@ -1,3 +1,5 @@
1
- export { ToolbarText } from './chunk-24Z2XE6C.js';
1
+ export { ToolbarText } from './chunk-3SXMEK3B.js';
2
+
3
+
2
4
 
3
5
  //# sourceMappingURL=toolbar-text.js.map
package/dist/toolbar.d.ts CHANGED
@@ -1,13 +1,62 @@
1
- import { SafeHtml } from 'kerfjs';
1
+ import * as kerfjs from 'kerfjs';
2
+ import { PaneSeparatorSide } from './pane.js';
3
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
4
+ import { S as Sides } from './sides-BPSWde0A.js';
2
5
 
3
6
  interface ToolbarProps {
4
- leading?: SafeHtml;
5
- center?: SafeHtml;
6
- trailing?: SafeHtml;
7
+ leading?: KerfUiContent;
8
+ center?: KerfUiContent;
9
+ trailing?: KerfUiContent;
7
10
  label?: string;
8
- divider?: boolean;
11
+ /**
12
+ * Physical divider edges in canonical top/right/bottom/left order, drawn
13
+ * always. Defaults to none: a toolbar pinned over or under scrolling content
14
+ * gets its divider from the scroll state instead — a `Pane` draws the line
15
+ * between its chrome and content while content is scrolled away beneath it,
16
+ * and `wireScrollDividers` `targets` can name a toolbar as chrome, which
17
+ * then draws its facing side the same way.
18
+ */
19
+ dividerSides?: Sides;
20
+ /** Horizontal treatment of the center zone. Defaults to centered content. */
21
+ centerAlign?: 'center' | 'stretch';
22
+ /**
23
+ * Component-owned responsive layout; applications choose the policy rather
24
+ * than restyling toolbar internals. Under every policy the trailing zone
25
+ * wraps its groups instead of clipping an action, and the center zone keeps
26
+ * its whole content width: when the zones do not fit one row, the leading
27
+ * title truncates with an ellipsis rather than the center overlapping it.
28
+ * - `none` keeps one row; the leading identity truncates first.
29
+ * - `stack` stacks the zones at `responsiveAt`, wrapping stacked control
30
+ * groups onto further rows.
31
+ * - `wrap` keeps one row while every zone fits at its natural width, and
32
+ * otherwise moves the trailing zone below a whole leading identity.
33
+ * - `center-priority` gives an expanded center control the full row.
34
+ * - `trailing-priority` moves an expanded trailing control to a full row
35
+ * below the leading identity at `responsiveAt`.
36
+ */
37
+ responsive?: 'none' | 'stack' | 'wrap' | 'center-priority' | 'trailing-priority';
38
+ /** Container width at which `stack` or `trailing-priority` activates. */
39
+ responsiveAt?: 'compact' | 'narrow';
40
+ /**
41
+ * Screen edges this toolbar claims for device safe-area compensation, for an
42
+ * app bar or bottom bar that sits directly at a screen edge rather than in a
43
+ * Pane header or footer. Each listed side pads by the inset its surrounding
44
+ * layout reports through `--kui-edge-inset-*`, or the full device inset when
45
+ * nothing routes that edge, while the toolbar's box and dividers paint
46
+ * through. Omitted, the toolbar pads only the inline edges an owner such as
47
+ * a Pane header hands it, and never a block edge.
48
+ */
49
+ safeAreaEdges?: readonly PaneSeparatorSide[];
9
50
  className?: string;
51
+ /** Native named-slot assignment when composed inside a web component. */
52
+ slot?: string;
10
53
  }
11
- declare function Toolbar({ leading, center, trailing, label, divider, className }: ToolbarProps): SafeHtml;
54
+ /**
55
+ * A toolbar's configuration, apart from its content: the props a composite
56
+ * that renders a `Toolbar` for the app (a Workbench or CollapsiblePanel
57
+ * toolbar) forwards, so the app configures that toolbar instead of styling it.
58
+ */
59
+ type ToolbarConfig = Pick<ToolbarProps, 'dividerSides' | 'centerAlign' | 'responsive' | 'responsiveAt' | 'safeAreaEdges'>;
60
+ declare function Toolbar({ leading, center, trailing, label, dividerSides, centerAlign, responsive, responsiveAt, safeAreaEdges, className, slot, }: ToolbarProps): kerfjs.SafeHtml;
12
61
 
13
- export { Toolbar, type ToolbarProps };
62
+ export { Sides, Toolbar, type ToolbarConfig, type ToolbarProps };
package/dist/toolbar.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Toolbar } from './chunk-DAFFDO33.js';
1
+ export { Toolbar } from './chunk-MERWRTBG.js';
2
2
 
3
3
  //# sourceMappingURL=toolbar.js.map
@@ -0,0 +1,117 @@
1
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2
+ import { ToolbarConfig } from './toolbar.js';
3
+ import { WorkbenchPanel } from './workbench.js';
4
+
5
+ /** A reference link shown in the detail footer for the active entry. */
6
+ interface CatalogResource {
7
+ label: string;
8
+ href: string;
9
+ /** Optional machine-readable detail (e.g. a file path) carried by the action link. */
10
+ detail?: string;
11
+ }
12
+ /** A related entry offered in the detail footer's "Related entries" popup menu. */
13
+ interface CatalogRelated {
14
+ id: string;
15
+ name: string;
16
+ /** Group heading in the menu, e.g. "Uses" / "Used by". */
17
+ group: string;
18
+ }
19
+ interface CatalogEntry {
20
+ id: string;
21
+ name: string;
22
+ description?: string;
23
+ /** Short metadata tags shown at the trailing edge of the sidebar row. */
24
+ tags?: readonly string[];
25
+ resources?: readonly CatalogResource[];
26
+ related?: readonly CatalogRelated[];
27
+ }
28
+ interface CatalogSection {
29
+ category: string;
30
+ entries: readonly CatalogEntry[];
31
+ }
32
+ /** A quieter, optionally collapsible group of catalog sections. */
33
+ interface CatalogSecondaryGroup {
34
+ label: string;
35
+ sections: readonly CatalogSection[];
36
+ collapsible?: boolean;
37
+ expanded?: boolean;
38
+ }
39
+ interface CatalogBrand {
40
+ title: string;
41
+ subtitle?: string;
42
+ /** Logo image URL (rendered decorative). Omit for a text-only brand. */
43
+ logoUrl?: string;
44
+ }
45
+ type CatalogStageRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
46
+ 'data-catalog-stage'?: never;
47
+ }>;
48
+ /**
49
+ * The Catalog sidebar's configuration, forwarded to its Workbench left rail.
50
+ * Everything is optional; omitted fields keep the Catalog's defaults.
51
+ */
52
+ interface CatalogSidebarConfig extends Pick<WorkbenchPanel, 'resizable' | 'separator' | 'collapseMotion' | 'presentation' | 'responsiveOverlayAt' | 'compactOverlay'> {
53
+ /**
54
+ * Sidebar width in px (default 288). With `resizable`, it is the current
55
+ * width: render the app's size signal here and hand the same signal to
56
+ * `wireCatalog`'s `sidebarSize`, which writes each committed resize to it.
57
+ */
58
+ size?: number;
59
+ /** The sidebar header toolbar's configuration (default: no divider; its pane draws one while scrolled). */
60
+ toolbar?: ToolbarConfig;
61
+ }
62
+ interface CatalogProps {
63
+ /**
64
+ * The catalog's `id` (default `kui-catalog`). Its Workbench derives the
65
+ * sidebar's id from it (`<id>-left-rail`), which `wireCatalog` wires.
66
+ */
67
+ id?: string;
68
+ brand: CatalogBrand;
69
+ sections: readonly CatalogSection[];
70
+ active: string;
71
+ content: KerfUiContent;
72
+ collapsed?: boolean;
73
+ theme?: 'light' | 'dark';
74
+ headerActions?: KerfUiContent;
75
+ secondarySections?: CatalogSecondaryGroup;
76
+ sidebarFooter?: KerfUiContent;
77
+ status?: KerfUiContent;
78
+ geometryOverlay?: boolean;
79
+ /** Consumer-owned data attributes applied to the preview stage. */
80
+ stageRootAttributes?: CatalogStageRootAttributes;
81
+ selectAction?: string;
82
+ toggleSidebarAction?: string;
83
+ toggleThemeAction?: string;
84
+ toggleSecondaryAction?: string;
85
+ /**
86
+ * Whether the entry toolbar and description stay pinned above the preview
87
+ * (`fixed`), scroll away with it (`scroll`), or stay pinned while the entry
88
+ * pane is tall enough and scroll with the preview when it is short (`auto`,
89
+ * default), so a short window or large text never squeezes the preview out.
90
+ */
91
+ headerPlacement?: 'fixed' | 'scroll' | 'auto';
92
+ /**
93
+ * The same for the status and resource footer (default `auto`).
94
+ */
95
+ footerPlacement?: 'fixed' | 'scroll' | 'auto';
96
+ /**
97
+ * The sidebar's size, resizing, and overlay configuration, forwarded to the
98
+ * Workbench left rail (default: 288px, not resizable, an overlay below the
99
+ * Workbench's `narrow` breakpoint, `inset` in a compact Workbench).
100
+ */
101
+ sidebar?: CatalogSidebarConfig;
102
+ /**
103
+ * The entry toolbar's configuration (default `responsive: 'wrap'`: the entry
104
+ * title stays whole and the actions wrap below it when narrow).
105
+ */
106
+ mainToolbar?: ToolbarConfig;
107
+ /**
108
+ * The resource footer toolbar's configuration (default no divider,
109
+ * `responsive: 'stack'` at `responsiveAt: 'narrow'`).
110
+ */
111
+ footerToolbar?: ToolbarConfig;
112
+ className?: string;
113
+ /** Native named-slot assignment when composed inside a web component. */
114
+ slot?: string;
115
+ }
116
+
117
+ export type { CatalogResource as C, CatalogProps as a, CatalogBrand as b, CatalogEntry as c, CatalogRelated as d, CatalogSecondaryGroup as e, CatalogSection as f, CatalogStageRootAttributes as g };
@@ -1,18 +1,28 @@
1
+ import * as kerfjs from 'kerfjs';
1
2
  import { SafeHtml } from 'kerfjs';
3
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2
4
 
3
5
  interface ValueTableRowProps {
4
6
  label: string | SafeHtml;
5
7
  value: string | SafeHtml;
6
8
  icon?: SafeHtml;
7
9
  className?: string;
10
+ /** Render the value as an unanimated loading skeleton, keeping the field label. */
11
+ placeholder?: boolean;
12
+ /** Native named-slot assignment when composed inside a web component. */
13
+ slot?: string;
8
14
  }
9
- declare function ValueTableRow({ label, value, icon, className }: ValueTableRowProps): SafeHtml;
15
+ declare function ValueTableRow({ label, value, icon, className, placeholder, slot, }: ValueTableRowProps): SafeHtml;
10
16
 
11
17
  interface ValueTableProps {
12
18
  label: string;
19
+ /** Compact row spacing for metadata-dense surfaces. */
20
+ density?: 'default' | 'compact';
13
21
  className?: string;
14
- children: SafeHtml | readonly SafeHtml[];
22
+ children: KerfUiContent;
23
+ /** Native named-slot assignment when composed inside a web component. */
24
+ slot?: string;
15
25
  }
16
- declare function ValueTable({ label, className, children }: ValueTableProps): SafeHtml;
26
+ declare function ValueTable({ label, density, className, children, slot, }: ValueTableProps): kerfjs.SafeHtml;
17
27
 
18
28
  export { ValueTable, type ValueTableProps, ValueTableRow, type ValueTableRowProps };
@@ -1,3 +1,5 @@
1
- export { ValueTable, ValueTableRow } from './chunk-R6JHHBKQ.js';
1
+ export { ValueTable, ValueTableRow } from './chunk-P7D3EMXM.js';
2
+
3
+
2
4
 
3
5
  //# sourceMappingURL=value-table.js.map
@@ -23,7 +23,11 @@ declare module 'kerfjs/jsx-runtime' {
23
23
  'aria-label'?: string;
24
24
  value?: string;
25
25
  placeholder?: string;
26
+ hint?: string;
26
27
  disabled?: boolean;
28
+ size?: 'xs' | 's' | 'm' | 'l' | 'xl';
29
+ appearance?: 'filled' | 'outlined' | 'filled-outlined';
30
+ placement?: 'top' | 'bottom';
27
31
  };
28
32
  'wa-option': KerfCustomElement & {
29
33
  value?: string;
@@ -39,7 +43,9 @@ declare module 'kerfjs/jsx-runtime' {
39
43
  'wa-comparison': KerfCustomElement;
40
44
  'wa-copy-button': KerfCustomElement;
41
45
  'wa-details': KerfCustomElement;
42
- 'wa-divider': KerfCustomElement;
46
+ 'wa-divider': KerfCustomElement & {
47
+ orientation?: 'horizontal' | 'vertical';
48
+ };
43
49
  'wa-dialog': KerfCustomElement;
44
50
  'wa-drawer': KerfCustomElement;
45
51
  'wa-button': KerfCustomElement & {
@@ -50,6 +56,7 @@ declare module 'kerfjs/jsx-runtime' {
50
56
  };
51
57
  'wa-dropdown': KerfCustomElement & {
52
58
  placement?: string;
59
+ size?: 'xs' | 's' | 'm' | 'l' | 'xl';
53
60
  };
54
61
  'wa-dropdown-item': KerfCustomElement;
55
62
  'wa-format-bytes': KerfCustomElement;
@@ -0,0 +1,82 @@
1
+ import { Signal } from 'kerfjs';
2
+
3
+ interface WireCatalogOptions {
4
+ /** Invoked with the entry id when a sidebar item or a related-entry option is chosen. */
5
+ onSelect: (id: string) => void;
6
+ /** Invoked when the sidebar collapse/expand control is activated. */
7
+ onToggleSidebar?: () => void;
8
+ /** Invoked when the theme toggle is activated. */
9
+ onToggleTheme?: () => void;
10
+ /** Invoked when the secondary (ecosystem) group's disclosure toggle is activated. */
11
+ onToggleSecondary?: () => void;
12
+ /** When set, `?<urlParam>=<id>` is written on select via `history.replaceState`. */
13
+ urlParam?: string;
14
+ /**
15
+ * Reveal the chosen sidebar row after selection. `true` uses desktop-safe
16
+ * defaults; pass options to customize scroll alignment or the media guard.
17
+ */
18
+ revealSelection?: boolean | CatalogRevealOptions;
19
+ selectAction?: string;
20
+ toggleSidebarAction?: string;
21
+ toggleThemeAction?: string;
22
+ toggleSecondaryAction?: string;
23
+ /**
24
+ * The sidebar's app-owned collapsed flag. With it, the catalog's Workbench
25
+ * sidebar is wired like any Workbench rail: it becomes a transient overlay
26
+ * on a small screen (collapsed as the breakpoint applies, closed on Escape
27
+ * or a press outside, focus handed back), and choosing an entry from the
28
+ * open overlay closes it.
29
+ */
30
+ collapsed?: Signal<boolean>;
31
+ /**
32
+ * The app-owned sidebar width signal for a Catalog rendered with
33
+ * `sidebar={{ resizable: true, size: sidebarSize.value }}`. Each committed
34
+ * drag or keyboard resize is written to it.
35
+ */
36
+ sidebarSize?: Signal<number>;
37
+ /**
38
+ * With `sidebarSize`, load and save the width under this storage key so the
39
+ * catalog remembers the user's sidebar width.
40
+ */
41
+ sidebarStorageKey?: string;
42
+ /** The Catalog's `id`, when it is not the default `kui-catalog`. */
43
+ id?: string;
44
+ }
45
+ interface CatalogRevealOptions {
46
+ /** Scroll alignment within the sidebar. Default `'nearest'`. */
47
+ block?: ScrollLogicalPosition;
48
+ /** Cross-axis alignment. Default `'nearest'`. */
49
+ inline?: ScrollLogicalPosition;
50
+ /** Scroll behavior. Default `'auto'`. */
51
+ behavior?: ScrollBehavior;
52
+ /**
53
+ * Only reveal when this media query matches. Defaults to the Catalog's
54
+ * desktop layout; pass `false` to reveal at every viewport size.
55
+ */
56
+ media?: string | false;
57
+ }
58
+ /**
59
+ * Reveal one Catalog sidebar entry after the controlled render settles without
60
+ * moving focus. Returns a cancellation function for rapid selection changes.
61
+ */
62
+ declare function revealCatalogEntry(root: HTMLElement, id: string, { block, inline, behavior, media, }?: CatalogRevealOptions): () => void;
63
+ /**
64
+ * Keep a Catalog's opt-in geometry overlay synchronized with its preview.
65
+ * Specimens receive computed border highlights (or a dashed bound when they
66
+ * have no border and are transparent), while positive computed margins use
67
+ * devtools-style orange bands. CSS/stylesheet-only changes are observed too.
68
+ * Returns a disposer.
69
+ */
70
+ declare function wireCatalogGeometryOverlay(root: HTMLElement): () => void;
71
+ /**
72
+ * Wire a {@link Catalog}'s interactions with one delegated listener set: sidebar
73
+ * item selection (and the related-entry popup menu), the sidebar collapse toggle, and
74
+ * the theme toggle. The app owns the `active`/`collapsed`/`theme` signals and updates
75
+ * them in the callbacks; optionally mirror the active id into the URL via `urlParam`.
76
+ * It also wires the scroll dividers below root (`wireScrollDividers`), so the
77
+ * catalog's panes and every example in it show their chrome dividers only
78
+ * while scrolled. Returns a disposer.
79
+ */
80
+ declare function wireCatalog(root: HTMLElement, { onSelect, onToggleSidebar, onToggleTheme, onToggleSecondary, urlParam, revealSelection, selectAction, toggleSidebarAction, toggleThemeAction, toggleSecondaryAction, collapsed, sidebarSize, sidebarStorageKey, id: catalogId, }: WireCatalogOptions): () => void;
81
+
82
+ export { type CatalogRevealOptions, type WireCatalogOptions, revealCatalogEntry, wireCatalog, wireCatalogGeometryOverlay };