@kerfjs/ui 5.0.0-beta.103 → 5.0.0-beta.105

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 (759) hide show
  1. package/README.md +163 -116
  2. package/ai/application-ui-profile.defaults.json +125 -4
  3. package/ai/compile-time-contracts-v1.json +11 -11
  4. package/ai/component-catalog.json +2606 -627
  5. package/ai/component-composition-rules.json +11 -10
  6. package/ai/component-composition.json +1689 -300
  7. package/ai/components/README.md +66 -48
  8. package/ai/components/application-tabs.md +4 -4
  9. package/ai/components/badge.md +1 -0
  10. package/ai/components/button.md +91 -0
  11. package/ai/components/checkbox.md +89 -0
  12. package/ai/components/choice-chips.md +9 -3
  13. package/ai/components/color-field.md +92 -0
  14. package/ai/components/color-picker.md +90 -0
  15. package/ai/components/color-swatches.md +82 -0
  16. package/ai/components/combobox.md +6 -4
  17. package/ai/components/content-item.md +5 -2
  18. package/ai/components/disclosure.md +83 -0
  19. package/ai/components/file-picker.md +1 -0
  20. package/ai/components/foundation.md +1 -1
  21. package/ai/components/list-action-row.md +3 -3
  22. package/ai/components/list-detail-dialog.md +90 -0
  23. package/ai/components/list.md +2 -0
  24. package/ai/components/lucide-icon.md +2 -0
  25. package/ai/components/{composer.md → message-composer.md} +17 -16
  26. package/ai/components/pane.md +3 -1
  27. package/ai/components/popup-menu.md +12 -9
  28. package/ai/components/progress-bar.md +82 -0
  29. package/ai/components/progress-ring.md +80 -0
  30. package/ai/components/radio-group.md +88 -0
  31. package/ai/components/recipe-list-detail-dialog.md +5 -5
  32. package/ai/components/search-field.md +108 -0
  33. package/ai/components/select.md +15 -13
  34. package/ai/components/slider.md +84 -0
  35. package/ai/components/surface-scaffold.md +16 -13
  36. package/ai/components/switch.md +81 -0
  37. package/ai/components/tab-bar.md +6 -6
  38. package/ai/components/tab-navigator.md +2 -2
  39. package/ai/components/tabs.md +7 -7
  40. package/ai/components/tag-field.md +86 -0
  41. package/ai/components/text-field.md +98 -0
  42. package/ai/components/text.md +1 -0
  43. package/ai/components/toast.md +85 -0
  44. package/ai/components/toolbar-control-group.md +3 -3
  45. package/ai/components/tooltip.md +81 -0
  46. package/ai/components/wa-accordion-item.md +11 -5
  47. package/ai/components/wa-accordion.md +11 -5
  48. package/ai/components/wa-animated-image.md +2 -1
  49. package/ai/components/wa-animation.md +1 -0
  50. package/ai/components/wa-avatar.md +1 -0
  51. package/ai/components/wa-badge.md +10 -3
  52. package/ai/components/wa-breadcrumb-item.md +1 -0
  53. package/ai/components/wa-breadcrumb.md +1 -0
  54. package/ai/components/wa-button-group.md +6 -4
  55. package/ai/components/wa-button.md +7 -5
  56. package/ai/components/wa-callout.md +7 -5
  57. package/ai/components/wa-card.md +12 -4
  58. package/ai/components/wa-carousel-item.md +1 -0
  59. package/ai/components/wa-carousel.md +1 -0
  60. package/ai/components/wa-checkbox-group.md +11 -4
  61. package/ai/components/wa-checkbox.md +10 -4
  62. package/ai/components/wa-color-picker.md +13 -5
  63. package/ai/components/wa-comparison.md +2 -1
  64. package/ai/components/wa-copy-button.md +1 -0
  65. package/ai/components/wa-details.md +11 -5
  66. package/ai/components/wa-dialog.md +10 -4
  67. package/ai/components/wa-divider.md +1 -0
  68. package/ai/components/wa-drawer.md +12 -5
  69. package/ai/components/wa-dropdown-item.md +8 -6
  70. package/ai/components/wa-dropdown.md +8 -6
  71. package/ai/components/wa-format-bytes.md +1 -0
  72. package/ai/components/wa-format-date.md +1 -0
  73. package/ai/components/wa-format-number.md +1 -0
  74. package/ai/components/wa-icon.md +2 -1
  75. package/ai/components/wa-include.md +6 -4
  76. package/ai/components/wa-input.md +9 -6
  77. package/ai/components/wa-intersection-observer.md +1 -0
  78. package/ai/components/wa-known-date.md +1 -0
  79. package/ai/components/wa-markdown.md +1 -0
  80. package/ai/components/wa-mutation-observer.md +1 -0
  81. package/ai/components/wa-number-input.md +1 -0
  82. package/ai/components/wa-option.md +7 -5
  83. package/ai/components/wa-otp-input.md +1 -0
  84. package/ai/components/wa-page.md +13 -4
  85. package/ai/components/wa-pagination.md +1 -0
  86. package/ai/components/wa-popover.md +11 -5
  87. package/ai/components/wa-popup.md +11 -4
  88. package/ai/components/wa-progress-bar.md +11 -4
  89. package/ai/components/wa-progress-ring.md +11 -4
  90. package/ai/components/wa-qr-code.md +1 -0
  91. package/ai/components/wa-radio-group.md +12 -4
  92. package/ai/components/wa-radio.md +10 -4
  93. package/ai/components/wa-random-content.md +1 -0
  94. package/ai/components/wa-rating.md +1 -0
  95. package/ai/components/wa-relative-time.md +1 -0
  96. package/ai/components/wa-resize-observer.md +1 -0
  97. package/ai/components/wa-scroller.md +12 -4
  98. package/ai/components/wa-select.md +7 -5
  99. package/ai/components/wa-skeleton.md +10 -3
  100. package/ai/components/wa-slider.md +11 -5
  101. package/ai/components/wa-spinner.md +7 -5
  102. package/ai/components/wa-split-panel.md +7 -5
  103. package/ai/components/wa-step.md +56 -0
  104. package/ai/components/wa-stepper.md +56 -0
  105. package/ai/components/wa-switch.md +10 -3
  106. package/ai/components/wa-tab-group.md +8 -6
  107. package/ai/components/wa-tab-panel.md +7 -5
  108. package/ai/components/wa-tab.md +8 -6
  109. package/ai/components/wa-tag-input.md +62 -0
  110. package/ai/components/wa-tag.md +9 -6
  111. package/ai/components/wa-textarea.md +10 -3
  112. package/ai/components/wa-time-input.md +1 -0
  113. package/ai/components/wa-toast-item.md +9 -7
  114. package/ai/components/wa-toast.md +9 -7
  115. package/ai/components/wa-tooltip.md +11 -5
  116. package/ai/components/wa-tree-item.md +2 -1
  117. package/ai/components/wa-tree.md +2 -1
  118. package/ai/components/wa-zoomable-frame.md +2 -1
  119. package/ai/components/workbench-dialog.md +90 -0
  120. package/ai/public-api-signatures-v1.md +1577 -245
  121. package/ai/skill.md +83 -50
  122. package/ai/webawesome-jsx-signatures-v1.md +4 -1
  123. package/dist/badge.d.ts +9 -1
  124. package/dist/badge.js +1 -1
  125. package/dist/browser/button.js +5 -0
  126. package/dist/browser/catalog.js +3 -2
  127. package/dist/browser/{icon-button.js → checkbox.js} +2 -2
  128. package/dist/browser/color-field.js +4 -0
  129. package/dist/browser/color-picker.js +5 -0
  130. package/dist/browser/color-swatches.js +3 -0
  131. package/dist/browser/disclosure.js +5 -0
  132. package/dist/browser/list-action-row.js +1 -0
  133. package/dist/browser/list-detail-dialog.js +14 -0
  134. package/dist/browser/message-composer.js +5 -0
  135. package/dist/browser/popup-menu.js +1 -0
  136. package/dist/browser/progress-bar.js +3 -0
  137. package/dist/browser/progress-ring.js +3 -0
  138. package/dist/browser/radio-group.js +3 -0
  139. package/dist/browser/search-field.js +4 -0
  140. package/dist/browser/slider.js +3 -0
  141. package/dist/browser/surface-scaffold.js +1 -0
  142. package/dist/browser/switch.js +3 -0
  143. package/dist/browser/tab-bar-item.js +4 -0
  144. package/dist/browser/tag-field.js +5 -0
  145. package/dist/browser/text-field.js +4 -0
  146. package/dist/browser/workbench-dialog.js +15 -0
  147. package/dist/button.d.ts +108 -0
  148. package/dist/button.js +7 -0
  149. package/dist/button.js.map +1 -0
  150. package/dist/catalog-resources.d.ts +1 -1
  151. package/dist/catalog.d.ts +3 -3
  152. package/dist/catalog.js +57 -27
  153. package/dist/catalog.js.map +1 -1
  154. package/dist/checkbox.d.ts +45 -0
  155. package/dist/checkbox.js +6 -0
  156. package/dist/checkbox.js.map +1 -0
  157. package/dist/choice-chips.d.ts +49 -15
  158. package/dist/choice-chips.js +1 -1
  159. package/dist/chunk-23PPPNH6.js +93 -0
  160. package/dist/chunk-23PPPNH6.js.map +1 -0
  161. package/dist/{chunk-FNZQOUZ5.js → chunk-2FW7D4IG.js} +2 -2
  162. package/dist/{chunk-FNZQOUZ5.js.map → chunk-2FW7D4IG.js.map} +1 -1
  163. package/dist/{chunk-ZYU5WRC3.js → chunk-3GLYIIFR.js} +2 -2
  164. package/dist/{chunk-ZYU5WRC3.js.map → chunk-3GLYIIFR.js.map} +1 -1
  165. package/dist/{chunk-5NQF35VO.js → chunk-4RECPEHI.js} +2 -2
  166. package/dist/{chunk-5NQF35VO.js.map → chunk-4RECPEHI.js.map} +1 -1
  167. package/dist/{chunk-7IUEBNCO.js → chunk-5USKCWGL.js} +8 -3
  168. package/dist/chunk-5USKCWGL.js.map +1 -0
  169. package/dist/chunk-6VVIW7VB.js +69 -0
  170. package/dist/chunk-6VVIW7VB.js.map +1 -0
  171. package/dist/{chunk-LL45C7BB.js → chunk-7K6U6FCN.js} +1 -1
  172. package/dist/chunk-7K6U6FCN.js.map +1 -0
  173. package/dist/{chunk-HQZYKJ56.js → chunk-7W3GKMN4.js} +110 -74
  174. package/dist/chunk-7W3GKMN4.js.map +1 -0
  175. package/dist/chunk-ACUKTVS3.js +371 -0
  176. package/dist/chunk-ACUKTVS3.js.map +1 -0
  177. package/dist/{chunk-YQ2AC4E2.js → chunk-AMIHGFLP.js} +2 -2
  178. package/dist/{chunk-YQ2AC4E2.js.map → chunk-AMIHGFLP.js.map} +1 -1
  179. package/dist/chunk-ATGAJVZ6.js +268 -0
  180. package/dist/chunk-ATGAJVZ6.js.map +1 -0
  181. package/dist/chunk-AYPGXR2E.js +20 -0
  182. package/dist/chunk-AYPGXR2E.js.map +1 -0
  183. package/dist/{chunk-ETCWQLJV.js → chunk-BKUMG2KB.js} +38 -28
  184. package/dist/chunk-BKUMG2KB.js.map +1 -0
  185. package/dist/chunk-C26Q6P4Q.js +76 -0
  186. package/dist/chunk-C26Q6P4Q.js.map +1 -0
  187. package/dist/chunk-C3RLKKFQ.js +452 -0
  188. package/dist/chunk-C3RLKKFQ.js.map +1 -0
  189. package/dist/{chunk-IM3GKYOG.js → chunk-CIAUILRR.js} +52 -32
  190. package/dist/chunk-CIAUILRR.js.map +1 -0
  191. package/dist/chunk-CNM6ZWP2.js +38 -0
  192. package/dist/chunk-CNM6ZWP2.js.map +1 -0
  193. package/dist/{chunk-LPHU44S3.js → chunk-CTQUDCY5.js} +3 -1
  194. package/dist/chunk-CTQUDCY5.js.map +1 -0
  195. package/dist/{chunk-MXNIVEVL.js → chunk-D4MXSAMI.js} +5 -3
  196. package/dist/chunk-D4MXSAMI.js.map +1 -0
  197. package/dist/{chunk-YBWQR2OK.js → chunk-DDSCVEO5.js} +10 -9
  198. package/dist/chunk-DDSCVEO5.js.map +1 -0
  199. package/dist/{chunk-SIW64V65.js → chunk-DF2YKGIX.js} +3 -3
  200. package/dist/{chunk-SIW64V65.js.map → chunk-DF2YKGIX.js.map} +1 -1
  201. package/dist/{chunk-3SKAEPPZ.js → chunk-ECFCAKWE.js} +4 -4
  202. package/dist/{chunk-3SKAEPPZ.js.map → chunk-ECFCAKWE.js.map} +1 -1
  203. package/dist/chunk-EKBMUXFV.js +298 -0
  204. package/dist/chunk-EKBMUXFV.js.map +1 -0
  205. package/dist/{chunk-IXLUZHGT.js → chunk-FG6U7KQQ.js} +5 -5
  206. package/dist/{chunk-IXLUZHGT.js.map → chunk-FG6U7KQQ.js.map} +1 -1
  207. package/dist/chunk-FKKJHGN5.js +147 -0
  208. package/dist/chunk-FKKJHGN5.js.map +1 -0
  209. package/dist/{chunk-FDZNYD4C.js → chunk-GCAK23PU.js} +34 -3
  210. package/dist/chunk-GCAK23PU.js.map +1 -0
  211. package/dist/chunk-GXSX6Q6O.js +42 -0
  212. package/dist/chunk-GXSX6Q6O.js.map +1 -0
  213. package/dist/{chunk-LOSRXZAH.js → chunk-HJXVVFBT.js} +14 -6
  214. package/dist/chunk-HJXVVFBT.js.map +1 -0
  215. package/dist/{chunk-M5KZ26VV.js → chunk-HQZG3OFL.js} +11 -1
  216. package/dist/chunk-HQZG3OFL.js.map +1 -0
  217. package/dist/{chunk-ELCMSQNJ.js → chunk-HTERKONR.js} +8 -8
  218. package/dist/chunk-HTERKONR.js.map +1 -0
  219. package/dist/chunk-HYORKKYP.js +8 -0
  220. package/dist/chunk-HYORKKYP.js.map +1 -0
  221. package/dist/chunk-IO27YTL3.js +73 -0
  222. package/dist/chunk-IO27YTL3.js.map +1 -0
  223. package/dist/chunk-ITUQC4FW.js +163 -0
  224. package/dist/chunk-ITUQC4FW.js.map +1 -0
  225. package/dist/chunk-K57NINLH.js +137 -0
  226. package/dist/chunk-K57NINLH.js.map +1 -0
  227. package/dist/chunk-KC6WUSNS.js +34 -0
  228. package/dist/chunk-KC6WUSNS.js.map +1 -0
  229. package/dist/{chunk-W4IK7AWD.js → chunk-KDQZ3E5C.js} +3 -1
  230. package/dist/chunk-KDQZ3E5C.js.map +1 -0
  231. package/dist/{chunk-2MSPNRWJ.js → chunk-KK3S5OTW.js} +27 -11
  232. package/dist/chunk-KK3S5OTW.js.map +1 -0
  233. package/dist/chunk-LTBVP6VN.js +59 -0
  234. package/dist/chunk-LTBVP6VN.js.map +1 -0
  235. package/dist/chunk-OHPYT2BH.js +82 -0
  236. package/dist/chunk-OHPYT2BH.js.map +1 -0
  237. package/dist/{chunk-HZPHCSCS.js → chunk-OY2MXIBB.js} +8 -2
  238. package/dist/chunk-OY2MXIBB.js.map +1 -0
  239. package/dist/chunk-PE2KPZDW.js +85 -0
  240. package/dist/chunk-PE2KPZDW.js.map +1 -0
  241. package/dist/{chunk-QTSMHH5J.js → chunk-QPTJ5DOO.js} +5 -3
  242. package/dist/chunk-QPTJ5DOO.js.map +1 -0
  243. package/dist/{chunk-JOR5LGYE.js → chunk-RFLW4FPL.js} +1 -1
  244. package/dist/chunk-RFLW4FPL.js.map +1 -0
  245. package/dist/{chunk-U6QYTMDB.js → chunk-RMWNO6BA.js} +6 -2
  246. package/dist/chunk-RMWNO6BA.js.map +1 -0
  247. package/dist/{chunk-TDMHA7C3.js → chunk-SQ2Q3OQI.js} +112 -63
  248. package/dist/chunk-SQ2Q3OQI.js.map +1 -0
  249. package/dist/{chunk-K4AT3V3J.js → chunk-T74YB76U.js} +13 -11
  250. package/dist/chunk-T74YB76U.js.map +1 -0
  251. package/dist/{chunk-BYFTHA4I.js → chunk-TAHR457X.js} +53 -6
  252. package/dist/chunk-TAHR457X.js.map +1 -0
  253. package/dist/{chunk-3VXDSIBJ.js → chunk-TKNVL53O.js} +2 -2
  254. package/dist/{chunk-3VXDSIBJ.js.map → chunk-TKNVL53O.js.map} +1 -1
  255. package/dist/chunk-TNJLNLVE.js +115 -0
  256. package/dist/chunk-TNJLNLVE.js.map +1 -0
  257. package/dist/chunk-TUID42UE.js +15 -0
  258. package/dist/chunk-TUID42UE.js.map +1 -0
  259. package/dist/{chunk-PKL6QJKK.js → chunk-UMNHJSIO.js} +93 -80
  260. package/dist/chunk-UMNHJSIO.js.map +1 -0
  261. package/dist/chunk-UTCAOOXU.js +116 -0
  262. package/dist/chunk-UTCAOOXU.js.map +1 -0
  263. package/dist/{chunk-MF6ZUUJZ.js → chunk-VEME3D7K.js} +38 -40
  264. package/dist/chunk-VEME3D7K.js.map +1 -0
  265. package/dist/{chunk-HLDRH23D.js → chunk-WJKHLOP5.js} +2 -2
  266. package/dist/{chunk-HLDRH23D.js.map → chunk-WJKHLOP5.js.map} +1 -1
  267. package/dist/chunk-WU57BYYM.js +115 -0
  268. package/dist/chunk-WU57BYYM.js.map +1 -0
  269. package/dist/{chunk-TGLUDQP2.js → chunk-ZCDRLN3B.js} +11 -11
  270. package/dist/chunk-ZCDRLN3B.js.map +1 -0
  271. package/dist/chunk-ZX2QQJXD.js +249 -0
  272. package/dist/chunk-ZX2QQJXD.js.map +1 -0
  273. package/dist/{chunk-6E2H2E5A.js → chunk-ZXZAECHZ.js} +6 -6
  274. package/dist/{chunk-6E2H2E5A.js.map → chunk-ZXZAECHZ.js.map} +1 -1
  275. package/dist/collapsible-panel.js +3 -3
  276. package/dist/color-field.d.ts +51 -0
  277. package/dist/color-field.js +92 -0
  278. package/dist/color-field.js.map +1 -0
  279. package/dist/color-picker.d.ts +88 -0
  280. package/dist/color-picker.js +8 -0
  281. package/dist/color-picker.js.map +1 -0
  282. package/dist/color-swatches.d.ts +56 -0
  283. package/dist/color-swatches.js +4 -0
  284. package/dist/color-swatches.js.map +1 -0
  285. package/dist/combobox.js +1 -1
  286. package/dist/content-item.d.ts +13 -1
  287. package/dist/content-item.js +1 -1
  288. package/dist/disclosure-arrow.js +1 -1
  289. package/dist/disclosure.d.ts +57 -0
  290. package/dist/disclosure.js +51 -0
  291. package/dist/disclosure.js.map +1 -0
  292. package/dist/file-picker.d.ts +7 -0
  293. package/dist/file-picker.js +1 -1
  294. package/dist/help-tags-register.d.ts +8 -8
  295. package/dist/help-tags-register.js +3 -2
  296. package/dist/help-tags-register.js.map +1 -1
  297. package/dist/index.d.ts +16 -9
  298. package/dist/index.js +58 -46
  299. package/dist/list-action-row.js +4 -1
  300. package/dist/list-detail-dialog.d.ts +117 -0
  301. package/dist/list-detail-dialog.js +165 -0
  302. package/dist/list-detail-dialog.js.map +1 -0
  303. package/dist/list-header.js +1 -1
  304. package/dist/list-item.js +1 -1
  305. package/dist/list.d.ts +17 -2
  306. package/dist/list.js +1 -1
  307. package/dist/lucide-icon.d.ts +9 -1
  308. package/dist/lucide-icon.js +1 -1
  309. package/dist/{composer.d.ts → message-composer.d.ts} +20 -12
  310. package/dist/message-composer.js +6 -0
  311. package/dist/message-composer.js.map +1 -0
  312. package/dist/nav-stack.js +1 -1
  313. package/dist/pane.d.ts +36 -3
  314. package/dist/pane.js +1 -1
  315. package/dist/popup-menu-register.d.ts +6 -5
  316. package/dist/popup-menu-register.js +3 -326
  317. package/dist/popup-menu-register.js.map +1 -1
  318. package/dist/popup-menu.d.ts +41 -23
  319. package/dist/popup-menu.js +5 -1
  320. package/dist/progress-bar.d.ts +52 -0
  321. package/dist/progress-bar.js +68 -0
  322. package/dist/progress-bar.js.map +1 -0
  323. package/dist/progress-ring.d.ts +44 -0
  324. package/dist/progress-ring.js +73 -0
  325. package/dist/progress-ring.js.map +1 -0
  326. package/dist/radio-group.d.ts +62 -0
  327. package/dist/radio-group.js +4 -0
  328. package/dist/radio-group.js.map +1 -0
  329. package/dist/row.js +1 -1
  330. package/dist/{token-search-model-aYR0YAei.d.ts → search-field-CrGTN5sa.d.ts} +67 -43
  331. package/dist/search-field-model.d.ts +3 -0
  332. package/dist/search-field-model.js +3 -0
  333. package/dist/search-field-model.js.map +1 -0
  334. package/dist/search-field.d.ts +3 -0
  335. package/dist/search-field.js +5 -0
  336. package/dist/search-field.js.map +1 -0
  337. package/dist/select-register.d.ts +6 -3
  338. package/dist/select-register.js +383 -241
  339. package/dist/select-register.js.map +1 -1
  340. package/dist/select.d.ts +30 -6
  341. package/dist/select.js +3 -1
  342. package/dist/selection.d.ts +54 -0
  343. package/dist/selection.js +3 -0
  344. package/dist/selection.js.map +1 -0
  345. package/dist/slider.d.ts +74 -0
  346. package/dist/slider.js +103 -0
  347. package/dist/slider.js.map +1 -0
  348. package/dist/split-button.js +1 -1
  349. package/dist/split-view.d.ts +5 -2
  350. package/dist/split-view.js +18 -159
  351. package/dist/split-view.js.map +1 -1
  352. package/dist/state-banner.js +1 -1
  353. package/dist/styles/badge.css +18 -6
  354. package/dist/styles/button.css +230 -0
  355. package/dist/styles/catalog/components/catalog-example.css +13 -4
  356. package/dist/styles/checkbox.css +121 -0
  357. package/dist/styles/choice-chips.css +58 -7
  358. package/dist/styles/color-field.css +125 -0
  359. package/dist/styles/color-picker.css +331 -0
  360. package/dist/styles/color-swatches.css +122 -0
  361. package/dist/styles/combobox.css +7 -5
  362. package/dist/styles/components/actions/button/button.css +230 -0
  363. package/dist/styles/components/actions/popup-menu/popup-menu.css +326 -198
  364. package/dist/styles/components/actions/toolbar/toolbar.css +25 -3
  365. package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +67 -104
  366. package/dist/styles/components/actions/toolbar-text/toolbar-text.css +5 -18
  367. package/dist/styles/components/collections/list/list.css +37 -0
  368. package/dist/styles/components/feedback/badge/badge.css +18 -6
  369. package/dist/styles/components/feedback/progress-bar/progress-bar.css +168 -0
  370. package/dist/styles/components/feedback/progress-ring/progress-ring.css +91 -0
  371. package/dist/styles/components/feedback/state-banner/state-banner.css +18 -3
  372. package/dist/styles/components/forms/checkbox/checkbox.css +121 -0
  373. package/dist/styles/components/forms/choice-chips/choice-chips.css +58 -7
  374. package/dist/styles/components/forms/color-field/color-field.css +125 -0
  375. package/dist/styles/components/forms/color-picker/color-picker.css +331 -0
  376. package/dist/styles/components/forms/color-swatches/color-swatches.css +122 -0
  377. package/dist/styles/components/forms/combobox/combobox.css +7 -5
  378. package/dist/styles/components/forms/{composer/composer.css → message-composer/message-composer.css} +17 -33
  379. package/dist/styles/components/forms/radio-group/radio-group.css +156 -0
  380. package/dist/styles/{token-search-field.css → components/forms/search-field/search-field.css} +111 -102
  381. package/dist/styles/components/forms/select/select.css +370 -249
  382. package/dist/styles/components/forms/slider/slider.css +241 -0
  383. package/dist/styles/components/forms/switch/switch.css +132 -0
  384. package/dist/styles/components/forms/tag-field/tag-field.css +8 -0
  385. package/dist/styles/components/forms/text-field/text-field.css +193 -0
  386. package/dist/styles/components/layout/pane/pane.css +254 -0
  387. package/dist/styles/components/layout/resizable-region/resizable-region.css +3 -2
  388. package/dist/styles/components/layout/row/row.css +11 -0
  389. package/dist/styles/components/layout/split-view/split-view.css +25 -0
  390. package/dist/styles/components/layout/workbench/workbench.css +12 -4
  391. package/dist/styles/components/navigation/disclosure-arrow/disclosure-arrow.css +20 -0
  392. package/dist/styles/components/navigation/tab-bar/tab-bar.css +7 -7
  393. package/dist/styles/components/navigation/{app-tab/app-tab.css → tab-bar-item/tab-bar-item.css} +95 -90
  394. package/dist/styles/components/surfaces/disclosure/disclosure.css +98 -0
  395. package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +263 -116
  396. package/dist/styles/components/typography/text/text.css +14 -12
  397. package/dist/styles/disclosure-arrow.css +20 -0
  398. package/dist/styles/disclosure.css +98 -0
  399. package/dist/styles/foundation.css +6 -4
  400. package/dist/styles/list-detail-dialog.css +11 -0
  401. package/dist/styles/list.css +37 -0
  402. package/dist/styles/{composer.css → message-composer.css} +17 -33
  403. package/dist/styles/overlay-toast.css +149 -0
  404. package/dist/styles/overlay-tooltip.css +55 -0
  405. package/dist/styles/pane.css +254 -0
  406. package/dist/styles/popup-menu.css +326 -198
  407. package/dist/styles/progress-bar.css +168 -0
  408. package/dist/styles/progress-ring.css +91 -0
  409. package/dist/styles/radio-group.css +156 -0
  410. package/dist/styles/resizable-region.css +3 -2
  411. package/dist/styles/row.css +11 -0
  412. package/dist/styles/{components/forms/token-search-field/token-search-field.css → search-field.css} +111 -102
  413. package/dist/styles/select.css +370 -249
  414. package/dist/styles/slider.css +241 -0
  415. package/dist/styles/split-view.css +25 -0
  416. package/dist/styles/state-banner.css +18 -3
  417. package/dist/styles/styles.css +16 -5
  418. package/dist/styles/surface-scaffold.css +263 -116
  419. package/dist/styles/switch.css +132 -0
  420. package/dist/styles/{app-tab.css → tab-bar-item.css} +95 -90
  421. package/dist/styles/tab-bar.css +7 -7
  422. package/dist/styles/tag-field.css +8 -0
  423. package/dist/styles/text-field.css +193 -0
  424. package/dist/styles/text.css +14 -12
  425. package/dist/styles/toolbar-control-group.css +67 -104
  426. package/dist/styles/toolbar-text.css +5 -18
  427. package/dist/styles/toolbar.css +25 -3
  428. package/dist/styles/webawesome.css +9 -0
  429. package/dist/styles/workbench-dialog.css +10 -0
  430. package/dist/styles/workbench.css +12 -4
  431. package/dist/surface-scaffold-register.d.ts +7 -5
  432. package/dist/surface-scaffold-register.js +2 -246
  433. package/dist/surface-scaffold-register.js.map +1 -1
  434. package/dist/surface-scaffold.d.ts +70 -7
  435. package/dist/surface-scaffold.js +5 -1
  436. package/dist/switch.d.ts +38 -0
  437. package/dist/switch.js +4 -0
  438. package/dist/switch.js.map +1 -0
  439. package/dist/{app-tab.d.ts → tab-bar-item.d.ts} +11 -11
  440. package/dist/tab-bar-item.js +6 -0
  441. package/dist/tab-bar-item.js.map +1 -0
  442. package/dist/tab-bar.d.ts +3 -3
  443. package/dist/tab-bar.js +1 -1
  444. package/dist/tab-navigator.js +1 -1
  445. package/dist/tag-field.d.ts +52 -0
  446. package/dist/tag-field.js +6 -0
  447. package/dist/tag-field.js.map +1 -0
  448. package/dist/text-field.d.ts +83 -0
  449. package/dist/text-field.js +6 -0
  450. package/dist/text-field.js.map +1 -0
  451. package/dist/text.d.ts +6 -1
  452. package/dist/text.js +1 -1
  453. package/dist/{types-CVgIwSdq.d.ts → types-DmHWkSd6.d.ts} +19 -1
  454. package/dist/webawesome.d.ts +3 -0
  455. package/dist/wire-catalog.d.ts +8 -2
  456. package/dist/wire-catalog.js +16 -4
  457. package/dist/wire-catalog.js.map +1 -1
  458. package/dist/wire-checkboxes.d.ts +10 -0
  459. package/dist/wire-checkboxes.js +3 -0
  460. package/dist/{wire-composers.js.map → wire-checkboxes.js.map} +1 -1
  461. package/dist/wire-choice-chips.d.ts +17 -0
  462. package/dist/wire-choice-chips.js +4 -0
  463. package/dist/{wire-token-search-fields.js.map → wire-choice-chips.js.map} +1 -1
  464. package/dist/wire-color-fields.d.ts +33 -0
  465. package/dist/wire-color-fields.js +82 -0
  466. package/dist/wire-color-fields.js.map +1 -0
  467. package/dist/wire-color-pickers.d.ts +34 -0
  468. package/dist/wire-color-pickers.js +9 -0
  469. package/dist/wire-color-pickers.js.map +1 -0
  470. package/dist/wire-comboboxes.js +2 -1
  471. package/dist/wire-content-items.d.ts +5 -1
  472. package/dist/wire-content-items.js +84 -15
  473. package/dist/wire-content-items.js.map +1 -1
  474. package/dist/wire-file-pickers.d.ts +3 -2
  475. package/dist/wire-file-pickers.js +1 -1
  476. package/dist/{wire-composers.d.ts → wire-message-composers.d.ts} +5 -4
  477. package/dist/wire-message-composers.js +3 -0
  478. package/dist/wire-message-composers.js.map +1 -0
  479. package/dist/wire-overlay-sheets.js +1 -1
  480. package/dist/wire-pane-chrome.d.ts +21 -0
  481. package/dist/wire-pane-chrome.js +67 -0
  482. package/dist/wire-pane-chrome.js.map +1 -0
  483. package/dist/{wire-token-search-fields.d.ts → wire-search-fields.d.ts} +25 -25
  484. package/dist/wire-search-fields.js +6 -0
  485. package/dist/wire-search-fields.js.map +1 -0
  486. package/dist/wire-sliders.d.ts +12 -0
  487. package/dist/wire-sliders.js +31 -0
  488. package/dist/wire-sliders.js.map +1 -0
  489. package/dist/wire-tab-bars.js +1 -1
  490. package/dist/wire-tag-fields.d.ts +41 -0
  491. package/dist/wire-tag-fields.js +258 -0
  492. package/dist/wire-tag-fields.js.map +1 -0
  493. package/dist/wire-text-fields.d.ts +12 -0
  494. package/dist/wire-text-fields.js +3 -0
  495. package/dist/wire-text-fields.js.map +1 -0
  496. package/dist/workbench-dialog.d.ts +97 -0
  497. package/dist/workbench-dialog.js +124 -0
  498. package/dist/workbench-dialog.js.map +1 -0
  499. package/dist/workbench.d.ts +5 -0
  500. package/dist/workbench.js +1 -1
  501. package/docs/accessibility.md +181 -97
  502. package/docs/anchored-surface.md +8 -7
  503. package/docs/app-layouts.md +28 -0
  504. package/docs/catalog.md +14 -5
  505. package/docs/color-field.md +65 -0
  506. package/docs/color-picker.md +71 -0
  507. package/docs/color-swatches.md +46 -0
  508. package/docs/component-contract.md +31 -32
  509. package/docs/component-selection.md +232 -165
  510. package/docs/design/templates/button/emphasis-dark.svg +1 -0
  511. package/docs/design/templates/button/emphasis.svg +1 -0
  512. package/docs/design/templates/button/icons-dark.svg +1 -0
  513. package/docs/design/templates/button/icons.svg +1 -0
  514. package/docs/design/templates/button/pill-dark.svg +1 -0
  515. package/docs/design/templates/button/pill.svg +1 -0
  516. package/docs/design/templates/button/states-dark.svg +1 -0
  517. package/docs/design/templates/button/states.svg +1 -0
  518. package/docs/design/templates/button/toggles-dark.svg +1 -0
  519. package/docs/design/templates/button/toggles.svg +1 -0
  520. package/docs/design/templates/button/tones-dark.svg +1 -0
  521. package/docs/design/templates/button/tones.svg +1 -0
  522. package/docs/design/templates/button-dark.svg +1 -0
  523. package/docs/design/templates/button.svg +1 -0
  524. package/docs/design/templates/checkbox/compact-dark.svg +1 -0
  525. package/docs/design/templates/checkbox/compact.svg +1 -0
  526. package/docs/design/templates/checkbox/error-dark.svg +1 -0
  527. package/docs/design/templates/checkbox/error.svg +1 -0
  528. package/docs/design/templates/checkbox/mixed-dark.svg +1 -0
  529. package/docs/design/templates/checkbox/mixed.svg +1 -0
  530. package/docs/design/templates/checkbox/states-dark.svg +1 -0
  531. package/docs/design/templates/checkbox/states.svg +1 -0
  532. package/docs/design/templates/checkbox-dark.svg +1 -0
  533. package/docs/design/templates/checkbox.svg +1 -0
  534. package/docs/design/templates/choice-chips/color-palette-dark.svg +1 -1
  535. package/docs/design/templates/choice-chips/color-palette.svg +1 -1
  536. package/docs/design/templates/choice-chips/compact-icons-dark.svg +1 -1
  537. package/docs/design/templates/choice-chips/compact-icons.svg +1 -1
  538. package/docs/design/templates/choice-chips/multiple-dark.svg +1 -1
  539. package/docs/design/templates/choice-chips/multiple.svg +1 -1
  540. package/docs/design/templates/choice-chips-dark.svg +1 -1
  541. package/docs/design/templates/choice-chips.svg +1 -1
  542. package/docs/design/templates/color-field/compact-dark.svg +1 -0
  543. package/docs/design/templates/color-field/compact.svg +1 -0
  544. package/docs/design/templates/color-field/error-dark.svg +1 -0
  545. package/docs/design/templates/color-field/error.svg +1 -0
  546. package/docs/design/templates/color-field/hint-dark.svg +1 -0
  547. package/docs/design/templates/color-field/hint.svg +1 -0
  548. package/docs/design/templates/color-field-dark.svg +1 -0
  549. package/docs/design/templates/color-field.svg +1 -0
  550. package/docs/design/templates/color-picker/gray-dark.svg +1 -0
  551. package/docs/design/templates/color-picker/gray.svg +1 -0
  552. package/docs/design/templates/color-picker/rgb-dark.svg +1 -0
  553. package/docs/design/templates/color-picker/rgb.svg +1 -0
  554. package/docs/design/templates/color-picker-dark.svg +1 -0
  555. package/docs/design/templates/color-picker.svg +1 -0
  556. package/docs/design/templates/color-swatches/palette-dark.svg +1 -0
  557. package/docs/design/templates/color-swatches/palette.svg +1 -0
  558. package/docs/design/templates/color-swatches-dark.svg +1 -0
  559. package/docs/design/templates/color-swatches.svg +1 -0
  560. package/docs/design/templates/disclosure/framed-sunken-dark.svg +1 -0
  561. package/docs/design/templates/disclosure/framed-sunken.svg +1 -0
  562. package/docs/design/templates/disclosure/plain-dark.svg +1 -0
  563. package/docs/design/templates/disclosure/plain.svg +1 -0
  564. package/docs/design/templates/disclosure-dark.svg +1 -0
  565. package/docs/design/templates/disclosure.svg +1 -0
  566. package/docs/design/templates/list-header/size-l-dark.svg +1 -1
  567. package/docs/design/templates/list-header/size-l.svg +1 -1
  568. package/docs/design/templates/list-header/size-m-dark.svg +1 -1
  569. package/docs/design/templates/list-header/size-m.svg +1 -1
  570. package/docs/design/templates/list-header/size-xl-dark.svg +1 -1
  571. package/docs/design/templates/list-header/size-xl.svg +1 -1
  572. package/docs/design/templates/list-header-dark.svg +1 -1
  573. package/docs/design/templates/list-header.svg +1 -1
  574. package/docs/design/templates/message-composer/chat-dark.svg +1 -0
  575. package/docs/design/templates/message-composer/chat.svg +1 -0
  576. package/docs/design/templates/{composer → message-composer}/prompt-dark.svg +1 -1
  577. package/docs/design/templates/{composer → message-composer}/prompt.svg +1 -1
  578. package/docs/design/templates/message-composer-dark.svg +1 -0
  579. package/docs/design/templates/message-composer.svg +1 -0
  580. package/docs/design/templates/progress-bar/determinate-dark.svg +1 -0
  581. package/docs/design/templates/progress-bar/determinate.svg +1 -0
  582. package/docs/design/templates/progress-bar/tones-dark.svg +1 -0
  583. package/docs/design/templates/progress-bar/tones.svg +1 -0
  584. package/docs/design/templates/progress-bar-dark.svg +1 -0
  585. package/docs/design/templates/progress-bar.svg +1 -0
  586. package/docs/design/templates/progress-ring/sizes-dark.svg +1 -0
  587. package/docs/design/templates/progress-ring/sizes.svg +1 -0
  588. package/docs/design/templates/progress-ring/tones-dark.svg +1 -0
  589. package/docs/design/templates/progress-ring/tones.svg +1 -0
  590. package/docs/design/templates/progress-ring-dark.svg +1 -0
  591. package/docs/design/templates/progress-ring.svg +1 -0
  592. package/docs/design/templates/radio-group/horizontal-dark.svg +1 -0
  593. package/docs/design/templates/radio-group/horizontal.svg +1 -0
  594. package/docs/design/templates/radio-group/vertical-dark.svg +1 -0
  595. package/docs/design/templates/radio-group/vertical.svg +1 -0
  596. package/docs/design/templates/radio-group-dark.svg +1 -0
  597. package/docs/design/templates/radio-group.svg +1 -0
  598. package/docs/design/templates/segmented-control/equal-dark.svg +1 -1
  599. package/docs/design/templates/segmented-control/equal.svg +1 -1
  600. package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -1
  601. package/docs/design/templates/segmented-control/pill-small.svg +1 -1
  602. package/docs/design/templates/segmented-control-dark.svg +1 -1
  603. package/docs/design/templates/segmented-control.svg +1 -1
  604. package/docs/design/templates/select/compact-dark.svg +1 -0
  605. package/docs/design/templates/select/compact.svg +1 -0
  606. package/docs/design/templates/select/form-dark.svg +1 -0
  607. package/docs/design/templates/select/form.svg +1 -0
  608. package/docs/design/templates/select/icons-dark.svg +1 -0
  609. package/docs/design/templates/select/icons.svg +1 -0
  610. package/docs/design/templates/select-dark.svg +1 -0
  611. package/docs/design/templates/select.svg +1 -0
  612. package/docs/design/templates/slider/compact-dark.svg +1 -0
  613. package/docs/design/templates/slider/compact.svg +1 -0
  614. package/docs/design/templates/slider/readout-dark.svg +1 -0
  615. package/docs/design/templates/slider/readout.svg +1 -0
  616. package/docs/design/templates/slider/ticks-dark.svg +1 -0
  617. package/docs/design/templates/slider/ticks.svg +1 -0
  618. package/docs/design/templates/slider-dark.svg +1 -0
  619. package/docs/design/templates/slider.svg +1 -0
  620. package/docs/design/templates/switch/compact-dark.svg +1 -0
  621. package/docs/design/templates/switch/compact.svg +1 -0
  622. package/docs/design/templates/switch/states-dark.svg +1 -0
  623. package/docs/design/templates/switch/states.svg +1 -0
  624. package/docs/design/templates/switch-dark.svg +1 -0
  625. package/docs/design/templates/switch.svg +1 -0
  626. package/docs/design/templates/tag-field/error-dark.svg +1 -0
  627. package/docs/design/templates/tag-field/error.svg +1 -0
  628. package/docs/design/templates/tag-field/tags-dark.svg +1 -0
  629. package/docs/design/templates/tag-field/tags.svg +1 -0
  630. package/docs/design/templates/tag-field-dark.svg +1 -0
  631. package/docs/design/templates/tag-field.svg +1 -0
  632. package/docs/design/templates/text-field/compact-dark.svg +1 -0
  633. package/docs/design/templates/text-field/compact.svg +1 -0
  634. package/docs/design/templates/text-field/error-dark.svg +1 -0
  635. package/docs/design/templates/text-field/error.svg +1 -0
  636. package/docs/design/templates/text-field/labeled-dark.svg +1 -0
  637. package/docs/design/templates/text-field/labeled.svg +1 -0
  638. package/docs/design/templates/text-field/multiline-dark.svg +1 -0
  639. package/docs/design/templates/text-field/multiline.svg +1 -0
  640. package/docs/design/templates/text-field/search-dark.svg +1 -0
  641. package/docs/design/templates/text-field/search.svg +1 -0
  642. package/docs/design/templates/text-field-dark.svg +1 -0
  643. package/docs/design/templates/text-field.svg +1 -0
  644. package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -1
  645. package/docs/design/templates/toolbar/title-and-actions.svg +1 -1
  646. package/docs/design/templates/toolbar/width-visibility-320-dark.svg +1 -1
  647. package/docs/design/templates/toolbar/width-visibility-320.svg +1 -1
  648. package/docs/design/templates/toolbar/width-visibility-600-dark.svg +1 -1
  649. package/docs/design/templates/toolbar/width-visibility-600.svg +1 -1
  650. package/docs/design/templates/toolbar-dark.svg +1 -1
  651. package/docs/design/templates/toolbar.svg +1 -1
  652. package/docs/design/templates/value-table/details-dark.svg +1 -1
  653. package/docs/design/templates/value-table/details.svg +1 -1
  654. package/docs/design/templates/value-table-dark.svg +1 -1
  655. package/docs/design/templates/value-table.svg +1 -1
  656. package/docs/design/templates.md +19 -6
  657. package/docs/design-philosophy.md +6 -6
  658. package/docs/disclosure.md +63 -0
  659. package/docs/examples/component-catalog-extension.json +2 -2
  660. package/docs/layout.md +16 -7
  661. package/docs/list-detail-dialog.md +96 -0
  662. package/docs/manual-test-plan.md +1 -1
  663. package/docs/{composer.md → message-composer.md} +41 -28
  664. package/docs/overlay-toast.md +62 -0
  665. package/docs/overlay-tooltip.md +53 -0
  666. package/docs/progress.md +62 -0
  667. package/docs/recipes.md +15 -21
  668. package/docs/slider.md +64 -0
  669. package/docs/surface-scaffold.md +155 -88
  670. package/docs/tag-field.md +66 -0
  671. package/docs/type-contracts.md +8 -8
  672. package/docs/ui-analyzer.md +1 -1
  673. package/docs/ui-doctor.md +11 -6
  674. package/docs/ux-demo.md +6 -6
  675. package/docs/webawesome-migration.md +80 -0
  676. package/docs/webawesome-theme.md +57 -35
  677. package/docs/workbench-dialog.md +85 -0
  678. package/docs/workbench.md +10 -6
  679. package/docs/writing.md +10 -8
  680. package/doctor/copy-capitalization-checks.mjs +18 -9
  681. package/llms.txt +131 -57
  682. package/package.json +156 -39
  683. package/ux-demo/recipes/composer-form.tsx +18 -19
  684. package/ux-demo/recipes/list-detail-dialog.tsx +55 -162
  685. package/ux-demo/recipes/mount-recipe.ts +7 -6
  686. package/ux-demo/recipes/types.ts +1 -0
  687. package/ai/components/icon-button.md +0 -82
  688. package/ai/components/icon-toggle-button.md +0 -80
  689. package/ai/components/token-search-field.md +0 -107
  690. package/dist/app-tab.js +0 -6
  691. package/dist/app-tab.js.map +0 -1
  692. package/dist/browser/app-tab.js +0 -4
  693. package/dist/browser/composer.js +0 -4
  694. package/dist/browser/icon-toggle-button.js +0 -4
  695. package/dist/browser/token-search-field.js +0 -4
  696. package/dist/chunk-2MSPNRWJ.js.map +0 -1
  697. package/dist/chunk-7IUEBNCO.js.map +0 -1
  698. package/dist/chunk-AV7CPAPT.js +0 -82
  699. package/dist/chunk-AV7CPAPT.js.map +0 -1
  700. package/dist/chunk-BYFTHA4I.js.map +0 -1
  701. package/dist/chunk-CA7LNX3J.js +0 -44
  702. package/dist/chunk-CA7LNX3J.js.map +0 -1
  703. package/dist/chunk-ELCMSQNJ.js.map +0 -1
  704. package/dist/chunk-ETCWQLJV.js.map +0 -1
  705. package/dist/chunk-FDZNYD4C.js.map +0 -1
  706. package/dist/chunk-FR76ZJQC.js +0 -90
  707. package/dist/chunk-FR76ZJQC.js.map +0 -1
  708. package/dist/chunk-HQZYKJ56.js.map +0 -1
  709. package/dist/chunk-HZPHCSCS.js.map +0 -1
  710. package/dist/chunk-IM3GKYOG.js.map +0 -1
  711. package/dist/chunk-JOR5LGYE.js.map +0 -1
  712. package/dist/chunk-K4AT3V3J.js.map +0 -1
  713. package/dist/chunk-LL45C7BB.js.map +0 -1
  714. package/dist/chunk-LOSRXZAH.js.map +0 -1
  715. package/dist/chunk-LPHU44S3.js.map +0 -1
  716. package/dist/chunk-M5KZ26VV.js.map +0 -1
  717. package/dist/chunk-MF6ZUUJZ.js.map +0 -1
  718. package/dist/chunk-MXNIVEVL.js.map +0 -1
  719. package/dist/chunk-NS762OVM.js +0 -222
  720. package/dist/chunk-NS762OVM.js.map +0 -1
  721. package/dist/chunk-PKL6QJKK.js.map +0 -1
  722. package/dist/chunk-QTSMHH5J.js.map +0 -1
  723. package/dist/chunk-TDMHA7C3.js.map +0 -1
  724. package/dist/chunk-TGLUDQP2.js.map +0 -1
  725. package/dist/chunk-U6QYTMDB.js.map +0 -1
  726. package/dist/chunk-VFYO3UGZ.js +0 -45
  727. package/dist/chunk-VFYO3UGZ.js.map +0 -1
  728. package/dist/chunk-W4IK7AWD.js.map +0 -1
  729. package/dist/chunk-YBWQR2OK.js.map +0 -1
  730. package/dist/composer.js +0 -5
  731. package/dist/composer.js.map +0 -1
  732. package/dist/icon-button.d.ts +0 -46
  733. package/dist/icon-button.js +0 -6
  734. package/dist/icon-button.js.map +0 -1
  735. package/dist/icon-toggle-button.d.ts +0 -42
  736. package/dist/icon-toggle-button.js +0 -6
  737. package/dist/icon-toggle-button.js.map +0 -1
  738. package/dist/styles/components/actions/icon-button/icon-button.css +0 -22
  739. package/dist/styles/components/actions/icon-toggle-button/icon-toggle-button.css +0 -83
  740. package/dist/styles/icon-button.css +0 -22
  741. package/dist/styles/icon-toggle-button.css +0 -83
  742. package/dist/token-search-field.d.ts +0 -3
  743. package/dist/token-search-field.js +0 -5
  744. package/dist/token-search-field.js.map +0 -1
  745. package/dist/token-search-model.d.ts +0 -3
  746. package/dist/token-search-model.js +0 -3
  747. package/dist/token-search-model.js.map +0 -1
  748. package/dist/wire-composers.js +0 -3
  749. package/dist/wire-token-search-fields.js +0 -6
  750. package/docs/design/templates/composer/chat-dark.svg +0 -1
  751. package/docs/design/templates/composer/chat.svg +0 -1
  752. package/docs/design/templates/composer-dark.svg +0 -1
  753. package/docs/design/templates/composer.svg +0 -1
  754. /package/docs/design/templates/{token-search-field → search-field}/empty-dark.svg +0 -0
  755. /package/docs/design/templates/{token-search-field → search-field}/empty.svg +0 -0
  756. /package/docs/design/templates/{token-search-field → search-field}/tokens-dark.svg +0 -0
  757. /package/docs/design/templates/{token-search-field → search-field}/tokens.svg +0 -0
  758. /package/docs/design/templates/{token-search-field-dark.svg → search-field-dark.svg} +0 -0
  759. /package/docs/design/templates/{token-search-field.svg → search-field.svg} +0 -0
