@uisatin/ui 0.1.1 → 0.3.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 (311) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +20 -3
  3. package/chunk-3DHJXU45.js +147 -0
  4. package/{chunk-6YXUBP27.js → chunk-5725MFGQ.js} +72 -67
  5. package/{chunk-BKZBWPUH.js → chunk-57QEOCDZ.js} +9 -11
  6. package/{chunk-RTJ76X5U.js → chunk-5KTBSMQU.js} +2 -4
  7. package/{chunk-B2K45IUR.js → chunk-5XTUFBZI.js} +5 -7
  8. package/{chunk-LW3TRU5W.js → chunk-674SRBZK.js} +28 -16
  9. package/{chunk-XZNHT6MO.js → chunk-6VKV36OK.js} +115 -61
  10. package/{chunk-GICKPMJU.js → chunk-73Z7NMQQ.js} +31 -31
  11. package/chunk-7Q76HLRQ.js +128 -0
  12. package/{chunk-JPNWHWAQ.js → chunk-AIMQNLPY.js} +38 -35
  13. package/chunk-BN7FDKCJ.js +164 -0
  14. package/{chunk-3DINAQLL.js → chunk-BR2B4OIT.js} +33 -29
  15. package/{chunk-2HKBZFIK.js → chunk-CGOH5IYX.js} +31 -31
  16. package/chunk-CVNRZ2YV.js +112 -0
  17. package/{chunk-QUF2IPOZ.js → chunk-DPYIBFQD.js} +12 -14
  18. package/chunk-EF5GT4OG.js +87 -0
  19. package/chunk-FAJ3OVL4.js +37 -0
  20. package/{chunk-L6NCCSIP.js → chunk-FB5HTCO2.js} +36 -29
  21. package/chunk-GI2SMFZL.js +55 -0
  22. package/{chunk-B6V4VSGH.js → chunk-GMETYACH.js} +14 -15
  23. package/chunk-HK6WINL6.js +95 -0
  24. package/{chunk-HL42K2NH.js → chunk-IKO3GQFE.js} +17 -17
  25. package/{chunk-DO3TBNSC.js → chunk-ISYKZCPJ.js} +15 -17
  26. package/{chunk-YG7JOOLJ.js → chunk-J7RMFN54.js} +5 -7
  27. package/{chunk-SHDFUXYV.js → chunk-JBKBRAC4.js} +16 -18
  28. package/{chunk-LZMKSFCF.js → chunk-JCXI7VQL.js} +10 -12
  29. package/{chunk-NN6PKJWS.js → chunk-JYOZUQNU.js} +7 -9
  30. package/{chunk-LLHTVIM3.js → chunk-LB37KTJH.js} +7 -9
  31. package/{chunk-NSRTTYQ4.js → chunk-LB7Z6BSK.js} +42 -35
  32. package/{chunk-BNZVTLHV.js → chunk-LFGUJHFF.js} +25 -21
  33. package/{chunk-7TXHCRAG.js → chunk-M2HEVFQ3.js} +8 -10
  34. package/{chunk-SH6NG6VN.js → chunk-NH3EHMIL.js} +6 -8
  35. package/chunk-NL574STL.js +88 -0
  36. package/chunk-NQL6SIIB.js +168 -0
  37. package/chunk-O46O6LFQ.js +25 -0
  38. package/{chunk-YPNKBE5X.js → chunk-OURZQM27.js} +5 -7
  39. package/{chunk-XL75JRUA.js → chunk-OVKPPXK5.js} +42 -22
  40. package/chunk-PD6YPFYN.js +42 -0
  41. package/{chunk-XILQ7GXE.js → chunk-PHNR6ZQ7.js} +11 -13
  42. package/{chunk-BNTPPZCK.js → chunk-PUWSL5XW.js} +37 -39
  43. package/{chunk-A5XEM3GF.js → chunk-RHQHDYTE.js} +34 -36
  44. package/chunk-S7QHBVPX.js +45 -0
  45. package/{chunk-TX3H3QMA.js → chunk-SAYNV7B3.js} +71 -70
  46. package/{chunk-6QMSWITQ.js → chunk-SDOTDMYG.js} +24 -26
  47. package/{chunk-UGRSWP6U.js → chunk-SPGUZMCC.js} +10 -12
  48. package/chunk-SSOFFQ5T.js +74 -0
  49. package/{chunk-AN2RNJLR.js → chunk-SZJIVBOD.js} +16 -16
  50. package/chunk-T6L32XXH.js +107 -0
  51. package/{chunk-QS4N4MNP.js → chunk-TT2N5752.js} +18 -20
  52. package/{chunk-72OCFAPT.js → chunk-UCCNXGLG.js} +22 -21
  53. package/{chunk-KNUWZNFV.js → chunk-UGIVCXGN.js} +4 -6
  54. package/{chunk-H4NU7NPO.js → chunk-UUCVRIVP.js} +62 -61
  55. package/{chunk-P4O6TGDR.js → chunk-UZ4DXU6W.js} +28 -26
  56. package/{chunk-UBNHSZSE.js → chunk-VUOAPWTF.js} +10 -12
  57. package/{chunk-VAGIAREV.js → chunk-W472DBMT.js} +29 -26
  58. package/{chunk-X3PQANZO.js → chunk-W4RDTP6W.js} +47 -46
  59. package/{chunk-CL2II6BX.js → chunk-WLQD5BN2.js} +11 -13
  60. package/{chunk-FDKIX4DC.js → chunk-X2GNMNZQ.js} +7 -9
  61. package/{chunk-PF3YBUKT.js → chunk-X66KTATQ.js} +16 -15
  62. package/{chunk-J3NSDRVH.js → chunk-XETMIETJ.js} +0 -2
  63. package/chunk-XH56JGYC.js +71 -0
  64. package/{chunk-O7F3CIDV.js → chunk-XUOSJMEJ.js} +10 -12
  65. package/chunk-YJK4MGSI.js +86 -0
  66. package/{chunk-YX5VNRJX.js → chunk-YYFAZQ25.js} +0 -2
  67. package/chunk-Z7S2KQZS.js +177 -0
  68. package/chunk-ZBZ3ZQRB.js +195 -0
  69. package/{chunk-Y5AYU7PK.js → chunk-ZHFIWDGF.js} +0 -2
  70. package/components/accordion.js +2 -4
  71. package/components/agent-loading.d.ts +2 -0
  72. package/components/agent-loading.js +2 -4
  73. package/components/agent-picker.js +4 -5
  74. package/components/agent-suggestion.js +5 -6
  75. package/components/announcement-bar.js +6 -7
  76. package/components/attachment.js +4 -5
  77. package/components/avatar.d.ts +16 -0
  78. package/components/avatar.js +4 -6
  79. package/components/badge.js +2 -4
  80. package/components/banner-mesh.js +1 -3
  81. package/components/banner.js +4 -6
  82. package/components/bar-chart.js +10 -11
  83. package/components/breadcrumb.js +5 -6
  84. package/components/button.js +2 -4
  85. package/components/card.js +3 -5
  86. package/components/channel-chart.js +10 -11
  87. package/components/chart.js +9 -10
  88. package/components/checkbox.js +2 -4
  89. package/components/chip.js +2 -4
  90. package/components/citations.d.ts +6 -4
  91. package/components/citations.js +4 -5
  92. package/components/code-block.js +3 -5
  93. package/components/combobox.d.ts +12 -3
  94. package/components/combobox.js +9 -10
  95. package/components/command-menu.d.ts +6 -2
  96. package/components/command-menu.js +5 -6
  97. package/components/context-menu.d.ts +12 -5
  98. package/components/context-menu.js +5 -6
  99. package/components/cookie-consent.js +3 -5
  100. package/components/date-picker.d.ts +26 -14
  101. package/components/date-picker.js +8 -9
  102. package/components/decision-card.js +6 -7
  103. package/components/dialog.d.ts +5 -2
  104. package/components/dialog.js +4 -5
  105. package/components/donut-chart.js +10 -11
  106. package/components/dot.js +2 -4
  107. package/components/dropdown.d.ts +6 -1
  108. package/components/dropdown.js +4 -5
  109. package/components/empty-state.js +2 -4
  110. package/components/file-upload.js +6 -7
  111. package/components/floating.js +1 -3
  112. package/components/form-field.js +2 -4
  113. package/components/hover-card.d.ts +5 -2
  114. package/components/hover-card.js +2 -4
  115. package/components/input-otp.d.ts +4 -2
  116. package/components/input-otp.js +7 -8
  117. package/components/input.js +3 -5
  118. package/components/kbd.js +2 -4
  119. package/components/labels.d.ts +79 -0
  120. package/components/labels.js +1 -0
  121. package/components/line-chart.js +11 -12
  122. package/components/message-actions.js +4 -5
  123. package/components/message.js +7 -8
  124. package/components/number-input.d.ts +4 -2
  125. package/components/number-input.js +7 -8
  126. package/components/pagination.js +4 -6
  127. package/components/popover.d.ts +11 -5
  128. package/components/popover.js +3 -4
  129. package/components/progress.js +2 -4
  130. package/components/prompt-bar.js +5 -6
  131. package/components/radio.js +2 -4
  132. package/components/search-bar.js +3 -5
  133. package/components/segmented-control.d.ts +4 -2
  134. package/components/segmented-control.js +3 -5
  135. package/components/select.d.ts +10 -2
  136. package/components/select.js +6 -7
  137. package/components/sheet.d.ts +4 -2
  138. package/components/sheet.js +5 -6
  139. package/components/sidebar.js +2 -4
  140. package/components/skeleton.js +2 -4
  141. package/components/slider.d.ts +6 -2
  142. package/components/slider.js +7 -8
  143. package/components/sliding-indicator.js +1 -3
  144. package/components/streaming-text.js +2 -4
  145. package/components/switch.js +2 -4
  146. package/components/table.d.ts +16 -5
  147. package/components/table.js +4 -5
  148. package/components/tabs.d.ts +4 -2
  149. package/components/tabs.js +3 -5
  150. package/components/textarea.js +3 -5
  151. package/components/thinking.js +3 -5
  152. package/components/toast.js +4 -5
  153. package/components/toggle.js +2 -4
  154. package/components/tooltip.d.ts +5 -2
  155. package/components/tooltip.js +3 -5
  156. package/index.d.ts +1 -0
  157. package/index.js +67 -231
  158. package/lib/utils.d.ts +8 -1
  159. package/lib/utils.js +1 -3
  160. package/package.json +22 -1
  161. package/styles.css +1 -1
  162. package/theme/create-theme.d.ts +6 -2
  163. package/theme/index.js +1 -0
  164. package/chunk-2HKBZFIK.js.map +0 -1
  165. package/chunk-3DINAQLL.js.map +0 -1
  166. package/chunk-3ERGAHKA.js +0 -179
  167. package/chunk-3ERGAHKA.js.map +0 -1
  168. package/chunk-6C7CGJX2.js +0 -86
  169. package/chunk-6C7CGJX2.js.map +0 -1
  170. package/chunk-6QMSWITQ.js.map +0 -1
  171. package/chunk-6YXUBP27.js.map +0 -1
  172. package/chunk-72OCFAPT.js.map +0 -1
  173. package/chunk-7TXHCRAG.js.map +0 -1
  174. package/chunk-A5XEM3GF.js.map +0 -1
  175. package/chunk-AN2RNJLR.js.map +0 -1
  176. package/chunk-B2K45IUR.js.map +0 -1
  177. package/chunk-B6V4VSGH.js.map +0 -1
  178. package/chunk-BKZBWPUH.js.map +0 -1
  179. package/chunk-BNTPPZCK.js.map +0 -1
  180. package/chunk-BNZVTLHV.js.map +0 -1
  181. package/chunk-CL2II6BX.js.map +0 -1
  182. package/chunk-D7RZNTFC.js +0 -95
  183. package/chunk-D7RZNTFC.js.map +0 -1
  184. package/chunk-DETGJAIC.js +0 -147
  185. package/chunk-DETGJAIC.js.map +0 -1
  186. package/chunk-DO3TBNSC.js.map +0 -1
  187. package/chunk-ESC5JCVQ.js +0 -90
  188. package/chunk-ESC5JCVQ.js.map +0 -1
  189. package/chunk-FDKIX4DC.js.map +0 -1
  190. package/chunk-GICKPMJU.js.map +0 -1
  191. package/chunk-GQA24FYG.js +0 -57
  192. package/chunk-GQA24FYG.js.map +0 -1
  193. package/chunk-H4NU7NPO.js.map +0 -1
  194. package/chunk-H63FYCMY.js +0 -11
  195. package/chunk-H63FYCMY.js.map +0 -1
  196. package/chunk-HL42K2NH.js.map +0 -1
  197. package/chunk-HNQUX43Z.js +0 -109
  198. package/chunk-HNQUX43Z.js.map +0 -1
  199. package/chunk-HRKPV66B.js +0 -32
  200. package/chunk-HRKPV66B.js.map +0 -1
  201. package/chunk-J3NSDRVH.js.map +0 -1
  202. package/chunk-JPNWHWAQ.js.map +0 -1
  203. package/chunk-KNUWZNFV.js.map +0 -1
  204. package/chunk-L6NCCSIP.js.map +0 -1
  205. package/chunk-LLHTVIM3.js.map +0 -1
  206. package/chunk-LW3TRU5W.js.map +0 -1
  207. package/chunk-LZMKSFCF.js.map +0 -1
  208. package/chunk-MR3JDI7E.js +0 -122
  209. package/chunk-MR3JDI7E.js.map +0 -1
  210. package/chunk-NN6PKJWS.js.map +0 -1
  211. package/chunk-NSRTTYQ4.js.map +0 -1
  212. package/chunk-O7F3CIDV.js.map +0 -1
  213. package/chunk-P4O6TGDR.js.map +0 -1
  214. package/chunk-PF3YBUKT.js.map +0 -1
  215. package/chunk-PVOLDO4G.js +0 -47
  216. package/chunk-PVOLDO4G.js.map +0 -1
  217. package/chunk-QS4N4MNP.js.map +0 -1
  218. package/chunk-QUF2IPOZ.js.map +0 -1
  219. package/chunk-RTJ76X5U.js.map +0 -1
  220. package/chunk-SH6NG6VN.js.map +0 -1
  221. package/chunk-SHDFUXYV.js.map +0 -1
  222. package/chunk-TKO44NDI.js +0 -84
  223. package/chunk-TKO44NDI.js.map +0 -1
  224. package/chunk-TVLGZGYN.js +0 -59
  225. package/chunk-TVLGZGYN.js.map +0 -1
  226. package/chunk-TX3H3QMA.js.map +0 -1
  227. package/chunk-UBNHSZSE.js.map +0 -1
  228. package/chunk-UC3ZJWOD.js +0 -73
  229. package/chunk-UC3ZJWOD.js.map +0 -1
  230. package/chunk-UGRSWP6U.js.map +0 -1
  231. package/chunk-VAGIAREV.js.map +0 -1
  232. package/chunk-WTMZT3IT.js +0 -105
  233. package/chunk-WTMZT3IT.js.map +0 -1
  234. package/chunk-WX6BP5ZP.js +0 -39
  235. package/chunk-WX6BP5ZP.js.map +0 -1
  236. package/chunk-X3PQANZO.js.map +0 -1
  237. package/chunk-XILQ7GXE.js.map +0 -1
  238. package/chunk-XL75JRUA.js.map +0 -1
  239. package/chunk-XZNHT6MO.js.map +0 -1
  240. package/chunk-Y5AYU7PK.js.map +0 -1
  241. package/chunk-YG7JOOLJ.js.map +0 -1
  242. package/chunk-YPJYW624.js +0 -195
  243. package/chunk-YPJYW624.js.map +0 -1
  244. package/chunk-YPNKBE5X.js.map +0 -1
  245. package/chunk-YX5VNRJX.js.map +0 -1
  246. package/components/accordion.js.map +0 -1
  247. package/components/agent-loading.js.map +0 -1
  248. package/components/agent-picker.js.map +0 -1
  249. package/components/agent-suggestion.js.map +0 -1
  250. package/components/announcement-bar.js.map +0 -1
  251. package/components/attachment.js.map +0 -1
  252. package/components/avatar.js.map +0 -1
  253. package/components/badge.js.map +0 -1
  254. package/components/banner-mesh.js.map +0 -1
  255. package/components/banner.js.map +0 -1
  256. package/components/bar-chart.js.map +0 -1
  257. package/components/breadcrumb.js.map +0 -1
  258. package/components/button.js.map +0 -1
  259. package/components/card.js.map +0 -1
  260. package/components/channel-chart.js.map +0 -1
  261. package/components/chart.js.map +0 -1
  262. package/components/checkbox.js.map +0 -1
  263. package/components/chip.js.map +0 -1
  264. package/components/citations.js.map +0 -1
  265. package/components/code-block.js.map +0 -1
  266. package/components/combobox.js.map +0 -1
  267. package/components/command-menu.js.map +0 -1
  268. package/components/context-menu.js.map +0 -1
  269. package/components/cookie-consent.js.map +0 -1
  270. package/components/date-picker.js.map +0 -1
  271. package/components/decision-card.js.map +0 -1
  272. package/components/dialog.js.map +0 -1
  273. package/components/donut-chart.js.map +0 -1
  274. package/components/dot.js.map +0 -1
  275. package/components/dropdown.js.map +0 -1
  276. package/components/empty-state.js.map +0 -1
  277. package/components/file-upload.js.map +0 -1
  278. package/components/floating.js.map +0 -1
  279. package/components/form-field.js.map +0 -1
  280. package/components/hover-card.js.map +0 -1
  281. package/components/input-otp.js.map +0 -1
  282. package/components/input.js.map +0 -1
  283. package/components/kbd.js.map +0 -1
  284. package/components/line-chart.js.map +0 -1
  285. package/components/message-actions.js.map +0 -1
  286. package/components/message.js.map +0 -1
  287. package/components/number-input.js.map +0 -1
  288. package/components/pagination.js.map +0 -1
  289. package/components/popover.js.map +0 -1
  290. package/components/progress.js.map +0 -1
  291. package/components/prompt-bar.js.map +0 -1
  292. package/components/radio.js.map +0 -1
  293. package/components/search-bar.js.map +0 -1
  294. package/components/segmented-control.js.map +0 -1
  295. package/components/select.js.map +0 -1
  296. package/components/sheet.js.map +0 -1
  297. package/components/sidebar.js.map +0 -1
  298. package/components/skeleton.js.map +0 -1
  299. package/components/slider.js.map +0 -1
  300. package/components/sliding-indicator.js.map +0 -1
  301. package/components/streaming-text.js.map +0 -1
  302. package/components/switch.js.map +0 -1
  303. package/components/table.js.map +0 -1
  304. package/components/tabs.js.map +0 -1
  305. package/components/textarea.js.map +0 -1
  306. package/components/thinking.js.map +0 -1
  307. package/components/toast.js.map +0 -1
  308. package/components/toggle.js.map +0 -1
  309. package/components/tooltip.js.map +0 -1
  310. package/index.js.map +0 -1
  311. package/lib/utils.js.map +0 -1
