@logicplanes/kaeso-ui 0.4.4 → 0.4.6

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 (482) hide show
  1. package/ai/component-guides.md +250 -98
  2. package/ai/component-registry.json +264 -236
  3. package/ai/component-registry.md +222 -218
  4. package/ai/icons.md +1 -1
  5. package/ai/tokens.md +18 -14
  6. package/dist/blocks/delete-resource.js +3 -3
  7. package/dist/blocks/delete-resource.js.map +1 -1
  8. package/dist/blocks/pages.js +47 -42
  9. package/dist/blocks/pages.js.map +1 -1
  10. package/dist/blocks/resource-list.js +68 -55
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-DHieggHK.js +188 -0
  13. package/dist/chunks/agent-avatar-DHieggHK.js.map +1 -0
  14. package/dist/chunks/app-frame-DysOel2X.js +232 -0
  15. package/dist/chunks/app-frame-DysOel2X.js.map +1 -0
  16. package/dist/chunks/arrow-focus-B0KdRFX8.js +20 -0
  17. package/dist/chunks/arrow-focus-B0KdRFX8.js.map +1 -0
  18. package/dist/chunks/avatar-CYNMK7uY.js +110 -0
  19. package/dist/chunks/avatar-CYNMK7uY.js.map +1 -0
  20. package/dist/chunks/badge-C0GC3B9X.js +27 -0
  21. package/dist/chunks/badge-C0GC3B9X.js.map +1 -0
  22. package/dist/chunks/banner-B3DGLTBu.js +88 -0
  23. package/dist/chunks/banner-B3DGLTBu.js.map +1 -0
  24. package/dist/chunks/button-IblhXUyZ.js +202 -0
  25. package/dist/chunks/button-IblhXUyZ.js.map +1 -0
  26. package/dist/chunks/{calendar-BWaf2MXc.js → calendar-Dc6_dl0f.js} +4 -4
  27. package/dist/chunks/calendar-Dc6_dl0f.js.map +1 -0
  28. package/dist/chunks/checkbox-9tbimmF3.js +141 -0
  29. package/dist/chunks/checkbox-9tbimmF3.js.map +1 -0
  30. package/dist/chunks/{cn-Dj6sRgkF.js → cn-BjnOAUrA.js} +45 -4
  31. package/dist/chunks/cn-BjnOAUrA.js.map +1 -0
  32. package/dist/chunks/code-block-64e-Cy1S.js +346 -0
  33. package/dist/chunks/code-block-64e-Cy1S.js.map +1 -0
  34. package/dist/chunks/{code-block-DdNPHEzI.js → code-block-KIvuE8jg.js} +122 -114
  35. package/dist/chunks/code-block-KIvuE8jg.js.map +1 -0
  36. package/dist/chunks/{code-tqj0uhBL.js → code-xqjww4Pv.js} +5 -6
  37. package/dist/chunks/code-xqjww4Pv.js.map +1 -0
  38. package/dist/chunks/combobox-DkcjkWc6.js +352 -0
  39. package/dist/chunks/combobox-DkcjkWc6.js.map +1 -0
  40. package/dist/chunks/command-list-CypqsC4T.js +456 -0
  41. package/dist/chunks/command-list-CypqsC4T.js.map +1 -0
  42. package/dist/chunks/{copy-button-FJvPJn72.js → copy-button-CwU8t_9_.js} +22 -15
  43. package/dist/chunks/copy-button-CwU8t_9_.js.map +1 -0
  44. package/dist/chunks/core-CmK-8ObW.js +505 -0
  45. package/dist/chunks/core-CmK-8ObW.js.map +1 -0
  46. package/dist/chunks/data-table-CqY8_6IS.js +581 -0
  47. package/dist/chunks/data-table-CqY8_6IS.js.map +1 -0
  48. package/dist/chunks/date-popup-DAnjptFt.js +58 -0
  49. package/dist/chunks/date-popup-DAnjptFt.js.map +1 -0
  50. package/dist/chunks/{de-D_0mmG-k.js → de-CqC4aSIV.js} +74 -40
  51. package/dist/chunks/de-CqC4aSIV.js.map +1 -0
  52. package/dist/chunks/{dialog-Cg9A_6SF.js → dialog-2zb6ClNR.js} +156 -134
  53. package/dist/chunks/dialog-2zb6ClNR.js.map +1 -0
  54. package/dist/chunks/disclosure-BtYRTDO3.js +22 -0
  55. package/dist/chunks/disclosure-BtYRTDO3.js.map +1 -0
  56. package/dist/chunks/domain-obd_w9xk.js +28 -0
  57. package/dist/chunks/domain-obd_w9xk.js.map +1 -0
  58. package/dist/chunks/{empty-DvhyMXQq.js → empty-BpiUgGzm.js} +2 -2
  59. package/dist/chunks/{empty-DvhyMXQq.js.map → empty-BpiUgGzm.js.map} +1 -1
  60. package/dist/chunks/{field-TviMvYa2.js → field-D7m-yl-D.js} +37 -34
  61. package/dist/chunks/field-D7m-yl-D.js.map +1 -0
  62. package/dist/chunks/{icon-D7ja-_Yk.js → icon-CBzOwqrX.js} +7 -6
  63. package/dist/chunks/{icon-D7ja-_Yk.js.map → icon-CBzOwqrX.js.map} +1 -1
  64. package/dist/chunks/{icon-button-CrdF_eMG.js → icon-button-Dfwpvmav.js} +7 -6
  65. package/dist/chunks/icon-button-Dfwpvmav.js.map +1 -0
  66. package/dist/chunks/{identity-BmhQ6BQ-.js → identity-3Foi5F8w.js} +7 -7
  67. package/dist/chunks/{identity-BmhQ6BQ-.js.map → identity-3Foi5F8w.js.map} +1 -1
  68. package/dist/chunks/{input-2VJuj_M4.js → input-Bo5-UZg2.js} +15 -9
  69. package/dist/chunks/input-Bo5-UZg2.js.map +1 -0
  70. package/dist/chunks/{input-group-DQ_4DoXg.js → input-group-jPcK9T_a.js} +42 -29
  71. package/dist/chunks/input-group-jPcK9T_a.js.map +1 -0
  72. package/dist/chunks/iso-field-DoqHBg8n.js +52 -0
  73. package/dist/chunks/iso-field-DoqHBg8n.js.map +1 -0
  74. package/dist/chunks/json-view-DZ2nL2Ir.js +253 -0
  75. package/dist/chunks/json-view-DZ2nL2Ir.js.map +1 -0
  76. package/dist/chunks/{kbd-BF1vKXJf.js → kbd-8A0ML_up.js} +30 -28
  77. package/dist/chunks/kbd-8A0ML_up.js.map +1 -0
  78. package/dist/chunks/label-DW24Aj0Z.js +26 -0
  79. package/dist/chunks/label-DW24Aj0Z.js.map +1 -0
  80. package/dist/chunks/{link-KWI7PevW.js → link-CMjkcLQK.js} +14 -14
  81. package/dist/chunks/link-CMjkcLQK.js.map +1 -0
  82. package/dist/chunks/list-B4G-sWwV.js +540 -0
  83. package/dist/chunks/list-B4G-sWwV.js.map +1 -0
  84. package/dist/chunks/{loader-DCfPndXa.js → loader-zo8CCIGJ.js} +2 -2
  85. package/dist/chunks/{loader-DCfPndXa.js.map → loader-zo8CCIGJ.js.map} +1 -1
  86. package/dist/chunks/markdown-C565aBR7.js +338 -0
  87. package/dist/chunks/markdown-C565aBR7.js.map +1 -0
  88. package/dist/chunks/menu-Clvv6ftq.js +485 -0
  89. package/dist/chunks/menu-Clvv6ftq.js.map +1 -0
  90. package/dist/chunks/merge-refs-BN1FyQt9.js +20 -0
  91. package/dist/chunks/merge-refs-BN1FyQt9.js.map +1 -0
  92. package/dist/chunks/meter-CASMHlxl.js +100 -0
  93. package/dist/chunks/meter-CASMHlxl.js.map +1 -0
  94. package/dist/chunks/nav-sheet-Dt6JSvzX.js +67 -0
  95. package/dist/chunks/nav-sheet-Dt6JSvzX.js.map +1 -0
  96. package/dist/chunks/{nav-wordmark-_pjheAsZ.js → nav-wordmark-J4pB_vjr.js} +4 -8
  97. package/dist/chunks/nav-wordmark-J4pB_vjr.js.map +1 -0
  98. package/dist/chunks/page-header-kS5tdmvb.js +45 -0
  99. package/dist/chunks/page-header-kS5tdmvb.js.map +1 -0
  100. package/dist/chunks/pagination-D7fAm8qg.js +147 -0
  101. package/dist/chunks/pagination-D7fAm8qg.js.map +1 -0
  102. package/dist/chunks/picker-popover-1FHb1LQG.js +119 -0
  103. package/dist/chunks/picker-popover-1FHb1LQG.js.map +1 -0
  104. package/dist/chunks/popover-Bl5QYqnh.js +51 -0
  105. package/dist/chunks/popover-Bl5QYqnh.js.map +1 -0
  106. package/dist/chunks/{portal-context-BBbzDKmY.js → portal-context-CTatR2Z8.js} +14 -4
  107. package/dist/chunks/portal-context-CTatR2Z8.js.map +1 -0
  108. package/dist/chunks/{radio-CDDFpdtL.js → radio-C6GtzF_t.js} +38 -23
  109. package/dist/chunks/radio-C6GtzF_t.js.map +1 -0
  110. package/dist/chunks/range-popup-lGiZsG3s.js +160 -0
  111. package/dist/chunks/range-popup-lGiZsG3s.js.map +1 -0
  112. package/dist/chunks/reasoning-frame-C3HdQRRS.js +51 -0
  113. package/dist/chunks/reasoning-frame-C3HdQRRS.js.map +1 -0
  114. package/dist/chunks/release-art-ChiT4T2S.js +582 -0
  115. package/dist/chunks/release-art-ChiT4T2S.js.map +1 -0
  116. package/dist/chunks/rights-B68ocZuq.js +312 -0
  117. package/dist/chunks/rights-B68ocZuq.js.map +1 -0
  118. package/dist/chunks/{scroll-area-D8MD7Vpo.js → scroll-area-_Ljh4-bG.js} +11 -6
  119. package/dist/chunks/scroll-area-_Ljh4-bG.js.map +1 -0
  120. package/dist/chunks/section-CFBYhsUi.js +77 -0
  121. package/dist/chunks/section-CFBYhsUi.js.map +1 -0
  122. package/dist/chunks/section-header-DU1Q4Tdf.js +28 -0
  123. package/dist/chunks/section-header-DU1Q4Tdf.js.map +1 -0
  124. package/dist/chunks/segmented-D9i1avik.js +119 -0
  125. package/dist/chunks/segmented-D9i1avik.js.map +1 -0
  126. package/dist/chunks/select-BqjmQOqx.js +222 -0
  127. package/dist/chunks/select-BqjmQOqx.js.map +1 -0
  128. package/dist/chunks/{separator-D7TzNHmX.js → separator-BNWf6BBj.js} +13 -8
  129. package/dist/chunks/separator-BNWf6BBj.js.map +1 -0
  130. package/dist/chunks/sidebar-Dq7oGOje.js +664 -0
  131. package/dist/chunks/sidebar-Dq7oGOje.js.map +1 -0
  132. package/dist/chunks/{sidebar-menu-BN3jkTlK.js → sidebar-menu-QSSNu1jJ.js} +2 -2
  133. package/dist/chunks/{sidebar-menu-BN3jkTlK.js.map → sidebar-menu-QSSNu1jJ.js.map} +1 -1
  134. package/dist/chunks/{skeleton-Dcz57Zyp.js → skeleton-D-qk3mes.js} +3 -3
  135. package/dist/chunks/skeleton-D-qk3mes.js.map +1 -0
  136. package/dist/chunks/slider-CcE8GtuV.js +58 -0
  137. package/dist/chunks/slider-CcE8GtuV.js.map +1 -0
  138. package/dist/chunks/{status-dot-QJTF0Yv4.js → status-dot-CP6runiC.js} +4 -4
  139. package/dist/chunks/{status-dot-QJTF0Yv4.js.map → status-dot-CP6runiC.js.map} +1 -1
  140. package/dist/chunks/{styles-CVJU9t9v.js → styles-hkFkoBbi.js} +2 -2
  141. package/dist/chunks/{styles-CVJU9t9v.js.map → styles-hkFkoBbi.js.map} +1 -1
  142. package/dist/chunks/{swap-text-Dr0Irxz6.js → swap-text-SlUjrTlG.js} +3 -3
  143. package/dist/chunks/swap-text-SlUjrTlG.js.map +1 -0
  144. package/dist/chunks/switch-ngywMQdl.js +76 -0
  145. package/dist/chunks/switch-ngywMQdl.js.map +1 -0
  146. package/dist/chunks/table-CTK5E0J7.js +102 -0
  147. package/dist/chunks/table-CTK5E0J7.js.map +1 -0
  148. package/dist/chunks/tag-BGr6lTSV.js +100 -0
  149. package/dist/chunks/tag-BGr6lTSV.js.map +1 -0
  150. package/dist/chunks/{text-CIXH8rmT.js → text-DkKdTVUf.js} +9 -9
  151. package/dist/chunks/text-DkKdTVUf.js.map +1 -0
  152. package/dist/chunks/{textarea--4FRL3Pb.js → textarea-CO0HP6fK.js} +47 -36
  153. package/dist/chunks/textarea-CO0HP6fK.js.map +1 -0
  154. package/dist/chunks/timeseries-Ck-q0wWn.js +381 -0
  155. package/dist/chunks/timeseries-Ck-q0wWn.js.map +1 -0
  156. package/dist/chunks/toolbar-u0Gm7Q7-.js +61 -0
  157. package/dist/chunks/toolbar-u0Gm7Q7-.js.map +1 -0
  158. package/dist/chunks/tooltip-Tkm-urbi.js +202 -0
  159. package/dist/chunks/tooltip-Tkm-urbi.js.map +1 -0
  160. package/dist/chunks/tooltip-root-BC_RNNiP.js +70 -0
  161. package/dist/chunks/tooltip-root-BC_RNNiP.js.map +1 -0
  162. package/dist/chunks/truncated-d1afmUJT.js +33 -0
  163. package/dist/chunks/truncated-d1afmUJT.js.map +1 -0
  164. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js +28 -0
  165. package/dist/chunks/use-coarse-pointer-Ml5oE6oX.js.map +1 -0
  166. package/dist/chunks/use-hydrating-COtYVRo4.js +8 -0
  167. package/dist/chunks/use-hydrating-COtYVRo4.js.map +1 -0
  168. package/dist/chunks/use-scroll-fade-uc8mWSDX.js +30 -0
  169. package/dist/chunks/use-scroll-fade-uc8mWSDX.js.map +1 -0
  170. package/dist/chunks/{zh-CN-Bm6UPIbW.js → zh-CN-BlpsT6d_.js} +73 -39
  171. package/dist/chunks/zh-CN-BlpsT6d_.js.map +1 -0
  172. package/dist/components/agent-avatar.js +1 -1
  173. package/dist/components/app-frame.js +2 -2
  174. package/dist/components/avatar.js +1 -1
  175. package/dist/components/badge.js +1 -1
  176. package/dist/components/banner.js +1 -1
  177. package/dist/components/button-group.js +22 -22
  178. package/dist/components/button-group.js.map +1 -1
  179. package/dist/components/button.js +1 -1
  180. package/dist/components/calendar.js +1 -1
  181. package/dist/components/charts/bar.js +235 -160
  182. package/dist/components/charts/bar.js.map +1 -1
  183. package/dist/components/charts/donut.js +144 -99
  184. package/dist/components/charts/donut.js.map +1 -1
  185. package/dist/components/charts/gauge.js +61 -49
  186. package/dist/components/charts/gauge.js.map +1 -1
  187. package/dist/components/charts/heatmap.js +179 -70
  188. package/dist/components/charts/heatmap.js.map +1 -1
  189. package/dist/components/charts/sankey.js +144 -77
  190. package/dist/components/charts/sankey.js.map +1 -1
  191. package/dist/components/charts/sparkline.js +54 -38
  192. package/dist/components/charts/sparkline.js.map +1 -1
  193. package/dist/components/charts/timeseries.js +1 -1
  194. package/dist/components/charts.js +2 -2
  195. package/dist/components/checkbox.js +1 -1
  196. package/dist/components/code-block.js +3 -3
  197. package/dist/components/code.js +1 -1
  198. package/dist/components/collapsible.js +77 -1
  199. package/dist/components/collapsible.js.map +1 -0
  200. package/dist/components/combobox.js +1 -1
  201. package/dist/components/command-list.js +2 -2
  202. package/dist/components/command-palette.js +89 -66
  203. package/dist/components/command-palette.js.map +1 -1
  204. package/dist/components/copy-button.js +1 -1
  205. package/dist/components/data-table.js +1 -459
  206. package/dist/components/date-picker.js +162 -151
  207. package/dist/components/date-picker.js.map +1 -1
  208. package/dist/components/dialog.js +74 -63
  209. package/dist/components/dialog.js.map +1 -1
  210. package/dist/components/display-options.js +76 -64
  211. package/dist/components/display-options.js.map +1 -1
  212. package/dist/components/empty.js +1 -1
  213. package/dist/components/field.js +1 -1
  214. package/dist/components/figure.js +2 -2
  215. package/dist/components/filter-chip.js +36 -27
  216. package/dist/components/filter-chip.js.map +1 -1
  217. package/dist/components/filter-row.js +4 -4
  218. package/dist/components/filter-row.js.map +1 -1
  219. package/dist/components/flow.js +94 -63
  220. package/dist/components/flow.js.map +1 -1
  221. package/dist/components/heading.js +1 -1
  222. package/dist/components/icon-button.js +1 -1
  223. package/dist/components/icon.js +1 -1
  224. package/dist/components/input.js +176 -98
  225. package/dist/components/input.js.map +1 -1
  226. package/dist/components/kaeso/conversation.js +51 -46
  227. package/dist/components/kaeso/conversation.js.map +1 -1
  228. package/dist/components/kaeso/identity.js +1 -1
  229. package/dist/components/kaeso/moments.js +23 -20
  230. package/dist/components/kaeso/moments.js.map +1 -1
  231. package/dist/components/kaeso/rights.js +1 -1
  232. package/dist/components/kaeso/usage.js +90 -74
  233. package/dist/components/kaeso/usage.js.map +1 -1
  234. package/dist/components/kaeso.js +200 -187
  235. package/dist/components/kaeso.js.map +1 -1
  236. package/dist/components/kbd.js +1 -1
  237. package/dist/components/key-value.js +32 -47
  238. package/dist/components/key-value.js.map +1 -1
  239. package/dist/components/label.js +1 -25
  240. package/dist/components/layout.js +2 -2
  241. package/dist/components/layout.js.map +1 -1
  242. package/dist/components/link.js +1 -1
  243. package/dist/components/list.js +1 -1
  244. package/dist/components/loader.js +11 -10
  245. package/dist/components/loader.js.map +1 -1
  246. package/dist/components/logo.js +2 -2
  247. package/dist/components/markdown.js +1 -1
  248. package/dist/components/menu.js +2 -2
  249. package/dist/components/meter.js +1 -1
  250. package/dist/components/page-header.js +1 -1
  251. package/dist/components/pagination.js +1 -1
  252. package/dist/components/playground.js +644 -529
  253. package/dist/components/playground.js.map +1 -1
  254. package/dist/components/popover.js +4 -4
  255. package/dist/components/popover.js.map +1 -1
  256. package/dist/components/portal.js +1 -1
  257. package/dist/components/qr-code.js +2 -2
  258. package/dist/components/qr-code.js.map +1 -1
  259. package/dist/components/radio.js +1 -1
  260. package/dist/components/release-art.js +1 -1
  261. package/dist/components/scroll-area.js +1 -1
  262. package/dist/components/section.js +1 -1
  263. package/dist/components/segmented.js +1 -1
  264. package/dist/components/select.js +1 -1
  265. package/dist/components/separator.js +1 -1
  266. package/dist/components/settings.js +39 -46
  267. package/dist/components/settings.js.map +1 -1
  268. package/dist/components/sheet.js +10 -9
  269. package/dist/components/sheet.js.map +1 -1
  270. package/dist/components/sidebar.js +1 -1
  271. package/dist/components/skeleton.js +1 -1
  272. package/dist/components/slider.js +1 -1
  273. package/dist/components/stat.js +98 -84
  274. package/dist/components/stat.js.map +1 -1
  275. package/dist/components/status-dot.js +1 -1
  276. package/dist/components/surface.js +1 -1
  277. package/dist/components/swap-text.js +1 -1
  278. package/dist/components/switch.js +1 -1
  279. package/dist/components/table.js +1 -1
  280. package/dist/components/tabs.js +73 -55
  281. package/dist/components/tabs.js.map +1 -1
  282. package/dist/components/tag.js +1 -1
  283. package/dist/components/text.js +1 -1
  284. package/dist/components/theme-image.js +1 -1
  285. package/dist/components/theme-menu.js +5 -2
  286. package/dist/components/theme-menu.js.map +1 -1
  287. package/dist/components/theme-select.js +1 -1
  288. package/dist/components/thumbnail.js +35 -24
  289. package/dist/components/thumbnail.js.map +1 -1
  290. package/dist/components/timeline.js +51 -35
  291. package/dist/components/timeline.js.map +1 -1
  292. package/dist/components/toast.js +76 -66
  293. package/dist/components/toast.js.map +1 -1
  294. package/dist/components/toc.js +14 -8
  295. package/dist/components/toc.js.map +1 -1
  296. package/dist/components/toolbar.js +1 -1
  297. package/dist/components/tooltip.js +1 -1
  298. package/dist/components/visually-hidden.js +1 -1
  299. package/dist/i18n-provider.js +1 -1
  300. package/dist/index.js +100 -100
  301. package/dist/kaeso.css +605 -67
  302. package/dist/styles.css +1 -1
  303. package/dist/tailwind.css +1 -1
  304. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -2
  305. package/dist/types/components/agent-avatar/agent-avatar.d.ts +24 -19
  306. package/dist/types/components/badge/badge.d.ts +3 -3
  307. package/dist/types/components/banner/banner.d.ts +3 -3
  308. package/dist/types/components/button/button.d.ts +2 -2
  309. package/dist/types/components/button-group/button-group.d.ts +1 -1
  310. package/dist/types/components/charts/domain.d.ts +11 -0
  311. package/dist/types/components/charts/marks.d.ts +1 -0
  312. package/dist/types/components/code/code.d.ts +3 -3
  313. package/dist/types/components/code-block/json-view.d.ts +2 -1
  314. package/dist/types/components/code-block/numbers.d.ts +1 -0
  315. package/dist/types/components/collapsible/collapsible.d.ts +2 -2
  316. package/dist/types/components/collapsible/disclosure.d.ts +2 -0
  317. package/dist/types/components/data-table/data-table.d.ts +6 -5
  318. package/dist/types/components/data-table/docs.d.ts +1 -0
  319. package/dist/types/components/data-table/time-columns.d.ts +1 -0
  320. package/dist/types/components/date-picker/focus-day.d.ts +1 -0
  321. package/dist/types/components/date-picker/iso-field.d.ts +8 -1
  322. package/dist/types/components/dialog/dialog.d.ts +7 -7
  323. package/dist/types/components/field/field.d.ts +1 -1
  324. package/dist/types/components/flow/flow.d.ts +1 -1
  325. package/dist/types/components/icon-button/icon-button.d.ts +1 -1
  326. package/dist/types/components/input/input-group.d.ts +2 -0
  327. package/dist/types/components/input/number-input.d.ts +4 -4
  328. package/dist/types/components/input/otp-input.d.ts +3 -3
  329. package/dist/types/components/kaeso/client-button.d.ts +2 -1
  330. package/dist/types/components/kaeso/provider-picker.d.ts +1 -0
  331. package/dist/types/components/kaeso/rights.d.ts +1 -1
  332. package/dist/types/components/kaeso/role-picker.d.ts +1 -0
  333. package/dist/types/components/key-value/key-value.d.ts +2 -2
  334. package/dist/types/components/layout/layout.d.ts +2 -2
  335. package/dist/types/components/link/link.d.ts +4 -4
  336. package/dist/types/components/list/list.d.ts +2 -2
  337. package/dist/types/components/menu/menu.d.ts +2 -1
  338. package/dist/types/components/menu/styles.d.ts +3 -3
  339. package/dist/types/components/meter/meter.d.ts +3 -3
  340. package/dist/types/components/page-header/page-header.d.ts +1 -1
  341. package/dist/types/components/pagination/pagination.d.ts +2 -2
  342. package/dist/types/components/playground/prompt-suggestions.d.ts +1 -0
  343. package/dist/types/components/playground/reasoning-frame.d.ts +14 -0
  344. package/dist/types/components/playground/reasoning.d.ts +1 -0
  345. package/dist/types/components/popover/popover.d.ts +1 -1
  346. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  347. package/dist/types/components/section/section-header.d.ts +6 -0
  348. package/dist/types/components/segmented/segmented.d.ts +1 -0
  349. package/dist/types/components/select/select.d.ts +1 -1
  350. package/dist/types/components/sheet/sheet.d.ts +3 -3
  351. package/dist/types/components/sidebar/sidebar.d.ts +1 -0
  352. package/dist/types/components/slider/slider.d.ts +2 -2
  353. package/dist/types/components/stat/stat.d.ts +1 -1
  354. package/dist/types/components/tabs/tabs.d.ts +6 -4
  355. package/dist/types/components/text/truncated.d.ts +7 -0
  356. package/dist/types/components/timeline/timeline.d.ts +5 -5
  357. package/dist/types/components/toc/toc.d.ts +1 -1
  358. package/dist/types/components/toolbar/toolbar.d.ts +1 -1
  359. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  360. package/dist/types/components/tooltip/trigger-props.d.ts +1 -0
  361. package/dist/types/hooks/use-coarse-pointer.d.ts +1 -0
  362. package/dist/types/hooks/use-hydrating.d.ts +1 -0
  363. package/dist/types/utils/arrow-focus.d.ts +4 -1
  364. package/dist/types/utils/cn.d.ts +33 -0
  365. package/dist/types/utils/portal-context.d.ts +7 -1
  366. package/dist/utils.js +2 -2
  367. package/foundations/accessibility.md +3 -2
  368. package/foundations/color.md +5 -1
  369. package/foundations/elevation.md +1 -0
  370. package/foundations/motion.md +1 -1
  371. package/foundations/shape.md +2 -2
  372. package/foundations/typography.md +12 -12
  373. package/package.json +2 -2
  374. package/dist/chunks/agent-avatar-0pdBTWkR.js +0 -171
  375. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +0 -1
  376. package/dist/chunks/app-frame-DogGRmsu.js +0 -221
  377. package/dist/chunks/app-frame-DogGRmsu.js.map +0 -1
  378. package/dist/chunks/arrow-focus-BcySmwwU.js +0 -11
  379. package/dist/chunks/arrow-focus-BcySmwwU.js.map +0 -1
  380. package/dist/chunks/avatar-CWbdwbJv.js +0 -83
  381. package/dist/chunks/avatar-CWbdwbJv.js.map +0 -1
  382. package/dist/chunks/badge-C2KtxCLB.js +0 -26
  383. package/dist/chunks/badge-C2KtxCLB.js.map +0 -1
  384. package/dist/chunks/banner-BA2ALw9M.js +0 -85
  385. package/dist/chunks/banner-BA2ALw9M.js.map +0 -1
  386. package/dist/chunks/button-CzuxqawA.js +0 -164
  387. package/dist/chunks/button-CzuxqawA.js.map +0 -1
  388. package/dist/chunks/calendar-BWaf2MXc.js.map +0 -1
  389. package/dist/chunks/checkbox-CQjwCPkc.js +0 -126
  390. package/dist/chunks/checkbox-CQjwCPkc.js.map +0 -1
  391. package/dist/chunks/cn-Dj6sRgkF.js.map +0 -1
  392. package/dist/chunks/code-block-BZIe_B9l.js +0 -334
  393. package/dist/chunks/code-block-BZIe_B9l.js.map +0 -1
  394. package/dist/chunks/code-block-DdNPHEzI.js.map +0 -1
  395. package/dist/chunks/code-tqj0uhBL.js.map +0 -1
  396. package/dist/chunks/collapsible-CKrCX_T9.js +0 -87
  397. package/dist/chunks/collapsible-CKrCX_T9.js.map +0 -1
  398. package/dist/chunks/combobox-DjDI7SUC.js +0 -319
  399. package/dist/chunks/combobox-DjDI7SUC.js.map +0 -1
  400. package/dist/chunks/command-list-C2Y7V_lt.js +0 -418
  401. package/dist/chunks/command-list-C2Y7V_lt.js.map +0 -1
  402. package/dist/chunks/copy-button-FJvPJn72.js.map +0 -1
  403. package/dist/chunks/core-BYns5ytV.js +0 -472
  404. package/dist/chunks/core-BYns5ytV.js.map +0 -1
  405. package/dist/chunks/date-popup-CPA_zt6o.js +0 -35
  406. package/dist/chunks/date-popup-CPA_zt6o.js.map +0 -1
  407. package/dist/chunks/de-D_0mmG-k.js.map +0 -1
  408. package/dist/chunks/dialog-Cg9A_6SF.js.map +0 -1
  409. package/dist/chunks/field-TviMvYa2.js.map +0 -1
  410. package/dist/chunks/hidden-description-B2zSmLcn.js +0 -23
  411. package/dist/chunks/hidden-description-B2zSmLcn.js.map +0 -1
  412. package/dist/chunks/icon-button-CrdF_eMG.js.map +0 -1
  413. package/dist/chunks/input-2VJuj_M4.js.map +0 -1
  414. package/dist/chunks/input-group-DQ_4DoXg.js.map +0 -1
  415. package/dist/chunks/iso-field-B2rTwiBo.js +0 -33
  416. package/dist/chunks/iso-field-B2rTwiBo.js.map +0 -1
  417. package/dist/chunks/json-view-Dqd2TDkc.js +0 -175
  418. package/dist/chunks/json-view-Dqd2TDkc.js.map +0 -1
  419. package/dist/chunks/kbd-BF1vKXJf.js.map +0 -1
  420. package/dist/chunks/link-KWI7PevW.js.map +0 -1
  421. package/dist/chunks/list-M1csq-d4.js +0 -494
  422. package/dist/chunks/list-M1csq-d4.js.map +0 -1
  423. package/dist/chunks/markdown-BupwFOae.js +0 -313
  424. package/dist/chunks/markdown-BupwFOae.js.map +0 -1
  425. package/dist/chunks/menu-DEmBfdPm.js +0 -450
  426. package/dist/chunks/menu-DEmBfdPm.js.map +0 -1
  427. package/dist/chunks/meter-Bj4N3Xuh.js +0 -84
  428. package/dist/chunks/meter-Bj4N3Xuh.js.map +0 -1
  429. package/dist/chunks/nav-sheet-CzgIwgAm.js +0 -60
  430. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +0 -1
  431. package/dist/chunks/nav-wordmark-_pjheAsZ.js.map +0 -1
  432. package/dist/chunks/page-header-DL2y2iZp.js +0 -41
  433. package/dist/chunks/page-header-DL2y2iZp.js.map +0 -1
  434. package/dist/chunks/pagination-Cn_qF4cg.js +0 -86
  435. package/dist/chunks/pagination-Cn_qF4cg.js.map +0 -1
  436. package/dist/chunks/picker-popover-BxyU1U9F.js +0 -106
  437. package/dist/chunks/picker-popover-BxyU1U9F.js.map +0 -1
  438. package/dist/chunks/popover-DNN4S47w.js +0 -50
  439. package/dist/chunks/popover-DNN4S47w.js.map +0 -1
  440. package/dist/chunks/portal-context-BBbzDKmY.js.map +0 -1
  441. package/dist/chunks/radio-CDDFpdtL.js.map +0 -1
  442. package/dist/chunks/range-popup-CRyWYUB1.js +0 -128
  443. package/dist/chunks/range-popup-CRyWYUB1.js.map +0 -1
  444. package/dist/chunks/release-art-ZwfFQImt.js +0 -561
  445. package/dist/chunks/release-art-ZwfFQImt.js.map +0 -1
  446. package/dist/chunks/rights-Cyp0Pzp-.js +0 -279
  447. package/dist/chunks/rights-Cyp0Pzp-.js.map +0 -1
  448. package/dist/chunks/scroll-area-D8MD7Vpo.js.map +0 -1
  449. package/dist/chunks/scroll-parent-WXvzQcUo.js +0 -14
  450. package/dist/chunks/scroll-parent-WXvzQcUo.js.map +0 -1
  451. package/dist/chunks/section-Ce1efbsP.js +0 -87
  452. package/dist/chunks/section-Ce1efbsP.js.map +0 -1
  453. package/dist/chunks/segmented-CErcoxwi.js +0 -114
  454. package/dist/chunks/segmented-CErcoxwi.js.map +0 -1
  455. package/dist/chunks/select-x4XVsdCI.js +0 -210
  456. package/dist/chunks/select-x4XVsdCI.js.map +0 -1
  457. package/dist/chunks/separator-D7TzNHmX.js.map +0 -1
  458. package/dist/chunks/sidebar-3r1ZRXlN.js +0 -621
  459. package/dist/chunks/sidebar-3r1ZRXlN.js.map +0 -1
  460. package/dist/chunks/skeleton-Dcz57Zyp.js.map +0 -1
  461. package/dist/chunks/slider-Ci83PGtj.js +0 -57
  462. package/dist/chunks/slider-Ci83PGtj.js.map +0 -1
  463. package/dist/chunks/swap-text-Dr0Irxz6.js.map +0 -1
  464. package/dist/chunks/switch-BNMq_kGt.js +0 -59
  465. package/dist/chunks/switch-BNMq_kGt.js.map +0 -1
  466. package/dist/chunks/table-BeOSKl_3.js +0 -84
  467. package/dist/chunks/table-BeOSKl_3.js.map +0 -1
  468. package/dist/chunks/tag-D_M1s2qS.js +0 -87
  469. package/dist/chunks/tag-D_M1s2qS.js.map +0 -1
  470. package/dist/chunks/text-CIXH8rmT.js.map +0 -1
  471. package/dist/chunks/textarea--4FRL3Pb.js.map +0 -1
  472. package/dist/chunks/timeseries-D1xjRXfk.js +0 -339
  473. package/dist/chunks/timeseries-D1xjRXfk.js.map +0 -1
  474. package/dist/chunks/toolbar-WA_oZgu-.js +0 -37
  475. package/dist/chunks/toolbar-WA_oZgu-.js.map +0 -1
  476. package/dist/chunks/tooltip-OcwO0VUT.js +0 -154
  477. package/dist/chunks/tooltip-OcwO0VUT.js.map +0 -1
  478. package/dist/chunks/tooltip-root-DzahJDVj.js +0 -60
  479. package/dist/chunks/tooltip-root-DzahJDVj.js.map +0 -1
  480. package/dist/chunks/zh-CN-Bm6UPIbW.js.map +0 -1
  481. package/dist/components/data-table.js.map +0 -1
  482. package/dist/components/label.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kaeso.js","names":["BaseRadioGroup","BaseRadioGroup","BaseRadio","__icon_Tick02Icon","cn","useUiText","useLocale","Icon","Tooltip","SearchInput","RadioCircle","Select","CommandList","PickerTrigger","PickerPopover","Badge","KAESO_KEY_DISPLAY_VARIANTS","ProviderBadge","StatusCode","providerName","KAESO_KEY_DISPLAY_DEFAULT_VARIANTS","ProviderCard","KAESO_IDENTITY_DEFAULT_VARIANTS","KeyDisplay","KAESO_IDENTITY_VARIANTS","ModelLabel","CapabilityIcons","RequestTimeline","rightsCascade","groupCascade","KAESO_RIGHTS_MATRIX_VARIANTS","RightsMatrix","KAESO_RIGHTS_MATRIX_DEFAULT_VARIANTS","KAESO_ROLE_PICKER_VARIANTS","KAESO_ROLE_PICKER_DEFAULT_VARIANTS","RolePicker","ariaLabel","t","baseId","useId","builtIn","custom","hasCustom","roles","r","appearance","fullWidth","className","label","name","disabled","value","onValueChange","sections","RadioGroup","v","s","Fragment","id","si","i","off","row","KAESO_EFFECTIVE_ACCESS_VARIANTS","KAESO_EFFECTIVE_ACCESS_DEFAULT_VARIANTS","EffectiveAccess","empty","groups","g","sources","granted","words","Row","action","quiet","term","count","KAESO_PROVIDER_PICKER_VARIANTS","KAESO_PROVIDER_PICKER_DEFAULT_VARIANTS","ALL","SEARCH_ABOVE","ProviderTiles","locale","query","setQuery","useState","wanted","nameOf","p","byName","a","b","shown","providers","k","connected","rest","searchable","autoFocus","section","Radio","onChoose","useProviderGroups","useMemo","item","allLabel","ProviderPicker","force","props","field","useField","fc","useFieldControl","open","setOpen","listLabel","search","placeholder","list","height","description","error","control","withField","chosen","size","KAESO_GRANT_SUMMARY_VARIANTS","KAESO_GRANT_SUMMARY_DEFAULT_VARIANTS","GrantSummary","items","Tick02Icon","footer","KAESO_CLIENT_BUTTON_VARIANTS","KAESO_CLIENT_BUTTON_DEFAULT_VARIANTS","CLIENT_MARKS","ClientButton","client","ConversationView","EnvironmentSnippet","KAESO_CONVERSATION_DEFAULT_VARIANTS","KAESO_CONVERSATION_VARIANTS","KAESO_MOMENTS_DEFAULT_VARIANTS","KAESO_MOMENTS_VARIANTS","KAESO_USAGE_BREAKDOWN_DEFAULT_VARIANTS","KAESO_USAGE_BREAKDOWN_VARIANTS","KAESO_USAGE_DEFAULT_VARIANTS","KAESO_USAGE_VARIANTS","LimitMeter","SecretReveal","UsageBreakdown","sdkSnippets"],"sources":["../../src/components/kaeso/role-picker.tsx","../../src/components/kaeso/effective-access.tsx","../../src/components/kaeso/provider-picker.tsx","../../src/components/kaeso/grant-summary.tsx","../../src/components/kaeso/client-button.tsx"],"sourcesContent":["import { forwardRef, Fragment, useId } from \"react\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { cn } from \"../../utils/cn.js\";\nimport { RadioCircle } from \"../radio/radio.js\";\nimport { Select } from \"../select/select.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_ROLE_PICKER_VARIANTS = {\n appearance: {\n list: {\n classes: \"flex flex-col gap-16\",\n },\n select: { classes: \"\" },\n },\n} as const;\nexport const KAESO_ROLE_PICKER_DEFAULT_VARIANTS = { appearance: \"list\" } as const;\n\nexport interface RoleOption {\n value: string;\n label: string;\n description?: string | undefined;\n custom?: boolean | undefined;\n hint?: string | undefined;\n disabled?: boolean | undefined;\n disabledReason?: string | undefined;\n}\n\nexport interface RolePickerProps {\n roles: RoleOption[];\n value?: string | null | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n appearance?: keyof typeof KAESO_ROLE_PICKER_VARIANTS.appearance | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n label?: string | undefined;\n \"aria-label\"?: string | undefined;\n fullWidth?: boolean | undefined;\n size?: \"sm\" | \"md\" | undefined;\n className?: string | undefined;\n}\n\nexport const RolePicker = /* @__PURE__ */ forwardRef<HTMLDivElement, RolePickerProps>(function RolePicker(\n { roles, value, onValueChange, appearance = \"list\", disabled, name, label, \"aria-label\": ariaLabel, fullWidth, size = \"md\", className },\n ref,\n) {\n const t = useUiText();\n const baseId = useId();\n const builtIn = t(\"rolePicker.builtInRoles\", \"Built-in roles\");\n const custom = t(\"rolePicker.customRoles\", \"Custom roles\");\n const hasCustom = roles.some((r) => r.custom);\n if (appearance === \"select\") {\n return (\n <div ref={ref} className={cn(\"min-w-0\", fullWidth && \"w-full\", className)}>\n <Select\n {...(label ? { label } : {})}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(name ? { name } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(fullWidth ? { fullWidth } : {})}\n size={size}\n value={value ?? null}\n {...(onValueChange ? { onValueChange } : {})}\n options={[...roles.filter((r) => !r.custom), ...roles.filter((r) => r.custom)].map((r) => ({\n value: r.value,\n label: r.label,\n textValue: r.label,\n description: r.disabled && r.disabledReason ? r.disabledReason : r.description,\n ...(hasCustom ? { group: r.custom ? custom : builtIn } : {}),\n ...(r.disabled ? { disabled: true } : {}),\n }))}\n />\n </div>\n );\n }\n const sections = hasCustom\n ? [\n { caption: builtIn, items: roles.filter((r) => !r.custom) },\n { caption: custom, items: roles.filter((r) => r.custom) },\n ]\n : [{ caption: undefined, items: roles }];\n return (\n <BaseRadioGroup\n ref={ref}\n {...(value != null ? { value } : {})}\n {...(onValueChange ? { onValueChange: (v: unknown) => onValueChange(String(v)) } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n aria-label={ariaLabel ?? label ?? t(\"rolePicker.role\", \"Role\")}\n className={cn(KAESO_ROLE_PICKER_VARIANTS.appearance.list.classes, className)}\n >\n {sections\n .filter((s) => s.items.length > 0)\n .map((s, si) => (\n <Fragment key={s.caption ?? \"all\"}>\n <div className=\"flex flex-col gap-8\">\n {s.caption && <span className=\"px-4 text-caption font-medium text-fg-secondary\">{s.caption}</span>}\n <div className=\"flex flex-col overflow-hidden rounded-group bg-raised shadow-xs\">\n {s.items.map((r, i) => {\n const id = `${baseId}-${si}-${i}`;\n const off = disabled || r.disabled;\n const row = (\n <label\n htmlFor={id}\n className={cn(\n \"flex min-h-56 cursor-pointer items-center gap-16 px-16 py-12 transition-control hover:bg-fill-1 not-first:hairline-t\",\n off && \"cursor-not-allowed hover:bg-transparent\",\n )}\n >\n <span className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <span className=\"flex min-w-0 items-baseline gap-8\">\n <span id={`${id}-name`} className={cn(\"min-w-0 wrap-break-word text-body font-medium\", off ? \"text-fg-disabled\" : \"text-fg\")}>\n {r.label}\n </span>\n {r.hint && <span className=\"ml-auto shrink-0 text-small text-fg-tertiary tabular\">{r.hint}</span>}\n </span>\n {r.description && (\n <span id={`${id}-desc`} className={cn(\"text-small text-pretty\", off ? \"text-fg-tertiary\" : \"text-fg-secondary\")}>\n {r.description}\n </span>\n )}\n {r.disabled && r.disabledReason && <span className=\"text-caption text-fg-tertiary\">{r.disabledReason}</span>}\n </span>\n <RadioCircle\n id={id}\n value={r.value}\n {...(r.disabled ? { disabled: true } : {})}\n aria-labelledby={`${id}-name`}\n {...(r.description ? { \"aria-describedby\": `${id}-desc` } : {})}\n />\n </label>\n );\n return r.disabled && r.disabledReason ? (\n <Tooltip key={r.value} content={r.disabledReason}>\n {row}\n </Tooltip>\n ) : (\n <Fragment key={r.value}>{row}</Fragment>\n );\n })}\n </div>\n </div>\n </Fragment>\n ))}\n </BaseRadioGroup>\n );\n});\nif (process.env.NODE_ENV !== \"production\") RolePicker.displayName = \"RolePicker\";\n","import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Badge } from \"../badge/badge.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport type { RightSource, RightsGroup } from \"./rights.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_EFFECTIVE_ACCESS_VARIANTS = {\n layout: {\n rows: {\n classes: \"flex flex-col @auth:grid @auth:grid-cols-term @auth:gap-x-16\",\n },\n },\n} as const;\nexport const KAESO_EFFECTIVE_ACCESS_DEFAULT_VARIANTS = { layout: \"rows\" } as const;\n\nexport interface EffectiveAccessProps {\n groups: RightsGroup[];\n sources?: RightSource[] | undefined;\n action?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport const EffectiveAccess = /* @__PURE__ */ forwardRef<HTMLDivElement, EffectiveAccessProps>(function EffectiveAccess(\n { groups, sources, action, \"aria-label\": ariaLabel, className },\n ref,\n) {\n const t = useUiText();\n const empty = groups.filter((g) => !g.rights.some((r) => r.granted));\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={ariaLabel ?? t(\"effectiveAccess.access\", \"Access\")}\n className={cn(\"@container flex min-w-0 flex-col gap-12\", className)}\n >\n {!!sources?.length && (\n <span className=\"flex flex-wrap items-center gap-4\">\n <span className=\"mr-4 text-small text-fg-secondary\">{t(\"effectiveAccess.from\", \"From\")}</span>\n {sources.map((s) =>\n s.detail ? (\n <Tooltip key={s.label} content={s.detail}>\n <Badge tabIndex={0} className=\"focus-ring\">\n {s.label}\n </Badge>\n </Tooltip>\n ) : (\n <Badge key={s.label}>{s.label}</Badge>\n ),\n )}\n </span>\n )}\n <dl className={KAESO_EFFECTIVE_ACCESS_VARIANTS.layout.rows.classes}>\n {groups\n .filter((g) => g.rights.some((r) => r.granted))\n .map((g) => {\n const granted = g.rights.filter((r) => r.granted);\n const words =\n granted.length === g.rights.length\n ? t(\"effectiveAccess.everyRight\", \"Every right\")\n : granted.map((r) => r.label ?? r.code).join(t(\"effectiveAccess.listSeparator\", \", \"));\n return (\n <Row\n key={g.label}\n term={g.label}\n count={t(\"effectiveAccess.grantedOfTotal\", \"{granted} of {total}\", { granted: granted.length, total: g.rights.length })}\n >\n {words}\n </Row>\n );\n })}\n {empty.length > 0 && (\n <Row term={empty.length === groups.length ? t(\"effectiveAccess.noRights\", \"No rights\") : t(\"effectiveAccess.noRightsIn\", \"No rights in\")} quiet>\n {empty.map((g) => g.label).join(t(\"effectiveAccess.listSeparator\", \", \"))}\n </Row>\n )}\n </dl>\n {action && <div className=\"flex\">{action}</div>}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") EffectiveAccess.displayName = \"EffectiveAccess\";\n\nfunction Row({ term, count, quiet, children }: { term: string; count?: string | undefined; quiet?: boolean | undefined; children: ReactNode }) {\n return (\n <div className=\"flex min-h-40 flex-col gap-2 py-8 not-first:hairline-t @auth:col-span-2 @auth:grid @auth:grid-cols-subgrid @auth:items-baseline @auth:gap-16\">\n <dt className={cn(\"shrink-0 text-small font-medium @auth:min-w-140\", quiet ? \"text-fg-secondary\" : \"text-fg\")}>{term}</dt>\n <dd className=\"flex min-w-0 flex-1 items-baseline gap-12\">\n <span className={cn(\"min-w-0 flex-1 text-small text-pretty\", quiet ? \"text-fg-tertiary\" : \"text-fg-secondary\")}>{children}</span>\n {count && <span className=\"shrink-0 text-small text-fg-tertiary tabular\">{count}</span>}\n </dd>\n </div>\n );\n}\n","import { forwardRef, useMemo, useState, type ReactNode, type Ref } from \"react\";\nimport { Radio as BaseRadio } from \"@base-ui/react/radio\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { cn } from \"../../utils/cn.js\";\nimport { SearchInput } from \"../input/input.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\nimport { CommandList, type CommandListGroup } from \"../command-list/command-list.js\";\nimport { PickerPopover, PickerTrigger } from \"../command-list/picker-popover.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { ProviderBadge, providerName } from \"./identity.js\";\n\nexport const KAESO_PROVIDER_PICKER_VARIANTS = {\n appearance: {\n list: { classes: \"\" },\n select: { classes: \"\" },\n grid: { classes: \"\" },\n },\n} as const;\nexport const KAESO_PROVIDER_PICKER_DEFAULT_VARIANTS = { appearance: \"list\" } as const;\n\nexport interface ProviderPickerOption {\n id: string;\n name?: string | undefined;\n connected?: boolean | undefined;\n hint?: ReactNode | undefined;\n keywords?: readonly string[] | undefined;\n disabled?: boolean | undefined;\n}\n\nexport interface ProviderPickerProps extends FieldWrapProps {\n providers: ProviderPickerOption[];\n value?: string | null | undefined;\n onValueChange?: ((id: string | null) => void) | undefined;\n onChoose?: ((id: string) => void) | undefined;\n appearance?: keyof typeof KAESO_PROVIDER_PICKER_VARIANTS.appearance | undefined;\n allLabel?: string | undefined;\n placeholder?: string | undefined;\n size?: \"sm\" | \"md\" | undefined;\n disabled?: boolean | undefined;\n autoFocus?: boolean | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst ALL = \"\";\nconst SEARCH_ABOVE = 9;\n\nfunction ProviderTiles({\n providers,\n value,\n onValueChange,\n onChoose,\n autoFocus,\n label,\n className,\n}: {\n providers: ProviderPickerOption[];\n value: string | null | undefined;\n onValueChange: ((id: string | null) => void) | undefined;\n onChoose: ((id: string) => void) | undefined;\n autoFocus: boolean | undefined;\n label: string;\n className: string | undefined;\n}) {\n const t = useUiText();\n const locale = useLocale();\n const [query, setQuery] = useState(\"\");\n const wanted = query.trim().toLowerCase();\n const nameOf = (p: ProviderPickerOption) => providerName(p.id, p.name);\n const byName = (a: ProviderPickerOption, b: ProviderPickerOption) => nameOf(a).localeCompare(nameOf(b), locale, { sensitivity: \"base\" });\n const shown = providers.filter((p) => !wanted || [p.id, nameOf(p), ...(p.keywords ?? [])].some((k) => k.toLowerCase().includes(wanted)));\n const connected = shown.filter((p) => p.connected).sort(byName);\n const rest = shown.filter((p) => !p.connected).sort(byName);\n const sections =\n connected.length && rest.length\n ? [\n { id: \"connected\", label: t(\"providerPicker.connected\", \"Connected\"), items: connected },\n { id: \"other\", label: t(\"providerPicker.other\", \"Other providers\"), items: rest },\n ]\n : [{ id: \"providers\", label: undefined, items: [...connected, ...rest] }];\n const searchable = providers.length > SEARCH_ABOVE;\n return (\n <div className={cn(\"flex min-w-0 flex-col gap-16\", className)}>\n {searchable && (\n <SearchInput\n aria-label={t(\"providerPicker.search\", \"Search providers\")}\n placeholder={t(\"providerPicker.search\", \"Search providers\")}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n {...(autoFocus ? { autoFocus: true } : {})}\n />\n )}\n {shown.length === 0 ? (\n <p className=\"py-24 text-center text-body text-fg-secondary\">{t(\"providerPicker.noMatch\", \"No providers match\")}</p>\n ) : (\n <BaseRadioGroup\n aria-label={label}\n value={value ?? null}\n onValueChange={(v: unknown) => onValueChange?.(v ? String(v) : null)}\n className=\"flex flex-col gap-20\"\n >\n {sections.map((section, si) => (\n <div key={section.id} {...(section.label ? { role: \"group\", \"aria-label\": section.label } : {})} className=\"flex flex-col gap-8\">\n {section.label && (\n <div aria-hidden className=\"flex items-center justify-between text-caption font-medium text-fg-secondary\">\n <span>{section.label}</span>\n <span className=\"font-regular text-fg-tertiary tabular\">{section.items.length}</span>\n </div>\n )}\n <div className=\"grid grid-cols-2 gap-8 sm:grid-cols-3\">\n {section.items.map((p, i) => (\n <BaseRadio.Root\n key={p.id}\n value={p.id}\n {...(p.disabled ? { disabled: true } : {})}\n {...(autoFocus && !searchable && si === 0 && i === 0 && !value ? { autoFocus: true } : {})}\n onClick={() => onChoose?.(p.id)}\n className={cn(\n \"group/tile flex min-h-64 min-w-0 cursor-pointer items-center gap-10 rounded-group bg-raised px-10 py-12 sm:gap-12 sm:px-12 text-left shadow-control transition-control focus-ring\",\n \"hover:shadow-control-hover data-checked:ring-step data-checked:bg-fill-1 data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n )}\n >\n <span aria-hidden className=\"flex\">\n <ProviderBadge provider={p.id} name={p.name} size=\"lg\" />\n </span>\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-body font-medium text-fg\">{nameOf(p)}</span>\n {p.hint !== undefined && <span className=\"truncate text-small text-fg-secondary\">{p.hint}</span>}\n </span>\n </BaseRadio.Root>\n ))}\n </div>\n </div>\n ))}\n </BaseRadioGroup>\n )}\n </div>\n );\n}\n\nexport function useProviderGroups(providers: ProviderPickerOption[], allLabel?: string | undefined): CommandListGroup[] {\n const t = useUiText();\n const locale = useLocale();\n return useMemo(() => {\n const nameOf = (p: ProviderPickerOption) => providerName(p.id, p.name);\n const byName = (a: ProviderPickerOption, b: ProviderPickerOption) => nameOf(a).localeCompare(nameOf(b), locale, { sensitivity: \"base\" });\n const item = (p: ProviderPickerOption) => ({\n value: p.id,\n label: nameOf(p),\n keywords: [p.id, ...(p.keywords ?? [])],\n leading: (\n <span aria-hidden className=\"flex\">\n <ProviderBadge provider={p.id} name={p.name} />\n </span>\n ),\n ...(p.hint !== undefined ? { meta: p.hint } : {}),\n ...(p.disabled ? { disabled: true } : {}),\n });\n const connected = providers.filter((p) => p.connected).sort(byName);\n const rest = providers.filter((p) => !p.connected).sort(byName);\n const groups: CommandListGroup[] = [];\n if (allLabel) groups.push({ id: \"all\", items: [{ value: ALL, label: allLabel }] });\n if (connected.length && rest.length) {\n groups.push({ id: \"connected\", label: t(\"providerPicker.connected\", \"Connected\"), count: connected.length, items: connected.map(item) });\n groups.push({ id: \"other\", label: t(\"providerPicker.other\", \"Other providers\"), count: rest.length, items: rest.map(item) });\n } else groups.push({ id: \"providers\", items: [...connected, ...rest].map(item) });\n return groups;\n }, [providers, allLabel, t, locale]);\n}\n\nexport const ProviderPicker = /* @__PURE__ */ forwardRef<HTMLElement, ProviderPickerProps>(function ProviderPicker(props, ref) {\n const {\n providers,\n value,\n onValueChange,\n onChoose,\n appearance = \"list\",\n allLabel,\n placeholder,\n size = \"md\",\n disabled,\n autoFocus,\n \"aria-label\": ariaLabel,\n className,\n \"data-force\": force,\n label,\n description,\n error,\n optional,\n required,\n layout,\n } = props;\n const t = useUiText();\n const field = useField();\n const fc = useFieldControl(props);\n const [open, setOpen] = useState(false);\n const groups = useProviderGroups(providers, appearance === \"select\" ? allLabel : undefined);\n const listLabel = ariaLabel ?? (typeof label === \"string\" ? label : t(\"providerPicker.providers\", \"Providers\"));\n const search = placeholder ?? t(\"providerPicker.search\", \"Search providers\");\n const empty = t(\"providerPicker.noMatch\", \"No providers match\");\n const list = (height?: \"inline\") => (\n <CommandList\n groups={groups}\n aria-label={listLabel}\n value={value ?? (allLabel ? ALL : null)}\n onSelect={(id) => {\n onValueChange?.(id === ALL ? null : id);\n setOpen(false);\n }}\n placeholder={search}\n emptyText={empty}\n {...(height ? { height } : {})}\n {...(autoFocus || appearance === \"select\" ? { autoFocus: true } : {})}\n {...(height && force ? { \"data-force\": force } : {})}\n {...(height && className && !(label || description || error) ? { className } : {})}\n {...(height ? { ref: ref as Ref<HTMLInputElement> } : {})}\n />\n );\n if (appearance === \"grid\") {\n const control = (\n <ProviderTiles\n providers={providers}\n value={value}\n onValueChange={onValueChange}\n onChoose={onChoose}\n autoFocus={autoFocus}\n label={listLabel}\n className={!(label || description || error) ? className : undefined}\n />\n );\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId, disabled, className }, control);\n }\n if (appearance === \"list\") {\n const control = list(\"inline\");\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId, disabled, className }, control);\n }\n const chosen = providers.find((p) => p.id === value);\n const control = (\n <PickerPopover\n title={listLabel}\n width=\"sm\"\n open={open}\n onOpenChange={setOpen}\n trigger={\n <PickerTrigger\n ref={ref as Ref<HTMLButtonElement>}\n size={size === \"sm\" ? \"sm\" : \"md\"}\n {...fc.controlProps}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(disabled ? { disabled } : {})}\n {...(force ? { \"data-force\": force } : {})}\n placeholder={placeholder ?? t(\"providerPicker.choose\", \"Choose a provider\")}\n {...(!(label || description || error) && className ? { className } : {})}\n >\n {chosen ? (\n <span className=\"flex min-w-0 items-center gap-8\">\n <span aria-hidden className=\"flex\">\n <ProviderBadge provider={chosen.id} name={chosen.name} />\n </span>\n <span className=\"truncate\">{providerName(chosen.id, chosen.name)}</span>\n </span>\n ) : (\n allLabel\n )}\n </PickerTrigger>\n }\n >\n {list()}\n </PickerPopover>\n );\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId, disabled, className }, control);\n});\nif (process.env.NODE_ENV !== \"production\") ProviderPicker.displayName = \"ProviderPicker\";\n","import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tick02Icon as __icon_Tick02Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\n\nexport const KAESO_GRANT_SUMMARY_VARIANTS = {} as const;\nexport const KAESO_GRANT_SUMMARY_DEFAULT_VARIANTS = {} as const;\n\nexport interface GrantSummaryProps {\n items: readonly ReactNode[];\n footer?: ReactNode | undefined;\n action?: ReactNode | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n}\n\n/** What an agent or a key may do, one short line per item after a check mark, on a group surface, with an optional note and action below. */\nexport const GrantSummary = /* @__PURE__ */ forwardRef<HTMLDivElement, GrantSummaryProps>(function GrantSummary(\n { items, footer, action, \"aria-label\": ariaLabel, className },\n ref,\n) {\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-16 rounded-group bg-raised p-16 shadow-xs\", className)}>\n <ul aria-label={ariaLabel} className=\"flex flex-col gap-10\">\n {items.map((item, i) => (\n <li key={i} className=\"flex items-start gap-10 text-body text-fg\">\n <Icon icon={__icon_Tick02Icon} size=\"sm\" className=\"mt-2 text-success-text\" />\n <span className=\"min-w-0 text-pretty\">{item}</span>\n </li>\n ))}\n </ul>\n {(footer || action) && (\n <div className=\"flex items-center justify-between gap-12 pt-12 hairline-t\">\n <p className=\"min-w-0 text-small text-fg-tertiary text-pretty\">{footer}</p>\n {action && <div className=\"shrink-0\">{action}</div>}\n </div>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") GrantSummary.displayName = \"GrantSummary\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\n\nexport const KAESO_CLIENT_BUTTON_VARIANTS = {} as const;\nexport const KAESO_CLIENT_BUTTON_DEFAULT_VARIANTS = {} as const;\n\n/** The marks of the agent clients Kaeso connects to, on a 24px grid, drawn in the text colour. */\nexport const CLIENT_MARKS = {\n claude:\n \"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z\",\n cursor:\n \"M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23\",\n \"github-copilot\":\n \"M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z\",\n} as const;\n\nexport type ClientMark = keyof typeof CLIENT_MARKS;\n\nexport interface ClientButtonProps {\n client: ClientMark;\n \"aria-label\": string;\n onClick?: (() => void) | undefined;\n className?: string | undefined;\n}\n\n/** An agent client's mark on a raised tile, as a button that opens how to connect it. Its tooltip is its label. */\nexport const ClientButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, ClientButtonProps>(function ClientButton({ client, \"aria-label\": label, onClick, className }, ref) {\n return (\n <Tooltip content={label}>\n <button\n ref={ref}\n type=\"button\"\n aria-label={label}\n data-client={client}\n onClick={onClick}\n className={cn(\n \"inline-flex size-32 shrink-0 items-center justify-center rounded-org text-fg material-secondary transition-control focus-ring\",\n className,\n )}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" fillRule=\"evenodd\" aria-hidden focusable=\"false\" className=\"size-16\">\n <path d={CLIENT_MARKS[client]} />\n </svg>\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ClientButton.displayName = \"ClientButton\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"kaeso.js","names":["BaseRadioGroup","BaseRadioGroup","BaseRadio","__icon_Tick02Icon","cn","useUiText","useLocale","Icon","Tooltip","SearchInput","RadioCircle","Select","CommandList","PickerTrigger","PickerPopover","Badge","KAESO_KEY_DISPLAY_VARIANTS","ProviderBadge","StatusCode","providerName","KAESO_KEY_DISPLAY_DEFAULT_VARIANTS","ProviderCard","KAESO_IDENTITY_DEFAULT_VARIANTS","KeyDisplay","KAESO_IDENTITY_VARIANTS","ModelLabel","CapabilityIcons","RequestTimeline","rightsCascade","groupCascade","KAESO_RIGHTS_MATRIX_VARIANTS","RightsMatrix","KAESO_RIGHTS_MATRIX_DEFAULT_VARIANTS","KAESO_ROLE_PICKER_VARIANTS","KAESO_ROLE_PICKER_DEFAULT_VARIANTS","RolePicker","ariaLabel","t","baseId","useId","builtIn","custom","hasCustom","roles","r","appearance","fullWidth","className","label","name","disabled","value","onValueChange","sections","RadioGroup","v","s","Fragment","id","si","i","off","KAESO_EFFECTIVE_ACCESS_VARIANTS","KAESO_EFFECTIVE_ACCESS_DEFAULT_VARIANTS","EffectiveAccess","empty","groups","g","sources","granted","words","Row","action","quiet","term","count","KAESO_PROVIDER_PICKER_VARIANTS","KAESO_PROVIDER_PICKER_DEFAULT_VARIANTS","ALL","SEARCH_ABOVE","ProviderTiles","locale","query","setQuery","useState","wanted","nameOf","p","byName","a","b","shown","providers","k","connected","rest","searchable","autoFocus","section","Radio","onChoose","useProviderGroups","useMemo","item","allLabel","ProviderPicker","force","props","field","useField","fc","useFieldControl","open","setOpen","listLabel","search","placeholder","list","height","description","error","control","withField","chosen","size","KAESO_GRANT_SUMMARY_VARIANTS","KAESO_GRANT_SUMMARY_DEFAULT_VARIANTS","GrantSummary","items","Tick02Icon","footer","KAESO_CLIENT_BUTTON_VARIANTS","KAESO_CLIENT_BUTTON_DEFAULT_VARIANTS","CLIENT_MARKS","ClientButton","client","ConversationView","EnvironmentSnippet","KAESO_CONVERSATION_DEFAULT_VARIANTS","KAESO_CONVERSATION_VARIANTS","KAESO_MOMENTS_DEFAULT_VARIANTS","KAESO_MOMENTS_VARIANTS","KAESO_USAGE_BREAKDOWN_DEFAULT_VARIANTS","KAESO_USAGE_BREAKDOWN_VARIANTS","KAESO_USAGE_DEFAULT_VARIANTS","KAESO_USAGE_VARIANTS","LimitMeter","SecretReveal","UsageBreakdown","sdkSnippets"],"sources":["../../src/components/kaeso/role-picker.tsx","../../src/components/kaeso/effective-access.tsx","../../src/components/kaeso/provider-picker.tsx","../../src/components/kaeso/grant-summary.tsx","../../src/components/kaeso/client-button.tsx"],"sourcesContent":["import { forwardRef, Fragment, useId } from \"react\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { cn } from \"../../utils/cn.js\";\nimport { RadioCircle } from \"../radio/radio.js\";\nimport { Select } from \"../select/select.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_ROLE_PICKER_VARIANTS = {\n appearance: {\n list: {\n classes: \"flex flex-col gap-16\",\n },\n select: { classes: \"\" },\n },\n} as const;\nexport const KAESO_ROLE_PICKER_DEFAULT_VARIANTS = { appearance: \"list\" } as const;\n\nexport interface RoleOption {\n value: string;\n label: string;\n description?: string | undefined;\n custom?: boolean | undefined;\n hint?: string | undefined;\n disabled?: boolean | undefined;\n disabledReason?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport interface RolePickerProps {\n roles: RoleOption[];\n value?: string | null | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n appearance?: keyof typeof KAESO_ROLE_PICKER_VARIANTS.appearance | undefined;\n disabled?: boolean | undefined;\n name?: string | undefined;\n label?: string | undefined;\n \"aria-label\"?: string | undefined;\n fullWidth?: boolean | undefined;\n size?: \"sm\" | \"md\" | undefined;\n className?: string | undefined;\n}\n\nexport const RolePicker = /* @__PURE__ */ forwardRef<HTMLDivElement, RolePickerProps>(function RolePicker(\n { roles, value, onValueChange, appearance = \"list\", disabled, name, label, \"aria-label\": ariaLabel, fullWidth, size = \"md\", className },\n ref,\n) {\n const t = useUiText();\n const baseId = useId();\n const builtIn = t(\"rolePicker.builtInRoles\", \"Built-in roles\");\n const custom = t(\"rolePicker.customRoles\", \"Custom roles\");\n const hasCustom = roles.some((r) => r.custom);\n if (appearance === \"select\") {\n return (\n <div ref={ref} className={cn(\"min-w-0\", fullWidth && \"w-full\", className)}>\n <Select\n {...(label ? { label } : {})}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(name ? { name } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(fullWidth ? { fullWidth } : {})}\n size={size}\n value={value ?? null}\n {...(onValueChange ? { onValueChange } : {})}\n options={[...roles.filter((r) => !r.custom), ...roles.filter((r) => r.custom)].map((r) => ({\n value: r.value,\n label: r.label,\n textValue: r.label,\n description: r.disabled && r.disabledReason ? r.disabledReason : r.description,\n ...(hasCustom ? { group: r.custom ? custom : builtIn } : {}),\n ...(r.disabled ? { disabled: true } : {}),\n }))}\n />\n </div>\n );\n }\n const sections = hasCustom\n ? [\n { caption: builtIn, items: roles.filter((r) => !r.custom) },\n { caption: custom, items: roles.filter((r) => r.custom) },\n ]\n : [{ caption: undefined, items: roles }];\n return (\n <BaseRadioGroup\n ref={ref}\n {...(value != null ? { value } : {})}\n {...(onValueChange ? { onValueChange: (v: unknown) => onValueChange(String(v)) } : {})}\n {...(disabled !== undefined ? { disabled } : {})}\n {...(name ? { name } : {})}\n aria-label={ariaLabel ?? label ?? t(\"rolePicker.role\", \"Role\")}\n className={cn(KAESO_ROLE_PICKER_VARIANTS.appearance.list.classes, className)}\n >\n {sections\n .filter((s) => s.items.length > 0)\n .map((s, si) => (\n <Fragment key={s.caption ?? \"all\"}>\n <div className=\"flex flex-col gap-8\">\n {s.caption && <span className=\"text-caption font-medium text-fg-secondary\">{s.caption}</span>}\n <div className=\"flex flex-col overflow-hidden rounded-group bg-raised shadow-xs\">\n {s.items.map((r, i) => {\n const id = `${baseId}-${si}-${i}`;\n const off = disabled || r.disabled;\n return (\n <label\n key={r.value}\n htmlFor={id}\n data-choice-row=\"\"\n {...(r[\"data-force\"] ? { \"data-force\": r[\"data-force\"] } : {})}\n className={cn(\n \"flex min-h-56 cursor-pointer items-center gap-16 px-20 py-12 transition-control not-first:hairline-t\",\n off ? \"cursor-not-allowed\" : \"hover:bg-raised-hover active:bg-raised-pressed focus-ring-card-row-within\",\n )}\n >\n <span className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <span className=\"flex min-w-0 items-baseline gap-8\">\n <span id={`${id}-name`} className={cn(\"min-w-0 wrap-break-word text-body-lg font-medium\", off ? \"text-fg-disabled\" : \"text-fg\")}>\n {r.label}\n </span>\n {r.hint && <span className={cn(\"ml-auto shrink-0 text-small tabular\", off ? \"text-fg-disabled\" : \"text-fg-tertiary\")}>{r.hint}</span>}\n </span>\n {r.description && (\n <span id={`${id}-desc`} className={cn(\"text-small text-pretty\", off ? \"text-fg-disabled\" : \"text-fg-secondary\")}>\n {r.description}\n </span>\n )}\n {r.disabled && r.disabledReason && (\n <span id={`${id}-reason`} className=\"text-small text-pretty text-fg-secondary\">\n {r.disabledReason}\n </span>\n )}\n </span>\n <RadioCircle\n id={id}\n value={r.value}\n {...(r.disabled ? { disabled: true } : {})}\n {...(r[\"data-force\"] ? { \"data-force\": r[\"data-force\"] } : {})}\n aria-labelledby={`${id}-name`}\n {...(r.description || (r.disabled && r.disabledReason)\n ? { \"aria-describedby\": [r.description && `${id}-desc`, r.disabled && r.disabledReason && `${id}-reason`].filter(Boolean).join(\" \") }\n : {})}\n />\n </label>\n );\n })}\n </div>\n </div>\n </Fragment>\n ))}\n </BaseRadioGroup>\n );\n});\nif (process.env.NODE_ENV !== \"production\") RolePicker.displayName = \"RolePicker\";\n","import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Badge } from \"../badge/badge.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\nimport type { RightSource, RightsGroup } from \"./rights.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_EFFECTIVE_ACCESS_VARIANTS = {\n layout: {\n rows: {\n classes: \"flex flex-col @auth:grid @auth:grid-cols-term @auth:gap-x-16\",\n },\n },\n} as const;\nexport const KAESO_EFFECTIVE_ACCESS_DEFAULT_VARIANTS = { layout: \"rows\" } as const;\n\nexport interface EffectiveAccessProps {\n groups: RightsGroup[];\n sources?: RightSource[] | undefined;\n action?: ReactNode | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n}\n\nexport const EffectiveAccess = /* @__PURE__ */ forwardRef<HTMLDivElement, EffectiveAccessProps>(function EffectiveAccess(\n { groups, sources, action, \"aria-label\": ariaLabel, className },\n ref,\n) {\n const t = useUiText();\n const empty = groups.filter((g) => !g.rights.some((r) => r.granted));\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={ariaLabel ?? t(\"effectiveAccess.access\", \"Access\")}\n className={cn(\"@container flex min-w-0 flex-col gap-12\", className)}\n >\n {!!sources?.length && (\n <span className=\"flex flex-wrap items-center gap-4\">\n <span className=\"mr-4 text-small text-fg-secondary\">{t(\"effectiveAccess.from\", \"From\")}</span>\n {sources.map((s) =>\n s.detail ? (\n <Tooltip key={s.label} content={s.detail}>\n <Badge tabIndex={0} className=\"cursor-help underline decoration-dotted underline-offset-2 focus-ring\">\n {s.label}\n </Badge>\n </Tooltip>\n ) : (\n <Badge key={s.label}>{s.label}</Badge>\n ),\n )}\n </span>\n )}\n <dl className={KAESO_EFFECTIVE_ACCESS_VARIANTS.layout.rows.classes}>\n {groups\n .filter((g) => g.rights.some((r) => r.granted))\n .map((g) => {\n const granted = g.rights.filter((r) => r.granted);\n const words =\n granted.length === g.rights.length\n ? t(\"effectiveAccess.everyRight\", \"Every right\")\n : granted.map((r) => r.label ?? r.code).join(t(\"effectiveAccess.listSeparator\", \", \"));\n return (\n <Row\n key={g.label}\n term={g.label}\n count={t(\"effectiveAccess.grantedOfTotal\", \"{granted} of {total}\", { granted: granted.length, total: g.rights.length })}\n >\n {words}\n </Row>\n );\n })}\n {empty.length > 0 && (\n <Row term={t(\"effectiveAccess.noRights\", \"No rights\")} quiet>\n {empty.map((g) => g.label).join(t(\"effectiveAccess.listSeparator\", \", \"))}\n </Row>\n )}\n </dl>\n {action && <div className=\"flex\">{action}</div>}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") EffectiveAccess.displayName = \"EffectiveAccess\";\n\nfunction Row({ term, count, quiet, children }: { term: string; count?: string | undefined; quiet?: boolean | undefined; children: ReactNode }) {\n return (\n <div className=\"flex min-h-40 flex-col gap-2 py-8 not-first:hairline-t @auth:col-span-2 @auth:grid @auth:grid-cols-subgrid @auth:items-baseline @auth:gap-16\">\n <dt className={cn(\"shrink-0 text-small font-medium @auth:min-w-140\", quiet ? \"text-fg-secondary\" : \"text-fg\")}>{term}</dt>\n <dd className=\"flex min-w-0 flex-1 items-baseline gap-12\">\n <span className=\"min-w-0 flex-1 text-small text-pretty text-fg-secondary\">{children}</span>\n {count && <span className=\"shrink-0 text-small text-fg-secondary tabular\">{count}</span>}\n </dd>\n </div>\n );\n}\n","import { forwardRef, useMemo, useState, type ReactNode, type Ref } from \"react\";\nimport { Radio as BaseRadio } from \"@base-ui/react/radio\";\nimport { RadioGroup as BaseRadioGroup } from \"@base-ui/react/radio-group\";\nimport { cn } from \"../../utils/cn.js\";\nimport { SearchInput } from \"../input/input.js\";\nimport { useLocale, useUiText } from \"../../i18n/context.js\";\nimport { CommandList, type CommandListGroup } from \"../command-list/command-list.js\";\nimport { PickerPopover, PickerTrigger } from \"../command-list/picker-popover.js\";\nimport { useField, useFieldControl, withField, type FieldWrapProps } from \"../field/field.js\";\nimport { ProviderBadge, providerName } from \"./identity.js\";\n\nexport const KAESO_PROVIDER_PICKER_VARIANTS = {\n appearance: {\n list: { classes: \"\" },\n select: { classes: \"\" },\n grid: { classes: \"\" },\n },\n} as const;\nexport const KAESO_PROVIDER_PICKER_DEFAULT_VARIANTS = { appearance: \"list\" } as const;\n\nexport interface ProviderPickerOption {\n id: string;\n name?: string | undefined;\n connected?: boolean | undefined;\n hint?: ReactNode | undefined;\n keywords?: readonly string[] | undefined;\n disabled?: boolean | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport interface ProviderPickerProps extends FieldWrapProps {\n providers: ProviderPickerOption[];\n value?: string | null | undefined;\n onValueChange?: ((id: string | null) => void) | undefined;\n onChoose?: ((id: string) => void) | undefined;\n appearance?: keyof typeof KAESO_PROVIDER_PICKER_VARIANTS.appearance | undefined;\n allLabel?: string | undefined;\n placeholder?: string | undefined;\n size?: \"sm\" | \"md\" | undefined;\n disabled?: boolean | undefined;\n autoFocus?: boolean | undefined;\n \"aria-label\"?: string | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst ALL = \"\";\nconst SEARCH_ABOVE = 9;\n\nfunction ProviderTiles({\n providers,\n disabled,\n value,\n onValueChange,\n onChoose,\n autoFocus,\n label,\n className,\n}: {\n providers: ProviderPickerOption[];\n disabled: boolean | undefined;\n value: string | null | undefined;\n onValueChange: ((id: string | null) => void) | undefined;\n onChoose: ((id: string) => void) | undefined;\n autoFocus: boolean | undefined;\n label: string;\n className: string | undefined;\n}) {\n const t = useUiText();\n const locale = useLocale();\n const [query, setQuery] = useState(\"\");\n const wanted = query.trim().toLowerCase();\n const nameOf = (p: ProviderPickerOption) => providerName(p.id, p.name);\n const byName = (a: ProviderPickerOption, b: ProviderPickerOption) => nameOf(a).localeCompare(nameOf(b), locale, { sensitivity: \"base\" });\n const shown = providers.filter((p) => !wanted || [p.id, nameOf(p), ...(p.keywords ?? [])].some((k) => k.toLowerCase().includes(wanted)));\n const connected = shown.filter((p) => p.connected).sort(byName);\n const rest = shown.filter((p) => !p.connected).sort(byName);\n const sections =\n connected.length && rest.length\n ? [\n { id: \"connected\", label: t(\"providerPicker.connected\", \"Connected\"), items: connected },\n { id: \"other\", label: t(\"providerPicker.other\", \"Other providers\"), items: rest },\n ]\n : [{ id: \"providers\", label: undefined, items: [...connected, ...rest] }];\n const searchable = providers.length > SEARCH_ABOVE;\n return (\n <div className={cn(\"flex min-w-0 flex-col gap-16\", className)}>\n {searchable && (\n <SearchInput\n aria-label={t(\"providerPicker.search\", \"Search providers\")}\n placeholder={t(\"providerPicker.search\", \"Search providers\")}\n {...(disabled ? { disabled: true } : {})}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n {...(autoFocus ? { autoFocus: true } : {})}\n />\n )}\n {shown.length === 0 ? (\n <p className=\"py-24 text-center text-body text-fg-secondary\">{t(\"providerPicker.noMatch\", \"No providers match\")}</p>\n ) : (\n <BaseRadioGroup\n aria-label={label}\n value={value ?? null}\n {...(disabled ? { disabled: true } : {})}\n onValueChange={(v: unknown) => onValueChange?.(v ? String(v) : null)}\n className=\"flex flex-col gap-20\"\n >\n {sections.map((section, si) => (\n <div key={section.id} {...(section.label ? { role: \"group\", \"aria-label\": section.label } : {})} className=\"flex flex-col gap-8\">\n {section.label && (\n <div aria-hidden className=\"flex items-center justify-between text-caption font-medium text-fg-secondary\">\n <span>{section.label}</span>\n <span className=\"font-regular text-fg-tertiary tabular\">{section.items.length}</span>\n </div>\n )}\n <div className=\"grid grid-cols-2 gap-8 sm:grid-cols-3\">\n {section.items.map((p, i) => (\n <BaseRadio.Root\n key={p.id}\n value={p.id}\n {...(p.disabled ? { disabled: true } : {})}\n {...(p[\"data-force\"] ? { \"data-force\": p[\"data-force\"] } : {})}\n {...(autoFocus && !searchable && si === 0 && i === 0 && !value ? { autoFocus: true } : {})}\n onClick={() => !disabled && !p.disabled && onChoose?.(p.id)}\n className={cn(\n \"group/tile flex min-h-64 min-w-0 cursor-pointer items-center gap-10 rounded-group bg-raised px-10 py-12 sm:gap-12 sm:px-12 text-left shadow-control transition-control focus-ring forced-checked\",\n \"hover:not-data-checked:bg-raised-hover hover:not-data-checked:shadow-control-hover active:bg-raised-pressed\",\n \"data-checked:bg-item-hover data-checked:ring-step data-disabled:cursor-not-allowed data-disabled:opacity-40\",\n )}\n >\n <span aria-hidden className=\"flex\">\n <ProviderBadge provider={p.id} name={p.name} size=\"lg\" />\n </span>\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-body font-medium text-fg\">{nameOf(p)}</span>\n {p.hint !== undefined && <span className=\"line-clamp-2 text-small text-pretty text-fg-secondary\">{p.hint}</span>}\n </span>\n </BaseRadio.Root>\n ))}\n </div>\n </div>\n ))}\n </BaseRadioGroup>\n )}\n </div>\n );\n}\n\nexport function useProviderGroups(providers: ProviderPickerOption[], allLabel?: string | undefined): CommandListGroup[] {\n const t = useUiText();\n const locale = useLocale();\n return useMemo(() => {\n const nameOf = (p: ProviderPickerOption) => providerName(p.id, p.name);\n const byName = (a: ProviderPickerOption, b: ProviderPickerOption) => nameOf(a).localeCompare(nameOf(b), locale, { sensitivity: \"base\" });\n const item = (p: ProviderPickerOption) => ({\n value: p.id,\n label: nameOf(p),\n keywords: [p.id, ...(p.keywords ?? [])],\n leading: (\n <span aria-hidden className=\"flex\">\n <ProviderBadge provider={p.id} name={p.name} />\n </span>\n ),\n ...(p.hint !== undefined ? { meta: p.hint } : {}),\n ...(p.disabled ? { disabled: true } : {}),\n });\n const connected = providers.filter((p) => p.connected).sort(byName);\n const rest = providers.filter((p) => !p.connected).sort(byName);\n const groups: CommandListGroup[] = [];\n if (allLabel) groups.push({ id: \"all\", items: [{ value: ALL, label: allLabel }] });\n if (connected.length && rest.length) {\n groups.push({ id: \"connected\", label: t(\"providerPicker.connected\", \"Connected\"), count: connected.length, items: connected.map(item) });\n groups.push({ id: \"other\", label: t(\"providerPicker.other\", \"Other providers\"), count: rest.length, items: rest.map(item) });\n } else groups.push({ id: \"providers\", items: [...connected, ...rest].map(item) });\n return groups;\n }, [providers, allLabel, t, locale]);\n}\n\nexport const ProviderPicker = /* @__PURE__ */ forwardRef<HTMLElement, ProviderPickerProps>(function ProviderPicker(props, ref) {\n const {\n providers,\n value,\n onValueChange,\n onChoose,\n appearance = \"list\",\n allLabel,\n placeholder,\n size = \"md\",\n disabled,\n autoFocus,\n \"aria-label\": ariaLabel,\n className,\n \"data-force\": force,\n label,\n description,\n error,\n optional,\n required,\n layout,\n } = props;\n const t = useUiText();\n const field = useField();\n const fc = useFieldControl(props);\n const [open, setOpen] = useState(false);\n const offered = useMemo(\n () => (disabled && appearance === \"list\" ? providers.map((p) => ({ ...p, disabled: true })) : providers),\n [providers, disabled, appearance],\n );\n const groups = useProviderGroups(offered, appearance === \"select\" ? allLabel : undefined);\n const listLabel = ariaLabel ?? (typeof label === \"string\" ? label : t(\"providerPicker.providers\", \"Providers\"));\n const search = placeholder ?? t(\"providerPicker.search\", \"Search providers\");\n const empty = t(\"providerPicker.noMatch\", \"No providers match\");\n const list = (height?: \"inline\") => (\n <CommandList\n groups={groups}\n aria-label={listLabel}\n value={value ?? (allLabel ? ALL : null)}\n onSelect={(id) => {\n onValueChange?.(id === ALL ? null : id);\n setOpen(false);\n }}\n placeholder={search}\n emptyText={empty}\n {...(height ? { height } : {})}\n {...(autoFocus || appearance === \"select\" ? { autoFocus: true } : {})}\n {...(height && force ? { \"data-force\": force } : {})}\n {...(height && className && !(label || description || error) ? { className } : {})}\n {...(height ? { ref: ref as Ref<HTMLInputElement> } : {})}\n />\n );\n if (appearance === \"grid\") {\n const control = (\n <ProviderTiles\n providers={providers}\n disabled={disabled}\n value={value}\n onValueChange={onValueChange}\n onChoose={onChoose}\n autoFocus={autoFocus}\n label={listLabel}\n className={!(label || description || error) ? className : undefined}\n />\n );\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId, disabled, className }, control);\n }\n if (appearance === \"list\") {\n const control = list(\"inline\");\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId, disabled, className }, control);\n }\n const chosen = providers.find((p) => p.id === value);\n const control = (\n <PickerPopover\n title={listLabel}\n width=\"sm\"\n open={open}\n onOpenChange={setOpen}\n trigger={\n <PickerTrigger\n ref={ref as Ref<HTMLButtonElement>}\n size={size === \"sm\" ? \"sm\" : \"md\"}\n {...fc.controlProps}\n {...(ariaLabel ? { \"aria-label\": ariaLabel } : {})}\n {...(disabled ? { disabled } : {})}\n {...(force ? { \"data-force\": force } : {})}\n placeholder={placeholder ?? t(\"providerPicker.choose\", \"Choose a provider\")}\n {...(!(label || description || error) && className ? { className } : {})}\n >\n {chosen ? (\n <span className=\"flex min-w-0 items-center gap-8\">\n <span aria-hidden className=\"flex\">\n <ProviderBadge provider={chosen.id} name={chosen.name} />\n </span>\n <span className=\"truncate\">{providerName(chosen.id, chosen.name)}</span>\n </span>\n ) : (\n allLabel\n )}\n </PickerTrigger>\n }\n >\n {list()}\n </PickerPopover>\n );\n if (field) return control;\n return withField({ label, description, error, optional, required, layout, id: fc.wrapId, disabled, className }, control);\n});\nif (process.env.NODE_ENV !== \"production\") ProviderPicker.displayName = \"ProviderPicker\";\n","import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tick02Icon as __icon_Tick02Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon } from \"../icon/icon.js\";\n\nexport const KAESO_GRANT_SUMMARY_VARIANTS = {} as const;\nexport const KAESO_GRANT_SUMMARY_DEFAULT_VARIANTS = {} as const;\n\nexport interface GrantSummaryProps {\n items: readonly ReactNode[];\n footer?: ReactNode | undefined;\n action?: ReactNode | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n}\n\n/** What an agent or a key may do, one short line per item after a check mark, on a group surface, with an optional note and action below. */\nexport const GrantSummary = /* @__PURE__ */ forwardRef<HTMLDivElement, GrantSummaryProps>(function GrantSummary(\n { items, footer, action, \"aria-label\": ariaLabel, className },\n ref,\n) {\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-16 rounded-group bg-raised p-20 shadow-xs\", className)}>\n <ul aria-label={ariaLabel} className=\"flex flex-col gap-10\">\n {items.map((item, i) => (\n <li key={i} className=\"flex items-start gap-10 text-body text-fg\">\n <Icon icon={__icon_Tick02Icon} size=\"sm\" className=\"mt-2 text-success-text\" />\n <span className=\"min-w-0 text-pretty\">{item}</span>\n </li>\n ))}\n </ul>\n {(footer || action) && (\n <div className=\"flex items-center justify-between gap-12 pt-12 hairline-t\">\n {footer && <p className=\"min-w-0 text-small text-fg-secondary text-pretty\">{footer}</p>}\n {action && <div className=\"ml-auto shrink-0\">{action}</div>}\n </div>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") GrantSummary.displayName = \"GrantSummary\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\n\nexport const KAESO_CLIENT_BUTTON_VARIANTS = {} as const;\nexport const KAESO_CLIENT_BUTTON_DEFAULT_VARIANTS = {} as const;\n\n/** The marks of the agent clients Kaeso connects to, on a 24px grid, drawn in the text colour. */\nexport const CLIENT_MARKS = {\n claude:\n \"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z\",\n cursor:\n \"M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23\",\n \"github-copilot\":\n \"M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z\",\n} as const;\n\nexport type ClientMark = keyof typeof CLIENT_MARKS;\n\nexport interface ClientButtonProps {\n client: ClientMark;\n \"aria-label\": string;\n onClick?: (() => void) | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\n/** An agent client's mark in a raised circle, as a button that opens how to connect it. Its tooltip is its label. */\nexport const ClientButton = /* @__PURE__ */ forwardRef<HTMLButtonElement, ClientButtonProps>(function ClientButton(\n { client, \"aria-label\": label, onClick, className, \"data-force\": force },\n ref,\n) {\n return (\n <Tooltip content={label}>\n <button\n ref={ref}\n type=\"button\"\n aria-label={label}\n data-client={client}\n {...(force ? { \"data-force\": force } : {})}\n onClick={onClick}\n className={cn(\n \"relative inline-flex size-32 shrink-0 items-center justify-center rounded-pill text-fg material-secondary transition-control focus-ring tap-target\",\n className,\n )}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" fillRule=\"evenodd\" aria-hidden focusable=\"false\" className=\"size-16\">\n <path d={CLIENT_MARKS[client]} />\n </svg>\n </button>\n </Tooltip>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ClientButton.displayName = \"ClientButton\";\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as KAESO_KBD_DEFAULT_VARIANTS, n as KAESO_KBD_VARIANTS, r as Kbd, i as KbdSequence, a as keyLabel } from "../chunks/kbd-BF1vKXJf.js";
