@kerfjs/ui 5.0.0-beta.95 → 5.0.0-beta.97

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 (385) hide show
  1. package/README.md +95 -55
  2. package/ai/component-catalog.json +1330 -94
  3. package/ai/component-composition-rules.json +11 -0
  4. package/ai/component-composition.d.ts +3 -0
  5. package/ai/component-composition.json +955 -23
  6. package/ai/component-composition.schema.json +4 -0
  7. package/ai/components/README.md +12 -0
  8. package/ai/components/badge.md +6 -2
  9. package/ai/components/choice-chips.md +80 -0
  10. package/ai/components/column-track.md +78 -0
  11. package/ai/components/combobox.md +88 -0
  12. package/ai/components/content-item.md +2 -0
  13. package/ai/components/content-swap.md +78 -0
  14. package/ai/components/corner-status.md +88 -0
  15. package/ai/components/document-baseline.md +3 -1
  16. package/ai/components/edge-activity-indicator.md +81 -0
  17. package/ai/components/file-picker.md +88 -0
  18. package/ai/components/foundation.md +1 -1
  19. package/ai/components/framed-list.md +80 -0
  20. package/ai/components/grid.md +2 -1
  21. package/ai/components/icon-button.md +82 -0
  22. package/ai/components/icon-toggle-button.md +80 -0
  23. package/ai/components/list-action-row.md +20 -7
  24. package/ai/components/list-item.md +17 -7
  25. package/ai/components/list.md +5 -2
  26. package/ai/components/nav-stack.md +2 -1
  27. package/ai/components/popup-menu.md +2 -2
  28. package/ai/components/row.md +1 -1
  29. package/ai/components/select.md +2 -1
  30. package/ai/components/split-button.md +80 -0
  31. package/ai/components/split-view.md +1 -1
  32. package/ai/components/state-banner.md +4 -2
  33. package/ai/components/summary-row.md +85 -0
  34. package/ai/components/sunken-panel.md +1 -1
  35. package/ai/components/surface-scaffold.md +8 -2
  36. package/ai/components/text.md +3 -0
  37. package/ai/components/toolbar-control-group.md +4 -2
  38. package/ai/components/toolbar-text.md +1 -0
  39. package/ai/components/toolbar.md +1 -0
  40. package/ai/components/value-table.md +9 -2
  41. package/ai/components/wa-button-group.md +2 -1
  42. package/ai/components/wa-button.md +5 -1
  43. package/ai/public-api-signatures-v1.md +1063 -52
  44. package/ai/skill.md +55 -53
  45. package/ai/webawesome-jsx-signatures-v1.md +1 -1
  46. package/dist/anchored-surface.d.ts +13 -2
  47. package/dist/anchored-surface.js +1 -1
  48. package/dist/app-tab.js +1 -1
  49. package/dist/badge.d.ts +31 -2
  50. package/dist/badge.js +2 -1
  51. package/dist/browser/choice-chips.js +3 -0
  52. package/dist/browser/column-track.js +3 -0
  53. package/dist/browser/combobox.js +3 -0
  54. package/dist/browser/content-swap.js +3 -0
  55. package/dist/browser/corner-status.js +3 -0
  56. package/dist/browser/edge-activity-indicator.js +3 -0
  57. package/dist/browser/file-picker.js +3 -0
  58. package/dist/browser/framed-list.js +3 -0
  59. package/dist/browser/icon-button.js +4 -0
  60. package/dist/browser/icon-toggle-button.js +4 -0
  61. package/dist/browser/list-action-row.js +1 -0
  62. package/dist/browser/split-button.js +5 -0
  63. package/dist/browser/summary-row.js +3 -0
  64. package/dist/catalog-resources.d.ts +1 -0
  65. package/dist/catalog.d.ts +1 -0
  66. package/dist/catalog.js +16 -13
  67. package/dist/catalog.js.map +1 -1
  68. package/dist/chip.d.ts +1 -0
  69. package/dist/choice-chips.d.ts +58 -0
  70. package/dist/choice-chips.js +3 -0
  71. package/dist/choice-chips.js.map +1 -0
  72. package/dist/chunk-2MSPNRWJ.js +82 -0
  73. package/dist/chunk-2MSPNRWJ.js.map +1 -0
  74. package/dist/{chunk-3PO7JEK7.js → chunk-36TL6BCR.js} +18 -4
  75. package/dist/chunk-36TL6BCR.js.map +1 -0
  76. package/dist/{chunk-MORVLMDG.js → chunk-44A6LP54.js} +3 -3
  77. package/dist/chunk-44A6LP54.js.map +1 -0
  78. package/dist/{chunk-7QQ3HE47.js → chunk-4LOK4634.js} +7 -3
  79. package/dist/chunk-4LOK4634.js.map +1 -0
  80. package/dist/chunk-4UB5Z3ZZ.js +68 -0
  81. package/dist/chunk-4UB5Z3ZZ.js.map +1 -0
  82. package/dist/{chunk-PGL6TXFW.js → chunk-6BRRUPJY.js} +6 -2
  83. package/dist/chunk-6BRRUPJY.js.map +1 -0
  84. package/dist/{chunk-KAJVVN7Q.js → chunk-6NOLL5KG.js} +2 -2
  85. package/dist/{chunk-KAJVVN7Q.js.map → chunk-6NOLL5KG.js.map} +1 -1
  86. package/dist/{chunk-IOS2NXW7.js → chunk-76PWEN5Y.js} +13 -2
  87. package/dist/chunk-76PWEN5Y.js.map +1 -0
  88. package/dist/{chunk-B3TROLC2.js → chunk-7IUEBNCO.js} +7 -3
  89. package/dist/chunk-7IUEBNCO.js.map +1 -0
  90. package/dist/{chunk-75YOTZ25.js → chunk-AYHC62OZ.js} +10 -6
  91. package/dist/chunk-AYHC62OZ.js.map +1 -0
  92. package/dist/{chunk-RZYQFGMM.js → chunk-BBU2SPRE.js} +4 -4
  93. package/dist/{chunk-RZYQFGMM.js.map → chunk-BBU2SPRE.js.map} +1 -1
  94. package/dist/{chunk-QCLLBMLA.js → chunk-BU23Z5HZ.js} +37 -12
  95. package/dist/chunk-BU23Z5HZ.js.map +1 -0
  96. package/dist/{chunk-BYHGRKC3.js → chunk-CMLPFIC5.js} +3 -1
  97. package/dist/chunk-CMLPFIC5.js.map +1 -0
  98. package/dist/{chunk-3XPGJUUQ.js → chunk-D5RGM3XA.js} +3 -2
  99. package/dist/chunk-D5RGM3XA.js.map +1 -0
  100. package/dist/chunk-EIET4QLK.js +51 -0
  101. package/dist/chunk-EIET4QLK.js.map +1 -0
  102. package/dist/chunk-ETCWQLJV.js +85 -0
  103. package/dist/chunk-ETCWQLJV.js.map +1 -0
  104. package/dist/chunk-FDZNYD4C.js +138 -0
  105. package/dist/chunk-FDZNYD4C.js.map +1 -0
  106. package/dist/{chunk-XKZPBRU7.js → chunk-FOQK4F3L.js} +25 -5
  107. package/dist/chunk-FOQK4F3L.js.map +1 -0
  108. package/dist/{chunk-FL6J644M.js → chunk-GJYQ27C2.js} +4 -2
  109. package/dist/chunk-GJYQ27C2.js.map +1 -0
  110. package/dist/{chunk-DL55BSQX.js → chunk-GZE2XVKC.js} +8 -1
  111. package/dist/chunk-GZE2XVKC.js.map +1 -0
  112. package/dist/{chunk-YP2G67S7.js → chunk-HO6FU3G7.js} +2 -2
  113. package/dist/{chunk-YP2G67S7.js.map → chunk-HO6FU3G7.js.map} +1 -1
  114. package/dist/{chunk-3DXHNLME.js → chunk-IGTWXPTN.js} +25 -8
  115. package/dist/chunk-IGTWXPTN.js.map +1 -0
  116. package/dist/chunk-IKS72C6P.js +53 -0
  117. package/dist/chunk-IKS72C6P.js.map +1 -0
  118. package/dist/chunk-JYD7G4RG.js +130 -0
  119. package/dist/chunk-JYD7G4RG.js.map +1 -0
  120. package/dist/{chunk-LAZLBC2Q.js → chunk-KH4KEMSP.js} +33 -2
  121. package/dist/chunk-KH4KEMSP.js.map +1 -0
  122. package/dist/chunk-LL45C7BB.js +122 -0
  123. package/dist/chunk-LL45C7BB.js.map +1 -0
  124. package/dist/chunk-M2NRCFRO.js +45 -0
  125. package/dist/chunk-M2NRCFRO.js.map +1 -0
  126. package/dist/chunk-MJ5RU6XT.js +173 -0
  127. package/dist/chunk-MJ5RU6XT.js.map +1 -0
  128. package/dist/{chunk-GIUOXAVL.js → chunk-P74VXMB6.js} +39 -19
  129. package/dist/chunk-P74VXMB6.js.map +1 -0
  130. package/dist/{chunk-TKDDTLG5.js → chunk-PBT3CPPY.js} +31 -3
  131. package/dist/chunk-PBT3CPPY.js.map +1 -0
  132. package/dist/chunk-PRG4CL3Q.js +88 -0
  133. package/dist/chunk-PRG4CL3Q.js.map +1 -0
  134. package/dist/chunk-QH5KOFNS.js +39 -0
  135. package/dist/chunk-QH5KOFNS.js.map +1 -0
  136. package/dist/{chunk-CD5TOO22.js → chunk-QIAPOWHH.js} +2 -2
  137. package/dist/{chunk-CD5TOO22.js.map → chunk-QIAPOWHH.js.map} +1 -1
  138. package/dist/chunk-QQ3TTWFH.js +29 -0
  139. package/dist/chunk-QQ3TTWFH.js.map +1 -0
  140. package/dist/chunk-QYMJHS4K.js +36 -0
  141. package/dist/chunk-QYMJHS4K.js.map +1 -0
  142. package/dist/chunk-R42D2BAO.js +44 -0
  143. package/dist/chunk-R42D2BAO.js.map +1 -0
  144. package/dist/chunk-S2XULQEK.js +52 -0
  145. package/dist/chunk-S2XULQEK.js.map +1 -0
  146. package/dist/{chunk-NMWDHZVM.js → chunk-S4Y3YTAI.js} +2 -2
  147. package/dist/{chunk-NMWDHZVM.js.map → chunk-S4Y3YTAI.js.map} +1 -1
  148. package/dist/{chunk-O27D24CA.js → chunk-TDMHA7C3.js} +3 -2
  149. package/dist/chunk-TDMHA7C3.js.map +1 -0
  150. package/dist/chunk-U6QYTMDB.js +85 -0
  151. package/dist/chunk-U6QYTMDB.js.map +1 -0
  152. package/dist/{chunk-QQICWWNX.js → chunk-V6W56V3N.js} +18 -7
  153. package/dist/chunk-V6W56V3N.js.map +1 -0
  154. package/dist/chunk-W4IK7AWD.js +73 -0
  155. package/dist/chunk-W4IK7AWD.js.map +1 -0
  156. package/dist/{chunk-TNG3XKHB.js → chunk-Y3LC7JQO.js} +26 -8
  157. package/dist/chunk-Y3LC7JQO.js.map +1 -0
  158. package/dist/chunk-YWQGSUF2.js +84 -0
  159. package/dist/chunk-YWQGSUF2.js.map +1 -0
  160. package/dist/{chunk-MTCTX25G.js → chunk-YXOMI7ES.js} +1 -1
  161. package/dist/chunk-YXOMI7ES.js.map +1 -0
  162. package/dist/chunk-ZKKO4MHC.js +25 -0
  163. package/dist/chunk-ZKKO4MHC.js.map +1 -0
  164. package/dist/collapsible-panel.d.ts +10 -3
  165. package/dist/collapsible-panel.js +8 -5
  166. package/dist/collapsible-panel.js.map +1 -1
  167. package/dist/column-track.d.ts +41 -0
  168. package/dist/column-track.js +4 -0
  169. package/dist/column-track.js.map +1 -0
  170. package/dist/combobox.d.ts +40 -0
  171. package/dist/combobox.js +3 -0
  172. package/dist/combobox.js.map +1 -0
  173. package/dist/content-item.d.ts +21 -4
  174. package/dist/content-item.js +1 -1
  175. package/dist/content-swap.d.ts +34 -0
  176. package/dist/content-swap.js +3 -0
  177. package/dist/content-swap.js.map +1 -0
  178. package/dist/corner-status.d.ts +36 -0
  179. package/dist/corner-status.js +3 -0
  180. package/dist/corner-status.js.map +1 -0
  181. package/dist/edge-activity-indicator.d.ts +28 -0
  182. package/dist/edge-activity-indicator.js +3 -0
  183. package/dist/edge-activity-indicator.js.map +1 -0
  184. package/dist/extension-attributes-mu8MFUl0.d.ts +13 -0
  185. package/dist/file-picker.d.ts +47 -0
  186. package/dist/file-picker.js +3 -0
  187. package/dist/file-picker.js.map +1 -0
  188. package/dist/framed-list.d.ts +47 -0
  189. package/dist/framed-list.js +4 -0
  190. package/dist/framed-list.js.map +1 -0
  191. package/dist/grid.js +1 -1
  192. package/dist/help-tags-register.js +1 -1
  193. package/dist/icon-button.d.ts +46 -0
  194. package/dist/icon-button.js +6 -0
  195. package/dist/icon-button.js.map +1 -0
  196. package/dist/icon-toggle-button.d.ts +42 -0
  197. package/dist/icon-toggle-button.js +6 -0
  198. package/dist/icon-toggle-button.js.map +1 -0
  199. package/dist/index.d.ts +23 -6
  200. package/dist/index.js +44 -27
  201. package/dist/list-action-row.d.ts +47 -10
  202. package/dist/list-action-row.js +2 -1
  203. package/dist/list-header.js +1 -1
  204. package/dist/list-inset-text.js +1 -1
  205. package/dist/list-item.d.ts +10 -2
  206. package/dist/list-item.js +1 -1
  207. package/dist/list.d.ts +37 -5
  208. package/dist/list.js +1 -1
  209. package/dist/nav-stack.d.ts +1 -0
  210. package/dist/nav-stack.js +2 -1
  211. package/dist/pane.js +2 -1
  212. package/dist/popup-menu-register.js +18 -1
  213. package/dist/popup-menu-register.js.map +1 -1
  214. package/dist/popup-menu.d.ts +28 -3
  215. package/dist/popup-menu.js +1 -1
  216. package/dist/row.d.ts +6 -2
  217. package/dist/row.js +1 -1
  218. package/dist/select-register.js +1 -1
  219. package/dist/select.js +2 -1
  220. package/dist/split-button.d.ts +57 -0
  221. package/dist/split-button.js +7 -0
  222. package/dist/split-button.js.map +1 -0
  223. package/dist/split-view.d.ts +20 -2
  224. package/dist/split-view.js +22 -1
  225. package/dist/split-view.js.map +1 -1
  226. package/dist/state-banner.d.ts +17 -2
  227. package/dist/state-banner.js +2 -1
  228. package/dist/styles/badge.css +27 -0
  229. package/dist/styles/catalog/components/catalog-example.css +7 -3
  230. package/dist/styles/choice-chips.css +154 -0
  231. package/dist/styles/column-track.css +57 -0
  232. package/dist/styles/combobox.css +113 -0
  233. package/dist/styles/components/actions/icon-button/icon-button.css +22 -0
  234. package/dist/styles/components/actions/icon-toggle-button/icon-toggle-button.css +83 -0
  235. package/dist/styles/components/actions/popup-menu/popup-menu.css +69 -1
  236. package/dist/styles/components/actions/split-button/split-button.css +95 -0
  237. package/dist/styles/components/actions/toolbar/toolbar.css +16 -9
  238. package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +152 -48
  239. package/dist/styles/components/actions/toolbar-text/toolbar-text.css +23 -0
  240. package/dist/styles/components/collections/framed-list/framed-list.css +47 -0
  241. package/dist/styles/components/collections/list/list.css +44 -0
  242. package/dist/styles/components/collections/list-action-row/list-action-row.css +53 -0
  243. package/dist/styles/components/collections/list-item/list-item.css +59 -0
  244. package/dist/styles/components/collections/summary-row/summary-row.css +161 -0
  245. package/dist/styles/components/data-display/value-table/value-table.css +76 -0
  246. package/dist/styles/components/feedback/badge/badge.css +27 -0
  247. package/dist/styles/components/feedback/corner-status/corner-status.css +60 -0
  248. package/dist/styles/components/feedback/edge-activity-indicator/edge-activity-indicator.css +127 -0
  249. package/dist/styles/components/feedback/state-banner/state-banner.css +38 -0
  250. package/dist/styles/components/forms/choice-chips/choice-chips.css +154 -0
  251. package/dist/styles/components/forms/combobox/combobox.css +113 -0
  252. package/dist/styles/components/forms/file-picker/file-picker.css +81 -0
  253. package/dist/styles/components/forms/token-search-field/token-search-field.css +30 -1
  254. package/dist/styles/components/layout/column-track/column-track.css +57 -0
  255. package/dist/styles/components/layout/content-swap/content-swap.css +154 -0
  256. package/dist/styles/components/layout/pane/pane.css +2 -8
  257. package/dist/styles/components/layout/workbench/workbench.css +2 -8
  258. package/dist/styles/components/navigation/tab-navigator/tab-navigator.css +1 -4
  259. package/dist/styles/components/surfaces/content-item/content-item.css +18 -0
  260. package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +1 -4
  261. package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +119 -0
  262. package/dist/styles/components/typography/text/text.css +62 -0
  263. package/dist/styles/content-item.css +18 -0
  264. package/dist/styles/content-swap.css +154 -0
  265. package/dist/styles/corner-status.css +60 -0
  266. package/dist/styles/document.css +65 -0
  267. package/dist/styles/edge-activity-indicator.css +127 -0
  268. package/dist/styles/file-picker.css +81 -0
  269. package/dist/styles/foundation.css +8 -0
  270. package/dist/styles/framed-list.css +47 -0
  271. package/dist/styles/icon-button.css +22 -0
  272. package/dist/styles/icon-toggle-button.css +83 -0
  273. package/dist/styles/list-action-row.css +53 -0
  274. package/dist/styles/list-item.css +59 -0
  275. package/dist/styles/list.css +44 -0
  276. package/dist/styles/pane.css +2 -8
  277. package/dist/styles/popup-menu.css +69 -1
  278. package/dist/styles/split-button.css +95 -0
  279. package/dist/styles/state-banner.css +38 -0
  280. package/dist/styles/styles.css +12 -0
  281. package/dist/styles/summary-row.css +161 -0
  282. package/dist/styles/sunken-panel.css +1 -4
  283. package/dist/styles/surface-scaffold.css +119 -0
  284. package/dist/styles/tab-navigator.css +1 -4
  285. package/dist/styles/text.css +62 -0
  286. package/dist/styles/token-search-field.css +30 -1
  287. package/dist/styles/toolbar-control-group.css +152 -48
  288. package/dist/styles/toolbar-text.css +23 -0
  289. package/dist/styles/toolbar.css +16 -9
  290. package/dist/styles/value-table.css +76 -0
  291. package/dist/styles/webawesome.css +4 -4
  292. package/dist/styles/workbench.css +2 -8
  293. package/dist/summary-row.d.ts +56 -0
  294. package/dist/summary-row.js +4 -0
  295. package/dist/summary-row.js.map +1 -0
  296. package/dist/sunken-panel.d.ts +8 -1
  297. package/dist/sunken-panel.js +2 -1
  298. package/dist/surface-scaffold-register.js +7 -1
  299. package/dist/surface-scaffold-register.js.map +1 -1
  300. package/dist/surface-scaffold.d.ts +75 -2
  301. package/dist/surface-scaffold.js +2 -1
  302. package/dist/tab-navigator.js +4 -1
  303. package/dist/tab-navigator.js.map +1 -1
  304. package/dist/text.d.ts +39 -4
  305. package/dist/text.js +1 -1
  306. package/dist/toolbar-control-group.d.ts +8 -1
  307. package/dist/toolbar-control-group.js +1 -1
  308. package/dist/toolbar-text.d.ts +14 -1
  309. package/dist/toolbar-text.js +1 -1
  310. package/dist/toolbar.d.ts +14 -3
  311. package/dist/toolbar.js +1 -1
  312. package/dist/value-table.d.ts +20 -2
  313. package/dist/value-table.js +1 -1
  314. package/dist/wire-catalog.d.ts +1 -0
  315. package/dist/wire-comboboxes.d.ts +26 -0
  316. package/dist/wire-comboboxes.js +3 -0
  317. package/dist/wire-comboboxes.js.map +1 -0
  318. package/dist/wire-corner-status.d.ts +11 -0
  319. package/dist/wire-corner-status.js +3 -0
  320. package/dist/wire-corner-status.js.map +1 -0
  321. package/dist/wire-file-pickers.d.ts +26 -0
  322. package/dist/wire-file-pickers.js +3 -0
  323. package/dist/wire-file-pickers.js.map +1 -0
  324. package/dist/wire-list-reorder.d.ts +41 -0
  325. package/dist/wire-list-reorder.js +3 -0
  326. package/dist/wire-list-reorder.js.map +1 -0
  327. package/dist/wire-token-search-fields.js +1 -1
  328. package/dist/workbench.d.ts +1 -0
  329. package/dist/workbench.js +2 -1
  330. package/docs/accessibility.md +45 -2
  331. package/docs/anchored-surface.md +15 -7
  332. package/docs/app-layouts.md +2 -1
  333. package/docs/component-contract.md +30 -6
  334. package/docs/component-selection.md +165 -13
  335. package/docs/design/templates/choice-chips/color-palette-dark.svg +1 -0
  336. package/docs/design/templates/choice-chips/color-palette.svg +1 -0
  337. package/docs/design/templates/choice-chips/compact-icons-dark.svg +1 -0
  338. package/docs/design/templates/choice-chips/compact-icons.svg +1 -0
  339. package/docs/design/templates/choice-chips-dark.svg +1 -0
  340. package/docs/design/templates/choice-chips.svg +1 -0
  341. package/docs/design/templates/list-action-row/trailing-menu-dark.svg +1 -0
  342. package/docs/design/templates/list-action-row/trailing-menu.svg +1 -0
  343. package/docs/design/templates/list-action-row-dark.svg +1 -1
  344. package/docs/design/templates/list-action-row.svg +1 -1
  345. package/docs/design/templates/state-banner/strip-dark.svg +1 -0
  346. package/docs/design/templates/state-banner/strip.svg +1 -0
  347. package/docs/design/templates/state-banner-dark.svg +1 -1
  348. package/docs/design/templates/state-banner.svg +1 -1
  349. package/docs/design/templates.md +1 -1
  350. package/docs/document-baseline.md +51 -0
  351. package/docs/layout.md +52 -1
  352. package/docs/split-view.md +20 -2
  353. package/docs/sunken-panel.md +13 -0
  354. package/docs/surface-scaffold.md +66 -1
  355. package/docs/ux-demo.md +1 -0
  356. package/docs/webawesome-theme.md +6 -2
  357. package/llms.txt +138 -16
  358. package/package.json +89 -1
  359. package/dist/chunk-3DXHNLME.js.map +0 -1
  360. package/dist/chunk-3PO7JEK7.js.map +0 -1
  361. package/dist/chunk-3XPGJUUQ.js.map +0 -1
  362. package/dist/chunk-4Y4L5YEI.js +0 -66
  363. package/dist/chunk-4Y4L5YEI.js.map +0 -1
  364. package/dist/chunk-75YOTZ25.js.map +0 -1
  365. package/dist/chunk-7QQ3HE47.js.map +0 -1
  366. package/dist/chunk-A7DYEERU.js +0 -59
  367. package/dist/chunk-A7DYEERU.js.map +0 -1
  368. package/dist/chunk-B3TROLC2.js.map +0 -1
  369. package/dist/chunk-BYHGRKC3.js.map +0 -1
  370. package/dist/chunk-DL55BSQX.js.map +0 -1
  371. package/dist/chunk-FL6J644M.js.map +0 -1
  372. package/dist/chunk-GIUOXAVL.js.map +0 -1
  373. package/dist/chunk-IOS2NXW7.js.map +0 -1
  374. package/dist/chunk-J3AWE5I4.js +0 -50
  375. package/dist/chunk-J3AWE5I4.js.map +0 -1
  376. package/dist/chunk-LAZLBC2Q.js.map +0 -1
  377. package/dist/chunk-MORVLMDG.js.map +0 -1
  378. package/dist/chunk-MTCTX25G.js.map +0 -1
  379. package/dist/chunk-O27D24CA.js.map +0 -1
  380. package/dist/chunk-PGL6TXFW.js.map +0 -1
  381. package/dist/chunk-QCLLBMLA.js.map +0 -1
  382. package/dist/chunk-QQICWWNX.js.map +0 -1
  383. package/dist/chunk-TKDDTLG5.js.map +0 -1
  384. package/dist/chunk-TNG3XKHB.js.map +0 -1
  385. package/dist/chunk-XKZPBRU7.js.map +0 -1
