@kerfjs/ui 5.0.0-beta.74 → 5.0.0-beta.76

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 (408) hide show
  1. package/README.md +29 -1
  2. package/ai/component-catalog.json +54 -16
  3. package/ai/component-composition.json +18 -6
  4. package/ai/components/README.md +1 -1
  5. package/ai/components/badge.md +1 -1
  6. package/ai/components/chip.md +1 -1
  7. package/ai/components/content-item.md +8 -5
  8. package/ai/components/document-baseline.md +2 -2
  9. package/ai/components/grid.md +5 -3
  10. package/ai/components/list.md +3 -2
  11. package/ai/components/lucide-icon.md +20 -1
  12. package/ai/components/select.md +5 -4
  13. package/ai/public-api-signatures-v1.md +101 -61
  14. package/ai/skill.md +35 -4
  15. package/ai/webawesome-jsx-signatures-v1.md +1 -1
  16. package/analyzer/index.mjs +11 -1
  17. package/dist/app-tab.js +1 -1
  18. package/dist/badge.d.ts +5 -3
  19. package/dist/badge.js +1 -1
  20. package/dist/browser/catalog.js +7 -7
  21. package/dist/browser/collapsible-panel.js +3 -3
  22. package/dist/browser/list-header.js +1 -1
  23. package/dist/browser/nav-stack.js +1 -1
  24. package/dist/browser/select.js +1 -1
  25. package/dist/browser/split-view.js +1 -1
  26. package/dist/browser/workbench.js +4 -4
  27. package/dist/catalog-resources.d.ts +6 -6
  28. package/dist/catalog-resources.js +1 -1
  29. package/dist/catalog-resources.js.map +1 -1
  30. package/dist/catalog.d.ts +5 -5
  31. package/dist/catalog.js +13 -13
  32. package/dist/catalog.js.map +1 -1
  33. package/dist/chip.d.ts +3 -2
  34. package/dist/chip.js +1 -1
  35. package/dist/{chunk-I6FTU27I.js → chunk-3RE2JMZU.js} +7 -3
  36. package/dist/chunk-3RE2JMZU.js.map +1 -0
  37. package/dist/{chunk-V4WLBOVJ.js → chunk-5BZBIRQG.js} +4 -4
  38. package/dist/chunk-5BZBIRQG.js.map +1 -0
  39. package/dist/{chunk-VZOFZPSO.js → chunk-5D3WDMIK.js} +4 -4
  40. package/dist/chunk-5D3WDMIK.js.map +1 -0
  41. package/dist/{chunk-IJNYCPAU.js → chunk-5PAVAR4B.js} +3 -3
  42. package/dist/chunk-5PAVAR4B.js.map +1 -0
  43. package/dist/{chunk-2IGHGE3M.js → chunk-72LLWYP2.js} +6 -6
  44. package/dist/chunk-72LLWYP2.js.map +1 -0
  45. package/dist/{chunk-KZRR7NNV.js → chunk-75I3SNUJ.js} +2 -2
  46. package/dist/chunk-75I3SNUJ.js.map +1 -0
  47. package/dist/{chunk-K47P7QZC.js → chunk-7QQ3HE47.js} +2 -2
  48. package/dist/chunk-7QQ3HE47.js.map +1 -0
  49. package/dist/{chunk-33EOFAUN.js → chunk-7QWIJEK5.js} +9 -9
  50. package/dist/chunk-7QWIJEK5.js.map +1 -0
  51. package/dist/{chunk-5I7QGQVT.js → chunk-AN5IWMTM.js} +2 -2
  52. package/dist/chunk-AN5IWMTM.js.map +1 -0
  53. package/dist/{chunk-3BYFWTP3.js → chunk-AOAW55JN.js} +2 -2
  54. package/dist/chunk-AOAW55JN.js.map +1 -0
  55. package/dist/{chunk-RT5WKYX3.js → chunk-ARZ4RSQO.js} +5 -6
  56. package/dist/chunk-ARZ4RSQO.js.map +1 -0
  57. package/dist/{chunk-ZSJOLL3S.js → chunk-BJLXE56E.js} +6 -6
  58. package/dist/chunk-BJLXE56E.js.map +1 -0
  59. package/dist/{chunk-RGS4WX2M.js → chunk-BYHGRKC3.js} +2 -2
  60. package/dist/chunk-BYHGRKC3.js.map +1 -0
  61. package/dist/{chunk-ZLKZFKLW.js → chunk-CEJ5FK6G.js} +2 -2
  62. package/dist/chunk-CEJ5FK6G.js.map +1 -0
  63. package/dist/{chunk-SMZGAPCU.js → chunk-DQDTZE4W.js} +2 -2
  64. package/dist/chunk-DQDTZE4W.js.map +1 -0
  65. package/dist/{chunk-TT5ROTQK.js → chunk-EFDCALR3.js} +2 -2
  66. package/dist/chunk-EFDCALR3.js.map +1 -0
  67. package/dist/{chunk-RVERAFFY.js → chunk-G4VKQP7B.js} +2 -2
  68. package/dist/chunk-G4VKQP7B.js.map +1 -0
  69. package/dist/{chunk-BGD7EHUE.js → chunk-GO2CZX4M.js} +2 -2
  70. package/dist/chunk-GO2CZX4M.js.map +1 -0
  71. package/dist/{chunk-DPAUKNB6.js → chunk-GS2QD3N7.js} +3 -3
  72. package/dist/chunk-GS2QD3N7.js.map +1 -0
  73. package/dist/{chunk-SLWCCHNP.js → chunk-H45DAZBL.js} +2 -2
  74. package/dist/chunk-H45DAZBL.js.map +1 -0
  75. package/dist/{chunk-KFJSNWO4.js → chunk-H7ZJEI3H.js} +3 -3
  76. package/dist/chunk-H7ZJEI3H.js.map +1 -0
  77. package/dist/{chunk-7KHKLG5C.js → chunk-HFLGWMG3.js} +4 -4
  78. package/dist/chunk-HFLGWMG3.js.map +1 -0
  79. package/dist/{chunk-6LAQWWEX.js → chunk-HFQDSSED.js} +6 -6
  80. package/dist/chunk-HFQDSSED.js.map +1 -0
  81. package/dist/{chunk-2RMDP7HQ.js → chunk-HGSTMZZ6.js} +6 -6
  82. package/dist/chunk-HGSTMZZ6.js.map +1 -0
  83. package/dist/{chunk-WF75U3V4.js → chunk-HPREYDKV.js} +2 -2
  84. package/dist/chunk-HPREYDKV.js.map +1 -0
  85. package/dist/{chunk-G4S2QU6V.js → chunk-I4SDIMFA.js} +2 -2
  86. package/dist/chunk-I4SDIMFA.js.map +1 -0
  87. package/dist/{chunk-4SQK27MR.js → chunk-IM3GKYOG.js} +2 -2
  88. package/dist/chunk-IM3GKYOG.js.map +1 -0
  89. package/dist/{chunk-RU2EMR56.js → chunk-IVLTEBBT.js} +8 -8
  90. package/dist/chunk-IVLTEBBT.js.map +1 -0
  91. package/dist/{chunk-ALGYHYXP.js → chunk-J3AWE5I4.js} +2 -2
  92. package/dist/chunk-J3AWE5I4.js.map +1 -0
  93. package/dist/{chunk-OXO2QJWV.js → chunk-JOR5LGYE.js} +2 -2
  94. package/dist/chunk-JOR5LGYE.js.map +1 -0
  95. package/dist/{chunk-SRSJO5QE.js → chunk-LAZLBC2Q.js} +2 -2
  96. package/dist/chunk-LAZLBC2Q.js.map +1 -0
  97. package/dist/{chunk-2G2ZJQYK.js → chunk-LRAIS3YB.js} +9 -3
  98. package/dist/chunk-LRAIS3YB.js.map +1 -0
  99. package/dist/{chunk-AYUHMAI6.js → chunk-MXNIVEVL.js} +2 -2
  100. package/dist/chunk-MXNIVEVL.js.map +1 -0
  101. package/dist/{chunk-4NG4Y2Q6.js → chunk-NJZMR7HM.js} +2 -2
  102. package/dist/chunk-NJZMR7HM.js.map +1 -0
  103. package/dist/{chunk-DG6G5EPF.js → chunk-NMWDHZVM.js} +2 -2
  104. package/dist/chunk-NMWDHZVM.js.map +1 -0
  105. package/dist/{chunk-X5QSICJ3.js → chunk-NS2TBYM4.js} +2 -2
  106. package/dist/chunk-NS2TBYM4.js.map +1 -0
  107. package/dist/{chunk-W2AC6Q2A.js → chunk-NVRJ7C3W.js} +4 -4
  108. package/dist/chunk-NVRJ7C3W.js.map +1 -0
  109. package/dist/{chunk-BFPBS5Y4.js → chunk-O27D24CA.js} +2 -2
  110. package/dist/chunk-O27D24CA.js.map +1 -0
  111. package/dist/{chunk-WTSNV5RG.js → chunk-PQQQXJGV.js} +9 -3
  112. package/dist/chunk-PQQQXJGV.js.map +1 -0
  113. package/dist/{chunk-6DFDTWGG.js → chunk-QYXKMLHO.js} +2 -2
  114. package/dist/chunk-QYXKMLHO.js.map +1 -0
  115. package/dist/{chunk-I3Q7KKYM.js → chunk-S3ECMF23.js} +2 -2
  116. package/dist/chunk-S3ECMF23.js.map +1 -0
  117. package/dist/{chunk-PSHUSWQH.js → chunk-S4ZGTDSG.js} +2 -2
  118. package/dist/chunk-S4ZGTDSG.js.map +1 -0
  119. package/dist/{chunk-L67OYMGE.js → chunk-SJY7KC45.js} +5 -5
  120. package/dist/chunk-SJY7KC45.js.map +1 -0
  121. package/dist/{chunk-DB5ADJKF.js → chunk-VLPE6OPN.js} +2 -2
  122. package/dist/chunk-VLPE6OPN.js.map +1 -0
  123. package/dist/{chunk-NCSWXG7G.js → chunk-VLQUXZKA.js} +9 -3
  124. package/dist/chunk-VLQUXZKA.js.map +1 -0
  125. package/dist/{chunk-B2ZMR7NY.js → chunk-VR7MWD2X.js} +10 -4
  126. package/dist/chunk-VR7MWD2X.js.map +1 -0
  127. package/dist/{chunk-NN6GYOA2.js → chunk-XIZRXI7N.js} +2 -2
  128. package/dist/chunk-XIZRXI7N.js.map +1 -0
  129. package/dist/{chunk-TDN5EE3S.js → chunk-Y6KT7ZTR.js} +2 -2
  130. package/dist/chunk-Y6KT7ZTR.js.map +1 -0
  131. package/dist/{chunk-3DOHW3K4.js → chunk-YLJ6X3AC.js} +2 -2
  132. package/dist/chunk-YLJ6X3AC.js.map +1 -0
  133. package/dist/{chunk-YDGNU2OD.js → chunk-ZVYA6TLR.js} +5 -2
  134. package/dist/chunk-ZVYA6TLR.js.map +1 -0
  135. package/dist/collapsible-panel.d.ts +6 -6
  136. package/dist/collapsible-panel.js +3 -3
  137. package/dist/collapsible-panel.js.map +1 -1
  138. package/dist/content-item.d.ts +13 -2
  139. package/dist/content-item.js +1 -1
  140. package/dist/css-values.d.ts +6 -1
  141. package/dist/css-values.js +1 -1
  142. package/dist/device-class.js +1 -1
  143. package/dist/device-class.js.map +1 -1
  144. package/dist/disclosure-arrow.js +1 -1
  145. package/dist/empty-state.js +1 -1
  146. package/dist/floating-toolbar.d.ts +1 -1
  147. package/dist/floating-toolbar.js +1 -1
  148. package/dist/grid.d.ts +10 -3
  149. package/dist/grid.js +1 -1
  150. package/dist/help-tags-register.js +1 -1
  151. package/dist/help-tags-register.js.map +1 -1
  152. package/dist/index.d.ts +27 -26
  153. package/dist/index.js +40 -40
  154. package/dist/list-action-row.js +1 -1
  155. package/dist/list-header.js +1 -1
  156. package/dist/list-inset-control.js +1 -1
  157. package/dist/list-inset-text.js +1 -1
  158. package/dist/list-item.js +1 -1
  159. package/dist/list.d.ts +2 -2
  160. package/dist/list.js +1 -1
  161. package/dist/loading-spinner.d.ts +4 -1
  162. package/dist/loading-spinner.js +1 -1
  163. package/dist/lucide-icon.d.ts +6 -1
  164. package/dist/lucide-icon.js +1 -1
  165. package/dist/nav-stack.d.ts +1 -1
  166. package/dist/nav-stack.js +1 -1
  167. package/dist/pane.js +1 -1
  168. package/dist/popup-menu-register.js +7 -7
  169. package/dist/popup-menu-register.js.map +1 -1
  170. package/dist/popup-menu.js +1 -1
  171. package/dist/resizable-region.d.ts +1 -1
  172. package/dist/resizable-region.js +1 -1
  173. package/dist/row.d.ts +2 -2
  174. package/dist/row.js +1 -1
  175. package/dist/segmented-control.js +1 -1
  176. package/dist/select-register.js +6 -6
  177. package/dist/select-register.js.map +1 -1
  178. package/dist/select.d.ts +1 -1
  179. package/dist/select.js +1 -1
  180. package/dist/semantic-tone-CdW013KF.d.ts +4 -0
  181. package/dist/skeleton.js +1 -1
  182. package/dist/spacer.js +1 -1
  183. package/dist/split-view.d.ts +2 -2
  184. package/dist/split-view.js +2 -2
  185. package/dist/split-view.js.map +1 -1
  186. package/dist/state-banner.d.ts +5 -3
  187. package/dist/state-banner.js +1 -1
  188. package/dist/styles/badge.css +1 -1
  189. package/dist/styles/chip.css +1 -1
  190. package/dist/styles/components/actions/floating-toolbar/floating-toolbar.css +119 -0
  191. package/dist/styles/components/actions/popup-menu/popup-menu.css +285 -0
  192. package/dist/styles/components/actions/toolbar/toolbar.css +392 -0
  193. package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +790 -0
  194. package/dist/styles/components/actions/toolbar-text/toolbar-text.css +153 -0
  195. package/dist/styles/components/collections/list/list.css +133 -0
  196. package/dist/styles/components/collections/list-action-row/list-action-row.css +258 -0
  197. package/dist/styles/components/collections/list-header/list-header.css +229 -0
  198. package/dist/styles/components/collections/list-inset-control/list-inset-control.css +30 -0
  199. package/dist/styles/components/collections/list-inset-text/list-inset-text.css +29 -0
  200. package/dist/styles/components/collections/list-item/list-item.css +255 -0
  201. package/dist/styles/components/data-display/value-table/value-table.css +105 -0
  202. package/dist/styles/components/feedback/badge/badge.css +118 -0
  203. package/dist/styles/components/feedback/chip/chip.css +138 -0
  204. package/dist/styles/components/feedback/empty-state/empty-state.css +47 -0
  205. package/dist/styles/components/feedback/loading-spinner/loading-spinner.css +25 -0
  206. package/dist/styles/components/feedback/skeleton/skeleton.css +92 -0
  207. package/dist/styles/components/feedback/state-banner/state-banner.css +248 -0
  208. package/dist/styles/components/forms/segmented-control/segmented-control.css +196 -0
  209. package/dist/styles/components/forms/select/select.css +454 -0
  210. package/dist/styles/components/forms/token-search-field/token-search-field.css +381 -0
  211. package/dist/styles/components/layout/collapsible-panel/collapsible-panel.css +575 -0
  212. package/dist/styles/components/layout/grid/grid.css +85 -0
  213. package/dist/styles/components/layout/pane/pane.css +263 -0
  214. package/dist/styles/components/layout/resizable-region/resizable-region.css +545 -0
  215. package/dist/styles/components/layout/row/row.css +111 -0
  216. package/dist/styles/components/layout/spacer/spacer.css +11 -0
  217. package/dist/styles/components/layout/split-view/split-view.css +146 -0
  218. package/dist/styles/components/layout/workbench/workbench.css +1067 -0
  219. package/dist/styles/components/media/lucide-icon/lucide-icon.css +15 -0
  220. package/dist/styles/components/navigation/app-tab/app-tab.css +376 -0
  221. package/dist/styles/components/navigation/disclosure-arrow/disclosure-arrow.css +23 -0
  222. package/dist/styles/components/navigation/nav-stack/nav-stack.css +237 -0
  223. package/dist/styles/components/navigation/tab-bar/tab-bar.css +183 -0
  224. package/dist/styles/components/navigation/tab-scaffold/tab-scaffold.css +207 -0
  225. package/dist/styles/components/surfaces/content-item/content-item.css +120 -0
  226. package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +29 -0
  227. package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +56 -0
  228. package/dist/styles/components/typography/text/text.css +139 -0
  229. package/dist/styles/content-item.css +46 -1
  230. package/dist/styles/document.css +10 -0
  231. package/dist/styles/foundation.css +9 -6
  232. package/dist/styles/grid.css +50 -0
  233. package/dist/styles/lucide-icon.css +4 -0
  234. package/dist/styles/webawesome.css +23 -6
  235. package/dist/sunken-panel.d.ts +1 -1
  236. package/dist/sunken-panel.js +1 -1
  237. package/dist/surface-scaffold.js +1 -1
  238. package/dist/tab-bar.js +1 -1
  239. package/dist/tab-scaffold.d.ts +1 -1
  240. package/dist/tab-scaffold.js +1 -1
  241. package/dist/tab-scaffold.js.map +1 -1
  242. package/dist/text.d.ts +12 -8
  243. package/dist/text.js +1 -1
  244. package/dist/token-search-field.d.ts +1 -1
  245. package/dist/token-search-field.js +1 -1
  246. package/dist/{token-search-field-CVGwDn2y.d.ts → token-search-model-DTcTXWMS.d.ts} +54 -54
  247. package/dist/token-search-model.d.ts +1 -1
  248. package/dist/token-search-model.js +1 -1
  249. package/dist/toolbar-control-group.js +1 -1
  250. package/dist/toolbar-text.js +1 -1
  251. package/dist/toolbar.d.ts +1 -1
  252. package/dist/toolbar.js +1 -1
  253. package/dist/value-table.js +1 -1
  254. package/dist/wire-catalog.js +2 -2
  255. package/dist/wire-catalog.js.map +1 -1
  256. package/dist/wire-content-items.js +1 -1
  257. package/dist/wire-content-items.js.map +1 -1
  258. package/dist/wire-nav-stack.js +1 -1
  259. package/dist/wire-nav-stack.js.map +1 -1
  260. package/dist/wire-resizable-regions.js +1 -1
  261. package/dist/wire-scroll-dividers.js +1 -1
  262. package/dist/wire-sidebar.js +1 -1
  263. package/dist/wire-sidebar.js.map +1 -1
  264. package/dist/wire-tab-bars.js +1 -1
  265. package/dist/wire-tab-scaffold.js +1 -1
  266. package/dist/wire-tab-scaffold.js.map +1 -1
  267. package/dist/wire-token-search-fields.d.ts +1 -1
  268. package/dist/wire-token-search-fields.js +1 -1
  269. package/dist/wire-workbench.js +1 -1
  270. package/dist/workbench.d.ts +3 -3
  271. package/dist/workbench.js +1 -1
  272. package/docs/collapsible-panel.md +1 -1
  273. package/docs/component-contract.md +25 -7
  274. package/docs/component-selection.md +19 -5
  275. package/docs/design/templates/empty-state/filtered-dark.svg +1 -1
  276. package/docs/design/templates/empty-state/filtered.svg +1 -1
  277. package/docs/design/templates/empty-state/with-action-dark.svg +1 -1
  278. package/docs/design/templates/empty-state/with-action.svg +1 -1
  279. package/docs/design/templates/empty-state-dark.svg +1 -1
  280. package/docs/design/templates/empty-state.svg +1 -1
  281. package/docs/design/templates/list/stack-dark.svg +1 -1
  282. package/docs/design/templates/list/stack.svg +1 -1
  283. package/docs/design/templates/list-dark.svg +1 -1
  284. package/docs/design/templates/list-header/action-dark.svg +1 -1
  285. package/docs/design/templates/list-header/action.svg +1 -1
  286. package/docs/design/templates/list-header/count-dark.svg +1 -1
  287. package/docs/design/templates/list-header/count.svg +1 -1
  288. package/docs/design/templates/list-header/inline-action-dark.svg +1 -1
  289. package/docs/design/templates/list-header/inline-action.svg +1 -1
  290. package/docs/design/templates/list-header/size-l-dark.svg +1 -1
  291. package/docs/design/templates/list-header/size-l.svg +1 -1
  292. package/docs/design/templates/list-header/size-m-dark.svg +1 -1
  293. package/docs/design/templates/list-header/size-m.svg +1 -1
  294. package/docs/design/templates/list-header/size-xl-dark.svg +1 -1
  295. package/docs/design/templates/list-header/size-xl.svg +1 -1
  296. package/docs/design/templates/list-header/size-xs-dark.svg +1 -1
  297. package/docs/design/templates/list-header/size-xs.svg +1 -1
  298. package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -1
  299. package/docs/design/templates/list-header/toggle-collapsed.svg +1 -1
  300. package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -1
  301. package/docs/design/templates/list-header/toggle-expanded.svg +1 -1
  302. package/docs/design/templates/list-header-dark.svg +1 -1
  303. package/docs/design/templates/list-header.svg +1 -1
  304. package/docs/design/templates/list.svg +1 -1
  305. package/docs/design/templates/segmented-control/equal-dark.svg +1 -1
  306. package/docs/design/templates/segmented-control/equal.svg +1 -1
  307. package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -1
  308. package/docs/design/templates/segmented-control/pill-small.svg +1 -1
  309. package/docs/design/templates/segmented-control-dark.svg +1 -1
  310. package/docs/design/templates/segmented-control.svg +1 -1
  311. package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -1
  312. package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -1
  313. package/docs/design/templates/tab-bar-dark.svg +1 -1
  314. package/docs/design/templates/tab-bar.svg +1 -1
  315. package/docs/design/templates/token-search-field/empty-dark.svg +1 -1
  316. package/docs/design/templates/token-search-field/empty.svg +1 -1
  317. package/docs/design/templates/token-search-field/tokens-dark.svg +1 -1
  318. package/docs/design/templates/token-search-field/tokens.svg +1 -1
  319. package/docs/design/templates/token-search-field-dark.svg +1 -1
  320. package/docs/design/templates/token-search-field.svg +1 -1
  321. package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -1
  322. package/docs/design/templates/toolbar/title-and-actions.svg +1 -1
  323. package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -1
  324. package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -1
  325. package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -1
  326. package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -1
  327. package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -1
  328. package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -1
  329. package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -1
  330. package/docs/design/templates/toolbar-control-group/with-text.svg +1 -1
  331. package/docs/design/templates/toolbar-control-group-dark.svg +1 -1
  332. package/docs/design/templates/toolbar-control-group.svg +1 -1
  333. package/docs/design/templates/toolbar-dark.svg +1 -1
  334. package/docs/design/templates/toolbar-text/default-dark.svg +1 -1
  335. package/docs/design/templates/toolbar-text/default.svg +1 -1
  336. package/docs/design/templates/toolbar-text/large-dark.svg +1 -1
  337. package/docs/design/templates/toolbar-text/large.svg +1 -1
  338. package/docs/design/templates/toolbar-text/small-dark.svg +1 -1
  339. package/docs/design/templates/toolbar-text/small.svg +1 -1
  340. package/docs/design/templates/toolbar-text-dark.svg +1 -1
  341. package/docs/design/templates/toolbar-text.svg +1 -1
  342. package/docs/design/templates/toolbar.svg +1 -1
  343. package/docs/design/templates/value-table/details-dark.svg +1 -1
  344. package/docs/design/templates/value-table/details.svg +1 -1
  345. package/docs/design/templates/value-table-dark.svg +1 -1
  346. package/docs/design/templates/value-table.svg +1 -1
  347. package/docs/document-baseline.md +4 -0
  348. package/docs/layout.md +11 -5
  349. package/docs/sunken-panel.md +7 -7
  350. package/docs/type-contracts.md +17 -17
  351. package/docs/ui-analyzer.md +12 -1
  352. package/docs/ui-doctor.md +12 -2
  353. package/docs/webawesome-theme.md +29 -59
  354. package/doctor/index.mjs +39 -30
  355. package/llms.txt +20 -3
  356. package/package.json +3 -2
  357. package/dist/chunk-2G2ZJQYK.js.map +0 -1
  358. package/dist/chunk-2IGHGE3M.js.map +0 -1
  359. package/dist/chunk-2RMDP7HQ.js.map +0 -1
  360. package/dist/chunk-33EOFAUN.js.map +0 -1
  361. package/dist/chunk-3BYFWTP3.js.map +0 -1
  362. package/dist/chunk-3DOHW3K4.js.map +0 -1
  363. package/dist/chunk-4NG4Y2Q6.js.map +0 -1
  364. package/dist/chunk-4SQK27MR.js.map +0 -1
  365. package/dist/chunk-5I7QGQVT.js.map +0 -1
  366. package/dist/chunk-6DFDTWGG.js.map +0 -1
  367. package/dist/chunk-6LAQWWEX.js.map +0 -1
  368. package/dist/chunk-7KHKLG5C.js.map +0 -1
  369. package/dist/chunk-ALGYHYXP.js.map +0 -1
  370. package/dist/chunk-AYUHMAI6.js.map +0 -1
  371. package/dist/chunk-B2ZMR7NY.js.map +0 -1
  372. package/dist/chunk-BFPBS5Y4.js.map +0 -1
  373. package/dist/chunk-BGD7EHUE.js.map +0 -1
  374. package/dist/chunk-DB5ADJKF.js.map +0 -1
  375. package/dist/chunk-DG6G5EPF.js.map +0 -1
  376. package/dist/chunk-DPAUKNB6.js.map +0 -1
  377. package/dist/chunk-G4S2QU6V.js.map +0 -1
  378. package/dist/chunk-I3Q7KKYM.js.map +0 -1
  379. package/dist/chunk-I6FTU27I.js.map +0 -1
  380. package/dist/chunk-IJNYCPAU.js.map +0 -1
  381. package/dist/chunk-K47P7QZC.js.map +0 -1
  382. package/dist/chunk-KFJSNWO4.js.map +0 -1
  383. package/dist/chunk-KZRR7NNV.js.map +0 -1
  384. package/dist/chunk-L67OYMGE.js.map +0 -1
  385. package/dist/chunk-NCSWXG7G.js.map +0 -1
  386. package/dist/chunk-NN6GYOA2.js.map +0 -1
  387. package/dist/chunk-OXO2QJWV.js.map +0 -1
  388. package/dist/chunk-PSHUSWQH.js.map +0 -1
  389. package/dist/chunk-RGS4WX2M.js.map +0 -1
  390. package/dist/chunk-RT5WKYX3.js.map +0 -1
  391. package/dist/chunk-RU2EMR56.js.map +0 -1
  392. package/dist/chunk-RVERAFFY.js.map +0 -1
  393. package/dist/chunk-SLWCCHNP.js.map +0 -1
  394. package/dist/chunk-SMZGAPCU.js.map +0 -1
  395. package/dist/chunk-SRSJO5QE.js.map +0 -1
  396. package/dist/chunk-TDN5EE3S.js.map +0 -1
  397. package/dist/chunk-TT5ROTQK.js.map +0 -1
  398. package/dist/chunk-V4WLBOVJ.js.map +0 -1
  399. package/dist/chunk-VZOFZPSO.js.map +0 -1
  400. package/dist/chunk-W2AC6Q2A.js.map +0 -1
  401. package/dist/chunk-WF75U3V4.js.map +0 -1
  402. package/dist/chunk-WTSNV5RG.js.map +0 -1
  403. package/dist/chunk-X5QSICJ3.js.map +0 -1
  404. package/dist/chunk-YDGNU2OD.js.map +0 -1
  405. package/dist/chunk-ZLKZFKLW.js.map +0 -1
  406. package/dist/chunk-ZSJOLL3S.js.map +0 -1
  407. package/dist/{panel-toolbar-DDKh4uKd.d.ts → panel-toolbar-CL9tYOkh.d.ts} +1 -1
  408. package/dist/{types-BuHELdXR.d.ts → types-C9BubXfz.d.ts} +1 -1
