@logicplanes/kaeso-ui 0.1.0 → 0.2.1

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 (246) hide show
  1. package/AGENTS.md +1 -0
  2. package/LICENSE +1 -1
  3. package/ai/component-guides.md +269 -7
  4. package/ai/component-registry.json +600 -800
  5. package/ai/component-registry.md +200 -141
  6. package/ai/icons.md +2 -2
  7. package/ai/tokens.md +1 -1
  8. package/dist/blocks/delete-resource.js +1 -1
  9. package/dist/blocks/pages.js +3 -3
  10. package/dist/blocks/resource-list.js +2 -2
  11. package/dist/chunks/app-frame-BXh-06HL.js +214 -0
  12. package/dist/chunks/app-frame-BXh-06HL.js.map +1 -0
  13. package/dist/chunks/{banner-BiziJuBZ.js → banner-DxGBPQ7p.js} +2 -2
  14. package/dist/chunks/{banner-BiziJuBZ.js.map → banner-DxGBPQ7p.js.map} +1 -1
  15. package/dist/chunks/{button-BHKAE6ui.js → button-DQvoOxVQ.js} +2 -2
  16. package/dist/chunks/{button-BHKAE6ui.js.map → button-DQvoOxVQ.js.map} +1 -1
  17. package/dist/chunks/{calendar-B5SSTE56.js → calendar-CN3YJi2k.js} +3 -3
  18. package/dist/chunks/{calendar-B5SSTE56.js.map → calendar-CN3YJi2k.js.map} +1 -1
  19. package/dist/chunks/code-BADhvsgC.js +33 -0
  20. package/dist/chunks/code-BADhvsgC.js.map +1 -0
  21. package/dist/chunks/{code-block-BbK6E4Eo.js → code-block-DxtladFW.js} +41 -37
  22. package/dist/chunks/code-block-DxtladFW.js.map +1 -0
  23. package/dist/chunks/{combobox-D8pQk22r.js → combobox-D30Wt11R.js} +4 -4
  24. package/dist/chunks/{combobox-D8pQk22r.js.map → combobox-D30Wt11R.js.map} +1 -1
  25. package/dist/chunks/{copy-button-mAzHjYXq.js → copy-button-DXxn-YYZ.js} +4 -4
  26. package/dist/chunks/{copy-button-mAzHjYXq.js.map → copy-button-DXxn-YYZ.js.map} +1 -1
  27. package/dist/chunks/{core-Bgefcs3z.js → core-K960A4OT.js} +119 -120
  28. package/dist/chunks/core-K960A4OT.js.map +1 -0
  29. package/dist/chunks/{date-popup-Er1oQwtU.js → date-popup-B-6xhb-1.js} +3 -3
  30. package/dist/chunks/{date-popup-Er1oQwtU.js.map → date-popup-B-6xhb-1.js.map} +1 -1
  31. package/dist/chunks/{de-BCg1eRVd.js → de-CTAo4KL7.js} +10 -10
  32. package/dist/chunks/de-CTAo4KL7.js.map +1 -0
  33. package/dist/chunks/dialog-LNKgPEsV.js +319 -0
  34. package/dist/chunks/dialog-LNKgPEsV.js.map +1 -0
  35. package/dist/chunks/{icon-Bha63LaN.js → icon-CBzvyEqC.js} +30 -29
  36. package/dist/chunks/icon-CBzvyEqC.js.map +1 -0
  37. package/dist/chunks/{icon-button-Bw67oKtx.js → icon-button-_x1RUphC.js} +3 -3
  38. package/dist/chunks/{icon-button-Bw67oKtx.js.map → icon-button-_x1RUphC.js.map} +1 -1
  39. package/dist/chunks/{identity-DQinp-Ep.js → identity-BtZC_d_Q.js} +3 -3
  40. package/dist/chunks/{identity-DQinp-Ep.js.map → identity-BtZC_d_Q.js.map} +1 -1
  41. package/dist/chunks/{input-Biakz6GB.js → input-CNTfI6YE.js} +2 -2
  42. package/dist/chunks/{input-Biakz6GB.js.map → input-CNTfI6YE.js.map} +1 -1
  43. package/dist/chunks/{input-group-DQqEPFj_.js → input-group-CYA1MEoZ.js} +2 -2
  44. package/dist/chunks/{input-group-DQqEPFj_.js.map → input-group-CYA1MEoZ.js.map} +1 -1
  45. package/dist/chunks/{iso-field-CznqNVrH.js → iso-field-1qmg7TP8.js} +2 -2
  46. package/dist/chunks/{iso-field-CznqNVrH.js.map → iso-field-1qmg7TP8.js.map} +1 -1
  47. package/dist/chunks/linear-scale-BWKeRqDX.js +37 -0
  48. package/dist/chunks/linear-scale-BWKeRqDX.js.map +1 -0
  49. package/dist/chunks/{link-tTapNTpM.js → link-vz9aV8WX.js} +9 -2
  50. package/dist/chunks/link-vz9aV8WX.js.map +1 -0
  51. package/dist/chunks/{list-CN8pO8lv.js → list-CzaiyNja.js} +119 -111
  52. package/dist/chunks/list-CzaiyNja.js.map +1 -0
  53. package/dist/chunks/{markdown-C-iJsYnd.js → markdown-5NyaHHfN.js} +6 -6
  54. package/dist/chunks/{markdown-C-iJsYnd.js.map → markdown-5NyaHHfN.js.map} +1 -1
  55. package/dist/chunks/{menu-OURWt_hD.js → menu-DyVPwgfF.js} +2 -2
  56. package/dist/chunks/{menu-OURWt_hD.js.map → menu-DyVPwgfF.js.map} +1 -1
  57. package/dist/chunks/nav-sheet-BIErlV74.js +58 -0
  58. package/dist/chunks/nav-sheet-BIErlV74.js.map +1 -0
  59. package/dist/chunks/{logo-VmXYhIJL.js → nav-wordmark-DLkItdvo.js} +12 -93
  60. package/dist/chunks/nav-wordmark-DLkItdvo.js.map +1 -0
  61. package/dist/chunks/observe-resize-DhxhmoyB.js +25 -0
  62. package/dist/chunks/observe-resize-DhxhmoyB.js.map +1 -0
  63. package/dist/chunks/{page-header-BIRswR73.js → page-header-CEPZzhRp.js} +2 -2
  64. package/dist/chunks/{page-header-BIRswR73.js.map → page-header-CEPZzhRp.js.map} +1 -1
  65. package/dist/chunks/{pagination-DYdLm18-.js → pagination-CCMxQ5pH.js} +3 -3
  66. package/dist/chunks/{pagination-DYdLm18-.js.map → pagination-CCMxQ5pH.js.map} +1 -1
  67. package/dist/chunks/{range-popup-AbRzgHtY.js → range-popup-DGOnGGag.js} +4 -4
  68. package/dist/chunks/{range-popup-AbRzgHtY.js.map → range-popup-DGOnGGag.js.map} +1 -1
  69. package/dist/chunks/resize-motion-CMaidkwe.js +101 -0
  70. package/dist/chunks/resize-motion-CMaidkwe.js.map +1 -0
  71. package/dist/chunks/{rights-CXo7zEf6.js → rights-BbiJ0AJB.js} +4 -4
  72. package/dist/chunks/{rights-CXo7zEf6.js.map → rights-BbiJ0AJB.js.map} +1 -1
  73. package/dist/chunks/{section-XStLtXKa.js → section-DzOLLN1p.js} +3 -3
  74. package/dist/chunks/section-DzOLLN1p.js.map +1 -0
  75. package/dist/chunks/{segmented-CDTx2n29.js → segmented-MrinfDL8.js} +36 -35
  76. package/dist/chunks/segmented-MrinfDL8.js.map +1 -0
  77. package/dist/chunks/select-Bc4kRiSG.js +227 -0
  78. package/dist/chunks/select-Bc4kRiSG.js.map +1 -0
  79. package/dist/chunks/{sidebar-C4fL_KMm.js → sidebar-5IA18LuP.js} +180 -183
  80. package/dist/chunks/sidebar-5IA18LuP.js.map +1 -0
  81. package/dist/chunks/{sidebar-menu-sd9vCpDy.js → sidebar-menu-DRWRxcJ3.js} +2 -2
  82. package/dist/chunks/{sidebar-menu-sd9vCpDy.js.map → sidebar-menu-DRWRxcJ3.js.map} +1 -1
  83. package/dist/chunks/{switch-CztLhA8F.js → switch-XMY_CQE-.js} +2 -2
  84. package/dist/chunks/{switch-CztLhA8F.js.map → switch-XMY_CQE-.js.map} +1 -1
  85. package/dist/chunks/{tag-BsmQ1xPj.js → tag-Dg89uYpV.js} +3 -3
  86. package/dist/chunks/{tag-BsmQ1xPj.js.map → tag-Dg89uYpV.js.map} +1 -1
  87. package/dist/chunks/{text-BPglS3vq.js → text--5MKh2G4.js} +3 -3
  88. package/dist/chunks/{text-BPglS3vq.js.map → text--5MKh2G4.js.map} +1 -1
  89. package/dist/chunks/{textarea-Bvk7N2bh.js → textarea-Cj8iR82R.js} +3 -3
  90. package/dist/chunks/{textarea-Bvk7N2bh.js.map → textarea-Cj8iR82R.js.map} +1 -1
  91. package/dist/chunks/theme-provider-DJhORMlc.js +72 -0
  92. package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -0
  93. package/dist/chunks/tooltip-DEbCCsru.js +151 -0
  94. package/dist/chunks/tooltip-DEbCCsru.js.map +1 -0
  95. package/dist/chunks/{tooltip-root-DWhtAtFb.js → tooltip-root-DRd4ciUv.js} +2 -2
  96. package/dist/chunks/{tooltip-root-DWhtAtFb.js.map → tooltip-root-DRd4ciUv.js.map} +1 -1
  97. package/dist/chunks/use-layout-width-CbSDbRb0.js +28 -0
  98. package/dist/chunks/use-layout-width-CbSDbRb0.js.map +1 -0
  99. package/dist/chunks/use-scroll-margin-DfdTc_5D.js +26 -0
  100. package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +1 -0
  101. package/dist/chunks/use-truncated-CW0hByYt.js +24 -0
  102. package/dist/chunks/use-truncated-CW0hByYt.js.map +1 -0
  103. package/dist/chunks/{virtual-rows-BgMdVelU.js → virtual-rows-BZe49bKi.js} +2 -2
  104. package/dist/chunks/{virtual-rows-BgMdVelU.js.map → virtual-rows-BZe49bKi.js.map} +1 -1
  105. package/dist/chunks/{zh-CN-cPjO1OOo.js → zh-CN-C7GmVswt.js} +15 -15
  106. package/dist/chunks/zh-CN-C7GmVswt.js.map +1 -0
  107. package/dist/components/app-frame.js +3 -1
  108. package/dist/components/banner.js +1 -1
  109. package/dist/components/button-group.js +2 -2
  110. package/dist/components/button.js +1 -1
  111. package/dist/components/calendar.js +1 -1
  112. package/dist/components/charts/bar.js +78 -77
  113. package/dist/components/charts/bar.js.map +1 -1
  114. package/dist/components/charts/donut.js +2 -2
  115. package/dist/components/charts/gauge.js +1 -1
  116. package/dist/components/charts/sankey.js +1 -1
  117. package/dist/components/charts/timeseries.js +75 -75
  118. package/dist/components/charts/timeseries.js.map +1 -1
  119. package/dist/components/charts.js +1 -1
  120. package/dist/components/code-block.js +1 -1
  121. package/dist/components/code.js +1 -1
  122. package/dist/components/combobox.js +1 -1
  123. package/dist/components/command-palette.js +105 -97
  124. package/dist/components/command-palette.js.map +1 -1
  125. package/dist/components/copy-button.js +1 -1
  126. package/dist/components/data-table.js +94 -95
  127. package/dist/components/data-table.js.map +1 -1
  128. package/dist/components/date-picker.js +3 -3
  129. package/dist/components/date-picker.js.map +1 -1
  130. package/dist/components/dialog.js +141 -153
  131. package/dist/components/dialog.js.map +1 -1
  132. package/dist/components/display-options.js +5 -5
  133. package/dist/components/filter-chip.js +1 -1
  134. package/dist/components/flow.js +37 -36
  135. package/dist/components/flow.js.map +1 -1
  136. package/dist/components/icon-button.js +1 -1
  137. package/dist/components/icon.js +1 -1
  138. package/dist/components/input.js +5 -5
  139. package/dist/components/kaeso/conversation.js +2 -2
  140. package/dist/components/kaeso/identity.js +1 -1
  141. package/dist/components/kaeso/moments.js +3 -3
  142. package/dist/components/kaeso/rights.js +1 -1
  143. package/dist/components/kaeso/usage.js +1 -1
  144. package/dist/components/kaeso.js +4 -4
  145. package/dist/components/key-value.js +3 -3
  146. package/dist/components/link.js +1 -1
  147. package/dist/components/list.js +1 -1
  148. package/dist/components/logo.js +101 -1
  149. package/dist/components/logo.js.map +1 -0
  150. package/dist/components/markdown.js +1 -1
  151. package/dist/components/menu.js +1 -1
  152. package/dist/components/page-header.js +1 -1
  153. package/dist/components/pagination.js +1 -1
  154. package/dist/components/playground.js +8 -8
  155. package/dist/components/scroll-area.js +30 -23
  156. package/dist/components/scroll-area.js.map +1 -1
  157. package/dist/components/section.js +1 -1
  158. package/dist/components/segmented.js +1 -1
  159. package/dist/components/select.js +1 -1
  160. package/dist/components/sheet.js +46 -41
  161. package/dist/components/sheet.js.map +1 -1
  162. package/dist/components/sidebar.js +1 -1
  163. package/dist/components/stat.js +75 -76
  164. package/dist/components/stat.js.map +1 -1
  165. package/dist/components/switch.js +1 -1
  166. package/dist/components/tag.js +1 -1
  167. package/dist/components/text.js +1 -1
  168. package/dist/components/theme-image.js +38 -0
  169. package/dist/components/theme-image.js.map +1 -0
  170. package/dist/components/theme-menu.js +3 -3
  171. package/dist/components/theme-select.js +58 -0
  172. package/dist/components/theme-select.js.map +1 -0
  173. package/dist/components/toast.js +91 -92
  174. package/dist/components/toast.js.map +1 -1
  175. package/dist/components/tooltip.js +1 -1
  176. package/dist/i18n-provider.js +1 -1
  177. package/dist/index.js +76 -74
  178. package/dist/kaeso.css +39 -16
  179. package/dist/styles.css +1 -1
  180. package/dist/theme.js +1 -1
  181. package/dist/types/components/app-frame/app-frame.d.ts +2 -10
  182. package/dist/types/components/app-frame/docs.d.ts +1 -0
  183. package/dist/types/components/app-frame/index.d.ts +1 -0
  184. package/dist/types/components/app-frame/nav-sheet.d.ts +11 -0
  185. package/dist/types/components/charts/linear-scale.d.ts +17 -0
  186. package/dist/types/components/code/code.d.ts +16 -0
  187. package/dist/types/components/code/docs.d.ts +1 -0
  188. package/dist/types/components/code-block/code-block.d.ts +2 -0
  189. package/dist/types/components/code-block/docs.d.ts +4 -0
  190. package/dist/types/components/command-palette/command-palette.d.ts +1 -0
  191. package/dist/types/components/command-palette/docs.d.ts +1 -0
  192. package/dist/types/components/dialog/dialog.d.ts +5 -2
  193. package/dist/types/components/dialog/docs.d.ts +10 -0
  194. package/dist/types/components/dialog/index.d.ts +1 -0
  195. package/dist/types/components/dialog/scope.d.ts +9 -0
  196. package/dist/types/components/dialog/step-dialog.d.ts +9 -1
  197. package/dist/types/components/link/link.d.ts +8 -0
  198. package/dist/types/components/logo/nav-wordmark.d.ts +6 -0
  199. package/dist/types/components/scroll-area/scroll-area.d.ts +3 -3
  200. package/dist/types/components/theme-image/docs.d.ts +13 -0
  201. package/dist/types/components/theme-image/index.d.ts +1 -0
  202. package/dist/types/components/theme-image/theme-image.d.ts +23 -0
  203. package/dist/types/components/theme-select/docs.d.ts +10 -0
  204. package/dist/types/components/theme-select/index.d.ts +1 -0
  205. package/dist/types/components/theme-select/theme-select.d.ts +34 -0
  206. package/dist/types/icons/groups.d.ts +1 -1
  207. package/dist/types/icons/vocabulary.d.ts +5 -0
  208. package/dist/types/index.d.ts +2 -0
  209. package/dist/types/theme/theme-provider.d.ts +1 -1
  210. package/dist/types/utils/dialog-scope.d.ts +7 -0
  211. package/dist/types/utils/lazy-module.d.ts +7 -2
  212. package/dist/types/utils/observe-resize.d.ts +1 -0
  213. package/dist/types/utils/resize-motion.d.ts +2 -0
  214. package/foundations/motion.md +1 -0
  215. package/package.json +2 -2
  216. package/dist/chunks/app-frame-BBIMch8X.js +0 -224
  217. package/dist/chunks/app-frame-BBIMch8X.js.map +0 -1
  218. package/dist/chunks/code-DDyOlIFO.js +0 -23
  219. package/dist/chunks/code-DDyOlIFO.js.map +0 -1
  220. package/dist/chunks/code-block-BbK6E4Eo.js.map +0 -1
  221. package/dist/chunks/core-Bgefcs3z.js.map +0 -1
  222. package/dist/chunks/de-BCg1eRVd.js.map +0 -1
  223. package/dist/chunks/dialog-CVqSVk3T.js +0 -283
  224. package/dist/chunks/dialog-CVqSVk3T.js.map +0 -1
  225. package/dist/chunks/icon-Bha63LaN.js.map +0 -1
  226. package/dist/chunks/link-tTapNTpM.js.map +0 -1
  227. package/dist/chunks/list-CN8pO8lv.js.map +0 -1
  228. package/dist/chunks/logo-VmXYhIJL.js.map +0 -1
  229. package/dist/chunks/restore-focus-Cap1Q-R3.js +0 -19
  230. package/dist/chunks/restore-focus-Cap1Q-R3.js.map +0 -1
  231. package/dist/chunks/section-XStLtXKa.js.map +0 -1
  232. package/dist/chunks/segmented-CDTx2n29.js.map +0 -1
  233. package/dist/chunks/select-Ca3HGsN1.js +0 -223
  234. package/dist/chunks/select-Ca3HGsN1.js.map +0 -1
  235. package/dist/chunks/sidebar-C4fL_KMm.js.map +0 -1
  236. package/dist/chunks/theme-provider-mgUaQK7L.js +0 -69
  237. package/dist/chunks/theme-provider-mgUaQK7L.js.map +0 -1
  238. package/dist/chunks/tooltip-CDu00nzg.js +0 -124
  239. package/dist/chunks/tooltip-CDu00nzg.js.map +0 -1
  240. package/dist/chunks/use-layout-width-DZaLOQMT.js +0 -27
  241. package/dist/chunks/use-layout-width-DZaLOQMT.js.map +0 -1
  242. package/dist/chunks/use-scroll-margin-DWcfIXac.js +0 -25
  243. package/dist/chunks/use-scroll-margin-DWcfIXac.js.map +0 -1
  244. package/dist/chunks/use-truncated-DmQoePvG.js +0 -25
  245. package/dist/chunks/use-truncated-DmQoePvG.js.map +0 -1
  246. package/dist/chunks/zh-CN-cPjO1OOo.js.map +0 -1
