@uisatin/ui 0.2.0 → 0.4.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 (359) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +10 -1
  3. package/{chunk-P4O6TGDR.js → chunk-3VVO5MY5.js} +28 -26
  4. package/chunk-47DDBME3.js +87 -0
  5. package/{chunk-SHDFUXYV.js → chunk-5663JVE5.js} +16 -18
  6. package/chunk-67CBFB6Y.js +99 -0
  7. package/chunk-6DWLTGRQ.js +130 -0
  8. package/chunk-6GNMUJQ4.js +45 -0
  9. package/chunk-6JTSZAGO.js +177 -0
  10. package/chunk-6RLSRMB5.js +14 -0
  11. package/chunk-6Y6CY2DP.js +55 -0
  12. package/{chunk-O7F3CIDV.js → chunk-7NV53EL5.js} +10 -12
  13. package/{chunk-BNZVTLHV.js → chunk-7SVMERPH.js} +25 -21
  14. package/chunk-A52HUWVM.js +24 -0
  15. package/chunk-AKEZCWNW.js +29 -0
  16. package/{chunk-SH6NG6VN.js → chunk-APRVUOD6.js} +6 -8
  17. package/{chunk-QUF2IPOZ.js → chunk-C435UD7V.js} +14 -15
  18. package/{chunk-B2K45IUR.js → chunk-C6WRJ7DG.js} +5 -7
  19. package/{chunk-PF3YBUKT.js → chunk-CQFAMWZI.js} +16 -15
  20. package/chunk-DAKVTPYZ.js +86 -0
  21. package/{chunk-VAGIAREV.js → chunk-DMZW4LGU.js} +29 -26
  22. package/chunk-EBZHGRM5.js +46 -0
  23. package/chunk-EHEXE2UV.js +44 -0
  24. package/{chunk-72OCFAPT.js → chunk-EQAFDIPE.js} +26 -23
  25. package/{chunk-LLHTVIM3.js → chunk-EXKSKYG3.js} +7 -9
  26. package/chunk-FB6DG3LR.js +35 -0
  27. package/chunk-GH2DEOGO.js +67 -0
  28. package/{chunk-YG7JOOLJ.js → chunk-GKDMCY2S.js} +5 -7
  29. package/chunk-GTFUAA6H.js +42 -0
  30. package/{chunk-TX3H3QMA.js → chunk-HI6QIG55.js} +71 -70
  31. package/{chunk-6QMSWITQ.js → chunk-HZV7EXGU.js} +24 -26
  32. package/{chunk-A5XEM3GF.js → chunk-IKJIR6VL.js} +34 -36
  33. package/{chunk-DO3TBNSC.js → chunk-INJWE2LD.js} +15 -17
  34. package/chunk-J5UQPROI.js +56 -0
  35. package/{chunk-6YXUBP27.js → chunk-JCR5TWTF.js} +72 -67
  36. package/chunk-JKOBDLP3.js +25 -0
  37. package/chunk-JR3VVDV6.js +37 -0
  38. package/chunk-JYGCZWET.js +112 -0
  39. package/{chunk-UGRSWP6U.js → chunk-K5G5OEV5.js} +10 -12
  40. package/{chunk-B6V4VSGH.js → chunk-KDU7AT2T.js} +14 -15
  41. package/chunk-KITXKIYW.js +104 -0
  42. package/{chunk-NN6PKJWS.js → chunk-KQNA22D3.js} +7 -9
  43. package/{chunk-YPNKBE5X.js → chunk-L5PPN42A.js} +14 -9
  44. package/chunk-LAOE6Y57.js +95 -0
  45. package/chunk-LI5VYDLN.js +195 -0
  46. package/{chunk-7TXHCRAG.js → chunk-LKSFTNPF.js} +8 -10
  47. package/chunk-LLW3X4ZJ.js +39 -0
  48. package/{chunk-RTJ76X5U.js → chunk-LWRB4DED.js} +2 -4
  49. package/{chunk-NSRTTYQ4.js → chunk-M7RILZVW.js} +42 -35
  50. package/{chunk-LW3TRU5W.js → chunk-MOGWOUCN.js} +28 -16
  51. package/chunk-NCIRJ5V2.js +108 -0
  52. package/chunk-NQL6SIIB.js +168 -0
  53. package/chunk-NTSU44FY.js +81 -0
  54. package/{chunk-3DINAQLL.js → chunk-P36KBUYD.js} +33 -29
  55. package/chunk-P6RHT2VM.js +147 -0
  56. package/{chunk-CL2II6BX.js → chunk-PD2KD5OR.js} +11 -13
  57. package/{chunk-XL75JRUA.js → chunk-PP46SY7M.js} +42 -22
  58. package/{chunk-L6NCCSIP.js → chunk-PTK4QAOQ.js} +36 -29
  59. package/{chunk-HL42K2NH.js → chunk-Q7KVC5B4.js} +17 -17
  60. package/{chunk-H4NU7NPO.js → chunk-R3DTMBDT.js} +62 -61
  61. package/{chunk-KNUWZNFV.js → chunk-R4KPFBMK.js} +4 -6
  62. package/chunk-R5TQ3HNB.js +71 -0
  63. package/chunk-RFSPJECL.js +84 -0
  64. package/chunk-RPL6FRVX.js +88 -0
  65. package/{chunk-AN2RNJLR.js → chunk-STYOBAC7.js} +16 -16
  66. package/{chunk-X3PQANZO.js → chunk-SVUWR3HD.js} +47 -46
  67. package/chunk-T7P3OEBP.js +128 -0
  68. package/{chunk-QS4N4MNP.js → chunk-TB3ZRV3Y.js} +18 -20
  69. package/{chunk-MYEZXZZC.js → chunk-TOY6YPTG.js} +23 -25
  70. package/{chunk-XILQ7GXE.js → chunk-U6X6ODDJ.js} +11 -13
  71. package/{chunk-XZNHT6MO.js → chunk-UAJ6M34K.js} +115 -61
  72. package/chunk-W2EH6RY5.js +42 -0
  73. package/{chunk-FDKIX4DC.js → chunk-W2QQQWNE.js} +7 -9
  74. package/{chunk-LZMKSFCF.js → chunk-WALANB3V.js} +10 -12
  75. package/chunk-WCUR44O6.js +88 -0
  76. package/{chunk-BNTPPZCK.js → chunk-WJYJMX5S.js} +37 -39
  77. package/chunk-WZSLDYUU.js +131 -0
  78. package/{chunk-J3NSDRVH.js → chunk-XETMIETJ.js} +0 -2
  79. package/chunk-XU6JJDMZ.js +117 -0
  80. package/{chunk-BKZBWPUH.js → chunk-XWPH7C2W.js} +9 -11
  81. package/{chunk-GICKPMJU.js → chunk-YXWXSRXG.js} +31 -31
  82. package/{chunk-2HKBZFIK.js → chunk-YY236ZSJ.js} +31 -31
  83. package/{chunk-YX5VNRJX.js → chunk-YYFAZQ25.js} +0 -2
  84. package/{chunk-Y5AYU7PK.js → chunk-ZHFIWDGF.js} +0 -2
  85. package/components/accordion.js +2 -4
  86. package/components/action-button.d.ts +37 -0
  87. package/components/action-button.js +5 -0
  88. package/components/agent-loading.d.ts +2 -0
  89. package/components/agent-loading.js +2 -4
  90. package/components/agent-picker.js +5 -5
  91. package/components/agent-suggestion.js +5 -6
  92. package/components/alert.d.ts +37 -0
  93. package/components/alert.js +5 -0
  94. package/components/announcement-bar.js +7 -7
  95. package/components/attachment.js +5 -5
  96. package/components/avatar.js +4 -6
  97. package/components/badge.js +2 -4
  98. package/components/banner-mesh.js +1 -3
  99. package/components/banner.js +6 -6
  100. package/components/bar-chart.js +10 -11
  101. package/components/breadcrumb.js +5 -6
  102. package/components/button-group.d.ts +26 -0
  103. package/components/button-group.js +5 -0
  104. package/components/button.d.ts +13 -1
  105. package/components/button.js +4 -4
  106. package/components/card.js +5 -5
  107. package/components/channel-chart.js +10 -11
  108. package/components/chart.js +9 -10
  109. package/components/checkbox.js +2 -4
  110. package/components/chip.js +2 -4
  111. package/components/citations.d.ts +6 -4
  112. package/components/citations.js +4 -5
  113. package/components/code-block.js +5 -5
  114. package/components/combobox.d.ts +12 -3
  115. package/components/combobox.js +10 -10
  116. package/components/command-menu.d.ts +6 -2
  117. package/components/command-menu.js +5 -6
  118. package/components/context-menu.d.ts +12 -5
  119. package/components/context-menu.js +5 -6
  120. package/components/cookie-consent.js +5 -5
  121. package/components/date-picker.d.ts +26 -14
  122. package/components/date-picker.js +9 -9
  123. package/components/decision-card.js +7 -7
  124. package/components/dialog.d.ts +6 -8
  125. package/components/dialog.js +6 -5
  126. package/components/donut-chart.js +10 -11
  127. package/components/dot.js +2 -4
  128. package/components/dropdown.d.ts +6 -1
  129. package/components/dropdown.js +4 -5
  130. package/components/empty-state.js +2 -4
  131. package/components/field-group.d.ts +27 -0
  132. package/components/field-group.js +3 -0
  133. package/components/file-upload.js +7 -7
  134. package/components/floating.js +1 -3
  135. package/components/form-field.d.ts +38 -1
  136. package/components/form-field.js +2 -4
  137. package/components/form.d.ts +47 -0
  138. package/components/form.js +3 -0
  139. package/components/hover-card.d.ts +5 -2
  140. package/components/hover-card.js +2 -4
  141. package/components/input-group.d.ts +21 -0
  142. package/components/input-group.js +6 -0
  143. package/components/input-otp.d.ts +4 -2
  144. package/components/input-otp.js +7 -8
  145. package/components/input.d.ts +5 -1
  146. package/components/input.js +3 -5
  147. package/components/kbd.js +2 -4
  148. package/components/labels.d.ts +86 -0
  149. package/components/labels.js +1 -0
  150. package/components/line-chart.js +11 -12
  151. package/components/link.d.ts +20 -0
  152. package/components/link.js +3 -0
  153. package/components/list.d.ts +46 -0
  154. package/components/list.js +2 -0
  155. package/components/message-actions.js +5 -5
  156. package/components/message.js +8 -8
  157. package/components/number-input.d.ts +4 -2
  158. package/components/number-input.js +7 -8
  159. package/components/pagination.js +6 -6
  160. package/components/password-input.d.ts +16 -0
  161. package/components/password-input.js +7 -0
  162. package/components/popover.d.ts +11 -5
  163. package/components/popover.js +3 -4
  164. package/components/progress.js +2 -4
  165. package/components/prompt-bar.js +6 -6
  166. package/components/radio.js +2 -4
  167. package/components/search-bar.js +3 -5
  168. package/components/segmented-control.d.ts +4 -2
  169. package/components/segmented-control.js +3 -5
  170. package/components/select.d.ts +11 -2
  171. package/components/select.js +6 -7
  172. package/components/selectable-card.d.ts +37 -0
  173. package/components/selectable-card.js +2 -0
  174. package/components/selectable-checkbox.d.ts +14 -0
  175. package/components/selectable-checkbox.js +4 -0
  176. package/components/selectable-radio.d.ts +16 -0
  177. package/components/selectable-radio.js +3 -0
  178. package/components/separator.d.ts +18 -0
  179. package/components/separator.js +2 -0
  180. package/components/sheet.d.ts +4 -2
  181. package/components/sheet.js +7 -6
  182. package/components/sidebar.js +2 -4
  183. package/components/skeleton.js +2 -4
  184. package/components/slider.d.ts +6 -2
  185. package/components/slider.js +7 -8
  186. package/components/sliding-indicator.js +1 -3
  187. package/components/spinner.d.ts +18 -0
  188. package/components/spinner.js +3 -0
  189. package/components/split-button.d.ts +24 -0
  190. package/components/split-button.js +8 -0
  191. package/components/streaming-text.js +2 -4
  192. package/components/switch.js +2 -4
  193. package/components/table.d.ts +16 -5
  194. package/components/table.js +4 -5
  195. package/components/tabs.d.ts +4 -2
  196. package/components/tabs.js +3 -5
  197. package/components/textarea.js +3 -5
  198. package/components/thinking.js +3 -5
  199. package/components/toast.js +5 -5
  200. package/components/toggle.js +2 -4
  201. package/components/tooltip.d.ts +5 -2
  202. package/components/tooltip.js +3 -5
  203. package/index.d.ts +17 -2
  204. package/index.js +82 -231
  205. package/lib/utils.d.ts +8 -1
  206. package/lib/utils.js +1 -3
  207. package/package.json +11 -1
  208. package/styles.css +1 -1
  209. package/theme/create-theme.d.ts +6 -2
  210. package/theme/index.js +1 -0
  211. package/chunk-2HKBZFIK.js.map +0 -1
  212. package/chunk-3DINAQLL.js.map +0 -1
  213. package/chunk-3ERGAHKA.js +0 -179
  214. package/chunk-3ERGAHKA.js.map +0 -1
  215. package/chunk-6C7CGJX2.js +0 -86
  216. package/chunk-6C7CGJX2.js.map +0 -1
  217. package/chunk-6QMSWITQ.js.map +0 -1
  218. package/chunk-6YXUBP27.js.map +0 -1
  219. package/chunk-72OCFAPT.js.map +0 -1
  220. package/chunk-7TXHCRAG.js.map +0 -1
  221. package/chunk-A5XEM3GF.js.map +0 -1
  222. package/chunk-AN2RNJLR.js.map +0 -1
  223. package/chunk-B2K45IUR.js.map +0 -1
  224. package/chunk-B6V4VSGH.js.map +0 -1
  225. package/chunk-BKZBWPUH.js.map +0 -1
  226. package/chunk-BNTPPZCK.js.map +0 -1
  227. package/chunk-BNZVTLHV.js.map +0 -1
  228. package/chunk-CL2II6BX.js.map +0 -1
  229. package/chunk-D7RZNTFC.js +0 -95
  230. package/chunk-D7RZNTFC.js.map +0 -1
  231. package/chunk-DETGJAIC.js +0 -147
  232. package/chunk-DETGJAIC.js.map +0 -1
  233. package/chunk-DO3TBNSC.js.map +0 -1
  234. package/chunk-ESC5JCVQ.js +0 -90
  235. package/chunk-ESC5JCVQ.js.map +0 -1
  236. package/chunk-FDKIX4DC.js.map +0 -1
  237. package/chunk-GICKPMJU.js.map +0 -1
  238. package/chunk-GQA24FYG.js +0 -57
  239. package/chunk-GQA24FYG.js.map +0 -1
  240. package/chunk-H4NU7NPO.js.map +0 -1
  241. package/chunk-H63FYCMY.js +0 -11
  242. package/chunk-H63FYCMY.js.map +0 -1
  243. package/chunk-HL42K2NH.js.map +0 -1
  244. package/chunk-HNQUX43Z.js +0 -109
  245. package/chunk-HNQUX43Z.js.map +0 -1
  246. package/chunk-HRKPV66B.js +0 -32
  247. package/chunk-HRKPV66B.js.map +0 -1
  248. package/chunk-J3NSDRVH.js.map +0 -1
  249. package/chunk-JPNWHWAQ.js +0 -151
  250. package/chunk-JPNWHWAQ.js.map +0 -1
  251. package/chunk-KNUWZNFV.js.map +0 -1
  252. package/chunk-L6NCCSIP.js.map +0 -1
  253. package/chunk-LLHTVIM3.js.map +0 -1
  254. package/chunk-LW3TRU5W.js.map +0 -1
  255. package/chunk-LZMKSFCF.js.map +0 -1
  256. package/chunk-MR3JDI7E.js +0 -122
  257. package/chunk-MR3JDI7E.js.map +0 -1
  258. package/chunk-MYEZXZZC.js.map +0 -1
  259. package/chunk-NN6PKJWS.js.map +0 -1
  260. package/chunk-NSRTTYQ4.js.map +0 -1
  261. package/chunk-O7F3CIDV.js.map +0 -1
  262. package/chunk-P4O6TGDR.js.map +0 -1
  263. package/chunk-PF3YBUKT.js.map +0 -1
  264. package/chunk-PVOLDO4G.js +0 -47
  265. package/chunk-PVOLDO4G.js.map +0 -1
  266. package/chunk-QS4N4MNP.js.map +0 -1
  267. package/chunk-QUF2IPOZ.js.map +0 -1
  268. package/chunk-RTJ76X5U.js.map +0 -1
  269. package/chunk-SH6NG6VN.js.map +0 -1
  270. package/chunk-SHDFUXYV.js.map +0 -1
  271. package/chunk-TKO44NDI.js +0 -84
  272. package/chunk-TKO44NDI.js.map +0 -1
  273. package/chunk-TX3H3QMA.js.map +0 -1
  274. package/chunk-UBNHSZSE.js +0 -88
  275. package/chunk-UBNHSZSE.js.map +0 -1
  276. package/chunk-UC3ZJWOD.js +0 -73
  277. package/chunk-UC3ZJWOD.js.map +0 -1
  278. package/chunk-UGRSWP6U.js.map +0 -1
  279. package/chunk-VAGIAREV.js.map +0 -1
  280. package/chunk-WTMZT3IT.js +0 -105
  281. package/chunk-WTMZT3IT.js.map +0 -1
  282. package/chunk-WX6BP5ZP.js +0 -39
  283. package/chunk-WX6BP5ZP.js.map +0 -1
  284. package/chunk-X3PQANZO.js.map +0 -1
  285. package/chunk-XILQ7GXE.js.map +0 -1
  286. package/chunk-XL75JRUA.js.map +0 -1
  287. package/chunk-XZNHT6MO.js.map +0 -1
  288. package/chunk-Y5AYU7PK.js.map +0 -1
  289. package/chunk-YG7JOOLJ.js.map +0 -1
  290. package/chunk-YPJYW624.js +0 -195
  291. package/chunk-YPJYW624.js.map +0 -1
  292. package/chunk-YPNKBE5X.js.map +0 -1
  293. package/chunk-YX5VNRJX.js.map +0 -1
  294. package/components/accordion.js.map +0 -1
  295. package/components/agent-loading.js.map +0 -1
  296. package/components/agent-picker.js.map +0 -1
  297. package/components/agent-suggestion.js.map +0 -1
  298. package/components/announcement-bar.js.map +0 -1
  299. package/components/attachment.js.map +0 -1
  300. package/components/avatar.js.map +0 -1
  301. package/components/badge.js.map +0 -1
  302. package/components/banner-mesh.js.map +0 -1
  303. package/components/banner.js.map +0 -1
  304. package/components/bar-chart.js.map +0 -1
  305. package/components/breadcrumb.js.map +0 -1
  306. package/components/button.js.map +0 -1
  307. package/components/card.js.map +0 -1
  308. package/components/channel-chart.js.map +0 -1
  309. package/components/chart.js.map +0 -1
  310. package/components/checkbox.js.map +0 -1
  311. package/components/chip.js.map +0 -1
  312. package/components/citations.js.map +0 -1
  313. package/components/code-block.js.map +0 -1
  314. package/components/combobox.js.map +0 -1
  315. package/components/command-menu.js.map +0 -1
  316. package/components/context-menu.js.map +0 -1
  317. package/components/cookie-consent.js.map +0 -1
  318. package/components/date-picker.js.map +0 -1
  319. package/components/decision-card.js.map +0 -1
  320. package/components/dialog.js.map +0 -1
  321. package/components/donut-chart.js.map +0 -1
  322. package/components/dot.js.map +0 -1
  323. package/components/dropdown.js.map +0 -1
  324. package/components/empty-state.js.map +0 -1
  325. package/components/file-upload.js.map +0 -1
  326. package/components/floating.js.map +0 -1
  327. package/components/form-field.js.map +0 -1
  328. package/components/hover-card.js.map +0 -1
  329. package/components/input-otp.js.map +0 -1
  330. package/components/input.js.map +0 -1
  331. package/components/kbd.js.map +0 -1
  332. package/components/line-chart.js.map +0 -1
  333. package/components/message-actions.js.map +0 -1
  334. package/components/message.js.map +0 -1
  335. package/components/number-input.js.map +0 -1
  336. package/components/pagination.js.map +0 -1
  337. package/components/popover.js.map +0 -1
  338. package/components/progress.js.map +0 -1
  339. package/components/prompt-bar.js.map +0 -1
  340. package/components/radio.js.map +0 -1
  341. package/components/search-bar.js.map +0 -1
  342. package/components/segmented-control.js.map +0 -1
  343. package/components/select.js.map +0 -1
  344. package/components/sheet.js.map +0 -1
  345. package/components/sidebar.js.map +0 -1
  346. package/components/skeleton.js.map +0 -1
  347. package/components/slider.js.map +0 -1
  348. package/components/sliding-indicator.js.map +0 -1
  349. package/components/streaming-text.js.map +0 -1
  350. package/components/switch.js.map +0 -1
  351. package/components/table.js.map +0 -1
  352. package/components/tabs.js.map +0 -1
  353. package/components/textarea.js.map +0 -1
  354. package/components/thinking.js.map +0 -1
  355. package/components/toast.js.map +0 -1
  356. package/components/toggle.js.map +0 -1
  357. package/components/tooltip.js.map +0 -1
  358. package/index.js.map +0 -1
  359. package/lib/utils.js.map +0 -1
