@logicplanes/kaeso-ui 0.4.7 → 0.5.0

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 (150) hide show
  1. package/NOTICE.md +1 -1
  2. package/ai/component-guides.md +40 -6
  3. package/ai/component-registry.json +67 -5
  4. package/ai/component-registry.md +23 -5
  5. package/ai/icons.md +1 -1
  6. package/ai/tokens.md +1 -1
  7. package/dist/blocks/delete-resource.js +1 -1
  8. package/dist/blocks/pages.js +2 -2
  9. package/dist/blocks/resource-list.js +3 -3
  10. package/dist/chunks/{app-frame-CfJ7s3Q0.js → app-frame-B1FXVFYx.js} +5 -5
  11. package/dist/chunks/{app-frame-CfJ7s3Q0.js.map → app-frame-B1FXVFYx.js.map} +1 -1
  12. package/dist/chunks/{banner-B3DGLTBu.js → banner-BinTH032.js} +2 -2
  13. package/dist/chunks/{banner-B3DGLTBu.js.map → banner-BinTH032.js.map} +1 -1
  14. package/dist/chunks/{button-IblhXUyZ.js → button-DrmFgdIi.js} +2 -2
  15. package/dist/chunks/button-DrmFgdIi.js.map +1 -0
  16. package/dist/chunks/{checkbox-9tbimmF3.js → checkbox-ahl1SOqU.js} +2 -2
  17. package/dist/chunks/{checkbox-9tbimmF3.js.map → checkbox-ahl1SOqU.js.map} +1 -1
  18. package/dist/chunks/{code-block-KIvuE8jg.js → code-block-CE3H3nMu.js} +3 -3
  19. package/dist/chunks/{code-block-KIvuE8jg.js.map → code-block-CE3H3nMu.js.map} +1 -1
  20. package/dist/chunks/{code-block-64e-Cy1S.js → code-block-O_EPmMIQ.js} +2 -2
  21. package/dist/chunks/{code-block-64e-Cy1S.js.map → code-block-O_EPmMIQ.js.map} +1 -1
  22. package/dist/chunks/{combobox-DkcjkWc6.js → combobox-DghYPLVQ.js} +7 -3
  23. package/dist/chunks/combobox-DghYPLVQ.js.map +1 -0
  24. package/dist/chunks/{command-list-CypqsC4T.js → command-list-BUmEaaBi.js} +3 -3
  25. package/dist/chunks/{command-list-CypqsC4T.js.map → command-list-BUmEaaBi.js.map} +1 -1
  26. package/dist/chunks/{copy-button-CwU8t_9_.js → copy-button-DBPAA1g0.js} +2 -2
  27. package/dist/chunks/{copy-button-CwU8t_9_.js.map → copy-button-DBPAA1g0.js.map} +1 -1
  28. package/dist/chunks/{core-B0bULn-t.js → core-Cw3pNRp3.js} +2 -2
  29. package/dist/chunks/{core-B0bULn-t.js.map → core-Cw3pNRp3.js.map} +1 -1
  30. package/dist/chunks/{data-table-z7z6DqMJ.js → data-table-CGecI-FI.js} +6 -6
  31. package/dist/chunks/data-table-CGecI-FI.js.map +1 -0
  32. package/dist/chunks/{date-popup-DAnjptFt.js → date-popup-C6vVOOWF.js} +2 -2
  33. package/dist/chunks/{date-popup-DAnjptFt.js.map → date-popup-C6vVOOWF.js.map} +1 -1
  34. package/dist/chunks/{dialog-2zb6ClNR.js → dialog-s3_LUPBi.js} +4 -4
  35. package/dist/chunks/{dialog-2zb6ClNR.js.map → dialog-s3_LUPBi.js.map} +1 -1
  36. package/dist/chunks/{disclosure-BtYRTDO3.js → disclosure-3CIz2WZa.js} +2 -2
  37. package/dist/chunks/disclosure-3CIz2WZa.js.map +1 -0
  38. package/dist/chunks/{domain-BsM9UmAg.js → domain-CrQX3p6E.js} +2 -2
  39. package/dist/chunks/{domain-BsM9UmAg.js.map → domain-CrQX3p6E.js.map} +1 -1
  40. package/dist/chunks/{icon-button-Dfwpvmav.js → icon-button-6kOn2zrP.js} +2 -2
  41. package/dist/chunks/{icon-button-Dfwpvmav.js.map → icon-button-6kOn2zrP.js.map} +1 -1
  42. package/dist/chunks/identity-BwYixi8Q.js +520 -0
  43. package/dist/chunks/identity-BwYixi8Q.js.map +1 -0
  44. package/dist/chunks/{input-Bo5-UZg2.js → input-D1SeLe3X.js} +2 -2
  45. package/dist/chunks/{input-Bo5-UZg2.js.map → input-D1SeLe3X.js.map} +1 -1
  46. package/dist/chunks/{input-group-jPcK9T_a.js → input-group-BbxwEAUP.js} +2 -2
  47. package/dist/chunks/{input-group-jPcK9T_a.js.map → input-group-BbxwEAUP.js.map} +1 -1
  48. package/dist/chunks/{iso-field-DoqHBg8n.js → iso-field-BVOKAY4H.js} +2 -2
  49. package/dist/chunks/{iso-field-DoqHBg8n.js.map → iso-field-BVOKAY4H.js.map} +1 -1
  50. package/dist/chunks/{list-CU_AoVY3.js → list-o8wcuBOz.js} +3 -3
  51. package/dist/chunks/{list-CU_AoVY3.js.map → list-o8wcuBOz.js.map} +1 -1
  52. package/dist/chunks/{markdown-C565aBR7.js → markdown-BZKZi9d8.js} +4 -4
  53. package/dist/chunks/{markdown-C565aBR7.js.map → markdown-BZKZi9d8.js.map} +1 -1
  54. package/dist/chunks/{menu-Clvv6ftq.js → menu-BDce2kiw.js} +2 -2
  55. package/dist/chunks/{menu-Clvv6ftq.js.map → menu-BDce2kiw.js.map} +1 -1
  56. package/dist/chunks/{nav-sheet-Dt6JSvzX.js → nav-sheet-S7tagFJT.js} +3 -3
  57. package/dist/chunks/{nav-sheet-Dt6JSvzX.js.map → nav-sheet-S7tagFJT.js.map} +1 -1
  58. package/dist/chunks/{page-header-BQijP6Rp.js → page-header-DUaKLpK3.js} +2 -2
  59. package/dist/chunks/{page-header-BQijP6Rp.js.map → page-header-DUaKLpK3.js.map} +1 -1
  60. package/dist/chunks/{pagination-D7fAm8qg.js → pagination-D9hM6W2z.js} +3 -3
  61. package/dist/chunks/{pagination-D7fAm8qg.js.map → pagination-D9hM6W2z.js.map} +1 -1
  62. package/dist/chunks/{picker-popover-1FHb1LQG.js → picker-popover-PzVOo62-.js} +4 -4
  63. package/dist/chunks/{picker-popover-1FHb1LQG.js.map → picker-popover-PzVOo62-.js.map} +1 -1
  64. package/dist/chunks/{range-popup-lGiZsG3s.js → range-popup-Dt6Q0Ryw.js} +3 -3
  65. package/dist/chunks/{range-popup-lGiZsG3s.js.map → range-popup-Dt6Q0Ryw.js.map} +1 -1
  66. package/dist/chunks/{rights-B68ocZuq.js → rights-DAHTG_kH.js} +4 -4
  67. package/dist/chunks/{rights-B68ocZuq.js.map → rights-DAHTG_kH.js.map} +1 -1
  68. package/dist/chunks/{select-BqjmQOqx.js → select-UTdHKubp.js} +2 -2
  69. package/dist/chunks/{select-BqjmQOqx.js.map → select-UTdHKubp.js.map} +1 -1
  70. package/dist/chunks/{sidebar-Dq7oGOje.js → sidebar-BO1mnjVH.js} +3 -3
  71. package/dist/chunks/{sidebar-Dq7oGOje.js.map → sidebar-BO1mnjVH.js.map} +1 -1
  72. package/dist/chunks/{sidebar-menu-QSSNu1jJ.js → sidebar-menu-C0qJsQF5.js} +2 -2
  73. package/dist/chunks/{sidebar-menu-QSSNu1jJ.js.map → sidebar-menu-C0qJsQF5.js.map} +1 -1
  74. package/dist/chunks/styles-8fn_bHRP.js +21 -0
  75. package/dist/chunks/styles-8fn_bHRP.js.map +1 -0
  76. package/dist/chunks/{textarea-CO0HP6fK.js → textarea-CRmvC4jd.js} +3 -3
  77. package/dist/chunks/{textarea-CO0HP6fK.js.map → textarea-CRmvC4jd.js.map} +1 -1
  78. package/dist/chunks/{timeseries-nDviPxvQ.js → timeseries-CK86u7M0.js} +3 -3
  79. package/dist/chunks/{timeseries-nDviPxvQ.js.map → timeseries-CK86u7M0.js.map} +1 -1
  80. package/dist/components/app-frame.js +2 -2
  81. package/dist/components/banner.js +1 -1
  82. package/dist/components/button-group.js +1 -1
  83. package/dist/components/button.js +1 -1
  84. package/dist/components/charts/bar.js +2 -2
  85. package/dist/components/charts/donut.js +1 -1
  86. package/dist/components/charts/gauge.js +1 -1
  87. package/dist/components/charts/heatmap.js +1 -1
  88. package/dist/components/charts/sankey.js +2 -2
  89. package/dist/components/charts/timeseries.js +1 -1
  90. package/dist/components/charts.js +2 -2
  91. package/dist/components/checkbox.js +1 -1
  92. package/dist/components/code-block.js +2 -2
  93. package/dist/components/collapsible.js +29 -30
  94. package/dist/components/collapsible.js.map +1 -1
  95. package/dist/components/combobox.js +1 -1
  96. package/dist/components/command-list.js +2 -2
  97. package/dist/components/command-palette.js +1 -1
  98. package/dist/components/copy-button.js +1 -1
  99. package/dist/components/data-table.js +1 -1
  100. package/dist/components/date-picker.js +2 -2
  101. package/dist/components/dialog.js +2 -2
  102. package/dist/components/display-options.js +2 -2
  103. package/dist/components/filter-chip.js +3 -3
  104. package/dist/components/filter-toggle.js +35 -0
  105. package/dist/components/filter-toggle.js.map +1 -0
  106. package/dist/components/icon-button.js +1 -1
  107. package/dist/components/input.js +3 -3
  108. package/dist/components/kaeso/conversation.js +2 -2
  109. package/dist/components/kaeso/identity.js +1 -1
  110. package/dist/components/kaeso/moments.js +3 -3
  111. package/dist/components/kaeso/rights.js +1 -1
  112. package/dist/components/kaeso/usage.js +1 -1
  113. package/dist/components/kaeso.js +9 -14
  114. package/dist/components/kaeso.js.map +1 -1
  115. package/dist/components/key-value.js +1 -1
  116. package/dist/components/list.js +1 -1
  117. package/dist/components/markdown.js +1 -1
  118. package/dist/components/menu.js +2 -2
  119. package/dist/components/page-header.js +1 -1
  120. package/dist/components/pagination.js +1 -1
  121. package/dist/components/playground.js +9 -9
  122. package/dist/components/select.js +1 -1
  123. package/dist/components/sheet.js +1 -1
  124. package/dist/components/sidebar.js +1 -1
  125. package/dist/components/tabs.js +4 -4
  126. package/dist/components/tabs.js.map +1 -1
  127. package/dist/components/theme-menu.js +2 -2
  128. package/dist/components/theme-select.js +1 -1
  129. package/dist/index.js +68 -67
  130. package/dist/kaeso.css +11 -12
  131. package/dist/styles.css +1 -1
  132. package/dist/types/components/combobox/combobox.d.ts +2 -0
  133. package/dist/types/components/filter-toggle/docs.d.ts +11 -0
  134. package/dist/types/components/filter-toggle/filter-toggle.d.ts +23 -0
  135. package/dist/types/components/filter-toggle/index.d.ts +1 -0
  136. package/dist/types/components/kaeso/docs.d.ts +1 -0
  137. package/dist/types/components/kaeso/identity.d.ts +1 -0
  138. package/dist/types/components/kaeso/provider-marks.d.ts +27 -2
  139. package/dist/types/components/menu/styles.d.ts +1 -1
  140. package/dist/types/components/tabs/tabs.d.ts +2 -2
  141. package/dist/types/index.d.ts +1 -0
  142. package/package.json +5 -5
  143. package/dist/chunks/button-IblhXUyZ.js.map +0 -1
  144. package/dist/chunks/combobox-DkcjkWc6.js.map +0 -1
  145. package/dist/chunks/data-table-z7z6DqMJ.js.map +0 -1
  146. package/dist/chunks/disclosure-BtYRTDO3.js.map +0 -1
  147. package/dist/chunks/identity-BQoh-UpW.js +0 -365
  148. package/dist/chunks/identity-BQoh-UpW.js.map +0 -1
  149. package/dist/chunks/styles-hkFkoBbi.js +0 -21
  150. package/dist/chunks/styles-hkFkoBbi.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-toggle.js","names":["__icon_Tick02Icon","cn","KAESO_FILTER_TOGGLE_VARIANTS","KAESO_FILTER_TOGGLE_DEFAULT_VARIANTS","FilterToggle","props","pressed","onClick","onPressedChange","size","className","Icon","Tick02Icon","label"],"sources":["../../src/components/filter-toggle/filter-toggle.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { Icon } from \"../icon/icon.js\";\nimport { Tick02Icon as __icon_Tick02Icon } from \"@hugeicons/core-free-icons\";\n\nexport const KAESO_FILTER_TOGGLE_VARIANTS = {\n size: {\n sm: { classes: \"h-32 px-12 gap-6 text-body\" },\n md: { classes: \"h-36 px-16 gap-8 text-body\" },\n },\n} as const;\nexport const KAESO_FILTER_TOGGLE_DEFAULT_VARIANTS = { size: \"sm\" } as const;\n\nexport interface FilterToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\" | \"onChange\" | \"type\"> {\n label: ReactNode;\n pressed: boolean;\n onPressedChange: (pressed: boolean) => void;\n size?: keyof typeof KAESO_FILTER_TOGGLE_VARIANTS.size | undefined;\n}\n\nexport const FilterToggle = /* @__PURE__ */ forwardRef<HTMLButtonElement, FilterToggleProps>(function FilterToggle(\n { label, pressed, onPressedChange, size = \"sm\", className, onClick, ...props },\n ref,\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-pressed={pressed}\n onClick={(e) => {\n onClick?.(e);\n if (!e.defaultPrevented) onPressedChange(!pressed);\n }}\n className={cn(\n \"inline-flex min-w-0 shrink-0 cursor-pointer items-center rounded-pill font-medium whitespace-nowrap material-selector transition-control focus-ring\",\n \"disabled:cursor-not-allowed disabled:text-fg-disabled\",\n pressed ? \"text-fg\" : \"font-regular text-fg-secondary hover:text-fg\",\n KAESO_FILTER_TOGGLE_VARIANTS.size[size].classes,\n className,\n )}\n {...props}\n >\n {pressed && <Icon icon={__icon_Tick02Icon} size=\"sm\" className=\"-ml-2 text-fg\" />}\n <span className=\"truncate\">{label}</span>\n </button>\n );\n});\nif (process.env.NODE_ENV !== \"production\") FilterToggle.displayName = \"FilterToggle\";\n"],"mappings":";;;;;;;AAKA,IAAaE,IAA+B,EAC1C,MAAM;CACJ,IAAI,EAAE,SAAS,6BAA6B;CAC5C,IAAI,EAAE,SAAS,6BAA6B;AAC9C,EACF,GACaC,IAAuC,EAAE,MAAM,KAAK,GASpDC,IAA+B,kBAAiD,SAC3F,EAAE,UAAO,YAAS,oBAAiB,UAAO,MAAM,cAAW,YAAS,GAAGC,KACvE,GACA;CACA,OACE,kBAAC,UAAD;EACO;EACL,MAAK;EACL,gBAAcC;EACd,UAAU,MAAM;GAEd,AADAC,IAAU,CAAC,GACN,EAAE,oBAAkBC,EAAgB,CAACF,CAAO;EACnD;EACA,WAAWL,EACT,uJACA,yDACAK,IAAU,YAAY,gDACtBJ,EAA6B,KAAKO,EAAK,CAAC,SACxCC,CACF;EACA,GAAIL;EAfN,UAAA,CAiBGC,KAAW,kBAACK,GAAD;GAAM,MAAMX;GAAmB,MAAK;GAAK,WAAU;EAAiB,CAAA,GAChF,kBAAC,QAAD;GAAM,WAAU;GAAY,UAAAa;EAAY,CAAA,CAClC;;AAEZ,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAa,cAAc"}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as IconButton, n as KAESO_ICON_BUTTON_DEFAULT_VARIANTS, r as KAESO_ICON_BUTTON_VARIANTS } from "../chunks/icon-button-Dfwpvmav.js";
