@logicplanes/kaeso-ui 0.4.2 → 0.4.3

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 (272) hide show
  1. package/NOTICE.md +1 -1
  2. package/ai/component-guides.md +283 -21
  3. package/ai/component-registry.json +528 -25
  4. package/ai/component-registry.md +135 -25
  5. package/ai/icons.md +3 -3
  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-D5A-CGXG.js} +2 -2
  25. package/dist/chunks/{code-block-U5fCqwgC.js.map → code-block-D5A-CGXG.js.map} +1 -1
  26. package/dist/chunks/combobox-DjDI7SUC.js +319 -0
  27. package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
  28. package/dist/chunks/{command-list-0RR4DpUe.js → command-list-C2Y7V_lt.js} +2 -2
  29. package/dist/chunks/{command-list-0RR4DpUe.js.map → command-list-C2Y7V_lt.js.map} +1 -1
  30. package/dist/chunks/{copy-button-7-irieJw.js → copy-button-FJvPJn72.js} +3 -3
  31. package/dist/chunks/{copy-button-7-irieJw.js.map → copy-button-FJvPJn72.js.map} +1 -1
  32. package/dist/chunks/{core-Bl9NrBLS.js → core-BYns5ytV.js} +145 -139
  33. package/dist/chunks/core-BYns5ytV.js.map +1 -0
  34. package/dist/chunks/{date-popup-RQkqhko4.js → date-popup-CPA_zt6o.js} +4 -4
  35. package/dist/chunks/{date-popup-RQkqhko4.js.map → date-popup-CPA_zt6o.js.map} +1 -1
  36. package/dist/chunks/{de-BnNQtBSV.js → de-CPXJh9cq.js} +3 -1
  37. package/dist/chunks/de-CPXJh9cq.js.map +1 -0
  38. package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
  39. package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
  40. package/dist/chunks/icon-DVooQfk4.js +94 -0
  41. package/dist/chunks/icon-DVooQfk4.js.map +1 -0
  42. package/dist/chunks/{icon-button-CPYR21Sz.js → icon-button-CrdF_eMG.js} +3 -3
  43. package/dist/chunks/{icon-button-CPYR21Sz.js.map → icon-button-CrdF_eMG.js.map} +1 -1
  44. package/dist/chunks/{identity-DPuTkMsa.js → identity-BmhQ6BQ-.js} +15 -15
  45. package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
  46. package/dist/chunks/{input-TyLIaQ5k.js → input-2VJuj_M4.js} +10 -5
  47. package/dist/chunks/input-2VJuj_M4.js.map +1 -0
  48. package/dist/chunks/{input-group-CUSNsQjQ.js → input-group-DQ_4DoXg.js} +2 -2
  49. package/dist/chunks/{input-group-CUSNsQjQ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
  50. package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
  51. package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
  52. package/dist/chunks/{iso-field-CWbxlll-.js → iso-field-B2rTwiBo.js} +2 -2
  53. package/dist/chunks/{iso-field-CWbxlll-.js.map → iso-field-B2rTwiBo.js.map} +1 -1
  54. package/dist/chunks/{link-B2I55xg9.js → link-KWI7PevW.js} +2 -2
  55. package/dist/chunks/{link-B2I55xg9.js.map → link-KWI7PevW.js.map} +1 -1
  56. package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
  57. package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
  58. package/dist/chunks/{list-CkOozrVY.js → list-M1csq-d4.js} +18 -16
  59. package/dist/chunks/{list-CkOozrVY.js.map → list-M1csq-d4.js.map} +1 -1
  60. package/dist/chunks/{markdown-BEgwZFlu.js → markdown-DULktoTK.js} +5 -5
  61. package/dist/chunks/{markdown-BEgwZFlu.js.map → markdown-DULktoTK.js.map} +1 -1
  62. package/dist/chunks/{menu-fl_QQb38.js → menu-DEmBfdPm.js} +29 -26
  63. package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
  64. package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
  65. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
  66. package/dist/chunks/{page-header-DjUMDG69.js → page-header-DL2y2iZp.js} +2 -2
  67. package/dist/chunks/{page-header-DjUMDG69.js.map → page-header-DL2y2iZp.js.map} +1 -1
  68. package/dist/chunks/{pagination-BaY8jdli.js → pagination-Cn_qF4cg.js} +3 -3
  69. package/dist/chunks/{pagination-BaY8jdli.js.map → pagination-Cn_qF4cg.js.map} +1 -1
  70. package/dist/chunks/{picker-popover-DShea4b8.js → picker-popover-BxyU1U9F.js} +14 -13
  71. package/dist/chunks/{picker-popover-DShea4b8.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
  72. package/dist/chunks/{popover-CFMwaeIP.js → popover-DNN4S47w.js} +2 -2
  73. package/dist/chunks/{popover-CFMwaeIP.js.map → popover-DNN4S47w.js.map} +1 -1
  74. package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
  75. package/dist/chunks/{radio-Yl0nO-Sj.js → radio-CDDFpdtL.js} +4 -4
  76. package/dist/chunks/{radio-Yl0nO-Sj.js.map → radio-CDDFpdtL.js.map} +1 -1
  77. package/dist/chunks/{range-popup-CkhsK3wI.js → range-popup-CRyWYUB1.js} +5 -5
  78. package/dist/chunks/{range-popup-CkhsK3wI.js.map → range-popup-CRyWYUB1.js.map} +1 -1
  79. package/dist/chunks/{rights-BlQx9C_j.js → rights-Cyp0Pzp-.js} +5 -5
  80. package/dist/chunks/{rights-BlQx9C_j.js.map → rights-Cyp0Pzp-.js.map} +1 -1
  81. package/dist/chunks/{segmented-C97zvDR1.js → segmented-CErcoxwi.js} +2 -2
  82. package/dist/chunks/{segmented-C97zvDR1.js.map → segmented-CErcoxwi.js.map} +1 -1
  83. package/dist/chunks/{sidebar-DtFlejU7.js → sidebar-3r1ZRXlN.js} +253 -235
  84. package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
  85. package/dist/chunks/{sidebar-menu-CxQbGwyj.js → sidebar-menu-BN3jkTlK.js} +2 -2
  86. package/dist/chunks/{sidebar-menu-CxQbGwyj.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
  87. package/dist/chunks/{switch-b-VkStWj.js → switch-BNMq_kGt.js} +2 -2
  88. package/dist/chunks/{switch-b-VkStWj.js.map → switch-BNMq_kGt.js.map} +1 -1
  89. package/dist/chunks/{tag-DNdX1XRR.js → tag-D_M1s2qS.js} +2 -2
  90. package/dist/chunks/{tag-DNdX1XRR.js.map → tag-D_M1s2qS.js.map} +1 -1
  91. package/dist/chunks/{text-DCGGNqTM.js → text-CIXH8rmT.js} +2 -2
  92. package/dist/chunks/{text-DCGGNqTM.js.map → text-CIXH8rmT.js.map} +1 -1
  93. package/dist/chunks/{textarea-CT2S2JVM.js → textarea--4FRL3Pb.js} +3 -3
  94. package/dist/chunks/{textarea-CT2S2JVM.js.map → textarea--4FRL3Pb.js.map} +1 -1
  95. package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
  96. package/dist/chunks/{timeseries-B-8OfeZm.js → timeseries-D1xjRXfk.js} +2 -2
  97. package/dist/chunks/{timeseries-B-8OfeZm.js.map → timeseries-D1xjRXfk.js.map} +1 -1
  98. package/dist/chunks/{toolbar-DL6zVrzU.js → toolbar-WA_oZgu-.js} +5 -4
  99. package/dist/chunks/{toolbar-DL6zVrzU.js.map → toolbar-WA_oZgu-.js.map} +1 -1
  100. package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
  101. package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
  102. package/dist/chunks/{tooltip-root-BeAMXzxU.js → tooltip-root-DzahJDVj.js} +2 -2
  103. package/dist/chunks/{tooltip-root-BeAMXzxU.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
  104. package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
  105. package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
  106. package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
  107. package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
  108. package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-29X4CDLE.js} +3 -1
  109. package/dist/chunks/zh-CN-29X4CDLE.js.map +1 -0
  110. package/dist/components/agent-avatar.js +2 -0
  111. package/dist/components/app-frame.js +2 -2
  112. package/dist/components/banner.js +1 -1
  113. package/dist/components/button-group.js +2 -2
  114. package/dist/components/button.js +1 -1
  115. package/dist/components/calendar.js +1 -1
  116. package/dist/components/charts/bar.js +1 -1
  117. package/dist/components/charts/donut.js +1 -1
  118. package/dist/components/charts/gauge.js +1 -1
  119. package/dist/components/charts/sankey.js +1 -1
  120. package/dist/components/charts/timeseries.js +1 -1
  121. package/dist/components/charts.js +2 -2
  122. package/dist/components/checkbox.js +1 -1
  123. package/dist/components/code-block.js +1 -1
  124. package/dist/components/combobox.js +1 -1
  125. package/dist/components/command-list.js +2 -2
  126. package/dist/components/command-palette.js +85 -81
  127. package/dist/components/command-palette.js.map +1 -1
  128. package/dist/components/copy-button.js +1 -1
  129. package/dist/components/data-table.js +191 -187
  130. package/dist/components/data-table.js.map +1 -1
  131. package/dist/components/date-picker.js +6 -4
  132. package/dist/components/date-picker.js.map +1 -1
  133. package/dist/components/dialog.js +125 -91
  134. package/dist/components/dialog.js.map +1 -1
  135. package/dist/components/display-options.js +49 -46
  136. package/dist/components/display-options.js.map +1 -1
  137. package/dist/components/filter-chip.js +3 -3
  138. package/dist/components/filter-chip.js.map +1 -1
  139. package/dist/components/filter-row.js +1 -1
  140. package/dist/components/icon-button.js +1 -1
  141. package/dist/components/icon.js +1 -1
  142. package/dist/components/input.js +49 -49
  143. package/dist/components/input.js.map +1 -1
  144. package/dist/components/kaeso/conversation.js +3 -3
  145. package/dist/components/kaeso/identity.js +1 -1
  146. package/dist/components/kaeso/moments.js +3 -3
  147. package/dist/components/kaeso/rights.js +1 -1
  148. package/dist/components/kaeso/usage.js +8 -8
  149. package/dist/components/kaeso/usage.js.map +1 -1
  150. package/dist/components/kaeso.js +263 -95
  151. package/dist/components/kaeso.js.map +1 -1
  152. package/dist/components/key-value.js +2 -2
  153. package/dist/components/link.js +1 -1
  154. package/dist/components/list.js +1 -1
  155. package/dist/components/markdown.js +1 -1
  156. package/dist/components/menu.js +2 -2
  157. package/dist/components/page-header.js +1 -1
  158. package/dist/components/pagination.js +1 -1
  159. package/dist/components/playground.js +27 -26
  160. package/dist/components/playground.js.map +1 -1
  161. package/dist/components/popover.js +12 -11
  162. package/dist/components/popover.js.map +1 -1
  163. package/dist/components/radio.js +1 -1
  164. package/dist/components/segmented.js +1 -1
  165. package/dist/components/settings.js +8 -8
  166. package/dist/components/settings.js.map +1 -1
  167. package/dist/components/sheet.js +2 -2
  168. package/dist/components/sidebar.js +1 -1
  169. package/dist/components/switch.js +1 -1
  170. package/dist/components/tabs.js +22 -22
  171. package/dist/components/tabs.js.map +1 -1
  172. package/dist/components/tag.js +1 -1
  173. package/dist/components/text.js +1 -1
  174. package/dist/components/theme-menu.js +33 -30
  175. package/dist/components/theme-menu.js.map +1 -1
  176. package/dist/components/thumbnail.js +41 -0
  177. package/dist/components/thumbnail.js.map +1 -0
  178. package/dist/components/toast.js +96 -87
  179. package/dist/components/toast.js.map +1 -1
  180. package/dist/components/toolbar.js +1 -1
  181. package/dist/components/tooltip.js +1 -1
  182. package/dist/format.js.map +1 -1
  183. package/dist/i18n-provider.js +1 -1
  184. package/dist/index.js +89 -87
  185. package/dist/kaeso.css +3 -0
  186. package/dist/styles.css +1 -1
  187. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
  188. package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
  189. package/dist/types/component-docs.d.ts +1 -1
  190. package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
  191. package/dist/types/components/agent-avatar/docs.d.ts +19 -0
  192. package/dist/types/components/agent-avatar/index.d.ts +3 -0
  193. package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
  194. package/dist/types/components/agent-avatar/models.d.ts +4 -0
  195. package/dist/types/components/app-frame/app-frame.d.ts +3 -8
  196. package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
  197. package/dist/types/components/calendar/calendar.d.ts +1 -4
  198. package/dist/types/components/charts/core.d.ts +11 -18
  199. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  200. package/dist/types/components/combobox/combobox.d.ts +26 -2
  201. package/dist/types/components/command-list/picker-popover.d.ts +1 -4
  202. package/dist/types/components/command-palette/command-palette.d.ts +1 -4
  203. package/dist/types/components/data-table/data-table.d.ts +2 -1
  204. package/dist/types/components/data-table/docs.d.ts +1 -0
  205. package/dist/types/components/dialog/dialog.d.ts +7 -9
  206. package/dist/types/components/dialog/docs.d.ts +2 -0
  207. package/dist/types/components/dialog/scope.d.ts +2 -0
  208. package/dist/types/components/dialog/step-dialog.d.ts +38 -5
  209. package/dist/types/components/display-options/display-options.d.ts +2 -5
  210. package/dist/types/components/input/input.d.ts +23 -0
  211. package/dist/types/components/kaeso/client-button.d.ts +17 -0
  212. package/dist/types/components/kaeso/docs.d.ts +18 -0
  213. package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
  214. package/dist/types/components/kaeso/identity.d.ts +2 -0
  215. package/dist/types/components/kaeso/index.d.ts +2 -0
  216. package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
  217. package/dist/types/components/kaeso/usage.d.ts +2 -0
  218. package/dist/types/components/list/list.d.ts +4 -8
  219. package/dist/types/components/menu/docs.d.ts +8 -1
  220. package/dist/types/components/menu/menu.d.ts +19 -31
  221. package/dist/types/components/playground/parameter-panel.d.ts +1 -4
  222. package/dist/types/components/popover/hover-card.d.ts +2 -0
  223. package/dist/types/components/radio/docs.d.ts +15 -0
  224. package/dist/types/components/radio/radio.d.ts +2 -4
  225. package/dist/types/components/settings/settings.d.ts +2 -0
  226. package/dist/types/components/sidebar/sidebar.d.ts +13 -35
  227. package/dist/types/components/tabs/tabs.d.ts +15 -0
  228. package/dist/types/components/theme-menu/docs.d.ts +2 -0
  229. package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
  230. package/dist/types/components/thumbnail/docs.d.ts +10 -0
  231. package/dist/types/components/thumbnail/index.d.ts +1 -0
  232. package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
  233. package/dist/types/components/toast/toast.d.ts +5 -12
  234. package/dist/types/components/toolbar/toolbar.d.ts +1 -6
  235. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  236. package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
  237. package/dist/types/format/index.d.ts +5 -5
  238. package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
  239. package/dist/types/icons/groups.d.ts +2 -2
  240. package/dist/types/icons/vocabulary.d.ts +15 -0
  241. package/dist/types/index.d.ts +2 -0
  242. package/dist/types/utils/inset.d.ts +4 -0
  243. package/dist/types/utils/link-provider.d.ts +1 -1
  244. package/dist/types/utils/merge-refs.d.ts +3 -0
  245. package/dist/types/utils/portal-context.d.ts +1 -1
  246. package/dist/utils.js +3 -3
  247. package/foundations/shape.md +1 -1
  248. package/package.json +2 -2
  249. package/dist/chunks/app-frame-C8csevkL.js.map +0 -1
  250. package/dist/chunks/calendar--YemJsv4.js.map +0 -1
  251. package/dist/chunks/checkbox-CDfC6E-M.js.map +0 -1
  252. package/dist/chunks/combobox-BARyrpXH.js +0 -314
  253. package/dist/chunks/combobox-BARyrpXH.js.map +0 -1
  254. package/dist/chunks/core-Bl9NrBLS.js.map +0 -1
  255. package/dist/chunks/de-BnNQtBSV.js.map +0 -1
  256. package/dist/chunks/dialog-DQ9vZ7vr.js +0 -353
  257. package/dist/chunks/dialog-DQ9vZ7vr.js.map +0 -1
  258. package/dist/chunks/icon-CBzvyEqC.js +0 -91
  259. package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
  260. package/dist/chunks/identity-DPuTkMsa.js.map +0 -1
  261. package/dist/chunks/input-TyLIaQ5k.js.map +0 -1
  262. package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
  263. package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
  264. package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
  265. package/dist/chunks/menu-fl_QQb38.js.map +0 -1
  266. package/dist/chunks/nav-sheet-B2rNb8GB.js +0 -60
  267. package/dist/chunks/nav-sheet-B2rNb8GB.js.map +0 -1
  268. package/dist/chunks/sidebar-DtFlejU7.js.map +0 -1
  269. package/dist/chunks/tooltip-BMQ9BtPp.js +0 -151
  270. package/dist/chunks/tooltip-BMQ9BtPp.js.map +0 -1
  271. package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
  272. package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
@@ -1,7 +1,121 @@
1
1
  {
2
2
  "package": "@logicplanes/kaeso-ui",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "components": [
5
+ {
6
+ "entry": "agent-avatar",
7
+ "kind": "components",
8
+ "import": "@logicplanes/kaeso-ui/agent-avatar",
9
+ "components": [
10
+ {
11
+ "name": "AgentAttribution",
12
+ "description": "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.",
13
+ "props": [
14
+ {
15
+ "name": "agent",
16
+ "type": "{ name: string; model: string; }",
17
+ "required": true,
18
+ "default": null,
19
+ "description": "The agent that acted, with its name and model family id from the API; the family is named in the accessible name only."
20
+ },
21
+ {
22
+ "name": "name",
23
+ "type": "string",
24
+ "required": true,
25
+ "default": null,
26
+ "description": "The name of the person the agent acted for; it starts the accessible name, such as `Ada Okafor via Release helper (Claude)`."
27
+ },
28
+ {
29
+ "name": "className",
30
+ "type": "string",
31
+ "required": false,
32
+ "default": null,
33
+ "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
34
+ },
35
+ {
36
+ "name": "size",
37
+ "type": "24 | 20 | 28 | 32 | 40",
38
+ "required": false,
39
+ "default": "24",
40
+ "description": "The diameter of the person's avatar in pixels; the agent badge is half of it."
41
+ },
42
+ {
43
+ "name": "src",
44
+ "type": "string",
45
+ "required": false,
46
+ "default": null,
47
+ "description": "The person's picture; without one, or when it fails to load, their initials show."
48
+ }
49
+ ],
50
+ "file": "src/components/agent-avatar/agent-avatar.tsx"
51
+ },
52
+ {
53
+ "name": "AgentAvatar",
54
+ "description": "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.",
55
+ "props": [
56
+ {
57
+ "name": "name",
58
+ "type": "string",
59
+ "required": true,
60
+ "default": null,
61
+ "description": "The agent's name, such as `Release helper`; it is the accessible name."
62
+ },
63
+ {
64
+ "name": "className",
65
+ "type": "string",
66
+ "required": false,
67
+ "default": null,
68
+ "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
69
+ },
70
+ {
71
+ "name": "decorative",
72
+ "type": "boolean",
73
+ "required": false,
74
+ "default": null,
75
+ "description": "Hides it from assistive technology when the agent's name is already written next to it."
76
+ },
77
+ {
78
+ "name": "size",
79
+ "type": "24 | 20 | 28 | 32 | 40",
80
+ "required": false,
81
+ "default": "24",
82
+ "description": "The side of the square in pixels, on the same scale as `Avatar`."
83
+ }
84
+ ],
85
+ "file": "src/components/agent-avatar/agent-avatar.tsx"
86
+ }
87
+ ],
88
+ "variants": {
89
+ "AGENT_ATTRIBUTION": {
90
+ "axes": {
91
+ "size": {
92
+ "20": "20px person, 10px agent badge",
93
+ "24": "24px person, 12px agent badge (default)",
94
+ "28": "28px person, 14px agent badge",
95
+ "32": "32px person, 16px agent badge",
96
+ "40": "40px person, 20px agent badge"
97
+ }
98
+ },
99
+ "defaults": {
100
+ "size": "24"
101
+ }
102
+ },
103
+ "AGENT_AVATAR": {
104
+ "axes": {
105
+ "size": {
106
+ "20": "20px",
107
+ "24": "24px: rows and lists (default)",
108
+ "28": "28px",
109
+ "32": "32px",
110
+ "40": "40px: an agent's own page, menus"
111
+ }
112
+ },
113
+ "defaults": {
114
+ "size": "24"
115
+ }
116
+ }
117
+ }
118
+ },
5
119
  {
6
120
  "entry": "app-frame",
7
121
  "kind": "components",
@@ -696,7 +810,7 @@
696
810
  },
697
811
  {
698
812
  "name": "weekStartsOn",
699
- "type": "0 | 4 | 1 | 2 | 3 | 5 | 6",
813
+ "type": "0 | 2 | 3 | 4 | 1 | 5 | 6",
700
814
  "required": false,
701
815
  "default": "1",
702
816
  "description": "0 = Sunday, 1 = Monday (default)."
@@ -2115,6 +2229,10 @@
2115
2229
  "defaults": {
2116
2230
  "size": "md"
2117
2231
  }
2232
+ },
2233
+ "CHECKBOX_GROUP": {
2234
+ "axes": {},
2235
+ "defaults": {}
2118
2236
  }
2119
2237
  }
2120
2238
  },
@@ -2903,6 +3021,19 @@
2903
3021
  }
2904
3022
  ],
2905
3023
  "variants": {
3024
+ "AUTOCOMPLETE": {
3025
+ "axes": {
3026
+ "size": {
3027
+ "sm": "32px",
3028
+ "md": "36px (default)",
3029
+ "lg": "40px",
3030
+ "xl": "48px"
3031
+ }
3032
+ },
3033
+ "defaults": {
3034
+ "size": "md"
3035
+ }
3036
+ },
2906
3037
  "COMBOBOX": {
2907
3038
  "axes": {
2908
3039
  "size": {
@@ -3577,6 +3708,13 @@
3577
3708
  "default": null,
3578
3709
  "description": "The id of a row to show as active (open in a sheet)."
3579
3710
  },
3711
+ {
3712
+ "name": "canSelectRow",
3713
+ "type": "((row: T) => boolean)",
3714
+ "required": false,
3715
+ "default": null,
3716
+ "description": "Whether a row can be selected; a row that can't keeps a disabled checkbox, and select all skips it."
3717
+ },
3580
3718
  {
3581
3719
  "name": "className",
3582
3720
  "type": "string",
@@ -3894,7 +4032,7 @@
3894
4032
  },
3895
4033
  {
3896
4034
  "name": "weekStartsOn",
3897
- "type": "0 | 4 | 1 | 2 | 3 | 5 | 6",
4035
+ "type": "0 | 2 | 3 | 4 | 1 | 5 | 6",
3898
4036
  "required": false,
3899
4037
  "default": null,
3900
4038
  "description": "The first day of the week, from 0 (Sunday) to 6 (Saturday); the language decides by default."
@@ -4048,7 +4186,7 @@
4048
4186
  },
4049
4187
  {
4050
4188
  "name": "weekStartsOn",
4051
- "type": "0 | 4 | 1 | 2 | 3 | 5 | 6",
4189
+ "type": "0 | 2 | 3 | 4 | 1 | 5 | 6",
4052
4190
  "required": false,
4053
4191
  "default": null,
4054
4192
  "description": "The first day of the week, from 0 (Sunday) to 6 (Saturday); the language decides by default."
@@ -4464,6 +4602,13 @@
4464
4602
  "default": null,
4465
4603
  "description": "Right-aligned actions: Cancel (secondary) then the primary."
4466
4604
  },
4605
+ {
4606
+ "name": "footerStart",
4607
+ "type": "ReactNode",
4608
+ "required": false,
4609
+ "default": null,
4610
+ "description": "A quiet action at the footer's start, such as a link to another way of doing the task."
4611
+ },
4467
4612
  {
4468
4613
  "name": "headerStart",
4469
4614
  "type": "ReactNode",
@@ -4520,6 +4665,13 @@
4520
4665
  "default": null,
4521
4666
  "description": "The dialog's width."
4522
4667
  },
4668
+ {
4669
+ "name": "toolbar",
4670
+ "type": "ReactNode",
4671
+ "required": false,
4672
+ "default": null,
4673
+ "description": "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."
4674
+ },
4523
4675
  {
4524
4676
  "name": "trigger",
4525
4677
  "type": "ReactElement<unknown, string | JSXElementConstructor<any>>",
@@ -4560,7 +4712,7 @@
4560
4712
  "type": "DialogLayer[]",
4561
4713
  "required": true,
4562
4714
  "default": null,
4563
- "description": "The layers, each with its title, content and footer; one shows at a time, and the ones below it stay mounted and hidden."
4715
+ "description": "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."
4564
4716
  },
4565
4717
  {
4566
4718
  "name": "anchor",
@@ -4665,7 +4817,7 @@
4665
4817
  },
4666
4818
  {
4667
4819
  "name": "StepDialog",
4668
- "description": "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.",
4820
+ "description": "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.",
4669
4821
  "props": [
4670
4822
  {
4671
4823
  "name": "onSubmit",
@@ -4679,7 +4831,7 @@
4679
4831
  "type": "DialogStep[]",
4680
4832
  "required": true,
4681
4833
  "default": null,
4682
- "description": "The steps, each with its title, content and whether it can be continued."
4834
+ "description": "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\"."
4683
4835
  },
4684
4836
  {
4685
4837
  "name": "submitLabel",
@@ -4785,6 +4937,10 @@
4785
4937
  "anchor": "center"
4786
4938
  }
4787
4939
  },
4940
+ "DIALOG_SCOPE": {
4941
+ "axes": {},
4942
+ "defaults": {}
4943
+ },
4788
4944
  "LAYER_DIALOG": {
4789
4945
  "axes": {
4790
4946
  "size": {
@@ -4801,6 +4957,23 @@
4801
4957
  "size": "md",
4802
4958
  "anchor": "center"
4803
4959
  }
4960
+ },
4961
+ "STEP_DIALOG": {
4962
+ "axes": {
4963
+ "size": {
4964
+ "sm": "440px: most tasks in a few steps (default)",
4965
+ "md": "560px: steps with longer forms",
4966
+ "lg": "720px: steps with two columns or previews"
4967
+ },
4968
+ "tone": {
4969
+ "default": "The last step's button is primary (default)",
4970
+ "danger": "The last step's button is a danger button, for a task that ends in deletion"
4971
+ }
4972
+ },
4973
+ "defaults": {
4974
+ "size": "sm",
4975
+ "tone": "default"
4976
+ }
4804
4977
  }
4805
4978
  }
4806
4979
  },
@@ -5403,7 +5576,7 @@
5403
5576
  },
5404
5577
  {
5405
5578
  "name": "level",
5406
- "type": "4 | 1 | 2 | 3 | 5 | 6",
5579
+ "type": "2 | 3 | 4 | 1 | 5 | 6",
5407
5580
  "required": false,
5408
5581
  "default": null,
5409
5582
  "description": "The heading level in the document, independent of its size."
@@ -6484,6 +6657,19 @@
6484
6657
  "size": "md"
6485
6658
  }
6486
6659
  },
6660
+ "SEARCH_INPUT": {
6661
+ "axes": {
6662
+ "size": {
6663
+ "sm": "32px: toolbars (default)",
6664
+ "md": "36px: a search at the top of a page or dialog",
6665
+ "lg": "40px",
6666
+ "xl": "48px"
6667
+ }
6668
+ },
6669
+ "defaults": {
6670
+ "size": "sm"
6671
+ }
6672
+ },
6487
6673
  "SENSITIVE_INPUT": {
6488
6674
  "axes": {
6489
6675
  "kind": {
@@ -6544,6 +6730,41 @@
6544
6730
  ],
6545
6731
  "file": "src/components/kaeso/identity.tsx"
6546
6732
  },
6733
+ {
6734
+ "name": "ClientButton",
6735
+ "description": "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.",
6736
+ "props": [
6737
+ {
6738
+ "name": "aria-label",
6739
+ "type": "string",
6740
+ "required": true,
6741
+ "default": null,
6742
+ "description": "The client's name; also the tooltip."
6743
+ },
6744
+ {
6745
+ "name": "client",
6746
+ "type": "\"cursor\" | \"claude\" | \"github-copilot\"",
6747
+ "required": true,
6748
+ "default": null,
6749
+ "description": "Which client's mark it shows."
6750
+ },
6751
+ {
6752
+ "name": "className",
6753
+ "type": "string",
6754
+ "required": false,
6755
+ "default": null,
6756
+ "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
6757
+ },
6758
+ {
6759
+ "name": "onClick",
6760
+ "type": "(() => void)",
6761
+ "required": false,
6762
+ "default": null,
6763
+ "description": "Opens how to connect the client."
6764
+ }
6765
+ ],
6766
+ "file": "src/components/kaeso/client-button.tsx"
6767
+ },
6547
6768
  {
6548
6769
  "name": "ConversationView",
6549
6770
  "description": "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.",
@@ -6663,6 +6884,48 @@
6663
6884
  ],
6664
6885
  "file": "src/components/kaeso/moments.tsx"
6665
6886
  },
6887
+ {
6888
+ "name": "GrantSummary",
6889
+ "description": "What an agent or a key may do, one short line each after a check mark, on a group surface.",
6890
+ "props": [
6891
+ {
6892
+ "name": "aria-label",
6893
+ "type": "string",
6894
+ "required": true,
6895
+ "default": null,
6896
+ "description": "The list's accessible name (\"What it can do\")."
6897
+ },
6898
+ {
6899
+ "name": "items",
6900
+ "type": "readonly ReactNode[]",
6901
+ "required": true,
6902
+ "default": null,
6903
+ "description": "The lines, short and without a final period."
6904
+ },
6905
+ {
6906
+ "name": "action",
6907
+ "type": "ReactNode",
6908
+ "required": false,
6909
+ "default": null,
6910
+ "description": "A small button after the note, such as Customize."
6911
+ },
6912
+ {
6913
+ "name": "className",
6914
+ "type": "string",
6915
+ "required": false,
6916
+ "default": null,
6917
+ "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
6918
+ },
6919
+ {
6920
+ "name": "footer",
6921
+ "type": "ReactNode",
6922
+ "required": false,
6923
+ "default": null,
6924
+ "description": "A quiet note under the lines, such as how long it lasts."
6925
+ }
6926
+ ],
6927
+ "file": "src/components/kaeso/grant-summary.tsx"
6928
+ },
6666
6929
  {
6667
6930
  "name": "KeyDisplay",
6668
6931
  "description": "A redacted key: mono 13 with its state dot, copy of the redacted form, and its access.",
@@ -6970,10 +7233,10 @@
6970
7233
  },
6971
7234
  {
6972
7235
  "name": "appearance",
6973
- "type": "\"list\" | \"select\"",
7236
+ "type": "\"list\" | \"grid\" | \"select\"",
6974
7237
  "required": false,
6975
7238
  "default": null,
6976
- "description": "An always-open list for a dialog step, or a pill that opens it."
7239
+ "description": "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."
6977
7240
  },
6978
7241
  {
6979
7242
  "name": "aria-label",
@@ -7039,6 +7302,13 @@
7039
7302
  "default": null,
7040
7303
  "description": "The label above the control (`vertical`) or beside it (`horizontal`)."
7041
7304
  },
7305
+ {
7306
+ "name": "onChoose",
7307
+ "type": "((id: string) => void)",
7308
+ "required": false,
7309
+ "default": null,
7310
+ "description": "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."
7311
+ },
7042
7312
  {
7043
7313
  "name": "onValueChange",
7044
7314
  "type": "((id: string | null) => void)",
@@ -7380,6 +7650,10 @@
7380
7650
  }
7381
7651
  ],
7382
7652
  "variants": {
7653
+ "CLIENT_BUTTON": {
7654
+ "axes": {},
7655
+ "defaults": {}
7656
+ },
7383
7657
  "CONVERSATION": {
7384
7658
  "axes": {
7385
7659
  "density": {
@@ -7401,6 +7675,10 @@
7401
7675
  "layout": "rows"
7402
7676
  }
7403
7677
  },
7678
+ "GRANT_SUMMARY": {
7679
+ "axes": {},
7680
+ "defaults": {}
7681
+ },
7404
7682
  "IDENTITY": {
7405
7683
  "axes": {
7406
7684
  "provider": {
@@ -7414,6 +7692,10 @@
7414
7692
  "provider": "md"
7415
7693
  }
7416
7694
  },
7695
+ "KEY_DISPLAY": {
7696
+ "axes": {},
7697
+ "defaults": {}
7698
+ },
7417
7699
  "MOMENTS": {
7418
7700
  "axes": {
7419
7701
  "secret": {
@@ -7428,7 +7710,8 @@
7428
7710
  "axes": {
7429
7711
  "appearance": {
7430
7712
  "list": "A search field over every provider, always open: a dialog step (default)",
7431
- "select": "A pill that opens the searchable list: forms and toolbars"
7713
+ "select": "A pill that opens the searchable list: forms and toolbars",
7714
+ "grid": "Tiles with each provider's mark, connected ones first: the first step of a dialog"
7432
7715
  }
7433
7716
  },
7434
7717
  "defaults": {
@@ -7464,6 +7747,10 @@
7464
7747
  "appearance": "list"
7465
7748
  }
7466
7749
  },
7750
+ "USAGE_BREAKDOWN": {
7751
+ "axes": {},
7752
+ "defaults": {}
7753
+ },
7467
7754
  "USAGE": {
7468
7755
  "axes": {
7469
7756
  "limit": {
@@ -7564,7 +7851,7 @@
7564
7851
  },
7565
7852
  {
7566
7853
  "name": "columns",
7567
- "type": "4 | 2 | 3",
7854
+ "type": "2 | 3 | 4",
7568
7855
  "required": false,
7569
7856
  "default": "2",
7570
7857
  "description": "The grid layout's items to a row, from 480px of its container's width."
@@ -7674,14 +7961,14 @@
7674
7961
  },
7675
7962
  {
7676
7963
  "name": "columns",
7677
- "type": "4 | 1 | 2 | 3 | 6",
7964
+ "type": "2 | 3 | 4 | 1 | 6",
7678
7965
  "required": false,
7679
7966
  "default": "2",
7680
7967
  "description": "The number of columns."
7681
7968
  },
7682
7969
  {
7683
7970
  "name": "gap",
7684
- "type": "0 | 24 | 20 | 32 | 40 | 4 | 2 | 6 | 8 | 12 | 16 | 48 | 64",
7971
+ "type": "0 | 2 | 24 | 20 | 32 | 40 | 4 | 6 | 8 | 12 | 16 | 48 | 64",
7685
7972
  "required": false,
7686
7973
  "default": "16",
7687
7974
  "description": "The space between items, in pixels on the spacing scale."
@@ -7709,7 +7996,7 @@
7709
7996
  },
7710
7997
  {
7711
7998
  "name": "gap",
7712
- "type": "0 | 24 | 20 | 32 | 40 | 4 | 2 | 6 | 8 | 12 | 16 | 48 | 64",
7999
+ "type": "0 | 2 | 24 | 20 | 32 | 40 | 4 | 6 | 8 | 12 | 16 | 48 | 64",
7713
8000
  "required": false,
7714
8001
  "default": "16",
7715
8002
  "description": "The space between items, in pixels on the spacing scale."
@@ -7751,7 +8038,7 @@
7751
8038
  },
7752
8039
  {
7753
8040
  "name": "gap",
7754
- "type": "0 | 24 | 20 | 32 | 40 | 4 | 2 | 6 | 8 | 12 | 16 | 48 | 64",
8041
+ "type": "0 | 2 | 24 | 20 | 32 | 40 | 4 | 6 | 8 | 12 | 16 | 48 | 64",
7755
8042
  "required": false,
7756
8043
  "default": "16",
7757
8044
  "description": "The space between items, in pixels on the spacing scale."
@@ -8484,7 +8771,7 @@
8484
8771
  },
8485
8772
  {
8486
8773
  "name": "headingLevel",
8487
- "type": "4 | 1 | 2 | 3 | 5 | 6",
8774
+ "type": "2 | 3 | 4 | 1 | 5 | 6",
8488
8775
  "required": false,
8489
8776
  "default": "3",
8490
8777
  "description": "The heading level `#` becomes (3 by default: below a page's and a section's own headings)."
@@ -8555,7 +8842,7 @@
8555
8842
  "components": [
8556
8843
  {
8557
8844
  "name": "ContextMenu",
8558
- "description": "A dropdown menu: 16px radius, 34px rows, typeahead, Home/End, loops.",
8845
+ "description": "The same menu, opened by a right click, a long press or the context-menu key on the area it wraps.",
8559
8846
  "props": [
8560
8847
  {
8561
8848
  "name": "children",
@@ -8564,6 +8851,27 @@
8564
8851
  "default": null,
8565
8852
  "description": "The area that opens the menu on a right click or long press."
8566
8853
  },
8854
+ {
8855
+ "name": "onOpenChange",
8856
+ "type": "((open: boolean) => void)",
8857
+ "required": false,
8858
+ "default": null,
8859
+ "description": "Called when it opens or closes."
8860
+ }
8861
+ ],
8862
+ "file": "src/components/menu/menu.tsx"
8863
+ },
8864
+ {
8865
+ "name": "Menu",
8866
+ "description": "A dropdown menu: 16px radius, 34px rows, typeahead, Home/End, loops.",
8867
+ "props": [
8868
+ {
8869
+ "name": "children",
8870
+ "type": "ReactNode",
8871
+ "required": true,
8872
+ "default": null,
8873
+ "description": "The trigger and the menu's content."
8874
+ },
8567
8875
  {
8568
8876
  "name": "defaultOpen",
8569
8877
  "type": "boolean",
@@ -8607,17 +8915,32 @@
8607
8915
  "description": "The menus."
8608
8916
  },
8609
8917
  {
8610
- "name": "onOpenChange",
8611
- "type": "((o: boolean) => void)",
8918
+ "name": "aria-label",
8919
+ "type": "string",
8920
+ "required": false,
8921
+ "default": null,
8922
+ "description": "The accessible name, for when there is no visible label."
8923
+ },
8924
+ {
8925
+ "name": "className",
8926
+ "type": "string",
8612
8927
  "required": false,
8613
8928
  "default": null,
8614
- "description": "Called when a menu opens or closes."
8929
+ "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
8615
8930
  }
8616
8931
  ],
8617
8932
  "file": "src/components/menu/menu.tsx"
8618
8933
  }
8619
8934
  ],
8620
8935
  "variants": {
8936
+ "CONTEXT_MENU": {
8937
+ "axes": {},
8938
+ "defaults": {}
8939
+ },
8940
+ "MENUBAR": {
8941
+ "axes": {},
8942
+ "defaults": {}
8943
+ },
8621
8944
  "MENU": {
8622
8945
  "axes": {
8623
8946
  "item": {
@@ -10112,7 +10435,7 @@
10112
10435
  },
10113
10436
  {
10114
10437
  "name": "maxLines",
10115
- "type": "0 | 4 | 2 | 3 | 6",
10438
+ "type": "0 | 2 | 3 | 4 | 6",
10116
10439
  "required": false,
10117
10440
  "default": "4",
10118
10441
  "description": "Lines shown before \"Show all\" (4 by default; 0 shows everything)."
@@ -10300,6 +10623,10 @@
10300
10623
  }
10301
10624
  ],
10302
10625
  "variants": {
10626
+ "HOVER_CARD": {
10627
+ "axes": {},
10628
+ "defaults": {}
10629
+ },
10303
10630
  "POPOVER": {
10304
10631
  "axes": {
10305
10632
  "padding": {
@@ -10638,6 +10965,90 @@
10638
10965
  }
10639
10966
  ],
10640
10967
  "file": "src/components/radio/radio.tsx"
10968
+ },
10969
+ {
10970
+ "name": "RadioGroup",
10971
+ "description": "The group a set of radios belongs to: one of them is chosen, and the arrow keys move between them.",
10972
+ "props": [
10973
+ {
10974
+ "name": "children",
10975
+ "type": "ReactNode",
10976
+ "required": true,
10977
+ "default": null,
10978
+ "description": "The radios, one per option."
10979
+ },
10980
+ {
10981
+ "name": "aria-label",
10982
+ "type": "string",
10983
+ "required": false,
10984
+ "default": null,
10985
+ "description": "The accessible name, for when there is no visible label."
10986
+ },
10987
+ {
10988
+ "name": "aria-labelledby",
10989
+ "type": "string",
10990
+ "required": false,
10991
+ "default": null,
10992
+ "description": "The id of the element that names it, when its label is elsewhere on the page."
10993
+ },
10994
+ {
10995
+ "name": "className",
10996
+ "type": "string",
10997
+ "required": false,
10998
+ "default": null,
10999
+ "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
11000
+ },
11001
+ {
11002
+ "name": "defaultValue",
11003
+ "type": "string",
11004
+ "required": false,
11005
+ "default": null,
11006
+ "description": "The chosen option on first render."
11007
+ },
11008
+ {
11009
+ "name": "disabled",
11010
+ "type": "boolean",
11011
+ "required": false,
11012
+ "default": null,
11013
+ "description": "Turns off every radio."
11014
+ },
11015
+ {
11016
+ "name": "name",
11017
+ "type": "string",
11018
+ "required": false,
11019
+ "default": null,
11020
+ "description": "The field name the value is sent under in a form."
11021
+ },
11022
+ {
11023
+ "name": "onValueChange",
11024
+ "type": "((value: string) => void)",
11025
+ "required": false,
11026
+ "default": null,
11027
+ "description": "Called with the chosen option."
11028
+ },
11029
+ {
11030
+ "name": "orientation",
11031
+ "type": "\"horizontal\" | \"vertical\"",
11032
+ "required": false,
11033
+ "default": "vertical",
11034
+ "description": "Lays the items out in a row (`horizontal`) or a column (`vertical`)."
11035
+ },
11036
+ {
11037
+ "name": "value",
11038
+ "type": "string",
11039
+ "required": false,
11040
+ "default": null,
11041
+ "description": "The chosen option, when you control it."
11042
+ },
11043
+ {
11044
+ "name": "variant",
11045
+ "type": "\"default\" | \"cards\"",
11046
+ "required": false,
11047
+ "default": "default",
11048
+ "description": "A plain list of radios, or rows inside a settings group with the radio at the end (`cards`)."
11049
+ }
11050
+ ],
11051
+ "file": "src/components/radio/radio.tsx"
10641
11052
  }
10642
11053
  ],
10643
11054
  "variants": {
@@ -11553,6 +11964,10 @@
11553
11964
  "defaults": {
11554
11965
  "row": "default"
11555
11966
  }
11967
+ },
11968
+ "SETTINGS_SECTION": {
11969
+ "axes": {},
11970
+ "defaults": {}
11556
11971
  }
11557
11972
  }
11558
11973
  },
@@ -12593,6 +13008,17 @@
12593
13008
  }
12594
13009
  ],
12595
13010
  "variants": {
13011
+ "PILL_TABS": {
13012
+ "axes": {
13013
+ "variant": {
13014
+ "underline": "Underline tabs for detail pages: 40px, a 2px ink indicator that slides",
13015
+ "pill": "Header tabs: separate 32px pills, the active one filled"
13016
+ }
13017
+ },
13018
+ "defaults": {
13019
+ "variant": "pill"
13020
+ }
13021
+ },
12596
13022
  "TABS": {
12597
13023
  "axes": {
12598
13024
  "variant": {
@@ -12976,6 +13402,27 @@
12976
13402
  "name": "ThemeMenu",
12977
13403
  "description": "System, light or dark, stored as `kaeso:theme`.",
12978
13404
  "props": [
13405
+ {
13406
+ "name": "align",
13407
+ "type": "\"start\" | \"end\"",
13408
+ "required": false,
13409
+ "default": "end",
13410
+ "description": "Which edge of the button the menu lines up with: its end (`end`) or its start (`start`), for a button at the left edge."
13411
+ },
13412
+ {
13413
+ "name": "data-force",
13414
+ "type": "string",
13415
+ "required": false,
13416
+ "default": null,
13417
+ "description": "Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`."
13418
+ },
13419
+ {
13420
+ "name": "side",
13421
+ "type": "\"top\" | \"bottom\"",
13422
+ "required": false,
13423
+ "default": "bottom",
13424
+ "description": "Where the menu opens: below the button (`bottom`), or above it (`top`) when the button sits at the foot of a sidebar."
13425
+ },
12979
13426
  {
12980
13427
  "name": "size",
12981
13428
  "type": "\"md\" | \"sm\"",
@@ -13075,6 +13522,62 @@
13075
13522
  }
13076
13523
  }
13077
13524
  },
13525
+ {
13526
+ "entry": "thumbnail",
13527
+ "kind": "components",
13528
+ "import": "@logicplanes/kaeso-ui/thumbnail",
13529
+ "components": [
13530
+ {
13531
+ "name": "Thumbnail",
13532
+ "description": "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.",
13533
+ "props": [
13534
+ {
13535
+ "name": "alt",
13536
+ "type": "string",
13537
+ "required": true,
13538
+ "default": null,
13539
+ "description": "What the image shows, read by screen readers and shown in its place when it can't load."
13540
+ },
13541
+ {
13542
+ "name": "src",
13543
+ "type": "string",
13544
+ "required": true,
13545
+ "default": null,
13546
+ "description": "The image's address, including a data: URL."
13547
+ },
13548
+ {
13549
+ "name": "className",
13550
+ "type": "string",
13551
+ "required": false,
13552
+ "default": null,
13553
+ "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
13554
+ },
13555
+ {
13556
+ "name": "size",
13557
+ "type": "\"md\" | \"sm\" | \"lg\"",
13558
+ "required": false,
13559
+ "default": "md",
13560
+ "description": "The width and height: 64, 120 or 160 pixels."
13561
+ }
13562
+ ],
13563
+ "file": "src/components/thumbnail/thumbnail.tsx"
13564
+ }
13565
+ ],
13566
+ "variants": {
13567
+ "THUMBNAIL": {
13568
+ "axes": {
13569
+ "size": {
13570
+ "sm": "64px: a row or a compact list",
13571
+ "md": "120px: an image inside a message (default)",
13572
+ "lg": "160px: an image a page is about"
13573
+ }
13574
+ },
13575
+ "defaults": {
13576
+ "size": "md"
13577
+ }
13578
+ }
13579
+ }
13580
+ },
13078
13581
  {
13079
13582
  "entry": "timeline",
13080
13583
  "kind": "components",
@@ -13132,14 +13635,14 @@
13132
13635
  "name": "limit",
13133
13636
  "type": "number",
13134
13637
  "required": false,
13135
- "default": null,
13638
+ "default": "3",
13136
13639
  "description": "How many toasts show at once."
13137
13640
  },
13138
13641
  {
13139
13642
  "name": "timeout",
13140
13643
  "type": "number",
13141
13644
  "required": false,
13142
- "default": null,
13645
+ "default": "5000",
13143
13646
  "description": "How long a toast stays, in milliseconds."
13144
13647
  }
13145
13648
  ],
@@ -13392,7 +13895,7 @@
13392
13895
  "name": "shape",
13393
13896
  "type": "\"pill\" | \"multiline\"",
13394
13897
  "required": false,
13395
- "default": null,
13898
+ "default": "pill",
13396
13899
  "description": "A pill for a short label, or a box for several lines."
13397
13900
  },
13398
13901
  {