@kerfjs/ui 5.0.0-beta.75 → 5.0.0-beta.77

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 (443) hide show
  1. package/README.md +41 -1
  2. package/ai/component-catalog.json +235 -30
  3. package/ai/component-composition.json +131 -14
  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/lucide-icon.md +11 -0
  11. package/ai/components/nav-stack.md +1 -0
  12. package/ai/components/select.md +1 -0
  13. package/ai/components/split-view.md +1 -0
  14. package/ai/components/text.md +4 -2
  15. package/ai/components/toolbar-control-group.md +20 -3
  16. package/ai/components/toolbar-text.md +19 -4
  17. package/ai/components/toolbar.md +10 -4
  18. package/ai/public-api-signatures-v1.md +141 -66
  19. package/ai/skill.md +58 -5
  20. package/ai/webawesome-jsx-signatures-v1.md +1 -1
  21. package/analyzer/index.mjs +11 -1
  22. package/dist/app-tab.js +1 -1
  23. package/dist/badge.d.ts +5 -3
  24. package/dist/badge.js +1 -1
  25. package/dist/browser/catalog.js +7 -7
  26. package/dist/browser/collapsible-panel.js +3 -3
  27. package/dist/browser/list-header.js +1 -1
  28. package/dist/browser/nav-stack.js +1 -1
  29. package/dist/browser/select.js +1 -1
  30. package/dist/browser/split-view.js +1 -1
  31. package/dist/browser/workbench.js +4 -4
  32. package/dist/catalog-resources.d.ts +6 -6
  33. package/dist/catalog-resources.js +1 -1
  34. package/dist/catalog-resources.js.map +1 -1
  35. package/dist/catalog.d.ts +5 -5
  36. package/dist/catalog.js +13 -13
  37. package/dist/catalog.js.map +1 -1
  38. package/dist/chip.d.ts +3 -2
  39. package/dist/chip.js +1 -1
  40. package/dist/{chunk-SVLDRGPJ.js → chunk-3RE2JMZU.js} +7 -3
  41. package/dist/chunk-3RE2JMZU.js.map +1 -0
  42. package/dist/{chunk-YDGNU2OD.js → chunk-4Y4L5YEI.js} +7 -2
  43. package/dist/chunk-4Y4L5YEI.js.map +1 -0
  44. package/dist/{chunk-V4WLBOVJ.js → chunk-5BZBIRQG.js} +4 -4
  45. package/dist/chunk-5BZBIRQG.js.map +1 -0
  46. package/dist/{chunk-SX7FJXPJ.js → chunk-5D3WDMIK.js} +4 -4
  47. package/dist/chunk-5D3WDMIK.js.map +1 -0
  48. package/dist/{chunk-O5GM2JAM.js → chunk-6VQPLV3O.js} +9 -9
  49. package/dist/chunk-6VQPLV3O.js.map +1 -0
  50. package/dist/{chunk-JA4J7Y4C.js → chunk-75I3SNUJ.js} +2 -2
  51. package/dist/chunk-75I3SNUJ.js.map +1 -0
  52. package/dist/{chunk-K47P7QZC.js → chunk-7QQ3HE47.js} +2 -2
  53. package/dist/chunk-7QQ3HE47.js.map +1 -0
  54. package/dist/{chunk-5I7QGQVT.js → chunk-AN5IWMTM.js} +2 -2
  55. package/dist/chunk-AN5IWMTM.js.map +1 -0
  56. package/dist/{chunk-3BYFWTP3.js → chunk-AOAW55JN.js} +2 -2
  57. package/dist/chunk-AOAW55JN.js.map +1 -0
  58. package/dist/{chunk-5UGLKFBF.js → chunk-ARZ4RSQO.js} +5 -6
  59. package/dist/chunk-ARZ4RSQO.js.map +1 -0
  60. package/dist/{chunk-TCXDZNCX.js → chunk-BJLXE56E.js} +6 -6
  61. package/dist/chunk-BJLXE56E.js.map +1 -0
  62. package/dist/{chunk-RGS4WX2M.js → chunk-BYHGRKC3.js} +2 -2
  63. package/dist/chunk-BYHGRKC3.js.map +1 -0
  64. package/dist/{chunk-ZLKZFKLW.js → chunk-CEJ5FK6G.js} +2 -2
  65. package/dist/chunk-CEJ5FK6G.js.map +1 -0
  66. package/dist/{chunk-SMZGAPCU.js → chunk-DQDTZE4W.js} +2 -2
  67. package/dist/chunk-DQDTZE4W.js.map +1 -0
  68. package/dist/{chunk-JGIV6ZDA.js → chunk-EFDCALR3.js} +2 -2
  69. package/dist/chunk-EFDCALR3.js.map +1 -0
  70. package/dist/{chunk-FKPKGP2H.js → chunk-G4VKQP7B.js} +2 -2
  71. package/dist/chunk-G4VKQP7B.js.map +1 -0
  72. package/dist/{chunk-DPAUKNB6.js → chunk-GS2QD3N7.js} +3 -3
  73. package/dist/chunk-GS2QD3N7.js.map +1 -0
  74. package/dist/{chunk-SLWCCHNP.js → chunk-H45DAZBL.js} +2 -2
  75. package/dist/chunk-H45DAZBL.js.map +1 -0
  76. package/dist/{chunk-DA3HS64I.js → chunk-H7ZJEI3H.js} +3 -3
  77. package/dist/chunk-H7ZJEI3H.js.map +1 -0
  78. package/dist/{chunk-V4GAQ74C.js → chunk-HFLGWMG3.js} +4 -4
  79. package/dist/chunk-HFLGWMG3.js.map +1 -0
  80. package/dist/{chunk-HXTAPIHQ.js → chunk-HFQDSSED.js} +6 -6
  81. package/dist/chunk-HFQDSSED.js.map +1 -0
  82. package/dist/{chunk-WF75U3V4.js → chunk-HPREYDKV.js} +2 -2
  83. package/dist/chunk-HPREYDKV.js.map +1 -0
  84. package/dist/{chunk-VA5TN5PR.js → chunk-I4SDIMFA.js} +2 -2
  85. package/dist/chunk-I4SDIMFA.js.map +1 -0
  86. package/dist/{chunk-4SQK27MR.js → chunk-IM3GKYOG.js} +2 -2
  87. package/dist/chunk-IM3GKYOG.js.map +1 -0
  88. package/dist/{chunk-ALGYHYXP.js → chunk-J3AWE5I4.js} +2 -2
  89. package/dist/chunk-J3AWE5I4.js.map +1 -0
  90. package/dist/{chunk-OXO2QJWV.js → chunk-JOR5LGYE.js} +2 -2
  91. package/dist/chunk-JOR5LGYE.js.map +1 -0
  92. package/dist/{chunk-SRSJO5QE.js → chunk-LAZLBC2Q.js} +2 -2
  93. package/dist/chunk-LAZLBC2Q.js.map +1 -0
  94. package/dist/{chunk-RFGW735Q.js → chunk-LRAIS3YB.js} +2 -2
  95. package/dist/chunk-LRAIS3YB.js.map +1 -0
  96. package/dist/{chunk-PL26TKNK.js → chunk-M6BWQMQY.js} +8 -8
  97. package/dist/chunk-M6BWQMQY.js.map +1 -0
  98. package/dist/{chunk-AYUHMAI6.js → chunk-MXNIVEVL.js} +2 -2
  99. package/dist/chunk-MXNIVEVL.js.map +1 -0
  100. package/dist/{chunk-4NG4Y2Q6.js → chunk-NJZMR7HM.js} +2 -2
  101. package/dist/chunk-NJZMR7HM.js.map +1 -0
  102. package/dist/{chunk-DG6G5EPF.js → chunk-NMWDHZVM.js} +2 -2
  103. package/dist/chunk-NMWDHZVM.js.map +1 -0
  104. package/dist/{chunk-X5QSICJ3.js → chunk-NS2TBYM4.js} +2 -2
  105. package/dist/chunk-NS2TBYM4.js.map +1 -0
  106. package/dist/{chunk-5TTZPGUY.js → chunk-NVKRZ5DI.js} +6 -6
  107. package/dist/chunk-NVKRZ5DI.js.map +1 -0
  108. package/dist/{chunk-4FEVHE7C.js → chunk-NVRJ7C3W.js} +4 -4
  109. package/dist/chunk-NVRJ7C3W.js.map +1 -0
  110. package/dist/{chunk-BFPBS5Y4.js → chunk-O27D24CA.js} +2 -2
  111. package/dist/chunk-O27D24CA.js.map +1 -0
  112. package/dist/{chunk-DUBUXJA3.js → chunk-PQQQXJGV.js} +4 -2
  113. package/dist/chunk-PQQQXJGV.js.map +1 -0
  114. package/dist/{chunk-6DFDTWGG.js → chunk-QYXKMLHO.js} +2 -2
  115. package/dist/chunk-QYXKMLHO.js.map +1 -0
  116. package/dist/{chunk-TOICTHR2.js → chunk-RRCD3A6G.js} +14 -6
  117. package/dist/chunk-RRCD3A6G.js.map +1 -0
  118. package/dist/{chunk-I3Q7KKYM.js → chunk-S3ECMF23.js} +2 -2
  119. package/dist/chunk-S3ECMF23.js.map +1 -0
  120. package/dist/{chunk-PSHUSWQH.js → chunk-S4ZGTDSG.js} +2 -2
  121. package/dist/chunk-S4ZGTDSG.js.map +1 -0
  122. package/dist/{chunk-HKVJ5MW3.js → chunk-VHXHLZ6R.js} +12 -3
  123. package/dist/chunk-VHXHLZ6R.js.map +1 -0
  124. package/dist/{chunk-NPNSKX3K.js → chunk-VLPE6OPN.js} +2 -2
  125. package/dist/chunk-VLPE6OPN.js.map +1 -0
  126. package/dist/{chunk-NCSWXG7G.js → chunk-VLQUXZKA.js} +9 -3
  127. package/dist/chunk-VLQUXZKA.js.map +1 -0
  128. package/dist/{chunk-EHIMH4J7.js → chunk-VR7MWD2X.js} +10 -4
  129. package/dist/chunk-VR7MWD2X.js.map +1 -0
  130. package/dist/chunk-WJN3V2H5.js +256 -0
  131. package/dist/chunk-WJN3V2H5.js.map +1 -0
  132. package/dist/{chunk-NN6GYOA2.js → chunk-XIZRXI7N.js} +2 -2
  133. package/dist/chunk-XIZRXI7N.js.map +1 -0
  134. package/dist/{chunk-TDN5EE3S.js → chunk-Y6KT7ZTR.js} +2 -2
  135. package/dist/chunk-Y6KT7ZTR.js.map +1 -0
  136. package/dist/{chunk-LHSUPNSE.js → chunk-YLJ6X3AC.js} +2 -2
  137. package/dist/chunk-YLJ6X3AC.js.map +1 -0
  138. package/dist/{chunk-OYQIONQF.js → chunk-Z4EPMX25.js} +5 -5
  139. package/dist/chunk-Z4EPMX25.js.map +1 -0
  140. package/dist/{chunk-GRHJQWV2.js → chunk-Z6PE5T7N.js} +6 -6
  141. package/dist/chunk-Z6PE5T7N.js.map +1 -0
  142. package/dist/collapsible-panel.d.ts +6 -6
  143. package/dist/collapsible-panel.js +3 -3
  144. package/dist/collapsible-panel.js.map +1 -1
  145. package/dist/content-item.d.ts +13 -2
  146. package/dist/content-item.js +1 -1
  147. package/dist/css-values.js +1 -1
  148. package/dist/device-class.js +1 -1
  149. package/dist/device-class.js.map +1 -1
  150. package/dist/disclosure-arrow.js +1 -1
  151. package/dist/empty-state.js +1 -1
  152. package/dist/floating-toolbar.d.ts +1 -1
  153. package/dist/floating-toolbar.js +1 -1
  154. package/dist/grid.d.ts +10 -3
  155. package/dist/grid.js +1 -1
  156. package/dist/help-tags-register.js +1 -1
  157. package/dist/help-tags-register.js.map +1 -1
  158. package/dist/index.d.ts +28 -26
  159. package/dist/index.js +41 -40
  160. package/dist/list-action-row.js +1 -1
  161. package/dist/list-header.d.ts +1 -0
  162. package/dist/list-header.js +1 -1
  163. package/dist/list-inset-control.js +1 -1
  164. package/dist/list-inset-text.js +1 -1
  165. package/dist/list-item.js +1 -1
  166. package/dist/list.d.ts +2 -2
  167. package/dist/list.js +1 -1
  168. package/dist/loading-spinner.d.ts +4 -2
  169. package/dist/loading-spinner.js +1 -1
  170. package/dist/lucide-icon.d.ts +3 -1
  171. package/dist/lucide-icon.js +1 -1
  172. package/dist/nav-stack.d.ts +2 -1
  173. package/dist/nav-stack.js +1 -1
  174. package/dist/pane.js +1 -1
  175. package/dist/popup-menu-register.js +7 -7
  176. package/dist/popup-menu-register.js.map +1 -1
  177. package/dist/popup-menu.js +1 -1
  178. package/dist/resizable-region.d.ts +1 -1
  179. package/dist/resizable-region.js +1 -1
  180. package/dist/row.d.ts +2 -2
  181. package/dist/row.js +1 -1
  182. package/dist/segmented-control.js +1 -1
  183. package/dist/select-register.js +9 -6
  184. package/dist/select-register.js.map +1 -1
  185. package/dist/select.d.ts +2 -1
  186. package/dist/select.js +1 -1
  187. package/dist/semantic-tone-CdW013KF.d.ts +4 -0
  188. package/dist/skeleton.js +1 -1
  189. package/dist/spacer.js +1 -1
  190. package/dist/split-view.d.ts +2 -2
  191. package/dist/split-view.js +2 -2
  192. package/dist/split-view.js.map +1 -1
  193. package/dist/state-banner.d.ts +5 -3
  194. package/dist/state-banner.js +1 -1
  195. package/dist/styles/badge.css +1 -1
  196. package/dist/styles/chip.css +1 -1
  197. package/dist/styles/components/actions/floating-toolbar/floating-toolbar.css +119 -0
  198. package/dist/styles/components/actions/popup-menu/popup-menu.css +285 -0
  199. package/dist/styles/components/actions/toolbar/toolbar.css +424 -0
  200. package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +841 -0
  201. package/dist/styles/components/actions/toolbar-text/toolbar-text.css +164 -0
  202. package/dist/styles/components/collections/list/list.css +133 -0
  203. package/dist/styles/components/collections/list-action-row/list-action-row.css +258 -0
  204. package/dist/styles/components/collections/list-header/list-header.css +229 -0
  205. package/dist/styles/components/collections/list-inset-control/list-inset-control.css +30 -0
  206. package/dist/styles/components/collections/list-inset-text/list-inset-text.css +29 -0
  207. package/dist/styles/components/collections/list-item/list-item.css +255 -0
  208. package/dist/styles/components/data-display/value-table/value-table.css +105 -0
  209. package/dist/styles/components/feedback/badge/badge.css +118 -0
  210. package/dist/styles/components/feedback/chip/chip.css +138 -0
  211. package/dist/styles/components/feedback/empty-state/empty-state.css +47 -0
  212. package/dist/styles/components/feedback/loading-spinner/loading-spinner.css +25 -0
  213. package/dist/styles/components/feedback/skeleton/skeleton.css +92 -0
  214. package/dist/styles/components/feedback/state-banner/state-banner.css +248 -0
  215. package/dist/styles/components/forms/segmented-control/segmented-control.css +196 -0
  216. package/dist/styles/components/forms/select/select.css +454 -0
  217. package/dist/styles/components/forms/token-search-field/token-search-field.css +381 -0
  218. package/dist/styles/components/layout/collapsible-panel/collapsible-panel.css +575 -0
  219. package/dist/styles/components/layout/grid/grid.css +85 -0
  220. package/dist/styles/components/layout/pane/pane.css +263 -0
  221. package/dist/styles/components/layout/resizable-region/resizable-region.css +545 -0
  222. package/dist/styles/components/layout/row/row.css +111 -0
  223. package/dist/styles/components/layout/spacer/spacer.css +11 -0
  224. package/dist/styles/components/layout/split-view/split-view.css +146 -0
  225. package/dist/styles/components/layout/workbench/workbench.css +1067 -0
  226. package/dist/styles/components/media/lucide-icon/lucide-icon.css +15 -0
  227. package/dist/styles/components/navigation/app-tab/app-tab.css +376 -0
  228. package/dist/styles/components/navigation/disclosure-arrow/disclosure-arrow.css +23 -0
  229. package/dist/styles/components/navigation/nav-stack/nav-stack.css +248 -0
  230. package/dist/styles/components/navigation/tab-bar/tab-bar.css +183 -0
  231. package/dist/styles/components/navigation/tab-scaffold/tab-scaffold.css +207 -0
  232. package/dist/styles/components/surfaces/content-item/content-item.css +120 -0
  233. package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +29 -0
  234. package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +56 -0
  235. package/dist/styles/components/typography/text/text.css +158 -0
  236. package/dist/styles/content-item.css +46 -1
  237. package/dist/styles/document.css +10 -0
  238. package/dist/styles/foundation.css +9 -6
  239. package/dist/styles/grid.css +50 -0
  240. package/dist/styles/lucide-icon.css +4 -0
  241. package/dist/styles/nav-stack.css +11 -0
  242. package/dist/styles/text.css +19 -0
  243. package/dist/styles/toolbar-control-group.css +51 -0
  244. package/dist/styles/toolbar-text.css +11 -0
  245. package/dist/styles/toolbar.css +32 -0
  246. package/dist/styles/webawesome.css +23 -6
  247. package/dist/sunken-panel.d.ts +1 -1
  248. package/dist/sunken-panel.js +1 -1
  249. package/dist/surface-scaffold.js +1 -1
  250. package/dist/tab-bar.js +1 -1
  251. package/dist/tab-scaffold.d.ts +1 -1
  252. package/dist/tab-scaffold.js +1 -1
  253. package/dist/tab-scaffold.js.map +1 -1
  254. package/dist/text.d.ts +16 -9
  255. package/dist/text.js +1 -1
  256. package/dist/token-search-field.d.ts +1 -1
  257. package/dist/token-search-field.js +1 -1
  258. package/dist/{token-search-field-CVGwDn2y.d.ts → token-search-model-DTcTXWMS.d.ts} +54 -54
  259. package/dist/token-search-model.d.ts +1 -1
  260. package/dist/token-search-model.js +1 -1
  261. package/dist/toolbar-control-group.d.ts +14 -2
  262. package/dist/toolbar-control-group.js +1 -1
  263. package/dist/toolbar-text.d.ts +10 -2
  264. package/dist/toolbar-text.js +1 -1
  265. package/dist/toolbar.d.ts +1 -1
  266. package/dist/toolbar.js +1 -1
  267. package/dist/value-table.js +1 -1
  268. package/dist/wire-catalog.js +2 -2
  269. package/dist/wire-catalog.js.map +1 -1
  270. package/dist/wire-content-items.js +1 -1
  271. package/dist/wire-content-items.js.map +1 -1
  272. package/dist/wire-nav-stack.js +59 -23
  273. package/dist/wire-nav-stack.js.map +1 -1
  274. package/dist/wire-resizable-regions.js +1 -1
  275. package/dist/wire-scroll-dividers.js +1 -1
  276. package/dist/wire-sidebar.js +1 -1
  277. package/dist/wire-sidebar.js.map +1 -1
  278. package/dist/wire-tab-bars.js +1 -1
  279. package/dist/wire-tab-scaffold.js +1 -1
  280. package/dist/wire-tab-scaffold.js.map +1 -1
  281. package/dist/wire-token-search-fields.d.ts +1 -1
  282. package/dist/wire-token-search-fields.js +1 -1
  283. package/dist/wire-toolbar-visibility.d.ts +13 -0
  284. package/dist/wire-toolbar-visibility.js +3 -0
  285. package/dist/wire-toolbar-visibility.js.map +1 -0
  286. package/dist/wire-workbench.js +1 -1
  287. package/dist/workbench.d.ts +3 -3
  288. package/dist/workbench.js +1 -1
  289. package/docs/accessibility.md +15 -0
  290. package/docs/collapsible-panel.md +5 -1
  291. package/docs/component-contract.md +56 -7
  292. package/docs/component-selection.md +73 -5
  293. package/docs/design/templates/empty-state/filtered-dark.svg +1 -1
  294. package/docs/design/templates/empty-state/filtered.svg +1 -1
  295. package/docs/design/templates/empty-state/with-action-dark.svg +1 -1
  296. package/docs/design/templates/empty-state/with-action.svg +1 -1
  297. package/docs/design/templates/empty-state-dark.svg +1 -1
  298. package/docs/design/templates/empty-state.svg +1 -1
  299. package/docs/design/templates/list/stack-dark.svg +1 -1
  300. package/docs/design/templates/list/stack.svg +1 -1
  301. package/docs/design/templates/list-dark.svg +1 -1
  302. package/docs/design/templates/list-header/action-dark.svg +1 -1
  303. package/docs/design/templates/list-header/action.svg +1 -1
  304. package/docs/design/templates/list-header/count-dark.svg +1 -1
  305. package/docs/design/templates/list-header/count.svg +1 -1
  306. package/docs/design/templates/list-header/inline-action-dark.svg +1 -1
  307. package/docs/design/templates/list-header/inline-action.svg +1 -1
  308. package/docs/design/templates/list-header/size-l-dark.svg +1 -1
  309. package/docs/design/templates/list-header/size-l.svg +1 -1
  310. package/docs/design/templates/list-header/size-m-dark.svg +1 -1
  311. package/docs/design/templates/list-header/size-m.svg +1 -1
  312. package/docs/design/templates/list-header/size-xl-dark.svg +1 -1
  313. package/docs/design/templates/list-header/size-xl.svg +1 -1
  314. package/docs/design/templates/list-header/size-xs-dark.svg +1 -1
  315. package/docs/design/templates/list-header/size-xs.svg +1 -1
  316. package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -1
  317. package/docs/design/templates/list-header/toggle-collapsed.svg +1 -1
  318. package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -1
  319. package/docs/design/templates/list-header/toggle-expanded.svg +1 -1
  320. package/docs/design/templates/list-header-dark.svg +1 -1
  321. package/docs/design/templates/list-header.svg +1 -1
  322. package/docs/design/templates/list.svg +1 -1
  323. package/docs/design/templates/segmented-control/equal-dark.svg +1 -1
  324. package/docs/design/templates/segmented-control/equal.svg +1 -1
  325. package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -1
  326. package/docs/design/templates/segmented-control/pill-small.svg +1 -1
  327. package/docs/design/templates/segmented-control-dark.svg +1 -1
  328. package/docs/design/templates/segmented-control.svg +1 -1
  329. package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -1
  330. package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -1
  331. package/docs/design/templates/tab-bar-dark.svg +1 -1
  332. package/docs/design/templates/tab-bar.svg +1 -1
  333. package/docs/design/templates/token-search-field/empty-dark.svg +1 -1
  334. package/docs/design/templates/token-search-field/empty.svg +1 -1
  335. package/docs/design/templates/token-search-field/tokens-dark.svg +1 -1
  336. package/docs/design/templates/token-search-field/tokens.svg +1 -1
  337. package/docs/design/templates/token-search-field-dark.svg +1 -1
  338. package/docs/design/templates/token-search-field.svg +1 -1
  339. package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -1
  340. package/docs/design/templates/toolbar/title-and-actions.svg +1 -1
  341. package/docs/design/templates/toolbar/width-visibility-320-dark.svg +1 -0
  342. package/docs/design/templates/toolbar/width-visibility-320.svg +1 -0
  343. package/docs/design/templates/toolbar/width-visibility-600-dark.svg +1 -0
  344. package/docs/design/templates/toolbar/width-visibility-600.svg +1 -0
  345. package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -1
  346. package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -1
  347. package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -1
  348. package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -1
  349. package/docs/design/templates/toolbar-control-group/icon-tile-brand-dark.svg +1 -0
  350. package/docs/design/templates/toolbar-control-group/icon-tile-brand.svg +1 -0
  351. package/docs/design/templates/toolbar-control-group/icon-tile-danger-dark.svg +1 -0
  352. package/docs/design/templates/toolbar-control-group/icon-tile-danger.svg +1 -0
  353. package/docs/design/templates/toolbar-control-group/icon-tile-neutral-dark.svg +1 -0
  354. package/docs/design/templates/toolbar-control-group/icon-tile-neutral.svg +1 -0
  355. package/docs/design/templates/toolbar-control-group/icon-tile-success-dark.svg +1 -0
  356. package/docs/design/templates/toolbar-control-group/icon-tile-success.svg +1 -0
  357. package/docs/design/templates/toolbar-control-group/icon-tile-warning-dark.svg +1 -0
  358. package/docs/design/templates/toolbar-control-group/icon-tile-warning.svg +1 -0
  359. package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -1
  360. package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -1
  361. package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -1
  362. package/docs/design/templates/toolbar-control-group/with-text.svg +1 -1
  363. package/docs/design/templates/toolbar-control-group-dark.svg +1 -1
  364. package/docs/design/templates/toolbar-control-group.svg +1 -1
  365. package/docs/design/templates/toolbar-dark.svg +1 -1
  366. package/docs/design/templates/toolbar-text/dark-tone-dark.svg +1 -0
  367. package/docs/design/templates/toolbar-text/dark-tone.svg +1 -0
  368. package/docs/design/templates/toolbar-text/default-dark.svg +1 -1
  369. package/docs/design/templates/toolbar-text/default.svg +1 -1
  370. package/docs/design/templates/toolbar-text/large-dark.svg +1 -1
  371. package/docs/design/templates/toolbar-text/large.svg +1 -1
  372. package/docs/design/templates/toolbar-text/small-dark.svg +1 -1
  373. package/docs/design/templates/toolbar-text/small.svg +1 -1
  374. package/docs/design/templates/toolbar-text-dark.svg +1 -1
  375. package/docs/design/templates/toolbar-text.svg +1 -1
  376. package/docs/design/templates/toolbar.svg +1 -1
  377. package/docs/design/templates/value-table/details-dark.svg +1 -1
  378. package/docs/design/templates/value-table/details.svg +1 -1
  379. package/docs/design/templates/value-table-dark.svg +1 -1
  380. package/docs/design/templates/value-table.svg +1 -1
  381. package/docs/design/templates.md +2 -0
  382. package/docs/document-baseline.md +4 -0
  383. package/docs/layout.md +23 -6
  384. package/docs/nav-stack.md +5 -1
  385. package/docs/sunken-panel.md +7 -7
  386. package/docs/ui-analyzer.md +12 -1
  387. package/docs/ui-doctor.md +12 -2
  388. package/docs/webawesome-theme.md +29 -59
  389. package/doctor/index.mjs +39 -30
  390. package/llms.txt +42 -1
  391. package/package.json +7 -2
  392. package/dist/chunk-3BYFWTP3.js.map +0 -1
  393. package/dist/chunk-4FEVHE7C.js.map +0 -1
  394. package/dist/chunk-4NG4Y2Q6.js.map +0 -1
  395. package/dist/chunk-4SQK27MR.js.map +0 -1
  396. package/dist/chunk-5I7QGQVT.js.map +0 -1
  397. package/dist/chunk-5TTZPGUY.js.map +0 -1
  398. package/dist/chunk-5UGLKFBF.js.map +0 -1
  399. package/dist/chunk-6DFDTWGG.js.map +0 -1
  400. package/dist/chunk-ALGYHYXP.js.map +0 -1
  401. package/dist/chunk-AYUHMAI6.js.map +0 -1
  402. package/dist/chunk-BFPBS5Y4.js.map +0 -1
  403. package/dist/chunk-DA3HS64I.js.map +0 -1
  404. package/dist/chunk-DG6G5EPF.js.map +0 -1
  405. package/dist/chunk-DPAUKNB6.js.map +0 -1
  406. package/dist/chunk-DUBUXJA3.js.map +0 -1
  407. package/dist/chunk-EHIMH4J7.js.map +0 -1
  408. package/dist/chunk-FKPKGP2H.js.map +0 -1
  409. package/dist/chunk-GRHJQWV2.js.map +0 -1
  410. package/dist/chunk-HKVJ5MW3.js.map +0 -1
  411. package/dist/chunk-HXTAPIHQ.js.map +0 -1
  412. package/dist/chunk-I3Q7KKYM.js.map +0 -1
  413. package/dist/chunk-JA4J7Y4C.js.map +0 -1
  414. package/dist/chunk-JGIV6ZDA.js.map +0 -1
  415. package/dist/chunk-K47P7QZC.js.map +0 -1
  416. package/dist/chunk-LHSUPNSE.js.map +0 -1
  417. package/dist/chunk-NCSWXG7G.js.map +0 -1
  418. package/dist/chunk-NN6GYOA2.js.map +0 -1
  419. package/dist/chunk-NPNSKX3K.js.map +0 -1
  420. package/dist/chunk-O5GM2JAM.js.map +0 -1
  421. package/dist/chunk-OXO2QJWV.js.map +0 -1
  422. package/dist/chunk-OYQIONQF.js.map +0 -1
  423. package/dist/chunk-PL26TKNK.js.map +0 -1
  424. package/dist/chunk-PSHUSWQH.js.map +0 -1
  425. package/dist/chunk-RFGW735Q.js.map +0 -1
  426. package/dist/chunk-RGS4WX2M.js.map +0 -1
  427. package/dist/chunk-SLWCCHNP.js.map +0 -1
  428. package/dist/chunk-SMZGAPCU.js.map +0 -1
  429. package/dist/chunk-SRSJO5QE.js.map +0 -1
  430. package/dist/chunk-SVLDRGPJ.js.map +0 -1
  431. package/dist/chunk-SX7FJXPJ.js.map +0 -1
  432. package/dist/chunk-TCXDZNCX.js.map +0 -1
  433. package/dist/chunk-TDN5EE3S.js.map +0 -1
  434. package/dist/chunk-TOICTHR2.js.map +0 -1
  435. package/dist/chunk-V4GAQ74C.js.map +0 -1
  436. package/dist/chunk-V4WLBOVJ.js.map +0 -1
  437. package/dist/chunk-VA5TN5PR.js.map +0 -1
  438. package/dist/chunk-WF75U3V4.js.map +0 -1
  439. package/dist/chunk-X5QSICJ3.js.map +0 -1
  440. package/dist/chunk-YDGNU2OD.js.map +0 -1
  441. package/dist/chunk-ZLKZFKLW.js.map +0 -1
  442. package/dist/{panel-toolbar-DDKh4uKd.d.ts → panel-toolbar-CL9tYOkh.d.ts} +1 -1
  443. package/dist/{types-BuHELdXR.d.ts → types-C9BubXfz.d.ts} +1 -1