2
+ export { t as IconButton, n as KAESO_ICON_BUTTON_DEFAULT_VARIANTS, r as KAESO_ICON_BUTTON_VARIANTS } from "../chunks/icon-button-6kOn2zrP.js";
@@ -4,9 +4,9 @@ import { i as t } from "../chunks/context-BELWW79w.js";
4
4
  import { t as n } from "../chunks/icon-CBzOwqrX.js";
5
5
  import { r } from "../chunks/tooltip-Tkm-urbi.js";
6
6
  import { a as i, o as a, s as o } from "../chunks/field-D7m-yl-D.js";
7
- import { a as s, i as c, n as l, o as u, r as d, t as f } from "../chunks/input-group-jPcK9T_a.js";
8
- import { a as p, i as m, n as h, o as g, r as _, t as v } from "../chunks/input-Bo5-UZg2.js";
9
- import { a as y, c as b, i as x, l as S, n as C, o as w, r as T, s as E, t as D } from "../chunks/textarea-CO0HP6fK.js";
7
+ import { a as s, i as c, n as l, o as u, r as d, t as f } from "../chunks/input-group-BbxwEAUP.js";
8
+ import { a as p, i as m, n as h, o as g, r as _, t as v } from "../chunks/input-D1SeLe3X.js";
9
+ import { a as y, c as b, i as x, l as S, n as C, o as w, r as T, s as E, t as D } from "../chunks/textarea-CRmvC4jd.js";
10
10
  import { a as O } from "../chunks/tag-BGr6lTSV.js";