@@ -1,17 +1,17 @@
1
1
  # @logicplanes/kaeso-ui component registry
2
2
 
3
- Version 0.1.0. Generated from the component types, their descriptions and variants; do not edit.
3
+ Version 0.2.1. Generated from the component types, their descriptions and variants; do not edit.
4
4
 
5
5
  ## app-frame
6
6
 
7
7
  `import { AppFrame, NavSheet } from "@logicplanes/kaeso-ui/app-frame";`
8
8
 
9
- - **padding** (app_frame_body): `none` — Edge to edge: lists and tables that bring their own row insets (default); `list` — A list or table under the header: 8px above the first row; rows bring their own side insets; `page` — A content page (overviews, charts, sections): 24px sides, 16px under the header, 48px at the end
10
- - **fill** (app_frame): `screen` — Fills the viewport (default); `parent` — Fills its container: previews, embedded tools
9
+ - **padding** (app_frame_body): `none` (default) — Edge to edge: lists and tables that bring their own row insets (default); `list` — A list or table under the header: 8px above the first row; rows bring their own side insets; `page` — A content page (overviews, charts, sections): 24px sides, 16px under the header, 48px at the end
10
+ - **fill** (app_frame): `screen` (default) — Fills the viewport (default); `parent` — Fills its container: previews, embedded tools
11
11
 
12
12
  ### AppFrame
13
13
 
14
- The page frame of an app: a skip link to the content, the sidebar, the inset panel and, on phones, a bar with a menu button.
14
+ The page frame of an app: a skip link to the content, the sidebar, the inset panel and, on phones, a bar with a menu button. The navigation sheet's code loads once the page is idle or on the first tap; after a failed download the next tap or hover loads it again from a fresh address. Chromium and WebKit keep a failed download of a chunk the sheet shares with the rest of the app until the page is reloaded.
15
15
 
16
16
  | Prop | Type | Default | Description |
17
17
  |---|---|---|---|
@@ -22,6 +22,7 @@ The page frame of an app: a skip link to the content, the sidebar, the inset pan
22
22
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
23
23
  | `corner` | `ReactNode` | | A bottom-right status area. Unused by default. |
24
24
  | `fill` | `"screen" \| "parent"` | `screen` | `screen` fills the viewport (default); `parent` fills its container (previews, embedded tools). |
25
+ | `phoneActions` | `ReactNode` | | Icon buttons in the phone bar before the navigation toggle, such as search, so it is one tap away; pass `tooltip={false}` to each. |
25
26
 
26
27
  ### NavSheet
27
28
 
@@ -39,8 +40,8 @@ The sidebar as a floating panel from the left edge (a peek): the mobile navigati
39
40
 
40
41
  `import { Avatar, AvatarGroup } from "@logicplanes/kaeso-ui/avatar";`
41
42
 
42
- - **size** (avatar): `20` — 20px; `24` — 24px: rows and the org switcher (default); `28` — 28px; `32` — 32px; `40` — 40px: menus, profiles
43
- - **kind** (avatar): `person` — People are round; `org` — Organizations and projects: radius 8
43
+ - **size** (avatar): `20` — 20px; `24` (default) — 24px: rows and the org switcher (default); `28` — 28px; `32` — 32px; `40` — 40px: menus, profiles
44
+ - **kind** (avatar): `person` (default) — People are round; `org` — Organizations and projects: radius 8
44
45
 
45
46
  ### Avatar
46
47
 
@@ -71,7 +72,7 @@ Overlapping avatars with a 2px panel ring and a "+3".
71
72
 
72
73
  `import { Badge } from "@logicplanes/kaeso-ui/badge";`
73
74
 
74
- - **tone** (badge): `neutral` — Neutral (default); `success` — Success; `warning` — Warning; `danger` — Danger; `info` — Information; `outline` — A ring only; `ink` — Inverted, for the one thing that must stand out
75
+ - **tone** (badge): `neutral` (default) — Neutral (default); `success` — Success; `warning` — Warning; `danger` — Danger; `info` — Information; `outline` — A ring only; `ink` — Inverted, for the one thing that must stand out
75
76
 
76
77
  ### Badge
77
78
 
@@ -86,8 +87,8 @@ A small pill label: 22px, 12/500. Words carry meaning; color supports them.
86
87
 
87
88
  `import { Banner } from "@logicplanes/kaeso-ui/banner";`
88
89
 
89
- - **tone** (banner): `neutral` — A neutral notice (default); `info` — Information; `success` — Something worked; `warning` — Attention needed soon; `danger` — Something failed or will fail
90
- - **layout** (banner): `inline` — Inside content: radius 14 (default); `full` — Across the top of the panel for global notices
90
+ - **tone** (banner): `neutral` (default) — A neutral notice (default); `info` — Information; `success` — Something worked; `warning` — Attention needed soon; `danger` — Something failed or will fail
91
+ - **layout** (banner): `inline` (default) — Inside content: radius 14 (default); `full` — Across the top of the panel for global notices
91
92
 
92
93
  ### Banner
93
94
 
@@ -108,9 +109,9 @@ An inline notice: a tint, an icon, an optional title, the text, actions at the e
108
109
 
109
110
  `import { Button } from "@logicplanes/kaeso-ui/button";`
110
111
 
