@uisatin/ui 0.2.0 → 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 (309) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +10 -1
  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-MYEZXZZC.js → chunk-BN7FDKCJ.js} +23 -25
  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.js +4 -6
  78. package/components/badge.js +2 -4
  79. package/components/banner-mesh.js +1 -3
  80. package/components/banner.js +4 -6
  81. package/components/bar-chart.js +10 -11
  82. package/components/breadcrumb.js +5 -6
  83. package/components/button.js +2 -4
  84. package/components/card.js +3 -5
  85. package/components/channel-chart.js +10 -11
  86. package/components/chart.js +9 -10
  87. package/components/checkbox.js +2 -4
  88. package/components/chip.js +2 -4
  89. package/components/citations.d.ts +6 -4
  90. package/components/citations.js +4 -5
  91. package/components/code-block.js +3 -5
  92. package/components/combobox.d.ts +12 -3
  93. package/components/combobox.js +9 -10
  94. package/components/command-menu.d.ts +6 -2
  95. package/components/command-menu.js +5 -6
  96. package/components/context-menu.d.ts +12 -5
  97. package/components/context-menu.js +5 -6
  98. package/components/cookie-consent.js +3 -5
  99. package/components/date-picker.d.ts +26 -14
  100. package/components/date-picker.js +8 -9
  101. package/components/decision-card.js +6 -7
  102. package/components/dialog.d.ts +5 -2
  103. package/components/dialog.js +4 -5
  104. package/components/donut-chart.js +10 -11
  105. package/components/dot.js +2 -4
  106. package/components/dropdown.d.ts +6 -1
  107. package/components/dropdown.js +4 -5
  108. package/components/empty-state.js +2 -4
  109. package/components/file-upload.js +6 -7
  110. package/components/floating.js +1 -3
  111. package/components/form-field.js +2 -4
  112. package/components/hover-card.d.ts +5 -2
  113. package/components/hover-card.js +2 -4
  114. package/components/input-otp.d.ts +4 -2
  115. package/components/input-otp.js +7 -8
  116. package/components/input.js +3 -5
  117. package/components/kbd.js +2 -4
  118. package/components/labels.d.ts +79 -0
  119. package/components/labels.js +1 -0
  120. package/components/line-chart.js +11 -12
  121. package/components/message-actions.js +4 -5
  122. package/components/message.js +7 -8
  123. package/components/number-input.d.ts +4 -2
  124. package/components/number-input.js +7 -8
  125. package/components/pagination.js +4 -6
  126. package/components/popover.d.ts +11 -5
  127. package/components/popover.js +3 -4
  128. package/components/progress.js +2 -4
  129. package/components/prompt-bar.js +5 -6
  130. package/components/radio.js +2 -4
  131. package/components/search-bar.js +3 -5
  132. package/components/segmented-control.d.ts +4 -2
  133. package/components/segmented-control.js +3 -5
  134. package/components/select.d.ts +10 -2
  135. package/components/select.js +6 -7
  136. package/components/sheet.d.ts +4 -2
  137. package/components/sheet.js +5 -6
  138. package/components/sidebar.js +2 -4
  139. package/components/skeleton.js +2 -4
  140. package/components/slider.d.ts +6 -2
  141. package/components/slider.js +7 -8
  142. package/components/sliding-indicator.js +1 -3
  143. package/components/streaming-text.js +2 -4
  144. package/components/switch.js +2 -4
  145. package/components/table.d.ts +16 -5
  146. package/components/table.js +4 -5
  147. package/components/tabs.d.ts +4 -2
  148. package/components/tabs.js +3 -5
  149. package/components/textarea.js +3 -5
  150. package/components/thinking.js +3 -5
  151. package/components/toast.js +4 -5
  152. package/components/toggle.js +2 -4
  153. package/components/tooltip.d.ts +5 -2
  154. package/components/tooltip.js +3 -5
  155. package/index.d.ts +1 -0
  156. package/index.js +67 -231
  157. package/lib/utils.d.ts +8 -1
  158. package/lib/utils.js +1 -3
  159. package/package.json +11 -1
  160. package/styles.css +1 -1
  161. package/theme/create-theme.d.ts +6 -2
  162. package/theme/index.js +1 -0
  163. package/chunk-2HKBZFIK.js.map +0 -1
  164. package/chunk-3DINAQLL.js.map +0 -1
  165. package/chunk-3ERGAHKA.js +0 -179
  166. package/chunk-3ERGAHKA.js.map +0 -1
  167. package/chunk-6C7CGJX2.js +0 -86
  168. package/chunk-6C7CGJX2.js.map +0 -1
  169. package/chunk-6QMSWITQ.js.map +0 -1
  170. package/chunk-6YXUBP27.js.map +0 -1
  171. package/chunk-72OCFAPT.js.map +0 -1
  172. package/chunk-7TXHCRAG.js.map +0 -1
  173. package/chunk-A5XEM3GF.js.map +0 -1
  174. package/chunk-AN2RNJLR.js.map +0 -1
  175. package/chunk-B2K45IUR.js.map +0 -1
  176. package/chunk-B6V4VSGH.js.map +0 -1
  177. package/chunk-BKZBWPUH.js.map +0 -1
  178. package/chunk-BNTPPZCK.js.map +0 -1
  179. package/chunk-BNZVTLHV.js.map +0 -1
  180. package/chunk-CL2II6BX.js.map +0 -1
  181. package/chunk-D7RZNTFC.js +0 -95
  182. package/chunk-D7RZNTFC.js.map +0 -1
  183. package/chunk-DETGJAIC.js +0 -147
  184. package/chunk-DETGJAIC.js.map +0 -1
  185. package/chunk-DO3TBNSC.js.map +0 -1
  186. package/chunk-ESC5JCVQ.js +0 -90
  187. package/chunk-ESC5JCVQ.js.map +0 -1
  188. package/chunk-FDKIX4DC.js.map +0 -1
  189. package/chunk-GICKPMJU.js.map +0 -1
  190. package/chunk-GQA24FYG.js +0 -57
  191. package/chunk-GQA24FYG.js.map +0 -1
  192. package/chunk-H4NU7NPO.js.map +0 -1
  193. package/chunk-H63FYCMY.js +0 -11
  194. package/chunk-H63FYCMY.js.map +0 -1
  195. package/chunk-HL42K2NH.js.map +0 -1
  196. package/chunk-HNQUX43Z.js +0 -109
  197. package/chunk-HNQUX43Z.js.map +0 -1
  198. package/chunk-HRKPV66B.js +0 -32
  199. package/chunk-HRKPV66B.js.map +0 -1
  200. package/chunk-J3NSDRVH.js.map +0 -1
  201. package/chunk-JPNWHWAQ.js.map +0 -1
  202. package/chunk-KNUWZNFV.js.map +0 -1
  203. package/chunk-L6NCCSIP.js.map +0 -1
  204. package/chunk-LLHTVIM3.js.map +0 -1
  205. package/chunk-LW3TRU5W.js.map +0 -1
  206. package/chunk-LZMKSFCF.js.map +0 -1
  207. package/chunk-MR3JDI7E.js +0 -122
  208. package/chunk-MR3JDI7E.js.map +0 -1
  209. package/chunk-MYEZXZZC.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-TX3H3QMA.js.map +0 -1
  225. package/chunk-UBNHSZSE.js.map +0 -1
  226. package/chunk-UC3ZJWOD.js +0 -73
  227. package/chunk-UC3ZJWOD.js.map +0 -1
  228. package/chunk-UGRSWP6U.js.map +0 -1
  229. package/chunk-VAGIAREV.js.map +0 -1
  230. package/chunk-WTMZT3IT.js +0 -105
  231. package/chunk-WTMZT3IT.js.map +0 -1
  232. package/chunk-WX6BP5ZP.js +0 -39
  233. package/chunk-WX6BP5ZP.js.map +0 -1
  234. package/chunk-X3PQANZO.js.map +0 -1
  235. package/chunk-XILQ7GXE.js.map +0 -1
  236. package/chunk-XL75JRUA.js.map +0 -1
  237. package/chunk-XZNHT6MO.js.map +0 -1
  238. package/chunk-Y5AYU7PK.js.map +0 -1
  239. package/chunk-YG7JOOLJ.js.map +0 -1
  240. package/chunk-YPJYW624.js +0 -195
  241. package/chunk-YPJYW624.js.map +0 -1
  242. package/chunk-YPNKBE5X.js.map +0 -1
  243. package/chunk-YX5VNRJX.js.map +0 -1
  244. package/components/accordion.js.map +0 -1
  245. package/components/agent-loading.js.map +0 -1
  246. package/components/agent-picker.js.map +0 -1
  247. package/components/agent-suggestion.js.map +0 -1
  248. package/components/announcement-bar.js.map +0 -1
  249. package/components/attachment.js.map +0 -1
  250. package/components/avatar.js.map +0 -1
  251. package/components/badge.js.map +0 -1
  252. package/components/banner-mesh.js.map +0 -1
  253. package/components/banner.js.map +0 -1
  254. package/components/bar-chart.js.map +0 -1
  255. package/components/breadcrumb.js.map +0 -1
  256. package/components/button.js.map +0 -1
  257. package/components/card.js.map +0 -1
  258. package/components/channel-chart.js.map +0 -1
  259. package/components/chart.js.map +0 -1
  260. package/components/checkbox.js.map +0 -1
  261. package/components/chip.js.map +0 -1
  262. package/components/citations.js.map +0 -1
  263. package/components/code-block.js.map +0 -1
  264. package/components/combobox.js.map +0 -1
  265. package/components/command-menu.js.map +0 -1
  266. package/components/context-menu.js.map +0 -1
  267. package/components/cookie-consent.js.map +0 -1
  268. package/components/date-picker.js.map +0 -1
  269. package/components/decision-card.js.map +0 -1
  270. package/components/dialog.js.map +0 -1
  271. package/components/donut-chart.js.map +0 -1
  272. package/components/dot.js.map +0 -1
  273. package/components/dropdown.js.map +0 -1
  274. package/components/empty-state.js.map +0 -1
  275. package/components/file-upload.js.map +0 -1
  276. package/components/floating.js.map +0 -1
  277. package/components/form-field.js.map +0 -1
  278. package/components/hover-card.js.map +0 -1
  279. package/components/input-otp.js.map +0 -1
  280. package/components/input.js.map +0 -1
  281. package/components/kbd.js.map +0 -1
  282. package/components/line-chart.js.map +0 -1
  283. package/components/message-actions.js.map +0 -1
  284. package/components/message.js.map +0 -1
  285. package/components/number-input.js.map +0 -1
  286. package/components/pagination.js.map +0 -1
  287. package/components/popover.js.map +0 -1
  288. package/components/progress.js.map +0 -1
  289. package/components/prompt-bar.js.map +0 -1
  290. package/components/radio.js.map +0 -1
  291. package/components/search-bar.js.map +0 -1
  292. package/components/segmented-control.js.map +0 -1
  293. package/components/select.js.map +0 -1
  294. package/components/sheet.js.map +0 -1
  295. package/components/sidebar.js.map +0 -1
  296. package/components/skeleton.js.map +0 -1
  297. package/components/slider.js.map +0 -1
  298. package/components/sliding-indicator.js.map +0 -1
  299. package/components/streaming-text.js.map +0 -1
  300. package/components/switch.js.map +0 -1
  301. package/components/table.js.map +0 -1
  302. package/components/tabs.js.map +0 -1
  303. package/components/textarea.js.map +0 -1
  304. package/components/thinking.js.map +0 -1
  305. package/components/toast.js.map +0 -1
  306. package/components/toggle.js.map +0 -1
  307. package/components/tooltip.js.map +0 -1
  308. package/index.js.map +0 -1
  309. package/lib/utils.js.map +0 -1
