@logicplanes/kaeso-ui 0.4.0 → 0.4.2

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 (309) hide show
  1. package/ai/component-guides.md +51 -1
  2. package/ai/component-registry.json +113 -17
  3. package/ai/component-registry.md +38 -12
  4. package/ai/icons.md +1 -1
  5. package/ai/tokens.md +2 -1
  6. package/dist/blocks/delete-resource.js +1 -1
  7. package/dist/blocks/pages.js +5 -5
  8. package/dist/blocks/resource-list.js +4 -4
  9. package/dist/chunks/{app-frame-Cj_gCbmu.js → app-frame-C8csevkL.js} +9 -9
  10. package/dist/chunks/{app-frame-Cj_gCbmu.js.map → app-frame-C8csevkL.js.map} +1 -1
  11. package/dist/chunks/{avatar-DOzOhYJr.js → avatar-CWbdwbJv.js} +2 -2
  12. package/dist/chunks/{avatar-DOzOhYJr.js.map → avatar-CWbdwbJv.js.map} +1 -1
  13. package/dist/chunks/{badge-wUHlj7m3.js → badge-C2KtxCLB.js} +2 -2
  14. package/dist/chunks/{badge-wUHlj7m3.js.map → badge-C2KtxCLB.js.map} +1 -1
  15. package/dist/chunks/{banner-DY1jSc9Y.js → banner-Cb8OWnqJ.js} +4 -4
  16. package/dist/chunks/{banner-DY1jSc9Y.js.map → banner-Cb8OWnqJ.js.map} +1 -1
  17. package/dist/chunks/{button-h2IFCER2.js → button-Dzu7_csE.js} +13 -13
  18. package/dist/chunks/button-Dzu7_csE.js.map +1 -0
  19. package/dist/chunks/{calendar-cVuezHQ6.js → calendar--YemJsv4.js} +2 -2
  20. package/dist/chunks/{calendar-cVuezHQ6.js.map → calendar--YemJsv4.js.map} +1 -1
  21. package/dist/chunks/{checkbox-C5yvSS7O.js → checkbox-CDfC6E-M.js} +2 -2
  22. package/dist/chunks/{checkbox-C5yvSS7O.js.map → checkbox-CDfC6E-M.js.map} +1 -1
  23. package/dist/chunks/{cn-DUDmdLpZ.js → cn-Dj6sRgkF.js} +17 -3
  24. package/dist/chunks/cn-Dj6sRgkF.js.map +1 -0
  25. package/dist/chunks/code-block-U5fCqwgC.js +330 -0
  26. package/dist/chunks/code-block-U5fCqwgC.js.map +1 -0
  27. package/dist/chunks/{code-C49NzHUQ.js → code-tqj0uhBL.js} +2 -2
  28. package/dist/chunks/{code-C49NzHUQ.js.map → code-tqj0uhBL.js.map} +1 -1
  29. package/dist/chunks/{collapsible-CDQq1Y9x.js → collapsible-CKrCX_T9.js} +13 -13
  30. package/dist/chunks/collapsible-CKrCX_T9.js.map +1 -0
  31. package/dist/chunks/{combobox-B9ttar4C.js → combobox-BARyrpXH.js} +6 -6
  32. package/dist/chunks/{combobox-B9ttar4C.js.map → combobox-BARyrpXH.js.map} +1 -1
  33. package/dist/chunks/{command-list-DZMVrXWD.js → command-list-0RR4DpUe.js} +138 -137
  34. package/dist/chunks/command-list-0RR4DpUe.js.map +1 -0
  35. package/dist/chunks/copy-button-7-irieJw.js +142 -0
  36. package/dist/chunks/copy-button-7-irieJw.js.map +1 -0
  37. package/dist/chunks/{core-Bu6iq5uh.js → core-Bl9NrBLS.js} +10 -10
  38. package/dist/chunks/core-Bl9NrBLS.js.map +1 -0
  39. package/dist/chunks/{date-popup-BJPA_fBm.js → date-popup-RQkqhko4.js} +4 -4
  40. package/dist/chunks/{date-popup-BJPA_fBm.js.map → date-popup-RQkqhko4.js.map} +1 -1
  41. package/dist/chunks/{dialog-BLcP7v24.js → dialog-DQ9vZ7vr.js} +5 -5
  42. package/dist/chunks/{dialog-BLcP7v24.js.map → dialog-DQ9vZ7vr.js.map} +1 -1
  43. package/dist/chunks/{empty-YXmSkKzR.js → empty-DvhyMXQq.js} +2 -2
  44. package/dist/chunks/{empty-YXmSkKzR.js.map → empty-DvhyMXQq.js.map} +1 -1
  45. package/dist/chunks/{field-BZriODU7.js → field-TviMvYa2.js} +2 -2
  46. package/dist/chunks/{field-BZriODU7.js.map → field-TviMvYa2.js.map} +1 -1
  47. package/dist/chunks/{icon-BqujXDUc.js → icon-D7ja-_Yk.js} +2 -2
  48. package/dist/chunks/{icon-BqujXDUc.js.map → icon-D7ja-_Yk.js.map} +1 -1
  49. package/dist/chunks/{icon-button-DmKFxQbP.js → icon-button-CPYR21Sz.js} +3 -3
  50. package/dist/chunks/{icon-button-DmKFxQbP.js.map → icon-button-CPYR21Sz.js.map} +1 -1
  51. package/dist/chunks/{identity-Chj7fW89.js → identity-DPuTkMsa.js} +6 -6
  52. package/dist/chunks/{identity-Chj7fW89.js.map → identity-DPuTkMsa.js.map} +1 -1
  53. package/dist/chunks/{input-9y3afoiq.js → input-TyLIaQ5k.js} +5 -5
  54. package/dist/chunks/{input-9y3afoiq.js.map → input-TyLIaQ5k.js.map} +1 -1
  55. package/dist/chunks/{input-group-BoxjnN8I.js → input-group-CUSNsQjQ.js} +4 -4
  56. package/dist/chunks/{input-group-BoxjnN8I.js.map → input-group-CUSNsQjQ.js.map} +1 -1
  57. package/dist/chunks/{iso-field-DAa6iPWn.js → iso-field-CWbxlll-.js} +2 -2
  58. package/dist/chunks/{iso-field-DAa6iPWn.js.map → iso-field-CWbxlll-.js.map} +1 -1
  59. package/dist/chunks/{json-view-BkG2hTXV.js → json-view-Dqd2TDkc.js} +3 -3
  60. package/dist/chunks/{json-view-BkG2hTXV.js.map → json-view-Dqd2TDkc.js.map} +1 -1
  61. package/dist/chunks/{kbd-DqWmbr_e.js → kbd-BF1vKXJf.js} +2 -2
  62. package/dist/chunks/{kbd-DqWmbr_e.js.map → kbd-BF1vKXJf.js.map} +1 -1
  63. package/dist/chunks/{link-YMcxM-BZ.js → link-B2I55xg9.js} +3 -3
  64. package/dist/chunks/{link-YMcxM-BZ.js.map → link-B2I55xg9.js.map} +1 -1
  65. package/dist/chunks/{list-7VARol_x.js → list-CkOozrVY.js} +8 -8
  66. package/dist/chunks/{list-7VARol_x.js.map → list-CkOozrVY.js.map} +1 -1
  67. package/dist/chunks/{loader-ENBh2Fbt.js → loader-DCfPndXa.js} +2 -2
  68. package/dist/chunks/{loader-ENBh2Fbt.js.map → loader-DCfPndXa.js.map} +1 -1
  69. package/dist/chunks/{markdown-DBVNULWg.js → markdown-BEgwZFlu.js} +9 -9
  70. package/dist/chunks/{markdown-DBVNULWg.js.map → markdown-BEgwZFlu.js.map} +1 -1
  71. package/dist/chunks/{menu-Bnfi9P3t.js → menu-fl_QQb38.js} +4 -4
  72. package/dist/chunks/{menu-Bnfi9P3t.js.map → menu-fl_QQb38.js.map} +1 -1
  73. package/dist/chunks/{meter-DhTnem4k.js → meter-Bj4N3Xuh.js} +2 -2
  74. package/dist/chunks/{meter-DhTnem4k.js.map → meter-Bj4N3Xuh.js.map} +1 -1
  75. package/dist/chunks/{nav-sheet-D7wIF_OU.js → nav-sheet-B2rNb8GB.js} +2 -2
  76. package/dist/chunks/{nav-sheet-D7wIF_OU.js.map → nav-sheet-B2rNb8GB.js.map} +1 -1
  77. package/dist/chunks/{nav-wordmark-DmbT1Aiw.js → nav-wordmark-_pjheAsZ.js} +2 -2
  78. package/dist/chunks/{nav-wordmark-DmbT1Aiw.js.map → nav-wordmark-_pjheAsZ.js.map} +1 -1
  79. package/dist/chunks/{page-header-B3tV8Wog.js → page-header-DjUMDG69.js} +4 -4
  80. package/dist/chunks/{page-header-B3tV8Wog.js.map → page-header-DjUMDG69.js.map} +1 -1
  81. package/dist/chunks/{pagination-CLfsofo3.js → pagination-BaY8jdli.js} +4 -4
  82. package/dist/chunks/{pagination-CLfsofo3.js.map → pagination-BaY8jdli.js.map} +1 -1
  83. package/dist/chunks/{picker-popover-B5YdOxNm.js → picker-popover-DShea4b8.js} +7 -7
  84. package/dist/chunks/{picker-popover-B5YdOxNm.js.map → picker-popover-DShea4b8.js.map} +1 -1
  85. package/dist/chunks/{popover-bjxg020P.js → popover-CFMwaeIP.js} +2 -2
  86. package/dist/chunks/{popover-bjxg020P.js.map → popover-CFMwaeIP.js.map} +1 -1
  87. package/dist/chunks/{radio-DwYcXAzv.js → radio-Yl0nO-Sj.js} +2 -2
  88. package/dist/chunks/{radio-DwYcXAzv.js.map → radio-Yl0nO-Sj.js.map} +1 -1
  89. package/dist/chunks/{range-popup-ZunS8QSH.js → range-popup-CkhsK3wI.js} +6 -6
  90. package/dist/chunks/{range-popup-ZunS8QSH.js.map → range-popup-CkhsK3wI.js.map} +1 -1
  91. package/dist/chunks/{release-art-Ogl-L1Vh.js → release-art-ZwfFQImt.js} +2 -2
  92. package/dist/chunks/{release-art-Ogl-L1Vh.js.map → release-art-ZwfFQImt.js.map} +1 -1
  93. package/dist/chunks/{rights-CiIBzT9o.js → rights-BlQx9C_j.js} +9 -9
  94. package/dist/chunks/{rights-CiIBzT9o.js.map → rights-BlQx9C_j.js.map} +1 -1
  95. package/dist/chunks/scroll-area-D8MD7Vpo.js +42 -0
  96. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +1 -0
  97. package/dist/chunks/{section-BsET7Fo-.js → section-Ce1efbsP.js} +3 -3
  98. package/dist/chunks/{section-BsET7Fo-.js.map → section-Ce1efbsP.js.map} +1 -1
  99. package/dist/chunks/{segmented-DxjnIuww.js → segmented-C97zvDR1.js} +4 -4
  100. package/dist/chunks/{segmented-DxjnIuww.js.map → segmented-C97zvDR1.js.map} +1 -1
  101. package/dist/chunks/{select-Bbv2f5F8.js → select-x4XVsdCI.js} +14 -14
  102. package/dist/chunks/select-x4XVsdCI.js.map +1 -0
  103. package/dist/chunks/{separator-CpAUELNs.js → separator-D7TzNHmX.js} +2 -2
  104. package/dist/chunks/{separator-CpAUELNs.js.map → separator-D7TzNHmX.js.map} +1 -1
  105. package/dist/chunks/{sidebar-ZSTPK9Jn.js → sidebar-DtFlejU7.js} +7 -7
  106. package/dist/chunks/{sidebar-ZSTPK9Jn.js.map → sidebar-DtFlejU7.js.map} +1 -1
  107. package/dist/chunks/{sidebar-menu-ct8IiL4z.js → sidebar-menu-CxQbGwyj.js} +2 -2
  108. package/dist/chunks/{sidebar-menu-ct8IiL4z.js.map → sidebar-menu-CxQbGwyj.js.map} +1 -1
  109. package/dist/chunks/{skeleton-BM797MAg.js → skeleton-Dcz57Zyp.js} +2 -2
  110. package/dist/chunks/{skeleton-BM797MAg.js.map → skeleton-Dcz57Zyp.js.map} +1 -1
  111. package/dist/chunks/{slider-Ds-tqY-1.js → slider-Ci83PGtj.js} +2 -2
  112. package/dist/chunks/{slider-Ds-tqY-1.js.map → slider-Ci83PGtj.js.map} +1 -1
  113. package/dist/chunks/{status-dot-BqVOlShY.js → status-dot-QJTF0Yv4.js} +3 -3
  114. package/dist/chunks/{status-dot-BqVOlShY.js.map → status-dot-QJTF0Yv4.js.map} +1 -1
  115. package/dist/chunks/{swap-text-Cica0pUr.js → swap-text-Dr0Irxz6.js} +2 -2
  116. package/dist/chunks/{swap-text-Cica0pUr.js.map → swap-text-Dr0Irxz6.js.map} +1 -1
  117. package/dist/chunks/{switch-Cq1OfeBr.js → switch-b-VkStWj.js} +5 -5
  118. package/dist/chunks/switch-b-VkStWj.js.map +1 -0
  119. package/dist/chunks/table-BeOSKl_3.js +84 -0
  120. package/dist/chunks/table-BeOSKl_3.js.map +1 -0
  121. package/dist/chunks/{tag-XgPXKoxi.js → tag-DNdX1XRR.js} +4 -4
  122. package/dist/chunks/{tag-XgPXKoxi.js.map → tag-DNdX1XRR.js.map} +1 -1
  123. package/dist/chunks/{text-IoDy3Vxi.js → text-DCGGNqTM.js} +3 -3
  124. package/dist/chunks/{text-IoDy3Vxi.js.map → text-DCGGNqTM.js.map} +1 -1
  125. package/dist/chunks/{textarea-jOiTkfMf.js → textarea-CT2S2JVM.js} +5 -5
  126. package/dist/chunks/{textarea-jOiTkfMf.js.map → textarea-CT2S2JVM.js.map} +1 -1
  127. package/dist/chunks/{timeseries-BBWsSM4Q.js → timeseries-B-8OfeZm.js} +3 -3
  128. package/dist/chunks/{timeseries-BBWsSM4Q.js.map → timeseries-B-8OfeZm.js.map} +1 -1
  129. package/dist/chunks/{toolbar-nVLFWH2i.js → toolbar-DL6zVrzU.js} +2 -2
  130. package/dist/chunks/{toolbar-nVLFWH2i.js.map → toolbar-DL6zVrzU.js.map} +1 -1
  131. package/dist/chunks/{tooltip-CTBnfiDH.js → tooltip-BMQ9BtPp.js} +4 -4
  132. package/dist/chunks/{tooltip-CTBnfiDH.js.map → tooltip-BMQ9BtPp.js.map} +1 -1
  133. package/dist/chunks/{tooltip-root-B0zWodAJ.js → tooltip-root-BeAMXzxU.js} +4 -4
  134. package/dist/chunks/{tooltip-root-B0zWodAJ.js.map → tooltip-root-BeAMXzxU.js.map} +1 -1
  135. package/dist/components/app-frame.js +2 -2
  136. package/dist/components/avatar.js +1 -1
  137. package/dist/components/badge.js +1 -1
  138. package/dist/components/banner.js +1 -1
  139. package/dist/components/button-group.js +4 -4
  140. package/dist/components/button.js +1 -1
  141. package/dist/components/calendar.js +1 -1
  142. package/dist/components/charts/bar.js +2 -2
  143. package/dist/components/charts/donut.js +2 -2
  144. package/dist/components/charts/gauge.js +2 -2
  145. package/dist/components/charts/heatmap.js +1 -1
  146. package/dist/components/charts/sankey.js +2 -2
  147. package/dist/components/charts/sparkline.js +1 -1
  148. package/dist/components/charts/timeseries.js +1 -1
  149. package/dist/components/charts.js +2 -2
  150. package/dist/components/checkbox.js +1 -1
  151. package/dist/components/code-block.js +2 -2
  152. package/dist/components/code.js +1 -1
  153. package/dist/components/collapsible.js +1 -1
  154. package/dist/components/combobox.js +1 -1
  155. package/dist/components/command-list.js +2 -2
  156. package/dist/components/command-palette.js +32 -31
  157. package/dist/components/command-palette.js.map +1 -1
  158. package/dist/components/copy-button.js +1 -1
  159. package/dist/components/data-table.js +14 -14
  160. package/dist/components/data-table.js.map +1 -1
  161. package/dist/components/date-picker.js +7 -7
  162. package/dist/components/date-picker.js.map +1 -1
  163. package/dist/components/dialog.js +2 -2
  164. package/dist/components/display-options.js +8 -8
  165. package/dist/components/empty.js +1 -1
  166. package/dist/components/field.js +1 -1
  167. package/dist/components/figure.js +60 -0
  168. package/dist/components/figure.js.map +1 -0
  169. package/dist/components/filter-chip.js +5 -5
  170. package/dist/components/filter-row.js +1 -1
  171. package/dist/components/flow.js +2 -2
  172. package/dist/components/heading.js +1 -1
  173. package/dist/components/icon-button.js +1 -1
  174. package/dist/components/icon.js +1 -1
  175. package/dist/components/input.js +7 -7
  176. package/dist/components/kaeso/conversation.js +8 -8
  177. package/dist/components/kaeso/identity.js +1 -1
  178. package/dist/components/kaeso/moments.js +5 -5
  179. package/dist/components/kaeso/rights.js +1 -1
  180. package/dist/components/kaeso/usage.js +5 -5
  181. package/dist/components/kaeso.js +10 -10
  182. package/dist/components/kbd.js +1 -1
  183. package/dist/components/key-value.js +3 -3
  184. package/dist/components/label.js +1 -1
  185. package/dist/components/layout.js +1 -1
  186. package/dist/components/link.js +1 -1
  187. package/dist/components/list.js +1 -1
  188. package/dist/components/loader.js +2 -2
  189. package/dist/components/logo.js +2 -2
  190. package/dist/components/markdown.js +1 -1
  191. package/dist/components/menu.js +1 -1
  192. package/dist/components/meter.js +1 -1
  193. package/dist/components/page-header.js +1 -1
  194. package/dist/components/pagination.js +1 -1
  195. package/dist/components/playground.js +16 -16
  196. package/dist/components/popover.js +2 -2
  197. package/dist/components/qr-code.js +2 -2
  198. package/dist/components/qr-code.js.map +1 -1
  199. package/dist/components/radio.js +1 -1
  200. package/dist/components/release-art.js +1 -1
  201. package/dist/components/scroll-area.js +1 -41
  202. package/dist/components/section.js +1 -1
  203. package/dist/components/segmented.js +1 -1
  204. package/dist/components/select.js +1 -1
  205. package/dist/components/separator.js +1 -1
  206. package/dist/components/settings.js +5 -4
  207. package/dist/components/settings.js.map +1 -1
  208. package/dist/components/sheet.js +4 -4
  209. package/dist/components/sheet.js.map +1 -1
  210. package/dist/components/sidebar.js +1 -1
  211. package/dist/components/skeleton.js +1 -1
  212. package/dist/components/slider.js +1 -1
  213. package/dist/components/stat.js +3 -3
  214. package/dist/components/status-dot.js +1 -1
  215. package/dist/components/surface.js +1 -1
  216. package/dist/components/swap-text.js +1 -1
  217. package/dist/components/switch.js +1 -1
  218. package/dist/components/table.js +1 -1
  219. package/dist/components/tabs.js +2 -2
  220. package/dist/components/tag.js +1 -1
  221. package/dist/components/text.js +1 -1
  222. package/dist/components/theme-image.js +1 -1
  223. package/dist/components/theme-menu.js +2 -2
  224. package/dist/components/theme-select.js +1 -1
  225. package/dist/components/timeline.js +1 -1
  226. package/dist/components/toast.js +4 -4
  227. package/dist/components/toc.js +37 -22
  228. package/dist/components/toc.js.map +1 -1
  229. package/dist/components/toolbar.js +1 -1
  230. package/dist/components/tooltip.js +1 -1
  231. package/dist/components/visually-hidden.js +1 -1
  232. package/dist/index.js +88 -86
  233. package/dist/kaeso.css +45 -0
  234. package/dist/styles.css +1 -1
  235. package/dist/types/blocks/delete-resource/delete-resource.d.ts +1 -1
  236. package/dist/types/blocks/pages/pages.d.ts +3 -3
  237. package/dist/types/blocks/resource-list/resource-list.d.ts +1 -1
  238. package/dist/types/components/app-frame/app-frame.d.ts +1 -1
  239. package/dist/types/components/app-frame/nav-sheet.d.ts +1 -1
  240. package/dist/types/components/button/button.d.ts +6 -6
  241. package/dist/types/components/calendar/calendar.d.ts +1 -1
  242. package/dist/types/components/charts/core.d.ts +5 -5
  243. package/dist/types/components/code-block/code-block.d.ts +1 -1
  244. package/dist/types/components/code-block/indent.d.ts +3 -0
  245. package/dist/types/components/combobox/combobox.d.ts +1 -1
  246. package/dist/types/components/command-list/command-list.d.ts +1 -0
  247. package/dist/types/components/command-list/docs.d.ts +1 -0
  248. package/dist/types/components/command-list/picker-popover.d.ts +1 -1
  249. package/dist/types/components/command-palette/command-palette.d.ts +2 -1
  250. package/dist/types/components/command-palette/docs.d.ts +1 -0
  251. package/dist/types/components/data-table/data-table.d.ts +1 -1
  252. package/dist/types/components/date-picker/date-popup.d.ts +1 -1
  253. package/dist/types/components/date-picker/iso-field.d.ts +1 -1
  254. package/dist/types/components/date-picker/range-popup.d.ts +1 -1
  255. package/dist/types/components/dialog/dialog.d.ts +3 -3
  256. package/dist/types/components/dialog/scope.d.ts +1 -1
  257. package/dist/types/components/dialog/step-dialog.d.ts +1 -1
  258. package/dist/types/components/display-options/display-options.d.ts +1 -1
  259. package/dist/types/components/field/field.d.ts +1 -1
  260. package/dist/types/components/figure/docs.d.ts +12 -0
  261. package/dist/types/components/figure/figure.d.ts +25 -0
  262. package/dist/types/components/figure/index.d.ts +1 -0
  263. package/dist/types/components/list/list.d.ts +1 -1
  264. package/dist/types/components/list/row-checkbox.d.ts +1 -1
  265. package/dist/types/components/list/virtual-rows.d.ts +1 -1
  266. package/dist/types/components/menu/menu.d.ts +8 -8
  267. package/dist/types/components/playground/model-picker.d.ts +3 -3
  268. package/dist/types/components/playground/parameter-panel.d.ts +1 -1
  269. package/dist/types/components/popover/hover-card.d.ts +2 -2
  270. package/dist/types/components/popover/popover-root.d.ts +3 -3
  271. package/dist/types/components/radio/radio.d.ts +1 -1
  272. package/dist/types/components/select/option-checkbox.d.ts +1 -1
  273. package/dist/types/components/select/select.d.ts +4 -4
  274. package/dist/types/components/sheet/sheet.d.ts +4 -4
  275. package/dist/types/components/sidebar/sidebar-menu.d.ts +1 -1
  276. package/dist/types/components/sidebar/sidebar.d.ts +7 -7
  277. package/dist/types/components/table/docs.d.ts +3 -1
  278. package/dist/types/components/table/table.d.ts +18 -1
  279. package/dist/types/components/theme-menu/theme-menu.d.ts +1 -1
  280. package/dist/types/components/toast/toast.d.ts +3 -3
  281. package/dist/types/components/toolbar/toolbar.d.ts +1 -1
  282. package/dist/types/components/tooltip/tooltip-provider.d.ts +1 -1
  283. package/dist/types/components/tooltip/tooltip-root.d.ts +1 -1
  284. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  285. package/dist/types/hooks/use-scroll-fade.d.ts +2 -0
  286. package/dist/types/i18n/provider.d.ts +1 -1
  287. package/dist/types/index.d.ts +1 -0
  288. package/dist/types/theme/theme-provider.d.ts +1 -1
  289. package/dist/types/utils/cn.d.ts +7 -0
  290. package/dist/types/utils/inset.d.ts +2 -2
  291. package/dist/types/utils/link-provider.d.ts +1 -1
  292. package/dist/types/utils/portal-context.d.ts +1 -1
  293. package/dist/utils.js +1 -1
  294. package/foundations/color.md +1 -0
  295. package/package.json +8 -8
  296. package/dist/chunks/button-h2IFCER2.js.map +0 -1
  297. package/dist/chunks/cn-DUDmdLpZ.js.map +0 -1
  298. package/dist/chunks/code-block-BU8gYeZQ.js +0 -280
  299. package/dist/chunks/code-block-BU8gYeZQ.js.map +0 -1
  300. package/dist/chunks/collapsible-CDQq1Y9x.js.map +0 -1
  301. package/dist/chunks/command-list-DZMVrXWD.js.map +0 -1
  302. package/dist/chunks/copy-button-CXJ7fA9z.js +0 -109
  303. package/dist/chunks/copy-button-CXJ7fA9z.js.map +0 -1
  304. package/dist/chunks/core-Bu6iq5uh.js.map +0 -1
  305. package/dist/chunks/select-Bbv2f5F8.js.map +0 -1
  306. package/dist/chunks/switch-Cq1OfeBr.js.map +0 -1
  307. package/dist/chunks/table-D-36EM7f.js +0 -67
  308. package/dist/chunks/table-D-36EM7f.js.map +0 -1
  309. package/dist/components/scroll-area.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  # @logicplanes/kaeso-ui component guides
