@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
@@ -0,0 +1,81 @@
1
+ /* The native file input stays inside each label for activation, keyboard
2
+ focus, and form submission, visually hidden but accessible. */
3
+ .kui-file-picker__input {
4
+ position: absolute;
5
+ width: 1px;
6
+ height: 1px;
7
+ overflow: hidden;
8
+ clip-path: inset(50%);
9
+ white-space: nowrap;
10
+ }
11
+
12
+ .kui-file-picker__icon {
13
+ display: inline-grid;
14
+ flex: none;
15
+ place-items: center;
16
+ }
17
+
18
+ /* A compact, link-toned browse trigger. */
19
+ .kui-file-picker[data-presentation="trigger"] {
20
+ position: relative;
21
+ display: inline-flex;
22
+ min-height: 2rem;
23
+ padding: 0 var(--kui-space-xs);
24
+ border-radius: var(--kui-radius-pill);
25
+ color: var(--kui-color-text-link);
26
+ cursor: pointer;
27
+ align-items: center;
28
+ gap: var(--kui-space-2xs);
29
+ font-size: var(--kui-font-xs);
30
+ font-weight: var(--kui-font-weight-semibold);
31
+ }
32
+
33
+ .kui-file-picker[data-presentation="trigger"]:hover {
34
+ background: var(--kui-color-brand-fill-quiet);
35
+ }
36
+
37
+ /* A dashed drop target with content-item margins, highlighted on hover and
38
+ while files are dragged over it. */
39
+ .kui-file-picker[data-presentation="drop-zone"] {
40
+ position: relative;
41
+ display: grid;
42
+ min-height: 5rem;
43
+ margin-inline: var(--kui-layout-inline-margin, 0.5rem);
44
+ padding: var(--kui-space-s);
45
+ box-sizing: border-box;
46
+ border: 1px dashed var(--kui-color-neutral-border-loud);
47
+ border-radius: var(--kui-layout-rounded-radius, calc(1px + 0.6875rem));
48
+ color: var(--kui-color-neutral-on-quiet);
49
+ cursor: pointer;
50
+ place-items: center;
51
+ align-content: center;
52
+ gap: var(--kui-space-2xs);
53
+ font-size: var(--kui-font-xs);
54
+ text-align: center;
55
+ }
56
+
57
+ .kui-file-picker[data-presentation="drop-zone"]:hover,
58
+ .kui-file-picker[data-presentation="drop-zone"][data-dragging="true"] {
59
+ border-color: var(--kui-color-text-link);
60
+ background: var(--kui-color-brand-fill-quiet);
61
+ }
62
+
63
+ .kui-file-picker__title {
64
+ color: var(--kui-color-text);
65
+ }
66
+
67
+ .kui-file-picker__detail {
68
+ font-size: var(--kui-font-2xs);
69
+ }
70
+
71
+ /* Keyboard focus lands on the hidden input; the visible control shows it. */
72
+ .kui-file-picker:has(> .kui-file-picker__input:focus-visible) {
73
+ outline: var(--kui-focus-ring);
74
+ outline-offset: 2px;
75
+ }
76
+
77
+ .kui-file-picker[data-disabled="true"] {
78
+ cursor: default;
79
+ opacity: 0.5;
80
+ pointer-events: none;
81
+ }
@@ -131,6 +131,14 @@
131
131
  rgb(228.157895 228.157895 255 / 0.07451)
132
132
  )
133
133
  );
