@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,21 +1,21 @@
1
- import { Button } from './chunk-HNQUX43Z.js';
2
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { Button } from './chunk-T6L32XXH.js';
2
+ import { cn } from './chunk-O46O6LFQ.js';
3
3
  import * as React from 'react';
4
4
  import { Check, Copy } from 'iconoir-react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
7
7
  var tokenClass = {
8
- plain: "text-[var(--code-plain,#18181b)] dark:text-[var(--code-plain,#fafafa)]",
9
- keyword: "text-[var(--code-keyword,#dc2626)] dark:text-[var(--code-keyword,#f87171)]",
10
- string: "text-[var(--code-string,#0369a1)] dark:text-[var(--code-string,#7dd3fc)]",
11
- function: "text-[var(--code-function,#8b5cf6)] dark:text-[var(--code-function,#a78bfa)]",
12
- parameter: "text-[var(--code-parameter,#b45309)] dark:text-[var(--code-parameter,#fcd34d)]",
13
- variable: "text-[var(--code-variable,#0284c7)] dark:text-[var(--code-variable,#38bdf8)]",
8
+ plain: "sa:text-[var(--code-plain,#18181b)] sa:dark:text-[var(--code-plain,#fafafa)]",
9
+ keyword: "sa:text-[var(--code-keyword,#dc2626)] sa:dark:text-[var(--code-keyword,#f87171)]",
10
+ string: "sa:text-[var(--code-string,#0369a1)] sa:dark:text-[var(--code-string,#7dd3fc)]",
11
+ function: "sa:text-[var(--code-function,#8b5cf6)] sa:dark:text-[var(--code-function,#a78bfa)]",
12
+ parameter: "sa:text-[var(--code-parameter,#b45309)] sa:dark:text-[var(--code-parameter,#fcd34d)]",
13
+ variable: "sa:text-[var(--code-variable,#0284c7)] sa:dark:text-[var(--code-variable,#38bdf8)]",
14
14
  // No comment colour in Figma: comments take the line-number grey.
15
- comment: "text-[var(--code-line-number,#a1a1aa)] dark:text-[var(--code-line-number,#71717a)]"
15
+ comment: "sa:text-[var(--code-line-number,#a1a1aa)] sa:dark:text-[var(--code-line-number,#71717a)]"
16
16
  };
17
- var lineNumberClass = "text-[var(--code-line-number,#a1a1aa)] dark:text-[var(--code-line-number,#71717a)]";
18
- var highlightClass = "bg-[var(--code-line-highlight,rgba(0,0,0,0.05))] dark:bg-[var(--code-line-highlight,rgba(255,255,255,0.06))]";
17
+ var lineNumberClass = "sa:text-[var(--code-line-number,#a1a1aa)] sa:dark:text-[var(--code-line-number,#71717a)]";
18
+ var highlightClass = "sa:bg-[var(--code-line-highlight,rgba(0,0,0,0.05))] sa:dark:bg-[var(--code-line-highlight,rgba(255,255,255,0.06))]";
19
19
  var KEYWORDS = /* @__PURE__ */ new Set([
20
20
  "import",
21
21
  "from",
@@ -124,7 +124,7 @@ function parse(code, view, highlightLines) {
124
124
  });
125
125
  }
