chordia-ui 3.2.7 → 3.2.8
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/dist/UploadInteraction.cjs.js +1 -1
- package/dist/UploadInteraction.cjs.js.map +1 -1
- package/dist/UploadInteraction.es.js +166 -121
- package/dist/UploadInteraction.es.js.map +1 -1
- package/dist/components/navigation.cjs.js +1 -1
- package/dist/components/navigation.cjs.js.map +1 -1
- package/dist/components/navigation.es.js +55 -51
- package/dist/components/navigation.es.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/components/navigation/Sidebar.jsx +10 -10
- package/src/components/onboarding/UploadInteraction.jsx +55 -2
- package/src/tokens/colors.css +1 -0
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { Upload as
|
|
4
|
-
const
|
|
1
|
+
import { jsxs as o, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useState as v, useRef as W } from "react";
|
|
3
|
+
import { Upload as F, CircleUser as D, Compass as R, Link2 as I, CloudUpload as T, X as H } from "lucide-react";
|
|
4
|
+
const d = "var(--font-sans)", M = {
|
|
5
5
|
padding: "40px 48px",
|
|
6
|
-
fontFamily:
|
|
6
|
+
fontFamily: d,
|
|
7
7
|
minHeight: "100vh",
|
|
8
8
|
background: "var(--grey-white)",
|
|
9
9
|
boxSizing: "border-box"
|
|
10
|
-
},
|
|
10
|
+
}, j = {
|
|
11
11
|
fontSize: "var(--text-4xl)",
|
|
12
12
|
fontWeight: "var(--font-bold)",
|
|
13
|
-
fontFamily:
|
|
13
|
+
fontFamily: d,
|
|
14
14
|
color: "var(--text-ink)",
|
|
15
15
|
margin: 0,
|
|
16
16
|
letterSpacing: "var(--tracking-tight)",
|
|
17
17
|
lineHeight: "var(--leading-tight)"
|
|
18
|
-
},
|
|
18
|
+
}, L = {
|
|
19
19
|
fontSize: 14,
|
|
20
20
|
fontStyle: "normal",
|
|
21
21
|
fontWeight: 400,
|
|
22
22
|
lineHeight: "140%",
|
|
23
23
|
color: "var(--color-text-secondary)",
|
|
24
24
|
margin: "8px 0 0",
|
|
25
|
-
fontFamily:
|
|
26
|
-
},
|
|
25
|
+
fontFamily: d
|
|
26
|
+
}, A = {
|
|
27
27
|
display: "grid",
|
|
28
28
|
gridTemplateColumns: "1fr 1fr",
|
|
29
29
|
gap: 12,
|
|
30
30
|
marginTop: "36px"
|
|
31
|
-
},
|
|
31
|
+
}, x = {
|
|
32
32
|
display: "flex",
|
|
33
33
|
height: 160,
|
|
34
34
|
padding: 24,
|
|
@@ -42,10 +42,10 @@ const a = "var(--font-sans)", W = {
|
|
|
42
42
|
transition: "var(--transition)",
|
|
43
43
|
cursor: "default",
|
|
44
44
|
gap: 8
|
|
45
|
-
},
|
|
46
|
-
...
|
|
45
|
+
}, B = {
|
|
46
|
+
...x,
|
|
47
47
|
boxShadow: "var(--shadow-sm)"
|
|
48
|
-
},
|
|
48
|
+
}, E = {
|
|
49
49
|
width: 40,
|
|
50
50
|
height: 40,
|
|
51
51
|
borderRadius: "var(--radius)",
|
|
@@ -54,24 +54,24 @@ const a = "var(--font-sans)", W = {
|
|
|
54
54
|
alignItems: "center",
|
|
55
55
|
justifyContent: "center",
|
|
56
56
|
color: "var(--text-base)"
|
|
57
|
-
},
|
|
57
|
+
}, U = {
|
|
58
58
|
color: "var(--grey-strong)",
|
|
59
59
|
fontSize: 20,
|
|
60
60
|
fontStyle: "normal",
|
|
61
61
|
fontWeight: 600,
|
|
62
62
|
lineHeight: "normal",
|
|
63
|
-
fontFamily:
|
|
63
|
+
fontFamily: d,
|
|
64
64
|
margin: 0
|
|
65
|
-
},
|
|
65
|
+
}, $ = {
|
|
66
66
|
fontSize: 13,
|
|
67
67
|
fontStyle: "normal",
|
|
68
68
|
fontWeight: 400,
|
|
69
69
|
lineHeight: "140%",
|
|
70
70
|
color: "var(--text-base)",
|
|
71
71
|
margin: 0,
|
|
72
|
-
fontFamily:
|
|
72
|
+
fontFamily: d,
|
|
73
73
|
flex: "1 0 0"
|
|
74
|
-
},
|
|
74
|
+
}, P = {
|
|
75
75
|
display: "flex",
|
|
76
76
|
height: 28,
|
|
77
77
|
padding: 10,
|
|
@@ -84,70 +84,70 @@ const a = "var(--font-sans)", W = {
|
|
|
84
84
|
fontStyle: "normal",
|
|
85
85
|
fontWeight: 600,
|
|
86
86
|
lineHeight: 1,
|
|
87
|
-
fontFamily:
|
|
87
|
+
fontFamily: d,
|
|
88
88
|
color: "var(--grey-white)",
|
|
89
89
|
border: "none",
|
|
90
90
|
cursor: "pointer",
|
|
91
91
|
transition: "var(--transition-fast)",
|
|
92
92
|
outline: "none",
|
|
93
93
|
boxSizing: "border-box"
|
|
94
|
-
},
|
|
94
|
+
}, O = {
|
|
95
95
|
flex: 1,
|
|
96
96
|
height: 8,
|
|
97
97
|
borderRadius: 4,
|
|
98
98
|
background: "var(--border)",
|
|
99
99
|
overflow: "hidden"
|
|
100
|
-
},
|
|
101
|
-
width: `${
|
|
100
|
+
}, V = (r) => ({
|
|
101
|
+
width: `${r}%`,
|
|
102
102
|
height: "100%",
|
|
103
103
|
borderRadius: 4,
|
|
104
104
|
background: "var(--color-green)",
|
|
105
105
|
transition: "width 0.4s ease-out"
|
|
106
|
-
}),
|
|
106
|
+
}), q = {
|
|
107
107
|
display: "inline-flex",
|
|
108
108
|
alignItems: "center",
|
|
109
109
|
gap: 4,
|
|
110
110
|
fontSize: "var(--text-xs)",
|
|
111
111
|
fontWeight: "var(--font-semibold)",
|
|
112
112
|
color: "var(--rail-compliance)",
|
|
113
|
-
fontFamily:
|
|
113
|
+
fontFamily: d,
|
|
114
114
|
marginLeft: 12
|
|
115
115
|
};
|
|
116
|
-
function y({ icon:
|
|
117
|
-
const [
|
|
118
|
-
return /* @__PURE__ */
|
|
116
|
+
function y({ icon: r, title: h, description: n, buttonLabel: p, onAction: c, recommended: u, children: g }) {
|
|
117
|
+
const [f, s] = v(!1);
|
|
118
|
+
return /* @__PURE__ */ o(
|
|
119
119
|
"div",
|
|
120
120
|
{
|
|
121
|
-
style:
|
|
122
|
-
onMouseEnter: () =>
|
|
123
|
-
onMouseLeave: () =>
|
|
121
|
+
style: f ? B : x,
|
|
122
|
+
onMouseEnter: () => s(!0),
|
|
123
|
+
onMouseLeave: () => s(!1),
|
|
124
124
|
children: [
|
|
125
|
-
/* @__PURE__ */
|
|
126
|
-
/* @__PURE__ */
|
|
127
|
-
/* @__PURE__ */ e("div", { style:
|
|
128
|
-
/* @__PURE__ */ e("h3", { style:
|
|
125
|
+
/* @__PURE__ */ o("div", { children: [
|
|
126
|
+
/* @__PURE__ */ o("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
|
|
127
|
+
/* @__PURE__ */ e("div", { style: E, children: r }),
|
|
128
|
+
/* @__PURE__ */ e("h3", { style: U, children: h })
|
|
129
129
|
] }),
|
|
130
|
-
/* @__PURE__ */
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
/* @__PURE__ */ o("div", { style: { display: "flex", flexDirection: "column", gap: 4, marginLeft: 52, marginTop: 4 }, children: [
|
|
131
|
+
n && /* @__PURE__ */ e("p", { style: $, children: n }),
|
|
132
|
+
g
|
|
133
133
|
] })
|
|
134
134
|
] }),
|
|
135
|
-
/* @__PURE__ */
|
|
135
|
+
/* @__PURE__ */ o("div", { style: { display: "flex", alignItems: "center", marginLeft: 52 }, children: [
|
|
136
136
|
/* @__PURE__ */ e(
|
|
137
137
|
"button",
|
|
138
138
|
{
|
|
139
|
-
style:
|
|
140
|
-
onClick:
|
|
141
|
-
onMouseEnter: (
|
|
142
|
-
|
|
139
|
+
style: P,
|
|
140
|
+
onClick: c,
|
|
141
|
+
onMouseEnter: (i) => {
|
|
142
|
+
i.currentTarget.style.opacity = "0.85";
|
|
143
143
|
},
|
|
144
|
-
onMouseLeave: (
|
|
145
|
-
|
|
144
|
+
onMouseLeave: (i) => {
|
|
145
|
+
i.currentTarget.style.opacity = "1";
|
|
146
146
|
},
|
|
147
|
-
children:
|
|
147
|
+
children: p
|
|
148
148
|
}
|
|
149
149
|
),
|
|
150
|
-
|
|
150
|
+
u && /* @__PURE__ */ o("span", { style: q, children: [
|
|
151
151
|
/* @__PURE__ */ e("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ e("path", { d: "M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z" }) }),
|
|
152
152
|
"Recommended"
|
|
153
153
|
] })
|
|
@@ -156,47 +156,47 @@ function y({ icon: o, title: l, description: r, buttonLabel: s, onAction: g, rec
|
|
|
156
156
|
}
|
|
157
157
|
);
|
|
158
158
|
}
|
|
159
|
-
const
|
|
160
|
-
userName:
|
|
161
|
-
stepsCompleted:
|
|
162
|
-
totalSteps:
|
|
163
|
-
onUpload:
|
|
164
|
-
onContinue:
|
|
165
|
-
onExplore:
|
|
166
|
-
onConnect:
|
|
159
|
+
const oe = ({
|
|
160
|
+
userName: r = "Will",
|
|
161
|
+
stepsCompleted: h = 4,
|
|
162
|
+
totalSteps: n = 6,
|
|
163
|
+
onUpload: p,
|
|
164
|
+
onContinue: c,
|
|
165
|
+
onExplore: u,
|
|
166
|
+
onConnect: g
|
|
167
167
|
}) => {
|
|
168
|
-
const
|
|
169
|
-
return /* @__PURE__ */
|
|
170
|
-
/* @__PURE__ */
|
|
168
|
+
const f = h / n * 100;
|
|
169
|
+
return /* @__PURE__ */ o("div", { style: M, children: [
|
|
170
|
+
/* @__PURE__ */ o("h1", { style: j, children: [
|
|
171
171
|
"Welcome ",
|
|
172
|
-
|
|
172
|
+
r
|
|
173
173
|
] }),
|
|
174
|
-
/* @__PURE__ */ e("p", { style:
|
|
175
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ e("p", { style: L, children: "Get started with your project or explore new features" }),
|
|
175
|
+
/* @__PURE__ */ o("div", { style: A, children: [
|
|
176
176
|
/* @__PURE__ */ e(
|
|
177
177
|
y,
|
|
178
178
|
{
|
|
179
|
-
icon: /* @__PURE__ */ e(
|
|
179
|
+
icon: /* @__PURE__ */ e(F, { size: 24 }),
|
|
180
180
|
title: "Upload and Evaluate Audio",
|
|
181
181
|
description: "Upload Audio Files to Run Evaluations: MP3, WMA or WAV (up to 50 files, max 325MB total)",
|
|
182
182
|
buttonLabel: "Upload",
|
|
183
|
-
onAction:
|
|
183
|
+
onAction: p
|
|
184
184
|
}
|
|
185
185
|
),
|
|
186
186
|
/* @__PURE__ */ e(
|
|
187
187
|
y,
|
|
188
188
|
{
|
|
189
|
-
icon: /* @__PURE__ */ e(
|
|
189
|
+
icon: /* @__PURE__ */ e(D, { size: 24 }),
|
|
190
190
|
title: "Getting started with Chordia",
|
|
191
191
|
description: "Complete these steps to get the most out of Chordia.",
|
|
192
192
|
buttonLabel: "Continue",
|
|
193
|
-
onAction:
|
|
194
|
-
children: /* @__PURE__ */
|
|
195
|
-
/* @__PURE__ */ e("div", { style:
|
|
196
|
-
/* @__PURE__ */
|
|
197
|
-
/* @__PURE__ */ e("strong", { style: { color: "var(--text-base)", fontWeight: 600 }, children:
|
|
193
|
+
onAction: c,
|
|
194
|
+
children: /* @__PURE__ */ o("div", { style: { display: "flex", alignItems: "center", gap: 8, width: "100%" }, children: [
|
|
195
|
+
/* @__PURE__ */ e("div", { style: O, children: /* @__PURE__ */ e("div", { style: V(f) }) }),
|
|
196
|
+
/* @__PURE__ */ o("span", { style: { fontSize: 12, color: "var(--text-muted)", fontFamily: d, whiteSpace: "nowrap" }, children: [
|
|
197
|
+
/* @__PURE__ */ e("strong", { style: { color: "var(--text-base)", fontWeight: 600 }, children: h }),
|
|
198
198
|
" of ",
|
|
199
|
-
|
|
199
|
+
n,
|
|
200
200
|
" steps completed"
|
|
201
201
|
] })
|
|
202
202
|
] })
|
|
@@ -205,45 +205,45 @@ const Q = ({
|
|
|
205
205
|
/* @__PURE__ */ e(
|
|
206
206
|
y,
|
|
207
207
|
{
|
|
208
|
-
icon: /* @__PURE__ */ e(
|
|
208
|
+
icon: /* @__PURE__ */ e(R, { size: 24 }),
|
|
209
209
|
title: "Explore Demo Projects",
|
|
210
210
|
description: "Explore how Chordia Compass transforms real data into insights with plans, dashboards, and evaluations.",
|
|
211
211
|
buttonLabel: "Explore",
|
|
212
|
-
onAction:
|
|
212
|
+
onAction: u,
|
|
213
213
|
recommended: !0
|
|
214
214
|
}
|
|
215
215
|
),
|
|
216
216
|
/* @__PURE__ */ e(
|
|
217
217
|
y,
|
|
218
218
|
{
|
|
219
|
-
icon: /* @__PURE__ */ e(
|
|
219
|
+
icon: /* @__PURE__ */ e(I, { size: 24 }),
|
|
220
220
|
title: "Connect Data Source",
|
|
221
221
|
description: "Connect and integrate third-party tools with your external data sources.",
|
|
222
222
|
buttonLabel: "Connect",
|
|
223
|
-
onAction:
|
|
223
|
+
onAction: g
|
|
224
224
|
}
|
|
225
225
|
)
|
|
226
226
|
] })
|
|
227
227
|
] });
|
|
228
|
-
},
|
|
229
|
-
fontFamily:
|
|
230
|
-
},
|
|
228
|
+
}, l = "var(--font-sans)", G = {
|
|
229
|
+
fontFamily: l
|
|
230
|
+
}, Y = {
|
|
231
231
|
fontSize: 20,
|
|
232
232
|
fontWeight: 600,
|
|
233
233
|
fontStyle: "normal",
|
|
234
|
-
fontFamily:
|
|
234
|
+
fontFamily: l,
|
|
235
235
|
color: "var(--grey-strong)",
|
|
236
236
|
margin: 0,
|
|
237
237
|
lineHeight: "normal"
|
|
238
|
-
},
|
|
238
|
+
}, N = {
|
|
239
239
|
fontSize: 13,
|
|
240
240
|
fontWeight: 400,
|
|
241
241
|
fontStyle: "normal",
|
|
242
242
|
color: "var(--color-text-secondary)",
|
|
243
|
-
fontFamily:
|
|
243
|
+
fontFamily: l,
|
|
244
244
|
margin: "4px 0 0",
|
|
245
245
|
lineHeight: "140%"
|
|
246
|
-
},
|
|
246
|
+
}, w = {
|
|
247
247
|
display: "flex",
|
|
248
248
|
flexDirection: "column",
|
|
249
249
|
alignItems: "center",
|
|
@@ -258,11 +258,11 @@ const Q = ({
|
|
|
258
258
|
transition: "var(--transition-fast)",
|
|
259
259
|
marginTop: 24,
|
|
260
260
|
padding: "48px 24px"
|
|
261
|
-
},
|
|
262
|
-
...
|
|
261
|
+
}, X = {
|
|
262
|
+
...w,
|
|
263
263
|
borderColor: "var(--color-green)",
|
|
264
264
|
background: "var(--color-green-ring)"
|
|
265
|
-
},
|
|
265
|
+
}, J = {
|
|
266
266
|
width: 80,
|
|
267
267
|
height: 80,
|
|
268
268
|
borderRadius: 9999,
|
|
@@ -272,15 +272,15 @@ const Q = ({
|
|
|
272
272
|
justifyContent: "center",
|
|
273
273
|
flexShrink: 0,
|
|
274
274
|
marginBottom: 20
|
|
275
|
-
},
|
|
275
|
+
}, K = {
|
|
276
276
|
fontSize: 18,
|
|
277
277
|
fontWeight: 600,
|
|
278
|
-
fontFamily:
|
|
278
|
+
fontFamily: l,
|
|
279
279
|
color: "var(--grey-strong)",
|
|
280
280
|
textAlign: "center",
|
|
281
281
|
lineHeight: "28px",
|
|
282
282
|
margin: 0
|
|
283
|
-
},
|
|
283
|
+
}, Q = {
|
|
284
284
|
display: "flex",
|
|
285
285
|
height: 32,
|
|
286
286
|
padding: 16,
|
|
@@ -292,70 +292,74 @@ const Q = ({
|
|
|
292
292
|
background: "var(--grey-white)",
|
|
293
293
|
fontSize: 15,
|
|
294
294
|
fontWeight: 400,
|
|
295
|
-
fontFamily:
|
|
295
|
+
fontFamily: l,
|
|
296
296
|
color: "var(--grey-strong)",
|
|
297
297
|
cursor: "pointer",
|
|
298
298
|
transition: "var(--transition-fast)",
|
|
299
299
|
outline: "none",
|
|
300
300
|
marginTop: 16,
|
|
301
301
|
boxSizing: "border-box"
|
|
302
|
-
},
|
|
302
|
+
}, Z = {
|
|
303
303
|
fontSize: 14,
|
|
304
304
|
fontWeight: 400,
|
|
305
|
-
fontFamily:
|
|
305
|
+
fontFamily: l,
|
|
306
306
|
color: "var(--grey-muted)",
|
|
307
307
|
textAlign: "center",
|
|
308
308
|
marginTop: 16,
|
|
309
309
|
lineHeight: "140%"
|
|
310
|
-
},
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
310
|
+
}, re = ({
|
|
311
|
+
onFileSelect: r,
|
|
312
|
+
showUploadQueuedMessage: h = !1,
|
|
313
|
+
uploadSummary: n = { successCount: 0, failedCount: 0, primaryFailureReason: "" }
|
|
314
|
+
}) => {
|
|
315
|
+
const [p, c] = v(!1), [u, g] = v(!1), f = W(null), s = (n == null ? void 0 : n.successCount) || 0, i = (n == null ? void 0 : n.failedCount) || 0, C = (n == null ? void 0 : n.primaryFailureReason) || "", z = (t) => {
|
|
316
|
+
t.preventDefault(), c(!0);
|
|
317
|
+
}, S = () => {
|
|
318
|
+
c(!1);
|
|
319
|
+
}, k = (t) => {
|
|
320
|
+
var m;
|
|
321
|
+
t.preventDefault(), c(!1), g(!1);
|
|
322
|
+
const a = (m = t.dataTransfer) == null ? void 0 : m.files;
|
|
323
|
+
a != null && a.length && (r == null || r(a));
|
|
324
|
+
}, b = () => {
|
|
321
325
|
var t;
|
|
322
|
-
(t =
|
|
326
|
+
(t = f.current) == null || t.click();
|
|
323
327
|
};
|
|
324
|
-
return /* @__PURE__ */
|
|
325
|
-
/* @__PURE__ */ e("h2", { style:
|
|
326
|
-
/* @__PURE__ */ e("p", { style:
|
|
328
|
+
return /* @__PURE__ */ o("div", { style: G, children: [
|
|
329
|
+
/* @__PURE__ */ e("h2", { style: Y, children: "Evaluate Interaction" }),
|
|
330
|
+
/* @__PURE__ */ e("p", { style: N, children: "Upload interactions to generate insights, explore results, and identify patterns." }),
|
|
327
331
|
/* @__PURE__ */ e(
|
|
328
332
|
"input",
|
|
329
333
|
{
|
|
330
|
-
ref:
|
|
334
|
+
ref: f,
|
|
331
335
|
type: "file",
|
|
332
336
|
accept: "audio/mpeg,audio/wav,audio/x-ms-wma,audio/mp4,video/mp4,video/webm",
|
|
333
337
|
multiple: !0,
|
|
334
338
|
style: { display: "none" },
|
|
335
339
|
onChange: (t) => {
|
|
336
|
-
const
|
|
337
|
-
|
|
340
|
+
const a = t.target.files;
|
|
341
|
+
a != null && a.length && (g(!1), r == null || r(a)), t.target.value = "";
|
|
338
342
|
}
|
|
339
343
|
}
|
|
340
344
|
),
|
|
341
|
-
/* @__PURE__ */
|
|
345
|
+
/* @__PURE__ */ o(
|
|
342
346
|
"div",
|
|
343
347
|
{
|
|
344
|
-
style:
|
|
345
|
-
onDragOver:
|
|
346
|
-
onDragLeave:
|
|
347
|
-
onDrop:
|
|
348
|
-
onClick:
|
|
348
|
+
style: p ? X : w,
|
|
349
|
+
onDragOver: z,
|
|
350
|
+
onDragLeave: S,
|
|
351
|
+
onDrop: k,
|
|
352
|
+
onClick: b,
|
|
349
353
|
children: [
|
|
350
|
-
/* @__PURE__ */ e("div", { style:
|
|
351
|
-
/* @__PURE__ */ e("p", { style:
|
|
354
|
+
/* @__PURE__ */ e("div", { style: J, children: /* @__PURE__ */ e(T, { size: 32, color: "var(--grey-strong)" }) }),
|
|
355
|
+
/* @__PURE__ */ e("p", { style: K, children: "Drop your file here, or" }),
|
|
352
356
|
/* @__PURE__ */ e(
|
|
353
357
|
"button",
|
|
354
358
|
{
|
|
355
359
|
type: "button",
|
|
356
|
-
style:
|
|
360
|
+
style: Q,
|
|
357
361
|
onClick: (t) => {
|
|
358
|
-
t.stopPropagation(),
|
|
362
|
+
t.stopPropagation(), b();
|
|
359
363
|
},
|
|
360
364
|
onMouseEnter: (t) => {
|
|
361
365
|
t.currentTarget.style.background = "var(--hover-warm-subtle)";
|
|
@@ -366,14 +370,55 @@ const Q = ({
|
|
|
366
370
|
children: "Browse files"
|
|
367
371
|
}
|
|
368
372
|
),
|
|
369
|
-
/* @__PURE__ */ e("p", { style:
|
|
373
|
+
/* @__PURE__ */ e("p", { style: Z, children: "Supports: MP3, WAV, WMA, MP4, and WEBM" })
|
|
374
|
+
]
|
|
375
|
+
}
|
|
376
|
+
),
|
|
377
|
+
h && !u && /* @__PURE__ */ o(
|
|
378
|
+
"div",
|
|
379
|
+
{
|
|
380
|
+
style: {
|
|
381
|
+
marginTop: 16,
|
|
382
|
+
borderRadius: 10,
|
|
383
|
+
border: "1px solid var(--border)",
|
|
384
|
+
background: "var(--grey-light)",
|
|
385
|
+
padding: "var(--spacing-2) var(--spacing-3)"
|
|
386
|
+
},
|
|
387
|
+
children: [
|
|
388
|
+
/* @__PURE__ */ o("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 12 }, children: [
|
|
389
|
+
/* @__PURE__ */ e("p", { style: { fontSize: 15, fontWeight: 600, fontFamily: l, color: "var(--grey-strong)" }, children: "Upload status" }),
|
|
390
|
+
/* @__PURE__ */ e(
|
|
391
|
+
"button",
|
|
392
|
+
{
|
|
393
|
+
type: "button",
|
|
394
|
+
style: {
|
|
395
|
+
display: "flex",
|
|
396
|
+
alignItems: "center",
|
|
397
|
+
justifyContent: "center",
|
|
398
|
+
width: 20,
|
|
399
|
+
height: 20,
|
|
400
|
+
borderRadius: 10,
|
|
401
|
+
background: "var(--grey-light)",
|
|
402
|
+
cursor: "pointer",
|
|
403
|
+
border: "none",
|
|
404
|
+
outline: "none",
|
|
405
|
+
padding: 0,
|
|
406
|
+
margin: 0
|
|
407
|
+
},
|
|
408
|
+
onClick: () => g(!0),
|
|
409
|
+
children: /* @__PURE__ */ e(H, { size: 14, color: "var(--grey-strong)" })
|
|
410
|
+
}
|
|
411
|
+
)
|
|
412
|
+
] }),
|
|
413
|
+
/* @__PURE__ */ e("p", { style: { fontSize: 13, fontWeight: 400, fontFamily: l, color: "var(--grey-strong)", marginTop: 8 }, children: i > 0 && s > 0 ? `${s} file${s > 1 ? "s are" : " is"} successfully uploaded and ${i} file${i > 1 ? "s are" : " is"} failed.` : i > 0 ? `${i} file${i > 1 ? "s" : ""} failed to upload.` : s > 1 ? `${s} files are queued for evaluation.` : "Your file is queued for evaluation." }),
|
|
414
|
+
/* @__PURE__ */ e("p", { className: "mt-1 text-xs text-gray-600", children: i > 0 ? `Failed because ${C || "of a validation issue"}.` : "You can continue using the app while upload runs in the background. Results will appear in the project history once ready." })
|
|
370
415
|
]
|
|
371
416
|
}
|
|
372
417
|
)
|
|
373
418
|
] });
|
|
374
419
|
};
|
|
375
420
|
export {
|
|
376
|
-
|
|
377
|
-
|
|
421
|
+
oe as U,
|
|
422
|
+
re as a
|
|
378
423
|
};
|
|
379
424
|
//# sourceMappingURL=UploadInteraction.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadInteraction.es.js","sources":["../src/components/onboarding/UploadEvaluate.jsx","../src/components/onboarding/UploadInteraction.jsx"],"sourcesContent":["import { useState } from 'react';\nimport { Upload, CircleUser, Compass, Link2 } from 'lucide-react';\n\nconst FF = 'var(--font-sans)';\n\n// ─── Styles ───\n\nconst containerStyle = {\n padding: '40px 48px',\n fontFamily: FF,\n minHeight: '100vh',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n};\n\nconst headingStyle = {\n fontSize: 'var(--text-4xl)',\n fontWeight: 'var(--font-bold)',\n fontFamily: FF,\n color: 'var(--text-ink)',\n margin: 0,\n letterSpacing: 'var(--tracking-tight)',\n lineHeight: 'var(--leading-tight)',\n};\n\nconst subtitleStyle = {\n fontSize: 14,\n fontStyle: 'normal',\n fontWeight: 400,\n lineHeight: '140%',\n color: 'var(--color-text-secondary)',\n margin: '8px 0 0',\n fontFamily: FF,\n};\n\nconst gridStyle = {\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: 12,\n marginTop: '36px',\n};\n\nconst cardStyle = {\n display: 'flex',\n height: 160,\n padding: 24,\n flexDirection: 'column',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n borderRadius: 12,\n border: '1px solid var(--grey-absent)',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n transition: 'var(--transition)',\n cursor: 'default',\n gap: 8\n};\n\nconst cardHoverStyle = {\n ...cardStyle,\n boxShadow: 'var(--shadow-sm)',\n};\n\nconst iconWrapperStyle = {\n width: 40,\n height: 40,\n borderRadius: 'var(--radius)',\n background: 'var(--paper-secondary)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'var(--text-base)',\n};\n\nconst cardTitleStyle = {\n color: 'var(--grey-strong)',\n fontSize: 20,\n fontStyle: 'normal',\n fontWeight: 600,\n lineHeight: 'normal',\n fontFamily: FF,\n margin: 0,\n};\n\nconst cardDescStyle = {\n fontSize: 13,\n fontStyle: 'normal',\n fontWeight: 400,\n lineHeight: '140%',\n color: 'var(--text-base)',\n margin: 0,\n fontFamily: FF,\n flex: '1 0 0',\n};\n\nconst btnStyle = {\n display: 'flex',\n height: 28,\n padding: 10,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 10,\n borderRadius: 10,\n background: 'var(--grey-strong)',\n fontSize: 14,\n fontStyle: 'normal',\n fontWeight: 600,\n lineHeight: 1,\n fontFamily: FF,\n color: 'var(--grey-white)',\n border: 'none',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n outline: 'none',\n boxSizing: 'border-box',\n};\n\nconst progressBarBg = {\n flex: 1,\n height: 8,\n borderRadius: 4,\n background: 'var(--border)',\n overflow: 'hidden',\n};\n\nconst progressBarFill = (pct) => ({\n width: `${pct}%`,\n height: '100%',\n borderRadius: 4,\n background: 'var(--color-green)',\n transition: 'width 0.4s ease-out',\n});\n\nconst recommendedBadge = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 4,\n fontSize: 'var(--text-xs)',\n fontWeight: 'var(--font-semibold)',\n color: 'var(--rail-compliance)',\n fontFamily: FF,\n marginLeft: 12,\n};\n\n// ─── Card Component ───\n\nfunction OnboardingCard({ icon, title, description, buttonLabel, onAction, recommended, children }) {\n const [hovered, setHovered] = useState(false);\n\n return (\n <div\n style={hovered ? cardHoverStyle : cardStyle}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n <div>\n <div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>\n <div style={iconWrapperStyle}>{icon}</div>\n <h3 style={cardTitleStyle}>{title}</h3>\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 4, marginLeft: 52, marginTop: 4 }}>\n {description && <p style={cardDescStyle}>{description}</p>}\n {children}\n </div>\n </div>\n <div style={{ display: 'flex', alignItems: 'center', marginLeft: 52 }}>\n <button\n style={btnStyle}\n onClick={onAction}\n onMouseEnter={(e) => { e.currentTarget.style.opacity = '0.85'; }}\n onMouseLeave={(e) => { e.currentTarget.style.opacity = '1'; }}\n >\n {buttonLabel}\n </button>\n {recommended && (\n <span style={recommendedBadge}>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\" /></svg>\n Recommended\n </span>\n )}\n </div>\n </div>\n );\n}\n\n// ─── Main Component ───\n\nconst UploadEvaluate = ({\n userName = 'Will',\n stepsCompleted = 4,\n totalSteps = 6,\n onUpload,\n onContinue,\n onExplore,\n onConnect,\n}) => {\n const progressPct = (stepsCompleted / totalSteps) * 100;\n\n return (\n <div style={containerStyle}>\n <h1 style={headingStyle}>Welcome {userName}</h1>\n <p style={subtitleStyle}>Get started with your project or explore new features</p>\n\n <div style={gridStyle}>\n {/* Upload and Evaluate Audio */}\n <OnboardingCard\n icon={<Upload size={24} />}\n title=\"Upload and Evaluate Audio\"\n description=\"Upload Audio Files to Run Evaluations: MP3, WMA or WAV (up to 50 files, max 325MB total)\"\n buttonLabel=\"Upload\"\n onAction={onUpload}\n />\n\n {/* Getting started with Chordia */}\n <OnboardingCard\n icon={<CircleUser size={24} />}\n title=\"Getting started with Chordia\"\n description=\"Complete these steps to get the most out of Chordia.\"\n buttonLabel=\"Continue\"\n onAction={onContinue}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: 8, width: '100%' }}>\n <div style={progressBarBg}>\n <div style={progressBarFill(progressPct)} />\n </div>\n <span style={{ fontSize: 12, color: 'var(--text-muted)', fontFamily: FF, whiteSpace: 'nowrap' }}>\n <strong style={{ color: 'var(--text-base)', fontWeight: 600 }}>{stepsCompleted}</strong> of {totalSteps} steps completed\n </span>\n </div>\n </OnboardingCard>\n\n {/* Explore Demo Projects */}\n <OnboardingCard\n icon={<Compass size={24} />}\n title=\"Explore Demo Projects\"\n description=\"Explore how Chordia Compass transforms real data into insights with plans, dashboards, and evaluations.\"\n buttonLabel=\"Explore\"\n onAction={onExplore}\n recommended\n />\n\n {/* Connect Data Source */}\n <OnboardingCard\n icon={<Link2 size={24} />}\n title=\"Connect Data Source\"\n description=\"Connect and integrate third-party tools with your external data sources.\"\n buttonLabel=\"Connect\"\n onAction={onConnect}\n />\n </div>\n </div>\n );\n};\n\nexport default UploadEvaluate;\n","import { useState, useRef } from 'react';\nimport { CloudUpload } from 'lucide-react';\n\nconst FF = 'var(--font-sans)';\n\n// ─── Styles ───\n\nconst containerStyle = {\n fontFamily: FF,\n};\n\nconst sectionTitleStyle = {\n fontSize: 20,\n fontWeight: 600,\n fontStyle: 'normal',\n fontFamily: FF,\n color: 'var(--grey-strong)',\n margin: 0,\n lineHeight: 'normal',\n};\n\nconst sectionSubtitleStyle = {\n fontSize: 13,\n fontWeight: 400,\n fontStyle: 'normal',\n color: 'var(--color-text-secondary)',\n fontFamily: FF,\n margin: '4px 0 0',\n lineHeight: '140%',\n};\n\nconst dropzoneStyle = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minHeight: 320,\n borderRadius: 16,\n border: '2px dashed var(--color-input-border)',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n marginTop: 24,\n padding: '48px 24px',\n};\n\nconst dropzoneHoverStyle = {\n ...dropzoneStyle,\n borderColor: 'var(--color-green)',\n background: 'var(--color-green-ring)',\n};\n\nconst dropzoneIconWrap = {\n width: 80,\n height: 80,\n borderRadius: 9999,\n background: 'var(--focus-2)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n marginBottom: 20,\n};\n\nconst dropzoneTextStyle = {\n fontSize: 18,\n fontWeight: 600,\n fontFamily: FF,\n color: 'var(--grey-strong)',\n textAlign: 'center',\n lineHeight: '28px',\n margin: 0,\n};\n\nconst browseButtonStyle = {\n display: 'flex',\n height: 32,\n padding: 16,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 10,\n borderRadius: 10,\n border: '1px solid var(--grey-absent)',\n background: 'var(--grey-white)',\n fontSize: 15,\n fontWeight: 400,\n fontFamily: FF,\n color: 'var(--grey-strong)',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n outline: 'none',\n marginTop: 16,\n boxSizing: 'border-box',\n};\n\nconst dropzoneHintStyle = {\n fontSize: 14,\n fontWeight: 400,\n fontFamily: FF,\n color: 'var(--grey-muted)',\n textAlign: 'center',\n marginTop: 16,\n lineHeight: '140%',\n};\n\n// ─── Component ───\n\nconst UploadInteraction = ({ onFileSelect }) => {\n const [dragOver, setDragOver] = useState(false);\n const fileInputRef = useRef(null);\n\n const handleDragOver = (e) => {\n e.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleDrop = (e) => {\n e.preventDefault();\n setDragOver(false);\n const files = e.dataTransfer?.files;\n if (files?.length) {\n onFileSelect?.(files);\n }\n };\n\n const handleBrowseClick = () => {\n fileInputRef.current?.click();\n };\n\n const handleFileChange = (e) => {\n const files = e.target.files;\n if (files?.length) {\n onFileSelect?.(files);\n }\n e.target.value = '';\n };\n\n return (\n <div style={containerStyle}>\n <h2 style={sectionTitleStyle}>Evaluate Interaction</h2>\n <p style={sectionSubtitleStyle}>\n Upload interactions to generate insights, explore results, and identify patterns.\n </p>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"audio/mpeg,audio/wav,audio/x-ms-wma,audio/mp4,video/mp4,video/webm\"\n multiple\n style={{ display: 'none' }}\n onChange={handleFileChange}\n />\n\n <div\n style={dragOver ? dropzoneHoverStyle : dropzoneStyle}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={handleBrowseClick}\n >\n <div style={dropzoneIconWrap}>\n <CloudUpload size={32} color=\"var(--grey-strong)\" />\n </div>\n <p style={dropzoneTextStyle}>Drop your file here, or</p>\n <button\n type=\"button\"\n style={browseButtonStyle}\n onClick={(e) => { e.stopPropagation(); handleBrowseClick(); }}\n onMouseEnter={(e) => { e.currentTarget.style.background = 'var(--hover-warm-subtle)'; }}\n onMouseLeave={(e) => { e.currentTarget.style.background = 'var(--grey-white)'; }}\n >\n Browse files\n </button>\n <p style={dropzoneHintStyle}>Supports: MP3, WAV, WMA, MP4, and WEBM</p>\n </div>\n </div>\n );\n};\n\nexport default UploadInteraction;\n"],"names":["FF","containerStyle","headingStyle","subtitleStyle","gridStyle","cardStyle","cardHoverStyle","iconWrapperStyle","cardTitleStyle","cardDescStyle","btnStyle","progressBarBg","progressBarFill","pct","recommendedBadge","OnboardingCard","icon","title","description","buttonLabel","onAction","recommended","children","hovered","setHovered","useState","jsxs","jsx","e","UploadEvaluate","userName","stepsCompleted","totalSteps","onUpload","onContinue","onExplore","onConnect","progressPct","Upload","CircleUser","Compass","Link2","sectionTitleStyle","sectionSubtitleStyle","dropzoneStyle","dropzoneHoverStyle","dropzoneIconWrap","dropzoneTextStyle","browseButtonStyle","dropzoneHintStyle","UploadInteraction","onFileSelect","dragOver","setDragOver","fileInputRef","useRef","handleDragOver","handleDragLeave","handleDrop","files","_a","handleBrowseClick","CloudUpload"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UploadInteraction.es.js","sources":["../src/components/onboarding/UploadEvaluate.jsx","../src/components/onboarding/UploadInteraction.jsx"],"sourcesContent":["import { useState } from 'react';\nimport { Upload, CircleUser, Compass, Link2 } from 'lucide-react';\n\nconst FF = 'var(--font-sans)';\n\n// ─── Styles ───\n\nconst containerStyle = {\n padding: '40px 48px',\n fontFamily: FF,\n minHeight: '100vh',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n};\n\nconst headingStyle = {\n fontSize: 'var(--text-4xl)',\n fontWeight: 'var(--font-bold)',\n fontFamily: FF,\n color: 'var(--text-ink)',\n margin: 0,\n letterSpacing: 'var(--tracking-tight)',\n lineHeight: 'var(--leading-tight)',\n};\n\nconst subtitleStyle = {\n fontSize: 14,\n fontStyle: 'normal',\n fontWeight: 400,\n lineHeight: '140%',\n color: 'var(--color-text-secondary)',\n margin: '8px 0 0',\n fontFamily: FF,\n};\n\nconst gridStyle = {\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: 12,\n marginTop: '36px',\n};\n\nconst cardStyle = {\n display: 'flex',\n height: 160,\n padding: 24,\n flexDirection: 'column',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n borderRadius: 12,\n border: '1px solid var(--grey-absent)',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n transition: 'var(--transition)',\n cursor: 'default',\n gap: 8\n};\n\nconst cardHoverStyle = {\n ...cardStyle,\n boxShadow: 'var(--shadow-sm)',\n};\n\nconst iconWrapperStyle = {\n width: 40,\n height: 40,\n borderRadius: 'var(--radius)',\n background: 'var(--paper-secondary)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'var(--text-base)',\n};\n\nconst cardTitleStyle = {\n color: 'var(--grey-strong)',\n fontSize: 20,\n fontStyle: 'normal',\n fontWeight: 600,\n lineHeight: 'normal',\n fontFamily: FF,\n margin: 0,\n};\n\nconst cardDescStyle = {\n fontSize: 13,\n fontStyle: 'normal',\n fontWeight: 400,\n lineHeight: '140%',\n color: 'var(--text-base)',\n margin: 0,\n fontFamily: FF,\n flex: '1 0 0',\n};\n\nconst btnStyle = {\n display: 'flex',\n height: 28,\n padding: 10,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 10,\n borderRadius: 10,\n background: 'var(--grey-strong)',\n fontSize: 14,\n fontStyle: 'normal',\n fontWeight: 600,\n lineHeight: 1,\n fontFamily: FF,\n color: 'var(--grey-white)',\n border: 'none',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n outline: 'none',\n boxSizing: 'border-box',\n};\n\nconst progressBarBg = {\n flex: 1,\n height: 8,\n borderRadius: 4,\n background: 'var(--border)',\n overflow: 'hidden',\n};\n\nconst progressBarFill = (pct) => ({\n width: `${pct}%`,\n height: '100%',\n borderRadius: 4,\n background: 'var(--color-green)',\n transition: 'width 0.4s ease-out',\n});\n\nconst recommendedBadge = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 4,\n fontSize: 'var(--text-xs)',\n fontWeight: 'var(--font-semibold)',\n color: 'var(--rail-compliance)',\n fontFamily: FF,\n marginLeft: 12,\n};\n\n// ─── Card Component ───\n\nfunction OnboardingCard({ icon, title, description, buttonLabel, onAction, recommended, children }) {\n const [hovered, setHovered] = useState(false);\n\n return (\n <div\n style={hovered ? cardHoverStyle : cardStyle}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n <div>\n <div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>\n <div style={iconWrapperStyle}>{icon}</div>\n <h3 style={cardTitleStyle}>{title}</h3>\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', gap: 4, marginLeft: 52, marginTop: 4 }}>\n {description && <p style={cardDescStyle}>{description}</p>}\n {children}\n </div>\n </div>\n <div style={{ display: 'flex', alignItems: 'center', marginLeft: 52 }}>\n <button\n style={btnStyle}\n onClick={onAction}\n onMouseEnter={(e) => { e.currentTarget.style.opacity = '0.85'; }}\n onMouseLeave={(e) => { e.currentTarget.style.opacity = '1'; }}\n >\n {buttonLabel}\n </button>\n {recommended && (\n <span style={recommendedBadge}>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\" /></svg>\n Recommended\n </span>\n )}\n </div>\n </div>\n );\n}\n\n// ─── Main Component ───\n\nconst UploadEvaluate = ({\n userName = 'Will',\n stepsCompleted = 4,\n totalSteps = 6,\n onUpload,\n onContinue,\n onExplore,\n onConnect,\n}) => {\n const progressPct = (stepsCompleted / totalSteps) * 100;\n\n return (\n <div style={containerStyle}>\n <h1 style={headingStyle}>Welcome {userName}</h1>\n <p style={subtitleStyle}>Get started with your project or explore new features</p>\n\n <div style={gridStyle}>\n {/* Upload and Evaluate Audio */}\n <OnboardingCard\n icon={<Upload size={24} />}\n title=\"Upload and Evaluate Audio\"\n description=\"Upload Audio Files to Run Evaluations: MP3, WMA or WAV (up to 50 files, max 325MB total)\"\n buttonLabel=\"Upload\"\n onAction={onUpload}\n />\n\n {/* Getting started with Chordia */}\n <OnboardingCard\n icon={<CircleUser size={24} />}\n title=\"Getting started with Chordia\"\n description=\"Complete these steps to get the most out of Chordia.\"\n buttonLabel=\"Continue\"\n onAction={onContinue}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: 8, width: '100%' }}>\n <div style={progressBarBg}>\n <div style={progressBarFill(progressPct)} />\n </div>\n <span style={{ fontSize: 12, color: 'var(--text-muted)', fontFamily: FF, whiteSpace: 'nowrap' }}>\n <strong style={{ color: 'var(--text-base)', fontWeight: 600 }}>{stepsCompleted}</strong> of {totalSteps} steps completed\n </span>\n </div>\n </OnboardingCard>\n\n {/* Explore Demo Projects */}\n <OnboardingCard\n icon={<Compass size={24} />}\n title=\"Explore Demo Projects\"\n description=\"Explore how Chordia Compass transforms real data into insights with plans, dashboards, and evaluations.\"\n buttonLabel=\"Explore\"\n onAction={onExplore}\n recommended\n />\n\n {/* Connect Data Source */}\n <OnboardingCard\n icon={<Link2 size={24} />}\n title=\"Connect Data Source\"\n description=\"Connect and integrate third-party tools with your external data sources.\"\n buttonLabel=\"Connect\"\n onAction={onConnect}\n />\n </div>\n </div>\n );\n};\n\nexport default UploadEvaluate;\n","import { useState, useRef } from 'react';\nimport { CloudUpload, X } from 'lucide-react';\n\nconst FF = 'var(--font-sans)';\n\n// ─── Styles ───\n\nconst containerStyle = {\n fontFamily: FF,\n};\n\nconst sectionTitleStyle = {\n fontSize: 20,\n fontWeight: 600,\n fontStyle: 'normal',\n fontFamily: FF,\n color: 'var(--grey-strong)',\n margin: 0,\n lineHeight: 'normal',\n};\n\nconst sectionSubtitleStyle = {\n fontSize: 13,\n fontWeight: 400,\n fontStyle: 'normal',\n color: 'var(--color-text-secondary)',\n fontFamily: FF,\n margin: '4px 0 0',\n lineHeight: '140%',\n};\n\nconst dropzoneStyle = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minHeight: 320,\n borderRadius: 16,\n border: '2px dashed var(--color-input-border)',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n marginTop: 24,\n padding: '48px 24px',\n};\n\nconst dropzoneHoverStyle = {\n ...dropzoneStyle,\n borderColor: 'var(--color-green)',\n background: 'var(--color-green-ring)',\n};\n\nconst dropzoneIconWrap = {\n width: 80,\n height: 80,\n borderRadius: 9999,\n background: 'var(--focus-2)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n marginBottom: 20,\n};\n\nconst dropzoneTextStyle = {\n fontSize: 18,\n fontWeight: 600,\n fontFamily: FF,\n color: 'var(--grey-strong)',\n textAlign: 'center',\n lineHeight: '28px',\n margin: 0,\n};\n\nconst browseButtonStyle = {\n display: 'flex',\n height: 32,\n padding: 16,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 10,\n borderRadius: 10,\n border: '1px solid var(--grey-absent)',\n background: 'var(--grey-white)',\n fontSize: 15,\n fontWeight: 400,\n fontFamily: FF,\n color: 'var(--grey-strong)',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n outline: 'none',\n marginTop: 16,\n boxSizing: 'border-box',\n};\n\nconst dropzoneHintStyle = {\n fontSize: 14,\n fontWeight: 400,\n fontFamily: FF,\n color: 'var(--grey-muted)',\n textAlign: 'center',\n marginTop: 16,\n lineHeight: '140%',\n};\n\n// ─── Component ───\n\nconst UploadInteraction = ({\n onFileSelect,\n showUploadQueuedMessage = false,\n uploadSummary = { successCount: 0, failedCount: 0, primaryFailureReason: '' },\n}) => {\n const [dragOver, setDragOver] = useState(false);\n const [isStatusDismissed, setIsStatusDismissed] = useState(false);\n const fileInputRef = useRef(null);\n const successCount = uploadSummary?.successCount || 0;\n const failedCount = uploadSummary?.failedCount || 0;\n const primaryFailureReason = uploadSummary?.primaryFailureReason || '';\n\n const handleDragOver = (e) => {\n e.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleDrop = (e) => {\n e.preventDefault();\n setDragOver(false);\n setIsStatusDismissed(false);\n const files = e.dataTransfer?.files;\n if (files?.length) {\n onFileSelect?.(files);\n }\n };\n\n const handleBrowseClick = () => {\n fileInputRef.current?.click();\n };\n\n const handleFileChange = (e) => {\n const files = e.target.files;\n if (files?.length) {\n setIsStatusDismissed(false);\n onFileSelect?.(files);\n }\n e.target.value = '';\n };\n\n return (\n <div style={containerStyle}>\n <h2 style={sectionTitleStyle}>Evaluate Interaction</h2>\n <p style={sectionSubtitleStyle}>\n Upload interactions to generate insights, explore results, and identify patterns.\n </p>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"audio/mpeg,audio/wav,audio/x-ms-wma,audio/mp4,video/mp4,video/webm\"\n multiple\n style={{ display: 'none' }}\n onChange={handleFileChange}\n />\n\n <div\n style={dragOver ? dropzoneHoverStyle : dropzoneStyle}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={handleBrowseClick}\n >\n <div style={dropzoneIconWrap}>\n <CloudUpload size={32} color=\"var(--grey-strong)\" />\n </div>\n <p style={dropzoneTextStyle}>Drop your file here, or</p>\n <button\n type=\"button\"\n style={browseButtonStyle}\n onClick={(e) => { e.stopPropagation(); handleBrowseClick(); }}\n onMouseEnter={(e) => { e.currentTarget.style.background = 'var(--hover-warm-subtle)'; }}\n onMouseLeave={(e) => { e.currentTarget.style.background = 'var(--grey-white)'; }}\n >\n Browse files\n </button>\n <p style={dropzoneHintStyle}>Supports: MP3, WAV, WMA, MP4, and WEBM</p>\n </div>\n\n {showUploadQueuedMessage && !isStatusDismissed && (\n <div \n style={{\n marginTop: 16,\n borderRadius: 10,\n border: '1px solid var(--border)',\n background: 'var(--grey-light)',\n padding: 'var(--spacing-2) var(--spacing-3)',\n }}>\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 12 }}>\n <p style={{ fontSize: 15, fontWeight: 600, fontFamily: FF, color: 'var(--grey-strong)' }}>Upload status</p>\n <button\n type=\"button\"\n style={{ \n display: 'flex',\n alignItems: 'center', justifyContent: 'center', width: 20, height: 20, borderRadius: 10, background: 'var(--grey-light)', cursor: 'pointer',\n border: 'none',\n outline: 'none',\n padding: 0,\n margin: 0,\n }}\n onClick={() => setIsStatusDismissed(true)}\n >\n <X size={14} color=\"var(--grey-strong)\" />\n </button>\n </div>\n <p style={{ fontSize: 13, fontWeight: 400, fontFamily: FF, color: 'var(--grey-strong)', marginTop: 8 }}>\n {failedCount > 0 && successCount > 0\n ? `${successCount} file${successCount > 1 ? 's are' : ' is'} successfully uploaded and ${failedCount} file${failedCount > 1 ? 's are' : ' is'} failed.`\n : failedCount > 0\n ? `${failedCount} file${failedCount > 1 ? 's' : ''} failed to upload.`\n : successCount > 1\n ? `${successCount} files are queued for evaluation.`\n : 'Your file is queued for evaluation.'}\n </p>\n <p className=\"mt-1 text-xs text-gray-600\">\n {failedCount > 0\n ? `Failed because ${primaryFailureReason || 'of a validation issue'}.`\n : 'You can continue using the app while upload runs in the background. Results will appear in the project history once ready.'}\n </p>\n </div>\n )}\n </div>\n );\n};\n\nexport default UploadInteraction;\n"],"names":["FF","containerStyle","headingStyle","subtitleStyle","gridStyle","cardStyle","cardHoverStyle","iconWrapperStyle","cardTitleStyle","cardDescStyle","btnStyle","progressBarBg","progressBarFill","pct","recommendedBadge","OnboardingCard","icon","title","description","buttonLabel","onAction","recommended","children","hovered","setHovered","useState","jsxs","jsx","e","UploadEvaluate","userName","stepsCompleted","totalSteps","onUpload","onContinue","onExplore","onConnect","progressPct","Upload","CircleUser","Compass","Link2","sectionTitleStyle","sectionSubtitleStyle","dropzoneStyle","dropzoneHoverStyle","dropzoneIconWrap","dropzoneTextStyle","browseButtonStyle","dropzoneHintStyle","UploadInteraction","onFileSelect","showUploadQueuedMessage","uploadSummary","dragOver","setDragOver","isStatusDismissed","setIsStatusDismissed","fileInputRef","useRef","successCount","failedCount","primaryFailureReason","handleDragOver","handleDragLeave","handleDrop","files","_a","handleBrowseClick","CloudUpload","X"],"mappings":";;;AAGA,MAAMA,IAAK,oBAILC,IAAiB;AAAA,EACrB,SAAS;AAAA,EACT,YAAYD;AAAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AACb,GAEME,IAAe;AAAA,EACnB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAYF;AAAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,YAAY;AACd,GAEMG,IAAgB;AAAA,EACpB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAYH;AACd,GAEMI,IAAY;AAAA,EAChB,SAAS;AAAA,EACT,qBAAqB;AAAA,EACrB,KAAK;AAAA,EACL,WAAW;AACb,GAEMC,IAAY;AAAA,EAChB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,KAAK;AACP,GAEMC,IAAiB;AAAA,EACrB,GAAGD;AAAA,EACH,WAAW;AACb,GAEME,IAAmB;AAAA,EACvB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,OAAO;AACT,GAEMC,IAAiB;AAAA,EACrB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAYR;AAAAA,EACZ,QAAQ;AACV,GAEMS,IAAgB;AAAA,EACpB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAYT;AAAAA,EACZ,MAAM;AACR,GAEMU,IAAW;AAAA,EACf,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAYV;AAAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AACb,GAEMW,IAAgB;AAAA,EACpB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AACZ,GAEMC,IAAkB,CAACC,OAAS;AAAA,EAChC,OAAO,GAAGA,CAAG;AAAA,EACb,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,YAAY;AACd,IAEMC,IAAmB;AAAA,EACvB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,YAAYd;AAAAA,EACZ,YAAY;AACd;AAIA,SAASe,EAAe,EAAE,MAAAC,GAAM,OAAAC,GAAO,aAAAC,GAAa,aAAAC,GAAa,UAAAC,GAAU,aAAAC,GAAa,UAAAC,KAAY;AAClG,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK;AAG1C,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAOH,IAAUjB,IAAiBD;AAAA,MAClC,cAAc,MAAMmB,EAAW,EAAI;AAAA,MACnC,cAAc,MAAMA,EAAW,EAAK;AAAA,MAEpC,UAAA;AAAA,QAAA,gBAAAE,EAAC,OACC,EAAA,UAAA;AAAA,UAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,GAAA,GACxD,UAAA;AAAA,YAAC,gBAAAC,EAAA,OAAA,EAAI,OAAOpB,GAAmB,UAAKS,GAAA;AAAA,YACnC,gBAAAW,EAAA,MAAA,EAAG,OAAOnB,GAAiB,UAAMS,GAAA;AAAA,UAAA,GACpC;AAAA,UACC,gBAAAS,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,GAAG,YAAY,IAAI,WAAW,EACxF,GAAA,UAAA;AAAA,YAAAR,KAAgB,gBAAAS,EAAA,KAAA,EAAE,OAAOlB,GAAgB,UAAYS,GAAA;AAAA,YACrDI;AAAA,UAAA,GACH;AAAA,QAAA,GACF;AAAA,QACA,gBAAAI,EAAC,OAAI,EAAA,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,YAAY,GAAA,GAC/D,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAOjB;AAAA,cACP,SAASU;AAAA,cACT,cAAc,CAACQ,MAAM;AAAI,gBAAAA,EAAA,cAAc,MAAM,UAAU;AAAA,cAAQ;AAAA,cAC/D,cAAc,CAACA,MAAM;AAAI,gBAAAA,EAAA,cAAc,MAAM,UAAU;AAAA,cAAK;AAAA,cAE3D,UAAAT;AAAA,YAAA;AAAA,UACH;AAAA,UACCE,KACC,gBAAAK,EAAC,QAAK,EAAA,OAAOZ,GACX,UAAA;AAAA,YAAA,gBAAAa,EAAC,OAAI,EAAA,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,gBAAe,UAAA,gBAAAA,EAAC,QAAK,EAAA,GAAE,oDAAoD,CAAA,GAAE;AAAA,YAAM;AAAA,UAAA,GAE1I;AAAA,QAAA,GAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AAIA,MAAME,KAAiB,CAAC;AAAA,EACtB,UAAAC,IAAW;AAAA,EACX,gBAAAC,IAAiB;AAAA,EACjB,YAAAC,IAAa;AAAA,EACb,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACF,MAAM;AACE,QAAAC,IAAeN,IAAiBC,IAAc;AAGlD,SAAA,gBAAAN,EAAC,OAAI,EAAA,OAAOzB,GACV,UAAA;AAAA,IAAC,gBAAAyB,EAAA,MAAA,EAAG,OAAOxB,GAAc,UAAA;AAAA,MAAA;AAAA,MAAS4B;AAAA,IAAA,GAAS;AAAA,IAC1C,gBAAAH,EAAA,KAAA,EAAE,OAAOxB,GAAe,UAAqD,yDAAA;AAAA,IAE9E,gBAAAuB,EAAC,OAAI,EAAA,OAAOtB,GAEV,UAAA;AAAA,MAAA,gBAAAuB;AAAA,QAACZ;AAAA,QAAA;AAAA,UACC,MAAM,gBAAAY,EAACW,GAAO,EAAA,MAAM,GAAI,CAAA;AAAA,UACxB,OAAM;AAAA,UACN,aAAY;AAAA,UACZ,aAAY;AAAA,UACZ,UAAUL;AAAA,QAAA;AAAA,MACZ;AAAA,MAGA,gBAAAN;AAAA,QAACZ;AAAA,QAAA;AAAA,UACC,MAAM,gBAAAY,EAACY,GAAW,EAAA,MAAM,GAAI,CAAA;AAAA,UAC5B,OAAM;AAAA,UACN,aAAY;AAAA,UACZ,aAAY;AAAA,UACZ,UAAUL;AAAA,UAEV,UAAC,gBAAAR,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,GAAG,OAAO,OAAA,GAClE,UAAA;AAAA,YAAC,gBAAAC,EAAA,OAAA,EAAI,OAAOhB,GACV,UAAA,gBAAAgB,EAAC,SAAI,OAAOf,EAAgByB,CAAW,EAAA,CAAG,EAC5C,CAAA;AAAA,YACC,gBAAAX,EAAA,QAAA,EAAK,OAAO,EAAE,UAAU,IAAI,OAAO,qBAAqB,YAAY1B,GAAI,YAAY,SAAA,GACnF,UAAA;AAAA,cAAC,gBAAA2B,EAAA,UAAA,EAAO,OAAO,EAAE,OAAO,oBAAoB,YAAY,IAAA,GAAQ,UAAeI,EAAA,CAAA;AAAA,cAAS;AAAA,cAAKC;AAAA,cAAW;AAAA,YAAA,GAC1G;AAAA,UAAA,GACF;AAAA,QAAA;AAAA,MACF;AAAA,MAGA,gBAAAL;AAAA,QAACZ;AAAA,QAAA;AAAA,UACC,MAAM,gBAAAY,EAACa,GAAQ,EAAA,MAAM,GAAI,CAAA;AAAA,UACzB,OAAM;AAAA,UACN,aAAY;AAAA,UACZ,aAAY;AAAA,UACZ,UAAUL;AAAA,UACV,aAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAGA,gBAAAR;AAAA,QAACZ;AAAA,QAAA;AAAA,UACC,MAAM,gBAAAY,EAACc,GAAM,EAAA,MAAM,GAAI,CAAA;AAAA,UACvB,OAAM;AAAA,UACN,aAAY;AAAA,UACZ,aAAY;AAAA,UACZ,UAAUL;AAAA,QAAA;AAAA,MACZ;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ,GCzPMpC,IAAK,oBAILC,IAAiB;AAAA,EACrB,YAAYD;AACd,GAEM0C,IAAoB;AAAA,EACxB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY1C;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AACd,GAEM2C,IAAuB;AAAA,EAC3B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,YAAY3C;AAAA,EACZ,QAAQ;AAAA,EACR,YAAY;AACd,GAEM4C,IAAgB;AAAA,EACpB,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,WAAW;AAAA,EACX,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,SAAS;AACX,GAEMC,IAAqB;AAAA,EACzB,GAAGD;AAAA,EACH,aAAa;AAAA,EACb,YAAY;AACd,GAEME,IAAmB;AAAA,EACvB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAc;AAChB,GAEMC,IAAoB;AAAA,EACxB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY/C;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AACV,GAEMgD,IAAoB;AAAA,EACxB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAYhD;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AACb,GAEMiD,IAAoB;AAAA,EACxB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAYjD;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AACd,GAIMkD,KAAoB,CAAC;AAAA,EACzB,cAAAC;AAAA,EACA,yBAAAC,IAA0B;AAAA,EAC1B,eAAAC,IAAgB,EAAE,cAAc,GAAG,aAAa,GAAG,sBAAsB,GAAG;AAC9E,MAAM;AACJ,QAAM,CAACC,GAAUC,CAAW,IAAI9B,EAAS,EAAK,GACxC,CAAC+B,GAAmBC,CAAoB,IAAIhC,EAAS,EAAK,GAC1DiC,IAAeC,EAAO,IAAI,GAC1BC,KAAeP,KAAA,gBAAAA,EAAe,iBAAgB,GAC9CQ,KAAcR,KAAA,gBAAAA,EAAe,gBAAe,GAC5CS,KAAuBT,KAAA,gBAAAA,EAAe,yBAAwB,IAE9DU,IAAiB,CAACnC,MAAM;AAC5B,IAAAA,EAAE,eAAe,GACjB2B,EAAY,EAAI;AAAA,EAAA,GAGZS,IAAkB,MAAM;AAC5B,IAAAT,EAAY,EAAK;AAAA,EAAA,GAGbU,IAAa,CAACrC,MAAM;;AACxB,IAAAA,EAAE,eAAe,GACjB2B,EAAY,EAAK,GACjBE,EAAqB,EAAK;AACpB,UAAAS,KAAQC,IAAAvC,EAAE,iBAAF,gBAAAuC,EAAgB;AAC9B,IAAID,KAAA,QAAAA,EAAO,WACTf,KAAA,QAAAA,EAAee;AAAA,EACjB,GAGIE,IAAoB,MAAM;;AAC9B,KAAAD,IAAAT,EAAa,YAAb,QAAAS,EAAsB;AAAA,EAAM;AAa5B,SAAA,gBAAAzC,EAAC,OAAI,EAAA,OAAOzB,GACV,UAAA;AAAA,IAAC,gBAAA0B,EAAA,MAAA,EAAG,OAAOe,GAAmB,UAAoB,wBAAA;AAAA,IACjD,gBAAAf,EAAA,KAAA,EAAE,OAAOgB,GAAsB,UAEhC,qFAAA;AAAA,IAEA,gBAAAhB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAK+B;AAAA,QACL,MAAK;AAAA,QACL,QAAO;AAAA,QACP,UAAQ;AAAA,QACR,OAAO,EAAE,SAAS,OAAO;AAAA,QACzB,UAtBmB,CAAC9B,MAAM;AACxB,gBAAAsC,IAAQtC,EAAE,OAAO;AACvB,UAAIsC,KAAA,QAAAA,EAAO,WACTT,EAAqB,EAAK,GAC1BN,KAAA,QAAAA,EAAee,KAEjBtC,EAAE,OAAO,QAAQ;AAAA,QAAA;AAAA,MAgBH;AAAA,IACZ;AAAA,IAEA,gBAAAF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO4B,IAAWT,IAAqBD;AAAA,QACvC,YAAYmB;AAAA,QACZ,aAAaC;AAAA,QACb,QAAQC;AAAA,QACR,SAASG;AAAA,QAET,UAAA;AAAA,UAAC,gBAAAzC,EAAA,OAAA,EAAI,OAAOmB,GACV,UAAA,gBAAAnB,EAAC0C,KAAY,MAAM,IAAI,OAAM,qBAAA,CAAqB,EACpD,CAAA;AAAA,UACC,gBAAA1C,EAAA,KAAA,EAAE,OAAOoB,GAAmB,UAAuB,2BAAA;AAAA,UACpD,gBAAApB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAOqB;AAAA,cACP,SAAS,CAACpB,MAAM;AAAE,gBAAAA,EAAE,gBAAgB,GAAqBwC;cAAG;AAAA,cAC5D,cAAc,CAACxC,MAAM;AAAI,gBAAAA,EAAA,cAAc,MAAM,aAAa;AAAA,cAA4B;AAAA,cACtF,cAAc,CAACA,MAAM;AAAI,gBAAAA,EAAA,cAAc,MAAM,aAAa;AAAA,cAAqB;AAAA,cAChF,UAAA;AAAA,YAAA;AAAA,UAED;AAAA,UACC,gBAAAD,EAAA,KAAA,EAAE,OAAOsB,GAAmB,UAAsC,0CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACrE;AAAA,IAECG,KAA2B,CAACI,KAC3B,gBAAA9B;AAAA,MAAC;AAAA,MAAA;AAAA,QACD,OAAO;AAAA,UACL,WAAW;AAAA,UACX,cAAc;AAAA,UACd,QAAQ;AAAA,UACR,YAAY;AAAA,UACZ,SAAS;AAAA,QACX;AAAA,QACE,UAAA;AAAA,UAAC,gBAAAA,EAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAgB,iBAAiB,KAAK,GAAA,GACzF,UAAA;AAAA,YAAA,gBAAAC,EAAC,KAAE,EAAA,OAAO,EAAE,UAAU,IAAI,YAAY,KAAK,YAAY3B,GAAI,OAAO,qBAAqB,GAAG,UAAa,iBAAA;AAAA,YACvG,gBAAA2B;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,OAAO;AAAA,kBACL,SAAS;AAAA,kBACT,YAAY;AAAA,kBAAU,gBAAgB;AAAA,kBAAU,OAAO;AAAA,kBAAI,QAAQ;AAAA,kBAAI,cAAc;AAAA,kBAAI,YAAY;AAAA,kBAAqB,QAAQ;AAAA,kBAClI,QAAQ;AAAA,kBACR,SAAS;AAAA,kBACT,SAAS;AAAA,kBACT,QAAQ;AAAA,gBACV;AAAA,gBACA,SAAS,MAAM8B,EAAqB,EAAI;AAAA,gBAExC,UAAC,gBAAA9B,EAAA2C,GAAA,EAAE,MAAM,IAAI,OAAM,sBAAqB;AAAA,cAAA;AAAA,YAC1C;AAAA,UAAA,GACF;AAAA,UACA,gBAAA3C,EAAC,OAAE,OAAO,EAAE,UAAU,IAAI,YAAY,KAAK,YAAY3B,GAAI,OAAO,sBAAsB,WAAW,EAAA,GAChG,UAAc6D,IAAA,KAAKD,IAAe,IAC/B,GAAGA,CAAY,QAAQA,IAAe,IAAI,UAAU,KAAK,8BAA8BC,CAAW,QAAQA,IAAc,IAAI,UAAU,KAAK,aAC3IA,IAAc,IACZ,GAAGA,CAAW,QAAQA,IAAc,IAAI,MAAM,EAAE,uBAChDD,IAAe,IACb,GAAGA,CAAY,sCACf,sCACV,CAAA;AAAA,UACA,gBAAAjC,EAAC,KAAE,EAAA,WAAU,8BACV,UAAAkC,IAAc,IACX,kBAAkBC,KAAwB,uBAAuB,MACjE,6HACN,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
|