@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.
- package/CHANGELOG.md +33 -0
- package/README.md +20 -3
- package/chunk-3DHJXU45.js +147 -0
- package/{chunk-6YXUBP27.js → chunk-5725MFGQ.js} +72 -67
- package/{chunk-BKZBWPUH.js → chunk-57QEOCDZ.js} +9 -11
- package/{chunk-RTJ76X5U.js → chunk-5KTBSMQU.js} +2 -4
- package/{chunk-B2K45IUR.js → chunk-5XTUFBZI.js} +5 -7
- package/{chunk-LW3TRU5W.js → chunk-674SRBZK.js} +28 -16
- package/{chunk-XZNHT6MO.js → chunk-6VKV36OK.js} +115 -61
- package/{chunk-GICKPMJU.js → chunk-73Z7NMQQ.js} +31 -31
- package/chunk-7Q76HLRQ.js +128 -0
- package/{chunk-JPNWHWAQ.js → chunk-AIMQNLPY.js} +38 -35
- package/chunk-BN7FDKCJ.js +164 -0
- package/{chunk-3DINAQLL.js → chunk-BR2B4OIT.js} +33 -29
- package/{chunk-2HKBZFIK.js → chunk-CGOH5IYX.js} +31 -31
- package/chunk-CVNRZ2YV.js +112 -0
- package/{chunk-QUF2IPOZ.js → chunk-DPYIBFQD.js} +12 -14
- package/chunk-EF5GT4OG.js +87 -0
- package/chunk-FAJ3OVL4.js +37 -0
- package/{chunk-L6NCCSIP.js → chunk-FB5HTCO2.js} +36 -29
- package/chunk-GI2SMFZL.js +55 -0
- package/{chunk-B6V4VSGH.js → chunk-GMETYACH.js} +14 -15
- package/chunk-HK6WINL6.js +95 -0
- package/{chunk-HL42K2NH.js → chunk-IKO3GQFE.js} +17 -17
- package/{chunk-DO3TBNSC.js → chunk-ISYKZCPJ.js} +15 -17
- package/{chunk-YG7JOOLJ.js → chunk-J7RMFN54.js} +5 -7
- package/{chunk-SHDFUXYV.js → chunk-JBKBRAC4.js} +16 -18
- package/{chunk-LZMKSFCF.js → chunk-JCXI7VQL.js} +10 -12
- package/{chunk-NN6PKJWS.js → chunk-JYOZUQNU.js} +7 -9
- package/{chunk-LLHTVIM3.js → chunk-LB37KTJH.js} +7 -9
- package/{chunk-NSRTTYQ4.js → chunk-LB7Z6BSK.js} +42 -35
- package/{chunk-BNZVTLHV.js → chunk-LFGUJHFF.js} +25 -21
- package/{chunk-7TXHCRAG.js → chunk-M2HEVFQ3.js} +8 -10
- package/{chunk-SH6NG6VN.js → chunk-NH3EHMIL.js} +6 -8
- package/chunk-NL574STL.js +88 -0
- package/chunk-NQL6SIIB.js +168 -0
- package/chunk-O46O6LFQ.js +25 -0
- package/{chunk-YPNKBE5X.js → chunk-OURZQM27.js} +5 -7
- package/{chunk-XL75JRUA.js → chunk-OVKPPXK5.js} +42 -22
- package/chunk-PD6YPFYN.js +42 -0
- package/{chunk-XILQ7GXE.js → chunk-PHNR6ZQ7.js} +11 -13
- package/{chunk-BNTPPZCK.js → chunk-PUWSL5XW.js} +37 -39
- package/{chunk-A5XEM3GF.js → chunk-RHQHDYTE.js} +34 -36
- package/chunk-S7QHBVPX.js +45 -0
- package/{chunk-TX3H3QMA.js → chunk-SAYNV7B3.js} +71 -70
- package/{chunk-6QMSWITQ.js → chunk-SDOTDMYG.js} +24 -26
- package/{chunk-UGRSWP6U.js → chunk-SPGUZMCC.js} +10 -12
- package/chunk-SSOFFQ5T.js +74 -0
- package/{chunk-AN2RNJLR.js → chunk-SZJIVBOD.js} +16 -16
- package/chunk-T6L32XXH.js +107 -0
- package/{chunk-QS4N4MNP.js → chunk-TT2N5752.js} +18 -20
- package/{chunk-72OCFAPT.js → chunk-UCCNXGLG.js} +22 -21
- package/{chunk-KNUWZNFV.js → chunk-UGIVCXGN.js} +4 -6
- package/{chunk-H4NU7NPO.js → chunk-UUCVRIVP.js} +62 -61
- package/{chunk-P4O6TGDR.js → chunk-UZ4DXU6W.js} +28 -26
- package/{chunk-UBNHSZSE.js → chunk-VUOAPWTF.js} +10 -12
- package/{chunk-VAGIAREV.js → chunk-W472DBMT.js} +29 -26
- package/{chunk-X3PQANZO.js → chunk-W4RDTP6W.js} +47 -46
- package/{chunk-CL2II6BX.js → chunk-WLQD5BN2.js} +11 -13
- package/{chunk-FDKIX4DC.js → chunk-X2GNMNZQ.js} +7 -9
- package/{chunk-PF3YBUKT.js → chunk-X66KTATQ.js} +16 -15
- package/{chunk-J3NSDRVH.js → chunk-XETMIETJ.js} +0 -2
- package/chunk-XH56JGYC.js +71 -0
- package/{chunk-O7F3CIDV.js → chunk-XUOSJMEJ.js} +10 -12
- package/chunk-YJK4MGSI.js +86 -0
- package/{chunk-YX5VNRJX.js → chunk-YYFAZQ25.js} +0 -2
- package/chunk-Z7S2KQZS.js +177 -0
- package/chunk-ZBZ3ZQRB.js +195 -0
- package/{chunk-Y5AYU7PK.js → chunk-ZHFIWDGF.js} +0 -2
- package/components/accordion.js +2 -4
- package/components/agent-loading.d.ts +2 -0
- package/components/agent-loading.js +2 -4
- package/components/agent-picker.js +4 -5
- package/components/agent-suggestion.js +5 -6
- package/components/announcement-bar.js +6 -7
- package/components/attachment.js +4 -5
- package/components/avatar.d.ts +16 -0
- package/components/avatar.js +4 -6
- package/components/badge.js +2 -4
- package/components/banner-mesh.js +1 -3
- package/components/banner.js +4 -6
- package/components/bar-chart.js +10 -11
- package/components/breadcrumb.js +5 -6
- package/components/button.js +2 -4
- package/components/card.js +3 -5
- package/components/channel-chart.js +10 -11
- package/components/chart.js +9 -10
- package/components/checkbox.js +2 -4
- package/components/chip.js +2 -4
- package/components/citations.d.ts +6 -4
- package/components/citations.js +4 -5
- package/components/code-block.js +3 -5
- package/components/combobox.d.ts +12 -3
- package/components/combobox.js +9 -10
- package/components/command-menu.d.ts +6 -2
- package/components/command-menu.js +5 -6
- package/components/context-menu.d.ts +12 -5
- package/components/context-menu.js +5 -6
- package/components/cookie-consent.js +3 -5
- package/components/date-picker.d.ts +26 -14
- package/components/date-picker.js +8 -9
- package/components/decision-card.js +6 -7
- package/components/dialog.d.ts +5 -2
- package/components/dialog.js +4 -5
- package/components/donut-chart.js +10 -11
- package/components/dot.js +2 -4
- package/components/dropdown.d.ts +6 -1
- package/components/dropdown.js +4 -5
- package/components/empty-state.js +2 -4
- package/components/file-upload.js +6 -7
- package/components/floating.js +1 -3
- package/components/form-field.js +2 -4
- package/components/hover-card.d.ts +5 -2
- package/components/hover-card.js +2 -4
- package/components/input-otp.d.ts +4 -2
- package/components/input-otp.js +7 -8
- package/components/input.js +3 -5
- package/components/kbd.js +2 -4
- package/components/labels.d.ts +79 -0
- package/components/labels.js +1 -0
- package/components/line-chart.js +11 -12
- package/components/message-actions.js +4 -5
- package/components/message.js +7 -8
- package/components/number-input.d.ts +4 -2
- package/components/number-input.js +7 -8
- package/components/pagination.js +4 -6
- package/components/popover.d.ts +11 -5
- package/components/popover.js +3 -4
- package/components/progress.js +2 -4
- package/components/prompt-bar.js +5 -6
- package/components/radio.js +2 -4
- package/components/search-bar.js +3 -5
- package/components/segmented-control.d.ts +4 -2
- package/components/segmented-control.js +3 -5
- package/components/select.d.ts +10 -2
- package/components/select.js +6 -7
- package/components/sheet.d.ts +4 -2
- package/components/sheet.js +5 -6
- package/components/sidebar.js +2 -4
- package/components/skeleton.js +2 -4
- package/components/slider.d.ts +6 -2
- package/components/slider.js +7 -8
- package/components/sliding-indicator.js +1 -3
- package/components/streaming-text.js +2 -4
- package/components/switch.js +2 -4
- package/components/table.d.ts +16 -5
- package/components/table.js +4 -5
- package/components/tabs.d.ts +4 -2
- package/components/tabs.js +3 -5
- package/components/textarea.js +3 -5
- package/components/thinking.js +3 -5
- package/components/toast.js +4 -5
- package/components/toggle.js +2 -4
- package/components/tooltip.d.ts +5 -2
- package/components/tooltip.js +3 -5
- package/index.d.ts +1 -0
- package/index.js +67 -231
- package/lib/utils.d.ts +8 -1
- package/lib/utils.js +1 -3
- package/package.json +22 -1
- package/styles.css +1 -1
- package/theme/create-theme.d.ts +6 -2
- package/theme/index.js +1 -0
- package/chunk-2HKBZFIK.js.map +0 -1
- package/chunk-3DINAQLL.js.map +0 -1
- package/chunk-3ERGAHKA.js +0 -179
- package/chunk-3ERGAHKA.js.map +0 -1
- package/chunk-6C7CGJX2.js +0 -86
- package/chunk-6C7CGJX2.js.map +0 -1
- package/chunk-6QMSWITQ.js.map +0 -1
- package/chunk-6YXUBP27.js.map +0 -1
- package/chunk-72OCFAPT.js.map +0 -1
- package/chunk-7TXHCRAG.js.map +0 -1
- package/chunk-A5XEM3GF.js.map +0 -1
- package/chunk-AN2RNJLR.js.map +0 -1
- package/chunk-B2K45IUR.js.map +0 -1
- package/chunk-B6V4VSGH.js.map +0 -1
- package/chunk-BKZBWPUH.js.map +0 -1
- package/chunk-BNTPPZCK.js.map +0 -1
- package/chunk-BNZVTLHV.js.map +0 -1
- package/chunk-CL2II6BX.js.map +0 -1
- package/chunk-D7RZNTFC.js +0 -95
- package/chunk-D7RZNTFC.js.map +0 -1
- package/chunk-DETGJAIC.js +0 -147
- package/chunk-DETGJAIC.js.map +0 -1
- package/chunk-DO3TBNSC.js.map +0 -1
- package/chunk-ESC5JCVQ.js +0 -90
- package/chunk-ESC5JCVQ.js.map +0 -1
- package/chunk-FDKIX4DC.js.map +0 -1
- package/chunk-GICKPMJU.js.map +0 -1
- package/chunk-GQA24FYG.js +0 -57
- package/chunk-GQA24FYG.js.map +0 -1
- package/chunk-H4NU7NPO.js.map +0 -1
- package/chunk-H63FYCMY.js +0 -11
- package/chunk-H63FYCMY.js.map +0 -1
- package/chunk-HL42K2NH.js.map +0 -1
- package/chunk-HNQUX43Z.js +0 -109
- package/chunk-HNQUX43Z.js.map +0 -1
- package/chunk-HRKPV66B.js +0 -32
- package/chunk-HRKPV66B.js.map +0 -1
- package/chunk-J3NSDRVH.js.map +0 -1
- package/chunk-JPNWHWAQ.js.map +0 -1
- package/chunk-KNUWZNFV.js.map +0 -1
- package/chunk-L6NCCSIP.js.map +0 -1
- package/chunk-LLHTVIM3.js.map +0 -1
- package/chunk-LW3TRU5W.js.map +0 -1
- package/chunk-LZMKSFCF.js.map +0 -1
- package/chunk-MR3JDI7E.js +0 -122
- package/chunk-MR3JDI7E.js.map +0 -1
- package/chunk-NN6PKJWS.js.map +0 -1
- package/chunk-NSRTTYQ4.js.map +0 -1
- package/chunk-O7F3CIDV.js.map +0 -1
- package/chunk-P4O6TGDR.js.map +0 -1
- package/chunk-PF3YBUKT.js.map +0 -1
- package/chunk-PVOLDO4G.js +0 -47
- package/chunk-PVOLDO4G.js.map +0 -1
- package/chunk-QS4N4MNP.js.map +0 -1
- package/chunk-QUF2IPOZ.js.map +0 -1
- package/chunk-RTJ76X5U.js.map +0 -1
- package/chunk-SH6NG6VN.js.map +0 -1
- package/chunk-SHDFUXYV.js.map +0 -1
- package/chunk-TKO44NDI.js +0 -84
- package/chunk-TKO44NDI.js.map +0 -1
- package/chunk-TVLGZGYN.js +0 -59
- package/chunk-TVLGZGYN.js.map +0 -1
- package/chunk-TX3H3QMA.js.map +0 -1
- package/chunk-UBNHSZSE.js.map +0 -1
- package/chunk-UC3ZJWOD.js +0 -73
- package/chunk-UC3ZJWOD.js.map +0 -1
- package/chunk-UGRSWP6U.js.map +0 -1
- package/chunk-VAGIAREV.js.map +0 -1
- package/chunk-WTMZT3IT.js +0 -105
- package/chunk-WTMZT3IT.js.map +0 -1
- package/chunk-WX6BP5ZP.js +0 -39
- package/chunk-WX6BP5ZP.js.map +0 -1
- package/chunk-X3PQANZO.js.map +0 -1
- package/chunk-XILQ7GXE.js.map +0 -1
- package/chunk-XL75JRUA.js.map +0 -1
- package/chunk-XZNHT6MO.js.map +0 -1
- package/chunk-Y5AYU7PK.js.map +0 -1
- package/chunk-YG7JOOLJ.js.map +0 -1
- package/chunk-YPJYW624.js +0 -195
- package/chunk-YPJYW624.js.map +0 -1
- package/chunk-YPNKBE5X.js.map +0 -1
- package/chunk-YX5VNRJX.js.map +0 -1
- package/components/accordion.js.map +0 -1
- package/components/agent-loading.js.map +0 -1
- package/components/agent-picker.js.map +0 -1
- package/components/agent-suggestion.js.map +0 -1
- package/components/announcement-bar.js.map +0 -1
- package/components/attachment.js.map +0 -1
- package/components/avatar.js.map +0 -1
- package/components/badge.js.map +0 -1
- package/components/banner-mesh.js.map +0 -1
- package/components/banner.js.map +0 -1
- package/components/bar-chart.js.map +0 -1
- package/components/breadcrumb.js.map +0 -1
- package/components/button.js.map +0 -1
- package/components/card.js.map +0 -1
- package/components/channel-chart.js.map +0 -1
- package/components/chart.js.map +0 -1
- package/components/checkbox.js.map +0 -1
- package/components/chip.js.map +0 -1
- package/components/citations.js.map +0 -1
- package/components/code-block.js.map +0 -1
- package/components/combobox.js.map +0 -1
- package/components/command-menu.js.map +0 -1
- package/components/context-menu.js.map +0 -1
- package/components/cookie-consent.js.map +0 -1
- package/components/date-picker.js.map +0 -1
- package/components/decision-card.js.map +0 -1
- package/components/dialog.js.map +0 -1
- package/components/donut-chart.js.map +0 -1
- package/components/dot.js.map +0 -1
- package/components/dropdown.js.map +0 -1
- package/components/empty-state.js.map +0 -1
- package/components/file-upload.js.map +0 -1
- package/components/floating.js.map +0 -1
- package/components/form-field.js.map +0 -1
- package/components/hover-card.js.map +0 -1
- package/components/input-otp.js.map +0 -1
- package/components/input.js.map +0 -1
- package/components/kbd.js.map +0 -1
- package/components/line-chart.js.map +0 -1
- package/components/message-actions.js.map +0 -1
- package/components/message.js.map +0 -1
- package/components/number-input.js.map +0 -1
- package/components/pagination.js.map +0 -1
- package/components/popover.js.map +0 -1
- package/components/progress.js.map +0 -1
- package/components/prompt-bar.js.map +0 -1
- package/components/radio.js.map +0 -1
- package/components/search-bar.js.map +0 -1
- package/components/segmented-control.js.map +0 -1
- package/components/select.js.map +0 -1
- package/components/sheet.js.map +0 -1
- package/components/sidebar.js.map +0 -1
- package/components/skeleton.js.map +0 -1
- package/components/slider.js.map +0 -1
- package/components/sliding-indicator.js.map +0 -1
- package/components/streaming-text.js.map +0 -1
- package/components/switch.js.map +0 -1
- package/components/table.js.map +0 -1
- package/components/tabs.js.map +0 -1
- package/components/textarea.js.map +0 -1
- package/components/thinking.js.map +0 -1
- package/components/toast.js.map +0 -1
- package/components/toggle.js.map +0 -1
- package/components/tooltip.js.map +0 -1
- package/index.js.map +0 -1
- package/lib/utils.js.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { Button } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
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-
|
|
2
|
-
import { Checkbox } from './chunk-
|
|
3
|
-
import { Button } from './chunk-
|
|
4
|
-
import {
|
|
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
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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":
|
|
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":
|
|
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":
|
|
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
|