2
2
 
3
- Version 0.4.0. Generated from the showcase's demo modules (apps/showcase/src/demos); do not edit. For each component: what it is for, its import, keyboard, accessibility, do and don't, and every example's code. Props and variants: `component-registry.md`.
3
+ Version 0.4.2. Generated from the showcase's demo modules (apps/showcase/src/demos); do not edit. For each component: what it is for, its import, keyboard, accessibility, do and don't, and every example's code. Props and variants: `component-registry.md`.
4
4
 
5
5
  ## AlertDialog
6
6
 
@@ -1735,6 +1735,27 @@ A label, a control and its help, wired together; an error shows under the contro
1735
1735
  </div>
1736
1736
  ```
1737
1737
 
1738
+ ## Figure
1739
+
1740
+ A diagram or image set apart from the text: centred on a well, with a caption, scrolling sideways only when it can't shrink to fit.
1741
+
1742
+ `import { Figure } from "@logicplanes/kaeso-ui";`
1743
+
1744
+ ### Accessibility
1745
+
1746
+ - The caption names the figure; the label names the region that scrolls, so keyboard users know what they scroll.
1747
+ - Put a diagram's longer description in a visually hidden element and point the image's aria-describedby at it.
1748
+
1749
+ ### Examples
1750
+
1751
+ #### A diagram with its caption
1752
+
1753
+ ```tsx
1754
+ <Figure label="Diagram: route of a request" caption="Route of a request" className="w-full">
1755
+ <ThemeImage light="/demos/route.light.svg" dark="/demos/route.dark.svg" alt="Route of a request: app, Kaeso, provider" width={364} height={49} />
1756
+ </Figure>
1757
+ ```
1758
+
1738
1759
  ## FilterChip
1739
1760
 
1740
1761
  A filter as one pill, “Status is 2xx”: property, operator and value, each opening a menu.
@@ -4655,6 +4676,35 @@ Long text and links wrap like prose; the row grows and keeps its padding, and on
4655
4676
  </Table>
4656
4677
  ```