@@ -1,6 +1,6 @@
1
1
  # Public API signatures for the UI authoring corpus
2
2
 
3
- Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.75` and `kerfjs@5.0.0-beta.75`. This bounded reference covers only APIs used by the seven-task corpus. It is interface evidence, not an implementation or runtime guarantee.
3
+ Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.77` and `kerfjs@5.0.0-beta.77`. This bounded reference covers only APIs used by the seven-task corpus. It is interface evidence, not an implementation or runtime guarantee.
4
4
 
5
5
  ## `@kerfjs/ui/css-values`
6
6
 
@@ -147,9 +147,9 @@ export { DisclosureArrow, type DisclosureArrowProps, type DisclosureDirection };
147
147
 
148
148
  ```ts
149
149
  import * as kerfjs from 'kerfjs';
150
- import { PaneSeparatorSide } from './pane.js';
151
150
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
152
151
  import { S as Sides } from './sides-BPSWde0A.js';
152
+ import { PaneSeparatorSide } from './pane.js';
153
153
 
154
154
  type ToolbarPosition = 'header' | 'footer';
155
155
  interface ToolbarProps {
@@ -217,13 +217,21 @@ export { Sides, Toolbar, type ToolbarConfig, type ToolbarPosition, type ToolbarP
217
217
 
218
218
  ```ts