@@ -1,5 +1,6 @@
1
- import { Button } from './chunk-HNQUX43Z.js';
2
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { Button } from './chunk-T6L32XXH.js';
2
+ import { useSatinLabels } from './chunk-SSOFFQ5T.js';
3
+ import { cn } from './chunk-O46O6LFQ.js';
3
4
  import * as React from 'react';
4
5
  import { DropdownMenu } from 'radix-ui';
5
6
  import { NavArrowDown, Check, Plus } from 'iconoir-react';
@@ -22,6 +23,7 @@ function AgentPicker({
22
23
  disablePortal = false,
23
24
  className
24
25
  }) {
26
+ const labels = useSatinLabels();
25
27
  const [inner, setInner] = React.useState(defaultValue ?? agents[0]?.id);
26
28
  const value = valueProp ?? inner;
27
29
  const current = agents.find((a) => a.id === value);
@@ -47,11 +49,14 @@ function AgentPicker({
47
49
  variant,
48
50
  size,
49
51
  shape: "rounded",
50
- className: cn("data-[state=open]:bg-action-secondary-bg-hover", className),
52
+ className: cn("sa:data-[state=open]:bg-action-secondary-bg-hover", className),
51
53
  children: [
52
54
  current && /* @__PURE__ */ jsx(AgentAvatar, { agent: current, size: 16 }),
53
- /* @__PURE__ */ jsxs("span", { className: "truncate", children: [
54
- current && /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Agent: " }),
55
+ /* @__PURE__ */ jsxs("span", { className: "sa:truncate", children: [
56
+ current && /* @__PURE__ */ jsxs("span", { className: "sa:sr-only", children: [
57
+ labels.agent,
58
+ ": "
59
+ ] }),
55
60
  current ? current.name : placeholder
56
61
  ] }),
57
62
  /* @__PURE__ */ jsx(NavArrowDown, { "aria-hidden": true, "data-chevron": true })
@@ -75,21 +80,21 @@ function AgentMenu({
75
80
  align: "start",
76
81
  sideOffset: 8,
77
82
  className: cn(
78
- "z-50 flex w-[255px] max-w-[520px] flex-col gap-1 rounded-xl border border-border-subtle bg-bg-popover p-1 outline-none",
79
- "[box-shadow:0_1px_3px_0_var(--effect-shadow-sm),0_1px_2px_-1px_var(--effect-shadow-sm)]",
80
- "data-[state=open]:[animation:satin-enter_var(--duration-fast)_var(--ease-out)]"
83
+ "sa:z-50 sa:flex sa:w-[255px] sa:max-w-[520px] sa:flex-col sa:gap-1 sa:rounded-xl sa:border sa:border-border-subtle sa:bg-bg-popover sa:p-1 sa:outline-none",
84
+ "sa:[box-shadow:0_1px_3px_0_var(--effect-shadow-sm),0_1px_2px_-1px_var(--effect-shadow-sm)]",
85
+ "sa:data-[state=open]:[animation:satin-enter_var(--sa-duration-fast)_var(--sa-ease-out)]"
81
86
  ),
82
87
  children: [
83
- /* @__PURE__ */ jsx(DropdownMenu.RadioGroup, { value, onValueChange, className: "flex flex-col", children: agents.map((agent) => /* @__PURE__ */ jsx(AgentMenuItem, { agent, showDescription }, agent.id)) }),
88
+ /* @__PURE__ */ jsx(DropdownMenu.RadioGroup, { value, onValueChange, className: "sa:flex sa:flex-col", children: agents.map((agent) => /* @__PURE__ */ jsx(AgentMenuItem, { agent, showDescription }, agent.id)) }),
84
89
  onCreate && /* @__PURE__ */ jsxs(
85
90
  DropdownMenu.Item,
86
91
  {
87
92
  onSelect: onCreate,
88
93
  className: cn(
89
- "flex h-control-height-xs items-center gap-1 self-start rounded-md px-2 text-sm font-medium text-text-default outline-none select-none",
90
- "transition-[background-color,box-shadow] duration-(--duration-fast) ease-(--ease-out)",
91
- "[&_svg]:size-icon-size-sm [&_svg]:text-text-muted [&_svg]:[stroke-width:1.875]",
92
- "data-highlighted:bg-bg-hover"
94
+ "sa:flex sa:h-control-height-xs sa:items-center sa:gap-1 sa:self-start sa:rounded-md sa:px-2 sa:text-sm sa:font-medium sa:text-text-default sa:outline-none sa:select-none",
95
+ "sa:transition-[background-color,box-shadow] sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out)",
96
+ "sa:[&_svg]:size-icon-size-sm sa:[&_svg]:text-text-muted sa:[&_svg]:[stroke-width:1.875]",
97
+ "sa:data-highlighted:bg-bg-hover"
93
98
  ),
94
99
  children: [
95
100
  /* @__PURE__ */ jsx(Plus, { "aria-hidden": true }),
@@ -112,20 +117,20 @@ function AgentMenuItem({ agent, showDescription = true, className, ...props }) {
112
117
  children: [
113
118
  /* @__PURE__ */ jsx(AgentAvatar, { agent, size: stacked ? 20 : 16 }),
114
119
  /* @__PURE__ */ jsx(AgentRowText, { agent, stacked }),
115
- /* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { className: "flex shrink-0", children: /* @__PURE__ */ jsx(Check, { "aria-hidden": true, className: "size-icon-size text-status-green-fg [stroke-width:1.875]" }) })
120
+ /* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { className: "sa:flex sa:shrink-0", children: /* @__PURE__ */ jsx(Check, { "aria-hidden": true, className: "sa:size-icon-size sa:text-status-green-fg sa:[stroke-width:1.875]" }) })
116
121
  ]
117
122
  }
118
123
  );
119
124
  }
120
125
  var agentRowClass = cn(
121
- "flex min-h-8 w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left outline-none select-none",
122
- "transition-[background-color] duration-(--duration-fast) ease-(--ease-out)",
123
- "data-highlighted:bg-bg-selected data-[force=hover]:bg-bg-selected data-[state=checked]:bg-bg-selected"
126
+ "sa:flex sa:min-h-8 sa:w-full sa:items-center sa:gap-2 sa:rounded-lg sa:px-2 sa:py-1.5 sa:text-left sa:outline-none sa:select-none",
127
+ "sa:transition-[background-color] sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out)",
128
+ "sa:data-highlighted:bg-bg-selected sa:data-[force=hover]:bg-bg-selected sa:data-[state=checked]:bg-bg-selected"
124
129
  );
125
130
  function AgentRowText({ agent, stacked }) {
126
- return /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col justify-center gap-1", children: [
127
- /* @__PURE__ */ jsx("span", { className: "text-sm leading-[13px] font-medium text-text-default", children: agent.name }),
128
- stacked && /* @__PURE__ */ jsx("span", { className: "text-sm font-normal text-text-muted", children: agent.description })
131
+ return /* @__PURE__ */ jsxs("span", { className: "sa:flex sa:min-w-0 sa:flex-1 sa:flex-col sa:justify-center sa:gap-1", children: [
132
+ /* @__PURE__ */ jsx("span", { className: "sa:text-sm sa:leading-[13px] sa:font-medium sa:text-text-default", children: agent.name }),
133
+ stacked && /* @__PURE__ */ jsx("span", { className: "sa:text-sm sa:font-normal sa:text-text-muted", children: agent.description })
129
134
  ] });
130
135
  }
131
136
  function AgentPickerRow({
@@ -144,7 +149,7 @@ function AgentPickerRow({
144
149
  children: [
145
150
  /* @__PURE__ */ jsx(AgentAvatar, { agent, size: stacked ? 20 : 16 }),
146
151
  /* @__PURE__ */ jsx(AgentRowText, { agent, stacked }),
147
- state === "selected" && /* @__PURE__ */ jsx(Check, { "aria-hidden": true, className: "size-icon-size shrink-0 text-status-green-fg [stroke-width:1.875]" })
152
+ state === "selected" && /* @__PURE__ */ jsx(Check, { "aria-hidden": true, className: "sa:size-icon-size sa:shrink-0 sa:text-status-green-fg sa:[stroke-width:1.875]" })
148
153
  ]
149
154
  }
150
155
  );
@@ -158,8 +163,8 @@ function AgentAvatar({ agent, size = 16 }) {
158
163
  "aria-hidden": true,
159
164
  "data-tone": agent.tone ?? "brand",
160
165
  className: cn(
161
- "inline-flex shrink-0 items-center justify-center rounded-full bg-tone-bg font-semibold tracking-normal text-tone-fg",
162
- size === 16 ? "size-4 text-[7px] leading-2" : "size-5 text-[9px] leading-[10px]"
166
+ "sa:inline-flex sa:shrink-0 sa:items-center sa:justify-center sa:rounded-full sa:bg-tone-bg sa:font-semibold sa:tracking-normal sa:text-tone-fg",
167
+ size === 16 ? "sa:size-4 sa:text-[7px] sa:leading-2" : "sa:size-5 sa:text-[9px] sa:leading-[10px]"
163
168
  ),
164
169
  children: initials
165
170
  }
@@ -196,7 +201,7 @@ function FlappyAvatar({ tone, size }) {
196
201
  height: size,
197
202
  viewBox: "0 -2.5 17 17",
198
203
  shapeRendering: "crispEdges",
199
- className: "shrink-0",
204
+ className: "sa:shrink-0",
200
205
  children: FLAPPY_GRID.flatMap(
201
206
  (row, y) => [...row].map((c, x) => c === "." ? null : /* @__PURE__ */ jsx("rect", { x, y, width: 1, height: 1, fill: FLAPPY_FILL[+c] }, `${x}-${y}`))
202
207
  )
@@ -210,5 +215,3 @@ function toInitials(name) {
210
215
  }
211
216
 
212
217
  export { AgentAvatar, AgentMenuItem, AgentPicker, AgentPickerRow };
213
- //# sourceMappingURL=chunk-VAGIAREV.js.map
214
- //# sourceMappingURL=chunk-VAGIAREV.js.map
@@ -1,5 +1,6 @@
1
- import { Checkbox } from './chunk-FDKIX4DC.js';
2
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { Checkbox } from './chunk-X2GNMNZQ.js';
2
+ import { useSatinLabels } from './chunk-SSOFFQ5T.js';
3
+ import { cn } from './chunk-O46O6LFQ.js';
3
4
  import * as React from 'react';
4
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
5
6
 
@@ -12,7 +13,7 @@ function SortIcon({ direction }) {
12
13
  viewBox: "0 0 14 14",
13
14
  fill: "none",
14
15
  "aria-hidden": true,
15
- className: cn("shrink-0 text-text-muted", direction === "desc" && "rotate-180"),
16
+ className: cn("sa:shrink-0 sa:text-text-muted", direction === "desc" && "sa:rotate-180"),
16
17
  children: /* @__PURE__ */ jsx(
17
18
  "path",
18
19
  {
@@ -28,23 +29,23 @@ function SortIcon({ direction }) {
28
29
  }
29
30
  var cellHover = {
30
31
  first: [
31
- "group-hover/row:rounded-l-xl group-hover/row:bg-bg-hover group-hover/row:[box-shadow:inset_1px_0_0_var(--border-strong),inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]",
32
- "group-data-[force=hover]/row:rounded-l-xl group-data-[force=hover]/row:bg-bg-hover group-data-[force=hover]/row:[box-shadow:inset_1px_0_0_var(--border-strong),inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]"
32
+ "sa:group-hover/row:rounded-l-xl sa:group-hover/row:bg-bg-hover sa:group-hover/row:[box-shadow:inset_1px_0_0_var(--border-strong),inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]",
33
+ "sa:group-data-[force=hover]/row:rounded-l-xl sa:group-data-[force=hover]/row:bg-bg-hover sa:group-data-[force=hover]/row:[box-shadow:inset_1px_0_0_var(--border-strong),inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]"
33
34
  ].join(" "),
34
35
  middle: [
35
- "group-hover/row:bg-bg-hover group-hover/row:[box-shadow:inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]",
36
- "group-data-[force=hover]/row:bg-bg-hover group-data-[force=hover]/row:[box-shadow:inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]"
36
+ "sa:group-hover/row:bg-bg-hover sa:group-hover/row:[box-shadow:inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]",
37
+ "sa:group-data-[force=hover]/row:bg-bg-hover sa:group-data-[force=hover]/row:[box-shadow:inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]"
37
38
  ].join(" "),
38
39
  last: [
39
- "group-hover/row:rounded-r-xl group-hover/row:bg-bg-hover group-hover/row:[box-shadow:inset_-1px_0_0_var(--border-strong),inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]",
40
- "group-data-[force=hover]/row:rounded-r-xl group-data-[force=hover]/row:bg-bg-hover group-data-[force=hover]/row:[box-shadow:inset_-1px_0_0_var(--border-strong),inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]"
40
+ "sa:group-hover/row:rounded-r-xl sa:group-hover/row:bg-bg-hover sa:group-hover/row:[box-shadow:inset_-1px_0_0_var(--border-strong),inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]",
41
+ "sa:group-data-[force=hover]/row:rounded-r-xl sa:group-data-[force=hover]/row:bg-bg-hover sa:group-data-[force=hover]/row:[box-shadow:inset_-1px_0_0_var(--border-strong),inset_0_1px_0_var(--border-strong),inset_0_-1px_0_var(--border-strong)]"
41
42
  ].join(" "),
42
43
  only: [
43
- "group-hover/row:rounded-xl group-hover/row:bg-bg-hover group-hover/row:[box-shadow:inset_0_0_0_1px_var(--border-strong)]",
44
- "group-data-[force=hover]/row:rounded-xl group-data-[force=hover]/row:bg-bg-hover group-data-[force=hover]/row:[box-shadow:inset_0_0_0_1px_var(--border-strong)]"
44
+ "sa:group-hover/row:rounded-xl sa:group-hover/row:bg-bg-hover sa:group-hover/row:[box-shadow:inset_0_0_0_1px_var(--border-strong)]",
45
+ "sa:group-data-[force=hover]/row:rounded-xl sa:group-data-[force=hover]/row:bg-bg-hover sa:group-data-[force=hover]/row:[box-shadow:inset_0_0_0_1px_var(--border-strong)]"
45
46
  ].join(" ")
46
47
  };
47
- var rowHover = "hover:[filter:drop-shadow(0_1px_1px_var(--effect-shadow-sm))_drop-shadow(0_1px_1.5px_var(--effect-shadow-sm))] data-[force=hover]:[filter:drop-shadow(0_1px_1px_var(--effect-shadow-sm))_drop-shadow(0_1px_1.5px_var(--effect-shadow-sm))]";
48
+ var rowHover = "sa:hover:[filter:drop-shadow(0_1px_1px_var(--effect-shadow-sm))_drop-shadow(0_1px_1.5px_var(--effect-shadow-sm))] sa:data-[force=hover]:[filter:drop-shadow(0_1px_1px_var(--effect-shadow-sm))_drop-shadow(0_1px_1.5px_var(--effect-shadow-sm))]";
48
49
  function compare(a, b) {
49
50
  if (typeof a === "number" && typeof b === "number") return a - b;
50
51
  return String(a ?? "").localeCompare(String(b ?? ""), void 0, { numeric: true });
@@ -64,6 +65,7 @@ function Table({
64
65
  className,
65
66
  ...props
66
67
  }) {
68
+ const labels = useSatinLabels();
67
69
  const [sort, setSort] = React.useState(defaultSort);
68
70
  const [selectedState, setSelectedState] = React.useState([]);
69
71
  const selected = selectedProp ?? selectedState;
@@ -78,7 +80,8 @@ function Table({
78
80
  };
79
81
  const sortedRows = React.useMemo(() => {
80
82
  if (!sort || manualSort) return rows;
81
- const s = [...rows].sort((a, b) => compare(a[sort.key], b[sort.key]));
83
+ const field = (r) => r[sort.key];
84
+ const s = [...rows].sort((a, b) => compare(field(a), field(b)));
82
85
  return sort.direction === "desc" ? s.reverse() : s;
83
86
  }, [rows, sort, manualSort]);
84
87
  const scroll = overflow === "scroll";
@@ -106,50 +109,50 @@ function Table({
106
109
  ro.disconnect();
107
110
  };
108
111
  }, [scroll, columns, rows]);
109
- const stickyFirst = (bg) => scroll ? cn("sticky z-[1]", bg) : "";
110
- const firstDataLeft = selectable ? "left-6" : "left-0";
112
+ const stickyFirst = (bg) => scroll ? cn("sa:sticky sa:z-[1]", bg) : "";
113
+ const firstDataLeft = selectable ? "sa:left-6" : "sa:left-0";
111
114
  const cellPosition = (index, count) => count === 1 ? cellHover.only : index === 0 ? cellHover.first : index === count - 1 ? cellHover.last : cellHover.middle;
112
115
  const cellCount = columns.length + (selectable ? 1 : 0);
113
116
  const table = /* @__PURE__ */ jsxs(
114
117
  "table",
115
118
  {
116
119
  "aria-label": label,
117
- className: "w-full table-fixed border-separate border-spacing-0 text-left",
120
+ className: "sa:w-full sa:table-fixed sa:border-separate sa:border-spacing-0 sa:text-left",
118
121
  style: tableWidth ? { width: tableWidth, minWidth: "100%" } : { minWidth: columns.length * 120 + (selectable ? 24 : 0) },
119
122
  children: [
120
123
  /* @__PURE__ */ jsxs("colgroup", { children: [
121
124
  selectable && /* @__PURE__ */ jsx("col", { style: { width: 24 } }),
122
125
  columns.map((c) => /* @__PURE__ */ jsx("col", { style: { width: colWidth(c) } }, c.key))
123
126
  ] }),
124
- /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { className: "bg-component-table-header", children: [
127
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { className: "sa:bg-component-table-header", children: [
125
128
  selectable && /* @__PURE__ */ jsx(
126
129
  "th",
127
130
  {
128
131
  scope: "col",
129
- className: cn("border-b border-border-subtle py-2 pl-2 align-middle", stickyFirst("left-0 bg-component-table-header")),
132
+ className: cn("sa:border-b sa:border-border-subtle sa:py-2 sa:pl-2 sa:align-middle", stickyFirst("sa:left-0 sa:bg-component-table-header")),
130
133
  children: /* @__PURE__ */ jsx(
131
134
  Checkbox,
132
135
  {
133
- "aria-label": "Select all rows",
136
+ "aria-label": labels.selectAllRows,
134
137
  checked: allSelected ? true : someSelected ? "indeterminate" : false,
135
138
  onCheckedChange: (v) => setSelected(v === true ? rows.map((r) => r.id) : []),
136
- className: "align-middle"
139
+ className: "sa:align-middle"
137
140
  }
138
141
  )
139
142
  }
140
143
  ),
141
144
  columns.map((c, i) => {
142
145
  const active = sort?.key === c.key ? sort.direction : void 0;
143
- const labelClass = "inline-flex max-w-full items-center gap-2.5 overflow-hidden rounded-md px-2 py-[3px] text-sm leading-[18px] font-medium whitespace-nowrap text-text-muted";
146
+ const labelClass = "sa:inline-flex sa:max-w-full sa:items-center sa:gap-2.5 sa:overflow-hidden sa:rounded-md sa:px-2 sa:py-[3px] sa:text-sm sa:leading-[18px] sa:font-medium sa:whitespace-nowrap sa:text-text-muted";
144
147
  return /* @__PURE__ */ jsx(
145
148
  "th",
146
149
  {
147
150
  scope: "col",
148
151
  "aria-sort": c.sortable ? active === "asc" ? "ascending" : active === "desc" ? "descending" : "none" : void 0,
149
152
  className: cn(
150
- "h-8 overflow-hidden border-b border-border-subtle py-1 pr-2 pl-1 align-middle font-medium",
151
- c.align === "right" && "text-right",
152
- i === 0 && stickyFirst(cn(firstDataLeft, "bg-component-table-header"))
153
+ "sa:h-8 sa:overflow-hidden sa:border-b sa:border-border-subtle sa:py-1 sa:pr-2 sa:pl-1 sa:align-middle sa:font-medium",
154
+ c.align === "right" && "sa:text-right",
155
+ i === 0 && stickyFirst(cn(firstDataLeft, "sa:bg-component-table-header"))
153
156
  ),
154
157
  children: c.sortable ? /* @__PURE__ */ jsxs(
155
158
  "button",
@@ -158,11 +161,11 @@ function Table({
158
161
  onClick: () => cycleSort(c.key),
159
162
  className: cn(
160
163
  labelClass,
161
- "transition-colors duration-(--duration-fast) ease-(--ease-out) focus-visible:outline-none",
162
- "satin-hover:bg-bg-hover satin-focus:bg-bg-hover satin-focus:[box-shadow:0_0_0_2px_var(--action-focus-ring)]"
164
+ "sa:transition-colors sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out) sa:focus-visible:outline-none",
165
+ "sa:satin-hover:bg-bg-hover sa:satin-focus:bg-bg-hover sa:satin-focus:[box-shadow:0_0_0_2px_var(--action-focus-ring)]"
163
166
  ),
164
167
  children: [
165
- /* @__PURE__ */ jsx("span", { className: "truncate", children: c.header }),
168
+ /* @__PURE__ */ jsx("span", { className: "sa:truncate", children: c.header }),
166
169
  active && /* @__PURE__ */ jsx(SortIcon, { direction: active })
167
170
  ]
168
171
  }
@@ -174,15 +177,15 @@ function Table({
174
177
  ] }) }),
175
178
  /* @__PURE__ */ jsx("tbody", { children: sortedRows.map((row, r) => {
176
179
  const isSelected = selected.includes(row.id);
177
- const rowBg = zebra && r % 2 === 1 ? "bg-component-table-zebra" : "bg-bg-card";
178
- return /* @__PURE__ */ jsxs("tr", { "data-state": isSelected ? "selected" : void 0, className: cn("group/row", rowBg, rowHover), children: [
179
- selectable && /* @__PURE__ */ jsx("td", { className: cn("py-2 pl-2 align-middle", cellPosition(0, cellCount), stickyFirst(cn("left-0", rowBg))), children: /* @__PURE__ */ jsx(
180
+ const rowBg = zebra && r % 2 === 1 ? "sa:bg-component-table-zebra" : "sa:bg-bg-card";
181
+ return /* @__PURE__ */ jsxs("tr", { "data-state": isSelected ? "selected" : void 0, className: cn("sa:group/row", rowBg, rowHover), children: [
182
+ selectable && /* @__PURE__ */ jsx("td", { className: cn("sa:py-2 sa:pl-2 sa:align-middle", cellPosition(0, cellCount), stickyFirst(cn("sa:left-0", rowBg))), children: /* @__PURE__ */ jsx(
180
183
  Checkbox,
181
184
  {
182
- "aria-label": `Select row ${r + 1}`,
185
+ "aria-label": `${labels.selectRow} ${r + 1}`,
183
186
  checked: isSelected,
184
187
  onCheckedChange: (v) => setSelected(v === true ? [...selected, row.id] : selected.filter((id) => id !== row.id)),
185
- className: "align-middle"
188
+ className: "sa:align-middle"
186
189
  }
187
190
  ) }),
188
191
  columns.map((c, i) => {
@@ -192,12 +195,12 @@ function Table({
192
195
  "td",
193
196
  {
194
197
  className: cn(
195
- "h-10 overflow-hidden py-2 pr-2.5 pl-3 align-middle text-body leading-(--text-body--line-height) text-text-default",
196
- c.align === "right" && "text-right",
198
+ "sa:h-10 sa:overflow-hidden sa:py-2 sa:pr-2.5 sa:pl-3 sa:align-middle sa:text-body sa:leading-(--sa-text-body--line-height) sa:text-text-default",
199
+ c.align === "right" && "sa:text-right",
197
200
  cellPosition(i + (selectable ? 1 : 0), cellCount),
198
201
  i === 0 && stickyFirst(cn(firstDataLeft, rowBg))
199
202
  ),
200
- children: plain ? /* @__PURE__ */ jsx("span", { className: "block truncate", children: content }) : /* @__PURE__ */ jsx("div", { className: cn("flex min-w-0 items-center gap-1 overflow-hidden", c.align === "right" && "justify-end"), children: content })
203
+ children: plain ? /* @__PURE__ */ jsx("span", { className: "sa:block sa:truncate", children: content }) : /* @__PURE__ */ jsx("div", { className: cn("sa:flex sa:min-w-0 sa:items-center sa:gap-1 sa:overflow-hidden", c.align === "right" && "sa:justify-end"), children: content })
201
204
  },
202
205
  c.key
203
206
  );
@@ -211,10 +214,10 @@ function Table({
211
214
  "div",
212
215
  {
213
216
  "data-slot": "table",
214
- className: cn("relative overflow-hidden rounded-xl border border-border-subtle bg-bg-card", className),
217
+ className: cn("sa:relative sa:overflow-hidden sa:rounded-xl sa:border sa:border-border-subtle sa:bg-bg-card", className),
215
218
  ...props,
216
219
  children: scroll ? /* @__PURE__ */ jsxs(Fragment, { children: [
217
- /* @__PURE__ */ jsxs("div", { className: "relative", children: [
220
+ /* @__PURE__ */ jsxs("div", { className: "sa:relative", children: [
218
221
  /* @__PURE__ */ jsx(
219
222
  "div",
220
223
  {
@@ -222,7 +225,7 @@ function Table({
222
225
  tabIndex: 0,
223
226
  role: "region",
224
227
  "aria-label": label ? `${label}, scrolls sideways` : "Table, scrolls sideways",
225
- className: "overflow-x-auto [scrollbar-width:none] focus-visible:outline-none [&::-webkit-scrollbar]:hidden",
228
+ className: "sa:overflow-x-auto sa:[scrollbar-width:none] sa:focus-visible:outline-none sa:[&::-webkit-scrollbar]:hidden",
226
229
  children: table
227
230
  }
228
231
  ),
@@ -231,25 +234,23 @@ function Table({
231
234
  {
232
235
  "aria-hidden": true,
233
236
  className: cn(
234
- "pointer-events-none absolute inset-y-0 right-0 w-16 bg-linear-to-r from-bg-card-fade to-bg-card",
235
- "transition-opacity duration-(--duration-fast) ease-(--ease-out)",
236
- bar.atEnd && "opacity-0"
237
+ "sa:pointer-events-none sa:absolute sa:inset-y-0 sa:right-0 sa:w-16 sa:bg-linear-to-r sa:from-bg-card-fade sa:to-bg-card",
238
+ "sa:transition-opacity sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out)",
239
+ bar.atEnd && "sa:opacity-0"
237
240
  )
238
241
  }
239
242
  )
240
243
  ] }),
241
- /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: "px-3 pt-1.5 pb-1", children: /* @__PURE__ */ jsx("div", { className: "relative h-1.5 overflow-hidden rounded-full bg-bg-muted", children: /* @__PURE__ */ jsx(
244
+ /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: "sa:px-3 sa:pt-1.5 sa:pb-1", children: /* @__PURE__ */ jsx("div", { className: "sa:relative sa:h-1.5 sa:overflow-hidden sa:rounded-full sa:bg-bg-muted", children: /* @__PURE__ */ jsx(
242
245
  "div",
243
246
  {
244
- className: "absolute inset-y-0 left-0 rounded-full bg-border-strong",
247
+ className: "sa:absolute sa:inset-y-0 sa:left-0 sa:rounded-full sa:bg-border-strong",
245
248
  style: { width: `${bar.size * 100}%`, transform: `translateX(${bar.offset / bar.size * 100}%)` }
246
249
  }
247
250
  ) }) })
248
- ] }) : /* @__PURE__ */ jsx("div", { className: "overflow-x-auto overscroll-x-contain", children: table })
251
+ ] }) : /* @__PURE__ */ jsx("div", { className: "sa:overflow-x-auto sa:overscroll-x-contain", children: table })
249
252
  }
250
253
  );
251
254
  }
252
255
 
253
256
  export { Table };
254
- //# sourceMappingURL=chunk-X3PQANZO.js.map
255
- //# sourceMappingURL=chunk-X3PQANZO.js.map
@@ -1,4 +1,4 @@
1
- import { ChartCard, defaultFormat, ChartLegendPill } from './chunk-YPJYW624.js';
1
+ import { ChartCard, defaultFormat, ChartLegendPill } from './chunk-ZBZ3ZQRB.js';
2
2
  import * as React from 'react';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
 
@@ -23,11 +23,11 @@ function DonutCard({ data, formatValue = defaultFormat, highlight, centerLabel =
23
23
  return /* @__PURE__ */ jsx(ChartCard, { ...props, children: /* @__PURE__ */ jsxs(
24
24
  "div",
25
25
  {
26
- className: "flex flex-col items-center gap-4 @min-[560px]:flex-row @min-[560px]:gap-8",
26
+ className: "sa:flex sa:flex-col sa:items-center sa:gap-4 sa:@min-[560px]:flex-row sa:@min-[560px]:gap-8",
27
27
  onPointerLeave: () => setHovered(null),
28
28
  children: [
29
- /* @__PURE__ */ jsxs("div", { className: "relative shrink-0 py-2", style: { width: SIZE }, children: [
30
- /* @__PURE__ */ jsx("svg", { width: SIZE, height: SIZE, viewBox: `0 0 ${SIZE} ${SIZE}`, "aria-hidden": true, className: "block -rotate-90", children: arcs.map(({ i, start, len }) => /* @__PURE__ */ jsx(
29
+ /* @__PURE__ */ jsxs("div", { className: "sa:relative sa:shrink-0 sa:py-2", style: { width: SIZE }, children: [
30
+ /* @__PURE__ */ jsx("svg", { width: SIZE, height: SIZE, viewBox: `0 0 ${SIZE} ${SIZE}`, "aria-hidden": true, className: "sa:block sa:-rotate-90", children: arcs.map(({ i, start, len }) => /* @__PURE__ */ jsx(
31
31
  "circle",
32
32
  {
33
33
  cx: SIZE / 2,
@@ -39,20 +39,20 @@ function DonutCard({ data, formatValue = defaultFormat, highlight, centerLabel =
39
39
  strokeDasharray: `${len} ${C - len}`,
40
40
  strokeDashoffset: -start,
41
41
  onPointerEnter: () => setHovered(i),
42
- className: "transition-opacity duration-(--duration-fast) ease-(--ease-out)",
42
+ className: "sa:transition-opacity sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out)",
43
43
  style: { opacity: active !== null && active !== i ? 0.15 : 1 }
44
44
  },
45
45
  data[i].label
46
46
  )) }),
47
- /* @__PURE__ */ jsxs("div", { "aria-live": "polite", className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center text-center", children: [
48
- /* @__PURE__ */ jsx("span", { className: "text-xl leading-(--text-xl--line-height) font-semibold text-text-default tabular-nums", children: formatValue(active != null ? data[active].value : sum) }),
49
- /* @__PURE__ */ jsx("span", { className: "text-sm leading-(--text-sm--line-height) text-text-muted", children: active != null ? `${data[active].label} \xB7 ${share(data[active].value)}%` : centerLabel })
47
+ /* @__PURE__ */ jsxs("div", { "aria-live": "polite", className: "sa:pointer-events-none sa:absolute sa:inset-0 sa:flex sa:flex-col sa:items-center sa:justify-center sa:text-center", children: [
48
+ /* @__PURE__ */ jsx("span", { className: "sa:text-xl sa:leading-(--sa-text-xl--line-height) sa:font-semibold sa:text-text-default sa:tabular-nums", children: formatValue(active != null ? data[active].value : sum) }),
49
+ /* @__PURE__ */ jsx("span", { className: "sa:text-sm sa:leading-(--sa-text-sm--line-height) sa:text-text-muted", children: active != null ? `${data[active].label} \xB7 ${share(data[active].value)}%` : centerLabel })
50
50
  ] })
51
51
  ] }),
52
52
  /* @__PURE__ */ jsx(
53
53
  "ul",
54
54
  {
55
- className: "grid w-full grid-cols-2 gap-x-4 gap-y-2 px-2 @min-[560px]:flex @min-[560px]:flex-1 @min-[560px]:flex-col @min-[560px]:gap-1 @min-[560px]:px-0",
55
+ className: "sa:grid sa:w-full sa:grid-cols-2 sa:gap-x-4 sa:gap-y-2 sa:px-2 sa:@min-[560px]:flex sa:@min-[560px]:flex-1 sa:@min-[560px]:flex-col sa:@min-[560px]:gap-1 sa:@min-[560px]:px-0",
56
56
  "aria-label": props.title,
57
57
  children: data.map((d, i) => /* @__PURE__ */ jsx(
58
58
  "li",
@@ -62,12 +62,12 @@ function DonutCard({ data, formatValue = defaultFormat, highlight, centerLabel =
62
62
  onFocus: () => setHovered(i),
63
63
  onBlur: () => setHovered(null),
64
64
  "aria-label": `${d.label}: ${formatValue(d.value)}, ${share(d.value)}%`,
65
- className: "min-w-0 rounded-pill outline-none focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]",
65
+ className: "sa:min-w-0 sa:rounded-pill sa:outline-none sa:focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]",
66
66
  children: /* @__PURE__ */ jsx(
67
67
  ChartLegendPill,
68
68
  {
69
69
  variant: "plain",
70
- className: "flex w-full",
70
+ className: "sa:flex sa:w-full",
71
71
  color: seriesColor(i),
72
72
  label: d.label,
73
73
  active: active === i,
@@ -85,5 +85,3 @@ function DonutCard({ data, formatValue = defaultFormat, highlight, centerLabel =
85
85
  }
86
86
 
87
87
  export { DonutCard };
88
- //# sourceMappingURL=chunk-CL2II6BX.js.map
89
- //# sourceMappingURL=chunk-CL2II6BX.js.map
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { cn } from './chunk-O46O6LFQ.js';
2
2
  import * as React from 'react';
3
3
  import { Checkbox as Checkbox$1 } from 'radix-ui';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -15,9 +15,9 @@ function Checkbox({ className, label, description, placement = "left", id, ...pr
15
15
  "data-slot": "checkbox",
16
16
  "aria-labelledby": labelId,
17
17
  "aria-describedby": descriptionId,
18
- className: cn("peer satin-checkbox", className),
18
+ className: cn("sa:peer satin-checkbox", className),
19
19
  ...props,
20
- children: /* @__PURE__ */ jsx(Checkbox$1.Indicator, { className: "-m-px grid size-4 place-items-center", children: /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx("path", { d: "M3.6 8H12.4", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round" }) : /* @__PURE__ */ jsx(
20
+ children: /* @__PURE__ */ jsx(Checkbox$1.Indicator, { className: "sa:-m-px sa:grid sa:size-4 sa:place-items-center", children: /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx("path", { d: "M3.6 8H12.4", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round" }) : /* @__PURE__ */ jsx(
21
21
  "path",
22
22
  {
23
23
  d: "M3.33333 8.66667L6 11.3333L12.6667 4.66667",
@@ -37,12 +37,12 @@ function Checkbox({ className, label, description, placement = "left", id, ...pr
37
37
  {
38
38
  htmlFor: boxId,
39
39
  "data-slot": "checkbox-field",
40
- className: cn("flex cursor-pointer items-start gap-2 has-disabled:cursor-not-allowed has-data-disabled:cursor-not-allowed [&>:first-child]:mt-0.5", placement === "right" && "flex-row-reverse justify-between"),
40
+ className: cn("sa:flex sa:cursor-pointer sa:items-start sa:gap-2 sa:has-disabled:cursor-not-allowed sa:has-data-disabled:cursor-not-allowed sa:[&>:first-child]:mt-0.5", placement === "right" && "sa:flex-row-reverse sa:justify-between"),
41
41
  children: [
42
42
  box,
43
- /* @__PURE__ */ jsxs("div", { className: "grid gap-0.5 text-base", children: [
44
- label && /* @__PURE__ */ jsx("span", { id: labelId, className: "block leading-5 font-medium text-text-default", children: label }),
45
- description && /* @__PURE__ */ jsx("span", { id: descriptionId, className: "block leading-5 text-text-muted", children: description })
43
+ /* @__PURE__ */ jsxs("div", { className: "sa:grid sa:gap-0.5 sa:text-base", children: [
44
+ label && /* @__PURE__ */ jsx("span", { id: labelId, className: "sa:block sa:leading-5 sa:font-medium sa:text-text-default", children: label }),
45
+ description && /* @__PURE__ */ jsx("span", { id: descriptionId, className: "sa:block sa:leading-5 sa:text-text-muted", children: description })
46
46
  ] })
47
47
  ]
48
48
  }
@@ -51,5 +51,3 @@ function Checkbox({ className, label, description, placement = "left", id, ...pr
51
51
  }
52
52
 
53
53
  export { Checkbox };
54
- //# sourceMappingURL=chunk-FDKIX4DC.js.map
55
- //# sourceMappingURL=chunk-FDKIX4DC.js.map
@@ -1,14 +1,14 @@
1
- import { menuSurfaceClass, MenuItemContent, menuItemClass } from './chunk-3DINAQLL.js';
2
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { menuSurfaceClass, MenuItemContent, menuItemClass } from './chunk-BR2B4OIT.js';
2
+ import { cn } from './chunk-O46O6LFQ.js';
3
3
  import 'react';
4
4
  import { ContextMenu as ContextMenu$1 } from 'radix-ui';
5
5
  import { NavArrowRight } from 'iconoir-react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
7
7
 
8
8
  var contentClass = cn(
9
- "pointer-events-auto z-50 flex w-[255px] max-w-[calc(100vw-16px)] flex-col overflow-x-clip overflow-y-auto p-1",
9
+ "sa:pointer-events-auto sa:z-50 sa:flex sa:w-[255px] sa:max-w-[calc(100vw-16px)] sa:flex-col sa:overflow-x-clip sa:overflow-y-auto sa:p-1",
10
10
  menuSurfaceClass,
11
- "outline-none data-[state=open]:animate-[satin-enter_var(--duration-base)_var(--ease-out)]"
11
+ "sa:outline-none sa:data-[state=open]:animate-[satin-enter_var(--sa-duration-base)_var(--sa-ease-out)]"
12
12
  );
13
13
  function ContextMenu({
14
14
  trigger,
@@ -17,17 +17,19 @@ function ContextMenu({
17
17
  container,
18
18
  modal = true,
19
19
  onFocusOutside,
20
- className
20
+ className,
21
+ ...props
21
22
  }) {
22
23
  return /* @__PURE__ */ jsxs(ContextMenu$1.Root, { onOpenChange, modal, children: [
23
24
  /* @__PURE__ */ jsx(ContextMenu$1.Trigger, { asChild: true, children: trigger }),
24
25
  /* @__PURE__ */ jsx(ContextMenu$1.Portal, { container, children: /* @__PURE__ */ jsx(
25
26
  ContextMenu$1.Content,
26
27
  {
27
- "data-slot": "context-menu",
28
28
  collisionPadding: 8,
29
+ ...props,
30
+ "data-slot": "context-menu",
29
31
  onFocusOutside,
30
- className: cn(contentClass, "origin-(--radix-context-menu-content-transform-origin)", "max-h-(--radix-context-menu-content-available-height)", className),
32
+ className: cn(contentClass, "sa:origin-(--radix-context-menu-content-transform-origin)", "sa:max-h-(--radix-context-menu-content-available-height)", className),
31
33
  children
32
34
  }
33
35
  ) })
@@ -39,13 +41,13 @@ function ContextMenuItem({ label, icon, shortcut, description, destructive, clas
39
41
  {
40
42
  "data-slot": "context-menu-item",
41
43
  textValue: label,
42
- className: cn(menuItemClass, destructive && "[&_*]:text-action-destructive-fg", className),
44
+ className: cn(menuItemClass, destructive && "sa:[&_*]:text-action-destructive-fg", className),
43
45
  ...props,
44
46
  children: /* @__PURE__ */ jsx(MenuItemContent, { label, icon, shortcut, description, layout: "inline" })
45
47
  }
46
48
  );
47
49
  }
48
- function ContextMenuSub({ label, icon, children, disabled }) {
50
+ function ContextMenuSub({ label, icon, children, disabled, className, ...props }) {
49
51
  return /* @__PURE__ */ jsxs(ContextMenu$1.Sub, { children: [
50
52
  /* @__PURE__ */ jsxs(
51
53
  ContextMenu$1.SubTrigger,
@@ -53,10 +55,10 @@ function ContextMenuSub({ label, icon, children, disabled }) {
53
55
  "data-slot": "context-menu-sub",
54
56
  disabled,
55
57
  textValue: label,
56
- className: cn(menuItemClass, "data-[state=open]:bg-bg-selected"),
58
+ className: cn(menuItemClass, "sa:data-[state=open]:bg-bg-selected"),
57
59
  children: [
58
60
  /* @__PURE__ */ jsx(MenuItemContent, { label, icon, layout: "inline" }),
59
- /* @__PURE__ */ jsx(NavArrowRight, { "aria-hidden": true, className: "size-4 text-text-muted [stroke-width:1.875]" })
61
+ /* @__PURE__ */ jsx(NavArrowRight, { "aria-hidden": true, className: "sa:size-4 sa:text-text-muted sa:[stroke-width:1.875]" })
60
62
  ]
61
63
  }
62
64
  ),
@@ -66,16 +68,15 @@ function ContextMenuSub({ label, icon, children, disabled }) {
66
68
  sideOffset: 4,
67
69
  alignOffset: -5,
68
70
  collisionPadding: 8,
69
- className: cn(contentClass, "w-[220px] origin-(--radix-context-menu-content-transform-origin)"),
71
+ ...props,
72
+ className: cn(contentClass, "sa:w-[220px] sa:origin-(--radix-context-menu-content-transform-origin)", className),
70
73
  children
71
74
  }
72
75
  ) })
73
76
  ] });
74
77
  }
75
78
  function ContextMenuSeparator({ className }) {
76
- return /* @__PURE__ */ jsx(ContextMenu$1.Separator, { className: cn("-mx-1 my-1 h-px bg-bg-muted", className) });
79
+ return /* @__PURE__ */ jsx(ContextMenu$1.Separator, { className: cn("sa:-mx-1 sa:my-1 sa:h-px sa:bg-bg-muted", className) });
77
80
  }
78
81
 
79
82
  export { ContextMenu, ContextMenuItem, ContextMenuSeparator, ContextMenuSub };
80
- //# sourceMappingURL=chunk-PF3YBUKT.js.map
81
- //# sourceMappingURL=chunk-PF3YBUKT.js.map
@@ -79,5 +79,3 @@ function useSlidingIndicator(listRef, selector, selected, { animate: motionOn =
79
79
  }
80
80
 
81
81
  export { SLIDE_MS, useSlidingIndicator };
82
- //# sourceMappingURL=chunk-J3NSDRVH.js.map
83
- //# sourceMappingURL=chunk-J3NSDRVH.js.map