@@ -173,6 +173,13 @@
173
173
  align-self: center;
174
174
  }
175
175
  .kui-toolbar-control-group[data-content="search"] {
176
+ /* The group owns the open/close width motion, and a collapsible search
177
+ inside follows it on every frame (no second, lagging width transition,
178
+ which left an empty band). For the length of the opening it also asks the
179
+ search to keep its query on one line, so the group's clip reveals the
180
+ query instead of re-wrapping it every frame (KF-CXQB30). */
181
+ --_kui-toolbar-group-search-width-duration: 0s;
182
+ --_kui-toolbar-group-search-reveal-duration: 0.25s;
176
183
  width: min(var(--kui-token-search-expanded-width, 30rem), 100%);
177
184
  max-width: 100%;
178
185
  height: auto;
@@ -215,10 +222,35 @@
215
222
 
216
223
  .kui-toolbar-control-group[data-sizing="grow"][data-expanded="true"] {
217
224
  --_kui-toolbar-group-grow-search-width: 100%;
225
+ /* The grown group's content-box width at its basis (basis minus the 1px
226
+ border and 1px padding on each side). A collapsible search lays its editor
227
+ out at least this wide while the group's flex size animates open, so the
228
+ clipped query is revealed rather than re-wrapped every frame (KF-50K0JM). */
229
+ --_kui-toolbar-group-grow-search-min-width: calc(
230
+ var(--kui-toolbar-group-grow-basis, 19rem) - 4px
231
+ );
218
232
  width: auto;
219
233
  min-width: var(--kui-toolbar-group-grow-basis, 19rem);
220
234
  flex: 1 1 var(--kui-toolbar-group-grow-basis, 19rem);
221
235
  }
236
+
237
+ /* A grow search animates its flex size, not `width`: an expanded grow group's
238
+ `width: auto` cannot interpolate, so it used to snap open while the search
239
+ inside animated, leaving an empty band (KF-50K0JM). The collapsed state names
240
+ a definite basis and minimum so all three flex lengths interpolate. */
241
+ .kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
242
+ /* The group's flex size owns this motion; its basis-wide minimum (above)
243
+ already keeps the query on one line. */
244
+ --_kui-toolbar-group-search-reveal-duration: 0s;
245
+ transition-property:
246
+ width, flex-basis, flex-grow, min-width, background-color, border-color;
247
+ transition-duration: 0.25s, 0.25s, 0.25s, 0.25s, 0.2s, 0.2s;
248
+ transition-timing-function: ease;
249
+ }
250
+ .kui-toolbar-control-group[data-content="search"][data-sizing="grow"][data-expanded="false"] {
251
+ min-width: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
252
+ flex: 0 0 var(--kui-toolbar-group-size, calc(2px + 2.625rem));
253
+ }
222
254
  .kui-toolbar-control-group[data-sizing="fill"] {
223
255
  width: 100%;
224
256
  min-width: 0;
@@ -256,15 +288,32 @@
256
288
 
257
289
  @container kui-toolbar (max-width: 30rem) {
258
290
  .kui-toolbar-control-group[data-sizing="grow"][data-expanded="true"] {
291
+ --_kui-toolbar-group-grow-search-min-width: 0px;
259
292
  width: 100%;
260
293
  min-width: 0;
261
294
  flex: 1 1 100%;
262
295
  }
296
+
297
+ /* Here the grown search takes its own line. Animating its basis would push
298
+ the trailing siblings and then jump the group to the next line mid-way, so
299
+ it opens and closes in one frame with the search filling it. */
300
+ .kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
301
+ transition-property: background-color, border-color;
302
+ transition-duration: 0.2s;
303
+ }
263
304
  }
