@logicplanes/kaeso-ui 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/NOTICE.md +1 -1
  2. package/ai/component-guides.md +283 -21
  3. package/ai/component-registry.json +528 -25
  4. package/ai/component-registry.md +135 -25
  5. package/ai/icons.md +3 -3
  6. package/ai/tokens.md +1 -1
  7. package/dist/blocks/delete-resource.js +15 -14
  8. package/dist/blocks/delete-resource.js.map +1 -1
  9. package/dist/blocks/pages.js +2 -2
  10. package/dist/blocks/resource-list.js +41 -40
  11. package/dist/blocks/resource-list.js.map +1 -1
  12. package/dist/chunks/agent-avatar-0pdBTWkR.js +171 -0
  13. package/dist/chunks/agent-avatar-0pdBTWkR.js.map +1 -0
  14. package/dist/chunks/{app-frame-C8csevkL.js → app-frame-DogGRmsu.js} +22 -21
  15. package/dist/chunks/app-frame-DogGRmsu.js.map +1 -0
  16. package/dist/chunks/{banner-Cb8OWnqJ.js → banner-BA2ALw9M.js} +2 -2
  17. package/dist/chunks/{banner-Cb8OWnqJ.js.map → banner-BA2ALw9M.js.map} +1 -1
  18. package/dist/chunks/{button-Dzu7_csE.js → button-CzuxqawA.js} +3 -3
  19. package/dist/chunks/{button-Dzu7_csE.js.map → button-CzuxqawA.js.map} +1 -1
  20. package/dist/chunks/{calendar--YemJsv4.js → calendar-BWaf2MXc.js} +57 -41
  21. package/dist/chunks/calendar-BWaf2MXc.js.map +1 -0
  22. package/dist/chunks/{checkbox-CDfC6E-M.js → checkbox-CQjwCPkc.js} +11 -9
  23. package/dist/chunks/checkbox-CQjwCPkc.js.map +1 -0
  24. package/dist/chunks/{code-block-U5fCqwgC.js → code-block-D5A-CGXG.js} +2 -2
  25. package/dist/chunks/{code-block-U5fCqwgC.js.map → code-block-D5A-CGXG.js.map} +1 -1
  26. package/dist/chunks/combobox-DjDI7SUC.js +319 -0
  27. package/dist/chunks/combobox-DjDI7SUC.js.map +1 -0
  28. package/dist/chunks/{command-list-0RR4DpUe.js → command-list-C2Y7V_lt.js} +2 -2
  29. package/dist/chunks/{command-list-0RR4DpUe.js.map → command-list-C2Y7V_lt.js.map} +1 -1
  30. package/dist/chunks/{copy-button-7-irieJw.js → copy-button-FJvPJn72.js} +3 -3
  31. package/dist/chunks/{copy-button-7-irieJw.js.map → copy-button-FJvPJn72.js.map} +1 -1
  32. package/dist/chunks/{core-Bl9NrBLS.js → core-BYns5ytV.js} +145 -139
  33. package/dist/chunks/core-BYns5ytV.js.map +1 -0
  34. package/dist/chunks/{date-popup-RQkqhko4.js → date-popup-CPA_zt6o.js} +4 -4
  35. package/dist/chunks/{date-popup-RQkqhko4.js.map → date-popup-CPA_zt6o.js.map} +1 -1
  36. package/dist/chunks/{de-BnNQtBSV.js → de-CPXJh9cq.js} +3 -1
  37. package/dist/chunks/de-CPXJh9cq.js.map +1 -0
  38. package/dist/chunks/dialog-Cg9A_6SF.js +383 -0
  39. package/dist/chunks/dialog-Cg9A_6SF.js.map +1 -0
  40. package/dist/chunks/icon-DVooQfk4.js +94 -0
  41. package/dist/chunks/icon-DVooQfk4.js.map +1 -0
  42. package/dist/chunks/{icon-button-CPYR21Sz.js → icon-button-CrdF_eMG.js} +3 -3
  43. package/dist/chunks/{icon-button-CPYR21Sz.js.map → icon-button-CrdF_eMG.js.map} +1 -1
  44. package/dist/chunks/{identity-DPuTkMsa.js → identity-BmhQ6BQ-.js} +15 -15
  45. package/dist/chunks/identity-BmhQ6BQ-.js.map +1 -0
  46. package/dist/chunks/{input-TyLIaQ5k.js → input-2VJuj_M4.js} +10 -5
  47. package/dist/chunks/input-2VJuj_M4.js.map +1 -0
  48. package/dist/chunks/{input-group-CUSNsQjQ.js → input-group-DQ_4DoXg.js} +2 -2
  49. package/dist/chunks/{input-group-CUSNsQjQ.js.map → input-group-DQ_4DoXg.js.map} +1 -1
  50. package/dist/chunks/{inset-BnBj8NJV.js → inset-BUzyXLK4.js} +14 -4
  51. package/dist/chunks/inset-BUzyXLK4.js.map +1 -0
  52. package/dist/chunks/{iso-field-CWbxlll-.js → iso-field-B2rTwiBo.js} +2 -2
  53. package/dist/chunks/{iso-field-CWbxlll-.js.map → iso-field-B2rTwiBo.js.map} +1 -1
  54. package/dist/chunks/{link-B2I55xg9.js → link-KWI7PevW.js} +2 -2
  55. package/dist/chunks/{link-B2I55xg9.js.map → link-KWI7PevW.js.map} +1 -1
  56. package/dist/chunks/link-provider-cvl8lSTT.js +29 -0
  57. package/dist/chunks/link-provider-cvl8lSTT.js.map +1 -0
  58. package/dist/chunks/{list-CkOozrVY.js → list-M1csq-d4.js} +18 -16
  59. package/dist/chunks/{list-CkOozrVY.js.map → list-M1csq-d4.js.map} +1 -1
  60. package/dist/chunks/{markdown-BEgwZFlu.js → markdown-DULktoTK.js} +5 -5
  61. package/dist/chunks/{markdown-BEgwZFlu.js.map → markdown-DULktoTK.js.map} +1 -1
  62. package/dist/chunks/{menu-fl_QQb38.js → menu-DEmBfdPm.js} +29 -26
  63. package/dist/chunks/menu-DEmBfdPm.js.map +1 -0
  64. package/dist/chunks/nav-sheet-CzgIwgAm.js +60 -0
  65. package/dist/chunks/nav-sheet-CzgIwgAm.js.map +1 -0
  66. package/dist/chunks/{page-header-DjUMDG69.js → page-header-DL2y2iZp.js} +2 -2
  67. package/dist/chunks/{page-header-DjUMDG69.js.map → page-header-DL2y2iZp.js.map} +1 -1
  68. package/dist/chunks/{pagination-BaY8jdli.js → pagination-Cn_qF4cg.js} +3 -3
  69. package/dist/chunks/{pagination-BaY8jdli.js.map → pagination-Cn_qF4cg.js.map} +1 -1
  70. package/dist/chunks/{picker-popover-DShea4b8.js → picker-popover-BxyU1U9F.js} +14 -13
  71. package/dist/chunks/{picker-popover-DShea4b8.js.map → picker-popover-BxyU1U9F.js.map} +1 -1
  72. package/dist/chunks/{popover-CFMwaeIP.js → popover-DNN4S47w.js} +2 -2
  73. package/dist/chunks/{popover-CFMwaeIP.js.map → popover-DNN4S47w.js.map} +1 -1
  74. package/dist/chunks/portal-context-BBbzDKmY.js.map +1 -1
  75. package/dist/chunks/{radio-Yl0nO-Sj.js → radio-CDDFpdtL.js} +4 -4
  76. package/dist/chunks/{radio-Yl0nO-Sj.js.map → radio-CDDFpdtL.js.map} +1 -1
  77. package/dist/chunks/{range-popup-CkhsK3wI.js → range-popup-CRyWYUB1.js} +5 -5
  78. package/dist/chunks/{range-popup-CkhsK3wI.js.map → range-popup-CRyWYUB1.js.map} +1 -1
  79. package/dist/chunks/{rights-BlQx9C_j.js → rights-Cyp0Pzp-.js} +5 -5
  80. package/dist/chunks/{rights-BlQx9C_j.js.map → rights-Cyp0Pzp-.js.map} +1 -1
  81. package/dist/chunks/{segmented-C97zvDR1.js → segmented-CErcoxwi.js} +2 -2
  82. package/dist/chunks/{segmented-C97zvDR1.js.map → segmented-CErcoxwi.js.map} +1 -1
  83. package/dist/chunks/{sidebar-DtFlejU7.js → sidebar-3r1ZRXlN.js} +253 -235
  84. package/dist/chunks/sidebar-3r1ZRXlN.js.map +1 -0
  85. package/dist/chunks/{sidebar-menu-CxQbGwyj.js → sidebar-menu-BN3jkTlK.js} +2 -2
  86. package/dist/chunks/{sidebar-menu-CxQbGwyj.js.map → sidebar-menu-BN3jkTlK.js.map} +1 -1
  87. package/dist/chunks/{switch-b-VkStWj.js → switch-BNMq_kGt.js} +2 -2
  88. package/dist/chunks/{switch-b-VkStWj.js.map → switch-BNMq_kGt.js.map} +1 -1
  89. package/dist/chunks/{tag-DNdX1XRR.js → tag-D_M1s2qS.js} +2 -2
  90. package/dist/chunks/{tag-DNdX1XRR.js.map → tag-D_M1s2qS.js.map} +1 -1
  91. package/dist/chunks/{text-DCGGNqTM.js → text-CIXH8rmT.js} +2 -2
  92. package/dist/chunks/{text-DCGGNqTM.js.map → text-CIXH8rmT.js.map} +1 -1
  93. package/dist/chunks/{textarea-CT2S2JVM.js → textarea--4FRL3Pb.js} +3 -3
  94. package/dist/chunks/{textarea-CT2S2JVM.js.map → textarea--4FRL3Pb.js.map} +1 -1
  95. package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -1
  96. package/dist/chunks/{timeseries-B-8OfeZm.js → timeseries-D1xjRXfk.js} +2 -2
  97. package/dist/chunks/{timeseries-B-8OfeZm.js.map → timeseries-D1xjRXfk.js.map} +1 -1
  98. package/dist/chunks/{toolbar-DL6zVrzU.js → toolbar-WA_oZgu-.js} +5 -4
  99. package/dist/chunks/{toolbar-DL6zVrzU.js.map → toolbar-WA_oZgu-.js.map} +1 -1
  100. package/dist/chunks/tooltip-OcwO0VUT.js +154 -0
  101. package/dist/chunks/tooltip-OcwO0VUT.js.map +1 -0
  102. package/dist/chunks/{tooltip-root-BeAMXzxU.js → tooltip-root-DzahJDVj.js} +2 -2
  103. package/dist/chunks/{tooltip-root-BeAMXzxU.js.map → tooltip-root-DzahJDVj.js.map} +1 -1
  104. package/dist/chunks/{use-scroll-margin-DfdTc_5D.js → use-scroll-margin-atRtf0v_.js} +14 -10
  105. package/dist/chunks/use-scroll-margin-atRtf0v_.js.map +1 -0
  106. package/dist/chunks/{virtual-rows-yAMjeAwj.js → virtual-rows-CC_kc2PR.js} +2 -2
  107. package/dist/chunks/{virtual-rows-yAMjeAwj.js.map → virtual-rows-CC_kc2PR.js.map} +1 -1
  108. package/dist/chunks/{zh-CN-CKffAT7j.js → zh-CN-29X4CDLE.js} +3 -1
  109. package/dist/chunks/zh-CN-29X4CDLE.js.map +1 -0
  110. package/dist/components/agent-avatar.js +2 -0
  111. package/dist/components/app-frame.js +2 -2
  112. package/dist/components/banner.js +1 -1
  113. package/dist/components/button-group.js +2 -2
  114. package/dist/components/button.js +1 -1
  115. package/dist/components/calendar.js +1 -1
  116. package/dist/components/charts/bar.js +1 -1
  117. package/dist/components/charts/donut.js +1 -1
  118. package/dist/components/charts/gauge.js +1 -1
  119. package/dist/components/charts/sankey.js +1 -1
  120. package/dist/components/charts/timeseries.js +1 -1
  121. package/dist/components/charts.js +2 -2
  122. package/dist/components/checkbox.js +1 -1
  123. package/dist/components/code-block.js +1 -1
  124. package/dist/components/combobox.js +1 -1
  125. package/dist/components/command-list.js +2 -2
  126. package/dist/components/command-palette.js +85 -81
  127. package/dist/components/command-palette.js.map +1 -1
  128. package/dist/components/copy-button.js +1 -1
  129. package/dist/components/data-table.js +191 -187
  130. package/dist/components/data-table.js.map +1 -1
  131. package/dist/components/date-picker.js +6 -4
  132. package/dist/components/date-picker.js.map +1 -1
  133. package/dist/components/dialog.js +125 -91
  134. package/dist/components/dialog.js.map +1 -1
  135. package/dist/components/display-options.js +49 -46
  136. package/dist/components/display-options.js.map +1 -1
  137. package/dist/components/filter-chip.js +3 -3
  138. package/dist/components/filter-chip.js.map +1 -1
  139. package/dist/components/filter-row.js +1 -1
  140. package/dist/components/icon-button.js +1 -1
  141. package/dist/components/icon.js +1 -1
  142. package/dist/components/input.js +49 -49
  143. package/dist/components/input.js.map +1 -1
  144. package/dist/components/kaeso/conversation.js +3 -3
  145. package/dist/components/kaeso/identity.js +1 -1
  146. package/dist/components/kaeso/moments.js +3 -3
  147. package/dist/components/kaeso/rights.js +1 -1
  148. package/dist/components/kaeso/usage.js +8 -8
  149. package/dist/components/kaeso/usage.js.map +1 -1
  150. package/dist/components/kaeso.js +263 -95
  151. package/dist/components/kaeso.js.map +1 -1
  152. package/dist/components/key-value.js +2 -2
  153. package/dist/components/link.js +1 -1
  154. package/dist/components/list.js +1 -1
  155. package/dist/components/markdown.js +1 -1
  156. package/dist/components/menu.js +2 -2
  157. package/dist/components/page-header.js +1 -1
  158. package/dist/components/pagination.js +1 -1
  159. package/dist/components/playground.js +27 -26
  160. package/dist/components/playground.js.map +1 -1
  161. package/dist/components/popover.js +12 -11
  162. package/dist/components/popover.js.map +1 -1
  163. package/dist/components/radio.js +1 -1
  164. package/dist/components/segmented.js +1 -1
  165. package/dist/components/settings.js +8 -8
  166. package/dist/components/settings.js.map +1 -1
  167. package/dist/components/sheet.js +2 -2
  168. package/dist/components/sidebar.js +1 -1
  169. package/dist/components/switch.js +1 -1
  170. package/dist/components/tabs.js +22 -22
  171. package/dist/components/tabs.js.map +1 -1
  172. package/dist/components/tag.js +1 -1
  173. package/dist/components/text.js +1 -1
  174. package/dist/components/theme-menu.js +33 -30
  175. package/dist/components/theme-menu.js.map +1 -1
  176. package/dist/components/thumbnail.js +41 -0
  177. package/dist/components/thumbnail.js.map +1 -0
  178. package/dist/components/toast.js +96 -87
  179. package/dist/components/toast.js.map +1 -1
  180. package/dist/components/toolbar.js +1 -1
  181. package/dist/components/tooltip.js +1 -1
  182. package/dist/format.js.map +1 -1
  183. package/dist/i18n-provider.js +1 -1
  184. package/dist/index.js +89 -87
  185. package/dist/kaeso.css +3 -0
  186. package/dist/styles.css +1 -1
  187. package/dist/types/blocks/delete-resource/delete-resource.d.ts +2 -5
  188. package/dist/types/blocks/resource-list/resource-list.d.ts +1 -4
  189. package/dist/types/component-docs.d.ts +1 -1
  190. package/dist/types/components/agent-avatar/agent-avatar.d.ts +94 -0
  191. package/dist/types/components/agent-avatar/docs.d.ts +19 -0
  192. package/dist/types/components/agent-avatar/index.d.ts +3 -0
  193. package/dist/types/components/agent-avatar/model-name.d.ts +9 -0
  194. package/dist/types/components/agent-avatar/models.d.ts +4 -0
  195. package/dist/types/components/app-frame/app-frame.d.ts +3 -8
  196. package/dist/types/components/app-frame/nav-sheet.d.ts +2 -4
  197. package/dist/types/components/calendar/calendar.d.ts +1 -4
  198. package/dist/types/components/charts/core.d.ts +11 -18
  199. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  200. package/dist/types/components/combobox/combobox.d.ts +26 -2
  201. package/dist/types/components/command-list/picker-popover.d.ts +1 -4
  202. package/dist/types/components/command-palette/command-palette.d.ts +1 -4
  203. package/dist/types/components/data-table/data-table.d.ts +2 -1
  204. package/dist/types/components/data-table/docs.d.ts +1 -0
  205. package/dist/types/components/dialog/dialog.d.ts +7 -9
  206. package/dist/types/components/dialog/docs.d.ts +2 -0
  207. package/dist/types/components/dialog/scope.d.ts +2 -0
  208. package/dist/types/components/dialog/step-dialog.d.ts +38 -5
  209. package/dist/types/components/display-options/display-options.d.ts +2 -5
  210. package/dist/types/components/input/input.d.ts +23 -0
  211. package/dist/types/components/kaeso/client-button.d.ts +17 -0
  212. package/dist/types/components/kaeso/docs.d.ts +18 -0
  213. package/dist/types/components/kaeso/grant-summary.d.ts +12 -0
  214. package/dist/types/components/kaeso/identity.d.ts +2 -0
  215. package/dist/types/components/kaeso/index.d.ts +2 -0
  216. package/dist/types/components/kaeso/provider-picker.d.ts +5 -0
  217. package/dist/types/components/kaeso/usage.d.ts +2 -0
  218. package/dist/types/components/list/list.d.ts +4 -8
  219. package/dist/types/components/menu/docs.d.ts +8 -1
  220. package/dist/types/components/menu/menu.d.ts +19 -31
  221. package/dist/types/components/playground/parameter-panel.d.ts +1 -4
  222. package/dist/types/components/popover/hover-card.d.ts +2 -0
  223. package/dist/types/components/radio/docs.d.ts +15 -0
  224. package/dist/types/components/radio/radio.d.ts +2 -4
  225. package/dist/types/components/settings/settings.d.ts +2 -0
  226. package/dist/types/components/sidebar/sidebar.d.ts +13 -35
  227. package/dist/types/components/tabs/tabs.d.ts +15 -0
  228. package/dist/types/components/theme-menu/docs.d.ts +2 -0
  229. package/dist/types/components/theme-menu/theme-menu.d.ts +6 -5
  230. package/dist/types/components/thumbnail/docs.d.ts +10 -0
  231. package/dist/types/components/thumbnail/index.d.ts +1 -0
  232. package/dist/types/components/thumbnail/thumbnail.d.ts +26 -0
  233. package/dist/types/components/toast/toast.d.ts +5 -12
  234. package/dist/types/components/toolbar/toolbar.d.ts +1 -6
  235. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  236. package/dist/types/components/tooltip/trigger-props.d.ts +0 -1
  237. package/dist/types/format/index.d.ts +5 -5
  238. package/dist/types/hooks/use-scroll-margin.d.ts +1 -1
  239. package/dist/types/icons/groups.d.ts +2 -2
  240. package/dist/types/icons/vocabulary.d.ts +15 -0
  241. package/dist/types/index.d.ts +2 -0
  242. package/dist/types/utils/inset.d.ts +4 -0
  243. package/dist/types/utils/link-provider.d.ts +1 -1
  244. package/dist/types/utils/merge-refs.d.ts +3 -0
  245. package/dist/types/utils/portal-context.d.ts +1 -1
  246. package/dist/utils.js +3 -3
  247. package/foundations/shape.md +1 -1
  248. package/package.json +2 -2
  249. package/dist/chunks/app-frame-C8csevkL.js.map +0 -1
  250. package/dist/chunks/calendar--YemJsv4.js.map +0 -1
  251. package/dist/chunks/checkbox-CDfC6E-M.js.map +0 -1
  252. package/dist/chunks/combobox-BARyrpXH.js +0 -314
  253. package/dist/chunks/combobox-BARyrpXH.js.map +0 -1
  254. package/dist/chunks/core-Bl9NrBLS.js.map +0 -1
  255. package/dist/chunks/de-BnNQtBSV.js.map +0 -1
  256. package/dist/chunks/dialog-DQ9vZ7vr.js +0 -353
  257. package/dist/chunks/dialog-DQ9vZ7vr.js.map +0 -1
  258. package/dist/chunks/icon-CBzvyEqC.js +0 -91
  259. package/dist/chunks/icon-CBzvyEqC.js.map +0 -1
  260. package/dist/chunks/identity-DPuTkMsa.js.map +0 -1
  261. package/dist/chunks/input-TyLIaQ5k.js.map +0 -1
  262. package/dist/chunks/inset-BnBj8NJV.js.map +0 -1
  263. package/dist/chunks/link-provider-BsUxhZKG.js +0 -27
  264. package/dist/chunks/link-provider-BsUxhZKG.js.map +0 -1
  265. package/dist/chunks/menu-fl_QQb38.js.map +0 -1
  266. package/dist/chunks/nav-sheet-B2rNb8GB.js +0 -60
  267. package/dist/chunks/nav-sheet-B2rNb8GB.js.map +0 -1
  268. package/dist/chunks/sidebar-DtFlejU7.js.map +0 -1
  269. package/dist/chunks/tooltip-BMQ9BtPp.js +0 -151
  270. package/dist/chunks/tooltip-BMQ9BtPp.js.map +0 -1
  271. package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +0 -1
  272. package/dist/chunks/zh-CN-CKffAT7j.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kaeso.js","names":["BaseRadioGroup","cn","useUiText","useLocale","useField","useFieldControl","withField","RadioCircle","Select","CommandList","PickerTrigger","PickerPopover","Badge","ModelLabel","RequestTimeline","KeyDisplay","StatusCode","KAESO_IDENTITY_DEFAULT_VARIANTS","ProviderBadge","KAESO_IDENTITY_VARIANTS","ProviderCard","CapabilityIcons","providerName","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","off","row","Tooltip","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","useProviderGroups","locale","useMemo","nameOf","p","byName","a","b","item","connected","providers","rest","allLabel","ProviderPicker","force","props","field","fc","open","setOpen","useState","listLabel","search","placeholder","list","height","autoFocus","description","error","control","chosen","size","ConversationView","EnvironmentSnippet","KAESO_CONVERSATION_DEFAULT_VARIANTS","KAESO_CONVERSATION_VARIANTS","KAESO_MOMENTS_DEFAULT_VARIANTS","KAESO_MOMENTS_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"],"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 { 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 },\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 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 = \"\";\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 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 === \"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"],"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","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,8 +1,8 @@