2
+ export { t as KAESO_KBD_DEFAULT_VARIANTS, n as KAESO_KBD_VARIANTS, r as Kbd, i as KbdSequence, a as keyLabel } from "../chunks/kbd-8A0ML_up.js";
@@ -1,73 +1,58 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
- import { r as t } from "../chunks/tooltip-OcwO0VUT.js";
4
- import { t as n } from "../chunks/use-truncated-CW0hByYt.js";
5
- import { n as r } from "../chunks/copy-button-FJvPJn72.js";
6
- import { forwardRef as i, useRef as a } from "react";
7
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
2
+ import { t as e } from "../chunks/cn-BjnOAUrA.js";
3
+ import { n as t } from "../chunks/copy-button-CwU8t_9_.js";
4
+ import { t as n } from "../chunks/truncated-d1afmUJT.js";
5
+ import { forwardRef as r } from "react";
6
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
8
7
  //#region src/components/key-value/key-value.tsx
9
- var c = {
8
+ var o = {
10
9
  layout: {
11
- columns: { classes: "grid grid-cols-kv gap-x-24" },
10
+ columns: { classes: "grid grid-cols-kv content-start self-start gap-x-24" },
12
11
  stacked: { classes: "flex flex-col" },
13
- grid: { classes: "grid gap-x-32" }
12
+ grid: { classes: "grid content-start self-start gap-x-32" }
14
13
  },
15
14
  columns: {
16
15
  2: { classes: "grid-cols-1 @kv:grid-cols-2" },
17
16
  3: { classes: "grid-cols-2 @kv:grid-cols-3" },
18
17
  4: { classes: "grid-cols-2 @kv:grid-cols-4" }
19
18
  }
20
- }, l = {
19
+ }, s = {
21
20
  layout: "columns",
22
21
  columns: 2
23
- };
24
- function u({ children: e }) {
25
- let r = a(null), i = n(r), s = /* @__PURE__ */ o("span", {
26
- ref: r,
27
- className: "block min-w-0 truncate",
28
- ...i ? { tabIndex: 0 } : {},
29
- children: e
30
- });
31
- return i ? /* @__PURE__ */ o(t, {
32
- content: e,
33
- shape: "multiline",
34
- children: s
35
- }) : s;
36
- }
37
- var d = /* @__PURE__ */ i(function({ items: t, layout: n = "columns", columns: i = 2, className: a }, l) {
38
- let d = n === "grid", f = /* @__PURE__ */ o("dl", {
39
- ref: l,
40
- className: e(c.layout[n].classes, d && c.columns[i].classes, a),
41
- children: t.map((t, i) => /* @__PURE__ */ s("div", {
42
- className: e(n === "columns" ? "contents" : "flex min-w-0 flex-col gap-2 py-8", d && t.span === "row" && "col-span-full"),
43
- children: [/* @__PURE__ */ o("dt", {
44
- className: e("text-small text-fg-secondary", n === "columns" && "flex min-h-36 items-center", n === "columns" && t.wrap && "items-start pt-8", d && "truncate"),
45
- children: t.label
46
- }), /* @__PURE__ */ s("dd", {
47
- className: e("group/kv flex min-w-0 items-center gap-4 text-body text-fg", d ? "min-h-24" : "min-h-36", t.mono && "mono text-small", t.wrap && (d ? "items-start" : "items-start py-8")),
48
- children: [t.wrap ? /* @__PURE__ */ o("span", {
22
+ }, c = /* @__PURE__ */ r(function({ items: r, layout: s = "columns", columns: c = 2, className: l }, u) {
23
+ let d = s === "grid", f = /* @__PURE__ */ i("dl", {
24
+ ref: u,
25
+ className: e(o.layout[s].classes, d && o.columns[c].classes, l),
26
+ children: r.map((r, o) => /* @__PURE__ */ a("div", {
27
+ className: e(s === "columns" ? "contents" : "flex min-w-0 flex-col gap-2 py-8", d && r.span === "row" && "col-span-full"),
28
+ children: [/* @__PURE__ */ i("dt", {
29
+ className: e("text-small text-fg-secondary", s === "columns" && "flex min-h-36 min-w-120 items-center py-8", s === "columns" && r.wrap && "items-start", d && "flex min-w-0"),
30
+ children: d ? /* @__PURE__ */ i(n, { children: r.label }) : r.label
31
+ }), /* @__PURE__ */ a("dd", {
32
+ className: e("group/kv flex min-w-0 items-center gap-4 text-body text-fg", d ? "min-h-24" : "min-h-36", r.mono && "mono text-small", r.wrap && (d ? "items-start" : "items-start py-8")),
33
+ children: [r.wrap ? /* @__PURE__ */ i("span", {
49
34
  className: "min-w-0 break-words",
50
- children: t.value
51
- }) : typeof t.value == "string" ? /* @__PURE__ */ o(u, { children: t.value }) : /* @__PURE__ */ o("span", {
52
- className: "min-w-0 truncate",
53
- children: t.value
54
- }), t.copy && /* @__PURE__ */ o("span", {
35
+ children: r.value
36
+ }) : /* @__PURE__ */ i(n, {
37
+ className: "block min-w-0",
38
+ children: r.value
39
+ }), r.copy && /* @__PURE__ */ i("span", {
55
40
  className: "shrink-0 opacity-0 transition-control group-hover/kv:opacity-100 coarse:opacity-100 focus-within:opacity-100",
56
- children: /* @__PURE__ */ o(r, {
57
- value: t.copy,
41
+ children: /* @__PURE__ */ i(t, {
42
+ value: r.copy,
58
43
  size: "xs"
59
44
  })
60
45
  })]
61
46
  })]
62
- }, i))
47
+ }, o))
63
48
  });
64
- return d ? /* @__PURE__ */ o("div", {
49
+ return d ? /* @__PURE__ */ i("div", {
65
50
  className: "@container min-w-0",
66
51
  children: f
67
52
  }) : f;
68
53
  });
69
- process.env.NODE_ENV !== "production" && (d.displayName = "KeyValue");
54
+ process.env.NODE_ENV !== "production" && (c.displayName = "KeyValue");
70
55
  //#endregion
71
- export { l as KAESO_KEY_VALUE_DEFAULT_VARIANTS, c as KAESO_KEY_VALUE_VARIANTS, d as KeyValue };
56
+ export { s as KAESO_KEY_VALUE_DEFAULT_VARIANTS, o as KAESO_KEY_VALUE_VARIANTS, c as KeyValue };
72
57
 
73
58
  //# sourceMappingURL=key-value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-value.js","names":["cn","Tooltip","useTruncated","CopyButton","KAESO_KEY_VALUE_VARIANTS","KAESO_KEY_VALUE_DEFAULT_VARIANTS","Cut","ref","useRef","cut","el","children","KeyValue","grid","layout","list","columns","className","items","it"],"sources":["../../src/components/key-value/key-value.tsx"],"sourcesContent":["import { forwardRef, useRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useTruncated } from \"../../hooks/use-truncated.js\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\nimport { Tooltip } from \"../tooltip/tooltip.js\";\n\nexport const KAESO_KEY_VALUE_VARIANTS = {\n layout: {\n columns: { classes: \"grid grid-cols-kv gap-x-24\" },\n stacked: { classes: \"flex flex-col\" },\n grid: { classes: \"grid gap-x-32\" },\n },\n columns: {\n 2: { classes: \"grid-cols-1 @kv:grid-cols-2\" },\n 3: { classes: \"grid-cols-2 @kv:grid-cols-3\" },\n 4: { classes: \"grid-cols-2 @kv:grid-cols-4\" },\n },\n} as const;\nexport const KAESO_KEY_VALUE_DEFAULT_VARIANTS = { layout: \"columns\", columns: 2 } as const;\n\nexport interface KeyValueItem {\n label: ReactNode;\n value: ReactNode;\n copy?: string | undefined;\n mono?: boolean | undefined;\n wrap?: boolean | undefined;\n span?: \"row\" | undefined;\n}\n\nexport interface KeyValueProps {\n items: KeyValueItem[];\n layout?: keyof typeof KAESO_KEY_VALUE_VARIANTS.layout | undefined;\n columns?: keyof typeof KAESO_KEY_VALUE_VARIANTS.columns | undefined;\n className?: string | undefined;\n}\n\nfunction Cut({ children }: { children: string }) {\n const ref = useRef<HTMLSpanElement>(null);\n const cut = useTruncated(ref);\n const el = (\n <span ref={ref} className=\"block min-w-0 truncate\" {...(cut ? { tabIndex: 0 } : {})}>\n {children}\n </span>\n );\n return cut ? (\n <Tooltip content={children} shape=\"multiline\">\n {el}\n </Tooltip>\n ) : (\n el\n );\n}\n\nexport const KeyValue = /* @__PURE__ */ forwardRef<HTMLDListElement, KeyValueProps>(function KeyValue({ items, layout = \"columns\", columns = 2, className }, ref) {\n const grid = layout === \"grid\";\n const list = (\n <dl ref={ref} className={cn(KAESO_KEY_VALUE_VARIANTS.layout[layout].classes, grid && KAESO_KEY_VALUE_VARIANTS.columns[columns].classes, className)}>\n {items.map((it, i) => (\n <div key={i} className={cn(layout === \"columns\" ? \"contents\" : \"flex min-w-0 flex-col gap-2 py-8\", grid && it.span === \"row\" && \"col-span-full\")}>\n <dt\n className={cn(\n \"text-small text-fg-secondary\",\n layout === \"columns\" && \"flex min-h-36 items-center\",\n layout === \"columns\" && it.wrap && \"items-start pt-8\",\n grid && \"truncate\",\n )}\n >\n {it.label}\n </dt>\n <dd\n className={cn(\n \"group/kv flex min-w-0 items-center gap-4 text-body text-fg\",\n grid ? \"min-h-24\" : \"min-h-36\",\n it.mono && \"mono text-small\",\n it.wrap && (grid ? \"items-start\" : \"items-start py-8\"),\n )}\n >\n {it.wrap ? (\n <span className=\"min-w-0 break-words\">{it.value}</span>\n ) : typeof it.value === \"string\" ? (\n <Cut>{it.value}</Cut>\n ) : (\n <span className=\"min-w-0 truncate\">{it.value}</span>\n )}\n {it.copy && (\n <span className=\"shrink-0 opacity-0 transition-control group-hover/kv:opacity-100 coarse:opacity-100 focus-within:opacity-100\">\n <CopyButton value={it.copy} size=\"xs\" />\n </span>\n )}\n </dd>\n </div>\n ))}\n </dl>\n );\n return grid ? <div className=\"@container min-w-0\">{list}</div> : list;\n});\nif (process.env.NODE_ENV !== \"production\") KeyValue.displayName = \"KeyValue\";\n"],"mappings":";;;;;;;;AAMA,IAAaI,IAA2B;CACtC,QAAQ;EACN,SAAS,EAAE,SAAS,6BAA6B;EACjD,SAAS,EAAE,SAAS,gBAAgB;EACpC,MAAM,EAAE,SAAS,gBAAgB;CACnC;CACA,SAAS;EACP,GAAG,EAAE,SAAS,8BAA8B;EAC5C,GAAG,EAAE,SAAS,8BAA8B;EAC5C,GAAG,EAAE,SAAS,8BAA8B;CAC9C;AACF,GACaC,IAAmC;CAAE,QAAQ;CAAW,SAAS;AAAE;AAkBhF,SAASC,EAAI,EAAE,eAAkC;CAC/C,IAAMC,IAAMC,EAAwB,IAAI,GAClCC,IAAMP,EAAaK,CAAG,GACtBG,IACJ,kBAAC,QAAD;EAAW;EAAK,WAAU;EAAyB,GAAKD,IAAM,EAAE,UAAU,EAAE,IAAI,CAAC;EAC9E;CACG,CAAA;CAER,OAAOA,IACL,kBAACR,GAAD;EAAS,SAASU;EAAU,OAAM;EAC/B,UAAAD;CACM,CAAA,IAETA;AAEJ;AAEA,IAAaE,IAA2B,kBAA4C,SAAkB,EAAE,UAAO,YAAS,WAAW,aAAU,GAAG,gBAAa,GAAK;CAChK,IAAMC,IAAOC,MAAW,QAClBC,IACJ,kBAAC,MAAD;EAAS;EAAK,WAAWf,EAAGI,EAAyB,OAAOU,EAAO,CAAC,SAASD,KAAQT,EAAyB,QAAQY,EAAQ,CAAC,SAASC,CAAS;EAC9I,UAAAC,EAAM,KAAK,GAAI,MACd,kBAAC,OAAD;GAAa,WAAWlB,EAAGc,MAAW,YAAY,aAAa,oCAAoCD,KAAQM,EAAG,SAAS,SAAS,eAAe;GAA/I,UAAA,CACE,kBAAC,MAAD;IACE,WAAWnB,EACT,gCACAc,MAAW,aAAa,8BACxBA,MAAW,aAAaK,EAAG,QAAQ,oBACnCN,KAAQ,UACV;IAEC,UAAAM,EAAG;GACF,CAAA,GACJ,kBAAC,MAAD;IACE,WAAWnB,EACT,8DACAa,IAAO,aAAa,YACpBM,EAAG,QAAQ,mBACXA,EAAG,SAASN,IAAO,gBAAgB,mBACrC;IANF,UAAA,CAQGM,EAAG,OACF,kBAAC,QAAD;KAAM,WAAU;KAAuB,UAAAA,EAAG;IAAY,CAAA,IACpD,OAAOA,EAAG,SAAU,WACtB,kBAACb,GAAD,EAAA,UAAMa,EAAG,MAAW,CAAA,IAEpB,kBAAC,QAAD;KAAM,WAAU;KAAoB,UAAAA,EAAG;IAAY,CAAA,GAEpDA,EAAG,QACF,kBAAC,QAAD;KAAM,WAAU;KACd,UAAA,kBAAChB,GAAD;MAAY,OAAOgB,EAAG;MAAM,MAAK;KAAM,CAAA;IACnC,CAAA,CAEN;GACD,CAAA,CAAA;EAhCK,GAAA,CAgCL,CACN;CACC,CAAA;CAEN,OAAON,IAAO,kBAAC,OAAD;EAAK,WAAU;EAAsB,UAAAE;CAAU,CAAA,IAAIA;AACnE,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
1
+ {"version":3,"file":"key-value.js","names":["cn","CopyButton","TruncatedText","KAESO_KEY_VALUE_VARIANTS","KAESO_KEY_VALUE_DEFAULT_VARIANTS","KeyValue","grid","layout","list","columns","className","items","it","i"],"sources":["../../src/components/key-value/key-value.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\nimport { TruncatedText } from \"../text/truncated.js\";\n\nexport const KAESO_KEY_VALUE_VARIANTS = {\n layout: {\n columns: { classes: \"grid grid-cols-kv content-start self-start gap-x-24\" },\n stacked: { classes: \"flex flex-col\" },\n grid: { classes: \"grid content-start self-start gap-x-32\" },\n },\n columns: {\n 2: { classes: \"grid-cols-1 @kv:grid-cols-2\" },\n 3: { classes: \"grid-cols-2 @kv:grid-cols-3\" },\n 4: { classes: \"grid-cols-2 @kv:grid-cols-4\" },\n },\n} as const;\nexport const KAESO_KEY_VALUE_DEFAULT_VARIANTS = { layout: \"columns\", columns: 2 } as const;\n\nexport interface KeyValueItem {\n label: ReactNode;\n value: ReactNode;\n copy?: string | undefined;\n mono?: boolean | undefined;\n wrap?: boolean | undefined;\n span?: \"row\" | undefined;\n}\n\nexport interface KeyValueProps {\n items: KeyValueItem[];\n layout?: keyof typeof KAESO_KEY_VALUE_VARIANTS.layout | undefined;\n columns?: keyof typeof KAESO_KEY_VALUE_VARIANTS.columns | undefined;\n className?: string | undefined;\n}\n\nexport const KeyValue = /* @__PURE__ */ forwardRef<HTMLDListElement, KeyValueProps>(function KeyValue({ items, layout = \"columns\", columns = 2, className }, ref) {\n const grid = layout === \"grid\";\n const list = (\n <dl ref={ref} className={cn(KAESO_KEY_VALUE_VARIANTS.layout[layout].classes, grid && KAESO_KEY_VALUE_VARIANTS.columns[columns].classes, className)}>\n {items.map((it, i) => (\n <div key={i} className={cn(layout === \"columns\" ? \"contents\" : \"flex min-w-0 flex-col gap-2 py-8\", grid && it.span === \"row\" && \"col-span-full\")}>\n <dt\n className={cn(\n \"text-small text-fg-secondary\",\n layout === \"columns\" && \"flex min-h-36 min-w-120 items-center py-8\",\n layout === \"columns\" && it.wrap && \"items-start\",\n grid && \"flex min-w-0\",\n )}\n >\n {grid ? <TruncatedText>{it.label}</TruncatedText> : it.label}\n </dt>\n <dd\n className={cn(\n \"group/kv flex min-w-0 items-center gap-4 text-body text-fg\",\n grid ? \"min-h-24\" : \"min-h-36\",\n it.mono && \"mono text-small\",\n it.wrap && (grid ? \"items-start\" : \"items-start py-8\"),\n )}\n >\n {it.wrap ? <span className=\"min-w-0 break-words\">{it.value}</span> : <TruncatedText className=\"block min-w-0\">{it.value}</TruncatedText>}\n {it.copy && (\n <span className=\"shrink-0 opacity-0 transition-control group-hover/kv:opacity-100 coarse:opacity-100 focus-within:opacity-100\">\n <CopyButton value={it.copy} size=\"xs\" />\n </span>\n )}\n </dd>\n </div>\n ))}\n </dl>\n );\n return grid ? <div className=\"@container min-w-0\">{list}</div> : list;\n});\nif (process.env.NODE_ENV !== \"production\") KeyValue.displayName = \"KeyValue\";\n"],"mappings":";;;;;;;AAKA,IAAaG,IAA2B;CACtC,QAAQ;EACN,SAAS,EAAE,SAAS,sDAAsD;EAC1E,SAAS,EAAE,SAAS,gBAAgB;EACpC,MAAM,EAAE,SAAS,yCAAyC;CAC5D;CACA,SAAS;EACP,GAAG,EAAE,SAAS,8BAA8B;EAC5C,GAAG,EAAE,SAAS,8BAA8B;EAC5C,GAAG,EAAE,SAAS,8BAA8B;CAC9C;AACF,GACaC,IAAmC;CAAE,QAAQ;CAAW,SAAS;AAAE,GAkBnEC,IAA2B,kBAA4C,SAAkB,EAAE,UAAO,YAAS,WAAW,aAAU,GAAG,gBAAa,GAAK;CAChK,IAAMC,IAAOC,MAAW,QAClBC,IACJ,kBAAC,MAAD;EAAS;EAAK,WAAWR,EAAGG,EAAyB,OAAOI,EAAO,CAAC,SAASD,KAAQH,EAAyB,QAAQM,EAAQ,CAAC,SAASC,CAAS;EAC9I,UAAAC,EAAM,KAAK,GAAI,MACd,kBAAC,OAAD;GAAa,WAAWX,EAAGO,MAAW,YAAY,aAAa,oCAAoCD,KAAQM,EAAG,SAAS,SAAS,eAAe;GAA/I,UAAA,CACE,kBAAC,MAAD;IACE,WAAWZ,EACT,gCACAO,MAAW,aAAa,6CACxBA,MAAW,aAAaK,EAAG,QAAQ,eACnCN,KAAQ,cACV;IAEC,UAAAA,IAAO,kBAACJ,GAAD,EAAA,UAAgBU,EAAG,MAAqB,CAAA,IAAIA,EAAG;GACrD,CAAA,GACJ,kBAAC,MAAD;IACE,WAAWZ,EACT,8DACAM,IAAO,aAAa,YACpBM,EAAG,QAAQ,mBACXA,EAAG,SAASN,IAAO,gBAAgB,mBACrC;IANF,UAAA,CAQGM,EAAG,OAAO,kBAAC,QAAD;KAAM,WAAU;KAAuB,UAAAA,EAAG;IAAY,CAAA,IAAI,kBAACV,GAAD;KAAe,WAAU;KAAiB,UAAAU,EAAG;IAAqB,CAAA,GACtIA,EAAG,QACF,kBAAC,QAAD;KAAM,WAAU;KACd,UAAA,kBAACX,GAAD;MAAY,OAAOW,EAAG;MAAM,MAAK;KAAM,CAAA;IACnC,CAAA,CAEN;GACD,CAAA,CAAA;EA1BK,GAAAC,CA0BL,CACN;CACC,CAAA;CAEN,OAAOP,IAAO,kBAAC,OAAD;EAAK,WAAU;EAAsB,UAAAE;CAAU,CAAA,IAAIA;AACnE,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAS,cAAc"}
@@ -1,26 +1,2 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
- import { i as t } from "../chunks/context-BELWW79w.js";
4
- import { forwardRef as n } from "react";
5
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
- //#region src/components/label/label.tsx
7
- var a = { size: {
8
- md: { classes: "text-body font-medium" },
9
- sm: { classes: "text-small font-medium" }
10
- } }, o = { size: "md" }, s = /* @__PURE__ */ n(function({ size: n = "md", optional: o, className: s, children: c, ...l }, u) {
11
- let d = t();
12
- return /* @__PURE__ */ i("label", {
13
- ref: u,
14
- className: e("inline-flex items-baseline gap-6 text-fg", a.size[n].classes, s),
15
- ...l,
16
- children: [c, o && /* @__PURE__ */ r("span", {
17
- className: "text-small font-regular text-fg-tertiary",
18
- children: d("label.optional", "Optional")
19
- })]
20
- });
21
- });
22
- process.env.NODE_ENV !== "production" && (s.displayName = "Label");
23
- //#endregion
24
- export { o as KAESO_LABEL_DEFAULT_VARIANTS, a as KAESO_LABEL_VARIANTS, s as Label };
25
-
26
- //# sourceMappingURL=label.js.map
2
+ export { t as KAESO_LABEL_DEFAULT_VARIANTS, n as KAESO_LABEL_VARIANTS, r as Label } from "../chunks/label-DW24Aj0Z.js";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-Dj6sRgkF.js";
2
+ import { t as e } from "../chunks/cn-BjnOAUrA.js";
3
3
  import { forwardRef as t } from "react";
4
4
  import { jsx as n } from "react/jsx-runtime";
5
5
  //#region src/components/layout/layout.tsx
@@ -36,7 +36,7 @@ var r = {
36
36
  2: { classes: "grid-cols-1 md:grid-cols-2" },
37
37
  3: { classes: "grid-cols-1 md:grid-cols-3" },
38
38
  4: { classes: "grid-cols-2 lg:grid-cols-4" },
39
- 6: { classes: "grid-cols-3 lg:grid-cols-6" }
39
+ 6: { classes: "grid-cols-2 md:grid-cols-3 lg:grid-cols-6" }
40
40
  }
41
41
  }, a = {
42
42
  align: "stretch",
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","names":["cn","GAP","KAESO_LAYOUT_VARIANTS","KAESO_LAYOUT_DEFAULT_VARIANTS","Stack","props","as","gap","align","justify","className","Inline","wrap","Grid","columns"],"sources":["../../src/components/layout/layout.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nconst GAP = {\n 0: \"gap-0\",\n 2: \"gap-2\",\n 4: \"gap-4\",\n 6: \"gap-6\",\n 8: \"gap-8\",\n 12: \"gap-12\",\n 16: \"gap-16\",\n 20: \"gap-20\",\n 24: \"gap-24\",\n 32: \"gap-32\",\n 40: \"gap-40\",\n 48: \"gap-48\",\n 64: \"gap-64\",\n} as const;\nexport type Gap = keyof typeof GAP;\n\nexport const KAESO_LAYOUT_VARIANTS = {\n align: {\n start: { classes: \"items-start\" },\n center: { classes: \"items-center\" },\n end: { classes: \"items-end\" },\n baseline: { classes: \"items-baseline\" },\n stretch: { classes: \"items-stretch\" },\n },\n justify: {\n start: { classes: \"justify-start\" },\n center: { classes: \"justify-center\" },\n end: { classes: \"justify-end\" },\n between: { classes: \"justify-between\" },\n },\n columns: {\n 1: { classes: \"grid-cols-1\" },\n 2: { classes: \"grid-cols-1 md:grid-cols-2\" },\n 3: { classes: \"grid-cols-1 md:grid-cols-3\" },\n 4: { classes: \"grid-cols-2 lg:grid-cols-4\" },\n 6: { classes: \"grid-cols-3 lg:grid-cols-6\" },\n },\n} as const;\nexport const KAESO_LAYOUT_DEFAULT_VARIANTS = { align: \"stretch\", justify: \"start\", columns: 2 } as const;\n\ninterface BaseProps extends HTMLAttributes<HTMLElement> {\n gap?: Gap | undefined;\n align?: keyof typeof KAESO_LAYOUT_VARIANTS.align | undefined;\n justify?: keyof typeof KAESO_LAYOUT_VARIANTS.justify | undefined;\n as?: ElementType | undefined;\n}\n\nexport const Stack = /* @__PURE__ */ forwardRef<HTMLElement, BaseProps>(function Stack({ gap = 12, align, justify, as, className, ...props }, ref) {\n const C = (as ?? \"div\") as ElementType;\n return (\n <C\n ref={ref}\n className={cn(\n \"flex flex-col\",\n GAP[gap],\n align && KAESO_LAYOUT_VARIANTS.align[align].classes,\n justify && KAESO_LAYOUT_VARIANTS.justify[justify].classes,\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Stack.displayName = \"Stack\";\n\nexport const Inline = /* @__PURE__ */ forwardRef<HTMLElement, BaseProps & { wrap?: boolean | undefined }>(function Inline(\n { gap = 8, align = \"center\", justify, wrap = true, as, className, ...props },\n ref,\n) {\n const C = (as ?? \"div\") as ElementType;\n return (\n <C\n ref={ref}\n className={cn(\n \"flex\",\n wrap && \"flex-wrap\",\n GAP[gap],\n KAESO_LAYOUT_VARIANTS.align[align].classes,\n justify && KAESO_LAYOUT_VARIANTS.justify[justify].classes,\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Inline.displayName = \"Inline\";\n\nexport const Grid = /* @__PURE__ */ forwardRef<HTMLElement, Omit<BaseProps, \"justify\"> & { columns?: keyof typeof KAESO_LAYOUT_VARIANTS.columns | undefined }>(function Grid(\n { gap = 16, columns = 2, align, as, className, ...props },\n ref,\n) {\n const C = (as ?? \"div\") as ElementType;\n return (\n <C\n ref={ref}\n className={cn(\"grid\", GAP[gap], KAESO_LAYOUT_VARIANTS.columns[columns].classes, align && KAESO_LAYOUT_VARIANTS.align[align].classes, className)}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Grid.displayName = \"Grid\";\n"],"mappings":";;;;;AAGA,IAAMC,IAAM;CACV,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN,GAGaC,IAAwB;CACnC,OAAO;EACL,OAAO,EAAE,SAAS,cAAc;EAChC,QAAQ,EAAE,SAAS,eAAe;EAClC,KAAK,EAAE,SAAS,YAAY;EAC5B,UAAU,EAAE,SAAS,iBAAiB;EACtC,SAAS,EAAE,SAAS,gBAAgB;CACtC;CACA,SAAS;EACP,OAAO,EAAE,SAAS,gBAAgB;EAClC,QAAQ,EAAE,SAAS,iBAAiB;EACpC,KAAK,EAAE,SAAS,cAAc;EAC9B,SAAS,EAAE,SAAS,kBAAkB;CACxC;CACA,SAAS;EACP,GAAG,EAAE,SAAS,cAAc;EAC5B,GAAG,EAAE,SAAS,6BAA6B;EAC3C,GAAG,EAAE,SAAS,6BAA6B;EAC3C,GAAG,EAAE,SAAS,6BAA6B;EAC3C,GAAG,EAAE,SAAS,6BAA6B;CAC7C;AACF,GACaC,IAAgC;CAAE,OAAO;CAAW,SAAS;CAAS,SAAS;AAAE,GASjFC,IAAwB,kBAAmC,SAAe,EAAE,SAAM,IAAI,UAAO,YAAS,OAAI,cAAW,GAAGC,KAAS,GAAK;CAEjJ,OACE,kBAFSC,KAAM,OAEf;EACO;EACL,WAAWN,EACT,iBACAC,EAAIM,IACJC,KAASN,EAAsB,MAAMM,EAAM,CAAC,SAC5CC,KAAWP,EAAsB,QAAQO,EAAQ,CAAC,SAClDC,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAE/D,IAAaM,IAAyB,kBAAoE,SACxG,EAAE,SAAM,GAAG,WAAQ,UAAU,YAAS,UAAO,IAAM,OAAI,cAAW,GAAGN,KACrE,GACA;CAEA,OACE,kBAFSC,KAAM,OAEf;EACO;EACL,WAAWN,EACT,QACAY,KAAQ,aACRX,EAAIM,IACJL,EAAsB,MAAMM,EAAM,CAAC,SACnCC,KAAWP,EAAsB,QAAQO,EAAQ,CAAC,SAClDC,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc;AAEhE,IAAaQ,IAAuB,kBAA2H,SAC7J,EAAE,SAAM,IAAI,aAAU,GAAG,UAAO,OAAI,cAAW,GAAGR,KAClD,GACA;CAEA,OACE,kBAFSC,KAAM,OAEf;EACO;EACL,WAAWN,EAAG,QAAQC,EAAIM,IAAML,EAAsB,QAAQY,EAAQ,CAAC,SAASN,KAASN,EAAsB,MAAMM,EAAM,CAAC,SAASE,CAAS;EAC9I,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
1
+ {"version":3,"file":"layout.js","names":["cn","GAP","KAESO_LAYOUT_VARIANTS","KAESO_LAYOUT_DEFAULT_VARIANTS","Stack","props","as","gap","align","justify","className","Inline","wrap","Grid","columns"],"sources":["../../src/components/layout/layout.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\n\nconst GAP = {\n 0: \"gap-0\",\n 2: \"gap-2\",\n 4: \"gap-4\",\n 6: \"gap-6\",\n 8: \"gap-8\",\n 12: \"gap-12\",\n 16: \"gap-16\",\n 20: \"gap-20\",\n 24: \"gap-24\",\n 32: \"gap-32\",\n 40: \"gap-40\",\n 48: \"gap-48\",\n 64: \"gap-64\",\n} as const;\nexport type Gap = keyof typeof GAP;\n\nexport const KAESO_LAYOUT_VARIANTS = {\n align: {\n start: { classes: \"items-start\" },\n center: { classes: \"items-center\" },\n end: { classes: \"items-end\" },\n baseline: { classes: \"items-baseline\" },\n stretch: { classes: \"items-stretch\" },\n },\n justify: {\n start: { classes: \"justify-start\" },\n center: { classes: \"justify-center\" },\n end: { classes: \"justify-end\" },\n between: { classes: \"justify-between\" },\n },\n columns: {\n 1: { classes: \"grid-cols-1\" },\n 2: { classes: \"grid-cols-1 md:grid-cols-2\" },\n 3: { classes: \"grid-cols-1 md:grid-cols-3\" },\n 4: { classes: \"grid-cols-2 lg:grid-cols-4\" },\n 6: { classes: \"grid-cols-2 md:grid-cols-3 lg:grid-cols-6\" },\n },\n} as const;\nexport const KAESO_LAYOUT_DEFAULT_VARIANTS = { align: \"stretch\", justify: \"start\", columns: 2 } as const;\n\ninterface BaseProps extends HTMLAttributes<HTMLElement> {\n gap?: Gap | undefined;\n align?: keyof typeof KAESO_LAYOUT_VARIANTS.align | undefined;\n justify?: keyof typeof KAESO_LAYOUT_VARIANTS.justify | undefined;\n as?: ElementType | undefined;\n}\n\nexport const Stack = /* @__PURE__ */ forwardRef<HTMLElement, BaseProps>(function Stack({ gap = 12, align, justify, as, className, ...props }, ref) {\n const C = (as ?? \"div\") as ElementType;\n return (\n <C\n ref={ref}\n className={cn(\n \"flex flex-col\",\n GAP[gap],\n align && KAESO_LAYOUT_VARIANTS.align[align].classes,\n justify && KAESO_LAYOUT_VARIANTS.justify[justify].classes,\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Stack.displayName = \"Stack\";\n\nexport const Inline = /* @__PURE__ */ forwardRef<HTMLElement, BaseProps & { wrap?: boolean | undefined }>(function Inline(\n { gap = 8, align = \"center\", justify, wrap = true, as, className, ...props },\n ref,\n) {\n const C = (as ?? \"div\") as ElementType;\n return (\n <C\n ref={ref}\n className={cn(\n \"flex\",\n wrap && \"flex-wrap\",\n GAP[gap],\n KAESO_LAYOUT_VARIANTS.align[align].classes,\n justify && KAESO_LAYOUT_VARIANTS.justify[justify].classes,\n className,\n )}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Inline.displayName = \"Inline\";\n\nexport const Grid = /* @__PURE__ */ forwardRef<HTMLElement, Omit<BaseProps, \"justify\"> & { columns?: keyof typeof KAESO_LAYOUT_VARIANTS.columns | undefined }>(function Grid(\n { gap = 16, columns = 2, align, as, className, ...props },\n ref,\n) {\n const C = (as ?? \"div\") as ElementType;\n return (\n <C\n ref={ref}\n className={cn(\"grid\", GAP[gap], KAESO_LAYOUT_VARIANTS.columns[columns].classes, align && KAESO_LAYOUT_VARIANTS.align[align].classes, className)}\n {...props}\n />\n );\n});\nif (process.env.NODE_ENV !== \"production\") Grid.displayName = \"Grid\";\n"],"mappings":";;;;;AAGA,IAAMC,IAAM;CACV,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN,GAGaC,IAAwB;CACnC,OAAO;EACL,OAAO,EAAE,SAAS,cAAc;EAChC,QAAQ,EAAE,SAAS,eAAe;EAClC,KAAK,EAAE,SAAS,YAAY;EAC5B,UAAU,EAAE,SAAS,iBAAiB;EACtC,SAAS,EAAE,SAAS,gBAAgB;CACtC;CACA,SAAS;EACP,OAAO,EAAE,SAAS,gBAAgB;EAClC,QAAQ,EAAE,SAAS,iBAAiB;EACpC,KAAK,EAAE,SAAS,cAAc;EAC9B,SAAS,EAAE,SAAS,kBAAkB;CACxC;CACA,SAAS;EACP,GAAG,EAAE,SAAS,cAAc;EAC5B,GAAG,EAAE,SAAS,6BAA6B;EAC3C,GAAG,EAAE,SAAS,6BAA6B;EAC3C,GAAG,EAAE,SAAS,6BAA6B;EAC3C,GAAG,EAAE,SAAS,4CAA4C;CAC5D;AACF,GACaC,IAAgC;CAAE,OAAO;CAAW,SAAS;CAAS,SAAS;AAAE,GASjFC,IAAwB,kBAAmC,SAAe,EAAE,SAAM,IAAI,UAAO,YAAS,OAAI,cAAW,GAAGC,KAAS,GAAK;CAEjJ,OACE,kBAFSC,KAAM,OAEf;EACO;EACL,WAAWN,EACT,iBACAC,EAAIM,IACJC,KAASN,EAAsB,MAAMM,EAAM,CAAC,SAC5CC,KAAWP,EAAsB,QAAQO,EAAQ,CAAC,SAClDC,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAM,cAAc;AAE/D,IAAaM,IAAyB,kBAAoE,SACxG,EAAE,SAAM,GAAG,WAAQ,UAAU,YAAS,UAAO,IAAM,OAAI,cAAW,GAAGN,KACrE,GACA;CAEA,OACE,kBAFSC,KAAM,OAEf;EACO;EACL,WAAWN,EACT,QACAY,KAAQ,aACRX,EAAIM,IACJL,EAAsB,MAAMM,EAAM,CAAC,SACnCC,KAAWP,EAAsB,QAAQO,EAAQ,CAAC,SAClDC,CACF;EACA,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc;AAEhE,IAAaQ,IAAuB,kBAA2H,SAC7J,EAAE,SAAM,IAAI,aAAU,GAAG,UAAO,OAAI,cAAW,GAAGR,KAClD,GACA;CAEA,OACE,kBAFSC,KAAM,OAEf;EACO;EACL,WAAWN,EAAG,QAAQC,EAAIM,IAAML,EAAsB,QAAQY,EAAQ,CAAC,SAASN,KAASN,EAAsB,MAAMM,EAAM,CAAC,SAASE,CAAS;EAC9I,GAAIL;CACL,CAAA;AAEL,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc"}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as KAESO_LINK_DEFAULT_VARIANTS, n as KAESO_LINK_VARIANTS, r as Link } from "../chunks/link-KWI7PevW.js";
2
+ export { t as KAESO_LINK_DEFAULT_VARIANTS, n as KAESO_LINK_VARIANTS, r as Link } from "../chunks/link-CMjkcLQK.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as GroupHeader, n as KAESO_LIST_DEFAULT_VARIANTS, r as KAESO_LIST_VARIANTS, i as List, a as ListRow, o as SelectionAction, s as SelectionBar } from "../chunks/list-M1csq-d4.js";
2
+ export { t as GroupHeader, n as KAESO_LIST_DEFAULT_VARIANTS, r as KAESO_LIST_VARIANTS, i as List, a as ListRow, o as SelectionAction, s as SelectionBar } from "../chunks/list-B4G-sWwV.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-Dj6sRgkF.js";
2
+ import { t as e } from "../chunks/cn-BjnOAUrA.js";
3
3
  import { i as t } from "../chunks/context-BELWW79w.js";
4
- import { i as n, n as r, r as i, t as a } from "../chunks/loader-DCfPndXa.js";
4
+ import { i as n, n as r, r as i, t as a } from "../chunks/loader-zo8CCIGJ.js";
5
5
  import { forwardRef as o } from "react";
6
6
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
7
  //#region src/components/loader/status.tsx
@@ -16,19 +16,20 @@ var l = {
16
16
  size: "sm",
17
17
  tone: "secondary"
18
18
  }, d = /* @__PURE__ */ o(function({ size: r = "sm", tone: a, label: o, hideLabel: u, loading: d = !0, delay: f, minDuration: p, className: m, ...h }, g) {
19
- let _ = t(), v = n(d, f === !0 ? void 0 : f || 0, p ?? (f ? void 0 : 0));
20
- return /* @__PURE__ */ s("span", {
19
+ let _ = t(), v = n(d, f === !1 ? 0 : f === !0 ? void 0 : f, p ?? (f === !1 ? 0 : void 0)), y = o ?? _("loader.loading", "Loading");
20
+ return /* @__PURE__ */ c("span", {
21
21
  ref: g,
22
22
  role: "status",
23
23
  className: e("inline-flex items-center gap-8 text-body", l.tone[a ?? "secondary"].classes, m),
24
24
  ...h,
25
- children: /* @__PURE__ */ c("span", {
25
+ children: [/* @__PURE__ */ c("span", {
26
+ "aria-hidden": !0,
26
27
  className: v ? "contents" : "contents invisible",
27
- children: [/* @__PURE__ */ s(i, { size: r }), /* @__PURE__ */ s("span", {
28
- className: e(!o || u ? "sr-only" : void 0),
29
- children: o ?? _("loader.loading", "Loading")
30
- })]
31
- })
28
+ children: [/* @__PURE__ */ s(i, { size: r }), o && !u && /* @__PURE__ */ s("span", { children: o })]
29
+ }), /* @__PURE__ */ s("span", {
30
+ className: "sr-only",
31
+ children: v ? y : ""
32
+ })]
32
33
  });
33
34
  });
34
35
  process.env.NODE_ENV !== "production" && (d.displayName = "Loader");
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","names":["cn","useUiText","useDelayedLoading","KAESO_SPINNER_VARIANTS","Spinner","KAESO_SPINNER_DEFAULT_VARIANTS","KAESO_LOADER_VARIANTS","KAESO_LOADER_DEFAULT_VARIANTS","Loader","props","t","shown","loading","delay","minDuration","tone","className","label","hideLabel"],"sources":["../../src/components/loader/status.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { KAESO_SPINNER_VARIANTS, Spinner, useDelayedLoading } from \"./loader.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_LOADER_VARIANTS = {\n size: KAESO_SPINNER_VARIANTS.size,\n tone: {\n secondary: { classes: \"text-fg-secondary\" },\n tertiary: { classes: \"text-fg-tertiary\" },\n current: { classes: \"\" },\n },\n} as const;\nexport const KAESO_LOADER_DEFAULT_VARIANTS = { size: \"sm\", tone: \"secondary\" } as const;\n\nexport type LoaderSize = keyof typeof KAESO_LOADER_VARIANTS.size;\nexport type LoaderTone = keyof typeof KAESO_LOADER_VARIANTS.tone;\n\nexport interface LoaderProps extends HTMLAttributes<HTMLSpanElement> {\n size?: LoaderSize | undefined;\n tone?: LoaderTone | undefined;\n label?: string | undefined;\n hideLabel?: boolean | undefined;\n loading?: boolean | undefined;\n delay?: boolean | number | undefined;\n minDuration?: number | undefined;\n}\n\nexport const Loader = /* @__PURE__ */ forwardRef<HTMLSpanElement, LoaderProps>(function Loader(\n { size = \"sm\", tone, label, hideLabel, loading = true, delay, minDuration, className, ...props },\n ref,\n) {\n const t = useUiText();\n const shown = useDelayedLoading(loading, delay === true ? undefined : delay || 0, minDuration ?? (delay ? undefined : 0));\n return (\n <span\n ref={ref}\n role=\"status\"\n className={cn(\"inline-flex items-center gap-8 text-body\", KAESO_LOADER_VARIANTS.tone[tone ?? \"secondary\"].classes, className)}\n {...props}\n >\n <span className={shown ? \"contents\" : \"contents invisible\"}>\n <Spinner size={size} />\n <span className={cn(!label || hideLabel ? \"sr-only\" : undefined)}>{label ?? t(\"loader.loading\", \"Loading\")}</span>\n </span>\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Loader.displayName = \"Loader\";\n"],"mappings":";;;;;;;AAKA,IAAaM,IAAwB;CACnC,MAAMH,EAAuB;CAC7B,MAAM;EACJ,WAAW,EAAE,SAAS,oBAAoB;EAC1C,UAAU,EAAE,SAAS,mBAAmB;EACxC,SAAS,EAAE,SAAS,GAAG;CACzB;AACF,GACaI,IAAgC;CAAE,MAAM;CAAM,MAAM;AAAY,GAehEC,IAAyB,kBAAyC,SAC7E,EAAE,UAAO,MAAM,SAAM,UAAO,cAAW,aAAU,IAAM,UAAO,gBAAa,cAAW,GAAGC,KACzF,GACA;CACA,IAAMC,IAAIT,EAAU,GACdU,IAAQT,EAAkBU,GAASC,MAAU,KAAO,KAAA,IAAYA,KAAS,GAAGC,MAAgBD,IAAQ,KAAA,IAAY,EAAE;CACxH,OACE,kBAAC,QAAD;EACO;EACL,MAAK;EACL,WAAWb,EAAG,4CAA4CM,EAAsB,KAAKS,KAAQ,YAAY,CAAC,SAASC,CAAS;EAC5H,GAAIP;EAEJ,UAAA,kBAAC,QAAD;GAAM,WAAWE,IAAQ,aAAa;GAAtC,UAAA,CACE,kBAACP,GAAD,EAAe,QAAO,CAAA,GACtB,kBAAC,QAAD;IAAM,WAAWJ,EAAG,CAACiB,KAASC,IAAY,YAAY,KAAA,CAAS;IAAI,UAAAD,KAASP,EAAE,kBAAkB,SAAS;GAAQ,CAAA,CAC7G;;CACF,CAAA;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc"}
1
+ {"version":3,"file":"loader.js","names":["cn","useUiText","useDelayedLoading","KAESO_SPINNER_VARIANTS","Spinner","KAESO_SPINNER_DEFAULT_VARIANTS","KAESO_LOADER_VARIANTS","KAESO_LOADER_DEFAULT_VARIANTS","Loader","props","t","shown","loading","delay","minDuration","text","label","tone","className","hideLabel"],"sources":["../../src/components/loader/status.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { KAESO_SPINNER_VARIANTS, Spinner, useDelayedLoading } from \"./loader.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nexport const KAESO_LOADER_VARIANTS = {\n size: KAESO_SPINNER_VARIANTS.size,\n tone: {\n secondary: { classes: \"text-fg-secondary\" },\n tertiary: { classes: \"text-fg-tertiary\" },\n current: { classes: \"\" },\n },\n} as const;\nexport const KAESO_LOADER_DEFAULT_VARIANTS = { size: \"sm\", tone: \"secondary\" } as const;\n\nexport type LoaderSize = keyof typeof KAESO_LOADER_VARIANTS.size;\nexport type LoaderTone = keyof typeof KAESO_LOADER_VARIANTS.tone;\n\nexport interface LoaderProps extends HTMLAttributes<HTMLSpanElement> {\n size?: LoaderSize | undefined;\n tone?: LoaderTone | undefined;\n label?: string | undefined;\n hideLabel?: boolean | undefined;\n loading?: boolean | undefined;\n delay?: boolean | number | undefined;\n minDuration?: number | undefined;\n}\n\nexport const Loader = /* @__PURE__ */ forwardRef<HTMLSpanElement, LoaderProps>(function Loader(\n { size = \"sm\", tone, label, hideLabel, loading = true, delay, minDuration, className, ...props },\n ref,\n) {\n const t = useUiText();\n const shown = useDelayedLoading(loading, delay === false ? 0 : delay === true ? undefined : delay, minDuration ?? (delay === false ? 0 : undefined));\n const text = label ?? t(\"loader.loading\", \"Loading\");\n return (\n <span\n ref={ref}\n role=\"status\"\n className={cn(\"inline-flex items-center gap-8 text-body\", KAESO_LOADER_VARIANTS.tone[tone ?? \"secondary\"].classes, className)}\n {...props}\n >\n <span aria-hidden className={shown ? \"contents\" : \"contents invisible\"}>\n <Spinner size={size} />\n {label && !hideLabel && <span>{label}</span>}\n </span>\n <span className=\"sr-only\">{shown ? text : \"\"}</span>\n </span>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Loader.displayName = \"Loader\";\n"],"mappings":";;;;;;;AAKA,IAAaM,IAAwB;CACnC,MAAMH,EAAuB;CAC7B,MAAM;EACJ,WAAW,EAAE,SAAS,oBAAoB;EAC1C,UAAU,EAAE,SAAS,mBAAmB;EACxC,SAAS,EAAE,SAAS,GAAG;CACzB;AACF,GACaI,IAAgC;CAAE,MAAM;CAAM,MAAM;AAAY,GAehEC,IAAyB,kBAAyC,SAC7E,EAAE,UAAO,MAAM,SAAM,UAAO,cAAW,aAAU,IAAM,UAAO,gBAAa,cAAW,GAAGC,KACzF,GACA;CACA,IAAMC,IAAIT,EAAU,GACdU,IAAQT,EAAkBU,GAASC,MAAU,KAAQ,IAAIA,MAAU,KAAO,KAAA,IAAYA,GAAOC,MAAgBD,MAAU,KAAQ,IAAI,KAAA,EAAU,GAC7IE,IAAOC,KAASN,EAAE,kBAAkB,SAAS;CACnD,OACE,kBAAC,QAAD;EACO;EACL,MAAK;EACL,WAAWV,EAAG,4CAA4CM,EAAsB,KAAKW,KAAQ,YAAY,CAAC,SAASC,CAAS;EAC5H,GAAIT;EAJN,UAAA,CAME,kBAAC,QAAD;GAAM,eAAA;GAAY,WAAWE,IAAQ,aAAa;GAAlD,UAAA,CACE,kBAACP,GAAD,EAAe,QAAO,CAAA,GACrBY,KAAS,CAACG,KAAa,kBAAC,QAAD,EAAA,UAAOH,EAAY,CAAA,CACvC;EACN,CAAA,GAAA,kBAAC,QAAD;GAAM,WAAU;GAAW,UAAAL,IAAQI,IAAO;EAAS,CAAA,CAC/C;;AAEV,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAO,cAAc"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
- import { a as t, i as n, n as r, r as i, t as a } from "../chunks/nav-wordmark-_pjheAsZ.js";
2
+ import { t as e } from "../chunks/cn-BjnOAUrA.js";
3
+ import { a as t, i as n, n as r, r as i, t as a } from "../chunks/nav-wordmark-J4pB_vjr.js";
4
4
  import { forwardRef as o } from "react";
5
5
  import { jsx as s } from "react/jsx-runtime";
6
6
  //#region src/components/logo/logo.tsx
@@ -1,4 +1,4 @@
1
1
  "use client";
2
2
  import { t as e } from "../chunks/safe-href-G5DBNVwm.js";
3
- import { a as t, i as n, n as r, r as i, s as a, t as o } from "../chunks/markdown-BupwFOae.js";
3
+ import { a as t, i as n, n as r, r as i, s as a, t as o } from "../chunks/markdown-C565aBR7.js";
4
4
  export { o as KAESO_MARKDOWN_DEFAULT_VARIANTS, r as KAESO_MARKDOWN_VARIANTS, i as Markdown, n as lexMarkdown, t as markdownCodeLang, a as previewMarkdown, e as safeHref };
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { c as e } from "../chunks/styles-CVJU9t9v.js";
3
- import { a as t, c as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "../chunks/menu-DEmBfdPm.js";
2
+ import { c as e } from "../chunks/styles-hkFkoBbi.js";
3
+ import { a as t, c as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "../chunks/menu-Clvv6ftq.js";
4
4
  export { l as ContextMenu, a as KAESO_CONTEXT_MENU_DEFAULT_VARIANTS, s as KAESO_CONTEXT_MENU_VARIANTS, r as KAESO_MENUBAR_DEFAULT_VARIANTS, t as KAESO_MENUBAR_VARIANTS, o as KAESO_MENU_DEFAULT_VARIANTS, c as KAESO_MENU_VARIANTS, n as Menu, i as Menubar, e as menuStyles };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as KAESO_METER_DEFAULT_VARIANTS, n as KAESO_METER_VARIANTS, r as KAESO_PROGRESS_DEFAULT_VARIANTS, i as KAESO_PROGRESS_VARIANTS, a as Meter, o as Progress, s as meterColor } from "../chunks/meter-Bj4N3Xuh.js";
2
+ export { t as KAESO_METER_DEFAULT_VARIANTS, n as KAESO_METER_VARIANTS, r as KAESO_PROGRESS_DEFAULT_VARIANTS, i as KAESO_PROGRESS_VARIANTS, a as Meter, o as Progress, s as meterColor } from "../chunks/meter-CASMHlxl.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as KAESO_PAGE_HEADER_DEFAULT_VARIANTS, n as KAESO_PAGE_HEADER_VARIANTS, r as PageHeader } from "../chunks/page-header-DL2y2iZp.js";
2
+ export { t as KAESO_PAGE_HEADER_DEFAULT_VARIANTS, n as KAESO_PAGE_HEADER_VARIANTS, r as PageHeader } from "../chunks/page-header-kS5tdmvb.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as KAESO_PAGINATION_DEFAULT_VARIANTS, n as KAESO_PAGINATION_VARIANTS, r as Pagination } from "../chunks/pagination-Cn_qF4cg.js";
2
+ export { t as KAESO_PAGINATION_DEFAULT_VARIANTS, n as KAESO_PAGINATION_VARIANTS, r as Pagination } from "../chunks/pagination-D7fAm8qg.js";