111
- - **variant** (button): `primary` — Ink with a faint top light. Exactly one per view.; `secondary` — Raised, ring and a soft shadow. The default.; `ghost` — Transparent until hovered: toolbars, rows, quiet actions; `quiet` — A ghost in secondary text that darkens on hover: actions inside a field (clear, reveal, copy); `soft` — A fill without a ring: the active pill tab; `danger` — The destructive confirm, with the primary's material; `danger-secondary` — Raised with danger text; tints on hover. Destructive triggers.; `link` — Text with an underline, for actions inside sentences
112
- - **size** (button): `xs` — 24px: chips inside rows and tables only; `sm` — 32px: toolbars, headers, settings rows; `md` — 36px: the default; `lg` — 40px: prominent actions; `xl` — 48px: sign-in and setup forms, empty-state actions
113
- - **shape** (button): `pill` — Every button is a pill; `circle` — Icon-only: a circle of the same height
112
+ - **variant** (button): `primary` — Ink with a faint top light. Exactly one per view.; `secondary` (default) — Raised, ring and a soft shadow. The default.; `ghost` — Transparent until hovered: toolbars, rows, quiet actions; `quiet` — A ghost in secondary text that darkens on hover: actions inside a field (clear, reveal, copy); `soft` — A fill without a ring: the active pill tab; `danger` — The destructive confirm, with the primary's material; `danger-secondary` — Raised with danger text; tints on hover. Destructive triggers.; `link` — Text with an underline, for actions inside sentences
113
+ - **size** (button): `xs` — 24px: chips inside rows and tables only; `sm` — 32px: toolbars, headers, settings rows; `md` (default) — 36px: the default; `lg` — 40px: prominent actions; `xl` — 48px: sign-in and setup forms, empty-state actions
114
+ - **shape** (button): `pill` (default) — Every button is a pill; `circle` — Icon-only: a circle of the same height
114
115
 
115
116
  ### Button
116
117
 
@@ -140,8 +141,8 @@ The button. Every one is a pill; icon-only buttons are circles (see `IconButton`
140
141
 
141
142
  `import { ButtonGroup } from "@logicplanes/kaeso-ui/button-group";`
142
143
 
143
- - **attached** (button_group): `true` — Connected: one outer pill with inner hairline dividers (default); `false` — Spaced: separate pills 8px apart
144
- - **size** (button_group): `xs` — 24px; `sm` — 32px; `md` — 36px (default); `lg` — 40px
144
+ - **attached** (button_group): `true` (default) — Connected: one outer pill with inner hairline dividers (default); `false` — Spaced: separate pills 8px apart
145
+ - **size** (button_group): `xs` — 24px; `sm` — 32px; `md` (default) — 36px (default); `lg` — 40px
145
146
 
146
147
  ### ButtonGroup
147
148
 
@@ -158,7 +159,7 @@ Related actions side by side: connected pills, or spaced with `attached={false}`
158
159
 
159
160
  `import { Calendar } from "@logicplanes/kaeso-ui/calendar";`
160
161
 
161
- - **mode** (calendar): `single` — One date (default); `range` — A range: a continuous strip between ink ends
162
+ - **mode** (calendar): `single` (default) — One date (default); `range` — A range: a continuous strip between ink ends
162
163
 
163
164
  ### Calendar
164
165
 
@@ -181,15 +182,15 @@ The calendar: 36px day circles, today ringed, ranges as a continuous strip with
181
182
 
182
183
  `import { BarChart, ChartFrame, ChartLive, ChartTooltip, Donut, Gauge, Heatmap, Legend, Ring, Sankey, ShareBar, Sparkline, Swatch, TimeseriesChart } from "@logicplanes/kaeso-ui/charts";`
183
184
 
184
- - **layout** (bar_chart): `grouped` — Bars side by side per category (default); `stacked` — Bars stacked per category; `horizontal` — Horizontal bars for rankings
185
- - **chrome** (charts): `default` — Dashed 3 3 grid, tertiary 12px labels, a strong baseline; no frame
186
- - **size** (donut): `md` — 160px (default); `sm` — 140px; `lg` — 180px
187
- - **size** (gauge): `md` — 180px (default)
188
- - **layout** (heatmap): `week` — Hour × weekday (default); `year` — Day × week
189
- - **size** (sankey): `md` — Fills its width; 320px tall by default
190
- - **size** (share_bar): `md` — One 8px pill (default)
191
- - **size** (sparkline): `md` — 80×24 inline (default)
192
- - **kind** (timeseries_chart): `line` — 2px lines, hover dots only (default); `area` — Lines with a 10% fill (16% in dark mode); `stacked` — Stacked areas
185
+ - **layout** (bar_chart): `grouped` (default) — Bars side by side per category (default); `stacked` — Bars stacked per category; `horizontal` — Horizontal bars for rankings
186
+ - **chrome** (charts): `default` (default) — Dashed 3 3 grid, tertiary 12px labels, a strong baseline; no frame
187
+ - **size** (donut): `md` (default) — 160px (default); `sm` — 140px; `lg` — 180px
188
+ - **size** (gauge): `md` (default) — 180px (default)
189
+ - **layout** (heatmap): `week` (default) — Hour × weekday (default); `year` — Day × week
190
+ - **size** (sankey): `md` (default) — Fills its width; 320px tall by default
191
+ - **size** (share_bar): `md` (default) — One 8px pill (default)
192
+ - **size** (sparkline): `md` (default) — 80×24 inline (default)
193
+ - **kind** (timeseries_chart): `line` (default) — 2px lines, hover dots only (default); `area` — Lines with a 10% fill (16% in dark mode); `stacked` — Stacked areas
193
194
 
194
195
  ### BarChart
195
196
 
@@ -405,7 +406,7 @@ A line or area chart of values over time, such as usage, with a crosshair and to
405
406
 
406
407
  `import { Checkbox, CheckboxGroup } from "@logicplanes/kaeso-ui/checkbox";`
407
408
 
408
- - **size** (checkbox): `md` — 18px, radius 5 (default)
409
+ - **size** (checkbox): `md` (default) — 18px, radius 5 (default)
409
410
 
410
411
  ### Checkbox
411
412
 
@@ -478,7 +479,8 @@ Checkboxes that share one value, a list of the checked values.
478
479
 
479
480
  `import { Code } from "@logicplanes/kaeso-ui/code";`
480
481
 
481
- - **shape** (code): `auto` — Pill for a single word, radius 6 for anything longer (default); `pill` — Always a pill; `rounded` — Always radius 6
482
+ - **shape** (code): `auto` (default) — Pill for a single word, radius 6 for anything longer (default); `pill` — Always a pill; `rounded` — Always radius 6
483
+ - **flow** (code): `box` (default) — One box: it moves to the next line whole and wraps inside itself (default); `text` — Breaks with the sentence around it, each line keeping its fill and corners; for long code in running text; `cell` — Breaks with the text around it and ends square at a break, so no padding hangs past a narrow table cell; for long code in a table
482
484
 
483
485
  ### Code
484
486
 
@@ -486,14 +488,15 @@ Inline code: Geist Mono 13 on fill-1.
486
488
 
487
489
  | Prop | Type | Default | Description |
488
490
  |---|---|---|---|
491
+ | `flow` | `"cell" \| "text" \| "box"` | `box` | `text` for long code in running text, so it breaks with the sentence instead of jumping to its own line as one box; `cell` for the same in a table cell. |
489
492
  | `shape` | `"auto" \| "pill" \| "rounded"` | `auto` | A pill on one line, rounded corners when it wraps, or `auto` to choose by length. |
490
493
 
491
494
  ## code-block
492
495
 
493
496
  `import { CodeBlock, CodeHighlighted, JsonView } from "@logicplanes/kaeso-ui/code-block";`
494
497
 
495
- - **surface** (code_block): `well` — A well: radius 14, fill, no ring (default); `plain` — No surface, inside another well
496
- - **surface** (json_view): `well` — On a well (default); `plain` — No surface
498
+ - **surface** (code_block): `well` (default) — A well: radius 14, fill, no ring (default); `plain` — No surface, inside another well
499
+ - **surface** (json_view): `well` (default) — On a well (default); `plain` — No surface
497
500
 
498
501
  ### CodeBlock
499
502
 
@@ -508,7 +511,9 @@ Highlighted code on a well: Kaeso's monochrome theme, copy on hover, tabs, line
508
511
  | `highlightLines` | `number[]` | `[]` | 1-based line numbers to highlight. |
509
512
  | `lang` | `CodeLang` | `ts` | The language of the code, for highlighting. |
510
513
  | `lineNumbers` | `boolean` | | Shows line numbers. |
514
+ | `onTabChange` | `((label: string) => void)` | | Called with the label of the tab a person chooses, to remember it. |
511
515
  | `surface` | `"well" \| "plain"` | `well` | On a filled well (`well`) or on the panel itself (`plain`). |
516
+ | `tab` | `string` | | The label of the tab to show, such as a language the reader chose before. A label the block lacks leaves its own choice. |
512
517
  | `tabs` | `CodeTab[]` | | Several versions: "Python · Node · curl", shown as pill tabs. |
513
518
  | `title` | `ReactNode` | | A file name in the title bar. |
514
519
  | `wrap` | `boolean` | `false` | Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). |
@@ -526,7 +531,9 @@ The same component as `CodeBlock`, under another name.
526
531
  | `highlightLines` | `number[]` | `[]` | 1-based line numbers to highlight. |
527
532
  | `lang` | `CodeLang` | `ts` | The language of the code, for highlighting. |
528
533
  | `lineNumbers` | `boolean` | | Shows line numbers. |
534
+ | `onTabChange` | `((label: string) => void)` | | Called with the label of the tab a person chooses, to remember it. |
529
535
  | `surface` | `"well" \| "plain"` | `well` | On a filled well (`well`) or on the panel itself (`plain`). |
536
+ | `tab` | `string` | | The label of the tab to show, such as a language the reader chose before. A label the block lacks leaves its own choice. |
530
537
  | `tabs` | `CodeTab[]` | | Several versions: "Python · Node · curl", shown as pill tabs. |
531
538
  | `title` | `ReactNode` | | A file name in the title bar. |
532
539
  | `wrap` | `boolean` | `false` | Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). |
@@ -547,7 +554,7 @@ A folding JSON tree: copy any path, highlight a search. For request and response
547
554
 
548
555
  `import { Accordion, Collapsible } from "@logicplanes/kaeso-ui/collapsible";`
549
556
 
550
- - **state** (collapsible): `closed` — Closed: the chevron points to the row (default); `open` — Open: the chevron turns down and the content shows
557
+ - **state** (collapsible): `closed` (default) — Closed: the chevron points to the row (default); `open` — Open: the chevron turns down and the content shows
551
558
 
552
559
  ### Accordion
553
560
 
@@ -578,7 +585,7 @@ A disclosure row: a chevron that rotates in 180ms, a measured height animation.
578
585
 
579
586
  `import { Autocomplete, Combobox, Highlight } from "@logicplanes/kaeso-ui/combobox";`
580
587
 
581
- - **size** (combobox): `sm` — 32px; `md` — 36px (default); `lg` — 40px; `xl` — 48px
588
+ - **size** (combobox): `sm` — 32px; `md` (default) — 36px (default); `lg` — 40px; `xl` — 48px
582
589
 
583
590
  ### Autocomplete
584
591
 
@@ -650,7 +657,7 @@ Splits a label around the query: matched characters in text, the rest secondary
650
657
 
651
658
  `import { CommandPalette } from "@logicplanes/kaeso-ui/command-palette";`
652
659
 
653
- - **size** (command_palette): `md` — 640px, 20vh from the top (default)
660
+ - **size** (command_palette): `md` (default) — 640px, 20vh from the top (default)
654
661
 
655
662
  ### CommandPalette
656
663
 
@@ -668,14 +675,15 @@ Splits a label around the query: matched characters in text, the rest secondary
668
675
  | `onQueryChange` | `((query: string) => void)` | | Called as the query changes, for async groups. |
669
676
  | `open` | `boolean` | | Whether it is open, when you control it. |
670
677
  | `placeholder` | `string` | | Defaults to "Search or run a command" in the provider's language. |
678
+ | `query` | `string` | | The query in the field, when you control it; keep it in sync through onQueryChange. |
671
679
 
672
680
  ## copy-button
673
681
 
674
682
  `import { ClipboardText, CopyButton, InlineCopyText } from "@logicplanes/kaeso-ui/copy-button";`
675
683
 
676
- - **size** (clipboard_text): `sm` — 32px; `md` — 36px (default); `lg` — 40px
677
- - **variant** (copy_button): `ghost` — Inside fields and wells (default); `secondary` — On its own
678
- - **size** (copy_button): `xs` — 24px circle: inside rows and chips; `sm` — 32px circle: toolbars and headers (default); `md` — 36px circle: beside md controls; `lg` — 40px circle; `xl` — 48px circle
684
+ - **size** (clipboard_text): `sm` — 32px; `md` (default) — 36px (default); `lg` — 40px
685
+ - **variant** (copy_button): `ghost` (default) — Inside fields and wells (default); `secondary` — On its own
686
+ - **size** (copy_button): `xs` — 24px circle: inside rows and chips; `sm` (default) — 32px circle: toolbars and headers (default); `md` — 36px circle: beside md controls; `lg` — 40px circle; `xl` — 48px circle
679
687
 
