@logicplanes/kaeso-ui 0.4.2 → 0.4.4

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 (279) hide show
  1. package/NOTICE.md +1 -1
  2. package/ai/component-guides.md +312 -21
  3. package/ai/component-registry.json +616 -25
  4. package/ai/component-registry.md +154 -26
  5. package/ai/icons.md +4 -4
  6. package/ai/tokens.md +1 -1
  7. package/dist/blocks/delete-resource.js +15 -14
  8. package/dist/blocks/delete-resource.js.map +1 -1
  9. package/dist/blocks/pages.js +2 -2
  10. package/dist/blocks/resource-list.js +41 -40
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
  13. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
  14. package/dist/chunks/{app-frame-C8csevkL.js → app-frame-DogGRmsu.js} +22 -21
  15. package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
  16. package/dist/chunks/{banner-Cb8OWnqJ.js → banner-BA2ALw9M.js} +2 -2
  17. package/dist/chunks/{banner-Cb8OWnqJ.js.map → banner-BA2ALw9M.js.map} +1 -1
  18. package/dist/chunks/{button-Dzu7_csE.js → button-CzuxqawA.js} +3 -3
  19. package/dist/chunks/{button-Dzu7_csE.js.map → button-CzuxqawA.js.map} +1 -1
  20. package/dist/chunks/{calendar--YemJsv4.js → calendar-BWaf2MXc.js} +57 -41
  21. package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
  22. package/dist/chunks/{checkbox-CDfC6E-M.js → checkbox-CQjwCPkc.js} +11 -9
  23. package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
  24. package/dist/chunks/{code-block-U5fCqwgC.js → code-block-BZIe_B9l.js} +41 -37
  25. package/dist/chunks/code-block-BZIe_B9l.js.map +1 -0
  26. package/dist/chunks/code-block-DdNPHEzI.js +344 -0
  27. package/dist/chunks/code-block-DdNPHEzI.js.map +1 -0
  28. package/dist/chunks/combobox-DjDI7SUC.js +319 -0
  29. package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
  30. package/dist/chunks/{command-list-0RR4DpUe.js → command-list-C2Y7V_lt.js} +2 -2
  31. package/dist/chunks/{command-list-0RR4DpUe.js.map → command-list-C2Y7V_lt.js.map} +1 -1
  32. package/dist/chunks/{copy-button-7-irieJw.js → copy-button-FJvPJn72.js} +3 -3
  33. package/dist/chunks/{copy-button-7-irieJw.js.map → copy-button-FJvPJn72.js.map} +1 -1
  34. package/dist/chunks/{core-Bl9NrBLS.js → core-BYns5ytV.js} +145 -139
  35. package/dist/chunks/core-BYns5ytV.js.map +1 -0
  36. package/dist/chunks/{date-popup-RQkqhko4.js → date-popup-CPA_zt6o.js} +4 -4
  37. package/dist/chunks/{date-popup-RQkqhko4.js.map → date-popup-CPA_zt6o.js.map} +1 -1
  38. package/dist/chunks/{de-BnNQtBSV.js → de-D_0mmG-k.js} +10 -1
  39. package/dist/chunks/de-D_0mmG-k.js.map +1 -0
  40. package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
  41. package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
  42. package/dist/chunks/icon-CPJWE2N-.js +95 -0
  43. package/dist/chunks/icon-CPJWE2N-.js.map +1 -0
  44. package/dist/chunks/{icon-button-CPYR21Sz.js → icon-button-CrdF_eMG.js} +3 -3
  45. package/dist/chunks/{icon-button-CPYR21Sz.js.map → icon-button-CrdF_eMG.js.map} +1 -1
  46. package/dist/chunks/{identity-DPuTkMsa.js → identity-BmhQ6BQ-.js} +15 -15
  47. package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
  48. package/dist/chunks/{input-TyLIaQ5k.js → input-2VJuj_M4.js} +10 -5
  49. package/dist/chunks/input-2VJuj_M4.js.map +1 -0
  50. package/dist/chunks/{input-group-CUSNsQjQ.js → input-group-DQ_4DoXg.js} +2 -2
  51. package/dist/chunks/{input-group-CUSNsQjQ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
  52. package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
  53. package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
  54. package/dist/chunks/{iso-field-CWbxlll-.js → iso-field-B2rTwiBo.js} +2 -2
  55. package/dist/chunks/{iso-field-CWbxlll-.js.map → iso-field-B2rTwiBo.js.map} +1 -1
  56. package/dist/chunks/{link-B2I55xg9.js → link-KWI7PevW.js} +2 -2
  57. package/dist/chunks/{link-B2I55xg9.js.map → link-KWI7PevW.js.map} +1 -1
  58. package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
  59. package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
  60. package/dist/chunks/{list-CkOozrVY.js → list-M1csq-d4.js} +18 -16
  61. package/dist/chunks/{list-CkOozrVY.js.map → list-M1csq-d4.js.map} +1 -1
  62. package/dist/chunks/{markdown-BEgwZFlu.js → markdown-BupwFOae.js} +5 -5
  63. package/dist/chunks/{markdown-BEgwZFlu.js.map → markdown-BupwFOae.js.map} +1 -1
  64. package/dist/chunks/{menu-fl_QQb38.js → menu-DEmBfdPm.js} +29 -26
  65. package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
  66. package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
  67. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
  68. package/dist/chunks/{page-header-DjUMDG69.js → page-header-DL2y2iZp.js} +2 -2
  69. package/dist/chunks/{page-header-DjUMDG69.js.map → page-header-DL2y2iZp.js.map} +1 -1
  70. package/dist/chunks/{pagination-BaY8jdli.js → pagination-Cn_qF4cg.js} +3 -3
  71. package/dist/chunks/{pagination-BaY8jdli.js.map → pagination-Cn_qF4cg.js.map} +1 -1
  72. package/dist/chunks/{picker-popover-DShea4b8.js → picker-popover-BxyU1U9F.js} +14 -13
  73. package/dist/chunks/{picker-popover-DShea4b8.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
  74. package/dist/chunks/{popover-CFMwaeIP.js → popover-DNN4S47w.js} +2 -2
  75. package/dist/chunks/{popover-CFMwaeIP.js.map → popover-DNN4S47w.js.map} +1 -1
  76. package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
  77. package/dist/chunks/{radio-Yl0nO-Sj.js → radio-CDDFpdtL.js} +4 -4
  78. package/dist/chunks/{radio-Yl0nO-Sj.js.map → radio-CDDFpdtL.js.map} +1 -1
  79. package/dist/chunks/{range-popup-CkhsK3wI.js → range-popup-CRyWYUB1.js} +5 -5
  80. package/dist/chunks/{range-popup-CkhsK3wI.js.map → range-popup-CRyWYUB1.js.map} +1 -1
  81. package/dist/chunks/{rights-BlQx9C_j.js → rights-Cyp0Pzp-.js} +5 -5
  82. package/dist/chunks/{rights-BlQx9C_j.js.map → rights-Cyp0Pzp-.js.map} +1 -1
  83. package/dist/chunks/{segmented-C97zvDR1.js → segmented-CErcoxwi.js} +2 -2
  84. package/dist/chunks/{segmented-C97zvDR1.js.map → segmented-CErcoxwi.js.map} +1 -1
  85. package/dist/chunks/{sidebar-DtFlejU7.js → sidebar-3r1ZRXlN.js} +253 -235
  86. package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
  87. package/dist/chunks/{sidebar-menu-CxQbGwyj.js → sidebar-menu-BN3jkTlK.js} +2 -2
  88. package/dist/chunks/{sidebar-menu-CxQbGwyj.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
  89. package/dist/chunks/{switch-b-VkStWj.js → switch-BNMq_kGt.js} +2 -2
  90. package/dist/chunks/{switch-b-VkStWj.js.map → switch-BNMq_kGt.js.map} +1 -1
  91. package/dist/chunks/{tag-DNdX1XRR.js → tag-D_M1s2qS.js} +2 -2
  92. package/dist/chunks/{tag-DNdX1XRR.js.map → tag-D_M1s2qS.js.map} +1 -1
  93. package/dist/chunks/{text-DCGGNqTM.js → text-CIXH8rmT.js} +2 -2
  94. package/dist/chunks/{text-DCGGNqTM.js.map → text-CIXH8rmT.js.map} +1 -1
  95. package/dist/chunks/{textarea-CT2S2JVM.js → textarea--4FRL3Pb.js} +3 -3
  96. package/dist/chunks/{textarea-CT2S2JVM.js.map → textarea--4FRL3Pb.js.map} +1 -1
  97. package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
  98. package/dist/chunks/{timeseries-B-8OfeZm.js → timeseries-D1xjRXfk.js} +2 -2
  99. package/dist/chunks/{timeseries-B-8OfeZm.js.map → timeseries-D1xjRXfk.js.map} +1 -1
  100. package/dist/chunks/{toolbar-DL6zVrzU.js → toolbar-WA_oZgu-.js} +5 -4
  101. package/dist/chunks/{toolbar-DL6zVrzU.js.map → toolbar-WA_oZgu-.js.map} +1 -1
  102. package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
  103. package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
  104. package/dist/chunks/{tooltip-root-BeAMXzxU.js → tooltip-root-DzahJDVj.js} +2 -2
  105. package/dist/chunks/{tooltip-root-BeAMXzxU.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
  106. package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
  107. package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
  108. package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
  109. package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
  110. package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-Bm6UPIbW.js} +10 -1
  111. package/dist/chunks/zh-CN-Bm6UPIbW.js.map +1 -0
  112. package/dist/components/agent-avatar.js +2 -0
  113. package/dist/components/app-frame.js +2 -2
  114. package/dist/components/banner.js +1 -1
  115. package/dist/components/button-group.js +2 -2
  116. package/dist/components/button.js +1 -1
  117. package/dist/components/calendar.js +1 -1
  118. package/dist/components/charts/bar.js +1 -1
  119. package/dist/components/charts/donut.js +1 -1
  120. package/dist/components/charts/gauge.js +1 -1
  121. package/dist/components/charts/sankey.js +1 -1
  122. package/dist/components/charts/timeseries.js +1 -1
  123. package/dist/components/charts.js +2 -2
  124. package/dist/components/checkbox.js +1 -1
  125. package/dist/components/code-block.js +3 -2
  126. package/dist/components/combobox.js +1 -1
  127. package/dist/components/command-list.js +2 -2
  128. package/dist/components/command-palette.js +85 -81
  129. package/dist/components/command-palette.js.map +1 -1
  130. package/dist/components/copy-button.js +1 -1
  131. package/dist/components/data-table.js +191 -187
  132. package/dist/components/data-table.js.map +1 -1
  133. package/dist/components/date-picker.js +6 -4
  134. package/dist/components/date-picker.js.map +1 -1
  135. package/dist/components/dialog.js +125 -91
  136. package/dist/components/dialog.js.map +1 -1
  137. package/dist/components/display-options.js +49 -46
  138. package/dist/components/display-options.js.map +1 -1
  139. package/dist/components/filter-chip.js +3 -3
  140. package/dist/components/filter-chip.js.map +1 -1
  141. package/dist/components/filter-row.js +1 -1
  142. package/dist/components/icon-button.js +1 -1
  143. package/dist/components/icon.js +1 -1
  144. package/dist/components/input.js +49 -49
  145. package/dist/components/input.js.map +1 -1
  146. package/dist/components/kaeso/conversation.js +3 -3
  147. package/dist/components/kaeso/identity.js +1 -1
  148. package/dist/components/kaeso/moments.js +3 -3
  149. package/dist/components/kaeso/rights.js +1 -1
  150. package/dist/components/kaeso/usage.js +8 -8
  151. package/dist/components/kaeso/usage.js.map +1 -1
  152. package/dist/components/kaeso.js +263 -95
  153. package/dist/components/kaeso.js.map +1 -1
  154. package/dist/components/key-value.js +2 -2
  155. package/dist/components/link.js +1 -1
  156. package/dist/components/list.js +1 -1
  157. package/dist/components/markdown.js +1 -1
  158. package/dist/components/menu.js +2 -2
  159. package/dist/components/page-header.js +1 -1
  160. package/dist/components/pagination.js +1 -1
  161. package/dist/components/playground.js +27 -26
  162. package/dist/components/playground.js.map +1 -1
  163. package/dist/components/popover.js +12 -11
  164. package/dist/components/popover.js.map +1 -1
  165. package/dist/components/radio.js +1 -1
  166. package/dist/components/segmented.js +1 -1
  167. package/dist/components/settings.js +8 -8
  168. package/dist/components/settings.js.map +1 -1
  169. package/dist/components/sheet.js +2 -2
  170. package/dist/components/sidebar.js +1 -1
  171. package/dist/components/switch.js +1 -1
  172. package/dist/components/tabs.js +22 -22
  173. package/dist/components/tabs.js.map +1 -1
  174. package/dist/components/tag.js +1 -1
  175. package/dist/components/text.js +1 -1
  176. package/dist/components/theme-menu.js +33 -30
  177. package/dist/components/theme-menu.js.map +1 -1
  178. package/dist/components/thumbnail.js +41 -0
  179. package/dist/components/thumbnail.js.map +1 -0
  180. package/dist/components/toast.js +96 -87
  181. package/dist/components/toast.js.map +1 -1
  182. package/dist/components/toolbar.js +1 -1
  183. package/dist/components/tooltip.js +1 -1
  184. package/dist/format.js.map +1 -1
  185. package/dist/i18n-provider.js +1 -1
  186. package/dist/index.js +90 -88
  187. package/dist/kaeso.css +3 -0
  188. package/dist/styles.css +1 -1
  189. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
  190. package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
  191. package/dist/types/component-docs.d.ts +1 -1
  192. package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
  193. package/dist/types/components/agent-avatar/docs.d.ts +19 -0
  194. package/dist/types/components/agent-avatar/index.d.ts +3 -0
  195. package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
  196. package/dist/types/components/agent-avatar/models.d.ts +4 -0
  197. package/dist/types/components/app-frame/app-frame.d.ts +3 -8
  198. package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
  199. package/dist/types/components/calendar/calendar.d.ts +1 -4
  200. package/dist/types/components/charts/core.d.ts +11 -18
  201. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  202. package/dist/types/components/code-block/diff-view.d.ts +30 -0
  203. package/dist/types/components/code-block/diff.d.ts +26 -0
  204. package/dist/types/components/code-block/docs.d.ts +14 -0
  205. package/dist/types/components/code-block/index.d.ts +1 -0
  206. package/dist/types/components/combobox/combobox.d.ts +26 -2
  207. package/dist/types/components/command-list/picker-popover.d.ts +1 -4
  208. package/dist/types/components/command-palette/command-palette.d.ts +1 -4
  209. package/dist/types/components/data-table/data-table.d.ts +2 -1
  210. package/dist/types/components/data-table/docs.d.ts +1 -0
  211. package/dist/types/components/dialog/dialog.d.ts +7 -9
  212. package/dist/types/components/dialog/docs.d.ts +2 -0
  213. package/dist/types/components/dialog/scope.d.ts +2 -0
  214. package/dist/types/components/dialog/step-dialog.d.ts +38 -5
  215. package/dist/types/components/display-options/display-options.d.ts +2 -5
  216. package/dist/types/components/input/input.d.ts +23 -0
  217. package/dist/types/components/kaeso/client-button.d.ts +17 -0
  218. package/dist/types/components/kaeso/docs.d.ts +18 -0
  219. package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
  220. package/dist/types/components/kaeso/identity.d.ts +2 -0
  221. package/dist/types/components/kaeso/index.d.ts +2 -0
  222. package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
  223. package/dist/types/components/kaeso/usage.d.ts +2 -0
  224. package/dist/types/components/list/list.d.ts +4 -8
  225. package/dist/types/components/menu/docs.d.ts +8 -1
  226. package/dist/types/components/menu/menu.d.ts +19 -31
  227. package/dist/types/components/playground/parameter-panel.d.ts +1 -4
  228. package/dist/types/components/popover/hover-card.d.ts +2 -0
  229. package/dist/types/components/radio/docs.d.ts +15 -0
  230. package/dist/types/components/radio/radio.d.ts +2 -4
  231. package/dist/types/components/settings/settings.d.ts +2 -0
  232. package/dist/types/components/sidebar/sidebar.d.ts +13 -35
  233. package/dist/types/components/tabs/tabs.d.ts +15 -0
  234. package/dist/types/components/theme-menu/docs.d.ts +2 -0
  235. package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
  236. package/dist/types/components/thumbnail/docs.d.ts +10 -0
  237. package/dist/types/components/thumbnail/index.d.ts +1 -0
  238. package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
  239. package/dist/types/components/toast/toast.d.ts +5 -12
  240. package/dist/types/components/toolbar/toolbar.d.ts +1 -6
  241. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  242. package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
  243. package/dist/types/format/index.d.ts +5 -5
  244. package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
  245. package/dist/types/icons/groups.d.ts +3 -3
  246. package/dist/types/icons/vocabulary.d.ts +20 -0
  247. package/dist/types/index.d.ts +2 -0
  248. package/dist/types/utils/inset.d.ts +4 -0
  249. package/dist/types/utils/link-provider.d.ts +1 -1
  250. package/dist/types/utils/merge-refs.d.ts +3 -0
  251. package/dist/types/utils/portal-context.d.ts +1 -1
  252. package/dist/utils.js +3 -3
  253. package/foundations/shape.md +1 -1
  254. package/package.json +2 -2
  255. package/dist/chunks/app-frame-C8csevkL.js.map +0 -1
  256. package/dist/chunks/calendar--YemJsv4.js.map +0 -1
  257. package/dist/chunks/checkbox-CDfC6E-M.js.map +0 -1
  258. package/dist/chunks/code-block-U5fCqwgC.js.map +0 -1
  259. package/dist/chunks/combobox-BARyrpXH.js +0 -314
  260. package/dist/chunks/combobox-BARyrpXH.js.map +0 -1
  261. package/dist/chunks/core-Bl9NrBLS.js.map +0 -1
  262. package/dist/chunks/de-BnNQtBSV.js.map +0 -1
  263. package/dist/chunks/dialog-DQ9vZ7vr.js +0 -353
  264. package/dist/chunks/dialog-DQ9vZ7vr.js.map +0 -1
  265. package/dist/chunks/icon-CBzvyEqC.js +0 -91
  266. package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
  267. package/dist/chunks/identity-DPuTkMsa.js.map +0 -1
  268. package/dist/chunks/input-TyLIaQ5k.js.map +0 -1
  269. package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
  270. package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
  271. package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
  272. package/dist/chunks/menu-fl_QQb38.js.map +0 -1
  273. package/dist/chunks/nav-sheet-B2rNb8GB.js +0 -60
  274. package/dist/chunks/nav-sheet-B2rNb8GB.js.map +0 -1
  275. package/dist/chunks/sidebar-DtFlejU7.js.map +0 -1
  276. package/dist/chunks/tooltip-BMQ9BtPp.js +0 -151
  277. package/dist/chunks/tooltip-BMQ9BtPp.js.map +0 -1
  278. package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
  279. package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
@@ -1,6 +1,36 @@
1
1
  # @logicplanes/kaeso-ui component registry
2
2
 
3
- Version 0.4.2. Generated from the component types, their descriptions and variants; do not edit.
3
+ Version 0.4.4. Generated from the component types, their descriptions and variants; do not edit.
4
+
5
+ ## agent-avatar
6
+
7
+ `import { AgentAttribution, AgentAvatar } from "@logicplanes/kaeso-ui/agent-avatar";`
8
+
9
+ - **size** (agent_attribution): `20` — 20px person, 10px agent badge; `24` (default) — 24px person, 12px agent badge (default); `28` — 28px person, 14px agent badge; `32` — 32px person, 16px agent badge; `40` — 40px person, 20px agent badge
10
+ - **size** (agent_avatar): `20` — 20px; `24` (default) — 24px: rows and lists (default); `28` — 28px; `32` — 32px; `40` — 40px: an agent's own page, menus
11
+
12
+ ### AgentAttribution
13
+
14
+ A person's avatar with the agent that acted for them as a small badge on its corner, for audit rows and activity; it reads as one picture named after both. The badge stays inside the avatar's square, so a table cell never cuts it off.
15
+
16
+ | Prop | Type | Default | Description |
17
+ |---|---|---|---|
18
+ | `agent` * | `{ name: string; model: string; }` | | The agent that acted, with its name and model family id from the API; the family is named in the accessible name only. |
19
+ | `name` * | `string` | | The name of the person the agent acted for; it starts the accessible name, such as `Ada Okafor via Release helper (Claude)`. |
20
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
21
+ | `size` | `24 \| 20 \| 28 \| 32 \| 40` | `24` | The diameter of the person's avatar in pixels; the agent badge is half of it. |
22
+ | `src` | `string` | | The person's picture; without one, or when it fails to load, their initials show. |
23
+
24
+ ### AgentAvatar
25
+
26
+ An agent acting for a person: one bot face on an ink square, the same for every agent; write its model family beside it with useModelName where it matters.
27
+
28
+ | Prop | Type | Default | Description |
29
+ |---|---|---|---|
30
+ | `name` * | `string` | | The agent's name, such as `Release helper`; it is the accessible name. |
31
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
32
+ | `decorative` | `boolean` | | Hides it from assistive technology when the agent's name is already written next to it. |
33
+ | `size` | `24 \| 20 \| 28 \| 32 \| 40` | `24` | The side of the square in pixels, on the same scale as `Avatar`. |
4
34
 
5
35
  ## app-frame
6
36
 
@@ -176,7 +206,7 @@ The calendar: 36px day circles, today ringed, ranges as a continuous strip with
176
206
  | `onMonthChange` | `((month: Date) => void)` | | Called when the month shown changes. |
177
207
  | `onSelect` | `((value: Date \| DateRange) => void)` | | Called with the new day or range. |
178
208
  | `selected` | `Date \| DateRange` | | The selected day or range. |
179
- | `weekStartsOn` | `0 \| 4 \| 1 \| 2 \| 3 \| 5 \| 6` | `1` | 0 = Sunday, 1 = Monday (default). |
209
+ | `weekStartsOn` | `0 \| 2 \| 3 \| 4 \| 1 \| 5 \| 6` | `1` | 0 = Sunday, 1 = Monday (default). |
180
210
 
181
211
  ## charts
182
212
 
@@ -500,9 +530,10 @@ Inline code: Geist Mono 13 on fill-1.
500
530
 
501
531
  ## code-block
502
532
 
503
- `import { CodeBlock, CodeHighlighted, JsonView } from "@logicplanes/kaeso-ui/code-block";`
533
+ `import { CodeBlock, CodeHighlighted, DiffView, JsonView } from "@logicplanes/kaeso-ui/code-block";`
504
534
 
505
535
  - **surface** (code_block): `well` (default) — A well: radius 14, fill, no ring (default); `plain` — No surface, inside another well
536
+ - **surface** (diff_view): `well` (default) — A well: radius 14, fill, no ring (default); `plain` — No surface, inside another well
506
537
  - **surface** (json_view): `well` (default) — On a well (default); `plain` — No surface
507
538
 
508
539
  ### CodeBlock
@@ -545,6 +576,23 @@ The same component as `CodeBlock`, under another name.
545
576
  | `title` | `ReactNode` | | A file name in the title bar. |
546
577
  | `wrap` | `boolean \| "phone"` | `false` | Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). `phone` wraps them only below 640px, with wrapped parts indented, and scrolls from there up. |
547
578
 
579
+ ### DiffView
580
+
581
+ Two versions of a text side by side in one column: removed lines on red, added lines on green, the changed words inside them marked, syntax highlighted, and long unchanged runs folded away.
582
+
583
+ | Prop | Type | Default | Description |
584
+ |---|---|---|---|
585
+ | `after` * | `string` | | The new version. |
586
+ | `before` * | `string` | | The old version. |
587
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
588
+ | `context` | `number` | `3` | Unchanged lines kept around each change before the rest folds (3 by default). |
589
+ | `copy` | `boolean` | `true` | Hide the copy circle, which copies the diff with + and - markers. |
590
+ | `lang` | `CodeLang` | `text` | The language of both versions, for highlighting (`text` by default). |
591
+ | `lineNumbers` | `boolean` | | Shows the old and the new line numbers. |
592
+ | `surface` | `"well" \| "plain"` | `well` | On a filled well (`well`) or on the panel itself (`plain`). |
593
+ | `title` | `ReactNode` | | A name in the title bar, beside the count of added and removed lines. |
594
+ | `wrap` | `boolean` | `false` | Long lines wrap instead of scrolling sideways, keeping their indent: values in a narrow column such as a sheet. |
595
+
548
596
  ### JsonView
549
597
 
550
598
  A folding JSON tree: copy any path, highlight a search. For request and response bodies.
@@ -592,6 +640,7 @@ A disclosure row: a chevron that rotates in 180ms, a measured height animation.
592
640
 
593
641
  `import { Autocomplete, Combobox, Highlight } from "@logicplanes/kaeso-ui/combobox";`
594
642
 
643
+ - **size** (autocomplete): `sm` — 32px; `md` (default) — 36px (default); `lg` — 40px; `xl` — 48px
595
644
  - **size** (combobox): `sm` — 32px; `md` (default) — 36px (default); `lg` — 40px; `xl` — 48px
596
645
 
597
646
  ### Autocomplete
@@ -817,6 +866,7 @@ A table for many rows: sorting, selection, loading and empty states, more rows o
817
866
  | `columns` * | `ColumnDef<T, any>[]` | | The columns, as TanStack Table column definitions. |
818
867
  | `data` * | `T[]` | | The rows. |
819
868
  | `activeRowId` | `string` | | The id of a row to show as active (open in a sheet). |
869
+ | `canSelectRow` | `((row: T) => boolean)` | | Whether a row can be selected; a row that can't keeps a disabled checkbox, and select all skips it. |
820
870
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
821
871
  | `density` | `"default" \| "compact" \| "comfortable"` | | How much room each row gets. |
822
872
  | `empty` | `ReactNode` | | What to show when there are no rows, usually an `Empty`. |
@@ -872,7 +922,7 @@ A pill showing the date; a popover with the calendar and a typed ISO field.
872
922
  | `required` | `boolean` | | Marks it as required in a form. |
873
923
  | `size` | `"md" \| "sm" \| "lg"` | | The height of the field. |
874
924
  | `value` | `Date \| null` | | The chosen day, when you control it. |
875
- | `weekStartsOn` | `0 \| 4 \| 1 \| 2 \| 3 \| 5 \| 6` | | The first day of the week, from 0 (Sunday) to 6 (Saturday); the language decides by default. |
925
+ | `weekStartsOn` | `0 \| 2 \| 3 \| 4 \| 1 \| 5 \| 6` | | The first day of the week, from 0 (Sunday) to 6 (Saturday); the language decides by default. |
876
926
 
877
927
  ### DateRangePicker
878
928
 
@@ -900,7 +950,7 @@ A pill showing the range ("Oct 1 – Oct 12") or its preset ("Last 30 days"); pr
900
950
  | `required` | `boolean` | | Marks it as required in a form. |
901
951
  | `size` | `"md" \| "sm" \| "lg"` | | The height of the field. |
902
952
  | `value` | `DateRange \| null` | | The chosen range, when you control it. |
903
- | `weekStartsOn` | `0 \| 4 \| 1 \| 2 \| 3 \| 5 \| 6` | | The first day of the week, from 0 (Sunday) to 6 (Saturday); the language decides by default. |
953
+ | `weekStartsOn` | `0 \| 2 \| 3 \| 4 \| 1 \| 5 \| 6` | | The first day of the week, from 0 (Sunday) to 6 (Saturday); the language decides by default. |
904
954
 
905
955
  ### TimeInput
906
956
 
@@ -957,6 +1007,8 @@ Confirms deleting a resource: names the object and the consequence, asks for its
957
1007
  - **anchor** (dialog): `center` (default) — Centered on the screen (default); `top` — A fixed top edge, for content that changes height, such as the steps of a StepDialog
958
1008
  - **size** (layer_dialog): `sm` — 440px: confirmations, short forms; `md` (default) — 560px: forms (default); `lg` — 720px: two columns, previews
959
1009
  - **anchor** (layer_dialog): `center` (default) — Centered on the screen (default); `top` — A fixed top edge, for content that changes height, such as the steps of a StepDialog
1010
+ - **size** (step_dialog): `sm` (default) — 440px: most tasks in a few steps (default); `md` — 560px: steps with longer forms; `lg` — 720px: steps with two columns or previews
1011
+ - **tone** (step_dialog): `default` (default) — The last step's button is primary (default); `danger` — The last step's button is a danger button, for a task that ends in deletion
960
1012
 
961
1013
  ### AlertDialog
962
1014
 
@@ -992,6 +1044,7 @@ A modal dialog: 440 / 560 / 720, radius 20, title, description, body, actions. E
992
1044
  | `defaultOpen` | `boolean` | | Whether it starts open, when the component keeps its own state. |
993
1045
  | `description` | `ReactNode` | | One sentence under the title. |
994
1046
  | `footer` | `ReactNode` | | Right-aligned actions: Cancel (secondary) then the primary. |
1047
+ | `footerStart` | `ReactNode` | | A quiet action at the footer's start, such as a link to another way of doing the task. |
995
1048
  | `headerStart` | `ReactNode` | | A top bar above the title, with this at its start and the close circle at its end (LayerDialog's back button). The title, description and content keep one left edge; `null` keeps the bar with an empty start. |
996
1049
  | `hideClose` | `boolean` | | Hide the close circle (rare). |
997
1050
  | `inline` | `boolean` | | Render without a portal and backdrop, for documentation and state matrices. |
@@ -1000,6 +1053,7 @@ A modal dialog: 440 / 560 / 720, radius 20, title, description, body, actions. E
1000
1053
  | `open` | `boolean` | | Whether it is open, when you control it. |
1001
1054
  | `persistent` | `boolean` | | A press outside doesn't close it, for forms that would lose what was typed; Escape and the close circle still do. Every StepDialog is persistent. |
1002
1055
  | `size` | `"md" \| "sm" \| "lg"` | | The dialog's width. |
1056
+ | `toolbar` | `ReactNode` | | Controls that stay under the title while the body scrolls, such as a search over the list below; a hairline shows once the body is scrolled. |
1003
1057
  | `trigger` | `ReactElement<unknown, string \| JSXElementConstructor<any>>` | | The trigger, a single element. |
1004
1058
 
1005
1059
  ### DialogScope
@@ -1017,7 +1071,7 @@ A stacked dialog: a second layer slides over the first (add model → review val
1017
1071
 
1018
1072
  | Prop | Type | Default | Description |
1019
1073
  |---|---|---|---|
1020
- | `layers` * | `DialogLayer[]` | | The layers, each with its title, content and footer; one shows at a time, and the ones below it stay mounted and hidden. |
1074
+ | `layers` * | `DialogLayer[]` | | The layers, each with its title, content and footer, and optionally a toolbar and a footer start; one shows at a time, and the ones below it stay mounted and hidden. |
1021
1075
  | `anchor` | `"center" \| "top"` | | Where it sits: centered, or with a fixed top edge for layers of different heights. |
1022
1076
  | `busy` | `boolean` | | Keeps the dialog open while work it started is underway: Escape, a press outside, the close circle, Dialog.Close, Enter and ⌘Enter do nothing, so a request is never abandoned or sent twice. |
1023
1077
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
@@ -1035,12 +1089,12 @@ A stacked dialog: a second layer slides over the first (add model → review val
1035
1089
 
1036
1090
  ### StepDialog
1037
1091
 
1038
- A form split into steps, one question at a time, like sign-in: the step's title and fields, Back and Continue, the action on the last step. Enter in a single-line field and ⌘/Ctrl+Enter continue. The dialog takes each step's own height and keeps its top edge where it opened: it grows or shrinks 200ms downward from the size it has as the step changes, so the title never jumps, and the new step drifts in from the side it comes from. With `result`, what the last step made (a key shown once) takes the steps' place in the same dialog, at its own size. Continue and Back move the focus into the step they show (its first field; without one, the primary action, or Back when the last step destroys), and a screen reader hears which step it is.
1092
+ A form split into steps, one question at a time, like sign-in: the step's title and fields, Back and Continue, the action on the last step. Enter in a single-line field and ⌘/Ctrl+Enter continue. The dialog takes each step's own height and keeps its top edge where it opened: it grows or shrinks 200ms downward from the size it has as the step changes, so the title never jumps, and the new step drifts in from the side it comes from. With `result`, what the last step made (a key shown once) takes the steps' place in the same dialog, at its own size. Continue and Back move the focus into the step they show (its first field; without one, the primary action, or Back when the last step destroys), and a screen reader hears which step it is. Inside a step, `useStepDialog()?.advance()` continues as Continue would, once the step is no longer blocked: a choice that answers the step, like a provider tile, moves on in one press.
1039
1093
 
1040
1094
  | Prop | Type | Default | Description |
1041
1095
  |---|---|---|---|
1042
1096
  | `onSubmit` * | `() => void` | | Called when the last step is submitted. |
1043
- | `steps` * | `DialogStep[]` | | The steps, each with its title, content and whether it can be continued. |
1097
+ | `steps` * | `DialogStep[]` | | The steps, each with its title, content and whether it can be continued; `onContinue` checks a step before the next opens, such as asking a server, and `continueLabel` names that check: "Detect settings". |
1044
1098
  | `submitLabel` * | `string` | | The last step's button: "Create key". |
1045
1099
  | `title` * | `ReactNode` | | What the whole dialog does: "Create key". |
1046
1100
  | `defaultStep` | `number` | `0` | Start on this step (state matrices). |
@@ -1218,7 +1272,7 @@ Heading levels map to the title tokens (4.3).
1218
1272
  | Prop | Type | Default | Description |
1219
1273
  |---|---|---|---|
1220
1274
  | `balance` | `boolean` | `true` | Balances the lines of a heading that wraps. |
1221
- | `level` | `4 \| 1 \| 2 \| 3 \| 5 \| 6` | | The heading level in the document, independent of its size. |
1275
+ | `level` | `2 \| 3 \| 4 \| 1 \| 5 \| 6` | | The heading level in the document, independent of its size. |
1222
1276
  | `size` | `"title" \| "display" \| "title-sm" \| "title-lg"` | `title-sm` | The type style, from `title-sm` to `display`. |
1223
1277
 
1224
1278
  ## icon
@@ -1270,6 +1324,7 @@ A circle with an icon, a required name, and a tooltip that says it.
1270
1324
  - **size** (input_group): `sm` — 32px: toolbars and compact forms; `md` (default) — 36px: the default; `lg` — 40px; `xl` — 48px: sign-in and setup forms
1271
1325
  - **align** (number_input): `end` (default) — Right-aligned tabular digits (default); `start` — Left-aligned
1272
1326
  - **size** (otp_input): `md` (default) — 48px cells (default); `sm` — 40px cells
1327
+ - **size** (search_input): `sm` (default) — 32px: toolbars (default); `md` — 36px: a search at the top of a page or dialog; `lg` — 40px; `xl` — 48px
1273
1328
  - **kind** (sensitive_input): `secret` (default) — Provider keys and tokens: never autocompleted (default); `password` — Passwords: browser password managers allowed, Caps Lock hint
1274
1329
  - **size** (tag_input): `md` (default) — 36px at one row; grows as tags wrap (default)
1275
1330
  - **resize** (textarea): `auto` (default) — Grows with its content to 8 lines, then scrolls (default); `vertical` — People can drag it taller
@@ -1442,13 +1497,13 @@ A multi-line field: radius 14 (multi-line text cannot be a pill), the same mater
1442
1497
 
1443
1498
  ## kaeso
1444
1499
 
1445
- `import { CapabilityIcons, ConversationView, EffectiveAccess, EnvironmentSnippet, KeyDisplay, LimitMeter, ModelLabel, ProviderBadge, ProviderCard, ProviderPicker, RequestTimeline, RightsMatrix, RolePicker, SecretReveal, StatusCode, UsageBreakdown } from "@logicplanes/kaeso-ui/kaeso";`
1500
+ `import { CapabilityIcons, ClientButton, ConversationView, EffectiveAccess, EnvironmentSnippet, GrantSummary, KeyDisplay, LimitMeter, ModelLabel, ProviderBadge, ProviderCard, ProviderPicker, RequestTimeline, RightsMatrix, RolePicker, SecretReveal, StatusCode, UsageBreakdown } from "@logicplanes/kaeso-ui/kaeso";`
1446
1501
 
1447
1502
  - **density** (conversation): `default` (default) — 24px between turns (default); `compact` — 16px, inside sheets
1448
1503
  - **layout** (effective_access): `rows` (default) — A row per group: its name, what is granted in words, and how many (default)
1449
1504
  - **provider** (identity): `sm` — 16px, inside table cells; `md` (default) — 20px (default); `lg` — 28px; `xl` — 40px: a provider's own page or card
1450
1505
  - **secret** (moments): `md` (default) — The one-time secret on a well
1451
- - **appearance** (provider_picker): `list` (default) — A search field over every provider, always open: a dialog step (default); `select` — A pill that opens the searchable list: forms and toolbars
1506
+ - **appearance** (provider_picker): `list` (default) — A search field over every provider, always open: a dialog step (default); `select` — A pill that opens the searchable list: forms and toolbars; `grid` — Tiles with each provider's mark, connected ones first: the first step of a dialog
1452
1507
  - **origin** (rights_matrix): `preset` — Comes from the role; `added` — Added on top of the role; `removed` — Removed from the role; `none` (default) — Not granted
1453
1508
  - **mode** (rights_matrix): `edit` (default) — Checkboxes, group toggles and requirement hints (default); `readOnly` — A mark per right and, under it, the roles that grant it
1454
1509
  - **appearance** (role_picker): `list` (default) — Every role as a row with its description, built-in then custom (default): invites and role changes; `select` — A pill that opens the roles: filters, table rows and tight forms
@@ -1463,6 +1518,17 @@ A model's capabilities as small icons, each named in a tooltip and read as one l
1463
1518
  | `capabilities` | `Capability[]` | `[]` | The capabilities: tools, reasoning, vision, pdf, structuredOutput. |
1464
1519
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
1465
1520
 
1521
+ ### ClientButton
1522
+
1523
+ An agent client's mark, such as Claude, Cursor or GitHub Copilot, on a raised tile, as a button that opens how to connect it.
1524
+
1525
+ | Prop | Type | Default | Description |
1526
+ |---|---|---|---|
1527
+ | `aria-label` * | `string` | | The client's name; also the tooltip. |
1528
+ | `client` * | `"cursor" \| "claude" \| "github-copilot"` | | Which client's mark it shows. |
1529
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
1530
+ | `onClick` | `(() => void)` | | Opens how to connect the client. |
1531
+
1466
1532
  ### ConversationView
1467
1533
 
1468
1534
  A model conversation from a request log: role captions, prose, tool calls and results, reasoning, images, refusals. Inline images show; remote ones are links, so viewing a log never fetches them.
@@ -1498,6 +1564,18 @@ The gateway's base URL and a key placeholder to copy, with snippets per SDK.
1498
1564
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
1499
1565
  | `model` | `string` | | A model id for the snippet. |
1500
1566
 
1567
+ ### GrantSummary
1568
+
1569
+ What an agent or a key may do, one short line each after a check mark, on a group surface.
1570
+
1571
+ | Prop | Type | Default | Description |
1572
+ |---|---|---|---|
1573
+ | `aria-label` * | `string` | | The list's accessible name ("What it can do"). |
1574
+ | `items` * | `readonly ReactNode[]` | | The lines, short and without a final period. |
1575
+ | `action` | `ReactNode` | | A small button after the note, such as Customize. |
1576
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
1577
+ | `footer` | `ReactNode` | | A quiet note under the lines, such as how long it lasts. |
1578
+
1501
1579
  ### KeyDisplay
1502
1580
 
1503
1581
  A redacted key: mono 13 with its state dot, copy of the redacted form, and its access.
@@ -1577,7 +1655,7 @@ Choosing a provider from any number of them: a search field over every provider,
1577
1655
  |---|---|---|---|
1578
1656
  | `providers` * | `ProviderPickerOption[]` | | The providers: id, name, whether the organization has connected it, and a short hint such as its key count. |
1579
1657
  | `allLabel` | `string` | | Select only: a first option for no provider in particular, such as "All providers"; choosing it reports `null`. |
1580
- | `appearance` | `"list" \| "select"` | | An always-open list for a dialog step, or a pill that opens it. |
1658
+ | `appearance` | `"list" \| "grid" \| "select"` | | An always-open list for a dialog step, tiles with each provider's mark for a dialog's first step, or a pill that opens the list. |
1581
1659
  | `aria-label` | `string` | | What the picker is for, when there is no visible label: it names the list, and the pill, named by the provider it shows, reads it as its description. |
1582
1660
  | `autoFocus` | `boolean` | | List only: focuses the search field when it appears. |
1583
1661
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
@@ -1587,6 +1665,7 @@ Choosing a provider from any number of them: a search field over every provider,
1587
1665
  | `error` | `ReactNode` | | Deprecated. Errors are toasts, never text under a field: `error` marks the control invalid and stays its description for screen readers, but isn't drawn. Pass `invalid` and toast the message. |
1588
1666
  | `label` | `ReactNode` | | The visible label. |
1589
1667
  | `layout` | `"horizontal" \| "vertical"` | | The label above the control (`vertical`) or beside it (`horizontal`). |
1668
+ | `onChoose` | `((id: string) => void)` | | With `grid`: called when a tile is pressed or clicked, not when the arrow keys move the choice, so a dialog step can continue at once. |
1590
1669
  | `onValueChange` | `((id: string \| null) => void)` | | Called with the chosen provider's id, or `null` for `allLabel`. |
1591
1670
  | `optional` | `boolean` | | Adds “Optional” to the label, for forms where most fields are required. |
1592
1671
  | `placeholder` | `string` | | The search field's placeholder; in a pill without `allLabel`, also the text shown while nothing is chosen. |
@@ -1711,7 +1790,7 @@ Label and value pairs (13 secondary label, 14 value), copyable values. Side by s
1711
1790
  |---|---|---|---|
1712
1791
  | `items` * | `KeyValueItem[]` | | The pairs to show. |
1713
1792
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
1714
- | `columns` | `4 \| 2 \| 3` | `2` | The grid layout's items to a row, from 480px of its container's width. |
1793
+ | `columns` | `2 \| 3 \| 4` | `2` | The grid layout's items to a row, from 480px of its container's width. |
1715
1794
  | `layout` | `"grid" \| "stacked" \| "columns"` | `columns` | Keys beside values in columns, in a grid, or stacked above them. |
1716
1795
 
1717
1796
  ## label
@@ -1746,8 +1825,8 @@ A responsive grid.
1746
1825
  |---|---|---|---|
1747
1826
  | `align` | `"start" \| "end" \| "center" \| "baseline" \| "stretch"` | `center` | How items line up within their cells. |
1748
1827
  | `as` | `ElementType` | | The element or component to render as, such as `section` or `ul`. |
1749
- | `columns` | `4 \| 1 \| 2 \| 3 \| 6` | `2` | The number of columns. |
1750
- | `gap` | `0 \| 24 \| 20 \| 32 \| 40 \| 4 \| 2 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
1828
+ | `columns` | `2 \| 3 \| 4 \| 1 \| 6` | `2` | The number of columns. |
1829
+ | `gap` | `0 \| 2 \| 24 \| 20 \| 32 \| 40 \| 4 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
1751
1830
 
1752
1831
  ### Inline
1753
1832
 
@@ -1757,7 +1836,7 @@ A horizontal row that wraps.
1757
1836
  |---|---|---|---|
1758
1837
  | `align` | `"start" \| "end" \| "center" \| "baseline" \| "stretch"` | `center` | How items line up across the row. |
1759
1838
  | `as` | `ElementType` | | The element or component to render as, such as `section` or `ul`. |
1760
- | `gap` | `0 \| 24 \| 20 \| 32 \| 40 \| 4 \| 2 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
1839
+ | `gap` | `0 \| 2 \| 24 \| 20 \| 32 \| 40 \| 4 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
1761
1840
  | `justify` | `"start" \| "end" \| "center" \| "between"` | | How items are spread along the main axis. |
1762
1841
  | `wrap` | `boolean` | `true` | Lets items wrap onto the next line. |
1763
1842
 
@@ -1769,7 +1848,7 @@ A vertical stack.
1769
1848
  |---|---|---|---|
1770
1849
  | `align` | `"start" \| "end" \| "center" \| "baseline" \| "stretch"` | `center` | How items line up across the column. |
1771
1850
  | `as` | `ElementType` | | The element or component to render as, such as `section` or `ul`. |
1772
- | `gap` | `0 \| 24 \| 20 \| 32 \| 40 \| 4 \| 2 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
1851
+ | `gap` | `0 \| 2 \| 24 \| 20 \| 32 \| 40 \| 4 \| 6 \| 8 \| 12 \| 16 \| 48 \| 64` | `16` | The space between items, in pixels on the spacing scale. |
1773
1852
  | `justify` | `"start" \| "end" \| "center" \| "between"` | | How items are spread along the main axis. |
1774
1853
 
1775
1854
  ## link
@@ -1946,7 +2025,7 @@ Markdown, safely: headings, paragraphs, lists, tasks, code fences (CodeBlock), i
1946
2025
  | `text` * | `string` | | The Markdown source. Raw HTML in it stays text. |
1947
2026
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
1948
2027
  | `collapseAfter` | `number` | `24000` | Texts longer than this many characters show their start and "Show all" (24,000 by default; 0 never collapses). |
1949
- | `headingLevel` | `4 \| 1 \| 2 \| 3 \| 5 \| 6` | `3` | The heading level `#` becomes (3 by default: below a page's and a section's own headings). |
2028
+ | `headingLevel` | `2 \| 3 \| 4 \| 1 \| 5 \| 6` | `3` | The heading level `#` becomes (3 by default: below a page's and a section's own headings). |
1950
2029
  | `size` | `"lg" \| "body" \| "small"` | `body` | The text size: `small`, `body` or `lg`. |
1951
2030
  | `streaming` | `boolean` | `false` | The text is still arriving: nothing collapses, and the tokens aren't cached. |
1952
2031
  | `tone` | `"secondary" \| "default"` | `default` | Primary text (`default`) or secondary text (`secondary`). |
@@ -1955,7 +2034,7 @@ Markdown, safely: headings, paragraphs, lists, tasks, code fences (CodeBlock), i
1955
2034
 
1956
2035
  ## menu
1957
2036
 
1958
- `import { ContextMenu, Menubar } from "@logicplanes/kaeso-ui/menu";`
2037
+ `import { ContextMenu, Menu, Menubar } from "@logicplanes/kaeso-ui/menu";`
1959
2038
 
1960
2039
  - **item** (menu): `default` (default) — An action; `danger` — A destructive action: red text, a red tint on highlight
1961
2040
  - **width** (menu): `auto` (default) — 220–360px, from its content (default); `trigger` — As wide as its trigger
@@ -1963,11 +2042,20 @@ Markdown, safely: headings, paragraphs, lists, tasks, code fences (CodeBlock), i
1963
2042
 
1964
2043
  ### ContextMenu
1965
2044
 
1966
- A dropdown menu: 16px radius, 34px rows, typeahead, Home/End, loops.
2045
+ The same menu, opened by a right click, a long press or the context-menu key on the area it wraps.
1967
2046
 
1968
2047
  | Prop | Type | Default | Description |
1969
2048
  |---|---|---|---|
1970
2049
  | `children` * | `ReactNode` | | The area that opens the menu on a right click or long press. |
2050
+ | `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
2051
+
2052
+ ### Menu
2053
+
2054
+ A dropdown menu: 16px radius, 34px rows, typeahead, Home/End, loops.
2055
+
2056
+ | Prop | Type | Default | Description |
2057
+ |---|---|---|---|
2058
+ | `children` * | `ReactNode` | | The trigger and the menu's content. |
1971
2059
  | `defaultOpen` | `boolean` | | Whether it starts open, when the component keeps its own state. |
1972
2060
  | `modal` | `boolean` | | Blocks the rest of the page while the menu is open. |
1973
2061
  | `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
@@ -1980,7 +2068,8 @@ A row of menus, as in a desktop app's title bar.
1980
2068
  | Prop | Type | Default | Description |
1981
2069
  |---|---|---|---|
1982
2070
  | `children` * | `ReactNode` | | The menus. |
1983
- | `onOpenChange` | `((o: boolean) => void)` | | Called when a menu opens or closes. |
2071
+ | `aria-label` | `string` | | The accessible name, for when there is no visible label. |
2072
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
1984
2073
 
1985
2074
  ## meter
1986
2075
 
@@ -2329,7 +2418,7 @@ A person's turn: their prompt as quiet text that opens the turn, no bubble. A lo
2329
2418
  | `children` * | `ReactNode` | | The prompt as it was written: plain text, line breaks kept. |
2330
2419
  | `aria-label` | `string` | | The message's accessible name. Defaults to "Prompt" in the provider's language. |
2331
2420
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
2332
- | `maxLines` | `0 \| 4 \| 2 \| 3 \| 6` | `4` | Lines shown before "Show all" (4 by default; 0 shows everything). |
2421
+ | `maxLines` | `0 \| 2 \| 3 \| 4 \| 6` | `4` | Lines shown before "Show all" (4 by default; 0 shows everything). |
2333
2422
 
2334
2423
  ## popover
2335
2424
 
@@ -2392,7 +2481,7 @@ A QR code drawn as one SVG path: dark modules on white in both themes, with a qu
2392
2481
 
2393
2482
  ## radio
2394
2483
 
2395
- `import { Radio, RadioCards } from "@logicplanes/kaeso-ui/radio";`
2484
+ `import { Radio, RadioCards, RadioGroup } from "@logicplanes/kaeso-ui/radio";`
2396
2485
 
2397
2486
  - **variant** (radio): `default` (default) — A list of radios with labels (default); `cards` — Rows inside a settings group with the radio at the end, for choices with descriptions
2398
2487
 
@@ -2447,6 +2536,24 @@ Choices with descriptions as rows in a settings group.
2447
2536
  | `orientation` | `"horizontal" \| "vertical"` | `vertical` | Lays the items out in a row (`horizontal`) or a column (`vertical`). |
2448
2537
  | `value` | `string` | | The chosen option, when you control it. |
2449
2538
 
2539
+ ### RadioGroup
2540
+
2541
+ The group a set of radios belongs to: one of them is chosen, and the arrow keys move between them.
2542
+
2543
+ | Prop | Type | Default | Description |
2544
+ |---|---|---|---|
2545
+ | `children` * | `ReactNode` | | The radios, one per option. |
2546
+ | `aria-label` | `string` | | The accessible name, for when there is no visible label. |
2547
+ | `aria-labelledby` | `string` | | The id of the element that names it, when its label is elsewhere on the page. |
2548
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
2549
+ | `defaultValue` | `string` | | The chosen option on first render. |
2550
+ | `disabled` | `boolean` | | Turns off every radio. |
2551
+ | `name` | `string` | | The field name the value is sent under in a form. |
2552
+ | `onValueChange` | `((value: string) => void)` | | Called with the chosen option. |
2553
+ | `orientation` | `"horizontal" \| "vertical"` | `vertical` | Lays the items out in a row (`horizontal`) or a column (`vertical`). |
2554
+ | `value` | `string` | | The chosen option, when you control it. |
2555
+ | `variant` | `"default" \| "cards"` | `default` | A plain list of radios, or rows inside a settings group with the radio at the end (`cards`). |
2556
+
2450
2557
  ## release-art
2451
2558
 
2452
2559
  `import { ReleaseArt } from "@logicplanes/kaeso-ui/release-art";`
@@ -2940,6 +3047,7 @@ A plain table for small amounts of data; use `DataTable` for sorting, selection
2940
3047
 
2941
3048
  `import { PillTabs, Tabs } from "@logicplanes/kaeso-ui/tabs";`
2942
3049
 
3050
+ - **variant** (pill_tabs): `underline` — Underline tabs for detail pages: 40px, a 2px ink indicator that slides; `pill` (default) — Header tabs: separate 32px pills, the active one filled
2943
3051
  - **variant** (tabs): `underline` (default) — Underline tabs for detail pages: 40px, a 2px ink indicator that slides; `pill` — Header tabs: separate 32px pills, the active one filled
2944
3052
 
2945
3053
  ### PillTabs
@@ -3064,6 +3172,9 @@ System, light or dark, stored as `kaeso:theme`.
3064
3172
 
3065
3173
  | Prop | Type | Default | Description |
3066
3174
  |---|---|---|---|
3175
+ | `align` | `"start" \| "end"` | `end` | Which edge of the button the menu lines up with: its end (`end`) or its start (`start`), for a button at the left edge. |
3176
+ | `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
3177
+ | `side` | `"top" \| "bottom"` | `bottom` | Where the menu opens: below the button (`bottom`), or above it (`top`) when the button sits at the foot of a sidebar. |
3067
3178
  | `size` | `"md" \| "sm"` | `sm` | The button's height. |
3068
3179
  | `variant` | `"secondary" \| "ghost"` | `ghost` | A filled button (`secondary`) or a quiet one (`ghost`). |
3069
3180
 
@@ -3086,6 +3197,23 @@ A select for system, light or dark, stored as `kaeso:theme`, with its label in t
3086
3197
  | `fullWidth` | `boolean` | | Width of the trigger follows its content (default) or fills the container, as in a sidebar's footer. |
3087
3198
  | `size` | `"md" \| "sm"` | `sm` | The height of the field. |
3088
3199
 
3200
+ ## thumbnail
3201
+
3202
+ `import { Thumbnail } from "@logicplanes/kaeso-ui/thumbnail";`
3203
+
3204
+ - **size** (thumbnail): `sm` — 64px: a row or a compact list; `md` (default) — 120px: an image inside a message (default); `lg` — 160px: an image a page is about
3205
+
3206
+ ### Thumbnail
3207
+
3208
+ A square image someone sent, such as a photo in a conversation: cropped to fill, on a well with radius 14; when it can't load, its text alternative shows instead.
3209
+
3210
+ | Prop | Type | Default | Description |
3211
+ |---|---|---|---|
3212
+ | `alt` * | `string` | | What the image shows, read by screen readers and shown in its place when it can't load. |
3213
+ | `src` * | `string` | | The image's address, including a data: URL. |
3214
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
3215
+ | `size` | `"md" \| "sm" \| "lg"` | `md` | The width and height: 64, 120 or 160 pixels. |
3216
+
3089
3217
  ## timeline
3090
3218
 
3091
3219
  `import { Timeline } from "@logicplanes/kaeso-ui/timeline";`
@@ -3113,8 +3241,8 @@ Events down a 1px line (the audit log): each event marks the line with a short 3
3113
3241
 
3114
3242
  | Prop | Type | Default | Description |
3115
3243
  |---|---|---|---|
3116
- | `limit` | `number` | | How many toasts show at once. |
3117
- | `timeout` | `number` | | How long a toast stays, in milliseconds. |
3244
+ | `limit` | `number` | `3` | How many toasts show at once. |
3245
+ | `timeout` | `number` | `5000` | How long a toast stays, in milliseconds. |
3118
3246
 
3119
3247
  ### ToastCapsule
3120
3248
 
@@ -3190,7 +3318,7 @@ A short label for a control, shown on hover and focus. Never on disabled element
3190
3318
  | `disabled` | `boolean` | | Never shows the tooltip. |
3191
3319
  | `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
3192
3320
  | `open` | `boolean` | | Whether it is open, when you control it. |
3193
- | `shape` | `"pill" \| "multiline"` | | A pill for a short label, or a box for several lines. |
3321
+ | `shape` | `"pill" \| "multiline"` | `pill` | A pill for a short label, or a box for several lines. |
3194
3322
  | `shortcut` | `string[] \| string[][]` | | A shortcut shown after the text: `["mod", "k"]` or `[["g"], ["m"]]`. |
3195
3323
  | `side` | `"top" \| "bottom" \| "left" \| "right"` | | The side it opens on. |
3196
3324
  | `sideOffset` | `number` | | Distance from the trigger in px. |
package/ai/icons.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Icon vocabulary
2
2
 
3
- Version 0.4.2. Generated from `src/icons/vocabulary.ts`; do not edit. Use the name, never an icon picked by look: `icons.key` always means a key. Hugeicons, Stroke Rounded. Rules: `foundations/icons.md`.
3
+ Version 0.4.4. Generated from `src/icons/vocabulary.ts`; do not edit. Use the name, never an icon picked by look: `icons.key` always means a key. Hugeicons, Stroke Rounded. Rules: `foundations/icons.md`.
4
4
 
5
5
  ## Kaeso objects
6
6
 
7
- `key`, `providerKey`, `project`, `organization`, `model`, `playground`, `alias`, `limit`, `budget`, `requestLog`, `usage`, `member`, `members`, `serviceAccount`, `settings`, `audit`, `instance`, `provider`, `route`, `gateway`, `database`, `update`, `security`, `session`, `overview`, `chart`, `home`
7
+ `key`, `providerKey`, `project`, `organization`, `model`, `playground`, `alias`, `limit`, `budget`, `requestLog`, `usage`, `member`, `members`, `serviceAccount`, `agent`, `settings`, `audit`, `instance`, `provider`, `route`, `gateway`, `database`, `update`, `security`, `session`, `overview`, `chart`, `home`
8
8
 
9
9
  ## Capabilities
10
10
 
@@ -12,7 +12,7 @@ Version 0.4.2. Generated from `src/icons/vocabulary.ts`; do not edit. Use the na
12
12
 
13
13
  ## Actions
14
14
 
15
- `signOut`, `copy`, `externalLink`, `openExternal`, `add`, `close`, `edit`, `delete`, `download`, `upload`, `refresh`, `retry`, `search`, `filter`, `displayOptions`, `more`, `menu`, `sort`, `switcher`, `expand`, `collapse`, `show`, `hide`, `reveal`, `sidebar`, `sidePanel`, `list`, `board`, `stack`
15
+ `signOut`, `copy`, `externalLink`, `openExternal`, `add`, `close`, `edit`, `delete`, `download`, `upload`, `refresh`, `retry`, `search`, `filter`, `displayOptions`, `more`, `menu`, `sort`, `switcher`, `unfold`, `expand`, `collapse`, `show`, `hide`, `reveal`, `sidebar`, `sidePanel`, `list`, `board`, `stack`
16
16
 
17
17
  ## Status
18
18
 
@@ -24,5 +24,5 @@ Version 0.4.2. Generated from `src/icons/vocabulary.ts`; do not edit. Use the na
24
24
 
25
25
  ## Misc
26
26
 
27
- `calendar`, `time`, `code`, `mail`, `keyboard`, `help`, `github`, `themeLight`, `themeDark`, `themeSystem`
27
+ `calendar`, `time`, `code`, `mail`, `keyboard`, `help`, `github`, `themeLight`, `themeDark`, `themeSystem`, `language`, `legal`
28
28
 
package/ai/tokens.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @logicplanes/kaeso-ui tokens
2
2
 
3
- Version 0.4.2. Generated from `@logicplanes/kaeso-tokens`; do not edit. Components use these through role names (`bg-panel`, `text-fg-secondary`, `h-36`, `rounded-pill`); a raw value never appears in a component. How to use them: `foundations/*.md`.
3
+ Version 0.4.4. Generated from `@logicplanes/kaeso-tokens`; do not edit. Components use these through role names (`bg-panel`, `text-fg-secondary`, `h-36`, `rounded-pill`); a raw value never appears in a component. How to use them: `foundations/*.md`.
4
4
 
5
5
  ## Neutrals
6
6
 
@@ -1,23 +1,24 @@
1
1
  "use client";
2
2
  import { i as e } from "../chunks/context-BELWW79w.js";
3
- import { t } from "../chunks/dialog-DQ9vZ7vr.js";
4
- import { jsx as n } from "react/jsx-runtime";
3
+ import { t } from "../chunks/dialog-Cg9A_6SF.js";
4
+ import { forwardRef as n } from "react";
5
+ import { jsx as r } from "react/jsx-runtime";
5
6
  //#region src/blocks/delete-resource/delete-resource.tsx
6
- var r = { confirm: {
7
+ var i = { confirm: {
7
8
  typed: { classes: "" },
8
9
  simple: { classes: "" }
9
- } }, i = { confirm: "typed" };
10
- function a({ kind: r, name: i, consequence: a, verb: o, confirm: s = "typed", onConfirm: c, trigger: l, open: u, onOpenChange: d, inline: f }) {
11
- let p = e();
12
- return /* @__PURE__ */ n(t, {
13
- title: o === void 0 ? p("deleteResource.deleteTitle", "Delete this {kind}?", { kind: r }) : p("deleteResource.title", "{verb} this {kind}?", {
10
+ } }, a = { confirm: "typed" }, o = /* @__PURE__ */ n(function({ kind: n, name: i, consequence: a, verb: o, confirm: s = "typed", onConfirm: c, trigger: l, open: u, onOpenChange: d, inline: f }, p) {
11
+ let m = e();
12
+ return /* @__PURE__ */ r(t, {
13
+ ref: p,
14
+ title: o === void 0 ? m("deleteResource.deleteTitle", "Delete this {kind}?", { kind: n }) : m("deleteResource.title", "{verb} this {kind}?", {
14
15
  verb: o,
15
- kind: r
16
+ kind: n
16
17
  }),
17
18
  description: a,
18
- confirmLabel: o === void 0 ? p("deleteResource.deleteConfirm", "Delete {kind}", { kind: r }) : p("deleteResource.confirm", "{verb} {kind}", {
19
+ confirmLabel: o === void 0 ? m("deleteResource.deleteConfirm", "Delete {kind}", { kind: n }) : m("deleteResource.confirm", "{verb} {kind}", {
19
20
  verb: o,
20
- kind: r
21
+ kind: n
21
22
  }),
22
23
  onConfirm: c,
23
24
  tone: "danger",
@@ -27,9 +28,9 @@ function a({ kind: r, name: i, consequence: a, verb: o, confirm: s = "typed", on
27
28
  ...d ? { onOpenChange: d } : {},
28
29
  ...f ? { inline: f } : {}
29
30
  });
30
- }
31
- process.env.NODE_ENV !== "production" && (a.displayName = "DeleteResource");
31
+ });
32
+ process.env.NODE_ENV !== "production" && (o.displayName = "DeleteResource");
32
33
  //#endregion
33
- export { a as DeleteResource, i as KAESO_DELETE_RESOURCE_DEFAULT_VARIANTS, r as KAESO_DELETE_RESOURCE_VARIANTS };
34
+ export { o as DeleteResource, a as KAESO_DELETE_RESOURCE_DEFAULT_VARIANTS, i as KAESO_DELETE_RESOURCE_VARIANTS };
34
35
 
35
36
  //# sourceMappingURL=delete-resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-resource.js","names":["useUiText","KAESO_DELETE_RESOURCE_VARIANTS","KAESO_DELETE_RESOURCE_DEFAULT_VARIANTS","DeleteResource","t","AlertDialog","verb","consequence","confirm","name","trigger","open","onOpenChange","inline"],"sources":["../../src/blocks/delete-resource/delete-resource.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from \"react\";\nimport { AlertDialog } from \"../../components/dialog/dialog.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_DELETE_RESOURCE_VARIANTS = {\n confirm: {\n typed: { classes: \"\" },\n simple: { classes: \"\" },\n },\n} as const;\nexport const KAESO_DELETE_RESOURCE_DEFAULT_VARIANTS = { confirm: \"typed\" } as const;\n\nexport interface DeleteResourceProps {\n kind: string;\n name: string;\n consequence: ReactNode;\n verb?: string | undefined;\n confirm?: keyof typeof KAESO_DELETE_RESOURCE_VARIANTS.confirm | undefined;\n onConfirm: () => void | Promise<void>;\n trigger?: ReactElement | undefined;\n open?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n inline?: boolean | undefined;\n}\n\nexport function DeleteResource({ kind, name, consequence, verb, confirm = \"typed\", onConfirm, trigger, open, onOpenChange, inline }: DeleteResourceProps) {\n const t = useUiText();\n return (\n <AlertDialog\n title={\n verb === undefined ? t(\"deleteResource.deleteTitle\", \"Delete this {kind}?\", { kind }) : t(\"deleteResource.title\", \"{verb} this {kind}?\", { verb, kind })\n }\n description={consequence}\n confirmLabel={\n verb === undefined ? t(\"deleteResource.deleteConfirm\", \"Delete {kind}\", { kind }) : t(\"deleteResource.confirm\", \"{verb} {kind}\", { verb, kind })\n }\n onConfirm={onConfirm}\n tone=\"danger\"\n {...(confirm === \"typed\" ? { confirmText: name } : {})}\n {...(trigger ? { trigger } : {})}\n {...(open !== undefined ? { open } : {})}\n {...(onOpenChange ? { onOpenChange } : {})}\n {...(inline ? { inline } : {})}\n />\n );\n}\nif (process.env.NODE_ENV !== \"production\") DeleteResource.displayName = \"DeleteResource\";\n"],"mappings":";;;;;AAIA,IAAaC,IAAiC,EAC5C,SAAS;CACP,OAAO,EAAE,SAAS,GAAG;CACrB,QAAQ,EAAE,SAAS,GAAG;AACxB,EACF,GACaC,IAAyC,EAAE,SAAS,QAAQ;AAezE,SAAgBC,EAAe,EAAE,SAAM,SAAM,gBAAa,SAAM,aAAU,SAAS,cAAW,YAAS,SAAM,iBAAc,aAA+B;CACxJ,IAAMC,IAAIJ,EAAU;CACpB,OACE,kBAACK,GAAD;EACE,OACEC,MAAS,KAAA,IAAYF,EAAE,8BAA8B,uBAAuB,EAAE,QAAK,CAAC,IAAIA,EAAE,wBAAwB,uBAAuB;GAAE;GAAM;EAAK,CAAC;EAEzJ,aAAaG;EACb,cACED,MAAS,KAAA,IAAYF,EAAE,gCAAgC,iBAAiB,EAAE,QAAK,CAAC,IAAIA,EAAE,0BAA0B,iBAAiB;GAAE;GAAM;EAAK,CAAC;EAEtI;EACX,MAAK;EACL,GAAKI,MAAY,UAAU,EAAE,aAAaC,EAAK,IAAI,CAAC;EACpD,GAAKC,IAAU,EAAE,WAAQ,IAAI,CAAC;EAC9B,GAAKC,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;EACjC,GAAKC,IAAe,EAAE,gBAAa,IAAI,CAAC;EACxC,GAAKC,IAAS,EAAE,UAAO,IAAI,CAAC;CAC7B,CAAA;AAEL;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAe,cAAc"}
1
+ {"version":3,"file":"delete-resource.js","names":["useUiText","KAESO_DELETE_RESOURCE_VARIANTS","KAESO_DELETE_RESOURCE_DEFAULT_VARIANTS","DeleteResource","t","AlertDialog","verb","consequence","confirm","name","trigger","open","onOpenChange","inline"],"sources":["../../src/blocks/delete-resource/delete-resource.tsx"],"sourcesContent":["import { forwardRef, type ReactElement, type ReactNode } from \"react\";\nimport { AlertDialog } from \"../../components/dialog/dialog.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_DELETE_RESOURCE_VARIANTS = {\n confirm: {\n typed: { classes: \"\" },\n simple: { classes: \"\" },\n },\n} as const;\nexport const KAESO_DELETE_RESOURCE_DEFAULT_VARIANTS = { confirm: \"typed\" } as const;\n\nexport interface DeleteResourceProps {\n kind: string;\n name: string;\n consequence: ReactNode;\n verb?: string | undefined;\n confirm?: keyof typeof KAESO_DELETE_RESOURCE_VARIANTS.confirm | undefined;\n onConfirm: () => void | Promise<void>;\n trigger?: ReactElement | undefined;\n open?: boolean | undefined;\n onOpenChange?: ((open: boolean) => void) | undefined;\n inline?: boolean | undefined;\n}\n\nexport const DeleteResource = /* @__PURE__ */ forwardRef<HTMLDivElement, DeleteResourceProps>(function DeleteResource(\n { kind, name, consequence, verb, confirm = \"typed\", onConfirm, trigger, open, onOpenChange, inline },\n ref,\n) {\n const t = useUiText();\n return (\n <AlertDialog\n ref={ref}\n title={\n verb === undefined ? t(\"deleteResource.deleteTitle\", \"Delete this {kind}?\", { kind }) : t(\"deleteResource.title\", \"{verb} this {kind}?\", { verb, kind })\n }\n description={consequence}\n confirmLabel={\n verb === undefined ? t(\"deleteResource.deleteConfirm\", \"Delete {kind}\", { kind }) : t(\"deleteResource.confirm\", \"{verb} {kind}\", { verb, kind })\n }\n onConfirm={onConfirm}\n tone=\"danger\"\n {...(confirm === \"typed\" ? { confirmText: name } : {})}\n {...(trigger ? { trigger } : {})}\n {...(open !== undefined ? { open } : {})}\n {...(onOpenChange ? { onOpenChange } : {})}\n {...(inline ? { inline } : {})}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") DeleteResource.displayName = \"DeleteResource\";\n"],"mappings":";;;;;;AAIA,IAAaC,IAAiC,EAC5C,SAAS;CACP,OAAO,EAAE,SAAS,GAAG;CACrB,QAAQ,EAAE,SAAS,GAAG;AACxB,EACF,GACaC,IAAyC,EAAE,SAAS,QAAQ,GAe5DC,IAAiC,kBAAgD,SAC5F,EAAE,SAAM,SAAM,gBAAa,SAAM,aAAU,SAAS,cAAW,YAAS,SAAM,iBAAc,aAC5F,GACA;CACA,IAAMC,IAAIJ,EAAU;CACpB,OACE,kBAACK,GAAD;EACO;EACL,OACEC,MAAS,KAAA,IAAYF,EAAE,8BAA8B,uBAAuB,EAAE,QAAK,CAAC,IAAIA,EAAE,wBAAwB,uBAAuB;GAAE;GAAM;EAAK,CAAC;EAEzJ,aAAaG;EACb,cACED,MAAS,KAAA,IAAYF,EAAE,gCAAgC,iBAAiB,EAAE,QAAK,CAAC,IAAIA,EAAE,0BAA0B,iBAAiB;GAAE;GAAM;EAAK,CAAC;EAEtI;EACX,MAAK;EACL,GAAKI,MAAY,UAAU,EAAE,aAAaC,EAAK,IAAI,CAAC;EACpD,GAAKC,IAAU,EAAE,WAAQ,IAAI,CAAC;EAC9B,GAAKC,MAAS,KAAA,IAAuB,CAAC,IAAZ,EAAE,QAAK;EACjC,GAAKC,IAAe,EAAE,gBAAa,IAAI,CAAC;EACxC,GAAKC,IAAS,EAAE,UAAO,IAAI,CAAC;CAC7B,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAe,cAAc"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
- import { t } from "../chunks/app-frame-C8csevkL.js";
4
- import { r as n } from "../chunks/page-header-DjUMDG69.js";
3
+ import { t } from "../chunks/app-frame-DogGRmsu.js";
4
+ import { r as n } from "../chunks/page-header-DL2y2iZp.js";
5
5
  import { t as r } from "../chunks/empty-DvhyMXQq.js";
6
6
  import { a as i, t as a } from "../chunks/section-Ce1efbsP.js";
7
7
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";