@@ -121,7 +121,7 @@
121
121
  ) {
122
122
  grid-template-columns:
123
123
  minmax(0, 1fr)
124
- minmax(0, var(--kui-token-search-expanded-width, 30rem));
124
+ minmax(0, var(--kui-search-field-expanded-width, 30rem));
125
125
  }
126
126
 
127
127
  .kui-toolbar {
@@ -166,7 +166,7 @@
166
166
 
167
167
  /* Every zone reserves a group-height control band. Direct custom content
168
168
  centers against its zone's height by default. ToolbarText,
169
- ToolbarControlGroup, and standalone wa-button keep their own first-band
169
+ ToolbarControlGroup, a standalone Button, and a raw wa-button keep their own first-band
170
170
  placement, so taller siblings do not move their controls off that axis.
171
171
  `--_kui-toolbar-band` is context those components use for that placement. */
172
172
  .kui-toolbar {
@@ -177,6 +177,13 @@
177
177
  );
178
178
  }
179
179
 
180
+ /* A MessageComposer's action row: the composer frame already insets it and
181
+ spaces it from the field, so the toolbar keeps only its control band. */
182
+ .kui-message-composer > .kui-toolbar {
183
+ min-height: var(--_kui-toolbar-band);
184
+ padding: 0;
185
+ }
186
+
180
187
  /* Compact density: a 34px band (the compact ToolbarControlGroup's size) with
181
188
  3px block insets makes a 40px header for an embedded panel or card. The
182
189
  inline insets and zone gap keep the standard 8px. */