134
+ /* The sunken surface: a fine monochrome grain over the lowered color. The
135
+ tile is generated once per page by the first sunken surface that renders
136
+ (ensureSunkenTexture); set --kui-sunken-texture to none at :root for a
137
+ flat lowered surface, or to another image. */
138
+ --kui-sunken-texture: var(--_kui-sunken-texture-generated, none);
139
+ --kui-sunken-surface:
140
+ var(--kui-sunken-texture) 0 0 / 100px 100px repeat,
141
+ var(--kui-color-surface-lowered);
134
142
  --kui-color-text: var(--wa-color-text-normal, light-dark(#1d1d1f, #f5f5f7));
135
143
  --kui-color-text-quiet: var(
136
144
  --wa-color-text-quiet,
@@ -0,0 +1,47 @@
1
+ /* The same frame as ValueTable: content-item margin, a real 1px border, the
2
+ rounded radius, and a lowered (or base) fill. Rows clip to its corners. */
3
+ .kui-framed-list {
4
+ --kui-framed-list-border: var(--kui-color-neutral-border-normal);
5
+ display: flex;
6
+ flex-direction: column;
7
+ margin-block: 0;
8
+ margin-inline: var(--kui-layout-inline-margin, 0.5rem);
9
+ padding: 0;
10
+ overflow: hidden;
11
+ border: 1px solid var(--kui-framed-list-border);
12
+ border-radius: var(--kui-layout-rounded-radius, calc(1px + 0.6875rem));
13
+ background: var(--kui-color-surface-lowered);
14
+ list-style: none;
15
+ }
16
+
17
+ .kui-framed-list[data-surface="base"] {
18
+ background: var(--kui-color-surface);
19
+ }
20
+
21
+ /* Each row owns the content inset and the 1px divider above it, inset to the
22
+ row's padding like ValueTable's separators. Its margin is reset because a
23
+ document or Web Awesome native stylesheet indents list items. */
24
+ .kui-framed-list__row {
25
+ --_kui-framed-list-row-padding: var(--kui-layout-item-padding, 0.5rem);
26
+ position: relative;
27
+ display: grid;
28
+ min-width: 0;
29
+ margin: 0;
30
+ min-height: 2.75rem;
31
+ padding: var(--_kui-framed-list-row-padding);
32
+ box-sizing: border-box;
33
+ align-items: center;
34
+ }
35
+
36
+ .kui-framed-list__row + .kui-framed-list__row::before {
37
+ position: absolute;
38
+ top: 0;
39
+ right: var(--_kui-framed-list-row-padding);
40
+ left: var(--_kui-framed-list-row-padding);
41
+ border-top: 1px solid var(--kui-framed-list-border);
42
+ content: "";
43
+ }
44
+
45
+ .kui-framed-list__row[data-highlighted="true"] {
46
+ background: var(--kui-color-brand-fill-quiet);
47
+ }
@@ -0,0 +1,22 @@
1
+ /* Web Awesome's own icon-button geometry, for a lone LucideIcon: a square one
2
+ form control height on each side with the glyph centered. Web Awesome
3
+ applies it only to a lone wa-icon. */
4
+ .kui-icon-button::part(base) {
5
+ width: var(--wa-form-control-height);
6
+ min-width: var(--wa-form-control-height);
7
+ padding: 0;
8
+ aspect-ratio: 1;
9
+ justify-content: center;
10
+ }
11
+
12
+ .kui-icon-button::part(label) {
13
+ display: flex;
14
+ justify-content: center;
15
+ }
16
+
17
+ /* Beside a field in a ListInsetControl, the square keeps its size instead of
18
+ growing to share the row, and lines up with the field below its label. */
19
+ .kui-list-inset-control > .kui-icon-button {
20
+ flex: none;
21
+ align-self: flex-end;
22
+ }
@@ -0,0 +1,83 @@
1
+ /* The single contained ToolbarControlGroup's geometry, standalone: a 44px
2
+ filled, bordered control whose 2px-inset face lifts to the raised surface
3
+ on hover and stays raised, in the brand foreground, while pressed. */
4
+ .kui-icon-toggle-button {
5
+ --_kui-icon-toggle-button-radius: var(
6
+ --kui-layout-pill-radius,
7
+ calc(1px + 1.3125rem)
8
+ );
9
+ --_kui-icon-toggle-button-inset: var(
10
+ --kui-layout-highlight-inset,
11
+ 0.125rem
12
+ );
13
+ /* One full-size track for the face. The button sets its own track and
14
+ alignment because native or document button styles center content,
15
+ which would shrink the face to the icon. */
16
+ display: inline-grid;
17
+ grid-template: minmax(0, 1fr) / minmax(0, 1fr);
18
+ place-content: stretch;
19
+ place-items: stretch;
20
+ width: 2.75rem;
21
+ height: 2.75rem;
22
+ margin: 0;
23
+ padding: var(--_kui-icon-toggle-button-inset);
24
+ box-sizing: border-box;
25
+ border: 1px solid var(--kui-color-neutral-border-normal);
26
+ border-radius: var(--_kui-icon-toggle-button-radius);
27
+ color: var(--kui-color-neutral-on-quiet);
28
+ background: var(--kui-color-neutral-fill-normal);
29
+ cursor: pointer;
30
+ flex: none;
31
+ font: inherit;
32
+ }
33
+
34
+ .kui-icon-toggle-button[data-shape="rounded"] {
35
+ --_kui-icon-toggle-button-radius: var(
36
+ --kui-layout-rounded-radius,
37
+ calc(1px + 0.6875rem)
38
+ );
39
+ }
40
+
41
+ .kui-icon-toggle-button__face {
42
+ display: grid;
43
+ border-radius: max(
44
+ 0px,
45
+ calc(
46
+ var(--_kui-icon-toggle-button-radius) -
47
+ var(--_kui-icon-toggle-button-inset) - 1px
48
+ )
49
+ );
50
+ place-items: center;
51
+ transition:
52
+ background-color 120ms ease,
53
+ box-shadow 120ms ease;
54
+ }
55
+
56
+ .kui-icon-toggle-button:hover:not(:disabled) > .kui-icon-toggle-button__face {
57
+ background: var(--kui-color-surface);
58
+ }
59
+
60
+ .kui-icon-toggle-button[aria-pressed="true"] {
61
+ color: var(--kui-color-brand-on-quiet);
62
+ }
63
+
64
+ .kui-icon-toggle-button[aria-pressed="true"] > .kui-icon-toggle-button__face {
65
+ background: var(--kui-color-surface);
66
+ box-shadow: var(--kui-shadow-s);
67
+ }
68
+
69
+ .kui-icon-toggle-button:focus-visible {
70
+ outline: var(--kui-focus-ring);
71
+ outline-offset: 1px;
72
+ }
73
+
74
+ .kui-icon-toggle-button:disabled {
75
+ cursor: default;
76
+ opacity: 0.5;
77
+ }
78
+
79
+ @media (prefers-reduced-motion: reduce) {
80
+ .kui-icon-toggle-button__face {
81
+ transition: none;
82
+ }
83
+ }
@@ -46,6 +46,20 @@
46
46
  border-end-end-radius: 0;
47
47
  }
48
48
 
49
+ /* In a divided list, a corner is flat wherever its edge carries a divider
50
+ line, whichever row draws it (see ListItem). */
51
+ :is([data-divider="after"], [data-divider="both"]) + .kui-list-action-row {
52
+ border-start-start-radius: 0;
53
+ border-start-end-radius: 0;
54
+ }
55
+
56
+ .kui-list-action-row:has(
57
+ + :is([data-divider="before"], [data-divider="both"])
58
+ ) {
59
+ border-end-start-radius: 0;
60
+ border-end-end-radius: 0;
61
+ }
62
+
49
63
  .kui-list-action-row:not([data-placeholder="true"]):has(
50
64
  .kui-list-action-row__primary:hover
51
65
  ) {
@@ -68,6 +82,40 @@
68
82
  outline-offset: 1px;
69
83
  }
70
84
 
85
+ /* Reorder presentation. A dragged row dims; the row under the pointer draws
86
+ a brand insertion line along the block edge the dragged rows would land
87
+ beside, inset to the row's content padding so it ends clear of the
88
+ rounded corners. */
89
+ .kui-list-action-row[data-dragging="true"] {
90
+ opacity: var(--kui-list-action-row-dragging-opacity, 0.55);
91
+ }
92
+
93
+ .kui-list-action-row[data-drop-position] {
94
+ position: relative;
95
+ }
96
+
97
+ .kui-list-action-row[data-drop-position]::after {
98
+ position: absolute;
99
+ z-index: 1;
100
+ inset-inline: var(--kui-layout-item-padding, 0.5rem);
101
+ height: var(--kui-list-action-row-drop-indicator-width, 2px);
102
+ border-radius: var(--kui-radius-pill);
103
+ background: var(
104
+ --kui-list-action-row-drop-indicator,
105
+ var(--kui-color-brand-border-loud)
106
+ );
107
+ content: "";
108
+ pointer-events: none;
109
+ }
110
+
111
+ .kui-list-action-row[data-drop-position="before"]::after {
112
+ inset-block-start: 0;
113
+ }
114
+
115
+ .kui-list-action-row[data-drop-position="after"]::after {
116
+ inset-block-end: 0;
117
+ }
118
+
71
119
  .kui-list-action-row__primary,
72
120
  .kui-list-action-row__trailing-action {
73
121
  height: auto !important;
@@ -244,6 +292,11 @@
244
292
  }
245
293
 
246
294
  @media (forced-colors: active) {
295
+ .kui-list-action-row[data-drop-position]::after {
296
+ background: Highlight;
297
+ forced-color-adjust: none;
298
+ }
299
+
247
300
  .kui-list-action-row {
248
301
  --kui-list-action-row-border: ButtonText;
249
302
  outline: 1px solid ButtonText;
@@ -68,6 +68,20 @@
68
68
  border-end-end-radius: 0;
69
69
  }
70
70
 
71
+ /* In a divided list, a corner is flat wherever its edge carries a divider
72
+ line, whichever row draws it: the previous row's after line squares this
73
+ row's top, and the next row's before line squares its bottom. So first,
74
+ middle, last, and only rows round just their outer corners. */
75
+ :is([data-divider="after"], [data-divider="both"]) + .kui-list-item {
76
+ border-start-start-radius: 0;
77
+ border-start-end-radius: 0;
78
+ }
79
+
80
+ .kui-list-item:has(+ :is([data-divider="before"], [data-divider="both"])) {
81
+ border-end-start-radius: 0;
82
+ border-end-end-radius: 0;
83
+ }
84
+
71
85
  .kui-list-item[data-has-icon="true"] {
72
86
  grid-template-columns: var(
73
87
  --kui-list-item-columns,
@@ -243,6 +257,51 @@
243
257
  );
244
258
  }
245
259
 
260
+ /* Reorder presentation. A dragged row dims; the row under the pointer draws
261
+ a brand insertion line along the block edge the dragged rows would land
262
+ beside. The line sits inside the row (the row clips its overflow to its
263
+ rounded boundary) and is inset to the row's content padding so it ends
264
+ clear of the rounded corners. */
265
+ .kui-list-item[data-dragging="true"] {
266
+ opacity: var(--kui-list-item-dragging-opacity, 0.55);
267
+ }
268
+
269
+ .kui-list-item[data-drop-position] {
270
+ position: relative;
271
+ }
272
+
273
+ .kui-list-item[data-drop-position]::after {
274
+ position: absolute;
275
+ z-index: 1;
276
+ inset-inline: var(
277
+ --kui-list-item-padding-inline,
278
+ var(--kui-layout-item-padding, 0.5rem)
279
+ );
280
+ height: var(--kui-list-item-drop-indicator-width, 2px);
281
+ border-radius: var(--kui-radius-pill);
282
+ background: var(
283
+ --kui-list-item-drop-indicator,
284
+ var(--kui-color-brand-border-loud)
285
+ );
286
+ content: "";
287
+ pointer-events: none;
288
+ }
289
+
290
+ .kui-list-item[data-drop-position="before"]::after {
291
+ inset-block-start: 0;
292
+ }
293
+
294
+ .kui-list-item[data-drop-position="after"]::after {
295
+ inset-block-end: 0;
296
+ }
297
+
298
+ @media (forced-colors: active) {
299
+ .kui-list-item[data-drop-position]::after {
300
+ background: Highlight;
301
+ forced-color-adjust: none;
302
+ }
303
+ }
304
+
246
305
  .kui-list-item__status {
247
306
  color: var(--kui-color-neutral-on-quiet);
248
307
  font-size: var(--kui-font-xs);
@@ -81,6 +81,22 @@
81
81
  );
82
82
  }
83
83
 
84
+ /* `inset="document"`: a reading inset on all four sides that replaces any
85
+ side-selected text or control inset. */
86
+ .kui-list[data-inset="document"] {
87
+ --_kui-list-inset-top: var(--kui-space-l);
88
+ --_kui-list-inset-right: var(--kui-space-xl);
89
+ --_kui-list-inset-bottom: var(--kui-space-l);
90
+ --_kui-list-inset-left: var(--kui-space-xl);
91
+ }
92
+
93
+ @media (max-width: 36rem) {
94
+ .kui-list[data-inset="document"] {
95
+ --_kui-list-inset-right: var(--kui-space-m);
96
+ --_kui-list-inset-left: var(--kui-space-m);
97
+ }
98
+ }
99
+
84
100
  .kui-list[data-h-align="left"] {
85
101
  align-items: flex-start;
86
102
  align-content: flex-start;
@@ -113,6 +129,25 @@
113
129
  overscroll-behavior-y: contain;
114
130
  }
115
131
 
132
+ /* A scrollable List owns the overflow, so its rows keep their natural height
133
+ and scroll rather than shrink. Items that clip their own overflow (a
134
+ ListItem) have a zero automatic minimum height, so the default
135
+ `flex-shrink: 1` compressed multiline rows into one another once the List
136
+ was bounded by a max-height ancestor. */
137
+ .kui-list[data-scrollable="true"] > * {
138
+ flex-shrink: 0;
139
+ }
140
+
141
+ /* A scrollable List is a keyboard-focusable scroller: Chromium focuses it on
142
+ Tab when it holds no focusable rows, and a dialog may pick it as its first
143
+ focusable area. Its ring sits inside its box, so a rounded or clipping
144
+ parent cannot cut it off, and rounds with the standard control radius. */
145
+ .kui-list[data-scrollable="true"]:focus-visible {
146
+ border-radius: var(--kui-radius-m);
147
+ outline: var(--kui-focus-ring);
148
+ outline-offset: -3px;
149
+ }
150
+
116
151
  .kui-list:is([divider-sides*="t"], [data-scroll-divider*="t"]) {
117
152
  --_kui-list-divider-top: var(--kui-list-divider-color);
118
153
  }
@@ -129,6 +164,15 @@
129
164
  --_kui-list-divider-left: var(--kui-list-divider-color);
130
165
  }
131
166
 
167
+ /* `surface`: a solid background behind the stack and its insets. */
168
+ .kui-list[data-surface="base"] {
169
+ background: var(--kui-color-surface);
170
+ }
171
+
172
+ .kui-list[data-surface="raised"] {
173
+ background: var(--kui-color-surface-raised);
174
+ }
175
+
132
176
  /* `fill`: the layout root of a definite-height parent (an app root or a
133
177
  fixed-height frame) takes its full height. Inside a flex layout use `flex`. */
134
178
  .kui-list[data-fill="true"] {
@@ -44,17 +44,11 @@
44
44
  Fixed chrome leaves the content slot scrolling; auto chrome lets the Pane
45
45
  root scroll in its short mode, while its content remains transparent. */
46
46
  .kui-pane[data-appearance="sunken"] > .kui-pane__content {
47
- background: var(
48
- --kui-sunken-panel-background,
49
- var(--kui-color-surface-lowered)
50
- );
47
+ background: var(--kui-sunken-panel-background, var(--kui-sunken-surface));
51
48
  }
52
49
 
53
50
  .kui-pane[data-appearance="sunken"][data-chrome-placement="auto"] {
54
- background: var(
55
- --kui-sunken-panel-background,
56
- var(--kui-color-surface-lowered)
57
- );
51
+ background: var(--kui-sunken-panel-background, var(--kui-sunken-surface));
58
52
  }
59
53
 
60
54
  .kui-pane[data-appearance="sunken"][data-chrome-placement="auto"]
@@ -104,8 +104,14 @@
104
104
  height: var(--_kui-popup-row-icon-size);
105
105
  }
106
106
 
107
+ /* A context menu takes no space where it is rendered: out of flow, it adds no
108
+ line box in block layout and no gap slot in a flex or grid container. Its
109
+ fixed anchor opens the menu at the recorded viewport point. */
107
110
  .kui-popup-menu[data-trigger="context"] {
108
- display: inline-block;
111
+ position: fixed;
112
+ top: 0;
113
+ left: 0;
114
+ display: block;
109
115
  width: 0;
110
116
  height: 0;
111
117
  }
@@ -283,3 +289,65 @@
283
289
  > wa-dropdown.kui-popup-menu::part(menu) {
284
290
  padding: 0;
285
291
  }
292
+
293
+ /* As a ListActionRow's trailing menu, the PopupMenu styles its trigger in the
294
+ row's context like the row's trailing button: a full-height 44px pill (36px
295
+ in a compact row) on the row's trailing-hover fill, with a 16px icon. */
296
+ .kui-list-action-row > .kui-popup-menu {
297
+ display: flex;
298
+ flex: none;
299
+ }
300
+ .kui-list-action-row > .kui-popup-menu > wa-button {
301
+ display: flex;
302
+ min-height: 2.75rem;
303
+ color: inherit;
304
+ }
305
+ .kui-list-action-row[data-density="compact"] > .kui-popup-menu > wa-button {
306
+ min-height: 2.25rem;
307
+ }
308
+ .kui-list-action-row > .kui-popup-menu > wa-button::part(base) {
309
+ width: 2.75rem;
310
+ min-width: 2.75rem;
311
+ height: 100%;
312
+ min-height: 0;
313
+ padding: 0;
314
+ border: 0;
315
+ border-radius: var(--kui-radius-pill);
316
+ color: inherit;
317
+ background: transparent;
318
+ }
319
+ .kui-list-action-row
320
+ > .kui-popup-menu
321
+ > wa-button:not([disabled]):hover::part(base) {
322
+ background: var(--kui-list-action-row-trailing-hover-background);
323
+ }
324
+ .kui-list-action-row > .kui-popup-menu > wa-button::part(base):focus-visible {
325
+ outline: var(--kui-focus-ring);
326
+ outline-offset: -2px;
327
+ }
328
+ .kui-list-action-row > .kui-popup-menu > wa-button > svg {
329
+ display: block;
330
+ width: 1rem;
331
+ height: 1rem;
332
+ }
333
+ /* The row's interaction visibility reveals the trigger on hover or focus, and
334
+ keeps it visible while its menu is open. A placeholder row reveals nothing. */
335
+ .kui-list-action-row[data-trailing-visibility="interaction"]
336
+ > .kui-popup-menu:not([open])
337
+ > wa-button {
338
+ opacity: 0;
339
+ }
340
+ .kui-list-action-row[data-trailing-visibility="interaction"]:not(
341
+ [data-placeholder="true"]
342
+ ):is(:hover, :focus-within)
343
+ > .kui-popup-menu
344
+ > wa-button {
345
+ opacity: 1;
346
+ }
347
+ @media (hover: none) {
348
+ .kui-list-action-row[data-trailing-visibility="interaction"]
349
+ > .kui-popup-menu
350
+ > wa-button {
351
+ opacity: 1;
352
+ }
353
+ }
@@ -0,0 +1,95 @@
1
+ /* One loud semantic fill split into a primary half and a narrow options
2
+ trigger, with a hairline divider in the foreground color. Both halves are
3
+ native buttons on the shared fill; each brightens on its own hover. */
4
+ .kui-split-button {
5
+ --_kui-split-button-fill: var(--kui-color-brand-fill-loud);
6
+ --_kui-split-button-on: var(--kui-color-brand-on-loud);
7
+ display: inline-grid;
8
+ min-width: 0;
9
+ min-height: 2.75rem;
10
+ overflow: hidden;
11
+ border-radius: var(--kui-layout-rounded-radius, calc(1px + 0.6875rem));
12
+ color: var(--_kui-split-button-on);
13
+ background: var(--_kui-split-button-fill);
14
+ grid-template-columns: minmax(0, auto) 2.5rem;
15
+ font-weight: var(--kui-font-weight-semibold);
16
+ }
17
+
18
+ .kui-split-button[data-tone="neutral"] {
19
+ --_kui-split-button-fill: var(--kui-color-neutral-fill-loud);
20
+ --_kui-split-button-on: var(--kui-color-neutral-on-loud);
21
+ }
22
+
23
+ .kui-split-button[data-tone="success"] {
24
+ --_kui-split-button-fill: var(--kui-color-success-fill-loud);
25
+ --_kui-split-button-on: var(--kui-color-success-on-loud);
26
+ }
27
+
28
+ .kui-split-button[data-tone="warning"] {
29
+ --_kui-split-button-fill: var(--kui-color-warning-fill-loud);
30
+ --_kui-split-button-on: var(--kui-color-warning-on-loud);
31
+ }
32
+
33
+ .kui-split-button[data-tone="danger"] {
34
+ --_kui-split-button-fill: var(--kui-color-danger-fill-loud);
35
+ --_kui-split-button-on: var(--kui-color-danger-on-loud);
36
+ }
37
+
38
+ .kui-split-button[data-fill="true"] {
39
+ display: grid;
40
+ width: 100%;
41
+ grid-template-columns: minmax(0, 1fr) 2.5rem;
42
+ }
43
+
44
+ .kui-split-button > button {
45
+ display: flex;
46
+ min-width: 0;
47
+ min-height: 2.75rem;
48
+ margin: 0;
49
+ padding-block: var(--kui-space-xs);
50
+ padding-inline: var(--kui-space-s);
51
+ border: 0;
52
+ border-radius: 0;
53
+ color: inherit;
54
+ background: transparent;
55
+ cursor: pointer;
56
+ align-items: center;
57
+ justify-content: center;
58
+ gap: var(--kui-space-xs);
59
+ font: inherit;
60
+ }
61
+
62
+ .kui-split-button > .kui-split-button__options {
63
+ padding-inline: 0;
64
+ border-inline-start: 1px solid
65
+ color-mix(in srgb, currentColor 28%, transparent);
66
+ }
67
+
68
+ .kui-split-button > button:hover:not(:disabled) {
69
+ background: color-mix(in srgb, currentColor 12%, transparent);
70
+ }
71
+
72
+ /* The group clips outer outlines at its rounded corners, so the ring sits
73
+ inside each half. */
74
+ .kui-split-button > button:focus-visible {
75
+ outline: var(--kui-focus-ring);
76
+ outline-offset: -3px;
77
+ }
78
+
79
+ .kui-split-button > button:disabled {
80
+ cursor: not-allowed;
81
+ opacity: 0.6;
82
+ }
83
+
84
+ .kui-split-button__icon {
85
+ display: inline-grid;
86
+ flex: none;
87
+ place-items: center;
88
+ }
89
+
90
+ .kui-split-button__label {
91
+ min-width: 0;
92
+ overflow: hidden;
93
+ text-overflow: ellipsis;
94
+ white-space: nowrap;
95
+ }