@@ -0,0 +1,545 @@
1
+ .kui-resizable-region {
2
+ --kui-resizable-region-separator-color: var(
3
+ --kui-color-neutral-border-normal
4
+ );
5
+ --kui-resizable-region-handle-color: var(--kui-color-neutral-on-quiet);
6
+ --kui-resizable-region-handle-active-color: var(--kui-color-text-link);
7
+ /* Extra track a horizontal region adds when it reaches an unsafe screen edge,
8
+ so its surface paints through the unsafe area while its committed size
9
+ stays the content width. The region sets it itself from the context of a
10
+ layout that places it at an edge (a SplitView list); it never inherits
11
+ into a nested region. */
12
+ --kui-resizable-region-edge-extent: 0px;
13
+ position: relative;
14
+ display: flex;
15
+ min-width: 0;
16
+ min-height: 0;
17
+ background: var(--kui-resizable-region-background, transparent);
18
+ }
19
+ /* As a split SplitView's list, the region's track grows by the unsafe
20
+ inline-start inset the SplitView provides, while its committed size stays
21
+ the content width. A collapsed region stays shut. */
22
+ .kui-split-view[data-split-mode="split"]
23
+ > .kui-resizable-region:not([data-collapsed="true"]) {
24
+ --kui-resizable-region-edge-extent: var(--_kui-split-view-safe-inline-start);
25
+ }
26
+ .kui-resizable-region[data-axis="horizontal"] {
27
+ width: calc(
28
+ var(--kui-resizable-region-size) + var(--kui-resizable-region-edge-extent)
29
+ );
30
+ height: 100%;
31
+ flex: 0 0
32
+ calc(
33
+ var(--kui-resizable-region-size) + var(--kui-resizable-region-edge-extent)
34
+ );
35
+ }
36
+ .kui-resizable-region[data-axis="vertical"] {
37
+ width: 100%;
38
+ height: var(--kui-resizable-region-size);
39
+ flex: 0 0 var(--kui-resizable-region-size);
40
+ flex-direction: column;
41
+ }
42
+ .kui-resizable-region[data-collapsed="true"] {
43
+ overflow: visible;
44
+ }
45
+ /* The content spans the whole region, like the separator does. A vertical
46
+ stack keeps several children at their natural height, while a lone child —
47
+ typically a Pane or a layout — fills the region, so it owns its scrolling
48
+ and reaches the region's far edge. */
49
+ .kui-resizable-region__content {
50
+ display: flex;
51
+ flex-direction: column;
52
+ width: 100%;
53
+ min-width: 0;
54
+ min-height: 0;
55
+ overflow: hidden;
56
+ }
57
+ .kui-resizable-region[data-axis="vertical"] > .kui-resizable-region__content {
58
+ flex-grow: 1;
59
+ }
60
+ .kui-resizable-region__content > :only-child {
61
+ flex: 1 1 auto;
62
+ min-height: 0;
63
+ }
64
+ .kui-resizable-region[data-content-overflow="auto"]
65
+ > .kui-resizable-region__content {
66
+ overflow: auto;
67
+ }
68
+ .kui-resizable-region[data-content-overflow="visible"] {
69
+ z-index: var(--kui-resizable-region-popup-z, 5);
70
+ overflow: visible;
71
+ }
72
+ .kui-resizable-region[data-content-overflow="visible"]
73
+ > .kui-resizable-region__content {
74
+ overflow: visible;
75
+ }
76
+ /* An open Web Awesome dropdown (including PopupMenu) releases both clipping
77
+ ancestors without rerendering the region during the dropdown lifecycle. */
78
+ .kui-resizable-region:has(wa-dropdown[open]) {
79
+ z-index: var(--kui-resizable-region-popup-z, 5);
80
+ overflow: visible;
81
+ }
82
+ .kui-resizable-region:has(wa-dropdown[open]) > .kui-resizable-region__content {
83
+ overflow: visible;
84
+ }
85
+ .kui-resizable-region[data-separator="hidden"] {
86
+ --kui-resizable-region-separator-color: transparent;
87
+ }
88
+ .kui-resizable-region[data-collapsed="true"] > .kui-resizable-region__handle,
89
+ .kui-resizable-region:not([data-presentation="inline"])
90
+ > .kui-resizable-region__handle {
91
+ display: none;
92
+ }
93
+
94
+ /* The track always snaps to its new size. Motion is isolated to the fixed-size
95
+ content so a large sibling workspace incurs one reflow, not one per frame. */
96
+ .kui-resizable-region[data-collapse-motion="slide"]
97
+ > .kui-resizable-region__content,
98
+ .kui-resizable-region[data-collapse-motion="fade-slide"]
99
+ > .kui-resizable-region__content {
100
+ transition:
101
+ opacity 160ms ease,
102
+ transform 200ms ease;
103
+ }
104
+ .kui-resizable-region[data-axis="horizontal"][data-collapse-motion]:not(
105
+ [data-collapse-motion="none"]
106
+ )
107
+ > .kui-resizable-region__content {
108
+ width: calc(
109
+ var(--kui-resizable-region-expanded-size) +
110
+ var(--kui-resizable-region-edge-extent)
111
+ );
112
+ min-width: calc(
113
+ var(--kui-resizable-region-expanded-size) +
114
+ var(--kui-resizable-region-edge-extent)
115
+ );
116
+ }
117
+ .kui-resizable-region[data-axis="vertical"][data-collapse-motion]:not(
118
+ [data-collapse-motion="none"]
119
+ )
120
+ > .kui-resizable-region__content {
121
+ height: var(--kui-resizable-region-expanded-size);
122
+ min-height: var(--kui-resizable-region-expanded-size);
123
+ }
124
+ /* While expanded, the sliding content follows the region's actual track, so a
125
+ region its parent clamps (a max-width, a narrow container) never shows
126
+ content past its separator. The fixed expanded size above only matters once
127
+ the track collapses to zero and the content slides out. */
128
+ .kui-resizable-region[data-axis="horizontal"][data-collapse-motion]:not(
129
+ [data-collapsed="true"]
130
+ )
131
+ > .kui-resizable-region__content {
132
+ width: 100%;
133
+ min-width: 0;
134
+ }
135
+ .kui-resizable-region[data-axis="vertical"][data-collapse-motion]:not(
136
+ [data-collapsed="true"]
137
+ )
138
+ > .kui-resizable-region__content {
139
+ height: auto;
140
+ min-height: 0;
141
+ flex: 1 1 0;
142
+ }
143
+ .kui-resizable-region[data-axis="horizontal"][data-edge="end"][data-collapsed="true"]
144
+ > .kui-resizable-region__content {
145
+ transform: translateX(-100%);
146
+ }
147
+ .kui-resizable-region[data-axis="horizontal"][data-edge="start"][data-collapsed="true"]
148
+ > .kui-resizable-region__content {
149
+ transform: translateX(100%);
150
+ }
151
+ .kui-resizable-region[data-axis="vertical"][data-edge="end"][data-collapsed="true"]
152
+ > .kui-resizable-region__content {
153
+ transform: translateY(-100%);
154
+ }
155
+ .kui-resizable-region[data-axis="vertical"][data-edge="start"][data-collapsed="true"]
156
+ > .kui-resizable-region__content {
157
+ transform: translateY(100%);
158
+ }
159
+ .kui-resizable-region[data-collapse-motion="fade-slide"][data-collapsed="true"]
160
+ > .kui-resizable-region__content {
161
+ opacity: 0;
162
+ }
163
+ .kui-resizable-region[data-resizing="true"] > .kui-resizable-region__content {
164
+ transition: none;
165
+ }
166
+
167
+ /* Responsive replacement policies. Overlay regions stay on their logical edge
168
+ and stop participating in the parent's flex tracks; hidden regions are fully
169
+ replaced by application-owned compact UI. An overlay floats over the work
170
+ area, so it paints the surface like an overlay CollapsiblePanel: without it
171
+ the content beneath (and the restore control stacked below it) shows
172
+ through the shadowed box. An inline region stays transparent and shows its
173
+ host's background. */
174
+ .kui-resizable-region[data-presentation="overlay"] {
175
+ position: absolute;
176
+ z-index: var(--kui-resizable-region-overlay-z, 41);
177
+ background: var(--kui-resizable-region-background, var(--kui-color-surface));
178
+ box-shadow: var(--kui-shadow-l);
179
+ }
180
+ /* Each overlay maximum caps only the resizable axis: a side overlay spans its
181
+ host's full height and a drawer its full width, like their inline tracks. */
182
+ .kui-resizable-region[data-presentation="overlay"][data-axis="horizontal"] {
183
+ inset-block: 0;
184
+ max-width: var(--kui-resizable-region-overlay-max-width, 85vw);
185
+ }
186
+ .kui-resizable-region[data-presentation="overlay"][data-axis="horizontal"][data-edge="end"] {
187
+ inset-inline-start: 0;
188
+ }
189
+ .kui-resizable-region[data-presentation="overlay"][data-axis="horizontal"][data-edge="start"] {
190
+ inset-inline-end: 0;
191
+ }
192
+ .kui-resizable-region[data-presentation="overlay"][data-axis="vertical"] {
193
+ inset-inline: 0;
194
+ max-height: var(--kui-resizable-region-overlay-max-height, 85vh);
195
+ }
196
+ .kui-resizable-region[data-presentation="overlay"][data-axis="vertical"][data-edge="end"] {
197
+ inset-block-start: 0;
198
+ }
199
+ .kui-resizable-region[data-presentation="overlay"][data-axis="vertical"][data-edge="start"] {
200
+ inset-block-end: 0;
201
+ }
202
+ .kui-resizable-region[data-presentation="overlay"][data-collapsed="true"] {
203
+ pointer-events: none;
204
+ }
205
+ .kui-resizable-region[data-presentation="overlay"][data-axis="horizontal"][data-collapse-motion]:not(
206
+ [data-collapse-motion="none"]
207
+ )
208
+ > .kui-resizable-region__content {
209
+ width: min(
210
+ var(--kui-resizable-region-expanded-size),
211
+ var(--kui-resizable-region-overlay-max-width, 85vw)
212
+ );
213
+ min-width: min(
214
+ var(--kui-resizable-region-expanded-size),
215
+ var(--kui-resizable-region-overlay-max-width, 85vw)
216
+ );
217
+ }
218
+ .kui-resizable-region[data-presentation="overlay"][data-axis="vertical"][data-collapse-motion]:not(
219
+ [data-collapse-motion="none"]
220
+ )
221
+ > .kui-resizable-region__content {
222
+ height: min(
223
+ var(--kui-resizable-region-expanded-size),
224
+ var(--kui-resizable-region-overlay-max-height, 85vh)
225
+ );
226
+ min-height: min(
227
+ var(--kui-resizable-region-expanded-size),
228
+ var(--kui-resizable-region-overlay-max-height, 85vh)
229
+ );
230
+ }
231
+ .kui-resizable-region[data-presentation="hidden"] {
232
+ display: none;
233
+ }
234
+ /* An open side overlay (a horizontal region) covers the work area beside it,
235
+ so that area's floating controls (a FloatingToolbar, a restore corner) are
236
+ hidden, not merely stacked beneath it: they never paint over the overlay
237
+ whatever stacking context an app puts them in, and hidden they leave the
238
+ tab order and the accessibility tree. They come back as the overlay
239
+ closes. The ResizableRegion's own covered context,
240
+ `--_kui-resizable-region-covered`, is read by FloatingToolbar and the
241
+ layouts' restore corners. It is set on the overlay's container and cleared again on the
242
+ overlay regions in it, so it reaches the overlay's siblings only. It is
243
+ never set by a universal selector below the :has() container (`:has(…) >
244
+ :not(…)`): Chromium then restyles every child of every ancestor of a DOM
245
+ change, which made each change in a long list about 30× slower. */
246
+ :where(
247
+ :has(
248
+ > .kui-resizable-region[data-presentation="overlay"][data-axis="horizontal"]:not(
249
+ [data-collapsed="true"]
250
+ )
251
+ )
252
+ ) {
253
+ --_kui-resizable-region-covered: hidden;
254
+ }
255
+ :where(
256
+ :has(
257
+ > .kui-resizable-region[data-presentation="overlay"][data-axis="horizontal"]:not(
258
+ [data-collapsed="true"]
259
+ )
260
+ )
261
+ )
262
+ > .kui-resizable-region[data-presentation="overlay"] {
263
+ --_kui-resizable-region-covered: initial;
264
+ }
265
+
266
+ @container (max-width: 44rem) {
267
+ .kui-resizable-region[data-responsive-fill-at="narrow"] {
268
+ width: 100%;
269
+ flex: 1 1 auto;
270
+ }
271
+
272
+ .kui-resizable-region[data-responsive-fill-at="narrow"]
273
+ > .kui-resizable-region__handle {
274
+ display: none;
275
+ }
276
+ }
277
+
278
+ @container (max-width: 28rem) {
279
+ .kui-resizable-region[data-responsive-fill-at="compact"] {
280
+ width: 100%;
281
+ flex: 1 1 auto;
282
+ }
283
+
284
+ .kui-resizable-region[data-responsive-fill-at="compact"]
285
+ > .kui-resizable-region__handle {
286
+ display: none;
287
+ }
288
+ }
289
+
290
+ /* A collapsed region can supply its own affordance. It floats in a corner of
291
+ the region's own container, never of the viewport, so a region embedded in a
292
+ page cannot float it over page content outside that container. The
293
+ container becomes the corner's containing block and isolates its stacking
294
+ only while a restore control is shown, at zero specificity so an app's own
295
+ positioning of that container wins. The corner is inset from the
296
+ container's edges plus the unsafe area of each edge it reaches. The
297
+ control belongs to the layer beneath open overlays, two below the overlay
298
+ z-index: an open overlay region covers it as it covers the rest of the
299
+ work area, the Workbench rule. A collapsed overlay drops its pointer
300
+ events, so the control is usable again as soon as the overlay closes. */
301
+ :where(:has(> .kui-resizable-region__restore)) {
302
+ position: relative;
303
+ isolation: isolate;
304
+ anchor-scope: --kui-restore-drawer;
305
+ }
306
+ /* An expanded bottom region (a vertical region resized from its top edge)
307
+ beside the collapsed one — a direct child of that container or of one of
308
+ its direct children (the app's work-area column) — owns the container's
309
+ bottom, so the corner floats above the drawer's top edge instead of over
310
+ it. The region publishes that edge as an anchor only there, beside a
311
+ CollapsiblePanel or ResizableRegion restore control (matched by their
312
+ restore attributes); CollapsiblePanel drawers publish the same anchor. A
313
+ drawer nested deeper, inside the work area's own content, belongs to
314
+ another layout and publishes nothing. The selector ends on the region, not
315
+ on a universal `> * > * > *` scope below the container: a universal
316
+ selector after a :has() container restyles every child of every ancestor
317
+ of a DOM change in Chromium. Without anchor positioning the corner keeps
318
+ the container's bottom edge. */
319
+ :where(
320
+ :has(> [data-panel-restore], > [data-region-restore]),
321
+ :has(> [data-panel-restore], > [data-region-restore]) > *
322
+ )
323
+ > .kui-resizable-region[data-axis="vertical"][data-edge="start"][data-presentation="inline"]:not(
324
+ [data-collapsed="true"]
325
+ ) {
326
+ anchor-name: --kui-restore-drawer;
327
+ }
328
+ .kui-resizable-region__restore {
329
+ --_kui-resizable-region-restore-inset: var(
330
+ --kui-resizable-region-restore-inset,
331
+ 1rem
332
+ );
333
+ position: absolute;
334
+ /* Hidden while an open side overlay covers the content (see above). */
335
+ visibility: var(
336
+ --_kui-workbench-covered,
337
+ var(
338
+ --_kui-collapsible-panel-covered,
339
+ var(--_kui-resizable-region-covered, inherit)
340
+ )
341
+ );
342
+ z-index: var(
343
+ --kui-resizable-region-restore-z,
344
+ calc(var(--kui-resizable-region-overlay-z, 41) - 2)
345
+ );
346
+ position-visibility: always;
347
+ inset-block-end: calc(
348
+ var(--_kui-resizable-region-restore-inset) +
349
+ var(
350
+ --kui-edge-inset-block-end,
351
+ var(--kui-safe-area-block-end, env(safe-area-inset-bottom, 0px))
352
+ )
353
+ );
354
+ /* Above an expanded drawer's top edge when one is in scope (see above). */
355
+ inset-block-end: calc(
356
+ var(--_kui-resizable-region-restore-inset) +
357
+ anchor(
358
+ --kui-restore-drawer top,
359
+ var(
360
+ --kui-edge-inset-block-end,
361
+ var(--kui-safe-area-block-end, env(safe-area-inset-bottom, 0px))
362
+ )
363
+ )
364
+ );
365
+ }
366
+ .kui-resizable-region__restore[data-placement="inline"] {
367
+ position: static;
368
+ }
369
+ .kui-resizable-region__restore[data-position^="top"][data-placement="corner"] {
370
+ inset-block-end: auto;
371
+ inset-block-start: calc(
372
+ var(--_kui-resizable-region-restore-inset) +
373
+ var(
374
+ --kui-edge-inset-block-start,
375
+ var(--kui-safe-area-block-start, env(safe-area-inset-top, 0px))
376
+ )
377
+ );
378
+ }
379
+ .kui-resizable-region__restore[data-position="bottom-start"] {
380
+ inset-inline-start: calc(
381
+ var(--_kui-resizable-region-restore-inset) +
382
+ var(
383
+ --kui-edge-inset-inline-start,
384
+ var(--kui-safe-area-inline-start, env(safe-area-inset-left, 0px))
385
+ )
386
+ );
387
+ }
388
+ .kui-resizable-region__restore[data-position="top-start"] {
389
+ inset-inline-start: calc(
390
+ var(--_kui-resizable-region-restore-inset) +
391
+ var(
392
+ --kui-edge-inset-inline-start,
393
+ var(--kui-safe-area-inline-start, env(safe-area-inset-left, 0px))
394
+ )
395
+ );
396
+ }
397
+ .kui-resizable-region__restore[data-position="top-end"] {
398
+ inset-inline-end: calc(
399
+ var(--_kui-resizable-region-restore-inset) +
400
+ var(
401
+ --kui-edge-inset-inline-end,
402
+ var(--kui-safe-area-inline-end, env(safe-area-inset-right, 0px))
403
+ )
404
+ );
405
+ }
406
+ .kui-resizable-region__restore[data-position="bottom-end"] {
407
+ inset-inline-end: calc(
408
+ var(--_kui-resizable-region-restore-inset) +
409
+ var(
410
+ --kui-edge-inset-inline-end,
411
+ var(--kui-safe-area-inline-end, env(safe-area-inset-right, 0px))
412
+ )
413
+ );
414
+ }
415
+ .kui-resizable-region__handle {
416
+ position: absolute;
417
+ z-index: 3;
418
+ display: grid;
419
+ min-width: 20px;
420
+ min-height: 20px;
421
+ color: var(--kui-resizable-region-handle-color);
422
+ place-items: center;
423
+ touch-action: none;
424
+ }
425
+ .kui-resizable-region__handle::before {
426
+ position: absolute;
427
+ background: var(--kui-resizable-region-separator-color);
428
+ content: "";
429
+ pointer-events: none;
430
+ }
431
+ .kui-resizable-region[data-axis="horizontal"] .kui-resizable-region__handle {
432
+ top: 0;
433
+ bottom: 0;
434
+ width: 20px;
435
+ cursor: col-resize;
436
+ }
437
+ .kui-resizable-region[data-axis="horizontal"]
438
+ .kui-resizable-region__handle::before {
439
+ top: 0;
440
+ bottom: 0;
441
+ width: 1px;
442
+ }
443
+ .kui-resizable-region[data-axis="horizontal"][data-edge="end"]
444
+ .kui-resizable-region__handle {
445
+ right: -10px;
446
+ }
447
+ .kui-resizable-region[data-axis="horizontal"][data-edge="start"]
448
+ .kui-resizable-region__handle {
449
+ left: -10px;
450
+ }
451
+ .kui-resizable-region[data-axis="vertical"] .kui-resizable-region__handle {
452
+ right: 0;
453
+ left: 0;
454
+ height: 20px;
455
+ cursor: row-resize;
456
+ }
457
+ .kui-resizable-region[data-axis="vertical"]
458
+ .kui-resizable-region__handle::before {
459
+ right: 0;
460
+ left: 0;
461
+ height: 1px;
462
+ }
463
+ .kui-resizable-region[data-axis="vertical"][data-edge="end"]
464
+ .kui-resizable-region__handle {
465
+ bottom: -10px;
466
+ }
467
+ .kui-resizable-region[data-axis="vertical"][data-edge="start"]
468
+ .kui-resizable-region__handle {
469
+ top: -10px;
470
+ }
471
+ /* wireResizableRegions sets data-handle-inset when a parent clamps the track
472
+ and the separator has less room past it than the handle's overhang, which
473
+ puts it at the parent's edge. The handle then sits wholly inside the region
474
+ and keeps its separator line on the region's edge, so a clipping ancestor
475
+ never cuts off half of the hit target or its focus ring. The grip stays
476
+ centered in the handle there: the separator is the clipping edge, so a grip
477
+ centered on it would be cut in half. Everywhere else the grip is drawn on
478
+ the separator line. */
479
+ .kui-resizable-region[data-handle-inset][data-axis="horizontal"][data-edge="end"]
480
+ > .kui-resizable-region__handle {
481
+ right: 0;
482
+ }
483
+ .kui-resizable-region[data-handle-inset][data-axis="horizontal"][data-edge="end"]
484
+ > .kui-resizable-region__handle::before {
485
+ right: 0;
486
+ }
487
+ .kui-resizable-region[data-handle-inset][data-axis="horizontal"][data-edge="start"]
488
+ > .kui-resizable-region__handle {
489
+ left: 0;
490
+ }
491
+ .kui-resizable-region[data-handle-inset][data-axis="horizontal"][data-edge="start"]
492
+ > .kui-resizable-region__handle::before {
493
+ left: 0;
494
+ }
495
+ .kui-resizable-region[data-handle-inset][data-axis="vertical"][data-edge="end"]
496
+ > .kui-resizable-region__handle {
497
+ bottom: 0;
498
+ }
499
+ .kui-resizable-region[data-handle-inset][data-axis="vertical"][data-edge="end"]
500
+ > .kui-resizable-region__handle::before {
501
+ bottom: 0;
502
+ }
503
+ .kui-resizable-region[data-handle-inset][data-axis="vertical"][data-edge="start"]
504
+ > .kui-resizable-region__handle {
505
+ top: 0;
506
+ }
507
+ .kui-resizable-region[data-handle-inset][data-axis="vertical"][data-edge="start"]
508
+ > .kui-resizable-region__handle::before {
509
+ top: 0;
510
+ }
511
+ .kui-resizable-region__handle:hover,
512
+ .kui-resizable-region__handle:focus-visible {
513
+ color: var(--kui-resizable-region-handle-active-color);
514
+ }
515
+ /* The ring stays wholly inside the handle's box (the focus ring is 3px).
516
+ The handle runs the region's full length, and those ends usually meet a
517
+ clipping ancestor's edge, which would otherwise shave the ring there. */
518
+ .kui-resizable-region__handle:focus-visible {
519
+ border-radius: var(--kui-radius-s);
520
+ outline: var(--kui-focus-ring);
521
+ outline-offset: -3px;
522
+ }
523
+ .kui-resizable-region__handle-icon {
524
+ position: relative;
525
+ display: grid;
526
+ width: 0.9rem;
527
+ height: 0.9rem;
528
+ opacity: 0;
529
+ pointer-events: none;
530
+ place-items: center;
531
+ }
532
+ .kui-resizable-region__handle-icon > svg {
533
+ width: 100%;
534
+ height: 100%;
535
+ }
536
+ .kui-resizable-region__handle:hover .kui-resizable-region__handle-icon,
537
+ .kui-resizable-region__handle:focus-visible .kui-resizable-region__handle-icon {
538
+ opacity: 1;
539
+ }
540
+
541
+ @media (prefers-reduced-motion: reduce) {
542
+ .kui-resizable-region > .kui-resizable-region__content {
543
+ transition: none;
544
+ }
545
+ }
@@ -0,0 +1,111 @@
1
+ .kui-row {
2
+ --kui-row-gap: var(--kui-layout-item-gap, 0.5rem);
3
+ /* Private per-instance values are reset on every Row so a nested Row never
4
+ inherits its ancestor's; the inline style overrides them per prop. */
5
+ --_kui-row-gap: var(--kui-row-gap);
6
+ --_kui-row-flex: 0 1 auto;
7
+ --_kui-row-inset-top: 0;
8
+ --_kui-row-inset-right: 0;
9
+ --_kui-row-inset-bottom: 0;
10
+ --_kui-row-inset-left: 0;
11
+
12
+ display: flex;
13
+ min-width: 0;
14
+ min-height: 0;
15
+ box-sizing: border-box;
16
+ padding: var(--_kui-row-inset-top, 0) var(--_kui-row-inset-right, 0)
17
+ var(--_kui-row-inset-bottom, 0) var(--_kui-row-inset-left, 0);
18
+ flex: var(--_kui-row-flex, initial);
19
+ flex-direction: row;
20
+ flex-wrap: nowrap;
21
+ align-items: stretch;
22
+ align-content: space-between;
23
+ justify-content: flex-start;
24
+ gap: var(--_kui-row-gap, var(--kui-row-gap));
25
+ }
26
+
27
+ .kui-row[data-control-insets*="t"] {
28
+ --_kui-row-inset-top: var(--kui-layout-inline-margin, 0.5rem);
29
+ }
30
+
31
+ .kui-row[data-control-insets*="r"] {
32
+ --_kui-row-inset-right: var(--kui-layout-inline-margin, 0.5rem);
33
+ }
34
+
35
+ .kui-row[data-control-insets*="b"] {
36
+ --_kui-row-inset-bottom: var(--kui-layout-inline-margin, 0.5rem);
37
+ }
38
+
39
+ .kui-row[data-control-insets*="l"] {
40
+ --_kui-row-inset-left: var(--kui-layout-inline-margin, 0.5rem);
41
+ }
42
+
43
+ .kui-row[data-text-insets*="t"] {
44
+ --_kui-row-inset-top: calc(
45
+ var(--kui-layout-inline-margin, 0.5rem) + 1px +
46
+ var(--kui-layout-item-padding, 0.5rem)
47
+ );
48
+ }
49
+
50
+ .kui-row[data-text-insets*="r"] {
51
+ --_kui-row-inset-right: calc(
52
+ var(--kui-layout-inline-margin, 0.5rem) + 1px +
53
+ var(--kui-layout-item-padding, 0.5rem)
54
+ );
55
+ }
56
+
57
+ .kui-row[data-text-insets*="b"] {
58
+ --_kui-row-inset-bottom: calc(
59
+ var(--kui-layout-inline-margin, 0.5rem) + 1px +
60
+ var(--kui-layout-item-padding, 0.5rem)
61
+ );
62
+ }
63
+
64
+ .kui-row[data-text-insets*="l"] {
65
+ --_kui-row-inset-left: calc(
66
+ var(--kui-layout-inline-margin, 0.5rem) + 1px +
67
+ var(--kui-layout-item-padding, 0.5rem)
68
+ );
69
+ }
70
+
71
+ .kui-row[data-wrap="true"] {
72
+ flex-wrap: wrap;
73
+ }
74
+
75
+ .kui-row[data-h-align="center"] {
76
+ justify-content: space-around;
77
+ }
78
+
79
+ .kui-row[data-h-align="right"] {
80
+ justify-content: flex-end;
81
+ }
82
+
83
+ .kui-row[data-h-align="full"] {
84
+ justify-content: space-between;
85
+ }
86
+
87
+ .kui-row[data-v-align="top"] {
88
+ align-items: flex-start;
89
+ align-content: flex-start;
90
+ }
91
+
92
+ .kui-row[data-v-align="middle"] {
93
+ align-items: center;
94
+ align-content: space-around;
95
+ }
96
+
97
+ .kui-row[data-v-align="bottom"] {
98
+ align-items: flex-end;
99
+ align-content: flex-end;
100
+ }
101
+
102
+ .kui-row[data-v-align="baseline"] {
103
+ align-items: baseline;
104
+ align-content: baseline;
105
+ }
106
+
107
+ /* `fill`: the layout root of a definite-height parent (an app root or a
108
+ fixed-height frame) takes its full height. Inside a flex layout use `flex`. */
109
+ .kui-row[data-fill="true"] {
110
+ height: 100%;
111
+ }
@@ -0,0 +1,11 @@
1
+ .kui-spacer {
2
+ box-sizing: border-box;
3
+ flex: 0 0 auto;
4
+ min-width: 0;
5
+ min-height: 0;
6
+ pointer-events: none;
7
+ }
8
+
9
+ .kui-spacer[data-flex="true"] {
10
+ flex: 1 1 auto;
11
+ }