680
688
  ### ClipboardText
681
689
 
@@ -718,7 +726,7 @@ Inline mono text that copies itself on click, with a hover affordance. Never wid
718
726
 
719
727
  `import { DataTable } from "@logicplanes/kaeso-ui/data-table";`
720
728
 
721
- - **density** (data_table): `compact` — 36px rows; `default` — 40px rows (default); `comfortable` — 48px rows
729
+ - **density** (data_table): `compact` — 36px rows; `default` (default) — 40px rows (default); `comfortable` — 48px rows
722
730
 
723
731
  ### DataTable
724
732
 
@@ -757,8 +765,8 @@ A table for many rows: sorting, selection, loading and empty states, more rows o
757
765
 
758
766
  `import { DatePicker, DateRangePicker, TimeInput } from "@logicplanes/kaeso-ui/date-picker";`
759
767
 
760
- - **size** (date_picker): `sm` — 32px; `md` — 36px (default); `lg` — 40px
761
- - **size** (time_input): `sm` — 32px: toolbars and compact forms; `md` — 36px: the default; `lg` — 40px; `xl` — 48px: sign-in and setup forms
768
+ - **size** (date_picker): `sm` — 32px; `md` (default) — 36px (default); `lg` — 40px
769
+ - **size** (time_input): `sm` — 32px: toolbars and compact forms; `md` (default) — 36px: the default; `lg` — 40px; `xl` — 48px: sign-in and setup forms
762
770
 
763
771
  ### DatePicker
764
772
 
@@ -841,7 +849,7 @@ Hours and minutes as two segments in one pill; arrows step, typing advances.
841
849
 
842
850
  `import { DeleteResource } from "@logicplanes/kaeso-ui/blocks/delete-resource";`
843
851
 
844
- - **confirm** (delete_resource): `typed` — The person types the resource's name (default); `simple` — A confirm button only, for reversible archives
852
+ - **confirm** (delete_resource): `typed` (default) — The person types the resource's name (default); `simple` — A confirm button only, for reversible archives
845
853
 
846
854
  ### DeleteResource
847
855
 
@@ -862,11 +870,11 @@ Confirms deleting a resource: names the object and the consequence, asks for its
862
870
 
863
871
  ## dialog
864
872
 
865
- `import { AlertDialog, Dialog, LayerDialog, StepDialog } from "@logicplanes/kaeso-ui/dialog";`
873
+ `import { AlertDialog, Dialog, DialogScope, LayerDialog, StepDialog } from "@logicplanes/kaeso-ui/dialog";`
866
874
 
867
- - **tone** (alert_dialog): `danger` — Destructive (default); `warning` — Risky but reversible; `info` — Neutral confirmation
868
- - **size** (dialog): `sm` — 440px: confirmations, short forms; `md` — 560px: forms (default); `lg` — 720px: two columns, previews
869
- - **size** (layer_dialog): `sm` — 440px: confirmations, short forms; `md` — 560px: forms (default); `lg` — 720px: two columns, previews
875
+ - **tone** (alert_dialog): `danger` (default) — Destructive (default); `warning` — Risky but reversible; `info` — Neutral confirmation
876
+ - **size** (dialog): `sm` — 440px: confirmations, short forms; `md` (default) — 560px: forms (default); `lg` — 720px: two columns, previews
877
+ - **size** (layer_dialog): `sm` — 440px: confirmations, short forms; `md` (default) — 560px: forms (default); `lg` — 720px: two columns, previews
870
878
 
871
879
  ### AlertDialog
872
880
 
@@ -876,13 +884,13 @@ Confirms an irreversible action: names it, explains the consequence, optionally
876
884
  |---|---|---|---|
877
885
  | `confirmLabel` * | `string` | | The confirm label, the verb and object: "Delete key". |
878
886
  | `description` * | `ReactNode` | | The practical consequence. |
879
- | `onConfirm` * | `() => void \| Promise<void>` | | Called when the action is confirmed; return a promise to keep the dialog busy until it ends. It closes when the promise resolves and stays open for another try when it rejects, so toast the error there. |
887
+ | `onConfirm` * | `() => void \| Promise<unknown>` | | Called when the action is confirmed; return a promise to keep the dialog busy until it ends. It closes when the promise resolves and stays open for another try when it rejects, so toast the error there. |
880
888
  | `title` * | `ReactNode` | | Names the action: "Delete this key?" |
881
889
  | `cancelLabel` | `string` | | Defaults to "Cancel" in the provider's language. |
882
890
  | `confirmText` | `string` | | Typed confirmation: the person types this to enable the confirm. |
883
891
  | `defaultOpen` | `boolean` | | Whether it starts open, when the component keeps its own state. |
884
892
  | `inline` | `boolean` | | Renders in place, without a trigger, for review pages and tests. |
885
- | `loading` | `boolean` | | Shows a spinner on the confirm while work runs (also automatic for a promise). |
893
+ | `loading` | `boolean` | | Shows a spinner on the confirm while work runs (also automatic for a promise); until it ends, the dialog stays open. |
886
894
  | `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
887
895
  | `open` | `boolean` | | Whether it is open, when you control it. |
888
896
  | `tone` | `"warning" \| "danger" \| "info"` | | How serious the confirmation is; `danger` for actions that can't be undone. |
@@ -890,11 +898,12 @@ Confirms an irreversible action: names it, explains the consequence, optionally
890
898
 
891
899
  ### Dialog
892
900
 
893
- A modal dialog: 440 / 560 / 720, radius 20, title, description, body, actions. ⌘Enter submits.
901
+ A modal dialog: 440 / 560 / 720, radius 20, title, description, body, actions. ⌘Enter submits. It stays centered while its content changes, growing or shrinking 200ms from the size it has; the body scrolls between the header and the footer when the content is taller than the screen. Its content unmounts once it has closed; state kept beside it, like a field, a step or a secret, goes in a component inside a DialogScope.
894
902
 
895
903
  | Prop | Type | Default | Description |
896
904
  |---|---|---|---|
897
905
  | `title` * | `ReactNode` | | The dialog's heading, also its accessible name. |
906
+ | `busy` | `boolean` | | Keeps the dialog open while work it started is underway: Escape, a press outside, the close circle, Dialog.Close and ⌘Enter do nothing, so a request is never abandoned or sent twice. |
898
907
  | `children` | `ReactNode` | | The dialog's content and actions. |
899
908
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
900
909
  | `defaultOpen` | `boolean` | | Whether it starts open, when the component keeps its own state. |
@@ -909,6 +918,15 @@ A modal dialog: 440 / 560 / 720, radius 20, title, description, body, actions.
909
918
  | `size` | `"md" \| "sm" \| "lg"` | | The dialog's width. |
910
919
  | `trigger` | `ReactElement<unknown, string \| JSXElementConstructor<any>>` | | The trigger, a single element. |
911
920
 
921
+ ### DialogScope
922
+
923
+ Opens a dialog's flow fresh every time: its children mount anew when `open` turns true and unmount once the Dialog, StepDialog, LayerDialog, AlertDialog, Sheet or CommandPalette inside has finished closing. Fields, steps, errors, results and secrets shown once never come back on the next open, and nothing changes while the dialog animates out.
924
+
925
+ | Prop | Type | Default | Description |
926
+ |---|---|---|---|
927
+ | `children` * | `ReactNode` | | The component that keeps the flow's state and renders the dialog with the same `open`. |
928
+ | `open` * | `boolean` | | Whether the dialog inside is open; pass the value its `open` gets. |
929
+
912
930
  ### LayerDialog
913
931
 
914
932
  A stacked dialog: a second layer slides over the first (add model → review values); back returns. The layers below stay as they were. Moving to a layer puts the focus on its first field, or its primary action; Back returns it to the control that opened the layer, scrolled where it was. ⌘/Ctrl+Enter calls onSubmit on every layer.
@@ -916,6 +934,7 @@ A stacked dialog: a second layer slides over the first (add model → review val
916
934
  | Prop | Type | Default | Description |
917
935
  |---|---|---|---|
918
936
  | `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. |
937
+ | `busy` | `boolean` | | Keeps the dialog open while work it started is underway: Escape, a press outside, the close circle, Dialog.Close and ⌘Enter do nothing, so a request is never abandoned or sent twice. |
919
938
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
920
939
  | `defaultOpen` | `boolean` | | Whether it starts open, when the component keeps its own state. |
921
940
  | `hideClose` | `boolean` | | Hide the close circle (rare). |