264
305
  .kui-toolbar-control-group[data-content="text"]
265
- > :is(button, wa-button, .kui-toolbar-action-link),
306
+ > :is(
307
+ button,
308
+ wa-button:not(:where(.kui-icon-button)),
309
+ .kui-toolbar-action-link
310
+ ),
266
311
  .kui-toolbar-control-group[data-content="mixed"]
267
- > :is(button, wa-button, .kui-toolbar-action-link) {
312
+ > :is(
313
+ button,
314
+ wa-button:not(:where(.kui-icon-button)),
315
+ .kui-toolbar-action-link
316
+ ) {
268
317
  min-width: max-content;
269
318
  }
270
319
  .kui-toolbar-control-group[data-content="mixed"] > button {
@@ -272,14 +321,14 @@
272
321
  gap: var(--kui-space-xs);
273
322
  }
274
323
  .kui-toolbar-control-group[data-content="mixed"]
275
- wa-button:not(:where(.kui-popup-menu > *)) {
324
+ wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
276
325
  line-height: normal;
277
326
  }
278
327
  /* Toolbar controls never wrap. Web Awesome's label part is a plain block, so a
279
328
  slotted icon (a block SVG) and its text would otherwise stack vertically —
280
329
  lay them out on one row the way native mixed buttons already are. */
281
330
  .kui-toolbar-control-group
282
- wa-button:not(:where(.kui-popup-menu > *))::part(label) {
331
+ wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))::part(label) {
283
332
  display: inline-flex;
284
333
  align-items: center;
285
334
  gap: var(--kui-space-xs);
@@ -335,11 +384,32 @@
335
384
  background: transparent;
336
385
  }