1
1
  "use client";
2
2
  import { t as e } from "../chunks/cn-Dj6sRgkF.js";
3
- import { r as t } from "../chunks/tooltip-BMQ9BtPp.js";
3
+ import { r as t } from "../chunks/tooltip-OcwO0VUT.js";
4
4
  import { t as n } from "../chunks/use-truncated-CW0hByYt.js";
5
- import { n as r } from "../chunks/copy-button-7-irieJw.js";
5
+ import { n as r } from "../chunks/copy-button-FJvPJn72.js";
6
6
  import { forwardRef as i, useRef as a } from "react";
7
7
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
8
  //#region src/components/key-value/key-value.tsx
@@ -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-B2I55xg9.js";
2
+ export { t as KAESO_LINK_DEFAULT_VARIANTS, n as KAESO_LINK_VARIANTS, r as Link } from "../chunks/link-KWI7PevW.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-CkOozrVY.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-M1csq-d4.js";
@@ -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-BEgwZFlu.js";
3
+ import { a as t, i as n, n as r, r as i, s as a, t as o } from "../chunks/markdown-DULktoTK.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
2
  import { c as e } from "../chunks/styles-CVJU9t9v.js";
3
- import { a as t, i as n, n as r, r as i, t as a } from "../chunks/menu-fl_QQb38.js";
4
- export { a as ContextMenu, r as KAESO_MENU_DEFAULT_VARIANTS, i as KAESO_MENU_VARIANTS, n as Menu, t as Menubar, e as menuStyles };
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";
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_PAGE_HEADER_DEFAULT_VARIANTS, n as KAESO_PAGE_HEADER_VARIANTS, r as PageHeader } from "../chunks/page-header-DjUMDG69.js";
2
+ export { t as KAESO_PAGE_HEADER_DEFAULT_VARIANTS, n as KAESO_PAGE_HEADER_VARIANTS, r as PageHeader } from "../chunks/page-header-DL2y2iZp.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-BaY8jdli.js";
2
+ export { t as KAESO_PAGINATION_DEFAULT_VARIANTS, n as KAESO_PAGINATION_VARIANTS, r as Pagination } from "../chunks/pagination-Cn_qF4cg.js";
@@ -5,20 +5,20 @@ import { i as n, r } from "../chunks/context-BELWW79w.js";
5
5
  import { formatContext as i, formatDuration as a, formatNumber as o, formatUSD as s } from "../format.js";