126
126
  function FileCodeIcon() {
127
- return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, className: "shrink-0 text-text-muted", children: /* @__PURE__ */ jsx(
127
+ return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, className: "sa:shrink-0 sa:text-text-muted", children: /* @__PURE__ */ jsx(
128
128
  "path",
129
129
  {
130
130
  d: "M13.333 5.333L9.333 1.333H4C3.264 1.333 2.667 1.93 2.667 2.667V13.333C2.667 14.07 3.264 14.667 4 14.667H12C12.736 14.667 13.333 14.07 13.333 13.333V5.333ZM9.333 1.333V5.333H13.333M6.667 8.333L5.333 9.667L6.667 11M9.333 8.333L10.667 9.667L9.333 11",
@@ -170,25 +170,25 @@ function CodeBlock({
170
170
  "data-slot": "code-block",
171
171
  "data-view": view,
172
172
  className: cn(
173
- "flex flex-col overflow-hidden rounded-2xl border border-border-default bg-bg-card pb-3",
173
+ "sa:flex sa:flex-col sa:overflow-hidden sa:rounded-2xl sa:border sa:border-border-default sa:bg-bg-card sa:pb-3",
174
174
  className
175
175
  ),
176
176
  ...props,
177
177
  children: [
178
- showHeader && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 pt-2 pr-2 pb-1 pl-4", children: [
178
+ showHeader && /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:items-center sa:gap-2 sa:pt-2 sa:pr-2 sa:pb-1 sa:pl-4", children: [
179
179
  /* @__PURE__ */ jsx(FileCodeIcon, {}),
180
- /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-sm leading-[18px] font-medium text-text-default", children: filename }),
181
- diff && /* @__PURE__ */ jsxs("span", { className: "flex shrink-0 items-center gap-1.5 font-mono text-sm leading-(--text-sm--line-height) tracking-normal", children: [
182
- /* @__PURE__ */ jsxs("span", { className: "text-status-green-fg", children: [
180
+ /* @__PURE__ */ jsx("span", { className: "sa:min-w-0 sa:flex-1 sa:truncate sa:text-sm sa:leading-[18px] sa:font-medium sa:text-text-default", children: filename }),
181
+ diff && /* @__PURE__ */ jsxs("span", { className: "sa:flex sa:shrink-0 sa:items-center sa:gap-1.5 sa:font-mono sa:text-sm sa:leading-(--sa-text-sm--line-height) sa:tracking-normal", children: [
182
+ /* @__PURE__ */ jsxs("span", { className: "sa:text-status-green-fg", children: [
183
183
  "+",
184
184
  added
185
185
  ] }),
186
- /* @__PURE__ */ jsxs("span", { className: "text-status-red-fg", children: [
186
+ /* @__PURE__ */ jsxs("span", { className: "sa:text-status-red-fg", children: [
187
187
  "\u2212",
188
188
  removed
189
189
  ] })
190
190
  ] }),
191
- showActions && /* @__PURE__ */ jsxs(Button, { variant: "tertiary", size: "xs", onClick: copy, className: "text-text-default", children: [
191
+ showActions && /* @__PURE__ */ jsxs(Button, { variant: "tertiary", size: "xs", onClick: copy, className: "sa:text-text-default", children: [
192
192
  copied ? /* @__PURE__ */ jsx(Check, {}) : /* @__PURE__ */ jsx(Copy, {}),
193
193
  /* @__PURE__ */ jsx("span", { "aria-live": "polite", children: copied ? "Copied" : "Copy" })
194
194
  ] })
@@ -200,22 +200,22 @@ function CodeBlock({
200
200
  role: "region",
201
201
  "aria-label": filename ? `${filename} code` : "Code",
202
202
  className: cn(
203
- "outline-none focus-visible:[box-shadow:inset_0_0_0_2px_var(--action-focus-ring)]",
204
- "overflow-x-auto font-mono text-sm leading-(--text-sm--line-height) font-normal tracking-normal",
203
+ "sa:outline-none sa:focus-visible:[box-shadow:inset_0_0_0_2px_var(--action-focus-ring)]",
204
+ "sa:overflow-x-auto sa:font-mono sa:text-sm sa:leading-(--sa-text-sm--line-height) sa:font-normal sa:tracking-normal",
205
205
  // Without the header the code sits in the middle: 12px above, as below.
206
- showHeader ? "pt-1" : "pt-3",
206
+ showHeader ? "sa:pt-1" : "sa:pt-3",
207
207
  tokenClass.plain
208
208
  ),
209
- children: /* @__PURE__ */ jsx("code", { className: "block w-max min-w-full", children: lines.map((line, i) => /* @__PURE__ */ jsxs(
209
+ children: /* @__PURE__ */ jsx("code", { className: "sa:block sa:w-max sa:min-w-full", children: lines.map((line, i) => /* @__PURE__ */ jsxs(
210
210
  "span",
211
211
  {
212
212
  "data-line": line.kind,
213
213
  className: cn(
214
- "flex h-6 items-center px-4",
215
- diff ? "gap-2" : "gap-4",
214
+ "sa:flex sa:h-6 sa:items-center sa:px-4",
215
+ diff ? "sa:gap-2" : "sa:gap-4",
216
216
  line.kind === "highlighted" && highlightClass,
217
- line.kind === "added" && "bg-status-green-bg",
218
- line.kind === "removed" && "bg-status-red-bg"
217
+ line.kind === "added" && "sa:bg-status-green-bg",
218
+ line.kind === "removed" && "sa:bg-status-red-bg"
219
219
  ),
220
220
  children: [
221
221
  /* @__PURE__ */ jsx(
@@ -223,8 +223,8 @@ function CodeBlock({
223
223
  {
224
224
  "aria-hidden": true,
225
225
  className: cn(
226
- "w-5 shrink-0 text-right select-none",
227
- line.kind === "added" ? "text-status-green-fg" : line.kind === "removed" ? "text-status-red-fg" : lineNumberClass
226
+ "sa:w-5 sa:shrink-0 sa:text-right sa:select-none",
227
+ line.kind === "added" ? "sa:text-status-green-fg" : line.kind === "removed" ? "sa:text-status-red-fg" : lineNumberClass
228
228
  ),
229
229
  children: line.number
230
230
  }
@@ -233,17 +233,17 @@ function CodeBlock({
233
233
  "span",
234
234
  {
235
235
  className: cn(
236
- "w-2 shrink-0 text-center select-none",
237
- line.kind === "added" ? "text-status-green-fg" : line.kind === "removed" ? "text-status-red-fg" : lineNumberClass
236
+ "sa:w-2 sa:shrink-0 sa:text-center sa:select-none",
237
+ line.kind === "added" ? "sa:text-status-green-fg" : line.kind === "removed" ? "sa:text-status-red-fg" : lineNumberClass
238
238
  ),
239
239
  children: [
240
240
  line.kind === "added" ? "+" : line.kind === "removed" ? "\u2212" : " ",
241
- line.kind === "added" && /* @__PURE__ */ jsx("span", { className: "sr-only", children: " added" }),
242
- line.kind === "removed" && /* @__PURE__ */ jsx("span", { className: "sr-only", children: " removed" })
241
+ line.kind === "added" && /* @__PURE__ */ jsx("span", { className: "sa:sr-only", children: " added" }),
242
+ line.kind === "removed" && /* @__PURE__ */ jsx("span", { className: "sa:sr-only", children: " removed" })
243
243
  ]
244
244
  }
245
245
  ),
246
- /* @__PURE__ */ jsx("span", { className: "whitespace-pre", children: line.text === "" ? "\u200B" : highlight ? tokenize(line.text).map((t, j) => /* @__PURE__ */ jsx("span", { className: t.kind === "plain" ? void 0 : tokenClass[t.kind], children: t.text }, j)) : line.text })
246
+ /* @__PURE__ */ jsx("span", { className: "sa:whitespace-pre", children: line.text === "" ? "\u200B" : highlight ? tokenize(line.text).map((t, j) => /* @__PURE__ */ jsx("span", { className: t.kind === "plain" ? void 0 : tokenClass[t.kind], children: t.text }, j)) : line.text })
247
247
  ]
248
248
  },
249
249
  i
@@ -256,5 +256,3 @@ function CodeBlock({
256
256
  }
257
257
 
258
258
  export { CodeBlock };
259
- //# sourceMappingURL=chunk-A5XEM3GF.js.map
260
- //# sourceMappingURL=chunk-A5XEM3GF.js.map
@@ -0,0 +1,45 @@
1
+ import { Thinking } from './chunk-NL574STL.js';
2
+ import { MessageActions } from './chunk-SZJIVBOD.js';
3
+ import { cn } from './chunk-O46O6LFQ.js';
4
+ import 'react';
5
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
6
+
7
+ function Message({
8
+ role = "assistant",
9
+ thinking,
10
+ thinkingLabel = "Thought for a moment",
11
+ source,
12
+ actions = true,
13
+ timestamp,
14
+ onFeedback,
15
+ onCopy,
16
+ onShare,
17
+ className,
18
+ children,
19
+ ...props
20
+ }) {
21
+ if (role === "user") {
22
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "message", "data-role": "user", className: cn("sa:flex sa:flex-col sa:items-end sa:gap-2", className), ...props, children: [
23
+ source && /* @__PURE__ */ jsx(SourceCard, { source }),
24
+ /* @__PURE__ */ jsx("div", { className: "sa:max-w-full sa:rounded-xl sa:rounded-br-xs sa:bg-action-inverse-bg sa:px-3 sa:py-2", children: /* @__PURE__ */ jsx("div", { className: "sa:max-w-64 sa:text-body sa:break-words sa:text-text-on-inverse", children }) })
25
+ ] });
26
+ }
27
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "message", "data-role": "assistant", className: cn("sa:flex sa:flex-col sa:items-start sa:gap-3", className), ...props, children: [
28
+ thinking && thinking.length > 0 && /* @__PURE__ */ jsx(Thinking, { state: "collapsed", label: thinkingLabel, steps: thinking }),
29
+ /* @__PURE__ */ jsx("div", { className: "sa:w-full sa:text-body sa:break-words sa:text-text-default", children }),
30
+ actions && /* @__PURE__ */ jsx(MessageActions, { timestamp, onFeedback, onCopy, onShare })
31
+ ] });
32
+ }
33
+ function SourceCard({ source }) {
34
+ const body = /* @__PURE__ */ jsxs(Fragment, { children: [
35
+ source.icon && /* @__PURE__ */ jsx("span", { className: "sa:flex sa:size-4 sa:shrink-0 sa:items-center sa:justify-center sa:[&>*]:size-4", children: source.icon }),
36
+ /* @__PURE__ */ jsxs("span", { className: "sa:flex sa:min-w-0 sa:flex-col sa:overflow-clip sa:whitespace-nowrap", children: [
37
+ /* @__PURE__ */ jsx("span", { className: "sa:truncate sa:text-sm sa:leading-[18px] sa:font-medium sa:text-text-default", children: source.title }),
38
+ source.url != null && /* @__PURE__ */ jsx("span", { className: "sa:truncate sa:text-xs sa:leading-3 sa:tracking-normal sa:text-text-muted", children: source.url })
39
+ ] })
40
+ ] });
41
+ const cls = "sa:flex sa:max-w-full sa:items-center sa:gap-2.5 sa:overflow-clip sa:rounded-lg sa:border sa:border-border-subtle sa:bg-bg-canvas sa:py-2 sa:pr-3 sa:pl-2.5";
42
+ return source.href ? /* @__PURE__ */ jsx("a", { href: source.href, className: cls, children: body }) : /* @__PURE__ */ jsx("div", { className: cls, children: body });
43
+ }
44
+
45
+ export { Message };
@@ -1,7 +1,8 @@
1
- import { SLIDE_MS } from './chunk-J3NSDRVH.js';
2
- import { Checkbox } from './chunk-FDKIX4DC.js';
3
- import { Button } from './chunk-HNQUX43Z.js';
4
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { SLIDE_MS } from './chunk-XETMIETJ.js';
2
+ import { Checkbox } from './chunk-X2GNMNZQ.js';
3
+ import { Button } from './chunk-T6L32XXH.js';
4
+ import { useSatinLabels } from './chunk-SSOFFQ5T.js';
5
+ import { cn } from './chunk-O46O6LFQ.js';
5
6
  import * as React from 'react';
6
7
  import { RadioGroup } from 'radix-ui';
7
8
  import { Check, NavArrowLeft, NavArrowRight, EditPencil } from 'iconoir-react';
@@ -49,20 +50,20 @@ function DecisionCard({
49
50
  const bodyRef = React.useRef(null);
50
51
  useStepSlide(question, step, cardRef, [titleRef, bodyRef]);
51
52
  const card = cn(
52
- "flex w-[364px] max-w-full flex-col overflow-clip rounded-2xl border border-border-default bg-bg-popover",
53
- "[box-shadow:0_1px_2px_0_var(--effect-shadow-xs)]",
53
+ "sa:flex sa:w-[364px] sa:max-w-full sa:flex-col sa:overflow-clip sa:rounded-2xl sa:border sa:border-border-default sa:bg-bg-popover",
54
+ "sa:[box-shadow:0_1px_2px_0_var(--effect-shadow-xs)]",
54
55
  className
55
56
  );
56
57
  if (type === "summary") {
57
58
  const values = asArray(value);
58
59
  const labels = values.map((v) => options.find((o) => o.value === v)?.label ?? v);
59
- return /* @__PURE__ */ jsx("div", { "data-slot": "decision-card", "data-type": "summary", className: card, ...props, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 py-2.5 pr-2.5 pl-3", children: [
60
- /* @__PURE__ */ jsx("span", { className: "flex size-6 shrink-0 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-fg", children: /* @__PURE__ */ jsx(Check, { "aria-hidden": true, className: "size-icon-size-sm [stroke-width:1.875]" }) }),
61
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
62
- /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-text-muted", children: title }),
63
- /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium text-text-default", children: labels.join(" \xB7 ") })
60
+ return /* @__PURE__ */ jsx("div", { "data-slot": "decision-card", "data-type": "summary", className: card, ...props, children: /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:items-center sa:gap-2.5 sa:py-2.5 sa:pr-2.5 sa:pl-3", children: [
61
+ /* @__PURE__ */ jsx("span", { className: "sa:flex sa:size-6 sa:shrink-0 sa:items-center sa:justify-center sa:rounded-full sa:bg-action-primary-bg sa:text-action-primary-fg", children: /* @__PURE__ */ jsx(Check, { "aria-hidden": true, className: "sa:size-icon-size-sm sa:[stroke-width:1.875]" }) }),
62
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:min-w-0 sa:flex-1 sa:flex-col", children: [
63
+ /* @__PURE__ */ jsx("span", { className: "sa:truncate sa:text-xs sa:text-text-muted", children: title }),
64
+ /* @__PURE__ */ jsx("span", { className: "sa:truncate sa:text-sm sa:font-medium sa:text-text-default", children: labels.join(" \xB7 ") })
64
65
  ] }),
65
- onEdit && /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onEdit, className: "text-text-muted", "aria-label": `Change ${title}`, children: "Change" })
66
+ onEdit && /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onEdit, className: "sa:text-text-muted", "aria-label": `Change ${title}`, children: "Change" })
66
67
  ] }) });
67
68
  }
68
69
  const empty = type === "radio" ? !value : type === "checkbox" || type === "chips" ? asArray(value).length === 0 : false;
@@ -89,18 +90,18 @@ function DecisionCard({
89
90
  onNextStep
90
91
  }
91
92
  ),
92
- /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { ref: bodyRef, children: [
93
+ /* @__PURE__ */ jsx("div", { className: "sa:relative", children: /* @__PURE__ */ jsxs("div", { ref: bodyRef, children: [
93
94
  type === "radio" && /* @__PURE__ */ jsx(
94
95
  RadioGroup.Root,
95
96
  {
96
97
  "aria-labelledby": titleId,
97
98
  value: typeof value === "string" ? value : "",
98
99
  onValueChange: set,
99
- className: "flex flex-col gap-0.5 px-2",
100
+ className: "sa:flex sa:flex-col sa:gap-0.5 sa:px-2",
100
101
  children: options.map((option) => /* @__PURE__ */ jsx(DecisionItem, { children: /* @__PURE__ */ jsx(RadioRow, { option }) }, option.value))
101
102
  }
102
103
  ),
103
- type === "checkbox" && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-0.5 px-2", children: options.map((option) => {
104
+ type === "checkbox" && /* @__PURE__ */ jsx("div", { className: "sa:flex sa:flex-col sa:gap-0.5 sa:px-2", children: options.map((option) => {
104
105
  const checked = asArray(value).includes(option.value);
105
106
  return /* @__PURE__ */ jsx(DecisionItem, { children: /* @__PURE__ */ jsx(
106
107
  CheckboxRow,
@@ -111,7 +112,7 @@ function DecisionCard({
111
112
  }
112
113
  ) }, option.value);
113
114
  }) }),
114
- type === "chips" && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5 px-3 pb-1", children: options.map((option) => {
115
+ type === "chips" && /* @__PURE__ */ jsx("div", { className: "sa:flex sa:flex-wrap sa:gap-1.5 sa:px-3 sa:pb-1", children: options.map((option) => {
115
116
  const chosen = asArray(value);
116
117
  const selected = chosen.includes(option.value);
117
118
  const full = max !== void 0 && chosen.length >= max && !selected;
@@ -142,8 +143,8 @@ function DecisionCard({
142
143
  question
143
144
  )
144
145
  ] }) }),
145
- type !== "draft" && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2 px-3 pt-4 pb-3", children: [
146
- onSkip && /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onSkip, className: "text-text-muted", children: skipLabel }),
146
+ type !== "draft" && /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:items-center sa:justify-end sa:gap-2 sa:px-3 sa:pt-4 sa:pb-3", children: [
147
+ onSkip && /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onSkip, className: "sa:text-text-muted", children: skipLabel }),
147
148
  /* @__PURE__ */ jsx(Button, { onClick: () => onContinue?.(value), disabled: empty, children: continueLabel ?? "Continue" })
148
149
  ] })
149
150
  ]
@@ -159,12 +160,13 @@ function Header({
159
160
  onPreviousStep,
160
161
  onNextStep
161
162
  }) {
162
- return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-0.5 py-3 pr-px pl-3", children: [
163
- /* @__PURE__ */ jsx("div", { className: "relative min-w-0 flex-1", children: /* @__PURE__ */ jsxs("div", { ref: titleRef, className: "flex flex-col gap-0.5", children: [
164
- /* @__PURE__ */ jsx("p", { id: titleId, className: "text-base leading-5 font-medium tracking-normal text-text-default", children: title }),
165
- hint && /* @__PURE__ */ jsx("p", { className: "text-base text-text-muted", children: hint })
163
+ const labels = useSatinLabels();
164
+ return /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:items-start sa:gap-0.5 sa:py-3 sa:pr-px sa:pl-3", children: [
165
+ /* @__PURE__ */ jsx("div", { className: "sa:relative sa:min-w-0 sa:flex-1", children: /* @__PURE__ */ jsxs("div", { ref: titleRef, className: "sa:flex sa:flex-col sa:gap-0.5", children: [
166
+ /* @__PURE__ */ jsx("p", { id: titleId, className: "sa:text-base sa:leading-5 sa:font-medium sa:tracking-normal sa:text-text-default", children: title }),
167
+ hint && /* @__PURE__ */ jsx("p", { className: "sa:text-base sa:text-text-muted", children: hint })
166
168
  ] }) }),
167
- step && /* @__PURE__ */ jsxs("div", { className: "flex h-[21px] shrink-0 items-center gap-1 pr-2", children: [
169
+ step && /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:h-[21px] sa:shrink-0 sa:items-center sa:gap-1 sa:pr-2", children: [
168
170
  /* @__PURE__ */ jsx(
169
171
  Button,
170
172
  {
@@ -172,13 +174,13 @@ function Header({
172
174
  size: "xs",
173
175
  shape: "rounded",
174
176
  iconOnly: true,
175
- "aria-label": "Previous question",
177
+ "aria-label": labels.previousQuestion,
176
178
  disabled: !onPreviousStep,
177
179
  onClick: onPreviousStep,
178
180
  children: /* @__PURE__ */ jsx(NavArrowLeft, { "aria-hidden": true })
179
181
  }
180
182
  ),
181
- /* @__PURE__ */ jsx("span", { "aria-live": "polite", className: "text-sm whitespace-nowrap text-text-muted tabular-nums", children: step }),
183
+ /* @__PURE__ */ jsx("span", { "aria-live": "polite", className: "sa:text-sm sa:whitespace-nowrap sa:text-text-muted sa:tabular-nums", children: step }),
182
184
  /* @__PURE__ */ jsx(
183
185
  Button,
184
186
  {
@@ -186,7 +188,7 @@ function Header({
186
188
  size: "xs",
187
189
  shape: "rounded",
188
190
  iconOnly: true,
189
- "aria-label": "Next question",
191
+ "aria-label": labels.nextQuestion,
190
192
  disabled: !onNextStep,
191
193
  onClick: onNextStep,
192
194
  children: /* @__PURE__ */ jsx(NavArrowRight, { "aria-hidden": true })
@@ -252,30 +254,30 @@ function DecisionItem({ children, "data-force": force }) {
252
254
  "div",
253
255
  {
254
256
  "data-force": force,
255
- className: "rounded-md p-1 transition-[background-color] duration-(--duration-fast) ease-(--ease-out) satin-hover:bg-action-secondary-bg",
257
+ className: "sa:rounded-md sa:p-1 sa:transition-[background-color] sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out) sa:satin-hover:bg-action-secondary-bg",
256
258
  children
257
259
  }
258
260
  );
259
261
  }
260
262
  function RadioRow({ option }) {
261
263
  const id = React.useId();
262
- return /* @__PURE__ */ jsxs("div", { className: "flex h-5 items-center gap-2", children: [
264
+ return /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:h-5 sa:items-center sa:gap-2", children: [
263
265
  /* @__PURE__ */ jsx(
264
266
  RadioGroup.Item,
265
267
  {
266
268
  id,
267
269
  value: option.value,
268
270
  className: cn(
269
- "flex size-4 shrink-0 items-center justify-center rounded-full border border-border-strong bg-bg-field outline-none",
270
- "[box-shadow:0_1px_2px_0_var(--effect-shadow-xs)]",
271
- "transition-[background-color,border-color,box-shadow] duration-(--duration-fast) ease-(--ease-out)",
272
- "data-[state=checked]:border-action-primary-bg data-[state=checked]:bg-action-primary-bg data-[state=checked]:[box-shadow:none]",
273
- "focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)] data-[state=checked]:focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]"
271
+ "sa:flex sa:size-4 sa:shrink-0 sa:items-center sa:justify-center sa:rounded-full sa:border sa:border-border-strong sa:bg-bg-field sa:outline-none",
272
+ "sa:[box-shadow:0_1px_2px_0_var(--effect-shadow-xs)]",
273
+ "sa:transition-[background-color,border-color,box-shadow] sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out)",
274
+ "sa:data-[state=checked]:border-action-primary-bg sa:data-[state=checked]:bg-action-primary-bg sa:data-[state=checked]:[box-shadow:none]",
275
+ "sa:focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)] sa:data-[state=checked]:focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]"
274
276
  ),
275
- children: /* @__PURE__ */ jsx(RadioGroup.Indicator, { className: "size-1.5 rounded-full bg-text-on-solid" })
277
+ children: /* @__PURE__ */ jsx(RadioGroup.Indicator, { className: "sa:size-1.5 sa:rounded-full sa:bg-text-on-solid" })
276
278
  }
277
279
  ),
278
- /* @__PURE__ */ jsx("label", { htmlFor: id, className: "min-w-0 flex-1 text-base text-text-default", children: option.label })
280
+ /* @__PURE__ */ jsx("label", { htmlFor: id, className: "sa:min-w-0 sa:flex-1 sa:text-base sa:text-text-default", children: option.label })
279
281
  ] });
280
282
  }
281
283
  function CheckboxRow({
@@ -284,9 +286,9 @@ function CheckboxRow({
284
286
  onCheckedChange
285
287
  }) {
286
288
  const id = React.useId();
287
- return /* @__PURE__ */ jsxs("div", { className: "flex h-5 items-center gap-2", children: [
289
+ return /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:h-5 sa:items-center sa:gap-2", children: [
288
290
  /* @__PURE__ */ jsx(Checkbox, { id, checked, onCheckedChange: (c) => onCheckedChange(c === true) }),
289
- /* @__PURE__ */ jsx("label", { htmlFor: id, className: "min-w-0 flex-1 text-base text-text-default", children: option.label })
291
+ /* @__PURE__ */ jsx("label", { htmlFor: id, className: "sa:min-w-0 sa:flex-1 sa:text-base sa:text-text-default", children: option.label })
290
292
  ] });
291
293
  }
292
294
  function DecisionChip({
@@ -303,12 +305,12 @@ function DecisionChip({
303
305
  disabled,
304
306
  onClick: () => onPressedChange(!selected),
305
307
  className: cn(
306
- "inline-flex h-control-height shrink-0 items-center gap-1.5 rounded-pill border pr-2.5 pl-2 text-base font-medium outline-none select-none",
307
- "transition-[background-color,border-color,color,box-shadow,transform] duration-(--duration-fast) ease-(--ease-out) active:scale-[0.97]",
308
- "[&_svg]:size-icon-size-sm [&_svg]:shrink-0 [&_svg]:[stroke-width:1.875]",
309
- "focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]",
310
- "disabled:pointer-events-none disabled:opacity-50",
311
- selected ? "border-status-brand-fg bg-status-brand-bg text-status-brand-fg" : "border-border-default bg-bg-popover text-text-default hover:border-border-strong [&_svg]:text-text-muted"
308
+ "sa:inline-flex sa:h-control-height sa:shrink-0 sa:items-center sa:gap-1.5 sa:rounded-pill sa:border sa:pr-2.5 sa:pl-2 sa:text-base sa:font-medium sa:outline-none sa:select-none",
309
+ "sa:transition-[background-color,border-color,color,box-shadow,transform] sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out) sa:active:scale-[0.97]",
310
+ "sa:[&_svg]:size-icon-size-sm sa:[&_svg]:shrink-0 sa:[&_svg]:[stroke-width:1.875]",
311
+ "sa:focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]",
312
+ "sa:disabled:pointer-events-none sa:disabled:opacity-50",
313
+ selected ? "sa:border-status-brand-fg sa:bg-status-brand-bg sa:text-status-brand-fg" : "sa:border-border-default sa:bg-bg-popover sa:text-text-default sa:hover:border-border-strong sa:[&_svg]:text-text-muted"
312
314
  ),
313
315
  children: [
314
316
  option.icon,
@@ -372,8 +374,8 @@ function Ranking({
372
374
  listRef.current?.children[to]?.focus();
373
375
  }
374
376
  };
375
- return /* @__PURE__ */ jsxs("div", { className: "px-3 pb-1", children: [
376
- /* @__PURE__ */ jsx("ol", { ref: listRef, "aria-labelledby": labelledBy, className: "flex flex-col gap-1.5", children: order.map((item, i) => {
377
+ return /* @__PURE__ */ jsxs("div", { className: "sa:px-3 sa:pb-1", children: [
378
+ /* @__PURE__ */ jsx("ol", { ref: listRef, "aria-labelledby": labelledBy, className: "sa:flex sa:flex-col sa:gap-1.5", children: order.map((item, i) => {
377
379
  const lifted = dragging === item;
378
380
  return /* @__PURE__ */ jsxs(
379
381
  "li",
@@ -388,11 +390,11 @@ function Ranking({
388
390
  onPointerCancel: onPointerUp,
389
391
  onKeyDown: (e) => onKeyDown(e, i),
390
392
  className: cn(
391
- "group/rank flex cursor-grab touch-none items-center gap-2 rounded-lg border border-border-default bg-bg-popover py-2 pr-2.5 pl-2 outline-none select-none",
392
- "transition-[border-color,box-shadow] duration-(--duration-fast) ease-(--ease-out)",
393
- "hover:border-border-strong focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]",
394
- "data-dragging:cursor-grabbing data-dragging:border-border-strong",
395
- "data-dragging:[box-shadow:0_4px_6px_-1px_var(--effect-shadow-sm),0_2px_4px_-2px_var(--effect-shadow-sm)]"
393
+ "sa:group/rank sa:flex sa:cursor-grab sa:touch-none sa:items-center sa:gap-2 sa:rounded-lg sa:border sa:border-border-default sa:bg-bg-popover sa:py-2 sa:pr-2.5 sa:pl-2 sa:outline-none sa:select-none",
394
+ "sa:transition-[border-color,box-shadow] sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out)",
395
+ "sa:hover:border-border-strong sa:focus-visible:[box-shadow:0_0_0_2px_var(--action-focus-ring)]",
396
+ "sa:data-dragging:cursor-grabbing sa:data-dragging:border-border-strong",
397
+ "sa:data-dragging:[box-shadow:0_4px_6px_-1px_var(--effect-shadow-sm),0_2px_4px_-2px_var(--effect-shadow-sm)]"
396
398
  ),
397
399
  children: [
398
400
  /* @__PURE__ */ jsx(Grip, {}),
@@ -400,19 +402,19 @@ function Ranking({
400
402
  "span",
401
403
  {
402
404
  className: cn(
403
- "flex size-5 shrink-0 items-center justify-center rounded-full text-xs tabular-nums",
404
- i === 0 ? "bg-action-primary-bg text-action-primary-fg" : "bg-bg-muted text-text-muted"
405
+ "sa:flex sa:size-5 sa:shrink-0 sa:items-center sa:justify-center sa:rounded-full sa:text-xs sa:tabular-nums",
406
+ i === 0 ? "sa:bg-action-primary-bg sa:text-action-primary-fg" : "sa:bg-bg-muted sa:text-text-muted"
405
407
  ),
406
408
  children: i + 1
407
409
  }
408
410
  ),
409
- /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 text-base font-medium text-text-default", children: label(item) })
411
+ /* @__PURE__ */ jsx("span", { className: "sa:min-w-0 sa:flex-1 sa:text-base sa:font-medium sa:text-text-default", children: label(item) })
410
412
  ]
411
413
  },
412
414
  item
413
415
  );
414
416
  }) }),
415
- /* @__PURE__ */ jsx("span", { "aria-live": "polite", className: "sr-only", children: announcement })
417
+ /* @__PURE__ */ jsx("span", { "aria-live": "polite", className: "sa:sr-only", children: announcement })
416
418
  ] });
417
419
  }
418
420
  function Grip() {
@@ -423,7 +425,7 @@ function Grip() {
423
425
  height: "14",
424
426
  viewBox: "0 0 8 14",
425
427
  "aria-hidden": true,
426
- className: "shrink-0 fill-current text-text-subtle group-data-dragging/rank:text-text-muted",
428
+ className: "sa:shrink-0 sa:fill-current sa:text-text-subtle sa:group-data-dragging/rank:text-text-muted",
427
429
  children: [1.25, 6.75, 12.25].map((cy) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
428
430
  /* @__PURE__ */ jsx("circle", { cx: "1.25", cy, r: "1.25" }),
429
431
  /* @__PURE__ */ jsx("circle", { cx: "6.25", cy, r: "1.25" })
@@ -441,6 +443,7 @@ function Draft({
441
443
  continueLabel,
442
444
  skipLabel
443
445
  }) {
446
+ const labels = useSatinLabels();
444
447
  const [editing, setEditing] = React.useState(false);
445
448
  const areaRef = React.useRef(null);
446
449
  React.useLayoutEffect(() => {
@@ -450,36 +453,36 @@ function Draft({
450
453
  el.style.height = `${el.scrollHeight}px`;
451
454
  }, [value, editing]);
452
455
  return /* @__PURE__ */ jsxs(Fragment, { children: [
453
- /* @__PURE__ */ jsx("div", { className: "px-3 pb-1", children: /* @__PURE__ */ jsxs(
456
+ /* @__PURE__ */ jsx("div", { className: "sa:px-3 sa:pb-1", children: /* @__PURE__ */ jsxs(
454
457
  "div",
455
458
  {
456
459
  className: cn(
457
- "flex flex-col gap-2 rounded-2xl rounded-tl-[4px] border border-border-default bg-bg-popover px-3 py-2.5 text-base text-text-default",
458
- "[box-shadow:0_1px_2px_0_var(--effect-shadow-xs)]",
459
- "transition-[box-shadow,border-color] duration-(--duration-fast) ease-(--ease-out)",
460
- "has-[textarea:focus-visible]:border-border-strong has-[textarea:focus-visible]:[box-shadow:0_0_0_2px_var(--action-focus-ring)]"
460
+ "sa:flex sa:flex-col sa:gap-2 sa:rounded-2xl sa:rounded-tl-[4px] sa:border sa:border-border-default sa:bg-bg-popover sa:px-3 sa:py-2.5 sa:text-base sa:text-text-default",
461
+ "sa:[box-shadow:0_1px_2px_0_var(--effect-shadow-xs)]",
462
+ "sa:transition-[box-shadow,border-color] sa:duration-(--sa-duration-fast) sa:ease-(--sa-ease-out)",
463
+ "sa:has-[textarea:focus-visible]:border-border-strong sa:has-[textarea:focus-visible]:[box-shadow:0_0_0_2px_var(--action-focus-ring)]"
461
464
  ),
462
465
  children: [
463
- title && /* @__PURE__ */ jsx("p", { className: "leading-[18px] font-medium", children: title }),
466
+ title && /* @__PURE__ */ jsx("p", { className: "sa:leading-[18px] sa:font-medium", children: title }),
464
467
  editing ? /* @__PURE__ */ jsx(
465
468
  "textarea",
466
469
  {
467
470
  ref: areaRef,
468
- "aria-label": "Draft",
471
+ "aria-label": labels.draft,
469
472
  value,
470
473
  onChange: (e) => onValueChange(e.target.value),
471
- className: "w-full resize-none bg-transparent outline-none"
474
+ className: "sa:w-full sa:resize-none sa:bg-transparent sa:outline-none"
472
475
  }
473
- ) : /* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap", children: value })
476
+ ) : /* @__PURE__ */ jsx("p", { className: "sa:whitespace-pre-wrap", children: value })
474
477
  ]
475
478
  }
476
479
  ) }),
477
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 px-3 pt-4 pb-3", children: [
480
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:items-center sa:justify-between sa:gap-2 sa:px-3 sa:pt-4 sa:pb-3", children: [
478
481
  /* @__PURE__ */ jsxs(
479
482
  Button,
480
483
  {
481
484
  variant: "tertiary",
482
- className: "text-text-muted",
485
+ className: "sa:text-text-muted",
483
486
  "aria-pressed": editing,
484
487
  onClick: () => {
485
488
  setEditing(true);
@@ -492,8 +495,8 @@ function Draft({
492
495
  ]
493
496
  }
494
497
  ),
495
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
496
- onSkip && /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onSkip, className: "text-text-muted", children: skipLabel }),
498
+ /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:items-center sa:gap-2", children: [
499
+ onSkip && /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: onSkip, className: "sa:text-text-muted", children: skipLabel }),
497
500
  /* @__PURE__ */ jsx(Button, { onClick: onContinue, disabled: !value.trim(), children: continueLabel })
498
501
  ] })
499
502
  ] })
@@ -516,5 +519,3 @@ function toggle(list, item, on) {
516
519
  }
517
520
 
518
521
  export { DecisionCard, DecisionItemPreview };
519
- //# sourceMappingURL=chunk-TX3H3QMA.js.map
520
- //# sourceMappingURL=chunk-TX3H3QMA.js.map