337
386
 
387
+ /* `selectedChrome="none"`: a pressed control paints like its unpressed
388
+ neighbors, for an icon-state toggle whose glyph already shows the state.
389
+ One button opts out alone with `data-selected-chrome="none"`. After the
390
+ tone and appearance rules above, so it wins over their selected fills. */
391
+ .kui-toolbar-control-group[data-selected-chrome="none"],
392
+ .kui-toolbar-control-group
393
+ > :is(
394
+ button,
395
+ wa-button:not(:where(.kui-icon-button))
396
+ )[data-selected-chrome="none"] {
397
+ --kui-toolbar-control-selected-shadow: none;
398
+ --kui-toolbar-control-selected-border: transparent;
399
+ --kui-toolbar-control-selected-background: transparent;
400
+ --kui-toolbar-control-selected-color: var(--kui-toolbar-control-color);
401
+ }
402
+
338
403
  /* The group lays out its own native and raw Web Awesome children. A composed
339
404
  PopupMenu (`wa-dropdown.kui-popup-menu`) or Select sizes itself in the
340
405
  group's context from its own stylesheet (popup-menu.css, select.css); the
341
406
  group names those children by class only to key its own state on them. */
342
- .kui-toolbar-control-group > :is(button, wa-button, .kui-toolbar-action-link),
407
+ .kui-toolbar-control-group
408
+ > :is(
409
+ button,
410
+ wa-button:not(:where(.kui-icon-button)),
411
+ .kui-toolbar-action-link
412
+ ),
343
413
  .kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) {
344
414
  flex: 0 0 auto;
345
415
  }