@@ -265,7 +272,7 @@
265
272
  flex-wrap: wrap;
266
273
  }
267
274
 
268
- .kui-toolbar__trailing > wa-button:not(:where(.kui-icon-button)) {
275
+ .kui-toolbar__trailing > wa-button {
269
276
  margin-block-start: max(
270
277
  0px,
271
278
  calc((var(--_kui-toolbar-band) - var(--wa-form-control-height)) / 2)
@@ -355,6 +362,21 @@
355
362
  margin-inline-start: auto;
356
363
  }
357
364
 
365
+ /* A lone zone spans every column track, so an absent (empty, hidden) zone's
366
+ track and the column gap before it never narrow it: leading-only content
367
+ set to fill the row reaches the toolbar's inline-end inset, and
368
+ trailing-only content its inline-start inset. */
369
+ .kui-toolbar[data-has-center="false"]:has(> .kui-toolbar__trailing:empty)
370
+ > .kui-toolbar__leading,
371
+ .kui-toolbar:has(> .kui-toolbar__leading:empty):has(
372
+ > .kui-toolbar__trailing:empty
373
+ )
374
+ > .kui-toolbar__center,
375
+ .kui-toolbar[data-has-center="false"]:has(> .kui-toolbar__leading:empty)
376
+ > .kui-toolbar__trailing {
377
+ grid-column: 1 / -1;
378
+ }
379
+
358
380
  .kui-toolbar[data-has-center="false"] .kui-toolbar__center,
359
381
  .kui-toolbar__leading:empty,
360
382
  .kui-toolbar__trailing:empty {
@@ -54,6 +54,17 @@
54
54
  visibility: hidden;
55
55
  }
56
56
 
57
+ /* A group that shows text hides its whole control content under the spinner,
58
+ so the label never shows through it; the content keeps its box, so the
59
+ group keeps its size. */
60
+ .kui-toolbar-control-group[data-busy="true"]:is(
61
+ [data-content="text"],
62
+ [data-content="mixed"]
63
+ )
64
+ > :not(.kui-toolbar-control-group__busy-spinner) {
65
+ visibility: hidden;
66
+ }
67
+
57
68
  .kui-toolbar-control-group__busy-spinner {
58
69
  position: absolute;
59
70
  inset-block-start: 50%;
@@ -183,7 +194,7 @@
183
194
  query instead of re-wrapping it every frame (KF-CXQB30). */
184
195
  --_kui-toolbar-group-search-width-duration: 0s;
185
196
  --_kui-toolbar-group-search-reveal-duration: 0.25s;
186
- width: min(var(--kui-token-search-expanded-width, 30rem), 100%);
197
+ width: min(var(--kui-search-field-expanded-width, 30rem), 100%);
187
198
  max-width: 100%;
188
199
  height: auto;
189
200
  min-width: 0;
@@ -196,14 +207,14 @@
196
207
  }
197
208
 
198
209
  .kui-toolbar-control-group[data-content="search"]:has(
199
- > .kui-token-search[data-expanded="true"][data-fill="true"]
210
+ > .kui-search-field[data-expanded="true"][data-fill="true"]
200
211
  ) {
201
212
  width: 100%;
202
213
  flex: 1 1 auto;
203
214
  }
204
215
 
205
216
  .kui-toolbar-control-group[data-content="search"]:has(
206
- .kui-token-search__suggestions
217
+ .kui-search-field__suggestions
207
218
  ) {
208
219
  overflow: visible;
209
220
  }
@@ -217,7 +228,7 @@
217
228
  }
218
229
 
219
230
  .kui-toolbar-control-group[data-content="search"]:has(
220
- > .kui-token-search[data-expanded="false"][data-fill="true"]
231
+ > .kui-search-field[data-expanded="false"][data-fill="true"]
221
232
  ) {
222
233
  width: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
223
234
  flex: 0 0 auto;
@@ -306,17 +317,9 @@
306
317
  }
307
318
  }