4657
4678
 
4679
+ #### Compact
4680
+
4681
+ A reference table of five or more columns puts 8px between them, so it fits the column without scrolling.
4682
+
4683
+ ```tsx
4684
+ <Table density="compact" className="w-640">
4685
+ <Table.Head>
4686
+ <Table.Row>
4687
+ <Table.HeaderCell>Variable</Table.HeaderCell>
4688
+ <Table.HeaderCell>TOML key</Table.HeaderCell>
4689
+ <Table.HeaderCell>Type</Table.HeaderCell>
4690
+ <Table.HeaderCell>Default</Table.HeaderCell>
4691
+ <Table.HeaderCell>What it does</Table.HeaderCell>
4692
+ </Table.Row>
4693
+ </Table.Head>
4694
+ <Table.Body>
4695
+ {settings.map((s) => (
4696
+ <Table.Row key={s.variable}>
4697
+ <Table.Cell className="mono text-small">{s.variable}</Table.Cell>
4698
+ <Table.Cell className="mono text-small">{s.key}</Table.Cell>
4699
+ <Table.Cell>{s.type}</Table.Cell>
4700
+ <Table.Cell className="mono text-small whitespace-nowrap">{s.default}</Table.Cell>
4701
+ <Table.Cell>{s.does}</Table.Cell>
4702
+ </Table.Row>
4703
+ ))}
4704
+ </Table.Body>
4705
+ </Table>
4706
+ ```
4707
+
4658
4708
  ## TableOfContents