6
6
  import { t as c } from "../chunks/icon-D7ja-_Yk.js";
7
7
  import { t as l } from "../chunks/use-truncated-CW0hByYt.js";
8
- import { n as u } from "../chunks/button-Dzu7_csE.js";
9
- import { t as d } from "../chunks/icon-button-CPYR21Sz.js";
8
+ import { n as u } from "../chunks/button-CzuxqawA.js";
9
+ import { t as d } from "../chunks/icon-button-CrdF_eMG.js";
10
10
  import { a as f, o as p, s as m } from "../chunks/field-TviMvYa2.js";
11
- import { o as h, r as g } from "../chunks/textarea-CT2S2JVM.js";
11
+ import { o as h, r as g } from "../chunks/textarea--4FRL3Pb.js";
12
12
  import { r as _ } from "../chunks/slider-Ci83PGtj.js";
13
- import { r as v } from "../chunks/switch-b-VkStWj.js";
14
- import { r as y } from "../chunks/segmented-C97zvDR1.js";
13
+ import { r as v } from "../chunks/switch-BNMq_kGt.js";
14
+ import { r as y } from "../chunks/segmented-CErcoxwi.js";
15
15
  import { n as b, r as x } from "../chunks/select-x4XVsdCI.js";
16
- import { i as S } from "../chunks/popover-CFMwaeIP.js";
17
- import { r as C } from "../chunks/combobox-BARyrpXH.js";
18
- import { a as ee, t as w } from "../chunks/command-list-0RR4DpUe.js";
19
- import { i as T, r as E } from "../chunks/picker-popover-DShea4b8.js";
20
- import { a as D, o as O, t as k, u as A } from "../chunks/identity-DPuTkMsa.js";
21
- import { r as j } from "../chunks/markdown-BEgwZFlu.js";
16
+ import { i as S } from "../chunks/popover-DNN4S47w.js";
17
+ import { r as C } from "../chunks/combobox-DjDI7SUC.js";
18
+ import { a as ee, t as w } from "../chunks/command-list-C2Y7V_lt.js";
19
+ import { i as T, r as E } from "../chunks/picker-popover-BxyU1U9F.js";
20
+ import { c as D, f as O, s as k, t as A } from "../chunks/identity-BmhQ6BQ-.js";
21
+ import { r as j } from "../chunks/markdown-DULktoTK.js";
22
22
  import { Children as M, createContext as te, forwardRef as N, isValidElement as ne, useCallback as P, useContext as re, useEffect as F, useId as ie, useLayoutEffect as I, useMemo as L, useRef as R, useState as z, useSyncExternalStore as ae } from "react";
