@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
@@ -0,0 +1,193 @@
1
+ /* TextField: a label above one bordered box (the input with an optional
2
+ leading icon and clear button), then supporting or error text. */
3
+ .kui-text-field {
4
+ --_kui-text-field-height: round(2.75em, 1px);
5
+ display: flex;
6
+ width: auto;
7
+ min-width: 0;
8
+ flex-direction: column;
9
+ font-size: var(--kui-font-m, 1rem);
10
+ font-weight: 400;
11
+ }
12
+ .kui-text-field[data-size="compact"] {
13
+ --_kui-text-field-height: round(calc(1rem + 1.2em), 1px);
14
+ font-size: var(--kui-font-s, 0.875rem);
15
+ }
16
+ /* The label matches every Kerf form control's label (Select's too). */
17
+ .kui-text-field__label {
18
+ display: block;
19
+ margin-block-end: 0.375rem;
20
+ padding-inline: calc(1px + var(--kui-layout-item-padding, 0.5rem));
21
+ color: var(--kui-color-neutral-on-quiet);
22
+ font-size: var(--kui-font-xs);
23
+ font-weight: 650;
24
+ letter-spacing: 0.04em;
25
+ line-height: 1.2;
26
+ text-transform: uppercase;
27
+ }
28
+ /* A required field's asterisk; the input itself reports `required`. */
29
+ .kui-text-field__required {
30
+ margin-inline-start: 0.1em;
31
+ }
32
+ .kui-text-field__box {
33
+ display: flex;
34
+ box-sizing: border-box;
35
+ min-height: var(--_kui-text-field-height);
36
+ align-items: center;
37
+ gap: 0.5rem;
38
+ padding: 0 0.5rem;
39
+ color: var(--kui-color-text);
40
+ border: 1px solid var(--kui-color-neutral-border-normal);
41
+ border-radius: var(--kui-layout-rounded-radius, calc(1px + 0.6875rem));
42
+ background-color: var(--kui-color-surface);
43
+ cursor: text;
44
+ }
45
+ .kui-text-field__box:focus-within {
46
+ outline: var(--kui-focus-ring);
47
+ outline-offset: 1px;
48
+ }
49
+ .kui-text-field[data-invalid] > .kui-text-field__box {
50
+ border-color: var(--kui-color-danger-border-loud);
51
+ }
52
+ .kui-text-field__icon {
53
+ display: inline-flex;
54
+ flex: none;
55
+ color: var(--kui-color-neutral-on-quiet);
56
+ }
57
+ /* The box draws the chrome, so the input resets every native (and global
58
+ form-control) style of its own. */
59
+ .kui-text-field__input {
60
+ box-sizing: border-box;
61
+ width: 100%;
62
+ min-width: 0;
63
+ height: calc(var(--_kui-text-field-height) - 2px);
64
+ min-height: 0;
65
+ flex: 1 1 auto;
66
+ padding: 0;
67
+ margin: 0;
68
+ color: inherit;
69
+ font: inherit;
70
+ line-height: 1.2;
71
+ border: none;
72
+ border-radius: 0;
73
+ outline: none;
74
+ background: transparent;
75
+ box-shadow: none;
76
+ opacity: 1;
77
+ transition: none;
78
+ appearance: none;
79
+ }
80
+ .kui-text-field__input::placeholder {
81
+ color: var(--kui-color-text-quiet);
82
+ opacity: 1;
83
+ }
84
+ /* A multi-line field: the box holds only the textarea, which pads itself so
85
+ its scrollbar reaches the border. */
86
+ .kui-text-field[data-multiline] > .kui-text-field__box {
87
+ align-items: stretch;
88
+ padding: 0;
89
+ }
90
+ .kui-text-field[data-multiline] .kui-text-field__input {
91
+ height: calc(
92
+ var(--_kui-text-field-rows, 3) * 1lh + 2 * var(--_kui-text-field-block-pad)
93
+ );
94
+ padding: var(--_kui-text-field-block-pad) 0.5rem;
95
+ line-height: 1.45;
96
+ resize: vertical;
97
+ --_kui-text-field-block-pad: 0.275rem;
98
+ }
99
+ /* Growing from `rows` to `maxRows` with its content, then scrolling. */
100
+ .kui-text-field[data-multiline="grow"] .kui-text-field__input {
101
+ height: auto;
102
+ min-height: calc(
103
+ var(--_kui-text-field-rows, 3) * 1lh + 2 * var(--_kui-text-field-block-pad)
104
+ );
105
+ max-height: calc(
106
+ var(--_kui-text-field-max-rows) * 1lh + 2 * var(--_kui-text-field-block-pad)
107
+ );
108
+ field-sizing: content;
109
+ resize: none;
110
+ }
111
+ .kui-text-field__clear {
112
+ display: inline-flex;
113
+ width: 1.75rem;
114
+ height: 1.75rem;
115
+ flex: none;
116
+ align-items: center;
117
+ justify-content: center;
118
+ padding: 0;
119
+ margin-inline-end: -0.25rem;
120
+ color: var(--kui-color-neutral-on-quiet);
121
+ border: none;
122
+ border-radius: var(--kui-radius-circle, 50%);
123
+ background: transparent;
124
+ cursor: pointer;
125
+ }
126
+ .kui-text-field__clear > [data-lucide] {
127
+ width: 1rem;
128
+ height: 1rem;
129
+ }
130
+ .kui-text-field__clear:hover {
131
+ color: var(--kui-color-text);
132
+ }
133
+ .kui-text-field__clear:focus-visible {
134
+ outline: var(--kui-focus-ring);
135
+ outline-offset: 1px;
136
+ }
137
+ /* Only a field with a value offers to clear it. */
138
+ .kui-text-field__input:placeholder-shown ~ .kui-text-field__clear {
139
+ display: none;
140
+ }
141
+ .kui-text-field__hint,
142
+ .kui-text-field__error {
143
+ display: block;
144
+ margin-block-start: 0.4375rem;
145
+ padding-inline: calc(1px + var(--kui-layout-item-padding, 0.5rem));
146
+ color: var(--kui-color-text-quiet);
147
+ font-size: var(--kui-font-s, 0.875rem);
148
+ line-height: 1.6;
149
+ }
150
+ .kui-text-field[data-size="compact"]
151
+ :is(.kui-text-field__hint, .kui-text-field__error) {
152
+ font-size: var(--kui-font-xs, 0.75rem);
153
+ }
154
+ .kui-text-field__error {
155
+ color: var(--kui-color-danger-on-quiet);
156
+ }
157
+ /* A live character count trails the hint on the same line. */
158
+ .kui-text-field__footer {
159
+ display: flex;
160
+ align-items: baseline;
161
+ gap: 0.5rem;
162
+ }
163
+ .kui-text-field__footer > .kui-text-field__hint {
164
+ flex: 1 1 auto;
165
+ }
166
+ .kui-text-field__count {
167
+ flex: none;
168
+ margin-inline-start: auto;
169
+ margin-block-start: 0.4375rem;
170
+ padding-inline-end: calc(1px + var(--kui-layout-item-padding, 0.5rem));
171
+ color: var(--kui-color-text-quiet);
172
+ font-size: var(--kui-font-xs, 0.75rem);
173
+ font-variant-numeric: tabular-nums;
174
+ line-height: 1.6;
175
+ }
176
+ .kui-text-field__hint + .kui-text-field__error {
177
+ margin-block-start: 0;
178
+ }
179
+ .kui-text-field:has(.kui-text-field__input:disabled) > .kui-text-field__box {
180
+ cursor: not-allowed;
181
+ opacity: 0.5;
182
+ }
183
+ /* A touch field below 16px makes iOS magnify the page on focus. */
184
+ @media (hover: none) and (pointer: coarse) {
185
+ .kui-text-field[data-size="compact"] .kui-text-field__input {
186
+ font-size: max(16px, 1em);
187
+ }
188
+ }
189
+ @media (forced-colors: active) {
190
+ .kui-text-field__box {
191
+ border-color: CanvasText;
192
+ }
193
+ }
@@ -7,21 +7,19 @@
7
7
  overflow-wrap: normal;