4659
4709
 
4660
4710
  “On this page”: the heading in view in text color with a 2px ink bar.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@logicplanes/kaeso-ui",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "components": [
5
5
  {
6
6
  "entry": "app-frame",
@@ -521,7 +521,7 @@
521
521
  "type": "\"danger\" | \"link\" | \"secondary\" | \"primary\" | \"ghost\" | \"quiet\" | \"soft\" | \"danger-secondary\"",
522
522
  "required": false,
523
523
  "default": null,
524
- "description": "`primary` for the one main action of a view, `secondary` for others, `ghost` and `quiet` for toolbars, `danger` for destructive actions."
524
+ "description": "`primary` for the one main action of a view, `secondary` for others, `ghost` and `quiet` for toolbars and rows, `danger` for destructive actions. A ghost or quiet button at the end of a settings row's control pulls its padding past the row's edge, so its label ends where an outlined button's ring does."
525
525
  }
526
526
  ],
527
527
  "file": "src/components/button/button.tsx"
@@ -852,7 +852,7 @@
852
852
  },
853
853
  {
854
854
  "name": "ChartFrame",
855
- "description": "The frame every chart draws in: a hidden data table for assistive technology, a \"View as table\" toggle, and the empty, loading and error states. Use it to build a chart of your own that behaves like the others.",
855
+ "description": "The frame every chart draws in: a hidden data table for assistive technology, a \"View as table\" toggle, and the empty, loading and error states. The toggle sits at the right end of the last line of the legend; when the frame is narrower than 480px (the `chart-legend` container size, a phone), it moves to its own line under the legend, so it never reads as one of the series. Use it to build a chart of your own that behaves like the others.",
856
856
  "props": [
857
857
  {
858
858
  "name": "children",
@@ -2173,7 +2173,7 @@
2173
2173
  "components": [
2174
2174
  {
2175
2175
  "name": "CodeBlock",
2176
- "description": "Highlighted code on a well: Kaeso's monochrome theme, copy on hover, tabs, line numbers, collapse.",
2176
+ "description": "Highlighted code on a well: Kaeso's monochrome theme, copy on hover, tabs, line numbers, collapse. Long lines scroll sideways inside 16px of padding at both ends, and the code fades out at an edge with more to scroll to.",
2177
2177
  "props": [
2178
2178
  {
2179
2179
  "name": "className",
@@ -2261,10 +2261,10 @@
2261
2261
  },
2262
2262
  {
2263
2263
  "name": "wrap",
2264
- "type": "boolean",
2264
+ "type": "boolean | \"phone\"",
2265
2265
  "required": false,
2266
2266
  "default": "false",
2267
- "description": "Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response)."
2267
+ "description": "Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). `phone` wraps them only below 640px, with wrapped parts indented, and scrolls from there up."
2268
2268
  }
2269
2269
  ],
2270
2270
  "file": "src/components/code-block/code-block.tsx"
@@ -2359,10 +2359,10 @@
2359
2359
  },
2360
2360
  {
2361
2361
  "name": "wrap",
2362
- "type": "boolean",
2362
+ "type": "boolean | \"phone\"",
2363
2363
  "required": false,
2364
2364
  "default": "false",
2365
- "description": "Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response)."
2365
+ "description": "Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). `phone` wraps them only below 640px, with wrapped parts indented, and scrolls from there up."
2366
2366
  }
2367
2367
  ],
2368
2368
  "file": "src/components/code-block/code-block.tsx"
@@ -2955,6 +2955,13 @@
2955
2955
  "default": null,
2956
2956
  "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
2957
2957
  },
2958
+ {
2959
+ "name": "counts",
2960
+ "type": "boolean",
2961
+ "required": false,
2962
+ "default": "true",
2963
+ "description": "Shows each group's count beside its caption; false leaves them out, for a site whose house style has no result counters."
2964
+ },
2958
2965
  {
2959
2966
  "name": "data-force",
2960
2967
  "type": "string",
@@ -3266,6 +3273,13 @@
3266
3273
  "default": null,
3267
3274
  "description": "The commands, in groups with a heading each."
3268
3275
  },
3276
+ {
3277
+ "name": "counts",
3278
+ "type": "boolean",
3279
+ "required": false,
3280
+ "default": null,
3281
+ "description": "Shows each group's count beside its caption; false leaves them out, for a site whose house style has no result counters."
3282
+ },
3269
3283
  {
3270
3284
  "name": "defaultQuery",
3271
3285
  "type": "string",
@@ -3451,7 +3465,7 @@
3451
3465
  },
3452
3466
  {
3453
3467
  "name": "InlineCopyText",
3454
- "description": "Inline mono text that copies itself on click, with a hover affordance. Never wider than its container: a long value (a user agent, an id) ends in an ellipsis, and its tooltip shows the whole of it until it is copied.",
3468
+ "description": "Inline mono text that copies itself on click. On hover and keyboard focus a copy icon appears after it. When nothing follows it on its line and its row's padding has room that no cell clips, the icon takes no space, so the text ends on the same edge as the values around it; otherwise the icon keeps its own space. Touch screens always show the icon in its own space. Never wider than its container: a long value (a user agent, an id) ends in an ellipsis, and its tooltip shows the whole of it until it is copied.",
3455
3469
  "props": [
3456
3470
  {
3457
3471
  "name": "value",
@@ -5026,6 +5040,75 @@
5026
5040
  }
5027
5041
  }
5028
5042
  },
5043
+ {
5044
+ "entry": "figure",
5045
+ "kind": "components",
5046
+ "import": "@logicplanes/kaeso-ui/figure",
5047
+ "components": [
5048
+ {
5049
+ "name": "Figure",
5050
+ "description": "A diagram or image set apart from the text: centred on a well, with a caption, scrolling sideways only when it can't shrink to fit.",
5051
+ "props": [
5052
+ {
5053
+ "name": "children",
5054
+ "type": "ReactNode",
5055
+ "required": true,
5056
+ "default": null,
5057
+ "description": "What the figure shows, usually a ThemeImage."
5058
+ },
5059
+ {
5060
+ "name": "label",
5061
+ "type": "string",
5062
+ "required": true,
5063
+ "default": null,
5064
+ "description": "The name of the figure's scrolling region, read by screen readers."
5065
+ },
5066
+ {
5067
+ "name": "caption",
5068
+ "type": "ReactNode",
5069
+ "required": false,
5070
+ "default": null,
5071
+ "description": "A few words under the figure that say what it shows, such as a diagram's title."
5072
+ },
5073
+ {
5074
+ "name": "className",
5075
+ "type": "string",
5076
+ "required": false,
5077
+ "default": null,
5078
+ "description": "Classes for the layout of the outer element: margin, width and placement, never its look."
5079
+ },
5080
+ {
5081
+ "name": "focus",
5082
+ "type": "number",
5083
+ "required": false,
5084
+ "default": "0.5",
5085
+ "description": "Where a figure wider than its column starts, as a share of its width: 0.5, the middle, by default."
5086
+ },
5087
+ {
5088
+ "name": "surface",
5089
+ "type": "\"well\" | \"plain\"",
5090
+ "required": false,
5091
+ "default": "well",
5092
+ "description": "The figure's background: a well like a code block's, or none."
5093
+ }
5094
+ ],
5095
+ "file": "src/components/figure/figure.tsx"
5096
+ }
5097
+ ],
5098
+ "variants": {
5099
+ "FIGURE": {
5100
+ "axes": {
5101
+ "surface": {
5102
+ "well": "A well like a code block's: radius 14, fill, no ring (default)",
5103
+ "plain": "No surface, for a figure that brings its own"
5104
+ }
5105
+ },
5106
+ "defaults": {
5107
+ "surface": "well"
5108
+ }
5109
+ }
5110
+ }
5111
+ },
5029
5112
  {
5030
5113
  "entry": "filter-chip",
5031
5114
  "kind": "components",
@@ -10065,7 +10148,7 @@
10065
10148
  "axes": {
10066
10149
  "appearance": {
10067
10150
  "ghost": "Transparent until hovered: a column header (default)",
10068
- "default": "A raised pill with a ring: a form or toolbar"
10151
+ "default": "A pill with a text input's ring: a form or toolbar"
10069
10152
  }
10070
10153
  },
10071
10154
  "defaults": {
@@ -11228,7 +11311,7 @@
11228
11311
  "SELECT": {
11229
11312
  "axes": {
11230
11313
  "appearance": {
11231
- "default": "A raised pill with a ring (default)",
11314
+ "default": "A pill with the same ring, hover and focus as a text input (default)",
11232
11315
  "ghost": "Inline in settings rows: “GPT-5 mini (default) ⌄”",
11233
11316
  "header": "Transparent until hovered, in full text colour: a column header's model"
11234
11317
  },
@@ -11334,7 +11417,7 @@
11334
11417
  },
11335
11418
  {
11336
11419
  "name": "SettingsRow",
11337
- "description": "One setting: title 15/500 and description 13 on the left, the control on the right. When the row is too narrow to keep 140px of text beside the control (a phone, a sheet), the control moves under the text.",
11420
+ "description": "One setting: title 15/500 and description 13 on the left, the control on the right. The row is its own size container: narrower than 480px inside its padding (the `settings-row` container size, a phone), every row's control moves under its text, so the rows of a group line up the same way whatever their control's width. A ghost or quiet button that ends the control keeps its label on the row's edge, where an outlined button's ring ends; under the text it starts on the text's edge.",
11338
11421
  "props": [
11339
11422
  {
11340
11423
  "name": "title",
@@ -11586,8 +11669,8 @@
11586
11669
  "lg": "800px"
11587
11670
  },
11588
11671
  "side": {
11589
- "right": "From the right (default)",
11590
- "left": "From the left: the mobile sidebar",
11672
+ "right": "From the right (default); fills a phone's screen",
11673
+ "left": "From the left: the mobile sidebar; fills a phone's screen",
11591
11674
  "bottom": "From the bottom: mobile menus"
11592
11675
  }
11593
11676
  },
@@ -12374,7 +12457,15 @@
12374
12457
  {
12375
12458
  "name": "Table",
12376
12459
  "description": "A plain table for small amounts of data; use `DataTable` for sorting, selection and many rows.",
12377
- "props": [],
12460
+ "props": [
12461
+ {
12462
+ "name": "density",
12463
+ "type": "\"default\" | \"compact\"",
12464
+ "required": false,
12465
+ "default": "default",
12466
+ "description": "12px between columns (`default`), or 8px (`compact`) for reference tables of five or more columns."
12467
+ }
12468
+ ],
12378
12469
  "file": "src/components/table/table.tsx"
12379
12470
  }
12380
12471
  ],
@@ -12384,10 +12475,15 @@
12384
12475
  "align": {
12385
12476
  "start": "Text (default)",
12386
12477
  "end": "Numbers"
12478
+ },
12479
+ "density": {
12480
+ "default": "12px between columns (default)",
12481
+ "compact": "8px between columns, for reference tables of five or more columns"
12387
12482
  }
12388
12483
  },
12389
12484
  "defaults": {
12390
- "align": "start"
12485
+ "align": "start",
12486
+ "density": "default"
12391
12487
  }
12392
12488
  }
12393
12489
  }
@@ -12743,7 +12839,7 @@
12743
12839
  },
12744
12840
  {
12745
12841
  "name": "variant",
12746
- "type": "\"title\" | \"display\" | \"title-sm\" | \"title-lg\" | \"body\" | \"caption\" | \"small\" | \"micro\" | \"body-lg\" | \"metric\"",
12842
+ "type": "\"title\" | \"display\" | \"caption\" | \"title-sm\" | \"title-lg\" | \"body\" | \"small\" | \"micro\" | \"body-lg\" | \"metric\"",
12747
12843
  "required": false,
12748
12844
  "default": "body",
12749
12845
  "description": "The type style, from `micro` to `display`."
@@ -1,6 +1,6 @@
1
1
  # @logicplanes/kaeso-ui component registry
2
2
 
3
- Version 0.4.0. Generated from the component types, their descriptions and variants; do not edit.
3
+ Version 0.4.2. Generated from the component types, their descriptions and variants; do not edit.
4
4
 
5
5
  ## app-frame
6
6
 
@@ -135,7 +135,7 @@ The button. Every one is a pill; icon-only buttons are circles (see `IconButton`
135
135
  | `size` | `"md" \| "xs" \| "sm" \| "lg" \| "xl"` | | The height, from `xs` (24px) to `xl` (44px). |
136
136
  | `target` | `string` | | Where the link opens, as on an `a` element. |
137
137
  | `trailingIcon` | `IconSvgElement` | | An icon after the text. |
138
- | `variant` | `"danger" \| "link" \| "secondary" \| "primary" \| "ghost" \| "quiet" \| "soft" \| "danger-secondary"` | | `primary` for the one main action of a view, `secondary` for others, `ghost` and `quiet` for toolbars, `danger` for destructive actions. |
138
+ | `variant` | `"danger" \| "link" \| "secondary" \| "primary" \| "ghost" \| "quiet" \| "soft" \| "danger-secondary"` | | `primary` for the one main action of a view, `secondary` for others, `ghost` and `quiet` for toolbars and rows, `danger` for destructive actions. A ghost or quiet button at the end of a settings row's control pulls its padding past the row's edge, so its label ends where an outlined button's ring does. |
139
139
 
140
140
  ## button-group
141
141
 
@@ -218,7 +218,7 @@ Bars for comparing values across categories: grouped, stacked, or horizontal for
218
218
 
219
219
  ### ChartFrame
220
220
 
221
- The frame every chart draws in: a hidden data table for assistive technology, a "View as table" toggle, and the empty, loading and error states. Use it to build a chart of your own that behaves like the others.
221
+ The frame every chart draws in: a hidden data table for assistive technology, a "View as table" toggle, and the empty, loading and error states. The toggle sits at the right end of the last line of the legend; when the frame is narrower than 480px (the `chart-legend` container size, a phone), it moves to its own line under the legend, so it never reads as one of the series. Use it to build a chart of your own that behaves like the others.
222
222
 
223
223
  | Prop | Type | Default | Description |
224
224
  |---|---|---|---|
@@ -507,7 +507,7 @@ Inline code: Geist Mono 13 on fill-1.
507
507
 
508
508
  ### CodeBlock
509
509
 
510
- Highlighted code on a well: Kaeso's monochrome theme, copy on hover, tabs, line numbers, collapse.
510
+ Highlighted code on a well: Kaeso's monochrome theme, copy on hover, tabs, line numbers, collapse. Long lines scroll sideways inside 16px of padding at both ends, and the code fades out at an edge with more to scroll to.
511
511
 
512
512
  | Prop | Type | Default | Description |
513
513
  |---|---|---|---|
@@ -523,7 +523,7 @@ Highlighted code on a well: Kaeso's monochrome theme, copy on hover, tabs, line
523
523
  | `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. |
524
524
  | `tabs` | `CodeTab[]` | | Several versions: "Python · Node · curl", shown as pill tabs. |
525
525
  | `title` | `ReactNode` | | A file name in the title bar. |
526
- | `wrap` | `boolean` | `false` | Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). |
526
+ | `wrap` | `boolean \| "phone"` | `false` | Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). `phone` wraps them only below 640px, with wrapped parts indented, and scrolls from there up. |
527
527
 
528
528
  ### CodeHighlighted
529
529
 
@@ -543,7 +543,7 @@ The same component as `CodeBlock`, under another name.
543
543
  | `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. |
544
544
  | `tabs` | `CodeTab[]` | | Several versions: "Python · Node · curl", shown as pill tabs. |
545
545
  | `title` | `ReactNode` | | A file name in the title bar. |
546
- | `wrap` | `boolean` | `false` | Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). |
546
+ | `wrap` | `boolean \| "phone"` | `false` | Long lines wrap instead of scrolling sideways: code in a narrow column (a model's response). `phone` wraps them only below 640px, with wrapped parts indented, and scrolls from there up. |
547
547
 
548
548
  ### JsonView
549
549
 
@@ -680,6 +680,7 @@ A search field over a long list that stays fast with thousands of rows: fuzzy ma
680
680
  | `groups` * | `CommandListGroup[]` | | The rows, in groups; a group with a label gets a sticky caption with its mark and count, and a loading group keeps its caption while it has no rows yet. |
681
681
  | `autoFocus` | `boolean` | | Focuses the search field when it appears, as in a popover or a dialog step. |
682
682
  | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
683
+ | `counts` | `boolean` | `true` | Shows each group's count beside its caption; false leaves them out, for a site whose house style has no result counters. |
683
684
  | `data-force` | `string` | | Forces an interaction state for state matrices: `hover`, `pressed`, `focus`, `open`. |
684
685
  | `defaultQuery` | `string` | | The search text on first render. |
685
686
  | `emptyText` | `ReactNode` | | What the list says when nothing matches: "No models match". |
@@ -743,6 +744,7 @@ The pill that opens a picker and shows its value, in the same looks and sizes as
743
744
  | Prop | Type | Default | Description |
744
745
  |---|---|---|---|
745
746
  | `groups` * | `CommandGroup[]` | | The commands, in groups with a heading each. |
747
+ | `counts` | `boolean` | | Shows each group's count beside its caption; false leaves them out, for a site whose house style has no result counters. |
746
748
  | `defaultQuery` | `string` | | Start with this query (documentation). |
747
749
  | `emptyText` | `ReactNode` | | Defaults to "No results" in the provider's language. |
748
750
  | `hotkey` | `boolean` | | Open with ⌘K / Ctrl+K anywhere (default true). |
@@ -789,7 +791,7 @@ A circle that copies a value: a check and "Copied" for 1.2s.
789
791
 
790
792
  ### InlineCopyText
791
793
 
792
- Inline mono text that copies itself on click, with a hover affordance. Never wider than its container: a long value (a user agent, an id) ends in an ellipsis, and its tooltip shows the whole of it until it is copied.
794
+ Inline mono text that copies itself on click. On hover and keyboard focus a copy icon appears after it. When nothing follows it on its line and its row's padding has room that no cell clips, the icon takes no space, so the text ends on the same edge as the values around it; otherwise the icon keeps its own space. Touch screens always show the icon in its own space. Never wider than its container: a long value (a user agent, an id) ends in an ellipsis, and its tooltip shows the whole of it until it is copied.
793
795
 
794
796
  | Prop | Type | Default | Description |
795
797
  |---|---|---|---|
@@ -1117,6 +1119,25 @@ A group of fields under one legend.
1117
1119
  | `legend` * | `ReactNode` | | The heading of the group of fields. |
1118
1120
  | `description` | `ReactNode` | | One sentence of help under the heading. |
1119
1121
 
1122
+ ## figure
1123
+
1124
+ `import { Figure } from "@logicplanes/kaeso-ui/figure";`
1125
+
1126
+ - **surface** (figure): `well` (default) — A well like a code block's: radius 14, fill, no ring (default); `plain` — No surface, for a figure that brings its own
1127
+
1128
+ ### Figure
1129
+
1130
+ A diagram or image set apart from the text: centred on a well, with a caption, scrolling sideways only when it can't shrink to fit.
1131
+
1132
+ | Prop | Type | Default | Description |
1133
+ |---|---|---|---|
1134
+ | `children` * | `ReactNode` | | What the figure shows, usually a ThemeImage. |
1135
+ | `label` * | `string` | | The name of the figure's scrolling region, read by screen readers. |
1136
+ | `caption` | `ReactNode` | | A few words under the figure that say what it shows, such as a diagram's title. |
1137
+ | `className` | `string` | | Classes for the layout of the outer element: margin, width and placement, never its look. |
1138
+ | `focus` | `number` | `0.5` | Where a figure wider than its column starts, as a share of its width: 0.5, the middle, by default. |
1139
+ | `surface` | `"well" \| "plain"` | `well` | The figure's background: a well like a code block's, or none. |
1140
+
1120
1141
  ## filter-chip
1121
1142
 
1122
1143
  `import { FilterChip } from "@logicplanes/kaeso-ui/filter-chip";`
@@ -2100,7 +2121,7 @@ Moves through long lists by pages, by cursor, or with a Load more button.
2100
2121
 
2101
2122
  - **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
2102
2123
  - **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
2103
- - **appearance** (model_picker): `ghost` (default) — Transparent until hovered: a column header (default); `default` — A raised pill with a ring: a form or toolbar
2124
+ - **appearance** (model_picker): `ghost` (default) — Transparent until hovered: a column header (default); `default` — A pill with a text input's ring: a form or toolbar
2104
2125
  - **layout** (parameter_panel): `popover` (default) — Inside a 320px popover (ParameterPopover) (default); `panel` — A side panel or sheet: a little more room between groups
2105
2126
  - **align** (prompt_suggestions): `start` (default) — Rows the composer's width, their text on its text (default); `center` — Centered under an empty thread's title
2106
2127
  - **state** (reasoning): `done` (default) — Finished: “Thought for 4.2 s”, closed until opened (default); `live` — Still reasoning: “Thinking” pulses quietly and the latest line shows beside it
@@ -2554,7 +2575,7 @@ Two to five mutually exclusive options: 24h/7d/30d, List/Board, providers.
2554
2575
 
2555
2576
  `import { Select } from "@logicplanes/kaeso-ui/select";`
2556
2577
 
2557
- - **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
2578
+ - **appearance** (select): `default` (default) — A pill with the same ring, hover and focus as a text input (default); `ghost` — Inline in settings rows: “GPT-5 mini (default) ⌄”; `header` — Transparent until hovered, in full text colour: a column header's model
2558
2579
  - **size** (select): `sm` — 32px: settings rows and toolbars; `md` (default) — 36px (default); `lg` — 40px; `xl` — 48px: sign-in and setup forms
2559
2580
 
2560
2581
  ### Select
@@ -2624,7 +2645,7 @@ A group of settings rows: radius 14, raised, ring and a whisper of shadow; hairl
2624
2645
 
2625
2646
  ### SettingsRow
2626
2647
 
2627
- One setting: title 15/500 and description 13 on the left, the control on the right. When the row is too narrow to keep 140px of text beside the control (a phone, a sheet), the control moves under the text.
2648
+ One setting: title 15/500 and description 13 on the left, the control on the right. The row is its own size container: narrower than 480px inside its padding (the `settings-row` container size, a phone), every row's control moves under its text, so the rows of a group line up the same way whatever their control's width. A ghost or quiet button that ends the control keeps its label on the row's edge, where an outlined button's ring ends; under the text it starts on the text's edge.
2628
2649
 
2629
2650
  | Prop | Type | Default | Description |
2630
2651
  |---|---|---|---|
@@ -2657,7 +2678,7 @@ A settings section: a title-sm heading 48px above, 12px below; usually one Setti
2657
2678
  `import { Sheet } from "@logicplanes/kaeso-ui/sheet";`
2658
2679
 
2659
2680
  - **size** (sheet): `sm` (default) — 480px (default); `md` — 640px: the request inspector; `lg` — 800px
2660
- - **side** (sheet): `right` (default) — From the right (default); `left` — From the left: the mobile sidebar; `bottom` — From the bottom: mobile menus
2681
+ - **side** (sheet): `right` (default) — From the right (default); fills a phone's screen; `left` — From the left: the mobile sidebar; fills a phone's screen; `bottom` — From the bottom: mobile menus
2661
2682
 
2662
2683
  ### Sheet
2663
2684
 
@@ -2905,11 +2926,16 @@ A pill track and a round thumb that travels in 180ms.
2905
2926
  `import { Table } from "@logicplanes/kaeso-ui/table";`
2906
2927
 
2907
2928
  - **align** (table): `start` (default) — Text (default); `end` — Numbers
2929
+ - **density** (table): `default` (default) — 12px between columns (default); `compact` — 8px between columns, for reference tables of five or more columns
2908
2930
 
2909
2931
  ### Table
2910
2932
 
2911
2933
  A plain table for small amounts of data; use `DataTable` for sorting, selection and many rows.
2912
2934
 
2935
+ | Prop | Type | Default | Description |
2936
+ |---|---|---|---|
2937
+ | `density` | `"default" \| "compact"` | `default` | 12px between columns (`default`), or 8px (`compact`) for reference tables of five or more columns. |
2938
+
2913
2939
  ## tabs
2914
2940
 
2915
2941
  `import { PillTabs, Tabs } from "@logicplanes/kaeso-ui/tabs";`
@@ -3003,7 +3029,7 @@ Text in the type scale.
3003
3029
  | `tabular` | `boolean` | | Tabular numerals. On by default for `metric`. |
3004
3030
  | `tone` | `"success" \| "warning" \| "danger" \| "info" \| "inherit" \| "secondary" \| "default" \| "tertiary"` | `default` | The text color role; status tones go next to words that say the same. |
3005
3031
  | `truncate` | `boolean` | | One line with an ellipsis; the full text appears in a tooltip when it is cut. |
3006
- | `variant` | `"title" \| "display" \| "title-sm" \| "title-lg" \| "body" \| "caption" \| "small" \| "micro" \| "body-lg" \| "metric"` | `body` | The type style, from `micro` to `display`. |
3032
+ | `variant` | `"title" \| "display" \| "caption" \| "title-sm" \| "title-lg" \| "body" \| "small" \| "micro" \| "body-lg" \| "metric"` | `body` | The type style, from `micro` to `display`. |
3007
3033
  | `weight` | `"medium" \| "regular" \| "semibold"` | | The weight, when it differs from the type style's. |
3008
3034
 
3009
3035
  ## theme-image
package/ai/icons.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Icon vocabulary
2
2
 
3
- Version 0.4.0. Generated from `src/icons/vocabulary.ts`; do not edit. Use the name, never an icon picked by look: `icons.key` always means a key. Hugeicons, Stroke Rounded. Rules: `foundations/icons.md`.
3
+ Version 0.4.2. Generated from `src/icons/vocabulary.ts`; do not edit. Use the name, never an icon picked by look: `icons.key` always means a key. Hugeicons, Stroke Rounded. Rules: `foundations/icons.md`.
4
4
 
5
5
  ## Kaeso objects
6
6
 
package/ai/tokens.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @logicplanes/kaeso-ui tokens
2
2
 
3
- Version 0.4.0. Generated from `@logicplanes/kaeso-tokens`; do not edit. Components use these through role names (`bg-panel`, `text-fg-secondary`, `h-36`, `rounded-pill`); a raw value never appears in a component. How to use them: `foundations/*.md`.
3
+ Version 0.4.2. Generated from `@logicplanes/kaeso-tokens`; do not edit. Components use these through role names (`bg-panel`, `text-fg-secondary`, `h-36`, `rounded-pill`); a raw value never appears in a component. How to use them: `foundations/*.md`.
4
4
 
5
5
  ## Neutrals
6
6
 
@@ -17,6 +17,7 @@ Version 0.4.0. Generated from `@logicplanes/kaeso-tokens`; do not edit. Componen
17
17
  | `--k-line-strong` | #d4d4d4 | #333333 |
18
18
  | `--k-line-field` | #858585 | #757575 |
19
19
  | `--k-line-field-hover` | #707070 | #858585 |
20
+ | `--k-switch-thumb` | #ffffff | #c7c7c7 |
20
21
  | `--k-text` | #0a0a0a | #fafafa |
21
22
  | `--k-text-secondary` | #666666 | #a3a3a3 |
22
23
  | `--k-text-tertiary` | #707070 | #858585 |
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { i as e } from "../chunks/context-BELWW79w.js";
3
- import { t } from "../chunks/dialog-BLcP7v24.js";
3
+ import { t } from "../chunks/dialog-DQ9vZ7vr.js";
4
4
  import { jsx as n } from "react/jsx-runtime";
5
5
  //#region src/blocks/delete-resource/delete-resource.tsx
6
6
  var r = { confirm: {
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-DUDmdLpZ.js";
3
- import { t } from "../chunks/app-frame-Cj_gCbmu.js";
4
- import { r as n } from "../chunks/page-header-B3tV8Wog.js";
5
- import { t as r } from "../chunks/empty-YXmSkKzR.js";
6
- import { a as i, t as a } from "../chunks/section-BsET7Fo-.js";
2
+ import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
+ import { t } from "../chunks/app-frame-C8csevkL.js";
4
+ import { r as n } from "../chunks/page-header-DjUMDG69.js";
5
+ import { t as r } from "../chunks/empty-DvhyMXQq.js";
6
+ import { a as i, t as a } from "../chunks/section-Ce1efbsP.js";
7
7
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
8
8
  //#region src/blocks/pages/pages.tsx
9
9
  var l = { page: {
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { i as e } from "../chunks/context-BELWW79w.js";
3
- import { i as t } from "../chunks/input-9y3afoiq.js";
4
- import { r as n } from "../chunks/toolbar-nVLFWH2i.js";
5
- import { t as r } from "../chunks/empty-YXmSkKzR.js";
6
- import { i, o as a } from "../chunks/list-7VARol_x.js";
3
+ import { i as t } from "../chunks/input-TyLIaQ5k.js";
4
+ import { r as n } from "../chunks/toolbar-DL6zVrzU.js";
5
+ import { t as r } from "../chunks/empty-DvhyMXQq.js";
6
+ import { i, o as a } from "../chunks/list-CkOozrVY.js";
7
7
  import { useMemo as o, useState as s } from "react";
8
8
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
9
9
  //#region src/blocks/resource-list/resource-list.tsx
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import { t as e } from "./cn-DUDmdLpZ.js";
2
+ import { t as e } from "./cn-Dj6sRgkF.js";
3
3
  import { n as t, t as n } from "./inset-BnBj8NJV.js";
4
4
  import { i as r } from "./context-BELWW79w.js";
5
- import { l as i, s as a } from "./tooltip-CTBnfiDH.js";
6
- import { a as o } from "./button-h2IFCER2.js";
7
- import { t as s } from "./icon-button-DmKFxQbP.js";
8
- import { l as c, t as l } from "./sidebar-ZSTPK9Jn.js";
5
+ import { l as i, s as a } from "./tooltip-BMQ9BtPp.js";
6
+ import { a as o } from "./button-Dzu7_csE.js";
7
+ import { t as s } from "./icon-button-CPYR21Sz.js";
8
+ import { l as c, t as l } from "./sidebar-DtFlejU7.js";
9
9
  import { t as u } from "./when-idle-Cy3pinqO.js";
10
10
  import { createContext as d, forwardRef as f, useCallback as p, useContext as m, useEffect as h, useId as g, useLayoutEffect as _, useMemo as v, useRef as y, useState as b } from "react";
11
11
  import { jsx as x, jsxs as S } from "react/jsx-runtime";
@@ -103,7 +103,7 @@ function A({ banner: e, href: t, label: n, actions: i, open: a, onToggle: o, tog
103
103
  });
104
104
  }
105
105
  process.env.NODE_ENV !== "production" && (A.displayName = "AppFrame.PhoneBar");
106
- var j = 750, M = /* @__PURE__ */ a(() => import("./nav-sheet-D7wIF_OU.js").then((e) => e.n), { base: () => import.meta.url });
106
+ var j = 750, M = /* @__PURE__ */ a(() => import("./nav-sheet-B2rNb8GB.js").then((e) => e.n), { base: () => import.meta.url });
107
107
  function N({ navOpen: e, setNavOpen: t, toggle: n, ready: r, children: a }) {
108
108
  let { peeking: o, setPeeking: s } = c(), [l, d] = b(!1);
109
109
  h(() => u(() => d(!0)), []);
@@ -189,12 +189,12 @@ var z = /* @__PURE__ */ f(function({ title: r, description: i, actions: a, class
189
189
  children: [/* @__PURE__ */ S("header", {
190
190
  className: "flex flex-col gap-8",
191
191
  children: [/* @__PURE__ */ S("div", {
192
- className: "flex items-start justify-between gap-16",
192
+ className: "flex flex-wrap items-start justify-between gap-x-16 gap-y-8",
193
193
  children: [/* @__PURE__ */ x("h1", {
194
194
  className: "min-w-0 text-title-lg font-semibold text-fg text-balance",
195
195
  children: r
196
196
  }), a && /* @__PURE__ */ x("div", {
197
- className: "flex h-34 shrink-0 items-center gap-8",
197
+ className: "ml-auto flex h-34 shrink-0 items-center gap-8",
198
198
  children: a
199
199
  })]
200
200
  }), i && /* @__PURE__ */ x("p", {
@@ -217,4 +217,4 @@ var B = /* @__PURE__ */ Object.assign(O, {
217
217
  //#endregion
218
218
  export { w as a, T as i, L as n, j as o, I as r, D as s, B as t };
219
219
 
220
- //# sourceMappingURL=app-frame-Cj_gCbmu.js.map
220
+ //# sourceMappingURL=app-frame-C8csevkL.js.map