11
11
  import { forwardRef as k, useId as A, useLayoutEffect as j, useRef as M, useState as N } from "react";
12
12
  import { Fragment as P, jsx as F, jsxs as I } from "react/jsx-runtime";
@@ -3,7 +3,7 @@ import { t as e } from "../../chunks/cn-BjnOAUrA.js";
3
3
  import { i as t } from "../../chunks/context-BELWW79w.js";
4
4
  import { t as n } from "../../chunks/icon-CBzOwqrX.js";
5
5
  import { r } from "../../chunks/link-CMjkcLQK.js";
6
- import { t as i } from "../../chunks/banner-B3DGLTBu.js";
6
+ import { t as i } from "../../chunks/banner-BinTH032.js";
7
7
  import { t as a } from "../../chunks/json-view-DZ2nL2Ir.js";
8
8
  import { t as o } from "../../chunks/badge-C0GC3B9X.js";
9
9
  import { t as s } from "../../chunks/reasoning-frame-C3HdQRRS.js";
@@ -12,7 +12,7 @@ import { Suspense as l, forwardRef as u, lazy as d } from "react";
12
12
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
13
13
  import { Image01Icon as m, Pdf01Icon as h, ToolsIcon as g } from "@hugeicons/core-free-icons";
14
14
  //#region src/components/kaeso/conversation.tsx