308
319
  .kui-toolbar-control-group[data-content="text"]
309
- > :is(
310
- button,
311
- wa-button:not(:where(.kui-icon-button)),
312
- .kui-toolbar-action-link
313
- ),
320
+ > :is(button, wa-button, .kui-toolbar-action-link),
314
321
  .kui-toolbar-control-group[data-content="mixed"]
315
- > :is(
316
- button,
317
- wa-button:not(:where(.kui-icon-button)),
318
- .kui-toolbar-action-link
319
- ) {
322
+ > :is(button, wa-button, .kui-toolbar-action-link) {
320
323
  min-width: max-content;
321
324
  }
322
325
  .kui-toolbar-control-group[data-content="mixed"] > button {
@@ -324,14 +327,14 @@
324
327
  gap: var(--kui-space-xs);
325
328
  }
326
329
  .kui-toolbar-control-group[data-content="mixed"]
327
- wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
330
+ wa-button:not(:where(.kui-popup-menu > *)) {
328
331
  line-height: normal;
329
332
  }
330
333
  /* Toolbar controls never wrap. Web Awesome's label part is a plain block, so a
331
334
  slotted icon (a block SVG) and its text would otherwise stack vertically —
332
335
  lay them out on one row the way native mixed buttons already are. */
333
336
  .kui-toolbar-control-group
334
- wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))::part(label) {
337
+ wa-button:not(:where(.kui-popup-menu > *))::part(label) {
335
338
  display: inline-flex;
336
339
  align-items: center;
337
340
  gap: var(--kui-space-xs);
@@ -402,14 +405,7 @@
402
405
  > .kui-pane__header
403
406
  .kui-toolbar-control-group:not([data-tone="dark"], [data-scrim="true"]),
404
407
  .kui-dialog-surface[data-header-presentation="floating"]
405
- > wa-dialog
406
- > .kui-toolbar-control-group[slot="header-actions"]:not(
407
- [data-tone="dark"],
408
- [data-scrim="true"]
409
- ),
410
- .kui-dialog-surface[data-header-presentation="floating"]
411
- > wa-dialog
412
- > [slot="header-actions"]
408
+ > .kui-dialog-surface__header
413
409
  .kui-toolbar-control-group:not([data-tone="dark"], [data-scrim="true"]),
414
410
  .kui-nav-stack[data-chrome-presentation="overlay"]
415
411
  > .kui-nav-stack__chrome
@@ -554,10 +550,7 @@
554
550
  tone and appearance rules above, so it wins over their selected fills. */
555
551
  .kui-toolbar-control-group[data-selected-chrome="none"],
556
552
  .kui-toolbar-control-group
557
- > :is(
558
- button,
559
- wa-button:not(:where(.kui-icon-button))
560
- )[data-selected-chrome="none"] {
553
+ > :is(button, wa-button)[data-selected-chrome="none"] {
561
554
  --kui-toolbar-control-selected-shadow: none;
562
555
  --kui-toolbar-control-selected-border: transparent;
563
556
  --kui-toolbar-control-selected-background: transparent;
@@ -565,15 +558,10 @@
565
558
  }
566
559
 
567
560
  /* The group lays out its own native and raw Web Awesome children. A composed
568
- PopupMenu (`wa-dropdown.kui-popup-menu`) or Select sizes itself in the
561
+ PopupMenu (`.kui-popup-menu`) or Select sizes itself in the
569
562
  group's context from its own stylesheet (popup-menu.css, select.css); the
570
563
  group names those children by class only to key its own state on them. */
571
- .kui-toolbar-control-group
572
- > :is(
573
- button,
574
- wa-button:not(:where(.kui-icon-button)),
575
- .kui-toolbar-action-link
576
- ),
564
+ .kui-toolbar-control-group > :is(button, wa-button, .kui-toolbar-action-link),
577
565
  .kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) {
578
566
  flex: 0 0 auto;
579
567
  }
@@ -581,6 +569,10 @@
581
569
  display: inline-flex;
582
570
  }
583
571
 
572
+ .kui-toolbar-control-group > button:has(> .kui-badge[data-placement="corner"]) {
573
+ position: relative;
574
+ }
575
+
584
576
  .kui-toolbar-control-group > button {
585
577
  appearance: none;
586
578
  display: grid;
@@ -666,9 +658,7 @@
666
658
  }
667
659
 
668
660
  .kui-toolbar-control-group > button svg,
669
- .kui-toolbar-control-group
670
- wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))
671
- > svg,
661
+ .kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) > svg,
672
662
  .kui-toolbar-control-group > .kui-toolbar-action-link svg {
673
663
  display: block;
674
664
  width: 1rem;
@@ -680,44 +670,40 @@
680
670
  buttons: a composed PopupMenu's trigger (`.kui-popup-menu > wa-button`) is
681
671
  excluded inside a zero-specificity `:where()` and takes the same metrics
682
672
  from popup-menu.css. */
683
- .kui-toolbar-control-group
684
- wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
673
+ .kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) {
685
674
  --wa-form-control-height: 2.5rem;
686
675
  }