219
219
  import * as kerfjs from 'kerfjs';
220
+ import { CssLength } from './css-values.js';
220
221
 
221
222
  type ToolbarTextSize = 'xlarge' | 'xlarge-fixed' | 'large' | 'default' | 'small' | 'xsmall';
223
+ type ToolbarTextTone = 'default' | 'dark';
222
224
  /** ARIA heading level for a title exposed as a heading landmark. */
223
225
  type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
224
226
  interface ToolbarTextBaseProps {
225
227
  text: string;
226
228
  size?: ToolbarTextSize;
229
+ /** Use dark-toolbar foregrounds on a dark or photo-backed toolbar. */
230
+ tone?: ToolbarTextTone;
231
+ /** Hide below this Toolbar content width; requires wireToolbarVisibility. */
232
+ hideBelow?: CssLength;
233
+ /** Show only below this Toolbar content width; requires wireToolbarVisibility. */
234
+ showBelow?: CssLength;
227
235
  className?: string;
228
236
  /** Optional id, e.g. so a dialog can reference the title via aria-labelledby. */
229
237
  id?: string;
@@ -264,9 +272,9 @@ type ToolbarTextProps = ToolbarTextBaseProps & (({
264
272
  wrap?: never;
265
273
  maxLines?: never;
266
274
  });
267
- declare function ToolbarText({ text, size, className, id, headingLevel, placeholder, wrap, ellipsis, maxLines, fill, slot, action, }: ToolbarTextProps): kerfjs.SafeHtml;
275
+ declare function ToolbarText({ text, size, tone, hideBelow, showBelow, className, id, headingLevel, placeholder, wrap, ellipsis, maxLines, fill, slot, action, }: ToolbarTextProps): kerfjs.SafeHtml;
268
276
 
269
- export { type HeadingLevel, ToolbarText, type ToolbarTextProps, type ToolbarTextSize };
277
+ export { type HeadingLevel, ToolbarText, type ToolbarTextProps, type ToolbarTextSize, type ToolbarTextTone };
270
278
  ```
271
279
 
272
280
  ## `@kerfjs/ui/toolbar-control-group`
@@ -274,9 +282,12 @@ export { type HeadingLevel, ToolbarText, type ToolbarTextProps, type ToolbarText
274
282
  ```ts
275
283
  import * as kerfjs from 'kerfjs';
276
284
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
285
+ import { CssLength } from './css-values.js';
277
286
 
278
287
  type ToolbarControlGroupAppearance = 'contained' | 'borderless';
279
288
  type ToolbarControlGroupTone = 'default' | 'dark';
289
+ /** Quiet palette for a contained, single decorative icon tile. */
290
+ type ToolbarControlGroupTileTone = 'neutral' | 'brand' | 'success' | 'warning' | 'danger';
280
291
  type ToolbarControlGroupButtonAppearance = 'plain' | 'push';
281
292
  type ToolbarControlGroupShape = 'pill' | 'rounded';
282
293
  type ToolbarControlGroupSize = 'default' | 'compact';
@@ -286,6 +297,7 @@ type ToolbarControlGroupFocusRing = 'control' | 'outline' | 'halo';
286
297
  type ToolbarControlGroupSelectedChrome = 'raised' | 'filled' | 'outline';
287
298
  type ToolbarControlGroupSelectedTone = 'brand' | 'neutral' | 'pop';
288
299
  type ToolbarControlGroupOverflow = 'visible' | 'scroll' | 'wrap';
300
+ type ToolbarControlGroupExpandedOverflow = 'clip' | 'visible';
289
301
  type ToolbarControlGroupMenuInset = 'standard' | 'compact' | 'list-zero';
290
302
  type ToolbarControlGroupVisibility = 'always' | 'compact-only' | 'hide-collapsed-tiny' | 'yield-to-expanded-sibling';
291
303
  type ToolbarControlGroupSizing = 'content' | 'grow' | 'fill';
@@ -314,6 +326,8 @@ interface ToolbarControlGroupProps {
314
326
  single?: boolean;
315
327
  appearance?: ToolbarControlGroupAppearance;
316
328
  tone?: ToolbarControlGroupTone;
329
+ /** Quiet fill, matching border and foreground for a contained single group whose only child is a decorative SVG. Ignored for interactive or mixed content. */
330
+ tileTone?: ToolbarControlGroupTileTone;
317
331
  buttonAppearance?: ToolbarControlGroupButtonAppearance;
318
332
  /** Corner shape: fully round `pill` (default) or a softer `rounded` rectangle. */
319
333
  shape?: ToolbarControlGroupShape;
@@ -330,8 +344,14 @@ interface ToolbarControlGroupProps {
330
344
  menuInset?: ToolbarControlGroupMenuInset;
331
345
  /** Keep an overlong row inside the available width by scrolling or wrapping. */
332
346
  overflow?: ToolbarControlGroupOverflow;
347
+ /** Let app-owned anchored surfaces extend outside an expanded search group. Collapsed searches retain their clipping. */
348
+ expandedOverflow?: ToolbarControlGroupExpandedOverflow;
333
349
  /** Responsive visibility owned by the enclosing Toolbar container. */
334
350
  visibility?: ToolbarControlGroupVisibility;
351
+ /** Hide below this Toolbar content width; requires wireToolbarVisibility. */
352
+ hideBelow?: CssLength;
353
+ /** Show only below this Toolbar content width; requires wireToolbarVisibility. */
354
+ showBelow?: CssLength;
335
355
  /** Intrinsic (default), grow from a basis, or occupy a full wrapping row. */
336
356
  sizing?: ToolbarControlGroupSizing;
337
357
  /** Place this group at the end of its flex row in a wrapping Toolbar zone. */
@@ -354,17 +374,17 @@ interface ToolbarControlGroupProps {
354
374
  /** Native named-slot assignment when composed inside a web component. */
355
375
  slot?: string;
356
376
  }
357
- declare function ToolbarControlGroup({ children, label, className, expanded, single, appearance, tone, buttonAppearance, shape, size, density, content, focusRing, selectedChrome, selectedTone, nestedDropdown, menuInset, overflow, visibility, sizing, placement, growBasis, relocateOnCollapse, scrim, busy, busyLabel, avatarImage, slot, }: ToolbarControlGroupProps): kerfjs.SafeHtml;
377
+ declare function ToolbarControlGroup({ children, label, className, expanded, single, appearance, tone, tileTone, buttonAppearance, shape, size, density, content, focusRing, selectedChrome, selectedTone, nestedDropdown, menuInset, overflow, expandedOverflow, visibility, hideBelow, showBelow, sizing, placement, growBasis, relocateOnCollapse, scrim, busy, busyLabel, avatarImage, slot, }: ToolbarControlGroupProps): kerfjs.SafeHtml;
358
378
 
359
- export { ToolbarActionLink, type ToolbarActionLinkProps, ToolbarControlGroup, type ToolbarControlGroupAppearance, type ToolbarControlGroupButtonAppearance, type ToolbarControlGroupContent, type ToolbarControlGroupDensity, type ToolbarControlGroupFocusRing, type ToolbarControlGroupMenuInset, type ToolbarControlGroupOverflow, type ToolbarControlGroupPlacement, type ToolbarControlGroupProps, type ToolbarControlGroupSelectedChrome, type ToolbarControlGroupSelectedTone, type ToolbarControlGroupShape, type ToolbarControlGroupSize, type ToolbarControlGroupSizing, type ToolbarControlGroupTone, type ToolbarControlGroupVisibility };
379
+ export { ToolbarActionLink, type ToolbarActionLinkProps, ToolbarControlGroup, type ToolbarControlGroupAppearance, type ToolbarControlGroupButtonAppearance, type ToolbarControlGroupContent, type ToolbarControlGroupDensity, type ToolbarControlGroupExpandedOverflow, type ToolbarControlGroupFocusRing, type ToolbarControlGroupMenuInset, type ToolbarControlGroupOverflow, type ToolbarControlGroupPlacement, type ToolbarControlGroupProps, type ToolbarControlGroupSelectedChrome, type ToolbarControlGroupSelectedTone, type ToolbarControlGroupShape, type ToolbarControlGroupSize, type ToolbarControlGroupSizing, type ToolbarControlGroupTileTone, type ToolbarControlGroupTone, type ToolbarControlGroupVisibility };
360
380
  ```
361
381
 
362
382
  ## `@kerfjs/ui/floating-toolbar`
363
383
 
364
384
  ```ts
365
385
  import * as kerfjs from 'kerfjs';
366
- import { CssLength } from './css-values.js';
367
386
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
387
+ import { CssLength } from './css-values.js';
368
388
 
369
389
  /** Where a {@link FloatingToolbar} floats within its positioned container. */
370
390
  type FloatingToolbarPosition = 'bottom' | 'bottom-start' | 'bottom-end' | 'top' | 'top-start' | 'top-end';
@@ -525,6 +545,7 @@ export { PopupMenu, type PopupMenuDivider, type PopupMenuElement, type PopupMenu
525
545
  ```ts
526
546
  import { SafeHtml } from 'kerfjs';
527
547
  import { HeadingLevel } from './toolbar-text.js';
548
+ import './css-values.js';
528
549
 
529
550
  type ListHeaderRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
530
551
  'data-component'?: never;
@@ -631,11 +652,11 @@ export { ListHeader, type ListHeaderProps };
631
652
 
632
653
  ```ts
633
654
  import * as kerfjs from 'kerfjs';
634
- import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
655
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
635
656
  import { H as HorizontalAlignment, L as ListVerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
636
657
  export { V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
637
- import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
638
658
  import { S as Sides } from './sides-BPSWde0A.js';
659
+ import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
639
660
 
640
661
  type ListRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
641
662
  'data-component'?: never;
@@ -898,7 +919,10 @@ export { ListInsetText, type ListInsetTextProps, Sides };
898
919
  ```ts
899
920
  import * as kerfjs from 'kerfjs';
900
921
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
922
+ import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
901
923
 
924
+ /** Base surface treatment or semantic status colors. */
925
+ type ContentItemAppearance = 'transparent' | 'surface' | SemanticTone;
902
926
  /** Whether the item's always-reserved 1px border is transparent or visible. */
903
927
  type ContentItemFrame = 'none' | 'framed';
904
928
  /** Corner shape: the 12px rounded rectangle or the 22px pill. */
@@ -907,9 +931,11 @@ type ContentItemShape = 'rounded' | 'pill';
907
931
  type ContentItemSelectionMode = 'none' | 'single' | 'multiple' | 'toggle';
908
932
  type ContentItemRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
909
933
  'data-component'?: never;
934
+ 'data-appearance'?: never;
910
935
  }>;
911
936
  type ContentItemInteractiveRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
912
937
  'data-component'?: never;
938
+ 'data-appearance'?: never;
913
939
  'data-action'?: never;
914
940
  'data-item-id'?: never;
915
941
  'data-interactive'?: never;
@@ -919,6 +945,12 @@ type ContentItemInteractiveRootAttributes = Readonly<Record<`data-${string}`, st
919
945
  'data-kui-pressed'?: never;
920
946
  }>;
921
947
  interface ContentItemBaseProps {
948
+ /**
949
+ * Coordinated background, border, and foreground colors. `transparent`
950
+ * preserves the surrounding surface; `surface` paints the base surface;
951
+ * semantic values match StateBanner. Defaults to `transparent`.
952
+ */
953
+ appearance?: ContentItemAppearance;
922
954
  /** Item content; a plain string is allowed for bare copy. */
923
955
  children?: KerfUiContent | string;
924
956
  /**
@@ -974,9 +1006,9 @@ type ContentItemProps = ContentItemBaseProps & ({
974
1006
  * border (transparent unless `framed`), 8px padding, and a rounded or pill
975
1007
  * radius. It owns that whole geometry, so wrappers must not add more.
976
1008
  */
977
- declare function ContentItem({ children, frame, flush, shape, title, ariaLabel, focusTarget, interactive, action, itemId, selectionMode, selected, disabled, className, rootAttributes, slot, }: ContentItemProps): kerfjs.SafeHtml;
1009
+ declare function ContentItem({ appearance, children, frame, flush, shape, title, ariaLabel, focusTarget, interactive, action, itemId, selectionMode, selected, disabled, className, rootAttributes, slot, }: ContentItemProps): kerfjs.SafeHtml;
978
1010
 
979
- export { ContentItem, type ContentItemFrame, type ContentItemProps, type ContentItemSelectionMode, type ContentItemShape };
1011
+ export { ContentItem, type ContentItemAppearance, type ContentItemFrame, type ContentItemProps, type ContentItemSelectionMode, type ContentItemShape, SemanticTone };
980
1012
  ```
981
1013
 
982
1014
  ## `@kerfjs/ui/value-table`
@@ -1254,11 +1286,12 @@ export { type ScrollDividerTarget, type WireScrollDividersOptions, wireScrollDiv
1254
1286
 
1255
1287
  ```ts
1256
1288
  import * as kerfjs from 'kerfjs';
1257
- import { PaneAppearance } from './pane.js';
1258
1289
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
1259
1290
  import { ToolbarConfig } from './toolbar.js';
1260
1291
  import { ToolbarTextSize, HeadingLevel } from './toolbar-text.js';
1292
+ import { PaneAppearance } from './pane.js';
1261
1293
  import './sides-BPSWde0A.js';
1294
+ import './css-values.js';
1262
1295
 
1263
1296
  /**
1264
1297
  * One entry in a {@link NavStack}. The app owns the stack as an array (usually a
@@ -1376,12 +1409,12 @@ export { type WireNavStackOptions, wireNavStack };
1376
1409
 
1377
1410
  ```ts
1378
1411
  import * as kerfjs from 'kerfjs';
1412
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
1379
1413
  import { NavStackProps, NavStackView } from './nav-stack.js';
1380
1414
  import { ResizableRegionProps } from './resizable-region.js';
1381
- import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
1382
- import './pane.js';
1383
1415
  import './toolbar.js';
1384
1416
  import './sides-BPSWde0A.js';
1417
+ import './pane.js';
1385
1418
  import './toolbar-text.js';
1386
1419
  import './css-values.js';
1387
1420
 
@@ -1568,16 +1601,16 @@ export { Pane, type PaneAppearance, type PaneChromeDividers, type PaneChromePlac
1568
1601
 
1569
1602
  ```ts
1570
1603
  import { SafeHtml } from 'kerfjs';
1604
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
1571
1605
  import { ListConfig } from './list.js';
1572
1606
  import { NavStackProps } from './nav-stack.js';
1573
1607
  import { PaneConfig } from './pane.js';
1574
1608
  import { ResizableRegionSeparator, ResizableRegionCollapseMotion, ResizableRegionContentOverflow, ResizableRegionPresentation, ResizableRegionRestorePosition } from './resizable-region.js';
1575
- import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
1609
+ import { a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-CL9tYOkh.js';
1576
1610
  import { ToolbarConfig } from './toolbar.js';
1577
- import { a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-DDKh4uKd.js';
1578
- import './css-values.js';
1579
1611
  import './flex-alignment-4ms8ZbV8.js';
1580
1612
  import './sides-BPSWde0A.js';
1613
+ import './css-values.js';
1581
1614
  import './toolbar-text.js';
1582
1615
  import './lucide-icon.js';
1583
1616
  import 'lucide';
@@ -1962,18 +1995,18 @@ export { type WireWorkbenchOptions, type WireWorkbenchPanel, type WorkbenchPanel
1962
1995
 
1963
1996
  ```ts
1964
1997
  import { SafeHtml } from 'kerfjs';
1998
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
1999
+ import { P as PanelSide, a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-CL9tYOkh.js';
2000
+ export { e as collapsiblePanelToggleIcon } from './panel-toolbar-CL9tYOkh.js';
1965
2001
  import { ListConfig } from './list.js';
1966
2002
  import { PaneConfig } from './pane.js';
1967
- import { P as PanelSide, a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-DDKh4uKd.js';
1968
- export { e as collapsiblePanelToggleIcon } from './panel-toolbar-DDKh4uKd.js';
1969
2003
  import { ResizableRegionSeparator, ResizableRegionCollapseMotion, ResizableRegionContentOverflow, ResizableRegionPresentation, ResizableRegionRestorePosition } from './resizable-region.js';
1970
- import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
1971
- import './css-values.js';
1972
- import './flex-alignment-4ms8ZbV8.js';
2004
+ import './toolbar.js';
1973
2005
  import './sides-BPSWde0A.js';
1974
2006
  import './lucide-icon.js';
1975
2007
  import 'lucide';
1976
- import './toolbar.js';
2008
+ import './css-values.js';
2009
+ import './flex-alignment-4ms8ZbV8.js';
1977
2010
 
1978
2011
  /** Which edge a {@link CollapsiblePanel} docks to. */
1979
2012
  type CollapsiblePanelSide = PanelSide;
@@ -2168,8 +2201,8 @@ export { type SidebarStorage, type WireSidebarOptions, type WireSidebarPanel, wi
2168
2201
 
2169
2202
  ```ts
2170
2203
  import { SafeHtml } from 'kerfjs';
2171
- import { PaneAppearance } from './pane.js';
2172
2204
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2205
+ import { PaneAppearance } from './pane.js';
2173
2206
 
2174
2207
  interface TabScaffoldTabBase<Id extends string> {
2175
2208
  id: Id;
@@ -2269,8 +2302,8 @@ export { type WireTabScaffoldOptions, wireTabScaffold };
2269
2302
 
2270
2303
  ```ts
2271
2304
  import { SafeHtml } from 'kerfjs';
2272
- import { CssLength } from './css-values.js';
2273
2305
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2306
+ import { CssLength } from './css-values.js';
2274
2307
 
2275
2308
  type ResizableRegionAxis = 'horizontal' | 'vertical';
2276
2309
  type ResizableRegionEdge = 'start' | 'end';
@@ -2415,20 +2448,20 @@ export { DEFAULT_BREAKPOINTS, type DeviceBreakpoints, type DeviceClass, type Dev
2415
2448
  ```ts
2416
2449
  import * as kerfjs from 'kerfjs';
2417
2450
  import { SafeHtml } from 'kerfjs';
2418
- import { a as CatalogProps } from './types-BuHELdXR.js';
2419
- export { b as CatalogBrand, c as CatalogEntry, d as CatalogRelated, C as CatalogResource, e as CatalogSecondaryGroup, f as CatalogSection, g as CatalogStageRootAttributes } from './types-BuHELdXR.js';
2451
+ import { a as CatalogProps } from './types-C9BubXfz.js';
2452
+ export { b as CatalogBrand, c as CatalogEntry, d as CatalogRelated, C as CatalogResource, e as CatalogSecondaryGroup, f as CatalogSection, g as CatalogStageRootAttributes } from './types-C9BubXfz.js';
2420
2453
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2421
2454
  import './toolbar.js';
2422
- import './pane.js';
2423
2455
  import './sides-BPSWde0A.js';
2456
+ import './pane.js';
2424
2457
  import './workbench.js';
2425
2458
  import './list.js';
2426
- import './css-values.js';
2427
2459
  import './flex-alignment-4ms8ZbV8.js';
2460
+ import './css-values.js';
2428
2461
  import './nav-stack.js';
2429
2462
  import './toolbar-text.js';
2430
2463
  import './resizable-region.js';
2431
- import './panel-toolbar-DDKh4uKd.js';
2464
+ import './panel-toolbar-CL9tYOkh.js';
2432
2465
  import './lucide-icon.js';
2433
2466
  import 'lucide';
2434
2467
 
@@ -2510,20 +2543,20 @@ export { Catalog, CatalogExample, type CatalogExampleAlign, type CatalogExampleP
2510
2543
  ## `@kerfjs/ui/catalog-resources`
2511
2544
 
2512
2545
  ```ts
2513
- import { C as CatalogResource } from './types-BuHELdXR.js';
2514
- import './semantic-content-BbzjvSu9.js';
2515
- import 'kerfjs';
2546
+ import { C as CatalogResource } from './types-C9BubXfz.js';
2516
2547
  import './toolbar.js';
2517
- import './pane.js';
2548
+ import 'kerfjs';
2549
+ import './semantic-content-BbzjvSu9.js';
2518
2550
  import './sides-BPSWde0A.js';
2551
+ import './pane.js';
2519
2552
  import './workbench.js';
2520
2553
  import './list.js';
2521
- import './css-values.js';
2522
2554
  import './flex-alignment-4ms8ZbV8.js';
2555
+ import './css-values.js';
2523
2556
  import './nav-stack.js';
2524
2557
  import './toolbar-text.js';
2525
2558
  import './resizable-region.js';
2526
- import './panel-toolbar-DDKh4uKd.js';
2559
+ import './panel-toolbar-CL9tYOkh.js';
2527
2560
  import './lucide-icon.js';
2528
2561
  import 'lucide';
2529
2562
 
@@ -2689,9 +2722,9 @@ export { SegmentedControl, type SegmentedControlAppearance, type SegmentedContro
2689
2722
 
2690
2723
  ```ts
2691
2724
  import { SafeHtml } from 'kerfjs';
2725
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2692
2726
  import { CssForegroundColor } from './css-values.js';
2693
2727
  import { LucideNode } from './lucide-icon.js';
2694
- import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2695
2728
  import 'lucide';
2696
2729
 
2697
2730
  interface SelectChoice<Value extends string = string> {
@@ -2740,6 +2773,7 @@ interface SelectBaseProps<Value extends string = string> {
2740
2773
  /** Supporting text shown below the control and associated with its combobox. */
2741
2774
  hint?: string;
2742
2775
  disabled?: boolean;
2776
+ /** Match menu width to the trigger; default menus grow to content within viewport gutters. */
2743
2777
  fitMenu?: boolean;
2744
2778
  /** Render as an unanimated loading skeleton: the label above a static, empty control box. */
2745
2779
  placeholder?: boolean;
@@ -2820,8 +2854,10 @@ export { Select, type SelectChoice, type SelectFocusRingOwner, type SelectMultip
2820
2854
  ```ts
2821
2855
  import { SafeHtml } from 'kerfjs';
2822
2856
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2857
+ import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
2823
2858
 
2824
- type StateBannerTone = 'neutral' | 'info' | 'pop' | 'success' | 'warning' | 'danger';
2859
+ /** @deprecated Use SemanticTone. */
2860
+ type StateBannerTone = SemanticTone;
2825
2861
  type StateBannerUrgency = 'status' | 'alert';
2826
2862
  type StateBannerCopyLayout = 'inline' | 'stacked';
2827
2863
  type StateBannerActionPlacement = 'trailing' | 'below';
@@ -2832,7 +2868,7 @@ interface StateBannerProps {
2832
2868
  badge?: string;
2833
2869
  icon?: SafeHtml;
2834
2870
  action?: KerfUiContent;
2835
- tone?: StateBannerTone;
2871
+ tone?: SemanticTone;
2836
2872
  urgency?: StateBannerUrgency;
2837
2873
  /** Keep the detail beside the title, or give it its own line. */
2838
2874
  copyLayout?: StateBannerCopyLayout;
@@ -2846,7 +2882,7 @@ interface StateBannerProps {
2846
2882
  }
2847
2883
  declare function StateBanner({ title, detail, badge, icon, action, tone, urgency, copyLayout, actionPlacement, className, placeholder, slot, }: StateBannerProps): SafeHtml;
2848
2884
 
2849
- export { StateBanner, type StateBannerActionPlacement, type StateBannerCopyLayout, type StateBannerProps, type StateBannerTone, type StateBannerUrgency };
2885
+ export { SemanticTone, StateBanner, type StateBannerActionPlacement, type StateBannerCopyLayout, type StateBannerProps, type StateBannerTone, type StateBannerUrgency };
2850
2886
  ```
2851
2887
 
2852
2888
  ## `@kerfjs/ui/empty-state`
@@ -2874,13 +2910,15 @@ export { EmptyState, type EmptyStateProps };
2874
2910
 
2875
2911
  ```ts
2876
2912
  import * as kerfjs from 'kerfjs';
2913
+ import { CssForegroundColor } from './css-values.js';
2877
2914
  import { LucideIconSize } from './lucide-icon.js';
2878
2915
  import 'lucide';
2879
- import './css-values.js';
2880
2916
 
2881
2917
  type LoadingSpinnerSize = LucideIconSize;
2882
2918
  interface LoadingSpinnerProps {
2883
2919
  className?: string;
2920
+ /** Foreground color; omit to inherit the surrounding text color. */
2921
+ color?: CssForegroundColor;
2884
2922
  label?: string;
2885
2923
  /** Named icon scale or positive pixel size, converted to rem. Omit for 1em. */
2886
2924
  size?: LoadingSpinnerSize;
@@ -2888,7 +2926,7 @@ interface LoadingSpinnerProps {
2888
2926
  slot?: string;
2889
2927
  }
2890
2928
  /** Stable viewBox-centered progress ring based on svg-spinners' MIT-licensed 180-ring. */
2891
- declare function LoadingSpinner({ className, label, size, slot, }: LoadingSpinnerProps): kerfjs.SafeHtml;
2929
+ declare function LoadingSpinner({ className, color, label, size, slot, }: LoadingSpinnerProps): kerfjs.SafeHtml;
2892
2930
 
2893
2931
  export { LoadingSpinner, type LoadingSpinnerProps, type LoadingSpinnerSize };
2894
2932
  ```
@@ -2933,8 +2971,8 @@ export { Skeleton, type SkeletonProps };
2933
2971
 
2934
2972
  ```ts
2935
2973
  import * as kerfjs from 'kerfjs';
2936
- import { CssFlexKeyword, CssFlex } from './css-values.js';
2937
2974
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2975
+ import { CssFlexKeyword, CssFlex } from './css-values.js';
2938
2976
 
2939
2977
  type SunkenPanelShape = 'rounded' | 'square';
2940
2978
  interface SunkenPanelProps {
@@ -2964,16 +3002,16 @@ export { SunkenPanel, type SunkenPanelProps, type SunkenPanelShape };
2964
3002
  ## `@kerfjs/ui/token-search-field`
2965
3003
 
2966
3004
  ```ts
3005
+ export { T as TokenSearchEditorAttributes, a as TokenSearchField, b as TokenSearchFieldProps, c as TokenSearchFieldValue, j as TokenSearchToken, k as TokenSearchTrailingAction, p as placeTokenSearchCaret, r as readTokenSearchField } from './token-search-model-DTcTXWMS.js';
2967
3006
  import 'kerfjs';
2968
3007
  import './semantic-content-BbzjvSu9.js';
2969
- export { T as TokenSearchEditorAttributes, a as TokenSearchField, b as TokenSearchFieldProps, c as TokenSearchFieldValue, j as TokenSearchToken, k as TokenSearchTrailingAction, p as placeTokenSearchCaret, r as readTokenSearchField } from './token-search-field-CVGwDn2y.js';
2970
3008
  ```
2971
3009
 
2972
3010
  ## `@kerfjs/ui/wire-token-search-fields`
2973
3011
 
2974
3012
  ```ts
2975
3013
  import { Signal } from 'kerfjs';
2976
- import { d as TokenSearchModel } from './token-search-field-CVGwDn2y.js';
3014
+ import { d as TokenSearchModel } from './token-search-model-DTcTXWMS.js';
2977
3015
  import './semantic-content-BbzjvSu9.js';
2978
3016
 
2979
3017
  interface TokenSearchSubmit {
@@ -3170,14 +3208,16 @@ export { type ActionHandler, type DelegateActionsOptions, action, delegateAction
3170
3208
 
3171
3209
  ```ts
3172
3210
  import { SafeHtml } from 'kerfjs';
3211
+ import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
3173
3212
 
3174
- type BadgeTone = 'neutral' | 'brand' | 'pop' | 'success' | 'warning' | 'danger';
3213
+ /** @deprecated Use SemanticTone. */
3214
+ type BadgeTone = SemanticTone;
3175
3215
  type BadgeAppearance = 'quiet' | 'solid' | 'outline';
3176
3216
  type BadgeShape = 'pill' | 'rounded';
3177
3217
  /** Size of a text badge. A text-free dot is the separate `size: 'dot'` form. */
3178
3218
  type BadgeSize = 'compact' | 'default';
3179
3219
  interface BadgeCommonProps {
3180
- tone?: BadgeTone;
3220
+ tone?: SemanticTone;
3181
3221
  className?: string;
3182
3222
  /** Native named-slot assignment when composed inside a web component. */
3183
3223
  slot?: string;
@@ -3220,19 +3260,20 @@ type BadgeProps = BadgeTextProps | BadgeDotProps;
3220
3260
  /** Compact, non-interactive metadata whose tone, emphasis, and shape are configured by props. */
3221
3261
  declare function Badge(props: BadgeProps): SafeHtml;
3222
3262
 
3223
- export { Badge, type BadgeAppearance, type BadgeDotProps, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeTextProps, type BadgeTone };
3263
+ export { Badge, type BadgeAppearance, type BadgeDotProps, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeTextProps, type BadgeTone, SemanticTone };
3224
3264
  ```
3225
3265
 
3226
3266
  ## `@kerfjs/ui/chip`
3227
3267
 
3228
3268
  ```ts
3229
3269
  import { SafeHtml } from 'kerfjs';
3230
- import { BadgeTone, BadgeAppearance, BadgeShape, BadgeSize } from './badge.js';
3270
+ import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
3271
+ import { BadgeAppearance, BadgeShape, BadgeSize } from './badge.js';
3231
3272
 
3232
3273
  interface ChipCommonProps {
3233
3274
  /** Decorative leading icon, normally an unsized LucideIcon. */
3234
3275
  icon?: SafeHtml;
3235
- tone?: BadgeTone;
3276
+ tone?: SemanticTone;
3236
3277
  appearance?: BadgeAppearance;
3237
3278
  shape?: BadgeShape;
3238
3279
  size?: BadgeSize;
@@ -3280,6 +3321,8 @@ interface LucideIconProps {
3280
3321
  className?: string;
3281
3322
  /** Foreground color; omit to inherit the surrounding text color. */
3282
3323
  color?: CssForegroundColor;
3324
+ /** Flow with surrounding text instead of occupying a block. */
3325
+ inline?: boolean;
3283
3326
  label?: string;
3284
3327
  /** Named icon scale or positive pixel size, converted to rem. Omit for 1em. */
3285
3328
  size?: LucideIconSize;
@@ -3287,11 +3330,29 @@ interface LucideIconProps {
3287
3330
  slot?: string;
3288
3331
  }
3289
3332
  /** Render a Lucide-compatible icon node without copying icon SVG strings. */
3290
- declare function LucideIcon({ icon, name, appearance, className, color, label, size, slot, }: LucideIconProps): kerfjs.SafeHtml;
3333
+ declare function LucideIcon({ icon, name, appearance, className, color, inline, label, size, slot, }: LucideIconProps): kerfjs.SafeHtml;
3291
3334
 
3292
3335
  export { LucideIcon, type LucideIconProps, type LucideIconSize, type LucideNode };
3293
3336
  ```
3294
3337
 
3338
+ ## `@kerfjs/ui/wire-toolbar-visibility`
3339
+
3340
+ ```ts
3341
+ type Root = HTMLElement | Document;
3342
+ /**
3343
+ * Wire ToolbarText and ToolbarControlGroup width thresholds below root.
3344
+ * Below is strict: hideBelow hides at width < threshold; showBelow hides at
3345
+ * width >= threshold. Percentages use the closest Toolbar's content box;
3346
+ * em and custom properties use the item's own inherited context. Invalid,
3347
+ * negative, unresolved, or contradictory thresholds leave the item visible.
3348
+ * This helper changes only a component-owned visibility marker. Existing
3349
+ * CSS visibility policies still apply. Dispose with the owning application.
3350
+ */
3351
+ declare function wireToolbarVisibility(root: Root): () => void;
3352
+
3353
+ export { wireToolbarVisibility };
3354
+ ```
3355
+
3295
3356
  ## `@kerfjs/ui/surface-scaffold`
3296
3357
 
3297
3358
  ```ts
@@ -3333,6 +3394,16 @@ export { DialogSurface, type DialogSurfacePresentation, type DialogSurfaceProps,
3333
3394
  import * as kerfjs from 'kerfjs';
3334
3395
  import { KerfBaseAttrs } from 'kerfjs/jsx-runtime';
3335
3396
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
3397
+ import { S as Sides } from './sides-BPSWde0A.js';
3398
+ import { CssForegroundColor } from './css-values.js';
3399
+
3400
+ type FieldLabelProps = Omit<KerfBaseAttrs, 'children' | 'class' | 'className'> & {
3401
+ children: string;
3402
+ class?: string;
3403
+ className?: string;
3404
+ };
3405
+ /** Visible field heading for a read-only preview; use its id with aria-labelledby on the preview group. */
3406
+ declare function FieldLabel({ children, class: classValue, className, ...attributes }: FieldLabelProps): kerfjs.SafeHtml;
3336
3407
 
3337
3408
  type TextVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
3338
3409
  type TextTone = 'default' | 'quiet' | 'danger';
@@ -3342,24 +3413,21 @@ type TextBorder = 'transparent' | 'none';
3342
3413
  type TextLineHeight = 'default' | 'tight';
3343
3414
  type TextWrap = 'normal' | 'anywhere' | 'nowrap' | 'truncate';
3344
3415
  type TextContent = KerfUiContent | string | number | readonly TextContent[];
3345
- type FieldLabelProps = Omit<KerfBaseAttrs, 'children' | 'class' | 'className'> & {
3346
- children: string;
3347
- class?: string;
3348
- className?: string;
3349
- };
3350
- /** Visible field heading for a read-only preview; use its id with aria-labelledby on the preview group. */
3351
- declare function FieldLabel({ children, class: classValue, className, ...attributes }: FieldLabelProps): kerfjs.SafeHtml;
3352
3416
  type TextCommonProps = Omit<KerfBaseAttrs, 'children' | 'class' | 'className'> & {
3353
3417
  /** Native heading, paragraph, or inline span element to render. Defaults to `p`. */
3354
3418
  variant?: TextVariant;
3355
3419
  /** Semantic foreground treatment. Defaults to the inherited foreground. */
3356
3420
  tone?: TextTone;
3421
+ /** Foreground color; overrides tone when supplied, or inherits when omitted. */
3422
+ color?: CssForegroundColor;
3357
3423
  /** Text sizing independent of the native semantic element. */
3358
3424
  size?: TextSize;
3359
3425
  /** Font family independent of the native semantic element. */
3360
3426
  font?: TextFont;
3361
3427
  /** Transparent alignment border or no border when embedded in owner chrome. */
3362
3428
  border?: TextBorder;
3429
+ /** Add the shared control gutter outside selected physical edges. */
3430
+ controlMargins?: Sides;
3363
3431
  /** Remove the block variant's item padding and border in compact content. */
3364
3432
  flush?: boolean;
3365
3433
  /** Use compact leading for short dialog or metadata copy. */
@@ -3383,19 +3451,19 @@ type TextProps = TextCommonProps & ({
3383
3451
  * content-item padding; `span` adds no box geometry.
3384
3452
  * All ordinary native heading/paragraph attributes pass through to the element.
3385
3453
  */
3386
- declare function Text({ variant: Variant, tone, size, font, border, flush, lineHeight, wrap, maxLines, children, class: classValue, className, ...attributes }: TextProps): kerfjs.SafeHtml;
3454
+ declare function Text({ variant: Variant, tone, color, size, font, border, flush, controlMargins, lineHeight, wrap, maxLines, children, class: classValue, className, style, ...attributes }: TextProps): kerfjs.SafeHtml;
3387
3455
 
3388
- export { FieldLabel, type FieldLabelProps, Text, type TextBorder, type TextContent, type TextFont, type TextLineHeight, type TextProps, type TextSize, type TextTone, type TextVariant, type TextWrap };
3456
+ export { FieldLabel, type FieldLabelProps, Sides, Text, type TextBorder, type TextContent, type TextFont, type TextLineHeight, type TextProps, type TextSize, type TextTone, type TextVariant, type TextWrap };
3389
3457
  ```
3390
3458
 
3391
3459
  ## `@kerfjs/ui/row`
3392
3460
 
3393
3461
  ```ts
3394
3462
  import * as kerfjs from 'kerfjs';
3395
- import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
3396
- import { H as HorizontalAlignment, V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
3397
3463
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
3464
+ import { H as HorizontalAlignment, V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
3398
3465
  import { S as Sides } from './sides-BPSWde0A.js';
3466
+ import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
3399
3467
 
3400
3468
  type RowRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
3401
3469
  'data-component'?: never;
@@ -3445,8 +3513,9 @@ export { CssFlex, CssFlexKeyword, CssLength, HorizontalAlignment, Row, type RowP
3445
3513
 
3446
3514
  ```ts
3447
3515
  import * as kerfjs from 'kerfjs';
3448
- import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
3449
3516
  import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
3517
+ import { S as Sides } from './sides-BPSWde0A.js';
3518
+ import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
3450
3519
 
3451
3520
  type GridRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
3452
3521
  'data-component'?: never;
@@ -3455,6 +3524,8 @@ type GridRootAttributes = Readonly<Record<`data-${string}`, string | undefined>
3455
3524
  'data-auto-fill'?: never;
3456
3525
  'data-flex'?: never;
3457
3526
  'data-fill'?: never;
3527
+ 'data-text-insets'?: never;
3528
+ 'data-control-insets'?: never;
3458
3529
  }>;
3459
3530
  interface GridCommonProps {
3460
3531
  children?: KerfUiContent;
@@ -3472,6 +3543,10 @@ interface GridCommonProps {
3472
3543
  * flex layout use `flex` instead. Defaults to false.
3473
3544
  */
3474
3545
  fill?: boolean;
3546
+ /** Physical sides that receive the standard 17px text inset. */
3547
+ textInsets?: Sides;
3548
+ /** Physical sides that receive the standard 8px control inset. Text insets win on overlap. */
3549
+ controlInsets?: Sides;
3475
3550
  className?: string;
3476
3551
  /** Safe `data-*` metadata; Grid-owned structural attributes remain protected. */
3477
3552
  rootAttributes?: GridRootAttributes;
@@ -3491,9 +3566,9 @@ type GridProps = GridCommonProps & ({
3491
3566
  autoFill?: boolean;
3492
3567
  });
3493
3568
  /** Render equal tracks with a fixed count or a responsive minimum width. */
3494
- declare function Grid({ children, selectionMode, ariaLabel, columns, minColumnWidth, autoFill, gap, flex, fill, className, rootAttributes, slot, }: GridProps): kerfjs.SafeHtml;
3569
+ declare function Grid({ children, selectionMode, ariaLabel, columns, minColumnWidth, autoFill, gap, flex, fill, textInsets, controlInsets, className, rootAttributes, slot, }: GridProps): kerfjs.SafeHtml;
3495
3570
 
3496
- export { CssFlex, CssFlexKeyword, CssLength, Grid, type GridProps, UiSpaceName };
3571
+ export { CssFlex, CssFlexKeyword, CssLength, Grid, type GridProps, Sides, UiSpaceName };
3497
3572
  ```
3498
3573
 
3499
3574
  ## `@kerfjs/ui/spacer`
@@ -3522,7 +3597,7 @@ export { CssLength, Spacer, type SpacerProps, UiSpaceName };
3522
3597
  ## `@kerfjs/ui/token-search-model`
3523
3598
 
3524
3599
  ```ts
3600
+ export { d as TokenSearchModel, e as TokenSearchModelOptions, f as TokenSearchResolvedToken, g as TokenSearchRule, h as TokenSearchState, i as TokenSearchSuggestion, l as createTokenSearchModel } from './token-search-model-DTcTXWMS.js';
3525
3601
  import 'kerfjs';
3526
- export { d as TokenSearchModel, e as TokenSearchModelOptions, f as TokenSearchResolvedToken, g as TokenSearchRule, h as TokenSearchState, i as TokenSearchSuggestion, l as createTokenSearchModel } from './token-search-field-CVGwDn2y.js';
3527
3602
  import './semantic-content-BbzjvSu9.js';
3528
3603
  ```