15
- var _ = /* @__PURE__ */ d(() => import("../../chunks/markdown-C565aBR7.js").then((e) => e.o).then((e) => ({ default: e.Markdown }))), v = { density: {
15
+ var _ = /* @__PURE__ */ d(() => import("../../chunks/markdown-BZKZi9d8.js").then((e) => e.o).then((e) => ({ default: e.Markdown }))), v = { density: {
16
16
  default: { classes: "gap-24" },
17
17
  compact: { classes: "gap-16" }
18
18
  } }, y = { density: "default" };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as CapabilityIcons, n as KAESO_IDENTITY_DEFAULT_VARIANTS, r as KAESO_IDENTITY_VARIANTS, i as KAESO_KEY_DISPLAY_DEFAULT_VARIANTS, a as KAESO_KEY_DISPLAY_VARIANTS, o as KeyDisplay, s as ModelLabel, c as ProviderBadge, l as ProviderCard, u as RequestTimeline, d as StatusCode, f as providerName } from "../../chunks/identity-BQoh-UpW.js";
2
+ export { t as CapabilityIcons, n as KAESO_IDENTITY_DEFAULT_VARIANTS, r as KAESO_IDENTITY_VARIANTS, i as KAESO_KEY_DISPLAY_DEFAULT_VARIANTS, a as KAESO_KEY_DISPLAY_VARIANTS, o as KeyDisplay, s as ModelLabel, c as ProviderBadge, l as ProviderCard, u as RequestTimeline, d as StatusCode, f as providerName } from "../../chunks/identity-BwYixi8Q.js";
@@ -2,10 +2,10 @@
2
2
  import { t as e } from "../../chunks/cn-BjnOAUrA.js";
3
3
  import { i as t } from "../../chunks/context-BELWW79w.js";
4
4
  import { t as n } from "../../chunks/icon-CBzOwqrX.js";
5
- import { n as r } from "../../chunks/button-IblhXUyZ.js";
5
+ import { n as r } from "../../chunks/button-DrmFgdIi.js";
6
6
  import { t as i } from "../../chunks/use-copy-Dm2ncvMX.js";
7
- import { t as a } from "../../chunks/copy-button-CwU8t_9_.js";
8
- import { t as o } from "../../chunks/code-block-64e-Cy1S.js";
7
+ import { t as a } from "../../chunks/copy-button-DBPAA1g0.js";
8
+ import { t as o } from "../../chunks/code-block-O_EPmMIQ.js";
9
9
  import { forwardRef as s } from "react";
10
10
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
11
11
  import { Alert02Icon as u, Copy01Icon as d, Tick02Icon as f } from "@hugeicons/core-free-icons";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as KAESO_RIGHTS_MATRIX_DEFAULT_VARIANTS, n as KAESO_RIGHTS_MATRIX_VARIANTS, r as RightsMatrix } from "../../chunks/rights-B68ocZuq.js";
2
+ export { t as KAESO_RIGHTS_MATRIX_DEFAULT_VARIANTS, n as KAESO_RIGHTS_MATRIX_VARIANTS, r as RightsMatrix } from "../../chunks/rights-DAHTG_kH.js";
@@ -7,7 +7,7 @@ import { r as a } from "../../chunks/tooltip-Tkm-urbi.js";
7
7
  import { r as o } from "../../chunks/text-DkKdTVUf.js";
8
8
  import { a as s } from "../../chunks/meter-CASMHlxl.js";
9
9
  import { t as c } from "../../chunks/badge-C0GC3B9X.js";
10
- import { C as l, M as u, c as d, l as f, w as p } from "../../chunks/core-B0bULn-t.js";
10
+ import { C as l, M as u, c as d, l as f, w as p } from "../../chunks/core-Cw3pNRp3.js";
11
11
  import { forwardRef as m } from "react";
12
12
  import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
13
13
  import { Layers01Icon as v, LeftToRightListBulletIcon as y, Wallet01Icon as b } from "@hugeicons/core-free-icons";
@@ -4,17 +4,17 @@ import { i as t, r as n } from "../chunks/context-BELWW79w.js";
4
4
  import { t as r } from "../chunks/icon-CBzOwqrX.js";
5
5
  import { r as i } from "../chunks/tooltip-Tkm-urbi.js";
6
6
  import { a, o, s } from "../chunks/field-D7m-yl-D.js";
7
- import { o as c } from "../chunks/input-Bo5-UZg2.js";
7
+ import { o as c } from "../chunks/input-D1SeLe3X.js";
8
8
  import { a as l } from "../chunks/radio-C6GtzF_t.js";
9
- import { r as u } from "../chunks/select-BqjmQOqx.js";
10
- import { t as d } from "../chunks/command-list-CypqsC4T.js";
11
- import { i as f, r as p } from "../chunks/picker-popover-1FHb1LQG.js";
9
+ import { r as u } from "../chunks/select-UTdHKubp.js";
10
+ import { t as d } from "../chunks/command-list-BUmEaaBi.js";
11
+ import { i as f, r as p } from "../chunks/picker-popover-PzVOo62-.js";
12
12
  import { t as m } from "../chunks/badge-C0GC3B9X.js";
13
- import { a as h, c as g, d as _, f as v, i as y, l as b, n as x, o as S, r as C, s as w, t as T, u as E } from "../chunks/identity-BQoh-UpW.js";
13
+ import { a as h, c as g, d as _, f as v, i as y, l as b, n as x, o as S, r as C, s as w, t as T, u as E } from "../chunks/identity-BwYixi8Q.js";
14
14
  import { EnvironmentSnippet as D, KAESO_MOMENTS_DEFAULT_VARIANTS as O, KAESO_MOMENTS_VARIANTS as k, SecretReveal as A, sdkSnippets as j } from "./kaeso/moments.js";
15
15
  import { KAESO_USAGE_BREAKDOWN_DEFAULT_VARIANTS as M, KAESO_USAGE_BREAKDOWN_VARIANTS as N, KAESO_USAGE_DEFAULT_VARIANTS as P, KAESO_USAGE_VARIANTS as F, LimitMeter as I, UsageBreakdown as L } from "./kaeso/usage.js";
16
16
  import { ConversationView as R, KAESO_CONVERSATION_DEFAULT_VARIANTS as z, KAESO_CONVERSATION_VARIANTS as B } from "./kaeso/conversation.js";
17
- import { a as V, i as ee, n as te, r as ne, t as re } from "../chunks/rights-B68ocZuq.js";
17
+ import { a as V, i as ee, n as te, r as ne, t as re } from "../chunks/rights-DAHTG_kH.js";
18
18
  import { Fragment as ie, forwardRef as H, useId as ae, useMemo as U, useState as W } from "react";
19
19
  import { jsx as G, jsxs as K } from "react/jsx-runtime";
20
20
  import { Tick02Icon as oe } from "@hugeicons/core-free-icons";