@@ -366,12 +436,15 @@
366
436
  place-items: center;
367
437
  }
368
438
 
369
- .kui-toolbar-control-group > button:disabled {
439
+ /* A native button that is disabled, or kept focusable with aria-disabled,
440
+ dims and drops hover chrome. */
441
+ .kui-toolbar-control-group > button:is(:disabled, [aria-disabled="true"]) {
370
442
  opacity: 0.5;
371
443
  cursor: not-allowed;
372
444
  }
373
445
 
374
- .kui-toolbar-control-group > button:not(:disabled):hover {
446
+ .kui-toolbar-control-group
447
+ > button:not(:disabled, [aria-disabled="true"]):hover {
375
448
  border-color: var(--kui-toolbar-control-border);
376
449
  background: var(--kui-toolbar-control-hover-background);
377
450
  }
@@ -429,7 +502,9 @@
429
502
  }
430
503
 
431
504
  .kui-toolbar-control-group > button svg,
432
- .kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) > svg,
505
+ .kui-toolbar-control-group
506
+ wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))
507
+ > svg,
433
508
  .kui-toolbar-control-group > .kui-toolbar-action-link svg {
434
509
  display: block;
435
510
  width: 1rem;
@@ -441,40 +516,44 @@
441
516
  buttons: a composed PopupMenu's trigger (`.kui-popup-menu > wa-button`) is
442
517
  excluded inside a zero-specificity `:where()` and takes the same metrics
443
518
  from popup-menu.css. */
444
- .kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) {
519
+ .kui-toolbar-control-group
520
+ wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
445
521
  --wa-form-control-height: 2.5rem;
446
522
  }
447
523
  .kui-toolbar-control-group[data-size="compact"]
448
- wa-button:not(:where(.kui-popup-menu > *)) {
524
+ wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
449
525
  --wa-form-control-height: 2rem;
450
526
  }
451
527
 
452
- .kui-toolbar-control-group > wa-button,
528
+ .kui-toolbar-control-group > wa-button:not(:where(.kui-icon-button)),
453
529
  .kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu),