@@ -0,0 +1,67 @@
1
+ import { ButtonDefaultsContext } from './chunk-6DWLTGRQ.js';
2
+ import { cn } from './chunk-EHEXE2UV.js';
3
+ import * as React from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ function ButtonGroup({
7
+ orientation = "horizontal",
8
+ attached = true,
9
+ variant,
10
+ size,
11
+ shape,
12
+ className,
13
+ children,
14
+ ...props
15
+ }) {
16
+ const defaults = React.useMemo(() => ({ variant, size, shape }), [variant, size, shape]);
17
+ const horizontal = orientation === "horizontal";
18
+ return /* @__PURE__ */ jsx(ButtonDefaultsContext.Provider, { value: defaults, children: /* @__PURE__ */ jsx(
19
+ "div",
20
+ {
21
+ role: "group",
22
+ "data-slot": "button-group",
23
+ "data-orientation": orientation,
24
+ "data-attached": attached || void 0,
25
+ className: cn(
26
+ "sa:inline-flex sa:w-fit",
27
+ horizontal ? "sa:flex-row sa:items-center" : "sa:flex-col sa:items-stretch",
28
+ attached ? [
29
+ "sa:[&>*]:relative sa:[&>*:hover]:z-10 sa:[&>*:focus-visible]:z-20 sa:[&>*:focus-visible]:[clip-path:none]!",
30
+ horizontal ? [
31
+ "sa:[&>*:not(:first-child)]:rounded-l-none sa:[&>*:not(:last-child)]:rounded-r-none sa:[&>*:not(:last-child)]:border-r-0",
32
+ "sa:[&>[data-variant=secondary]:not(:first-child)]:border-l-border-default",
33
+ "sa:[&>*:not(:last-child)]:[clip-path:inset(-12px_0_-12px_-12px)] sa:[&>*:not(:first-child)]:[clip-path:inset(-12px_-12px_-12px_0)]",
34
+ "sa:[&>*:not(:first-child):not(:last-child)]:[clip-path:inset(-12px_0)]"
35
+ ] : [
36
+ "sa:[&>*:not(:first-child)]:rounded-t-none sa:[&>*:not(:last-child)]:rounded-b-none sa:[&>*:not(:last-child)]:border-b-0",
37
+ "sa:[&>[data-variant=secondary]:not(:first-child)]:border-t-border-default",
38
+ "sa:[&>*:not(:last-child)]:[clip-path:inset(-12px_-12px_0_-12px)] sa:[&>*:not(:first-child)]:[clip-path:inset(0_-12px_-12px_-12px)]",
39
+ "sa:[&>*:not(:first-child):not(:last-child)]:[clip-path:inset(0_-12px)]"
40
+ ]
41
+ ] : size === "xs" ? "sa:gap-1" : "sa:gap-2",
42
+ className
43
+ ),
44
+ ...props,
45
+ children
46
+ }
47
+ ) });
48
+ }
49
+ function ButtonGroupSeparator({ className, ...props }) {
50
+ return /* @__PURE__ */ jsx(
51
+ "div",
52
+ {
53
+ role: "separator",
54
+ "aria-orientation": "vertical",
55
+ "data-slot": "button-group-separator",
56
+ className: cn(
57
+ "sa:shrink-0 sa:self-center sa:bg-border-default",
58
+ // Vertical in a row, horizontal in a column.
59
+ "sa:h-4 sa:w-px sa:[[data-orientation=vertical]>&]:h-px sa:[[data-orientation=vertical]>&]:w-full",
60
+ className
61
+ ),
62
+ ...props
63
+ }
64
+ );
65
+ }
66
+
67
+ export { ButtonGroup, ButtonGroupSeparator };
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { cn } from './chunk-EHEXE2UV.js';
2
2
  import 'react';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