23
23
  import { Fragment as oe, jsx as B, jsxs as V } from "react/jsx-runtime";
24
24
  import { Add01Icon as se, ArrowLeft01Icon as ce, ArrowRight01Icon as H, Cancel01Icon as U, SlidersHorizontalIcon as W } from "@hugeicons/core-free-icons";
@@ -765,8 +765,8 @@ var Re = /* @__PURE__ */ N(function({ value: t, onValueChange: r, defaults: i, i
765
765
  });
766
766
  });
767
767
  process.env.NODE_ENV !== "production" && (Re.displayName = "ParameterPanel");
768
- function ze({ trigger: e, title: t, open: r, defaultOpen: i, onOpenChange: a, side: o = "bottom", align: s = "end", ...c }) {
769
- let l = n(), u = t ?? l("parameterPopover.parameters", "Parameters");
768
+ var ze = /* @__PURE__ */ N(function({ trigger: e, title: t, open: r, defaultOpen: i, onOpenChange: a, side: o = "bottom", align: s = "end", ...c }, l) {
769
+ let u = n(), f = t ?? u("parameterPopover.parameters", "Parameters");
770
770
  return /* @__PURE__ */ V(S, {
771
771
  trapFocus: !0,
772
772
  ...r === void 0 ? {} : { open: r },
@@ -774,17 +774,18 @@ function ze({ trigger: e, title: t, open: r, defaultOpen: i, onOpenChange: a, si
774
774
  ...a ? { onOpenChange: a } : {},
775
775
  children: [/* @__PURE__ */ B(S.Trigger, { children: e ?? /* @__PURE__ */ B(d, {
776
776
  icon: W,
777
- "aria-label": u,
777
+ "aria-label": f,
778
778
  size: "sm"
779
779
  }) }), /* @__PURE__ */ B(S.Content, {
780
- title: u,
780
+ ref: l,
781
+ title: f,
781
782
  side: o,
782
783
  align: s,
783
784
  className: "w-320 max-w-(--available-width)",
784
785
  children: /* @__PURE__ */ B(Re, { ...c })
785
786
  })]
786
787
  });
787
- }
788
+ });
788
789
  process.env.NODE_ENV !== "production" && (ze.displayName = "ParameterPopover");
789
790
  //#endregion
790
791
  //#region src/components/playground/model-picker.tsx
@@ -801,7 +802,7 @@ function Ge({ option: t, query: n, providerLabel: r }) {
801
802
  r !== void 0 && /* @__PURE__ */ B("span", {
802
803
  "aria-hidden": !0,
803
804
  className: "flex",
804
- children: /* @__PURE__ */ B(O, {
805
+ children: /* @__PURE__ */ B(D, {
805
806
  provider: t.provider,
806
807
  name: r
807
808
  })
@@ -822,7 +823,7 @@ function Ge({ option: t, query: n, providerLabel: r }) {
822
823
  })
823
824
  })]
824
825
  }),
825
- t.capabilities && t.capabilities.length > 0 && /* @__PURE__ */ B(k, {
826
+ t.capabilities && t.capabilities.length > 0 && /* @__PURE__ */ B(A, {
826
827
  capabilities: t.capabilities,
827
828
  className: "hidden sm:flex"
828
829
  }),
@@ -859,7 +860,7 @@ function qe(e, t, n, r) {
859
860
  leading: /* @__PURE__ */ B("span", {
860
861
  "aria-hidden": !0,
861
862
  className: "flex",
862
- children: /* @__PURE__ */ B(O, {
863
+ children: /* @__PURE__ */ B(D, {
863
864
  provider: t,
864
865
  name: r(t),
865
866
  size: "sm"
@@ -874,7 +875,7 @@ function qe(e, t, n, r) {
874
875
  }];
875
876
  }
876
877
  function Je(e, t) {
877
- let n = r(), i = L(() => new Map(t.map((e) => [e.id, e])), [t]), a = P((e) => A(e, i.get(e)?.name), [i]);
878
+ let n = r(), i = L(() => new Map(t.map((e) => [e.id, e])), [t]), a = P((e) => O(e, i.get(e)?.name), [i]);
878
879
  return {
879
880
  nameOf: a,
880
881
  providerOrder: L(() => [...new Set(e.map((e) => e.provider))].sort((e, t) => Number(!!i.get(t)?.connected) - Number(!!i.get(e)?.connected) || a(e).localeCompare(a(t), n, { sensitivity: "base" })), [
@@ -895,7 +896,7 @@ function Ye(e, { providers: t = [], groupByProvider: n } = {}) {
895
896
  ]);
896
897
  }
897
898
  var Xe = /* @__PURE__ */ N(function(t, r) {
898
- let { options: i, providers: a = [], recent: s = [], groupByProvider: c, placeholder: l, "aria-label": u, appearance: d = "ghost", size: h = "sm", fullWidth: g, disabled: _, invalid: y, open: b, onOpenChange: S, "data-force": C, className: k, label: A, description: j, error: M, optional: te, required: N, layout: ne } = t, P = n(), re = f(), F = p(t), [ie, I] = z(!1), R = b ?? ie, ae = (e) => {
899
+ let { options: i, providers: a = [], recent: s = [], groupByProvider: c, placeholder: l, "aria-label": u, appearance: d = "ghost", size: h = "sm", fullWidth: g, disabled: _, invalid: y, open: b, onOpenChange: S, "data-force": C, className: O, label: A, description: j, error: M, optional: te, required: N, layout: ne } = t, P = n(), re = f(), F = p(t), [ie, I] = z(!1), R = b ?? ie, ae = (e) => {
899
900
  b === void 0 && I(e), S?.(e);
900
901
  }, [se, ce] = z(() => t.defaultValue ?? (t.multiple ? [] : null)), H = t.value === void 0 ? se : t.value, U = Array.isArray(H) ? H : H ? [H] : [], W = t.multiple ? void 0 : t.allLabel, [G, le] = z(""), [K, ue] = z(null), [q, de] = z(!1), [fe, pe] = z(R);
901
902
  R !== fe && (pe(R), R && (le(""), ue(null)));
@@ -974,7 +975,7 @@ var Xe = /* @__PURE__ */ N(function(t, r) {
974
975
  /* @__PURE__ */ B("span", {
975
976
  "aria-hidden": !0,
976
977
  className: "flex shrink-0",
977
- children: /* @__PURE__ */ B(O, {
978
+ children: /* @__PURE__ */ B(D, {
978
979
  provider: e,
979
980
  size: "sm"
980
981
  })
@@ -995,7 +996,7 @@ var Xe = /* @__PURE__ */ N(function(t, r) {
995
996
  label: P("modelPicker.showDeprecated", "Deprecated"),
996
997
  checked: q,
997
998
  onCheckedChange: de
998
- })] }) : void 0, Q = U[0] ? J.get(U[0]) : void 0, xe = t.multiple ? Q ? U.length === 1 ? /* @__PURE__ */ B(D, {
999
+ })] }) : void 0, Q = U[0] ? J.get(U[0]) : void 0, xe = t.multiple ? Q ? U.length === 1 ? /* @__PURE__ */ B(k, {
999
1000
  provider: Q.provider,
1000
1001
  providerName: Y(Q.provider),
1001
1002
  model: Q.model ?? Q.value,
@@ -1003,7 +1004,7 @@ var Xe = /* @__PURE__ */ N(function(t, r) {
1003
1004
  }) : P("modelPicker.firstAndMore", "{first} +{count}", {
1004
1005
  first: Q.name ?? Q.model ?? Q.value,
1005
1006
  count: String(U.length - 1)
1006
- }) : void 0 : Q ? /* @__PURE__ */ B(D, {
1007
+ }) : void 0 : Q ? /* @__PURE__ */ B(k, {
1007
1008
  provider: Q.provider,
1008
1009
  providerName: Y(Q.provider),
1009
1010
  model: Q.model ?? Q.value,
@@ -1024,7 +1025,7 @@ var Xe = /* @__PURE__ */ N(function(t, r) {
1024
1025
  ...g ? { fullWidth: g } : {},
1025
1026
  ...C ? { "data-force": C } : {},
1026
1027
  placeholder: l ?? (t.multiple ? P("modelPicker.chooseSome", "Choose models") : P("modelPicker.choose", "Choose a model")),
1027
- className: e("max-w-full", !(A || j || M) && k),
1028
+ className: e("max-w-full", !(A || j || M) && O),
1028
1029
  children: xe
1029
1030
  }),
1030
1031
  children: /* @__PURE__ */ B(w, {
@@ -1050,7 +1051,7 @@ var Xe = /* @__PURE__ */ N(function(t, r) {
1050
1051
  layout: ne,
1051
1052
  id: F.wrapId,
1052
1053
  disabled: _,
1053
- className: k
1054
+ className: O
1054
1055
  }, Ce);
1055
1056
  });
1056
1057
  process.env.NODE_ENV !== "production" && (Xe.displayName = "ModelPicker");