454
- .kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) > wa-button,
455
530
  .kui-toolbar-control-group
456
531
  > wa-dropdown:not(.kui-popup-menu)
457
- > wa-button::part(base) {
532
+ > wa-button:not(:where(.kui-icon-button)),
533
+ .kui-toolbar-control-group
534
+ > wa-dropdown:not(.kui-popup-menu)
535
+ > wa-button:not(:where(.kui-icon-button))::part(base) {
458
536
  min-width: 2.5rem;
459
537
  height: 2.5rem;
460
538
  }
461
539
  .kui-toolbar-control-group[data-size="compact"] > button,
462
540
  .kui-toolbar-control-group[data-size="compact"] > .kui-toolbar-action-link,
463
- .kui-toolbar-control-group[data-size="compact"] > wa-button,
541
+ .kui-toolbar-control-group[data-size="compact"]
542
+ > wa-button:not(:where(.kui-icon-button)),
464
543
  .kui-toolbar-control-group[data-size="compact"]
465
544
  > wa-dropdown:not(.kui-popup-menu),
466
545
  .kui-toolbar-control-group[data-size="compact"]
467
546
  > wa-dropdown:not(.kui-popup-menu)
468
- > wa-button,
547
+ > wa-button:not(:where(.kui-icon-button)),
469
548
  .kui-toolbar-control-group[data-size="compact"]
470
549
  > wa-dropdown:not(.kui-popup-menu)
471
- > wa-button::part(base),
550
+ > wa-button:not(:where(.kui-icon-button))::part(base),
472
551
  .kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
473
552
  wa-dropdown:not(.kui-popup-menu)
474
- wa-button,
553
+ wa-button:not(:where(.kui-icon-button)),
475
554
  .kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
476
555
  wa-dropdown:not(.kui-popup-menu)
477
- wa-button::part(base) {
556
+ wa-button:not(:where(.kui-icon-button))::part(base) {
478
557
  min-width: 2rem;
479
558
  height: 2rem;
480
559
  min-height: 2rem;
@@ -523,7 +602,7 @@
523
602
  .kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
524
603
  > wa-dropdown:not(.kui-popup-menu),
525
604
  .kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
526
- > wa-button {
605
+ > wa-button:not(:where(.kui-icon-button)) {
527
606
  margin: -2px;
528
607
  }
529
608
 
@@ -533,25 +612,26 @@
533
612
  the separator and the caret beyond the group border. */
534
613
  .kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
535
614
  > wa-dropdown:not(.kui-popup-menu)
536
- > wa-button,
615
+ > wa-button:not(:where(.kui-icon-button)),
537
616
  .kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
538
617
  > wa-dropdown:not(.kui-popup-menu)
539
- > wa-button::part(base) {
618
+ > wa-button:not(:where(.kui-icon-button))::part(base) {
540
619
  min-width: max-content;
541
620
  }
542
621
  .kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
543
622
  > wa-dropdown:not(.kui-popup-menu)
544
- > wa-button::part(base) {
623
+ > wa-button:not(:where(.kui-icon-button))::part(base) {
545
624
  width: max-content;
546
625
  }
547
626
 
548
627
  .kui-toolbar-control-group[data-single="true"]
549
628
  > wa-dropdown:not(.kui-popup-menu)
550
- > wa-button::part(base) {
629
+ > wa-button:not(:where(.kui-icon-button))::part(base) {
551
630
  width: max-content;
552
631
  }
553
632
 
554
- .kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) {
633
+ .kui-toolbar-control-group
634
+ wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
555
635
  display: inline-flex;
556
636
  line-height: 0;
557
637
  align-items: center;
@@ -560,7 +640,7 @@
560
640
  }
561
641
 
562
642
  .kui-toolbar-control-group
563
- wa-button:not(:where(.kui-popup-menu > *))::part(base) {
643
+ wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))::part(base) {
564
644
  /* Match min-width to the 40px height so an icon-only button's highlight is at
565
645
  least a circle, not a vertical oval — the host is 40px wide but the base
566
646
  part was sizing to its ~32px content. Text/caret buttons grow past it. */
@@ -575,15 +655,18 @@
575
655
  }
576
656
 
577
657
  .kui-toolbar-control-group
578
- wa-button:not(:where(.kui-popup-menu > *)):hover::part(base) {
658
+ wa-button:not(
659
+ :where(.kui-popup-menu > *, .kui-icon-button),
660
+ [disabled]
661
+ ):hover::part(base) {
579
662
  border-color: var(--kui-toolbar-control-border);
580
663
  background-color: var(--kui-toolbar-control-hover-background);
581
664
  }
582
665
 
583
666
  .kui-toolbar-control-group[data-single="true"]:has(
584
667
  > :is(
585
- button:not(:disabled),
586
- wa-button,
668
+ button:not(:disabled, [aria-disabled="true"]),
669
+ wa-button:not([disabled]),
587
670
  .kui-popup-menu,
588
671
  wa-dropdown:not(.kui-popup-menu),
589
672
  .kui-select,
@@ -594,9 +677,16 @@
594
677
  }
595
678
 
596
679
  .kui-toolbar-control-group[data-single="true"]
597
- > :is(button, wa-button, .kui-toolbar-action-link):hover,
680
+ > :is(
681
+ button,
682
+ wa-button:not(:where(.kui-icon-button)),
683
+ .kui-toolbar-action-link
684
+ ):hover,
598
685
  .kui-toolbar-control-group[data-single="true"]
599
- wa-button:not(:where(.kui-popup-menu > *)):hover::part(base) {
686
+ wa-button:not(
687
+ :where(.kui-popup-menu > *, .kui-icon-button),
688
+ [disabled]
689
+ ):hover::part(base) {
600
690
  border-color: transparent;
601
691
  background: transparent;
602
692
  }
@@ -607,8 +697,8 @@
607
697
  Done action). */
608
698
  .kui-toolbar-control-group:not([data-single="true"]):has(
609
699
  > :is(
610
- button:not(:disabled),
611
- wa-button,
700
+ button:not(:disabled, [aria-disabled="true"]),
701
+ wa-button:not([disabled]),
612
702
  .kui-select,
613
703
  .kui-toolbar-action-link
614
704
  ):nth-child(1 of :where(:not([data-toolbar-visibility-state]))):where(
@@ -619,17 +709,25 @@
619
709
  }
620
710
 
621
711
  .kui-toolbar-control-group:not([data-single="true"]):has(
622
- > :is(button, wa-button, .kui-toolbar-action-link):nth-child(
623
- 1 of :where(:not([data-toolbar-visibility-state]))
624
- ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
712
+ > :is(
713
+ button,
714
+ wa-button:not(:where(.kui-icon-button)),
715
+ .kui-toolbar-action-link
716
+ ):nth-child(1 of :where(:not([data-toolbar-visibility-state]))):where(
717
+ :nth-last-child(1 of :not([data-toolbar-visibility-state]))
718
+ )
625
719
  )
626
- > :is(button, wa-button, .kui-toolbar-action-link):hover,
720
+ > :is(
721
+ button,
722
+ wa-button:not(:where(.kui-icon-button)),
723
+ .kui-toolbar-action-link
724
+ ):hover,
627
725
  .kui-toolbar-control-group:not([data-single="true"]):has(
628
- > :is(button, wa-button):nth-child(
726
+ > :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
629
727
  1 of :where(:not([data-toolbar-visibility-state]))
630
728
  ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
631
729
  )
632
- > wa-button:hover::part(base) {
730
+ > wa-button:not(:where(.kui-icon-button)):hover::part(base) {
633
731
  border-color: transparent;
634
732
  background: transparent;
635
733
  }
@@ -651,18 +749,22 @@
651
749
  and stays inside the group's border instead of overflowing it as an oversized
652
750
  square (KF-5BDDQ9). The selected text color rides on the host and inherits in. */
653
751
  .kui-toolbar-control-group[data-single="false"]
654
- > wa-button[aria-pressed="true"] {
752
+ > wa-button:not(:where(.kui-icon-button))[aria-pressed="true"] {
655
753
  color: var(--kui-toolbar-control-selected-color);
656
754
  }
657
755
  .kui-toolbar-control-group[data-single="false"]
658
- > wa-button[aria-pressed="true"]::part(base) {
756
+ > wa-button:not(:where(.kui-icon-button))[aria-pressed="true"]::part(base) {
659
757
  border-color: var(--kui-toolbar-control-selected-border);
660
758
  background: var(--kui-toolbar-control-selected-background);
661
759
  box-shadow: var(--kui-toolbar-control-selected-shadow);
662
760
  }
663
761
 
664
762
  .kui-toolbar-control-group
665
- > :is(button, wa-button, .kui-toolbar-action-link):focus-visible {
763
+ > :is(
764
+ button,
765
+ wa-button:not(:where(.kui-icon-button)),
766
+ .kui-toolbar-action-link
767
+ ):focus-visible {
666
768
  outline: var(--kui-focus-ring);
667
769
  outline-offset: 1px;
668
770
  }
@@ -743,12 +845,14 @@
743
845
  }
744
846
 
745
847
  .kui-toolbar-control-group[data-button-appearance="push"][data-single="true"]
746
- > :is(button, wa-button)[aria-pressed="true"] {
848
+ > :is(button, wa-button:not(:where(.kui-icon-button)))[aria-pressed="true"] {
747
849
  color: var(--kui-toolbar-control-pressed-color);
748
850
  }
749
851
 
750
852
  @media (prefers-reduced-motion: reduce) {
751
- .kui-toolbar-control-group[data-content="search"] {
853
+ .kui-toolbar-control-group[data-content="search"],
854
+ .kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
855
+ --_kui-toolbar-group-search-reveal-duration: 0s;
752
856
  transition-duration: 0s;
753
857
  }
754
858
 
@@ -785,18 +889,18 @@
785
889
  .kui-toolbar-control-group[data-content="avatar"]:is(
786
890
  [data-single="true"],
787
891
  :has(
788
- > :is(button, wa-button):nth-child(
892
+ > :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
789
893
  1 of :where(:not([data-toolbar-visibility-state]))
790
894
  ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
791
895
  )
792
896
  )
793
- > :is(button, wa-button) {
897
+ > :is(button, wa-button:not(:where(.kui-icon-button))) {
794
898
  color: transparent;
795
899
  }
796
900
 
797
901
  .kui-toolbar-control-group[data-content="avatar"][data-single="false"]:not(
798
902
  :has(
799
- > :is(button, wa-button):nth-child(
903
+ > :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
800
904
  1 of :where(:not([data-toolbar-visibility-state]))
801
905
  ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
802
906
  )
@@ -804,12 +908,12 @@
804
908
  > button[aria-pressed="true"],
805
909
  .kui-toolbar-control-group[data-content="avatar"][data-single="false"]:not(
806
910
  :has(
807
- > :is(button, wa-button):nth-child(
911
+ > :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
808
912
  1 of :where(:not([data-toolbar-visibility-state]))
809
913
  ):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
810
914
  )
811
915
  )
812
- > wa-button[aria-pressed="true"]::part(base) {
916
+ > wa-button:not(:where(.kui-icon-button))[aria-pressed="true"]::part(base) {
813
917
  color: transparent;
814
918
  background-image: var(--kui-toolbar-avatar-image);
815
919
  background-origin: border-box;
@@ -49,6 +49,29 @@ button.kui-toolbar-text:focus-visible {
49
49
  padding-block: max(0px, calc((var(--_kui-toolbar-band) - 1.25em) / 2));
50
50
  }
51
51
 
52
+ /* A title with supporting copy stacks the two lines and centers them together
53
+ in the control band (growing past it only when they do not fit), so
54
+ trailing groups stay on the band and both lines start at the same edge. */
55
+ .kui-toolbar-text[data-has-description="true"] {
56
+ height: auto;
57
+ flex-direction: column;
58
+ align-items: stretch;
59
+ justify-content: center;
60
+ gap: 0.125rem;
61
+ }
62
+
63
+ .kui-toolbar-text__description {
64
+ min-width: 0;
65
+ overflow: hidden;
66
+ color: var(--kui-color-text-quiet);
67
+ font-size: var(--kui-font-xs);
68
+ font-weight: 400;
69
+ letter-spacing: normal;
70
+ line-height: 1.2;
71
+ text-overflow: ellipsis;
72
+ white-space: nowrap;
73
+ }
74
+
52
75
  /* A filling title grows into its row's free space and truncates there. */
53
76
  .kui-toolbar-text[data-fill="true"] {
54
77
  flex: 1 1 auto;
@@ -34,18 +34,13 @@
34
34
  /* The minimum height grows by any claimed block inset, so a toolbar a flex
35
35
  column shrinks still keeps a whole control row clear of the unsafe area. */
36
36
  min-height: calc(
37
- var(--kui-toolbar-group-size, calc(2px + 2.625rem)) +
38
- (2 * var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem))) +
37
+ var(--_kui-toolbar-band) + (2 * var(--_kui-toolbar-block-inset)) +
39
38
  var(--_kui-toolbar-safe-block-start) + var(--_kui-toolbar-safe-block-end)
40
39
  );
41
40
  padding-block: calc(
42
- var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
43
- var(--_kui-toolbar-safe-block-start)
41
+ var(--_kui-toolbar-block-inset) + var(--_kui-toolbar-safe-block-start)
44
42
  )
45
- calc(
46
- var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
47
- var(--_kui-toolbar-safe-block-end)
48
- );
43
+ calc(var(--_kui-toolbar-block-inset) + var(--_kui-toolbar-safe-block-end));
49
44
  padding-inline: calc(
50
45
  var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
51
46
  var(--_kui-toolbar-safe-inline-start)
@@ -157,6 +152,18 @@
157
152
  `--_kui-toolbar-band` is context those components use for that placement. */
158
153
  .kui-toolbar {
159
154
  --_kui-toolbar-band: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
155
+ --_kui-toolbar-block-inset: var(
156
+ --kui-toolbar-inset,
157
+ var(--kui-toolbar-gap, 0.5rem)
158
+ );
159
+ }
160
+
161
+ /* Compact density: a 34px band (the compact ToolbarControlGroup's size) with
162
+ 3px block insets makes a 40px header for an embedded panel or card. The
163
+ inline insets and zone gap keep the standard 8px. */
164
+ .kui-toolbar[data-density="compact"] {
165
+ --_kui-toolbar-band: 2.125rem;
166
+ --_kui-toolbar-block-inset: var(--kui-toolbar-inset, 0.1875rem);
160
167
  }
161
168
 
162
169
  .kui-toolbar__leading,
@@ -230,7 +237,7 @@
230
237
  flex-wrap: wrap;
231
238
  }
232
239
 
233
- .kui-toolbar__trailing > wa-button {
240
+ .kui-toolbar__trailing > wa-button:not(:where(.kui-icon-button)) {
234
241
  margin-block-start: max(
235
242
  0px,
236
243
  calc((var(--_kui-toolbar-band) - var(--wa-form-control-height)) / 2)
@@ -105,3 +105,79 @@
105
105
  font-weight: var(--kui-font-weight-semibold);
106
106
  text-align: end;
107
107
  }
108
+
109
+ /* `labelWidth`: a minimum label column; the value takes the rest of the row
110
+ (never wider than the row, so a narrow table still fits). */
111
+ .kui-value-table[data-label-width] .kui-value-table__row {
112
+ grid-template-columns: var(
113
+ --kui-value-table-row-columns,
114
+ minmax(min(var(--_kui-value-table-label-min), 100%), auto) minmax(0, 1fr)
115
+ );
116
+ }
117
+
118
+ /* Only a table that stacks below a width becomes a size container. Size
119
+ containment drops its content-based width, so it fills its container's
120
+ width (inside its own inline margins) instead; a table without
121
+ `stackBelow` keeps sizing to content in shrink-to-fit contexts. */
122
+ .kui-value-table[data-stack-below] {
123
+ box-sizing: border-box;
124
+ width: calc(100% - 2 * var(--kui-layout-inline-margin, 0.5rem));
125
+ container: kui-value-table / inline-size;
126
+ }
127
+
128
+ /* Stacked rows: each value sits under its label and starts at the label's
129
+ text edge (after a leading icon). */
130
+ .kui-value-table[data-presentation="stacked"] .kui-value-table__row {
131
+ grid-template-columns: minmax(0, 1fr);
132
+ row-gap: var(--kui-space-2xs);
133
+ }
134
+ .kui-value-table[data-presentation="stacked"] .kui-value-table__row dd {
135
+ justify-content: flex-start;
136
+ text-align: start;
137
+ }
138
+ .kui-value-table[data-presentation="stacked"]
139
+ .kui-value-table__row[data-has-icon="true"]
140
+ dd {
141
+ padding-inline-start: calc(
142
+ var(--_kui-value-table-separator-start) -
143
+ var(--_kui-value-table-inline-padding)
144
+ );
145
+ }
146
+
147
+ @container kui-value-table (max-width: 36rem) {
148
+ .kui-value-table[data-stack-below="narrow"] .kui-value-table__row {
149
+ grid-template-columns: minmax(0, 1fr);
150
+ row-gap: var(--kui-space-2xs);
151
+ }
152
+ .kui-value-table[data-stack-below="narrow"] .kui-value-table__row dd {
153
+ justify-content: flex-start;
154
+ text-align: start;
155
+ }
156
+ .kui-value-table[data-stack-below="narrow"]
157
+ .kui-value-table__row[data-has-icon="true"]
158
+ dd {
159
+ padding-inline-start: calc(
160
+ var(--_kui-value-table-separator-start) -
161
+ var(--_kui-value-table-inline-padding)
162
+ );
163
+ }
164
+ }
165
+
166
+ @container kui-value-table (max-width: 32rem) {
167
+ .kui-value-table[data-stack-below="compact"] .kui-value-table__row {
168
+ grid-template-columns: minmax(0, 1fr);
169
+ row-gap: var(--kui-space-2xs);
170
+ }
171
+ .kui-value-table[data-stack-below="compact"] .kui-value-table__row dd {
172
+ justify-content: flex-start;
173
+ text-align: start;
174
+ }
175
+ .kui-value-table[data-stack-below="compact"]
176
+ .kui-value-table__row[data-has-icon="true"]
177
+ dd {
178
+ padding-inline-start: calc(
179
+ var(--_kui-value-table-separator-start) -
180
+ var(--_kui-value-table-inline-padding)
181
+ );
182
+ }
183
+ }
@@ -370,9 +370,9 @@
370
370
  inside the exported `details` part, while Accordion and Card paint their
371
371
  host directly. */
372
372
  :is(wa-accordion, wa-card)[appearance="sunken"] {
373
- background-color: var(
373
+ background: var(
374
374
  --kui-wa-sunken-background,
375
- var(--kui-color-surface-lowered, var(--wa-color-surface-lowered))
375
+ var(--kui-sunken-surface, var(--wa-color-surface-lowered))
376
376
  );
377
377
  border-color: transparent;
378
378
  border-radius: var(
@@ -383,9 +383,9 @@
383
383
  }
384
384
 
385
385
  wa-details[appearance="sunken"]::part(details) {
386
- background-color: var(
386
+ background: var(
387
387
  --kui-wa-sunken-background,
388
- var(--kui-color-surface-lowered, var(--wa-color-surface-lowered))
388
+ var(--kui-sunken-surface, var(--wa-color-surface-lowered))
389
389
  );
390
390
  border-color: transparent;
391
391
  border-radius: var(
@@ -135,10 +135,7 @@
135
135
  separator handle remains fixed. Paint only that owner. */
136
136
  .kui-workbench__main[data-appearance="sunken"],
137
137
  :is(.kui-workbench__rail, .kui-workbench__drawer)[data-appearance="sunken"] {
138
- background: var(
139
- --kui-sunken-panel-background,
140
- var(--kui-color-surface-lowered)
141
- );
138
+ background: var(--kui-sunken-panel-background, var(--kui-sunken-surface));
142
139
  }
143
140
 
144
141
  :is(
@@ -153,10 +150,7 @@
153
150
  .kui-workbench__drawer
154
151
  )[data-appearance="sunken"][data-resizable="true"][data-content-overflow="auto"]
155
152
  > .kui-workbench__panel-content {
156
- background: var(
157
- --kui-sunken-panel-background,
158
- var(--kui-color-surface-lowered)
159
- );
153
+ background: var(--kui-sunken-panel-background, var(--kui-sunken-surface));
160
154
  }
161
155
 
162
156
  .kui-workbench__main[data-drawer-inline-expanded="true"] {