@@ -11,10 +11,10 @@ function Skeleton({ shape = "text", animated = false, width, height, className,
11
11
  "data-shape": shape,
12
12
  "data-animated": animated || void 0,
13
13
  className: cn(
14
- "satin-skeleton relative shrink-0 overflow-hidden bg-bg-muted",
15
- shape === "text" && "h-3 w-60 max-w-full rounded-sm",
16
- shape === "circle" && "size-8 rounded-full",
17
- shape === "rect" && "h-30 w-60 max-w-full rounded-lg",
14
+ "satin-skeleton sa:relative sa:shrink-0 sa:overflow-hidden sa:bg-bg-muted",
15
+ shape === "text" && "sa:h-3 sa:w-60 sa:max-w-full sa:rounded-sm",
16
+ shape === "circle" && "sa:size-8 sa:rounded-full",
17
+ shape === "rect" && "sa:h-30 sa:w-60 sa:max-w-full sa:rounded-lg",
18
18
  className
19
19
  ),
20
20
  style: { width, height, ...style },
@@ -24,5 +24,3 @@ function Skeleton({ shape = "text", animated = false, width, height, className,
24
24
  }
25
25
 
26
26
  export { Skeleton };
27
- //# sourceMappingURL=chunk-YG7JOOLJ.js.map
28
- //# sourceMappingURL=chunk-YG7JOOLJ.js.map
@@ -0,0 +1,42 @@
1
+ import { Input } from './chunk-L5PPN42A.js';
2
+ import { Button } from './chunk-6DWLTGRQ.js';
3
+ import { useSatinLabels } from './chunk-NTSU44FY.js';
4
+ import * as React from 'react';
5
+ import { EyeClosed, Eye } from 'iconoir-react';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ function PasswordInput({ visible, onVisibleChange, autoComplete = "current-password", disabled, ...props }) {
9
+ const labels = useSatinLabels();
10
+ const [own, setOwn] = React.useState(false);
11
+ const shown = visible ?? own;
12
+ const toggle = () => {
13
+ if (visible === void 0) setOwn(!shown);
14
+ onVisibleChange?.(!shown);
15
+ };
16
+ return /* @__PURE__ */ jsx(
17
+ Input,
18
+ {
19
+ ...props,
20
+ disabled,
21
+ type: shown ? "text" : "password",
22
+ autoComplete,
23
+ trailingIcon: /* @__PURE__ */ jsx(
24
+ Button,
25
+ {
26
+ variant: "tertiary",
27
+ size: "xs",
28
+ iconOnly: true,
29
+ disabled,
30
+ "aria-label": shown ? labels.hidePassword : labels.showPassword,
31
+ "aria-pressed": shown,
32
+ onMouseDown: (e) => e.preventDefault(),
33
+ onClick: toggle,
34
+ className: "sa:-m-1",
35
+ children: shown ? /* @__PURE__ */ jsx(EyeClosed, {}) : /* @__PURE__ */ jsx(Eye, {})
36
+ }
37
+ )
38
+ }
39
+ );
40
+ }
41
+
42
+ export { PasswordInput };
@@ -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-W2QQQWNE.js';
3
+ import { Button } from './chunk-6DWLTGRQ.js';
4
+ import { useSatinLabels } from './chunk-NTSU44FY.js';
5
+ import { cn } from './chunk-EHEXE2UV.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
@@ -1,6 +1,6 @@
1
- import { bannerMesh } from './chunk-YX5VNRJX.js';
2
- import { Button } from './chunk-HNQUX43Z.js';
3
- import { cn } from './chunk-H63FYCMY.js';
1
+ import { bannerMesh } from './chunk-YYFAZQ25.js';
2
+ import { Button } from './chunk-6DWLTGRQ.js';
3
+ import { cn } from './chunk-EHEXE2UV.js';
4
4
  import 'react';
5
5
  import { cva } from 'class-variance-authority';
6
6
  import { Xmark } from 'iconoir-react';
@@ -8,26 +8,26 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
 
9
9
  var bannerVariants = cva(
10
10
  [
11
- "relative isolate flex max-w-full overflow-clip border border-border-default bg-bg-card",
12
- "[box-shadow:0_2px_4px_-2px_var(--effect-shadow-sm),0_4px_6px_-1px_var(--effect-shadow-sm)]"
11
+ "sa:relative sa:isolate sa:flex sa:max-w-full sa:overflow-clip sa:border sa:border-border-default sa:bg-bg-card",
12
+ "sa:[box-shadow:0_2px_4px_-2px_var(--effect-shadow-sm),0_4px_6px_-1px_var(--effect-shadow-sm)]"
13
13
  ],
14
14
  {
15
15
  variants: {
16
16
  layout: {
17
- horizontal: "w-[450px] items-center gap-2.5 px-3 py-2",
18
- sidebar: "w-[222px] flex-col items-start gap-3 p-3"
17
+ horizontal: "sa:w-[450px] sa:items-center sa:gap-2.5 sa:px-3 sa:py-2",
18
+ sidebar: "sa:w-[222px] sa:flex-col sa:items-start sa:gap-3 sa:p-3"
19
19
  },
20
20
  shape: {
21
- rounded: "rounded-xl",
22
- pill: "rounded-3xl"
21
+ rounded: "sa:rounded-xl",
22
+ pill: "sa:rounded-3xl"
23
23
  },
24
24
  lines: {
25
25
  one: "",
26
26
  two: ""
27
27
  }
28
28
  },
29
- compoundVariants: [{ layout: "horizontal", shape: "pill", lines: "one", className: "rounded-pill" }],
30
- defaultVariants: { layout: "horizontal", shape: "rounded", lines: "one" }
29
+ compoundVariants: [{ layout: "horizontal", shape: "pill", lines: "one", className: "sa:rounded-pill" }],
30
+ defaultVariants: { layout: "horizontal", shape: "sa:rounded", lines: "one" }
31
31
  }
32
32
  );
33
33
  function Banner({
@@ -59,8 +59,8 @@ function Banner({
59
59
  "aria-label": dismissLabel,
60
60
  onClick: onDismiss,
61
61
  className: cn(
62
- sidebar && "absolute top-[3px] right-[3px] z-10",
63
- primary && "text-action-primary-fg [&_svg]:text-action-primary-fg satin-hover:bg-action-primary-bg-hover"
62
+ sidebar && "sa:absolute sa:top-[3px] sa:right-[3px] sa:z-10",
63
+ primary && "sa:text-action-primary-fg sa:[&_svg]:text-action-primary-fg sa:satin-hover:bg-action-primary-bg-hover"
64
64
  ),
65
65
  children: /* @__PURE__ */ jsx(Xmark, { "aria-hidden": true })
66
66
  }
@@ -74,7 +74,7 @@ function Banner({
74
74
  "data-tone": tone,
75
75
  className: cn(
76
76
  bannerVariants({ layout, shape, lines }),
77
- primary && "border-action-primary-border bg-action-primary-bg",
77
+ primary && "sa:border-action-primary-border sa:bg-action-primary-bg",
78
78
  shimmer && "satin-sheen",
79
79
  className
80
80
  ),
@@ -86,7 +86,7 @@ function Banner({
86
86
  src: glow.dark,
87
87
  alt: "",
88
88
  "aria-hidden": true,
89
- className: "pointer-events-none absolute -inset-px -z-10 size-[calc(100%+2px)] max-w-none object-cover mix-blend-screen"
89
+ className: "sa:pointer-events-none sa:absolute sa:-inset-px sa:-z-10 sa:size-[calc(100%+2px)] sa:max-w-none sa:object-cover sa:mix-blend-screen"
90
90
  }
91
91
  ),
92
92
  background === "mesh" && !primary && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -96,7 +96,7 @@ function Banner({
96
96
  src: glow.light,
97
97
  alt: "",
98
98
  "aria-hidden": true,
99
- className: "pointer-events-none absolute -inset-px -z-10 size-[calc(100%+2px)] max-w-none object-cover mix-blend-multiply"
99
+ className: "sa:pointer-events-none sa:absolute sa:-inset-px sa:-z-10 sa:size-[calc(100%+2px)] sa:max-w-none sa:object-cover sa:mix-blend-multiply"
100
100
  }
101
101
  ),
102
102
  /* @__PURE__ */ jsx(
@@ -105,7 +105,7 @@ function Banner({
105
105
  src: glow.dark,
106
106
  alt: "",
107
107
  "aria-hidden": true,
108
- className: "pointer-events-none absolute -inset-px -z-10 size-[calc(100%+2px)] max-w-none object-cover mix-blend-screen"
108
+ className: "sa:pointer-events-none sa:absolute sa:-inset-px sa:-z-10 sa:size-[calc(100%+2px)] sa:max-w-none sa:object-cover sa:mix-blend-screen"
109
109
  }
110
110
  )
111
111
  ] }),
@@ -113,20 +113,20 @@ function Banner({
113
113
  "div",
114
114
  {
115
115
  className: cn(
116
- "flex min-w-0 flex-col justify-center text-sm",
117
- sidebar ? "w-full" : "flex-1",
118
- description && "gap-0.5"
116
+ "sa:flex sa:min-w-0 sa:flex-col sa:justify-center sa:text-sm",
117
+ sidebar ? "sa:w-full" : "sa:flex-1",
118
+ description && "sa:gap-0.5"
119
119
  ),
120
120
  children: [
121
- /* @__PURE__ */ jsx("p", { className: cn("truncate text-base leading-[18px] font-medium", primary ? "text-action-primary-fg" : "text-text-default"), children: title }),
122
- description && /* @__PURE__ */ jsx("p", { className: cn("text-body", primary ? "text-action-primary-fg/80" : "text-text-muted", !sidebar && "truncate"), children: description })
121
+ /* @__PURE__ */ jsx("p", { className: cn("sa:truncate sa:text-base sa:leading-[18px] sa:font-medium", primary ? "sa:text-action-primary-fg" : "sa:text-text-default"), children: title }),
122
+ description && /* @__PURE__ */ jsx("p", { className: cn("sa:text-body", primary ? "sa:text-action-primary-fg/80" : "sa:text-text-muted", !sidebar && "sa:truncate"), children: description })
123
123
  ]
124
124
  }
125
125
  ),
126
126
  sidebar ? /* @__PURE__ */ jsxs(Fragment, { children: [
127
- action && /* @__PURE__ */ jsx("div", { className: "flex w-full items-center *:flex-1", children: action }),
127
+ action && /* @__PURE__ */ jsx("div", { className: "sa:flex sa:w-full sa:items-center sa:*:flex-1", children: action }),
128
128
  close
129
- ] }) : (action || close) && /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [
129
+ ] }) : (action || close) && /* @__PURE__ */ jsxs("div", { className: "sa:flex sa:shrink-0 sa:items-center sa:gap-1", children: [
130
130
  action,
131
131
  close
132
132
  ] })
@@ -136,5 +136,3 @@ function Banner({
136
136
  }
137
137
 
138
138
  export { Banner, bannerVariants };
139
- //# sourceMappingURL=chunk-6QMSWITQ.js.map
140
- //# sourceMappingURL=chunk-6QMSWITQ.js.map