@@ -237,13 +237,10 @@ function me({ providers: r, disabled: i, value: a, onValueChange: o, onChoose: s
237
237
  "aria-label": t.label
238
238
  } : {},
239
239
  className: "flex flex-col gap-8",
240
- children: [t.label && /* @__PURE__ */ K("div", {
240
+ children: [t.label && /* @__PURE__ */ G("div", {
241
241
  "aria-hidden": !0,
242
- className: "flex items-center justify-between text-caption font-medium text-fg-secondary",
243
- children: [/* @__PURE__ */ G("span", { children: t.label }), /* @__PURE__ */ G("span", {
244
- className: "font-regular text-fg-tertiary tabular",
245
- children: t.items.length
246
- })]
242
+ className: "text-caption font-medium text-fg-secondary",
243
+ children: t.label
247
244
  }), /* @__PURE__ */ G("div", {
248
245
  className: "grid grid-cols-2 gap-8 sm:grid-cols-3",
249
246
  children: t.items.map((t, r) => /* @__PURE__ */ K(se.Root, {
@@ -304,12 +301,10 @@ function he(e, r) {
304
301
  }), s.length && c.length ? (l.push({
305
302
  id: "connected",
306
303
  label: i("providerPicker.connected", "Connected"),
307
- count: s.length,
308
304
  items: s.map(o)
309
305
  }), l.push({
310
306
  id: "other",
311
307
  label: i("providerPicker.other", "Other providers"),
312
- count: c.length,
313
308
  items: c.map(o)
314
309
  })) : l.push({
315
310
  id: "providers",
@@ -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","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 justify-center gap-2 py-8 not-first:hairline-t @auth:col-span-2 @auth:grid @auth:grid-cols-subgrid @auth:content-center @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=\"line-clamp-2 text-body font-medium text-pretty wrap-break-word 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
+ {"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 justify-center gap-2 py-8 not-first:hairline-t @auth:col-span-2 @auth:grid @auth:grid-cols-subgrid @auth:content-center @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=\"text-caption font-medium text-fg-secondary\">\n {section.label}\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=\"line-clamp-2 text-body font-medium text-pretty wrap-break-word 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\"), items: connected.map(item) });\n groups.push({ id: \"other\", label: t(\"providerPicker.other\", \"Other providers\"), 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,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as e } from "../chunks/cn-BjnOAUrA.js";
3
- import { n as t } from "../chunks/copy-button-CwU8t_9_.js";
3
+ import { n as t } from "../chunks/copy-button-DBPAA1g0.js";
4
4
  import { t as n } from "../chunks/truncated-d1afmUJT.js";
5
5
  import { forwardRef as r } from "react";
6
6
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
@@ -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-CU_AoVY3.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-o8wcuBOz.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-C565aBR7.js";
3
+ import { a as t, i as n, n as r, r as i, s as a, t as o } from "../chunks/markdown-BZKZi9d8.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-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";
2
+ import { c as e } from "../chunks/styles-8fn_bHRP.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-BDce2kiw.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_PAGE_HEADER_DEFAULT_VARIANTS, n as KAESO_PAGE_HEADER_VARIANTS, r as PageHeader } from "../chunks/page-header-BQijP6Rp.js";
2
+ export { t as KAESO_PAGE_HEADER_DEFAULT_VARIANTS, n as KAESO_PAGE_HEADER_VARIANTS, r as PageHeader } from "../chunks/page-header-DUaKLpK3.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-D7fAm8qg.js";
2
+ export { t as KAESO_PAGINATION_DEFAULT_VARIANTS, n as KAESO_PAGINATION_VARIANTS, r as Pagination } from "../chunks/pagination-D9hM6W2z.js";
@@ -5,21 +5,21 @@ import { i as n, r } from "../chunks/context-BELWW79w.js";
5
5
  import { formatContext as i, formatDuration as a, formatNumber as o, formatPrice as s, formatUSD as c } from "../format.js";
6
6
  import { r as l } from "../chunks/tooltip-Tkm-urbi.js";
7
7
  import { t as u } from "../chunks/use-truncated-CW0hByYt.js";
8
- import { n as d } from "../chunks/button-IblhXUyZ.js";
9
- import { t as f } from "../chunks/icon-button-Dfwpvmav.js";
8
+ import { n as d } from "../chunks/button-DrmFgdIi.js";
9
+ import { t as f } from "../chunks/icon-button-6kOn2zrP.js";
10
10
  import { a as p, o as m, s as h } from "../chunks/field-D7m-yl-D.js";
11
- import { o as g, r as _ } from "../chunks/textarea-CO0HP6fK.js";
11
+ import { o as g, r as _ } from "../chunks/textarea-CRmvC4jd.js";
12
12
  import { r as v } from "../chunks/slider-CcE8GtuV.js";
13
13
  import { r as y } from "../chunks/switch-ngywMQdl.js";
14
14
  import { r as b } from "../chunks/segmented-D9i1avik.js";
15
- import { n as x, r as S } from "../chunks/select-BqjmQOqx.js";
15
+ import { n as x, r as S } from "../chunks/select-UTdHKubp.js";
16
16
  import { i as C } from "../chunks/popover-Bl5QYqnh.js";
17
- import { r as w } from "../chunks/combobox-DkcjkWc6.js";
18
- import { a as T, t as E } from "../chunks/command-list-CypqsC4T.js";
19
- import { i as ee, r as D } from "../chunks/picker-popover-1FHb1LQG.js";
20
- import { c as O, f as k, s as A, t as j } from "../chunks/identity-BQoh-UpW.js";
17
+ import { r as w } from "../chunks/combobox-DghYPLVQ.js";
18
+ import { a as T, t as E } from "../chunks/command-list-BUmEaaBi.js";
19
+ import { i as ee, r as D } from "../chunks/picker-popover-PzVOo62-.js";
20
+ import { c as O, f as k, s as A, t as j } from "../chunks/identity-BwYixi8Q.js";
21
21
  import { t as M } from "../chunks/reasoning-frame-C3HdQRRS.js";
22
- import { r as N } from "../chunks/markdown-C565aBR7.js";
22
+ import { r as N } from "../chunks/markdown-BZKZi9d8.js";
23
23
  import { Children as te, createContext as ne, forwardRef as P, isValidElement as re, useCallback as F, useContext as ie, useEffect as I, useId as L, useLayoutEffect as ae, useMemo as R, useRef as z, useState as B, useSyncExternalStore as oe } from "react";
24
24
  import { Fragment as se, jsx as V, jsxs as H } from "react/jsx-runtime";
25
25
  import { Add01Icon as U, ArrowLeft01Icon as W, ArrowRight01Icon as G, Cancel01Icon as K, SlidersHorizontalIcon as ce } from "@hugeicons/core-free-icons";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as KAESO_SELECT_DEFAULT_VARIANTS, n as KAESO_SELECT_VARIANTS, r as Select } from "../chunks/select-BqjmQOqx.js";
2
+ export { t as KAESO_SELECT_DEFAULT_VARIANTS, n as KAESO_SELECT_VARIANTS, r as Select } from "../chunks/select-UTdHKubp.js";
@@ -3,7 +3,7 @@ import { t as e } from "../chunks/cn-BjnOAUrA.js";
3
3
  import { r as t } from "../chunks/portal-context-CTatR2Z8.js";
4
4
  import { n, t as r } from "../chunks/inset-BUzyXLK4.js";
5
5
  import { i } from "../chunks/context-BELWW79w.js";
6
- import { t as a } from "../chunks/icon-button-Dfwpvmav.js";
6
+ import { t as a } from "../chunks/icon-button-6kOn2zrP.js";
7
7
  import { a as o, i as s, t as c } from "../chunks/resize-motion-DS3rIIqy.js";
8
8
  import { t as l } from "../chunks/over-sheet-B8vzr_zU.js";
9
9
  import { forwardRef as u, useCallback as d, useState as f } from "react";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as BrandWordmark, n as KAESO_SIDEBAR_DEFAULT_VARIANTS, r as KAESO_SIDEBAR_VARIANTS, i as SIDEBAR_MAX, a as SIDEBAR_MIN, o as Sidebar, s as SidebarFloatingContext, c as SidebarSheetContext, l as useSidebar } from "../chunks/sidebar-Dq7oGOje.js";
2
+ export { t as BrandWordmark, n as KAESO_SIDEBAR_DEFAULT_VARIANTS, r as KAESO_SIDEBAR_VARIANTS, i as SIDEBAR_MAX, a as SIDEBAR_MIN, o as Sidebar, s as SidebarFloatingContext, c as SidebarSheetContext, l as useSidebar } from "../chunks/sidebar-BO1mnjVH.js";
@@ -43,10 +43,10 @@ var b = /* @__PURE__ */ a(function({ className: t, children: i, ...a }, u) {
43
43
  };
44
44
  }, []), /* @__PURE__ */ f(p.List, {
45
45
  ref: g,
46
- className: e("relative flex min-w-0 items-center overflow-x-auto scroll-px-16 scrollbar-none scroll-fade-x", m === "underline" ? "hairline-b-strong" : "gap-4", t),
46
+ className: e("relative flex min-w-0 items-center overflow-x-auto scroll-px-16 scrollbar-none scroll-fade-x", m === "underline" ? "gap-24 hairline-b-strong" : "gap-4", t),
47
47
  ...a,
48
48
  children: [i, m === "underline" && /* @__PURE__ */ d(p.Indicator, {
49
- className: "absolute bottom-0 left-0 flex h-2 w-(--active-tab-width) translate-x-(--active-tab-left) px-12 indicator-motion",
49
+ className: "absolute bottom-0 left-0 flex h-2 w-(--active-tab-width) translate-x-(--active-tab-left) indicator-motion",
50
50
  children: /* @__PURE__ */ d("span", { className: "h-2 flex-1 rounded-pill bg-ink forced-line" })
51
51
  })]
52
52
  });
@@ -59,9 +59,9 @@ var x = /* @__PURE__ */ a(function({ value: n, children: r, icon: i, count: a, d
59
59
  value: n,
60
60
  ...s ? { disabled: !0 } : {},
61
61
  ...l ? { "data-force": l } : {},
62
- className: e("relative inline-flex shrink-0 cursor-pointer items-center gap-6 text-body font-medium whitespace-nowrap text-fg-secondary transition-control tap-target hover:text-fg selected:text-fg disabled:cursor-not-allowed disabled:text-fg-disabled selected:disabled:text-fg-disabled", h === "underline" ? "group/tab h-40 outline-none" : "h-32 rounded-pill px-12 hover:bg-fill-1 active:bg-fill-2 selected:bg-fill-2 selected:hover:bg-fill-3 selected:active:bg-fill-3 focus-ring-inset", c),
62
+ className: e("relative inline-flex shrink-0 cursor-pointer items-center gap-6 text-body font-medium whitespace-nowrap text-fg-secondary transition-control tap-target hover:text-fg selected:text-fg disabled:cursor-not-allowed disabled:text-fg-disabled selected:disabled:text-fg-disabled", h === "underline" ? "group/tab h-40 outline-none hover:tab-line-hover active:tab-line-pressed disabled:shadow-none" : "h-32 rounded-pill px-12 hover:bg-fill-1 active:bg-fill-2 selected:bg-fill-2 selected:hover:bg-fill-3 selected:active:bg-fill-3 focus-ring-inset", c),
63
63
  children: h === "underline" ? /* @__PURE__ */ f("span", {
64
- className: "inline-flex h-28 items-center gap-6 rounded-pill px-12 transition-control focus-ring-inset group-hover/tab:bg-fill-1 group-active/tab:bg-fill-2 group-disabled/tab:bg-transparent group-focus-visible/tab:outline-focus group-focus-visible/tab:outline-solid",
64
+ className: "inline-flex h-28 items-center gap-6 rounded-item outline-offset-4 group-focus-visible/tab:outline-2 group-focus-visible/tab:outline-focus group-focus-visible/tab:outline-solid",
65
65
  children: [
66
66
  i && /* @__PURE__ */ d(t, {
67
67
  icon: i,
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","names":["BaseTabs","_Fragment","cn","mergeRefs","observeResize","Fragment$1","Tabs$1","KAESO_TABS_VARIANTS","KAESO_TABS_DEFAULT_VARIANTS","KAESO_PILL_TABS_VARIANTS","KAESO_PILL_TABS_DEFAULT_VARIANTS","Ctx","makeRoot","Root","defaultVariant","variant","value","defaultValue","onValueChange","v","className","name","List","props","useContext","own","useRef","refs","useMemo","ref","useEffect","el","mark","end","stop","children","Tab","force","disabled","icon","Icon","count","Panel","keepMounted","Tabs","PillTabs"],"sources":["../../src/components/tabs/tabs.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, useEffect, useMemo, useRef, type ReactNode } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport { cn } from \"../../utils/cn.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\n\nexport const KAESO_TABS_VARIANTS = {\n variant: {\n underline: {\n classes: \"\",\n },\n pill: { classes: \"\" },\n },\n} as const;\nexport const KAESO_TABS_DEFAULT_VARIANTS = { variant: \"underline\" } as const;\nexport const KAESO_PILL_TABS_VARIANTS = { variant: KAESO_TABS_VARIANTS.variant } as const;\nexport const KAESO_PILL_TABS_DEFAULT_VARIANTS = { variant: \"pill\" } as const;\ntype Variant = keyof typeof KAESO_TABS_VARIANTS.variant;\n\nconst Ctx = /* @__PURE__ */ createContext<Variant>(\"underline\");\n\nexport interface TabsProps {\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n variant?: Variant | undefined;\n className?: string | undefined;\n children: ReactNode;\n}\n\nfunction makeRoot(defaultVariant: Variant, name: string) {\n const Root = /* @__PURE__ */ forwardRef<HTMLDivElement, TabsProps>(function TabsRoot(\n { value, defaultValue, onValueChange, variant = defaultVariant, className, children },\n ref,\n ) {\n return (\n <Ctx.Provider value={variant}>\n <BaseTabs.Root\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: unknown) => onValueChange(String(v)) } : {})}\n className={cn(\"flex min-w-0 flex-col\", className)}\n >\n {children}\n </BaseTabs.Root>\n </Ctx.Provider>\n );\n });\n Root.displayName = name;\n return Root;\n}\n\nexport interface TabsListProps {\n className?: string | undefined;\n children: ReactNode;\n \"aria-label\"?: string | undefined;\n}\n\nconst List = /* @__PURE__ */ forwardRef<HTMLDivElement, TabsListProps>(function TabsList({ className, children, ...props }, ref) {\n const variant = useContext(Ctx);\n const own = useRef<HTMLDivElement | null>(null);\n const refs = useMemo(() => mergeRefs(own, ref), [ref]);\n useEffect(() => {\n const el = own.current;\n if (!el) return;\n const mark = () => {\n const end = el.scrollWidth - el.clientWidth - Math.abs(el.scrollLeft);\n el.style.setProperty(\"--scroll-area-overflow-x-start\", `${Math.max(0, Math.abs(el.scrollLeft))}px`);\n el.style.setProperty(\"--scroll-area-overflow-x-end\", `${Math.max(0, end)}px`);\n };\n mark();\n el.addEventListener(\"scroll\", mark, { passive: true });\n const stop = observeResize([el, ...el.children], mark);\n return () => {\n el.removeEventListener(\"scroll\", mark);\n stop();\n };\n }, []);\n return (\n <BaseTabs.List\n ref={refs}\n className={cn(\n \"relative flex min-w-0 items-center overflow-x-auto scroll-px-16 scrollbar-none scroll-fade-x\",\n variant === \"underline\" ? \"hairline-b-strong\" : \"gap-4\",\n className,\n )}\n {...props}\n >\n {children}\n {variant === \"underline\" && (\n <BaseTabs.Indicator className=\"absolute bottom-0 left-0 flex h-2 w-(--active-tab-width) translate-x-(--active-tab-left) px-12 indicator-motion\">\n <span className=\"h-2 flex-1 rounded-pill bg-ink forced-line\" />\n </BaseTabs.Indicator>\n )}\n </BaseTabs.List>\n );\n});\nif (process.env.NODE_ENV !== \"production\") List.displayName = \"Tabs.List\";\n\nexport interface TabProps {\n value: string;\n children: ReactNode;\n icon?: IconData | undefined;\n count?: number | undefined;\n disabled?: boolean | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Tab = /* @__PURE__ */ forwardRef<HTMLButtonElement, TabProps>(function TabsTab({ value, children, icon, count, disabled, className, \"data-force\": force }, ref) {\n const variant = useContext(Ctx);\n return (\n <BaseTabs.Tab\n ref={ref}\n value={value}\n {...(disabled ? { disabled: true } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"relative inline-flex shrink-0 cursor-pointer items-center gap-6 text-body font-medium whitespace-nowrap text-fg-secondary transition-control tap-target hover:text-fg selected:text-fg disabled:cursor-not-allowed disabled:text-fg-disabled selected:disabled:text-fg-disabled\",\n variant === \"underline\"\n ? \"group/tab h-40 outline-none\"\n : \"h-32 rounded-pill px-12 hover:bg-fill-1 active:bg-fill-2 selected:bg-fill-2 selected:hover:bg-fill-3 selected:active:bg-fill-3 focus-ring-inset\",\n className,\n )}\n >\n {variant === \"underline\" ? (\n <span className=\"inline-flex h-28 items-center gap-6 rounded-pill px-12 transition-control focus-ring-inset group-hover/tab:bg-fill-1 group-active/tab:bg-fill-2 group-disabled/tab:bg-transparent group-focus-visible/tab:outline-focus group-focus-visible/tab:outline-solid\">\n {icon && <Icon icon={icon} size=\"sm\" />}\n {children}\n {count !== undefined && <span className=\"text-body font-regular text-fg-secondary tabular\">{count}</span>}\n </span>\n ) : (\n <>\n {icon && <Icon icon={icon} size=\"sm\" />}\n {children}\n {count !== undefined && <span className=\"text-body font-regular text-fg-secondary tabular\">{count}</span>}\n </>\n )}\n </BaseTabs.Tab>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Tab.displayName = \"Tabs.Tab\";\n\nconst Panel = /* @__PURE__ */ forwardRef<\n HTMLDivElement,\n { value: string; className?: string | undefined; children: ReactNode; keepMounted?: boolean | undefined; \"data-force\"?: string | undefined }\n>(function TabsPanel({ value, className, children, keepMounted, \"data-force\": force }, ref) {\n return (\n <BaseTabs.Panel\n ref={ref}\n value={value}\n {...(keepMounted ? { keepMounted } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\"outline-none focus-ring-inset\", className)}\n >\n {children}\n </BaseTabs.Panel>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Panel.displayName = \"Tabs.Panel\";\n\nexport const Tabs = /* @__PURE__ */ Object.assign(/* @__PURE__ */ makeRoot(KAESO_TABS_DEFAULT_VARIANTS.variant, \"Tabs\"), { List, Tab, Panel });\nexport const PillTabs = /* @__PURE__ */ Object.assign(/* @__PURE__ */ makeRoot(KAESO_PILL_TABS_DEFAULT_VARIANTS.variant, \"PillTabs\"), { List, Tab, Panel });\n"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","names":["BaseTabs","_Fragment","cn","mergeRefs","observeResize","Fragment$1","Tabs$1","KAESO_TABS_VARIANTS","KAESO_TABS_DEFAULT_VARIANTS","KAESO_PILL_TABS_VARIANTS","KAESO_PILL_TABS_DEFAULT_VARIANTS","Ctx","makeRoot","Root","defaultVariant","variant","value","defaultValue","onValueChange","v","className","name","List","props","useContext","own","useRef","refs","useMemo","ref","useEffect","el","mark","end","stop","children","Tab","force","disabled","icon","Icon","count","Panel","keepMounted","Tabs","PillTabs"],"sources":["../../src/components/tabs/tabs.tsx"],"sourcesContent":["import { createContext, forwardRef, useContext, useEffect, useMemo, useRef, type ReactNode } from \"react\";\nimport { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport { cn } from \"../../utils/cn.js\";\nimport { mergeRefs } from \"../../utils/merge-refs.js\";\nimport { observeResize } from \"../../utils/observe-resize.js\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\n\nexport const KAESO_TABS_VARIANTS = {\n variant: {\n underline: {\n classes: \"\",\n },\n pill: { classes: \"\" },\n },\n} as const;\nexport const KAESO_TABS_DEFAULT_VARIANTS = { variant: \"underline\" } as const;\nexport const KAESO_PILL_TABS_VARIANTS = { variant: KAESO_TABS_VARIANTS.variant } as const;\nexport const KAESO_PILL_TABS_DEFAULT_VARIANTS = { variant: \"pill\" } as const;\ntype Variant = keyof typeof KAESO_TABS_VARIANTS.variant;\n\nconst Ctx = /* @__PURE__ */ createContext<Variant>(\"underline\");\n\nexport interface TabsProps {\n value?: string | undefined;\n defaultValue?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n variant?: Variant | undefined;\n className?: string | undefined;\n children: ReactNode;\n}\n\nfunction makeRoot(defaultVariant: Variant, name: string) {\n const Root = /* @__PURE__ */ forwardRef<HTMLDivElement, TabsProps>(function TabsRoot(\n { value, defaultValue, onValueChange, variant = defaultVariant, className, children },\n ref,\n ) {\n return (\n <Ctx.Provider value={variant}>\n <BaseTabs.Root\n ref={ref}\n {...(value !== undefined ? { value } : {})}\n {...(defaultValue !== undefined ? { defaultValue } : {})}\n {...(onValueChange ? { onValueChange: (v: unknown) => onValueChange(String(v)) } : {})}\n className={cn(\"flex min-w-0 flex-col\", className)}\n >\n {children}\n </BaseTabs.Root>\n </Ctx.Provider>\n );\n });\n Root.displayName = name;\n return Root;\n}\n\nexport interface TabsListProps {\n className?: string | undefined;\n children: ReactNode;\n \"aria-label\"?: string | undefined;\n}\n\nconst List = /* @__PURE__ */ forwardRef<HTMLDivElement, TabsListProps>(function TabsList({ className, children, ...props }, ref) {\n const variant = useContext(Ctx);\n const own = useRef<HTMLDivElement | null>(null);\n const refs = useMemo(() => mergeRefs(own, ref), [ref]);\n useEffect(() => {\n const el = own.current;\n if (!el) return;\n const mark = () => {\n const end = el.scrollWidth - el.clientWidth - Math.abs(el.scrollLeft);\n el.style.setProperty(\"--scroll-area-overflow-x-start\", `${Math.max(0, Math.abs(el.scrollLeft))}px`);\n el.style.setProperty(\"--scroll-area-overflow-x-end\", `${Math.max(0, end)}px`);\n };\n mark();\n el.addEventListener(\"scroll\", mark, { passive: true });\n const stop = observeResize([el, ...el.children], mark);\n return () => {\n el.removeEventListener(\"scroll\", mark);\n stop();\n };\n }, []);\n return (\n <BaseTabs.List\n ref={refs}\n className={cn(\n \"relative flex min-w-0 items-center overflow-x-auto scroll-px-16 scrollbar-none scroll-fade-x\",\n variant === \"underline\" ? \"gap-24 hairline-b-strong\" : \"gap-4\",\n className,\n )}\n {...props}\n >\n {children}\n {variant === \"underline\" && (\n <BaseTabs.Indicator className=\"absolute bottom-0 left-0 flex h-2 w-(--active-tab-width) translate-x-(--active-tab-left) indicator-motion\">\n <span className=\"h-2 flex-1 rounded-pill bg-ink forced-line\" />\n </BaseTabs.Indicator>\n )}\n </BaseTabs.List>\n );\n});\nif (process.env.NODE_ENV !== \"production\") List.displayName = \"Tabs.List\";\n\nexport interface TabProps {\n value: string;\n children: ReactNode;\n icon?: IconData | undefined;\n count?: number | undefined;\n disabled?: boolean | undefined;\n className?: string | undefined;\n \"data-force\"?: string | undefined;\n}\n\nconst Tab = /* @__PURE__ */ forwardRef<HTMLButtonElement, TabProps>(function TabsTab({ value, children, icon, count, disabled, className, \"data-force\": force }, ref) {\n const variant = useContext(Ctx);\n return (\n <BaseTabs.Tab\n ref={ref}\n value={value}\n {...(disabled ? { disabled: true } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"relative inline-flex shrink-0 cursor-pointer items-center gap-6 text-body font-medium whitespace-nowrap text-fg-secondary transition-control tap-target hover:text-fg selected:text-fg disabled:cursor-not-allowed disabled:text-fg-disabled selected:disabled:text-fg-disabled\",\n variant === \"underline\"\n ? \"group/tab h-40 outline-none hover:tab-line-hover active:tab-line-pressed disabled:shadow-none\"\n : \"h-32 rounded-pill px-12 hover:bg-fill-1 active:bg-fill-2 selected:bg-fill-2 selected:hover:bg-fill-3 selected:active:bg-fill-3 focus-ring-inset\",\n className,\n )}\n >\n {variant === \"underline\" ? (\n <span className=\"inline-flex h-28 items-center gap-6 rounded-item outline-offset-4 group-focus-visible/tab:outline-2 group-focus-visible/tab:outline-focus group-focus-visible/tab:outline-solid\">\n {icon && <Icon icon={icon} size=\"sm\" />}\n {children}\n {count !== undefined && <span className=\"text-body font-regular text-fg-secondary tabular\">{count}</span>}\n </span>\n ) : (\n <>\n {icon && <Icon icon={icon} size=\"sm\" />}\n {children}\n {count !== undefined && <span className=\"text-body font-regular text-fg-secondary tabular\">{count}</span>}\n </>\n )}\n </BaseTabs.Tab>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Tab.displayName = \"Tabs.Tab\";\n\nconst Panel = /* @__PURE__ */ forwardRef<\n HTMLDivElement,\n { value: string; className?: string | undefined; children: ReactNode; keepMounted?: boolean | undefined; \"data-force\"?: string | undefined }\n>(function TabsPanel({ value, className, children, keepMounted, \"data-force\": force }, ref) {\n return (\n <BaseTabs.Panel\n ref={ref}\n value={value}\n {...(keepMounted ? { keepMounted } : {})}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\"outline-none focus-ring-inset\", className)}\n >\n {children}\n </BaseTabs.Panel>\n );\n});\nif (process.env.NODE_ENV !== \"production\") Panel.displayName = \"Tabs.Panel\";\n\nexport const Tabs = /* @__PURE__ */ Object.assign(/* @__PURE__ */ makeRoot(KAESO_TABS_DEFAULT_VARIANTS.variant, \"Tabs\"), { List, Tab, Panel });\nexport const PillTabs = /* @__PURE__ */ Object.assign(/* @__PURE__ */ makeRoot(KAESO_PILL_TABS_DEFAULT_VARIANTS.variant, \"PillTabs\"), { List, Tab, Panel });\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { i as e } from "../chunks/context-BELWW79w.js";
3
3
  import { a as t } from "../chunks/theme-provider-BjXTggqM.js";
4
- import { t as n } from "../chunks/icon-button-Dfwpvmav.js";
5
- import { c as r } from "../chunks/menu-Clvv6ftq.js";
4
+ import { t as n } from "../chunks/icon-button-6kOn2zrP.js";
5
+ import { c as r } from "../chunks/menu-BDce2kiw.js";
6
6
  import { forwardRef as i } from "react";
7
7
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
8
8
  import { ComputerIcon as s, Moon02Icon as c, Sun03Icon as l } from "@hugeicons/core-free-icons";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { i as e } from "../chunks/context-BELWW79w.js";
3
3
  import { a as t } from "../chunks/theme-provider-BjXTggqM.js";
4
- import { r as n } from "../chunks/select-BqjmQOqx.js";
4
+ import { r as n } from "../chunks/select-UTdHKubp.js";
5
5
  import { forwardRef as r } from "react";
6
6
  import { jsx as i } from "react/jsx-runtime";
7
7
  //#region src/components/theme-select/theme-select.tsx