@@ -930,7 +949,7 @@ A stacked dialog: a second layer slides over the first (add model → review val
930
949
 
931
950
  ### StepDialog
932
951
 
933
- 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 field and ⌘/Ctrl+Enter continue. The dialog takes each step's height: it grows or shrinks 200ms as the step changes, its top stays where it opened, and the new step drifts in from the side it comes from. Within a step it never shrinks, so nothing jumps while a step's content changes; it grows once if the content does. Steps a few pixels apart share one height. 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.
952
+ 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 field and ⌘/Ctrl+Enter continue. The dialog takes each step's own height and stays centered: it grows or shrinks 200ms from the size it has as the step changes, 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.
934
953
 
935
954
  | Prop | Type | Default | Description |
936
955
  |---|---|---|---|
@@ -942,15 +961,16 @@ A form split into steps, one question at a time, like sign-in: the step's title
942
961
  | `inline` | `boolean` | | Render without a portal and backdrop, for documentation and state matrices. |
943
962
  | `onOpenChange` | `((open: boolean) => void)` | | Called when it opens or closes. |
944
963
  | `open` | `boolean` | | Whether it is open, when you control it. |
964
+ | `result` | `StepDialogResult` | | What the last step made, shown in the same dialog once it exists: its title, description, content, footer and size. Pass it after `onSubmit` succeeds, such as the created key with SecretReveal. |
945
965
  | `size` | `"md" \| "sm" \| "lg"` | `sm` | The dialog's width. |
946
- | `submitting` | `boolean` | | Shows that the submission is underway. |
966
+ | `submitting` | `boolean` | | Shows that the submission is underway; until it ends, the dialog stays open and Back and Cancel wait. |
947
967
  | `tone` | `"danger" \| "default"` | `default` | `danger` for an action that destroys something: the last step's button turns red. |
948
968
 
949
969
  ## display-options
950
970
 
951
971
  `import { DisplayOptions } from "@logicplanes/kaeso-ui/display-options";`
952
972
 
953
- - **trigger** (display_options): `secondary` — A raised circle with a ring, like page-header buttons (default); `ghost` — A ghost circle
973
+ - **trigger** (display_options): `secondary` (default) — A raised circle with a ring, like page-header buttons (default); `ghost` — A ghost circle
954
974
 
955
975
  ### DisplayOptions
956
976
 
@@ -970,7 +990,7 @@ Display options: view, grouping and ordering, toggles, properties.
970
990
 
971
991
  `import { Empty } from "@logicplanes/kaeso-ui/empty";`
972
992
 
973
- - **size** (empty): `lg` — Centered in a panel (default); `md` — Inside a section; `compact` — Inside tables and lists
993
+ - **size** (empty): `lg` (default) — Centered in a panel (default); `md` — Inside a section; `compact` — Inside tables and lists
974
994
 
975
995
  ### Empty
976
996
 
@@ -989,7 +1009,7 @@ An empty state: a title, one sentence, one or two actions. No icon, no illustrat
989
1009
 
990
1010
  `import { Field, Fieldset } from "@logicplanes/kaeso-ui/field";`
991
1011
 
992
- - **layout** (field): `vertical` — Label above the control (default); `horizontal` — Label in a 240px column on the left, from 768px
1012
+ - **layout** (field): `vertical` (default) — Label above the control (default); `horizontal` — Label in a 240px column on the left, from 768px
993
1013
 
994
1014
  ### Field
995
1015
 
@@ -1017,7 +1037,7 @@ A group of fields under one legend.
1017
1037
 
1018
1038
  `import { FilterChip } from "@logicplanes/kaeso-ui/filter-chip";`
1019
1039
 
1020
- - **size** (filter_chip): `sm` — 32px: toolbars (default)
1040
+ - **size** (filter_chip): `sm` (default) — 32px: toolbars (default)
1021
1041
 
1022
1042
  ### FilterChip
1023
1043
 
@@ -1044,7 +1064,7 @@ A filter as one pill: "Status is 2xx ×", each part opening a menu.
1044
1064
 
1045
1065
  `import { FilterRow } from "@logicplanes/kaeso-ui/filter-row";`
1046
1066
 
1047
- - **size** (filter_row): `md` — Under a page header on an edge-to-edge page: 24px sides, 48px tall on one line like a toolbar; `inset` — In a settings column: 24px under the header (with the column's 8px), 16px above the list or table (chosen automatically)
1067
+ - **size** (filter_row): `md` (default) — Under a page header on an edge-to-edge page: 24px sides, 48px tall on one line like a toolbar; `inset` — In a settings column: 24px under the header (with the column's 8px), 16px above the list or table (chosen automatically)
1048
1068
 
1049
1069
  ### FilterRow
1050
1070
 
@@ -1061,7 +1081,7 @@ The row between a page's header and its list or table: pill tabs at the start, f
1061
1081
 
1062
1082
  `import { Flow } from "@logicplanes/kaeso-ui/flow";`
1063
1083
 
1064
- - **node** (flow): `pill` — A raised pill (default); `box` — A rounded-14 box with a description line
1084
+ - **node** (flow): `pill` (default) — A raised pill (default); `box` — A rounded-14 box with a description line
1065
1085
 
1066
1086
  ### Flow
1067
1087
 
@@ -1080,7 +1100,7 @@ A node-and-connector diagram: the route "app → Kaeso → provider / model".
1080
1100
 
1081
1101
  `import { Heading } from "@logicplanes/kaeso-ui/heading";`
1082
1102
 
1083
- - **size** (heading): `title-sm` — 17/24: section, dialog and sheet titles; `title` — 20/28: empty states, compact page titles; `title-lg` — 28/34: settings page titles, auth screens; `display` — 40/44: showcase headings, the setup screen
1103
+ - **size** (heading): `title-sm` (default) — 17/24: section, dialog and sheet titles; `title` — 20/28: empty states, compact page titles; `title-lg` — 28/34: settings page titles, auth screens; `display` — 40/44: showcase headings, the setup screen
1084
1104
 
1085
1105
  ### Heading
1086
1106
 
@@ -1096,7 +1116,7 @@ Heading levels map to the title tokens (4.3).
1096
1116
 
1097
1117
  `import { Icon } from "@logicplanes/kaeso-ui/icon";`
1098
1118
 
1099
- - **size** (icon): `xs` — 14px, 1.75 stroke: chips, xs controls, inline hints; `sm` — 16px, 1.5 stroke: the default in controls and menus; `md` — 18px, 1.5 stroke: sidebar items, lg controls; `lg` — 20px, 1.5 stroke: xl controls, empty states; `xl` — 24px, 1.5 stroke: rare, large moments
1119
+ - **size** (icon): `xs` — 14px, 1.75 stroke: chips, xs controls, inline hints; `sm` (default) — 16px, 1.5 stroke: the default in controls and menus; `md` — 18px, 1.5 stroke: sidebar items, lg controls; `lg` — 20px, 1.5 stroke: xl controls, empty states; `xl` — 24px, 1.5 stroke: rare, large moments
1100
1120
 
1101
1121
  ### Icon
1102
1122
 
@@ -1112,8 +1132,8 @@ The one way to draw an icon: Hugeicons Stroke Rounded in currentColor.
1112
1132
 
1113
1133
  `import { IconButton } from "@logicplanes/kaeso-ui/icon-button";`
1114
1134
 
1115
- - **variant** (icon_button): `ghost` — Toolbar and row actions (default); `quiet` — Secondary text that darkens on hover: inside fields; `secondary` — Raised circles with a ring: page-header buttons; `soft` — A filled circle; `primary` — The view's one primary action, as an icon; `danger` — Destructive; `danger-secondary` — Destructive, quieter
1116
- - **size** (icon_button): `xs` — 24px circle: inside rows and chips; `sm` — 32px circle: toolbars and headers (default); `md` — 36px circle: beside md controls; `lg` — 40px circle; `xl` — 48px circle
1135
+ - **variant** (icon_button): `ghost` (default) — Toolbar and row actions (default); `quiet` — Secondary text that darkens on hover: inside fields; `secondary` — Raised circles with a ring: page-header buttons; `soft` — A filled circle; `primary` — The view's one primary action, as an icon; `danger` — Destructive; `danger-secondary` — Destructive, quieter
1136
+ - **size** (icon_button): `xs` — 24px circle: inside rows and chips; `sm` (default) — 32px circle: toolbars and headers (default); `md` — 36px circle: beside md controls; `lg` — 40px circle; `xl` — 48px circle
1117
1137
 
1118
1138
  ### IconButton
1119
1139
 
@@ -1137,13 +1157,13 @@ A circle with an icon, a required name, and a tooltip that says it.
1137
1157
 
1138
1158
  `import { Input, InputGroup, NumberInput, OTPInput, SearchInput, SensitiveInput, TagInput, Textarea } from "@logicplanes/kaeso-ui/input";`
1139
1159
 
1140
- - **size** (input_group): `sm` — 32px: toolbars and compact forms; `md` — 36px: the default; `lg` — 40px; `xl` — 48px: sign-in and setup forms
1141
- - **size** (input): `sm` — 32px: toolbars and compact forms; `md` — 36px: the default; `lg` — 40px; `xl` — 48px: sign-in and setup forms
1142
- - **align** (number_input): `end` — Right-aligned tabular digits (default); `start` — Left-aligned
1143
- - **size** (otp_input): `md` — 48px cells (default); `sm` — 40px cells
1144
- - **kind** (sensitive_input): `secret` — Provider keys and tokens: never autocompleted (default); `password` — Passwords: browser password managers allowed, Caps Lock hint
1145
- - **size** (tag_input): `md` — 36px at one row; grows as tags wrap (default)
1146
- - **resize** (textarea): `auto` — Grows with its content to 8 lines, then scrolls (default); `vertical` — People can drag it taller
1160
+ - **size** (input): `sm` — 32px: toolbars and compact forms; `md` (default) — 36px: the default; `lg` — 40px; `xl` — 48px: sign-in and setup forms
1161
+ - **size** (input_group): `sm` — 32px: toolbars and compact forms; `md` (default) — 36px: the default; `lg` — 40px; `xl` — 48px: sign-in and setup forms
1162
+ - **align** (number_input): `end` (default) — Right-aligned tabular digits (default); `start` — Left-aligned
1163
+ - **size** (otp_input): `md` (default) — 48px cells (default); `sm` — 40px cells
1164
+ - **kind** (sensitive_input): `secret` (default) — Provider keys and tokens: never autocompleted (default); `password` — Passwords: browser password managers allowed, Caps Lock hint
1165
+ - **size** (tag_input): `md` (default) — 36px at one row; grows as tags wrap (default)
1166
+ - **resize** (textarea): `auto` (default) — Grows with its content to 8 lines, then scrolls (default); `vertical` — People can drag it taller
1147
1167
 
1148
1168
  ### Input
1149
1169
 
@@ -1313,14 +1333,14 @@ A multi-line field: radius 14 (multi-line text cannot be a pill), the same mater
1313
1333
 
1314
1334
  `import { ConversationView, EffectiveAccess, EnvironmentSnippet, KeyDisplay, LimitMeter, ModelLabel, ProviderBadge, ProviderCard, RequestTimeline, RightsMatrix, RolePicker, SecretReveal, StatusCode, UsageBreakdown } from "@logicplanes/kaeso-ui/kaeso";`
1315
1335
 
1316
- - **density** (conversation): `default` — 24px between turns (default); `compact` — 16px, inside sheets
1317
- - **layout** (effective_access): `rows` — A row per group: its name, what is granted in words, and how many (default)
1318
- - **provider** (identity): `sm` — 16px, inside table cells; `md` — 20px (default); `lg` — 28px; `xl` — 40px: a provider's own page or card
1319
- - **secret** (moments): `md` — The one-time secret on a well
1320
- - **origin** (rights_matrix): `preset` — Comes from the role; `added` — Added on top of the role; `removed` — Removed from the role; `none` — Not granted
1321
- - **mode** (rights_matrix): `edit` — Checkboxes, group toggles and requirement hints (default); `readOnly` — A mark per right and, under it, the roles that grant it
1322
- - **appearance** (role_picker): `list` — 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
1323
- - **limit** (usage): `hard` — Requests over the limit are refused; `soft` — Over the limit only alerts
1336
+ - **density** (conversation): `default` (default) — 24px between turns (default); `compact` — 16px, inside sheets
1337
+ - **layout** (effective_access): `rows` (default) — A row per group: its name, what is granted in words, and how many (default)
1338
+ - **provider** (identity): `sm` — 16px, inside table cells; `md` (default) — 20px (default); `lg` — 28px; `xl` — 40px: a provider's own page or card
1339
+ - **secret** (moments): `md` (default) — The one-time secret on a well
1340
+ - **origin** (rights_matrix): `preset` — Comes from the role; `added` — Added on top of the role; `removed` — Removed from the role; `none` (default) — Not granted
1341
+ - **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
1342
+ - **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
1343
+ - **limit** (usage): `hard` (default) — Requests over the limit are refused; `soft` — Over the limit only alerts
1324
1344
 
1325
1345
  ### ConversationView
1326
1346
 
@@ -1505,7 +1525,7 @@ A stacked bar of token kinds with the numbers under it, in the fixed series mapp
1505
1525
 
1506
1526
  `import { Kbd, KbdSequence } from "@logicplanes/kaeso-ui/kbd";`
1507
1527
 
1508
- - **tone** (kbd): `default` — On panels and raised surfaces; `onInk` — Inside ink surfaces (toasts, the selection bar)
1528
+ - **tone** (kbd): `default` (default) — On panels and raised surfaces; `onInk` — Inside ink surfaces (toasts, the selection bar)
1509
1529
 
1510
1530
  ### Kbd
1511
1531
 
@@ -1529,8 +1549,8 @@ A shortcut: `⌘ K`, or a sequence like `G then L`.
1529
1549
 
1530
1550
  `import { KeyValue } from "@logicplanes/kaeso-ui/key-value";`
1531
1551
 
1532
- - **layout** (key_value): `columns` — Label and value side by side (default); `stacked` — Label above value, for narrow sheets; `grid` — Label above value, in columns: a wide sheet's details, two or more to a row
1533
- - **columns** (key_value): `2` — Two to a row from 480px; one below (default); `3` — Three to a row from 480px; two below; `4` — Four to a row from 480px, for short values (counts, sizes); two below
1552
+ - **layout** (key_value): `columns` (default) — Label and value side by side (default); `stacked` — Label above value, for narrow sheets; `grid` — Label above value, in columns: a wide sheet's details, two or more to a row
1553
+ - **columns** (key_value): `2` (default) — Two to a row from 480px; one below (default); `3` — Three to a row from 480px; two below; `4` — Four to a row from 480px, for short values (counts, sizes); two below
1534
1554
 
1535
1555
  ### KeyValue
1536
1556
 
@@ -1547,7 +1567,7 @@ Label and value pairs (13 secondary label, 14 value), copyable values. Side by s
1547
1567
 
1548
1568
  `import { Label } from "@logicplanes/kaeso-ui/label";`
1549
1569
 
1550
- - **size** (label): `md` — 14/500: field labels; `sm` — 13/500: compact forms
1570
+ - **size** (label): `md` (default) — 14/500: field labels; `sm` — 13/500: compact forms
1551
1571
 
1552
1572
  ### Label
1553
1573
 
@@ -1563,9 +1583,9 @@ The label of a form control.
1563
1583
 
1564
1584
  `import { Grid, Inline, Stack } from "@logicplanes/kaeso-ui/layout";`
1565
1585
 
1566
- - **align** (layout): `start` — Align to the start; `center` — Center on the cross axis; `end` — Align to the end; `baseline` — Align text baselines; `stretch` — Stretch
1567
- - **justify** (layout): `start` — Pack to the start; `center` — Center; `end` — Pack to the end; `between` — Space between
1568
- - **columns** (layout): `1` — One column; `2` — Two columns from 768px; `3` — Three columns from 768px; `4` — Two, then four from 1024px; `6` — Three, then six from 1024px
1586
+ - **align** (layout): `start` — Align to the start; `center` — Center on the cross axis; `end` — Align to the end; `baseline` — Align text baselines; `stretch` (default) — Stretch
1587
+ - **justify** (layout): `start` (default) — Pack to the start; `center` — Center; `end` — Pack to the end; `between` — Space between
1588
+ - **columns** (layout): `1` — One column; `2` (default) — Two columns from 768px; `3` — Three columns from 768px; `4` — Two, then four from 1024px; `6` — Three, then six from 1024px
1569
1589
 
1570
1590
  ### Grid
1571
1591
 
@@ -1605,7 +1625,7 @@ A vertical stack.
1605
1625
 
1606
1626
  `import { Link } from "@logicplanes/kaeso-ui/link";`
1607
1627
 
1608
- - **variant** (link): `inline` — Inside prose: text color with a quiet underline that turns solid on hover; `quiet` — Navigation-style links in footers and metadata; no underline until hover; `standalone` — A link on its own line (“Team overview ›”)
1628
+ - **variant** (link): `inline` (default) — Inside prose: text color with a quiet underline that turns solid on hover; `quiet` — Navigation-style links in footers and metadata; no underline until hover; `standalone` — A link on its own line (“Team overview ›”); `heading` — A heading's link to itself: the heading's own look, with a # beside it on hover and keyboard focus; `card` — A page to read next: a filled well with the page's name and one sentence about it
1609
1629
 
1610
1630
  ### Link
1611
1631
 
@@ -1616,13 +1636,13 @@ A link. Router links come from `LinkProvider`.
1616
1636
  | `children` * | `ReactNode` | | The link's text. |
1617
1637
  | `href` * | `string` | | The address the link goes to. |
1618
1638
  | `external` | `boolean` | | Opens in a new tab, adds rel and a 14px ↗. Detected from the href when not set. |
1619
- | `variant` | `"inline" \| "quiet" \| "standalone"` | `inline` | Underlined in text (`inline`), quiet in lists (`quiet`) or on its own line with an arrow (`standalone`). |
1639
+ | `variant` | `"heading" \| "inline" \| "quiet" \| "standalone" \| "card"` | `inline` | Underlined in text (`inline`), quiet in lists (`quiet`), on its own line with an arrow (`standalone`), inside a heading that links to itself (`heading`), or as a page to read next with its name and a sentence (`card`). |
1620
1640
 
1621
1641
  ## list
1622
1642
 
1623
1643
  `import { GroupHeader, List, ListRow, SelectionAction, SelectionBar } from "@logicplanes/kaeso-ui/list";`
1624
1644
 
1625
- - **density** (list): `default` — 44px rows (default); `compact` — 36px rows
1645
+ - **density** (list): `default` (default) — 44px rows (default); `compact` — 36px rows
1626
1646
 
1627
1647
  ### GroupHeader
1628
1648
 
@@ -1713,9 +1733,9 @@ The floating capsule with the selection count and its actions: the toast's mater
1713
1733
 
1714
1734
  `import { Loader, Spinner } from "@logicplanes/kaeso-ui/loader";`
1715
1735
 
1716
- - **size** (loader): `xs` — 14px: xs controls; `sm` — 16px: buttons, toasts, labels (default); `md` — 20px: xl buttons; `lg` — 24px: a region loading; `xl` — 32px: a page loading
1717
- - **tone** (loader): `secondary` — Secondary text (default); `tertiary` — Tertiary text, the quietest: a page loading; `current` — The text color around it
1718
- - **size** (spinner): `xs` — 14px: xs controls; `sm` — 16px: buttons, toasts, labels (default); `md` — 20px: xl buttons; `lg` — 24px: a region loading; `xl` — 32px: a page loading
1736
+ - **size** (loader): `xs` — 14px: xs controls; `sm` (default) — 16px: buttons, toasts, labels (default); `md` — 20px: xl buttons; `lg` — 24px: a region loading; `xl` — 32px: a page loading
1737
+ - **tone** (loader): `secondary` (default) — Secondary text (default); `tertiary` — Tertiary text, the quietest: a page loading; `current` — The text color around it
1738
+ - **size** (spinner): `xs` — 14px: xs controls; `sm` (default) — 16px: buttons, toasts, labels (default); `md` — 20px: xl buttons; `lg` — 24px: a region loading; `xl` — 32px: a page loading
1719
1739
 
1720
1740
  ### Loader
1721
1741
 
@@ -1744,8 +1764,8 @@ Kaeso's spinner: three routes on a ring, the lead in full color and the two behi
1744
1764
 
1745
1765
  `import { Logo } from "@logicplanes/kaeso-ui/logo";`
1746
1766
 
1747
- - **markSize** (logo): `sm` — 20px high: the minimum in interfaces; `md` — 24px: compact navigation; `lg` — 32px; `xl` — 48px: empty and setup screens
1748
- - **lockupSize** (logo): `sm` — 28px high (112px wide): the minimum; `md` — 32px: headers; `lg` — 40px: auth and setup screens
1767
+ - **markSize** (logo): `sm` — 20px high: the minimum in interfaces; `md` (default) — 24px: compact navigation; `lg` — 32px; `xl` — 48px: empty and setup screens
1768
+ - **lockupSize** (logo): `sm` (default) — 28px high (112px wide): the minimum; `md` — 32px: headers; `lg` — 40px: auth and setup screens
1749
1769
 
1750
1770
  ### Logo
1751
1771
 
@@ -1761,8 +1781,8 @@ Kaeso's spinner: three routes on a ring, the lead in full color and the two behi
1761
1781
 
1762
1782
  `import { Markdown } from "@logicplanes/kaeso-ui/markdown";`
1763
1783
 
1764
- - **size** (markdown): `lg` — 15/22 text, 16px between blocks: a model's response, for reading; `body` — 14/20 text, 12px between blocks: responses and prompts (default); `small` — 13/18 text, 8px between blocks: reasoning, tool results, side notes
1765
- - **tone** (markdown): `default` — Primary text (default); `secondary` — Quieter text: reasoning summaries and quotes
1784
+ - **size** (markdown): `lg` — 15/22 text, 16px between blocks: a model's response, for reading; `body` (default) — 14/20 text, 12px between blocks: responses and prompts (default); `small` — 13/18 text, 8px between blocks: reasoning, tool results, side notes
1785
+ - **tone** (markdown): `default` (default) — Primary text (default); `secondary` — Quieter text: reasoning summaries and quotes
1766
1786
 
1767
1787
  ### Markdown
1768
1788
 
@@ -1784,9 +1804,9 @@ Markdown, safely: headings, paragraphs, lists, tasks, code fences (CodeBlock), i
1784
1804
 
1785
1805
  `import { ContextMenu, Menubar } from "@logicplanes/kaeso-ui/menu";`
1786
1806
 
1787
- - **item** (menu): `default` — An action; `danger` — A destructive action: red text, a red tint on highlight
1788
- - **width** (menu): `auto` — 220–360px, from its content (default); `trigger` — As wide as its trigger
1789
- - **description** (menu): `secondary` — The second line of a rich item (default); `danger` — A second line that warns: an organization scheduled for deletion
1807
+ - **item** (menu): `default` (default) — An action; `danger` — A destructive action: red text, a red tint on highlight
1808
+ - **width** (menu): `auto` (default) — 220–360px, from its content (default); `trigger` — As wide as its trigger
1809
+ - **description** (menu): `secondary` (default) — The second line of a rich item (default); `danger` — A second line that warns: an organization scheduled for deletion
1790
1810
 
1791
1811
  ### ContextMenu
1792
1812
 
@@ -1813,8 +1833,8 @@ A row of menus, as in a desktop app's title bar.
1813
1833
 
1814
1834
  `import { Meter, Progress } from "@logicplanes/kaeso-ui/meter";`
1815
1835
 
1816
- - **tone** (meter): `auto` — Series 1 until the first alert threshold, warning after, danger at 100% (default); `neutral` — A plain share
1817
- - **kind** (progress): `determinate` — A pill bar with a known amount; `indeterminate` — A 2px line at the top of a container
1836
+ - **tone** (meter): `auto` (default) — Series 1 until the first alert threshold, warning after, danger at 100% (default); `neutral` — A plain share
1837
+ - **kind** (progress): `determinate` (default) — A pill bar with a known amount; `indeterminate` — A 2px line at the top of a container
1818
1838
 
1819
1839
  ### Meter
1820
1840
 
@@ -1847,7 +1867,7 @@ Progress for work over a second: a determinate pill, or an indeterminate 2px lin
1847
1867
 
1848
1868
  `import { PageHeader } from "@logicplanes/kaeso-ui/page-header";`
1849
1869
 
1850
- - **size** (page_header): `md` — 52px, no bottom line (default); on a phone the tabs take a second row
1870
+ - **size** (page_header): `md` (default) — 52px, no bottom line (default); on a phone the tabs take a second row
1851
1871
 
1852
1872
  ### PageHeader
1853
1873
 
@@ -1866,7 +1886,7 @@ The 52px header of a page: its title, pill tabs, actions. On a phone the tabs mo
1866
1886
 
1867
1887
  `import { AuthPage, EmptyPage, ListPage, OverviewPage } from "@logicplanes/kaeso-ui/blocks/pages";`
1868
1888
 
1869
- - **page** (pages): `list` — Header, toolbar, a full-bleed List; `table` — Header, toolbar, a DataTable edge to edge; `overview` — A metric row, a chart, a breakdown and an optional aside; `empty` — Empty centered in the panel; `auth` — No chrome; a centered 400px column
1889
+ - **page** (pages): `list` (default) — Header, toolbar, a full-bleed List; `table` — Header, toolbar, a DataTable edge to edge; `overview` — A metric row, a chart, a breakdown and an optional aside; `empty` — Empty centered in the panel; `auth` — No chrome; a centered 400px column
1870
1890
 
1871
1891
  ### AuthPage
1872
1892
 
@@ -1922,7 +1942,7 @@ Big numbers, period controls, a chart on the panel, a breakdown, an optional rig
1922
1942
 
1923
1943
  `import { Pagination } from "@logicplanes/kaeso-ui/pagination";`
1924
1944
 
1925
- - **variant** (pagination): `load-more` — A “Load more” pill while more rows exist, nothing once all are shown (cursor APIs, default); `cursor` — Previous and next circles, without a count; `pages` — Page numbers, for lists with a known number of pages
1945
+ - **variant** (pagination): `load-more` (default) — A “Load more” pill while more rows exist, nothing once all are shown (cursor APIs, default); `cursor` — Previous and next circles, without a count; `pages` — Page numbers, for lists with a known number of pages
1926
1946
 
1927
1947
  ### Pagination
1928
1948
 
@@ -1946,13 +1966,13 @@ Moves through long lists by pages, by cursor, or with a Load more button.
1946
1966
 
1947
1967
  `import { CompareGrid, Composer, ModelPicker, ParameterPanel, ParameterPopover, PromptSuggestions, ResponseMetrics, ResponseView, Thread, UserMessage } from "@logicplanes/kaeso-ui/playground";`
1948
1968
 
1949
- - **divider** (compare_grid): `hairline` — Columns separated by a hairline, edge to edge (default); `none` — No line between columns: columns that sit in panels of their own
1950
- - **size** (composer): `md` — Text 14/20, 8px around the buttons; the outline concentric with them (16 + 8) (default); `sm` — The same box starting one line tall: a follow-up field under a thread
1951
- - **appearance** (model_picker): `ghost` — Transparent until hovered: a column header (default); `default` — A raised pill with a ring: a form or toolbar
1952
- - **layout** (parameter_panel): `popover` — Inside a 320px popover (ParameterPopover) (default); `panel` — A side panel or sheet: a little more room between groups
1953
- - **align** (prompt_suggestions): `start` — Rows the composer's width, their text on its text (default); `center` — Centered under an empty thread's title
1954
- - **size** (response_metrics): `sm` — 12/16: a column footer or under a turn (default); `md` — 13/18: a response on its own
1955
- - **status** (response_view): `pending` — Sent, nothing back yet: an empty line where the text will start, nothing drawn; `streaming` — Arriving: the text grows, earlier lines never re-wrap; Thinking is live; `done` — Complete (default); `stopped` — Stopped by the person: the text so far and “Stopped”; `error` — Failed: “No response” and Retry. The error itself is a toast
1969
+ - **divider** (compare_grid): `hairline` (default) — Columns separated by a hairline, edge to edge (default); `none` — No line between columns: columns that sit in panels of their own
1970
+ - **size** (composer): `md` (default) — Text 14/20, 8px around the buttons; the outline concentric with them (16 + 8) (default); `sm` — The same box starting one line tall: a follow-up field under a thread
1971
+ - **appearance** (model_picker): `ghost` (default) — Transparent until hovered: a column header (default); `default` — A raised pill with a ring: a form or toolbar
1972
+ - **layout** (parameter_panel): `popover` (default) — Inside a 320px popover (ParameterPopover) (default); `panel` — A side panel or sheet: a little more room between groups
1973
+ - **align** (prompt_suggestions): `start` (default) — Rows the composer's width, their text on its text (default); `center` — Centered under an empty thread's title
1974
+ - **size** (response_metrics): `sm` (default) — 12/16: a column footer or under a turn (default); `md` — 13/18: a response on its own
1975
+ - **status** (response_view): `pending` — Sent, nothing back yet: an empty line where the text will start, nothing drawn; `streaming` — Arriving: the text grows, earlier lines never re-wrap; Thinking is live; `done` (default) — Complete (default); `stopped` — Stopped by the person: the text so far and “Stopped”; `error` — Failed: “No response” and Retry. The error itself is a toast
1956
1976
 
1957
1977
  ### CompareGrid
1958
1978
 
@@ -2128,7 +2148,7 @@ A person's turn: their prompt as quiet text that opens the turn, no bubble. A lo
2128
2148
 
2129
2149
  `import { HoverCard, Popover } from "@logicplanes/kaeso-ui/popover";`
2130
2150
 
2131
- - **padding** (popover): `form` — 12px: forms and free content (default); `list` — 6px: lists of rows, concentric with 10px items; `none` — No padding: calendars and custom layouts
2151
+ - **padding** (popover): `form` (default) — 12px: forms and free content (default); `list` — 6px: lists of rows, concentric with 10px items; `none` — No padding: calendars and custom layouts
2132
2152
 
2133
2153
  ### HoverCard
2134
2154
 
@@ -2170,7 +2190,7 @@ Renders children into document.body after mount. Overlays use Base UI's own port
2170
2190
 
2171
2191
  `import { QRCode } from "@logicplanes/kaeso-ui/qr-code";`
2172
2192
 
2173
- - **size** (qr_code): `md` — 160px: setup dialogs (default); `lg` — 200px: a page of its own
2193
+ - **size** (qr_code): `md` (default) — 160px: setup dialogs (default); `lg` — 200px: a page of its own
2174
2194
 
2175
2195
  ### QRCode
2176
2196
 
@@ -2187,7 +2207,7 @@ A QR code drawn as one SVG path: dark modules on white in both themes, with a qu
2187
2207
 
2188
2208
  `import { Radio, RadioCards } from "@logicplanes/kaeso-ui/radio";`
2189
2209
 
2190
- - **variant** (radio): `default` — A list of radios with labels (default); `cards` — Rows inside a settings group with the radio at the end, for choices with descriptions
2210
+ - **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
2191
2211
 
2192
2212
  ### Radio
2193
2213
 
@@ -2244,7 +2264,7 @@ Choices with descriptions as rows in a settings group.
2244
2264
 
2245
2265
  `import { ResourceList } from "@logicplanes/kaeso-ui/blocks/resource-list";`
2246
2266
 
2247
- - **grouping** (resource_list): `grouped` — Rows under group headers (default); `flat` — One list
2267
+ - **grouping** (resource_list): `grouped` (default) — Rows under group headers (default); `flat` — One list
2248
2268
 
2249
2269
  ### ResourceList
2250
2270
 
@@ -2265,7 +2285,7 @@ A console list of resources: search, group headers, row actions and a selection
2265
2285
 
2266
2286
  `import { ScrollArea } from "@logicplanes/kaeso-ui/scroll-area";`
2267
2287
 
2268
- - **orientation** (scroll_area): `vertical` — Scrolls up and down; the content fades at an edge with more to scroll to (default); `horizontal` — Scrolls sideways; `both` — Both directions
2288
+ - **orientation** (scroll_area): `vertical` (default) — Scrolls up and down; the content fades at an edge with more to scroll to (default); `horizontal` — Scrolls sideways; `both` — Both directions
2269
2289
 
2270
2290
  ### ScrollArea
2271
2291
 
@@ -2283,7 +2303,7 @@ A scroll container with thin scrollbars in the strong line color that show on ho
2283
2303
 
2284
2304
  `import { AuthLayout, Section, SplitView } from "@logicplanes/kaeso-ui/section";`
2285
2305
 
2286
- - **spacing** (section): `default` — 48px between sections (default); `none` — No outer spacing
2306
+ - **spacing** (section): `default` (default) — 48px between sections (default); `none` — No outer spacing
2287
2307
 
2288
2308
  ### AuthLayout
2289
2309
 
@@ -2324,7 +2344,7 @@ Main content and a 320px aside, separated by space and a subtle vertical line. O
2324
2344
 
2325
2345
  `import { Segmented } from "@logicplanes/kaeso-ui/segmented";`
2326
2346
 
2327
- - **size** (segmented): `sm` — 32px track, 28px items: toolbars and popovers; `md` — 36px track, 32px items (default)
2347
+ - **size** (segmented): `sm` — 32px track, 28px items: toolbars and popovers; `md` (default) — 36px track, 32px items (default)
2328
2348
 
2329
2349
  ### Segmented
2330
2350
 
@@ -2347,8 +2367,8 @@ Two to five mutually exclusive options: 24h/7d/30d, List/Board, providers.
2347
2367
 
2348
2368
  `import { Select } from "@logicplanes/kaeso-ui/select";`
2349
2369
 
2350
- - **appearance** (select): `default` — A raised pill with a ring (default); `ghost` — Inline in settings rows: “GPT-5 mini (default) ⌄”; `header` — Transparent until hovered, in full text colour: a column header's model
2351
- - **size** (select): `sm` — 32px: settings rows and toolbars; `md` — 36px (default); `lg` — 40px; `xl` — 48px: sign-in and setup forms
2370
+ - **appearance** (select): `default` (default) — A raised pill with a ring (default); `ghost` — Inline in settings rows: “GPT-5 mini (default) ⌄”; `header` — Transparent until hovered, in full text colour: a column header's model
2371
+ - **size** (select): `sm` — 32px: settings rows and toolbars; `md` (default) — 36px (default); `lg` — 40px; `xl` — 48px: sign-in and setup forms
2352
2372
 
2353
2373
  ### Select
2354
2374
 
@@ -2386,8 +2406,8 @@ A pill that opens a list on the menu surface: check on the selected item, groups
2386
2406
 
2387
2407
  `import { Separator } from "@logicplanes/kaeso-ui/separator";`
2388
2408
 
2389
- - **orientation** (separator): `horizontal` — A 1px line across; `vertical` — A 1px line down
2390
- - **tone** (separator): `subtle` — Inside groups and tables (default); `default` — Between regions that tone and space cannot separate
2409
+ - **orientation** (separator): `horizontal` (default) — A 1px line across; `vertical` — A 1px line down
2410
+ - **tone** (separator): `subtle` (default) — Inside groups and tables (default); `default` — Between regions that tone and space cannot separate
2391
2411
 
2392
2412
  ### Separator
2393
2413
 
@@ -2403,7 +2423,7 @@ A 1px line. Use space and tone first; a line only where they cannot separate.
2403
2423
 
2404
2424
  `import { SettingsGroup, SettingsRow, SettingsSection } from "@logicplanes/kaeso-ui/settings";`
2405
2425
 
2406
- - **row** (settings): `default` — Title and description: at least 64px; `single` — One line: 56px
2426
+ - **row** (settings): `default` (default) — Title and description: at least 64px; `single` — One line: 56px
2407
2427
 
2408
2428
  ### SettingsGroup
2409
2429
 
@@ -2449,8 +2469,8 @@ A settings section: a title-sm heading 48px above, 12px below; usually one Setti
2449
2469
 
2450
2470
  `import { Sheet } from "@logicplanes/kaeso-ui/sheet";`
2451
2471
 
2452
- - **size** (sheet): `sm` — 480px (default); `md` — 640px: the request inspector; `lg` — 800px
2453
- - **side** (sheet): `right` — From the right (default); `left` — From the left: the mobile sidebar; `bottom` — From the bottom: mobile menus
2472
+ - **size** (sheet): `sm` (default) — 480px (default); `md` — 640px: the request inspector; `lg` — 800px
2473
+ - **side** (sheet): `right` (default) — From the right (default); `left` — From the left: the mobile sidebar; `bottom` — From the bottom: mobile menus
2454
2474
 
2455
2475
  ### Sheet
2456
2476
 
@@ -2476,9 +2496,9 @@ A panel that slides in from the edge of the screen, for details and longer forms
2476
2496
 
2477
2497
  `import { BrandWordmark, Sidebar } from "@logicplanes/kaeso-ui/sidebar";`
2478
2498
 
2479
- - **mode** (sidebar): `expanded` — 248px by default, resizable between 232 and 280; `rail` — 60px: icons only, labels in tooltips
2480
- - **item** (sidebar): `default` — A navigation item; `active` — The current page
2481
- - **caption** (sidebar): `secondary` — A quiet second line under the switcher's label (default); `danger` — A second line that warns: the organization is scheduled for deletion
2499
+ - **mode** (sidebar): `expanded` (default) — 248px by default, resizable between 232 and 280; `rail` — 60px: icons only, labels in tooltips
2500
+ - **item** (sidebar): `default` (default) — A navigation item; `active` — The current page
2501
+ - **caption** (sidebar): `secondary` (default) — A quiet second line under the switcher's label (default); `danger` — A second line that warns: the organization is scheduled for deletion
2482
2502
 
2483
2503
  ### BrandWordmark
2484
2504
 
@@ -2506,7 +2526,7 @@ Provided by NavSheet: how the sidebar's own toggle closes the sheet it floats in
2506
2526
 
2507
2527
  `import { Skeleton, SkeletonLine } from "@logicplanes/kaeso-ui/skeleton";`
2508
2528
 
2509
- - **shape** (skeleton): `block` — Rounded blocks for charts and wells (default); `line` — A pill line for text; `circle` — Avatars and icons; `control` — The shape of a 36px control
2529
+ - **shape** (skeleton): `block` (default) — Rounded blocks for charts and wells (default); `line` — A pill line for text; `circle` — Avatars and icons; `control` — The shape of a 36px control
2510
2530
 
2511
2531
  ### Skeleton
2512
2532
 
@@ -2528,7 +2548,7 @@ Lines of text: the last one shorter.
2528
2548
 
2529
2549
  `import { Slider } from "@logicplanes/kaeso-ui/slider";`
2530
2550
 
2531
- - **size** (slider): `md` — A 4px track in a 20px hit area (default)
2551
+ - **size** (slider): `md` (default) — A 4px track in a 20px hit area (default)
2532
2552
 
2533
2553
  ### Slider
2534
2554
 
@@ -2556,7 +2576,7 @@ A 4px pill track, an ink range and a 16px ink thumb; a value bubble while draggi
2556
2576
 
2557
2577
  `import { MetricRow, Stat, StatGrid, StatTile } from "@logicplanes/kaeso-ui/stat";`
2558
2578
 
2559
- - **size** (stat): `md` — 28/32 metric (default); `sm` — 20/28 for dense rows
2579
+ - **size** (stat): `md` (default) — 28/32 metric (default); `sm` — 20/28 for dense rows
2560
2580
 
2561
2581
  ### MetricRow
2562
2582
 
@@ -2607,7 +2627,7 @@ One metric of a dashboard row: its label, the number, the change against the pre
2607
2627
 
2608
2628
  `import { Status, StatusDot } from "@logicplanes/kaeso-ui/status-dot";`
2609
2629
 
2610
- - **tone** (status_dot): `success` — Healthy, active, succeeded; `warning` — Degraded, expiring; `danger` — Failed, disabled, down; `info` — Informational; `neutral` — Inactive, archived (default)
2630
+ - **tone** (status_dot): `success` — Healthy, active, succeeded; `warning` — Degraded, expiring; `danger` — Failed, disabled, down; `info` — Informational; `neutral` (default) — Inactive, archived (default)
2611
2631
 
2612
2632
  ### Status
2613
2633
 
@@ -2635,7 +2655,7 @@ A status word: "Active", "Expiring", "Down".
2635
2655
 
2636
2656
  `import { Surface } from "@logicplanes/kaeso-ui/surface";`
2637
2657
 
2638
- - **kind** (surface): `panel` — The content panel: radius 12, hairline ring; `menu` — Menus, select and combobox lists: radius 16; `popover` — Popovers and hover cards: radius 16; `dialog` — Dialogs and the command palette: radius 20; `sheet` — Sheets: radius 16 on exposed corners; `group` — Settings groups: radius 14, ring and a whisper of shadow; `well` — Code, the key reveal, the JSON inspector: fill, no ring; `tooltip` — Chart tooltips and rich tooltips: radius 12
2658
+ - **kind** (surface): `panel` (default) — The content panel: radius 12, hairline ring; `menu` — Menus, select and combobox lists: radius 16; `popover` — Popovers and hover cards: radius 16; `dialog` — Dialogs and the command palette: radius 20; `sheet` — Sheets: radius 16 on exposed corners; `group` — Settings groups: radius 14, ring and a whisper of shadow; `well` — Code, the key reveal, the JSON inspector: fill, no ring; `tooltip` — Chart tooltips and rich tooltips: radius 12
2639
2659
 
2640
2660
  ### Surface
2641
2661
 
@@ -2649,7 +2669,7 @@ One of the library's surfaces, for content that needs the look of a panel, popov
2649
2669
 
2650
2670
  `import { SwapText } from "@logicplanes/kaeso-ui/swap-text";`
2651
2671
 
2652
- - **align** (swap_text): `center` — Centered in the reserved width (default); `start` — Aligned to the start
2672
+ - **align** (swap_text): `center` (default) — Centered in the reserved width (default); `start` — Aligned to the start
2653
2673
 
2654
2674
  ### SwapText
2655
2675
 
@@ -2665,7 +2685,7 @@ Text that changes with state without changing size: all alternatives sit in one
2665
2685
 
2666
2686
  `import { Switch } from "@logicplanes/kaeso-ui/switch";`
2667
2687
 
2668
- - **size** (switch): `sm` — 28×16, 12px thumb; `md` — 36×20, 16px thumb (default); `lg` — 44×24, 20px thumb
2688
+ - **size** (switch): `sm` — 28×16, 12px thumb; `md` (default) — 36×20, 16px thumb (default); `lg` — 44×24, 20px thumb
2669
2689
 
2670
2690
  ### Switch
2671
2691
 
@@ -2694,7 +2714,7 @@ A pill track and a round thumb that travels in 180ms.
2694
2714
 
2695
2715
  `import { Table } from "@logicplanes/kaeso-ui/table";`
2696
2716
 
2697
- - **align** (table): `start` — Text (default); `end` — Numbers
2717
+ - **align** (table): `start` (default) — Text (default); `end` — Numbers
2698
2718
 
2699
2719
  ### Table
2700
2720
 
@@ -2704,7 +2724,7 @@ A plain table for small amounts of data; use `DataTable` for sorting, selection
2704
2724
 
2705
2725
  `import { PillTabs, Tabs } from "@logicplanes/kaeso-ui/tabs";`
2706
2726
 
2707
- - **variant** (tabs): `underline` — Underline tabs for detail pages: 40px, a 2px ink indicator that slides; `pill` — Header tabs: separate 32px pills, the active one filled
2727
+ - **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
2708
2728
 
2709
2729
  ### PillTabs
2710
2730
 
@@ -2736,8 +2756,8 @@ Underline tabs for detail pages.
2736
2756
 
2737
2757
  `import { Pill, Tag } from "@logicplanes/kaeso-ui/tag";`
2738
2758
 
2739
- - **size** (tag): `md` — 28px: metadata pills in lists and toolbars (default); `sm` — 24px: inside table rows
2740
- - **variant** (tag): `raised` — Raised with a ring: metadata pills (default); `outline` — Ring only: unselected toggle pills; `soft` — Filled: selected toggle pills
2759
+ - **size** (tag): `md` (default) — 28px: metadata pills in lists and toolbars (default); `sm` — 24px: inside table rows
2760
+ - **variant** (tag): `raised` (default) — Raised with a ring: metadata pills (default); `outline` — Ring only: unselected toggle pills; `soft` — Filled: selected toggle pills
2741
2761
 
2742
2762
  ### Pill
2743
2763
 
@@ -2777,8 +2797,8 @@ A metadata pill: 28px, 13/500, an optional icon, an optional remove circle. A la
2777
2797
 
2778
2798
  `import { Text } from "@logicplanes/kaeso-ui/text";`
2779
2799
 
2780
- - **variant** (text): `micro` — 11/14 500: keyboard keys and chart ticks only; `caption` — 12/16 500: group labels, badges, table headers; `small` — 13/18: descriptions, secondary cells, hints; `body` — 14/20: the default; `body-lg` — 15/22 500: settings row titles, dialog body; `title-sm` — 17/24 600: section and dialog titles; `title` — 20/28 600: empty-state and compact page titles; `title-lg` — 28/34 600: settings page titles, auth screens; `display` — 40/44 600: showcase headings, the setup screen; `metric` — 28/32 600 tabular: big numbers
2781
- - **tone** (text): `default` — Primary text; `secondary` — Descriptions and metadata; `tertiary` — Placeholders and redundant hints; never the only carrier of meaning; `danger` — Errors, next to an icon or a word; `success` — Confirmation, next to an icon or a word; `warning` — Warnings, next to an icon or a word; `info` — Information in progress (syncing, queued), next to an icon or a word; `inherit` — Inherit from the parent
2800
+ - **variant** (text): `micro` — 11/14 500: keyboard keys and chart ticks only; `caption` — 12/16 500: group labels, badges, table headers; `small` — 13/18: descriptions, secondary cells, hints; `body` (default) — 14/20: the default; `body-lg` — 15/22 500: settings row titles, dialog body; `title-sm` — 17/24 600: section and dialog titles; `title` — 20/28 600: empty-state and compact page titles; `title-lg` — 28/34 600: settings page titles, auth screens; `display` — 40/44 600: showcase headings, the setup screen; `metric` — 28/32 600 tabular: big numbers
2801
+ - **tone** (text): `default` (default) — Primary text; `secondary` — Descriptions and metadata; `tertiary` — Placeholders and redundant hints; never the only carrier of meaning; `danger` — Errors, next to an icon or a word; `success` — Confirmation, next to an icon or a word; `warning` — Warnings, next to an icon or a word; `info` — Information in progress (syncing, queued), next to an icon or a word; `inherit` — Inherit from the parent
2782
2802
  - **weight** (text): `regular` — 400; `medium` — 500 (480 in dark mode); `semibold` — 600 (580 in dark mode)
2783
2803
 
2784
2804
  ### Text
@@ -2796,11 +2816,31 @@ Text in the type scale.
2796
2816
  | `variant` | `"title" \| "display" \| "title-sm" \| "title-lg" \| "body" \| "caption" \| "small" \| "micro" \| "body-lg" \| "metric"` | `body` | The type style, from `micro` to `display`. |
2797
2817
  | `weight` | `"medium" \| "regular" \| "semibold"` | | The weight, when it differs from the type style's. |
2798
2818
 
2819
+ ## theme-image
2820
+
2821
+ `import { ThemeImage } from "@logicplanes/kaeso-ui/theme-image";`
2822
+
2823
+ - **theme** (theme_image): `light` — Shown in the light theme and in print; `dark` — Shown in the dark theme
2824
+
2825
+ ### ThemeImage
2826
+
2827
+ An image drawn twice, once for each theme: it follows the site's theme setting, not only the system's, and prints the light one.
2828
+
2829
+ | Prop | Type | Default | Description |
2830
+ |---|---|---|---|
2831
+ | `alt` * | `string` | | What the image shows, read by screen readers and shown when it can't load. |
2832
+ | `dark` * | `string` | | The image's address for the dark theme. |
2833
+ | `light` * | `string` | | The image's address for the light theme and for print. |
2834
+ | `aria-describedby` | `string` | | The id of a longer description, such as a diagram's text alternative. |
2835
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
2836
+ | `height` | `number` | | The image's own height in pixels, so the page keeps its place before it loads. |
2837
+ | `width` | `number` | | The image's own width in pixels; the image shrinks to its container, never grows past this. |
2838
+
2799
2839
  ## theme-menu
2800
2840
 
2801
2841
  `import { ThemeMenu } from "@logicplanes/kaeso-ui/theme-menu";`
2802
2842
 
2803
- - **variant** (theme_menu): `ghost` — A ghost circle (default); `secondary` — A raised circle
2843
+ - **variant** (theme_menu): `ghost` (default) — A ghost circle (default); `secondary` — A raised circle
2804
2844
 
2805
2845
  ### ThemeMenu
2806
2846
 
@@ -2811,11 +2851,30 @@ System, light or dark, stored as `kaeso:theme`.
2811
2851
  | `size` | `"md" \| "sm"` | `sm` | The button's height. |
2812
2852
  | `variant` | `"secondary" \| "ghost"` | `ghost` | A filled button (`secondary`) or a quiet one (`ghost`). |
2813
2853
 
2854
+ ## theme-select
2855
+
2856
+ `import { ThemeSelect } from "@logicplanes/kaeso-ui/theme-select";`
2857
+
2858
+ - **appearance** (theme_select): `ghost` (default) — A quiet pill for sidebars and toolbars (default); `default` — A raised pill with a ring
2859
+ - **size** (theme_select): `sm` (default) — 32px (default); `md` — 36px
2860
+
2861
+ ### ThemeSelect
2862
+
2863
+ A select for system, light or dark, stored as `kaeso:theme`, with its label in the provider's language.
2864
+
2865
+ | Prop | Type | Default | Description |
2866
+ |---|---|---|---|
2867
+ | `appearance` | `"ghost" \| "default"` | `ghost` | A quiet pill for sidebars and toolbars (`ghost`) or a raised one with a ring (`default`). |
2868
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
2869
+ | `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
2870
+ | `fullWidth` | `boolean` | | Width of the trigger follows its content (default) or fills the container, as in a sidebar's footer. |
2871
+ | `size` | `"md" \| "sm"` | `sm` | The height of the field. |
2872
+
2814
2873
  ## timeline
2815
2874
 
2816
2875
  `import { Timeline } from "@logicplanes/kaeso-ui/timeline";`
2817
2876
 
2818
- - **tone** (timeline): `neutral` — Ordinary events (default); `success` — Something completed; `warning` — Something changed that needs attention; `danger` — Something failed or was removed; `info` — Informational
2877
+ - **tone** (timeline): `neutral` (default) — Ordinary events (default); `success` — Something completed; `warning` — Something changed that needs attention; `danger` — Something failed or was removed; `info` — Informational
2819
2878
 
2820
2879
  ### Timeline
2821
2880
 
@@ -2830,7 +2889,7 @@ Events down a 1px line (the audit log): each event marks the line with a short 3
2830
2889
 
2831
2890
  `import { Toast, ToastCapsule, Toaster } from "@logicplanes/kaeso-ui/toast";`
2832
2891
 
2833
- - **tone** (toast): `neutral` — A plain message (default); `success` — Success: a green check before the words; `error` — Errors: a red mark; announced as an alert; `warning` — Warnings; `info` — Information; `loading` — Work underway: a spinner
2892
+ - **tone** (toast): `neutral` (default) — A plain message (default); `success` — Success: a green check before the words; `error` — Errors: a red mark; announced as an alert; `warning` — Warnings; `info` — Information; `loading` — Work underway: a spinner
2834
2893
 
2835
2894
  ### Toast
2836
2895
 
@@ -2867,7 +2926,7 @@ Mount once near the root. Three visible at most; 5s, paused on hover and focus;
2867
2926
 
2868
2927
  `import { TableOfContents } from "@logicplanes/kaeso-ui/toc";`
2869
2928
 
2870
- - **state** (table_of_contents): `default` — A heading; `active` — The heading in view, with a 2px ink bar
2929
+ - **state** (table_of_contents): `default` (default) — A heading; `active` — The heading in view, with a 2px ink bar
2871
2930
 
2872
2931
  ### TableOfContents
2873
2932
 
@@ -2884,7 +2943,7 @@ Mount once near the root. Three visible at most; 5s, paused on hover and focus;
2884
2943
 
2885
2944
  `import { Toolbar } from "@logicplanes/kaeso-ui/toolbar";`
2886
2945
 
2887
- - **size** (toolbar): `md` — 48px, 24px side padding, under the page header (default); `inset` — 48px without side padding, inside padded content
2946
+ - **size** (toolbar): `md` (default) — 48px, 24px side padding, under the page header (default); `inset` — 48px without side padding, inside padded content
2888
2947
 
2889
2948
  ### Toolbar
2890
2949
 
@@ -2899,8 +2958,8 @@ A row of controls above a list or a chart.
2899
2958
 
2900
2959
  `import { Tooltip, TooltipProvider, TooltipSurface } from "@logicplanes/kaeso-ui/tooltip";`
2901
2960
 
2902
- - **side** (tooltip): `top` — Above the trigger (default); `bottom` — Below the trigger; `left` — Left of the trigger; `right` — Right of the trigger
2903
- - **shape** (tooltip): `pill` — Single line: a pill (default); `multiline` — Several lines: radius 12, max 280px
2961
+ - **side** (tooltip): `top` (default) — Above the trigger (default); `bottom` — Below the trigger; `left` — Left of the trigger; `right` — Right of the trigger
2962
+ - **shape** (tooltip): `pill` (default) — Single line: a pill (default); `multiline` — Several lines: radius 12, max 280px
2904
2963
 
2905
2964
  ### Tooltip
2906
2965