8
8
  }
9
9
 
10
- /* Match the themed Web Awesome form-control label without introducing a
11
- native <label> that would falsely point at a non-form preview. */
10
+ /* Match every Kerf form control's label (TextField, Select) without
11
+ introducing a native <label> that would falsely point at a non-form
12
+ preview. */
12
13
  .kui-text__field-label {
13
14
  box-sizing: border-box;
14
15
  min-width: 0;
15
- padding-inline: calc(
16
- var(--wa-form-control-border-width, 1px) +
17
- var(--wa-form-control-padding-inline, 0.5rem)
18
- );
16
+ padding-inline: calc(1px + var(--kui-layout-item-padding, 0.5rem));
19
17
  margin: 0 0 0.5em;
20
- color: var(--kui-color-neutral-on-quiet, var(--wa-color-text-quiet));
21
- font-size: var(--kui-font-xs, var(--wa-font-size-xs));
18
+ color: var(--kui-color-neutral-on-quiet);
19
+ font-size: var(--kui-font-xs);
22
20
  font-weight: 650;
23
21
  letter-spacing: 0.04em;
24
- line-height: var(--wa-line-height-condensed);
22
+ line-height: 1.2;
25
23
  text-transform: uppercase;
26
24
  }
27
25
 
@@ -100,6 +98,10 @@ span.kui-text[data-wrap="truncate"] {
100
98
  font-size: var(--kui-font-xs);
101
99
  }
102
100
 
101
+ .kui-text[data-size="medium"] {
102
+ font-size: var(--kui-font-m);
103
+ }
104
+
103
105
  .kui-text[data-size="large"] {
104
106
  font-size: var(--kui-font-l);
105
107
  }
@@ -181,10 +183,10 @@ span.kui-text {
181
183
  .kui-list-header:is([data-size="m"], [data-size="l"], [data-size="xl"])
182
184
  .kui-list-header__title
183
185
  > .kui-text {
184
- font-family: var(--wa-font-family-heading, var(--kui-font-sans));
185
- font-weight: var(--wa-font-weight-heading, 600);
186
+ font-family: var(--kui-font-sans);
187
+ font-weight: 600;
186
188
  letter-spacing: normal;
187
- line-height: var(--wa-line-height-condensed, 1.2);
189
+ line-height: 1.2;
188
190
  text-transform: none;
189
191
  }
190
192
 
@@ -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;