@@ -0,0 +1,128 @@
1
+ import { Progress } from './chunk-M2HEVFQ3.js';
2
+ import { Badge } from './chunk-XUOSJMEJ.js';
3
+ import { useSatinLabels } from './chunk-SSOFFQ5T.js';
4
+ import { cn } from './chunk-O46O6LFQ.js';
5
+ import * as React from 'react';
6
+ import { ArrowRight } from 'iconoir-react';
7
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
+
9
+ function AgentSuggestion({
10
+ kind,
11
+ icon,
12
+ meta,
13
+ title,
14
+ description,
15
+ actions,
16
+ children,
17
+ className,
18
+ ...props
19
+ }) {
20
+ const titleId = React.useId();
21
+ return /* @__PURE__ */ jsxs(
22
+ "section",
23
+ {
24
+ "data-slot": "agent-suggestion",
25
+ "aria-labelledby": title ? titleId : void 0,
26
+ className: cn(
27
+ "sa:flex sa:w-full sa:max-w-[400px] sa:flex-col sa:gap-3 sa:rounded-xl sa:border sa:border-border-subtle sa:bg-bg-card sa:p-3 sa:text-text-default sa:[box-shadow:0_1px_3px_0_var(--effect-shadow-sm),0_1px_2px_-1px_var(--effect-shadow-sm)]",
28
+ className
29
+ ),
30
+ ...props,
31
+ children: [
32
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:min-h-6 sa:items-center sa:gap-1.5", children: [
33
+ /* @__PURE__ */ jsx("div", { className: "sa:flex sa:min-w-0 sa:flex-1", children: /* @__PURE__ */ jsxs(
34
+ Badge,
35
+ {
36
+ size: "lg",
37
+ tone: "neutral",
38
+ variant: "outline",
39
+ className: "sa:max-w-full sa:[&_img]:size-3.5 sa:[&_img]:shrink-0",
40
+ children: [
41
+ icon,
42
+ /* @__PURE__ */ jsx("span", { className: "sa:truncate", children: kind })
43
+ ]
44
+ }
45
+ ) }),
46
+ meta && /* @__PURE__ */ jsx("div", { className: "sa:flex sa:shrink-0 sa:items-center", children: meta })
47
+ ] }),
48
+ (title || description) && /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:flex-col sa:gap-2", children: [
49
+ title && /* @__PURE__ */ jsx("div", { id: titleId, className: "sa:text-base sa:leading-[14px] sa:font-medium sa:tracking-normal sa:text-text-default", children: title }),
50
+ description && /* @__PURE__ */ jsx("div", { className: "sa:text-base sa:text-text-muted", children: description })
51
+ ] }),
52
+ children,
53
+ actions && /* @__PURE__ */ jsx("div", { className: "sa:flex sa:flex-wrap sa:items-center sa:justify-end sa:gap-2 sa:pt-1", children: actions })
54
+ ]
55
+ }
56
+ );
57
+ }
58
+ function AgentSuggestionQuote({
59
+ from,
60
+ avatar,
61
+ children,
62
+ className
63
+ }) {
64
+ return /* @__PURE__ */ jsxs("blockquote", { "data-slot": "agent-suggestion-quote", className: cn("sa:m-0 sa:flex sa:flex-col sa:gap-1 sa:rounded-lg sa:bg-bg-muted sa:px-3 sa:py-2", className), children: [
65
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:items-center sa:gap-1.5", children: [
66
+ avatar,
67
+ /* @__PURE__ */ jsx("span", { className: "sa:text-xs sa:leading-3 sa:font-medium sa:tracking-normal sa:text-text-default", children: from })
68
+ ] }),
69
+ /* @__PURE__ */ jsx("p", { className: "sa:m-0 sa:text-base sa:text-text-muted", children })
70
+ ] });
71
+ }
72
+ function AgentSuggestionMetric({
73
+ value,
74
+ unit,
75
+ used,
76
+ max,
77
+ className
78
+ }) {
79
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "agent-suggestion-metric", className: cn("sa:flex sa:flex-col sa:gap-2", className), children: [
80
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:items-baseline sa:gap-2", children: [
81
+ /* @__PURE__ */ jsx("span", { className: "sa:text-2xl sa:leading-[1.5] sa:font-medium sa:tabular-nums", children: value }),
82
+ unit && /* @__PURE__ */ jsx("span", { className: "sa:text-base sa:text-text-muted", children: unit })
83
+ ] }),
84
+ used != null && max != null && /* @__PURE__ */ jsx(
85
+ Progress,
86
+ {
87
+ value: used,
88
+ max,
89
+ showValue: false,
90
+ "aria-label": typeof unit === "string" ? unit : void 0,
91
+ className: "sa:[&_[role=progressbar]]:h-1.5"
92
+ }
93
+ )
94
+ ] });
95
+ }
96
+ function AgentSuggestionDiff({ before, after, className }) {
97
+ const labels = useSatinLabels();
98
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "agent-suggestion-diff", className: cn("sa:flex sa:flex-col sa:gap-1 sa:text-base", className), children: [
99
+ /* @__PURE__ */ jsxs("del", { className: "sa:rounded-lg sa:bg-bg-muted sa:px-2 sa:py-1.5 sa:text-text-muted", children: [
100
+ /* @__PURE__ */ jsxs("span", { className: "sa:sr-only", children: [
101
+ labels.remove,
102
+ ": "
103
+ ] }),
104
+ before
105
+ ] }),
106
+ /* @__PURE__ */ jsxs("ins", { className: "sa:rounded-lg sa:bg-status-green-bg sa:px-2 sa:py-1.5 sa:text-status-green-fg sa:no-underline", children: [
107
+ /* @__PURE__ */ jsxs("span", { className: "sa:sr-only", children: [
108
+ labels.add,
109
+ ": "
110
+ ] }),
111
+ after
112
+ ] })
113
+ ] });
114
+ }
115
+ function AgentSuggestionChanges({ changes, className }) {
116
+ return /* @__PURE__ */ jsx("dl", { "data-slot": "agent-suggestion-changes", className: cn("sa:m-0 sa:flex sa:flex-col sa:gap-2 sa:text-base", className), children: changes.map((c, i) => /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:min-h-[21px] sa:items-center sa:gap-2", children: [
117
+ /* @__PURE__ */ jsx("dt", { className: "sa:w-[88px] sa:shrink-0 sa:text-text-muted", children: c.field }),
118
+ /* @__PURE__ */ jsxs("dd", { className: "sa:m-0 sa:flex sa:min-w-0 sa:items-center sa:gap-2", children: [
119
+ c.from != null && /* @__PURE__ */ jsxs(Fragment, { children: [
120
+ /* @__PURE__ */ jsx("del", { className: "sa:text-text-subtle", children: c.from }),
121
+ /* @__PURE__ */ jsx(ArrowRight, { "aria-hidden": true, className: "sa:size-4 sa:shrink-0 sa:text-text-subtle sa:[stroke-width:1.875]" })
122
+ ] }),
123
+ typeof c.to === "string" ? /* @__PURE__ */ jsx("span", { className: "sa:font-medium sa:text-text-default", children: c.to }) : c.to
124
+ ] })
125
+ ] }, i)) });
126
+ }
127
+
128
+ export { AgentSuggestion, AgentSuggestionChanges, AgentSuggestionDiff, AgentSuggestionMetric, AgentSuggestionQuote };
@@ -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 'react';
4
5
  import { Dialog as Dialog$1 } from 'radix-ui';