687
676
  .kui-toolbar-control-group[data-size="compact"]
688
- wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
677
+ wa-button:not(:where(.kui-popup-menu > *)) {
689
678
  --wa-form-control-height: 2rem;
690
679
  }
691
680
 
692
- .kui-toolbar-control-group > wa-button:not(:where(.kui-icon-button)),
681
+ .kui-toolbar-control-group > wa-button,
693
682
  .kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu),
683
+ .kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) > wa-button,
694
684
  .kui-toolbar-control-group
695
685
  > wa-dropdown:not(.kui-popup-menu)
696
- > wa-button:not(:where(.kui-icon-button)),
697
- .kui-toolbar-control-group
698
- > wa-dropdown:not(.kui-popup-menu)
699
- > wa-button:not(:where(.kui-icon-button))::part(base) {
686
+ > wa-button::part(base) {
700
687
  min-width: 2.5rem;
701
688
  height: 2.5rem;
702
689
  }
703
690
  .kui-toolbar-control-group[data-size="compact"] > button,
704
691
  .kui-toolbar-control-group[data-size="compact"] > .kui-toolbar-action-link,
705
- .kui-toolbar-control-group[data-size="compact"]
706
- > wa-button:not(:where(.kui-icon-button)),
692
+ .kui-toolbar-control-group[data-size="compact"] > wa-button,
707
693
  .kui-toolbar-control-group[data-size="compact"]
708
694
  > wa-dropdown:not(.kui-popup-menu),
709
695
  .kui-toolbar-control-group[data-size="compact"]
710
696
  > wa-dropdown:not(.kui-popup-menu)
711
- > wa-button:not(:where(.kui-icon-button)),
697
+ > wa-button,
712
698
  .kui-toolbar-control-group[data-size="compact"]
713
699
  > wa-dropdown:not(.kui-popup-menu)
714
- > wa-button:not(:where(.kui-icon-button))::part(base),
700
+ > wa-button::part(base),
715
701
  .kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
716
702
  wa-dropdown:not(.kui-popup-menu)
717
- wa-button:not(:where(.kui-icon-button)),
703
+ wa-button,
718
704
  .kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
719
705
  wa-dropdown:not(.kui-popup-menu)
720
- wa-button:not(:where(.kui-icon-button))::part(base) {
706
+ wa-button::part(base) {
721
707
  min-width: 2rem;
722
708
  height: 2rem;
723
709
  min-height: 2rem;
@@ -766,7 +752,7 @@
766
752
  .kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
767
753
  > wa-dropdown:not(.kui-popup-menu),
768
754
  .kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
769
- > wa-button:not(:where(.kui-icon-button)) {
755
+ > wa-button {
770
756
  margin: -2px;
771
757
  }
772
758
 
@@ -776,26 +762,25 @@
776
762
  the separator and the caret beyond the group border. */
777
763
  .kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
778
764
  > wa-dropdown:not(.kui-popup-menu)
779
- > wa-button:not(:where(.kui-icon-button)),
765
+ > wa-button,
780
766
  .kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
781
767
  > wa-dropdown:not(.kui-popup-menu)
782
- > wa-button:not(:where(.kui-icon-button))::part(base) {
768
+ > wa-button::part(base) {
783
769
  min-width: max-content;
784
770
  }
785
771
  .kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
786
772
  > wa-dropdown:not(.kui-popup-menu)
787
- > wa-button:not(:where(.kui-icon-button))::part(base) {
773
+ > wa-button::part(base) {
788
774
  width: max-content;
789
775
  }
790
776
 
791
777
  .kui-toolbar-control-group[data-single="true"]
792
778
  > wa-dropdown:not(.kui-popup-menu)
793
- > wa-button:not(:where(.kui-icon-button))::part(base) {
779
+ > wa-button::part(base) {
794
780
  width: max-content;
795
781
  }
796
782
 
797
- .kui-toolbar-control-group
798
- wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
783
+ .kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) {
799
784
  display: inline-flex;
800
785
  line-height: 0;
801
786
  align-items: center;
@@ -804,7 +789,7 @@
804
789
  }
805
790
 
806
791
  .kui-toolbar-control-group
807
- wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))::part(base) {
792
+ wa-button:not(:where(.kui-popup-menu > *))::part(base) {
808
793
  /* Match min-width to the 40px height so an icon-only button's highlight is at
809
794
  least a circle, not a vertical oval — the host is 40px wide but the base
810
795
  part was sizing to its ~32px content. Text/caret buttons grow past it. */
@@ -819,10 +804,7 @@
819
804
  }
820
805
 
821
806
  .kui-toolbar-control-group
822
- wa-button:not(
823
- :where(.kui-popup-menu > *, .kui-icon-button),
824
- [disabled]
825
- ):hover::part(base) {
807
+ wa-button:not(:where(.kui-popup-menu > *), [disabled]):hover::part(base) {
826
808
  border-color: var(--kui-toolbar-control-border);
827
809
  background-color: var(--kui-toolbar-control-hover-background);
828
810
  }
@@ -841,16 +823,9 @@
841
823
  }
842
824
 
843
825
  .kui-toolbar-control-group[data-single="true"]
844
- > :is(
845
- button,
846
- wa-button:not(:where(.kui-icon-button)),
847
- .kui-toolbar-action-link
848
- ):hover,
826
+ > :is(button, wa-button, .kui-toolbar-action-link):hover,
849
827
  .kui-toolbar-control-group[data-single="true"]
850
- wa-button:not(
851
- :where(.kui-popup-menu > *, .kui-icon-button),
852
- [disabled]
853
- ):hover::part(base) {
828
+ wa-button:not(:where(.kui-popup-menu > *), [disabled]):hover::part(base) {
854
829
  border-color: transparent;
855
830
  background: transparent;
856
831
  }
@@ -873,25 +848,17 @@
873
848
  }
874
849
 
875
850
  .kui-toolbar-control-group:not([data-single="true"]):has(
876
- > :is(
877
- button,
878
- wa-button:not(:where(.kui-icon-button)),
879
- .kui-toolbar-action-link
880
- ):nth-child(1 of :where(:not([data-toolbar-visibility-state]))):where(
881
- :nth-last-child(1 of :not([data-toolbar-visibility-state]))
882
- )
851
+ > :is(button, wa-button, .kui-toolbar-action-link):nth-child(
852
+ 1 of :where(:not([data-toolbar-visibility-state]))
853
+ ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
883
854
  )
884
- > :is(
885
- button,
886
- wa-button:not(:where(.kui-icon-button)),
887
- .kui-toolbar-action-link
888
- ):hover,
855
+ > :is(button, wa-button, .kui-toolbar-action-link):hover,
889
856
  .kui-toolbar-control-group:not([data-single="true"]):has(
890
- > :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
857
+ > :is(button, wa-button):nth-child(
891
858
  1 of :where(:not([data-toolbar-visibility-state]))
892
859
  ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
893
860
  )
894
- > wa-button:not(:where(.kui-icon-button)):hover::part(base) {
861
+ > wa-button:hover::part(base) {
895
862
  border-color: transparent;
896
863
  background: transparent;
897
864
  }
@@ -951,22 +918,18 @@
951
918
  and stays inside the group's border instead of overflowing it as an oversized
952
919
  square (KF-5BDDQ9). The selected text color rides on the host and inherits in. */
953
920
  .kui-toolbar-control-group[data-single="false"]
954
- > wa-button:not(:where(.kui-icon-button))[aria-pressed="true"] {
921
+ > wa-button[aria-pressed="true"] {
955
922
  color: var(--kui-toolbar-control-selected-color);
956
923
  }
957
924
  .kui-toolbar-control-group[data-single="false"]
958
- > wa-button:not(:where(.kui-icon-button))[aria-pressed="true"]::part(base) {
925
+ > wa-button[aria-pressed="true"]::part(base) {
959
926
  border-color: var(--kui-toolbar-control-selected-border);
960
927
  background: var(--kui-toolbar-control-selected-background);
961
928
  box-shadow: var(--kui-toolbar-control-selected-shadow);
962
929
  }
963
930
 
964
931
  .kui-toolbar-control-group
965
- > :is(
966
- button,
967
- wa-button:not(:where(.kui-icon-button)),
968
- .kui-toolbar-action-link
969
- ):focus-visible {
932
+ > :is(button, wa-button, .kui-toolbar-action-link):focus-visible {
970
933
  outline: var(--kui-focus-ring);
971
934
  outline-offset: 1px;
972
935
  }
@@ -977,7 +940,7 @@
977
940
  :where(
978
941
  :has(
979
942
  .kui-select[open],
980
- .kui-popup-menu[open],
943
+ .kui-popup-menu > [aria-expanded="true"],
981
944
  wa-dropdown:not(.kui-popup-menu)[open]
982
945
  )
983
946
  )
@@ -990,7 +953,7 @@
990
953
  :where(
991
954
  :has(
992
955
  .kui-select[open],
993
- .kui-popup-menu[open],
956
+ .kui-popup-menu > [aria-expanded="true"],
994
957
  wa-dropdown:not(.kui-popup-menu)[open]
995
958
  )
996
959
  )
@@ -1014,7 +977,7 @@
1014
977
  :where(
1015
978
  :has(
1016
979
  .kui-select[open],
1017
- .kui-popup-menu[open],
980
+ .kui-popup-menu > [aria-expanded="true"],
1018
981
  wa-dropdown:not(.kui-popup-menu)[open]
1019
982
  )
1020
983
  )
@@ -1027,7 +990,7 @@
1027
990
  :where(
1028
991
  :has(
1029
992
  .kui-select[open],
1030
- .kui-popup-menu[open],
993
+ .kui-popup-menu > [aria-expanded="true"],
1031
994
  wa-dropdown:not(.kui-popup-menu)[open]
1032
995
  )
1033
996
  )
@@ -1047,7 +1010,7 @@
1047
1010
  }
1048
1011
 
1049
1012
  .kui-toolbar-control-group[data-button-appearance="push"][data-single="true"]
1050
- > :is(button, wa-button:not(:where(.kui-icon-button)))[aria-pressed="true"] {
1013
+ > :is(button, wa-button)[aria-pressed="true"] {
1051
1014
  color: var(--kui-toolbar-control-pressed-color);
1052
1015
  }
1053
1016
 
@@ -1091,18 +1054,18 @@
1091
1054
  .kui-toolbar-control-group[data-content="avatar"]:is(
1092
1055
  [data-single="true"],
1093
1056
  :has(
1094
- > :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
1057
+ > :is(button, wa-button):nth-child(
1095
1058
  1 of :where(:not([data-toolbar-visibility-state]))
1096
1059
  ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
1097
1060
  )
1098
1061
  )
1099
- > :is(button, wa-button:not(:where(.kui-icon-button))) {
1062
+ > :is(button, wa-button) {
1100
1063
  color: transparent;
1101
1064
  }
1102
1065
 
1103
1066
  .kui-toolbar-control-group[data-content="avatar"][data-single="false"]:not(
1104
1067
  :has(
1105
- > :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
1068
+ > :is(button, wa-button):nth-child(
1106
1069
  1 of :where(:not([data-toolbar-visibility-state]))
1107
1070
  ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
1108
1071
  )
@@ -1110,12 +1073,12 @@
1110
1073
  > button[aria-pressed="true"],
1111
1074
  .kui-toolbar-control-group[data-content="avatar"][data-single="false"]:not(
1112
1075
  :has(
1113
- > :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
1076
+ > :is(button, wa-button):nth-child(
1114
1077
  1 of :where(:not([data-toolbar-visibility-state]))
1115
1078
  ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
1116
1079
  )
1117
1080
  )
1118
- > wa-button:not(:where(.kui-icon-button))[aria-pressed="true"]::part(base) {
1081
+ > wa-button[aria-pressed="true"]::part(base) {
1119
1082
  color: transparent;
1120
1083
  background-image: var(--kui-toolbar-avatar-image);
1121
1084
  background-origin: border-box;
@@ -149,21 +149,15 @@ button.kui-toolbar-text:focus-visible {
149
149
  4.1:1 (dark). The title takes the normal text color (about 10.5:1 and
150
150
  8.3:1), and the description lifts halfway toward it (about 5.9:1 in both
151
151
  themes), so it still reads as secondary but keeps AA. A ToolbarText in a
152
- DialogSurface floating header (`headerPresentation="floating"`), slotted
153
- as the dialog's label or into its header actions, sits on the raised chrome
154
- material and takes the same lift. See docs/accessibility.md "Chrome
152
+ DialogSurface floating header (`headerPresentation="floating"`), as its
153
+ heading or in its header actions, sits on the raised chrome material and
154
+ takes the same lift. See docs/accessibility.md "Chrome
155
155
  material". */
156
156
  .kui-pane[data-header-presentation="overlay"]
157
157
  > .kui-pane__header
158
158
  .kui-toolbar-text:not([data-tone]),
159
159
  .kui-dialog-surface[data-header-presentation="floating"]
160
- > wa-dialog
161
- > .kui-toolbar-text:is([slot="label"], [slot="header-actions"]):not(
162
- [data-tone]
163
- ),
164
- .kui-dialog-surface[data-header-presentation="floating"]
165
- > wa-dialog
166
- > :is([slot="label"], [slot="header-actions"])
160
+ > .kui-dialog-surface__header
167
161
  .kui-toolbar-text:not([data-tone]),
168
162
  .kui-nav-stack[data-chrome-presentation="overlay"]
169
163
  > .kui-nav-stack__chrome
@@ -179,14 +173,7 @@ button.kui-toolbar-text:focus-visible {
179
173
  .kui-toolbar-text:not([data-tone])
180
174
  .kui-toolbar-text__description,
181
175
  .kui-dialog-surface[data-header-presentation="floating"]
182
- > wa-dialog
183
- > .kui-toolbar-text:is([slot="label"], [slot="header-actions"]):not(
184
- [data-tone]
185
- )
186
- .kui-toolbar-text__description,
187
- .kui-dialog-surface[data-header-presentation="floating"]
188
- > wa-dialog
189
- > :is([slot="label"], [slot="header-actions"])
176
+ > .kui-dialog-surface__header
190
177
  .kui-toolbar-text:not([data-tone])
191
178
  .kui-toolbar-text__description,
192
179
  .kui-nav-stack[data-chrome-presentation="overlay"]
@@ -122,12 +122,43 @@
122
122
  border-radius: var(--kui-radius-m);
123
123
  }
124
124
 
125
+ /* `contentWidth`: a readable page column. The measure is the content's, so
126
+ the cap adds the list's own insets; `center` (default) centers the column. */
127
+ .kui-list[data-content-width] {
128
+ width: 100%;
129
+ max-width: calc(
130
+ var(--_kui-list-content-width) + var(--_kui-list-inset-left, 0px) +
131
+ var(--_kui-list-inset-right, 0px)
132
+ );
133
+ }
134
+
135
+ .kui-list[data-content-width="compact"] {
136
+ --_kui-list-content-width: 27.5rem;
137
+ }
138
+
139
+ .kui-list[data-content-width="medium"] {
140
+ --_kui-list-content-width: 40rem;
141
+ }
142
+
143
+ .kui-list[data-content-width="wide"] {
144
+ --_kui-list-content-width: 54rem;
145
+ }
146
+
147
+ .kui-list[data-content-align="center"] {
148
+ margin-inline: auto;
149
+ }
150
+
125
151
  .kui-list[data-h-align="left"] {
126
152
  align-items: flex-start;
127
153
  align-content: flex-start;
128
154
  }
129
155
 
130
156
  .kui-list[data-h-align="center"] {
157
+ align-items: center;
158
+ align-content: center;
159
+ }
160
+
161
+ .kui-list[data-h-align="around"] {
131
162
  align-items: center;
132
163
  align-content: space-around;
133
164
  }
@@ -137,7 +168,13 @@
137
168
  align-content: flex-end;
138
169
  }
139
170
 
171
+ /* `middle` gathers the children in the middle, keeping their gap;
172
+ `space-around` (`around`) spreads them. */
140
173
  .kui-list[data-v-align="middle"] {
174
+ justify-content: center;
175
+ }
176
+
177
+ .kui-list[data-v-align="around"] {
141
178
  justify-content: space-around;
142
179
  }
143
180
 
@@ -125,12 +125,9 @@
125
125
  background: var(--_kui-badge-fill-solid);
126
126
  }
127
127
 
128
- /* A multiple icon-only Select's count badge, in the trigger's end slot after
129
- its fixed icon, sits 4px from the icon (the caret keeps its 12px after it).
130
- The summary that ends the Select's label (and accessible name) stays inline
131
- text, so a visible label reads "Labels: Bug, Docs" in place of the hidden
132
- value. */
133
- .kui-select > .kui-badge[slot="end"] {
128
+ /* A multiple icon-only Select's count badge, in the trigger after its fixed
129
+ icon, sits 4px from the icon (the caret keeps its 12px after it). */
130
+ .kui-select__trigger > .kui-badge {
134
131
  margin-inline-start: 0.25rem;
135
132
  }
136
133
 
@@ -143,3 +140,18 @@
143
140
  margin-inline-end: var(--kui-layout-item-gap, 0.5rem);
144
141
  vertical-align: baseline;
145
142
  }
143
+
144
+ /* `corner`: over the top-trailing corner of the control it sits in, which
145
+ positions itself for it (button.css, toolbar-control-group.css). A count
146
+ straddles the corner, growing inward; the dot sits just inside it. */
147
+ .kui-badge[data-placement="corner"] {
148
+ position: absolute;
149
+ inset-block-start: -0.25rem;
150
+ inset-inline-end: -0.25rem;
151
+ pointer-events: none;
152
+ }
153
+
154
+ .kui-badge[data-placement="corner"][data-size="dot"] {
155
+ inset-block-start: 0.125rem;
156
+ inset-inline-end: 0.125rem;
157
+ }