5
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -32,8 +33,10 @@ function Dialog({
32
33
  modal = true,
33
34
  container,
34
35
  onOpenAutoFocus,
35
- className
36
+ className,
37
+ ...props
36
38
  }) {
39
+ const labels = useSatinLabels();
37
40
  const position = container ? "absolute" : "fixed";
38
41
  const hasBody = children != null || alert != null;
39
42
  return /* @__PURE__ */ jsxs(Dialog$1.Root, { open, defaultOpen, onOpenChange, modal, children: [
@@ -44,40 +47,41 @@ function Dialog({
44
47
  {
45
48
  className: cn(
46
49
  position,
47
- "inset-0 z-50 bg-black-a40"
50
+ "sa:inset-0 sa:z-50 sa:bg-black-a40"
48
51
  )
49
52
  }
50
53
  ),
51
- /* @__PURE__ */ jsx("div", { className: cn(position, "pointer-events-none inset-0 z-50 grid grid-cols-[minmax(0,1fr)] grid-rows-[minmax(0,1fr)] place-items-center p-4"), children: /* @__PURE__ */ jsxs(
54
+ /* @__PURE__ */ jsx("div", { className: cn(position, "sa:pointer-events-none sa:inset-0 sa:z-50 sa:grid sa:grid-cols-[minmax(0,1fr)] sa:grid-rows-[minmax(0,1fr)] sa:place-items-center sa:p-4"), children: /* @__PURE__ */ jsxs(
52
55
  Dialog$1.Content,
53
56
  {
57
+ ...description ? {} : { "aria-describedby": void 0 },
58
+ ...props,
54
59
  role: variant === "destructive" ? "alertdialog" : "dialog",
55
60
  "data-slot": "dialog",
56
61
  "data-variant": variant,
57
62
  onOpenAutoFocus,
58
- ...description ? {} : { "aria-describedby": void 0 },
59
63
  className: cn(
60
- "pointer-events-auto relative flex max-h-full w-[425px] max-w-[min(560px,100%)] min-w-[min(360px,100%)] flex-col overflow-clip",
61
- "rounded-2xl border border-border-default bg-bg-popover",
62
- "[box-shadow:0_4px_6px_-4px_var(--effect-shadow-sm),0_10px_15px_-3px_var(--effect-shadow-sm)]",
63
- "focus-visible:outline-none",
64
- "data-[state=open]:animate-[satin-enter_var(--duration-base)_var(--ease-out)]",
64
+ "sa:pointer-events-auto sa:relative sa:flex sa:max-h-full sa:w-[425px] sa:max-w-[min(560px,100%)] sa:min-w-[min(360px,100%)] sa:flex-col sa:overflow-clip",
65
+ "sa:rounded-2xl sa:border sa:border-border-default sa:bg-bg-popover",
66
+ "sa:[box-shadow:0_4px_6px_-4px_var(--effect-shadow-sm),0_10px_15px_-3px_var(--effect-shadow-sm)]",
67
+ "sa:focus-visible:outline-none",
68
+ "sa:data-[state=open]:animate-[satin-enter_var(--sa-duration-base)_var(--sa-ease-out)]",
65
69
  className
66
70
  ),
67
71
  children: [
68
- /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-col gap-3", children: [
69
- /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 flex-col gap-0.5 px-4 pt-4 pb-2", children: [
70
- /* @__PURE__ */ jsx(Dialog$1.Title, { className: "pr-8 text-base leading-[14px] font-medium tracking-normal text-text-default", children: title }),
71
- description ? /* @__PURE__ */ jsx(Dialog$1.Description, { className: "text-body text-text-muted", children: description }) : null
72
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:min-h-0 sa:flex-col sa:gap-3", children: [
73
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:shrink-0 sa:flex-col sa:gap-0.5 sa:px-4 sa:pt-4 sa:pb-2", children: [
74
+ /* @__PURE__ */ jsx(Dialog$1.Title, { className: "sa:pr-8 sa:text-base sa:leading-[14px] sa:font-medium sa:tracking-normal sa:text-text-default", children: title }),
75
+ description ? /* @__PURE__ */ jsx(Dialog$1.Description, { className: "sa:text-body sa:text-text-muted", children: description }) : null
72
76
  ] }),
73
- hasBody && /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-col gap-3 overflow-y-auto px-4 pb-3", children: [
74
- typeof children === "string" ? /* @__PURE__ */ jsx("p", { className: "text-body text-text-default", children }) : children,
77
+ hasBody && /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:min-h-0 sa:flex-col sa:gap-3 sa:overflow-y-auto sa:px-4 sa:pb-3", children: [
78
+ typeof children === "string" ? /* @__PURE__ */ jsx("p", { className: "sa:text-body sa:text-text-default", children }) : children,
75
79
  alert
76
80
  ] })
77
81
  ] }),
78
- (footer || footerStart) && /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 flex-wrap items-center justify-end gap-3 p-4", children: [
79
- footerStart && /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 items-center", children: footerStart }),
80
- /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2", children: footer })
82
+ (footer || footerStart) && /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:shrink-0 sa:flex-wrap sa:items-center sa:justify-end sa:gap-3 sa:p-4", children: [
83
+ footerStart && /* @__PURE__ */ jsx("div", { className: "sa:flex sa:min-w-0 sa:flex-1 sa:items-center", children: footerStart }),
84
+ /* @__PURE__ */ jsx("div", { className: "sa:flex sa:shrink-0 sa:items-center sa:gap-2", children: footer })
81
85
  ] }),
82
86
  closeButton && /* @__PURE__ */ jsx(Dialog$1.Close, { asChild: true, children: /* @__PURE__ */ jsx(
83
87
  Button,
@@ -85,8 +89,8 @@ function Dialog({
85
89
  variant: "tertiary",
86
90
  size: "xl",
87
91
  iconOnly: true,
88
- "aria-label": "Close",
89
- className: "absolute top-[7px] right-[7px] rounded-lg",
92
+ "aria-label": labels.close,
93
+ className: "sa:absolute sa:top-[7px] sa:right-[7px] sa:rounded-lg",
90
94
  children: /* @__PURE__ */ jsx(CloseIcon, {})
91
95
  }
92
96
  ) })
@@ -98,13 +102,13 @@ function Dialog({
98
102
  }
99
103
  var DialogClose = Dialog$1.Close;
100
104
  var alertTint = {
101
- info: "bg-status-sky-bg text-status-sky-fg",
102
- success: "bg-status-green-bg text-status-green-fg",
103
- warning: "bg-status-amber-bg text-status-amber-fg",
104
- error: "bg-status-red-bg text-status-red-fg"
105
+ info: "sa:bg-status-sky-bg sa:text-status-sky-fg",
106
+ success: "sa:bg-status-green-bg sa:text-status-green-fg",
107
+ warning: "sa:bg-status-amber-bg sa:text-status-amber-fg",
108
+ error: "sa:bg-status-red-bg sa:text-status-red-fg"
105
109
  };
106
110
  function StatusIcon({ intent }) {
107
- return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, className: "shrink-0", children: /* @__PURE__ */ jsx("g", { stroke: "currentColor", style: { strokeWidth: 1.25 }, strokeLinecap: "round", strokeLinejoin: "round", children: intent === "success" ? /* @__PURE__ */ jsx("path", { d: "M3.33333 8.66667L6 11.3333L12.6667 4.66667" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
111
+ return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, className: "sa:shrink-0", children: /* @__PURE__ */ jsx("g", { stroke: "currentColor", style: { strokeWidth: 1.25 }, strokeLinecap: "round", strokeLinejoin: "round", children: intent === "success" ? /* @__PURE__ */ jsx("path", { d: "M3.33333 8.66667L6 11.3333L12.6667 4.66667" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
108
112
  intent === "info" ? /* @__PURE__ */ jsxs(Fragment, { children: [
109
113
  /* @__PURE__ */ jsx("path", { d: "M8 7.70494V10.6557" }),
110
114
  /* @__PURE__ */ jsx("path", { d: "M8 5.35022L8.0059 5.34366" })
@@ -124,28 +128,27 @@ function DialogAlert({
124
128
  className,
125
129
  ...props
126
130
  }) {
131
+ const labels = useSatinLabels();
127
132
  return /* @__PURE__ */ jsxs(
128
133
  "div",
129
134
  {
130
135
  role: intent === "error" || intent === "warning" ? "alert" : "status",
131
136
  "data-slot": "dialog-alert",
132
137
  "data-intent": intent,
133
- className: cn("flex w-full items-center gap-3 rounded-xl px-4 py-3", alertTint[intent], className),
138
+ className: cn("sa:flex sa:w-full sa:items-center sa:gap-3 sa:rounded-xl sa:px-4 sa:py-3", alertTint[intent], className),
134
139
  ...props,
135
140
  children: [
136
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2.5", children: [
141
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:min-w-0 sa:flex-1 sa:items-center sa:gap-2.5", children: [
137
142
  icon && /* @__PURE__ */ jsx(StatusIcon, { intent }),
138
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
139
- /* @__PURE__ */ jsx("p", { className: "text-base font-medium text-text-default", children: title }),
140
- description ? /* @__PURE__ */ jsx("p", { className: "text-body text-text-muted", children: description }) : null
143
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:min-w-0 sa:flex-1 sa:flex-col", children: [
144
+ /* @__PURE__ */ jsx("p", { className: "sa:text-base sa:font-medium sa:text-text-default", children: title }),
145
+ description ? /* @__PURE__ */ jsx("p", { className: "sa:text-body sa:text-text-muted", children: description }) : null
141
146
  ] })
142
147
  ] }),
143
- onDismiss && /* @__PURE__ */ jsx(Button, { variant: "tertiary", iconOnly: true, "aria-label": "Dismiss", onClick: onDismiss, children: /* @__PURE__ */ jsx(CloseIcon, {}) })
148
+ onDismiss && /* @__PURE__ */ jsx(Button, { variant: "tertiary", iconOnly: true, "aria-label": labels.dismiss, onClick: onDismiss, children: /* @__PURE__ */ jsx(CloseIcon, {}) })
144
149
  ]
145
150
  }
146
151
  );
147
152
  }
148
153
 
149
154
  export { CloseIcon, Dialog, DialogAlert, DialogClose, StatusIcon };
150
- //# sourceMappingURL=chunk-JPNWHWAQ.js.map
151
- //# sourceMappingURL=chunk-JPNWHWAQ.js.map
@@ -1,34 +1,34 @@
1
- import { Tooltip, TooltipBubble } from './chunk-B6V4VSGH.js';
2
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { Tooltip, TooltipBubble } from './chunk-GMETYACH.js';
2
+ import { cn } from './chunk-O46O6LFQ.js';
3
3
  import * as React from 'react';
4
4
  import { createPortal } from 'react-dom';
5
5
  import { cva } from 'class-variance-authority';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
7
7
 
8
8
  var avatarVariants = cva(
9
- "inline-flex shrink-0 items-center justify-center overflow-clip bg-tone-bg text-center whitespace-nowrap text-tone-fg select-none",
9
+ "sa:inline-flex sa:shrink-0 sa:items-center sa:justify-center sa:overflow-clip sa:bg-tone-bg sa:text-center sa:whitespace-nowrap sa:text-tone-fg sa:select-none",
10
10
  {
11
11
  variants: {
12
12
  size: {
13
- 16: "size-4 text-[7px] leading-[8px] font-semibold tracking-normal",
14
- 20: "size-5 text-[9px] leading-[10px] font-semibold tracking-normal",
15
- 24: "size-6 text-2xs font-semibold",
16
- 32: "size-8 text-sm leading-4 font-medium tracking-normal",
17
- 40: "size-10 text-base leading-[14px] font-medium tracking-normal",
18
- 48: "size-12 text-lg font-medium"
13
+ 16: "sa:size-4 sa:text-[7px] sa:leading-[8px] sa:font-semibold sa:tracking-normal",
14
+ 20: "sa:size-5 sa:text-[9px] sa:leading-[10px] sa:font-semibold sa:tracking-normal",
15
+ 24: "sa:size-6 sa:text-2xs sa:font-semibold",
16
+ 32: "sa:size-8 sa:text-sm sa:leading-4 sa:font-medium sa:tracking-normal",
17
+ 40: "sa:size-10 sa:text-base sa:leading-[14px] sa:font-medium sa:tracking-normal",
18
+ 48: "sa:size-12 sa:text-lg sa:font-medium"
19
19
  },
20
20
  shape: {
21
- circle: "rounded-full",
21
+ circle: "sa:rounded-full",
22
22
  rounded: ""
23
23
  }
24
24
  },
25
25
  compoundVariants: [
26
- { shape: "rounded", size: 16, className: "rounded-xs" },
27
- { shape: "rounded", size: 20, className: "rounded-xs" },
28
- { shape: "rounded", size: 24, className: "rounded-sm" },
29
- { shape: "rounded", size: 32, className: "rounded-md" },
30
- { shape: "rounded", size: 40, className: "rounded-lg" },
31
- { shape: "rounded", size: 48, className: "rounded-xl" }
26
+ { shape: "sa:rounded", size: 16, className: "sa:rounded-xs" },
27
+ { shape: "sa:rounded", size: 20, className: "sa:rounded-xs" },
28
+ { shape: "sa:rounded", size: 24, className: "sa:rounded-sm" },
29
+ { shape: "sa:rounded", size: 32, className: "sa:rounded-md" },
30
+ { shape: "sa:rounded", size: 40, className: "sa:rounded-lg" },
31
+ { shape: "sa:rounded", size: 48, className: "sa:rounded-xl" }
32
32
  ],
33
33
  defaultVariants: { size: 32, shape: "circle" }
34
34
  }
@@ -47,7 +47,7 @@ function Avatar({ className, initials, tone = "neutral", size = 32, shape, name,
47
47
  ...name ? { role: "img", "aria-label": name, tabIndex: 0 } : {},
48
48
  className: cn(
49
49
  avatarVariants({ size, shape }),
50
- name && "outline-none focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]",
50
+ name && "sa:outline-none sa:focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]",
51
51
  className
52
52
  ),
53
53
  ...props,
@@ -101,7 +101,7 @@ function AvatarGroup({ className, side = "top", children, ...props }) {
101
101
  []
102
102
  );
103
103
  return /* @__PURE__ */ jsxs(AvatarGroupContext.Provider, { value: api, children: [
104
- /* @__PURE__ */ jsx("div", { "data-slot": "avatar-group", role: "group", className: cn("flex items-center gap-2", className), ...props, children }),
104
+ /* @__PURE__ */ jsx("div", { "data-slot": "avatar-group", role: "group", className: cn("sa:flex sa:items-center sa:gap-2", className), ...props, children }),
105
105
  open && target && /* @__PURE__ */ jsx(GroupTooltip, { anchor: target.el, name: target.name, side })
106
106
  ] });
107
107
  }
@@ -136,21 +136,21 @@ function GroupTooltip({ anchor, name, side }) {
136
136
  {
137
137
  "aria-hidden": true,
138
138
  "data-side": side,
139
- className: "pointer-events-none fixed top-0 left-0 z-50 transition-transform duration-(--duration-base) ease-(--ease-out) motion-reduce:transition-none",
139
+ className: "sa:pointer-events-none sa:fixed sa:top-0 sa:left-0 sa:z-50 sa:transition-transform sa:duration-(--sa-duration-base) sa:ease-(--sa-ease-out) sa:motion-reduce:transition-none",
140
140
  style: { transform: `translate(${point.x}px, ${point.y}px)` },
141
141
  children: /* @__PURE__ */ jsx(
142
142
  "div",
143
143
  {
144
144
  className: cn(
145
- "-translate-x-1/2 transition-[opacity,translate] duration-(--duration-fast) ease-(--ease-out) starting:opacity-0",
146
- side === "top" ? "-translate-y-full starting:-translate-y-[calc(100%-4px)]" : "starting:translate-y-[-4px]"
145
+ "sa:-translate-x-1/2 sa:transition-[opacity,translate] sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out) sa:starting:opacity-0",
146
+ side === "top" ? "sa:-translate-y-full sa:starting:-translate-y-[calc(100%-4px)]" : "sa:starting:translate-y-[-4px]"
147
147
  ),
148
148
  children: /* @__PURE__ */ jsx(
149
149
  TooltipBubble,
150
150
  {
151
- className: "overflow-hidden transition-[width] duration-(--duration-base) ease-(--ease-out) motion-reduce:transition-none",
151
+ className: "sa:overflow-hidden sa:transition-[width] sa:duration-(--sa-duration-base) sa:ease-(--sa-ease-out) sa:motion-reduce:transition-none",
152
152
  style: { width },
153
- label: /* @__PURE__ */ jsx("span", { ref: label, className: "inline-block shrink-0 transition-opacity duration-(--duration-fast) ease-(--ease-out) starting:opacity-0", children: name }, name)
153
+ label: /* @__PURE__ */ jsx("span", { ref: label, className: "sa:inline-block sa:shrink-0 sa:transition-opacity sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out) sa:starting:opacity-0", children: name }, name)
154
154
  }
155
155
  )
156
156
  }
@@ -162,5 +162,3 @@ function GroupTooltip({ anchor, name, side }) {
162
162
  }
163
163
 
164
164
  export { AVATAR_TOOLTIP_DELAY, Avatar, AvatarGroup, avatarVariants };
165
- //# sourceMappingURL=chunk-MYEZXZZC.js.map
166
- //# sourceMappingURL=chunk-MYEZXZZC.js.map
@@ -1,15 +1,16 @@
1
- import { KbdGroup } from './chunk-BKZBWPUH.js';
2
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { KbdGroup } from './chunk-57QEOCDZ.js';
2
+ import { useSatinLabels } from './chunk-SSOFFQ5T.js';
3
+ import { cn } from './chunk-O46O6LFQ.js';
3
4
  import 'react';
4
5
  import { DropdownMenu as DropdownMenu$1 } from 'radix-ui';
5
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
6
7
 
7
8
  var menuSurfaceClass = cn(
8
- "rounded-xl border border-border-subtle bg-bg-popover",
9
- "[box-shadow:0_1px_3px_0_var(--effect-shadow-sm),0_1px_2px_-1px_var(--effect-shadow-sm)]"
9
+ "sa:rounded-xl sa:border sa:border-border-subtle sa:bg-bg-popover",
10
+ "sa:[box-shadow:0_1px_3px_0_var(--effect-shadow-sm),0_1px_2px_-1px_var(--effect-shadow-sm)]"
10
11
  );
11
- var menuGroupClass = "flex flex-col gap-1 not-last:after:block not-last:after:h-px not-last:after:bg-bg-muted";
12
- var menuGroupLabelClass = "flex h-6 items-center px-3 text-xs leading-3 tracking-normal text-text-subtle";
12
+ var menuGroupClass = "sa:flex sa:flex-col sa:gap-1 sa:not-last:after:block sa:not-last:after:h-px sa:not-last:after:bg-bg-muted";
13
+ var menuGroupLabelClass = "sa:flex sa:h-6 sa:items-center sa:px-3 sa:text-xs sa:leading-3 sa:tracking-normal sa:text-text-subtle";
13
14
  function DropdownMenu({
14
15
  trigger,
15
16
  children,
@@ -30,19 +31,19 @@ function DropdownMenu({
30
31
  /* @__PURE__ */ jsx(DropdownMenu$1.Portal, { container, children: /* @__PURE__ */ jsx(
31
32
  DropdownMenu$1.Content,
32
33
  {
34
+ collisionPadding: 8,
35
+ ...props,
33
36
  "data-slot": "dropdown-menu",
34
- "aria-label": props["aria-label"],
35
37
  side,
36
38
  align,
37
39
  sideOffset,
38
- collisionPadding: 8,
39
40
  onFocusOutside,
40
41
  className: cn(
41
- "pointer-events-auto z-50 flex w-[255px] max-w-[520px] flex-col gap-1 overflow-x-clip overflow-y-auto p-1",
42
- "max-h-(--radix-dropdown-menu-content-available-height)",
42
+ "sa:pointer-events-auto sa:z-50 sa:flex sa:w-[255px] sa:max-w-[520px] sa:flex-col sa:gap-1 sa:overflow-x-clip sa:overflow-y-auto sa:p-1",
43
+ "sa:max-h-(--radix-dropdown-menu-content-available-height)",
43
44
  menuSurfaceClass,
44
- "origin-(--radix-dropdown-menu-content-transform-origin) outline-none",
45
- "data-[state=open]:animate-[satin-enter_var(--duration-base)_var(--ease-out)]",
45
+ "sa:origin-(--radix-dropdown-menu-content-transform-origin) sa:outline-none",
46
+ "sa:data-[state=open]:animate-[satin-enter_var(--sa-duration-base)_var(--sa-ease-out)]",
46
47
  className
47
48
  ),
48
49
  children
@@ -65,11 +66,11 @@ function DropdownMenuGroup({ label, children, className, ...props }) {
65
66
  );
66
67
  }
67
68
  var menuItemClass = cn(
68
- "flex min-h-menu-row w-full cursor-pointer items-center gap-2 rounded-lg px-3 py-1.5 text-left outline-none select-none focus-visible:ring-0",
69
- "transition-colors duration-(--duration-fast) ease-(--ease-out)",
70
- "data-[highlighted]:bg-bg-selected data-[force=hover]:bg-bg-selected data-[selected]:bg-bg-selected",
71
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
72
- "[&_svg]:pointer-events-none [&_svg]:shrink-0"
69
+ "sa:flex sa:min-h-menu-row sa:w-full sa:cursor-pointer sa:items-center sa:gap-2 sa:rounded-lg sa:px-3 sa:py-1.5 sa:text-left sa:outline-none sa:select-none sa:focus-visible:ring-0",
70
+ "sa:transition-colors sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out)",
71
+ "sa:data-[highlighted]:bg-bg-selected sa:data-[force=hover]:bg-bg-selected sa:data-[selected]:bg-bg-selected",
72
+ "sa:data-[disabled]:pointer-events-none sa:data-[disabled]:opacity-50",
73
+ "sa:[&_svg]:pointer-events-none sa:[&_svg]:shrink-0"
73
74
  );
74
75
  function MenuItemContent({
75
76
  label,
@@ -81,27 +82,32 @@ function MenuItemContent({
81
82
  shortcut,
82
83
  renderLabel = (l) => l
83
84
  }) {
85
+ const labels = useSatinLabels();
84
86
  return /* @__PURE__ */ jsxs(Fragment, { children: [
85
87
  icon ? /* @__PURE__ */ jsx(
86
88
  "span",
87
89
  {
88
90
  className: cn(
89
- "grid shrink-0 place-items-center text-text-muted",
90
- iconSize === 20 ? "size-5 [&_svg]:size-5 [&_svg]:[stroke-width:1.5]" : "size-4 [&_svg]:size-4 [&_svg]:[stroke-width:1.875]"
91
+ "sa:grid sa:shrink-0 sa:place-items-center sa:text-text-muted",
92
+ iconSize === 20 ? "sa:size-5 sa:[&_svg]:size-5 sa:[&_svg]:[stroke-width:1.5]" : "sa:size-4 sa:[&_svg]:size-4 sa:[&_svg]:[stroke-width:1.875]"
91
93
  ),
92
94
  children: icon
93
95
  }
94
96
  ) : null,
95
- layout === "stacked" ? /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col justify-center gap-0.5", children: [
96
- /* @__PURE__ */ jsx("span", { className: "text-base leading-5 font-medium text-text-default", children: renderLabel(label) }),
97
- description ? /* @__PURE__ */ jsx("span", { className: "text-sm leading-[18px] text-text-muted", children: description }) : null
98
- ] }) : /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-baseline gap-3", children: [
99
- /* @__PURE__ */ jsx("span", { className: "shrink-0 text-base leading-5 font-medium whitespace-nowrap text-text-default", children: renderLabel(label) }),
100
- description ? /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-sm text-text-muted", children: description }) : null
97
+ layout === "stacked" ? /* @__PURE__ */ jsxs("span", { className: "sa:flex sa:min-w-0 sa:flex-1 sa:flex-col sa:justify-center sa:gap-0.5", children: [
98
+ /* @__PURE__ */ jsx("span", { className: "sa:text-base sa:leading-5 sa:font-medium sa:text-text-default", children: renderLabel(label) }),
99
+ description ? /* @__PURE__ */ jsx("span", { className: "sa:text-sm sa:leading-[18px] sa:text-text-muted", children: description }) : null
100
+ ] }) : /* @__PURE__ */ jsxs("span", { className: "sa:flex sa:min-w-0 sa:flex-1 sa:items-baseline sa:gap-3", children: [
101
+ /* @__PURE__ */ jsx("span", { className: "sa:shrink-0 sa:text-base sa:leading-5 sa:font-medium sa:whitespace-nowrap sa:text-text-default", children: renderLabel(label) }),
102
+ description ? /* @__PURE__ */ jsx("span", { className: "sa:min-w-0 sa:flex-1 sa:truncate sa:text-sm sa:text-text-muted", children: description }) : null
101
103
  ] }),
102
104
  shortcut && /* @__PURE__ */ jsx(KbdGroup, { keys: shortcut, "aria-hidden": true }),
103
- selected && /* @__PURE__ */ jsx("span", { className: "sr-only", children: "(selected)" }),
104
- selected && /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, className: "text-status-green-fg", children: /* @__PURE__ */ jsx(
105
+ selected && /* @__PURE__ */ jsxs("span", { className: "sa:sr-only", children: [
106
+ "(",
107
+ labels.selected,
108
+ ")"
109
+ ] }),
110
+ selected && /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, className: "sa:text-status-green-fg", children: /* @__PURE__ */ jsx(
105
111
  "path",
106
112
  {
107
113
  d: "M3.33333 8.66667L6 11.3333L12.6667 4.66667",
@@ -149,5 +155,3 @@ function DropdownMenuItem({
149
155
  }
150
156
 
151
157
  export { DropdownMenu, DropdownMenuGroup, DropdownMenuItem, MenuItemContent, menuGroupClass, menuGroupLabelClass, menuItemClass, menuSurfaceClass };
152
- //# sourceMappingURL=chunk-3DINAQLL.js.map
153
- //# sourceMappingURL=chunk-3DINAQLL.js.map