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.
@@ -1,34 +1,34 @@
1
- import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
- import { useState as m, useRef as x } from "react";
3
- import { Upload as S, CircleUser as w, Compass as z, Link2 as C, CloudUpload as k } from "lucide-react";
4
- const a = "var(--font-sans)", W = {
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: a,
6
+ fontFamily: d,
7
7
  minHeight: "100vh",
8
8
  background: "var(--grey-white)",
9
9
  boxSizing: "border-box"
10
- }, D = {
10
+ }, j = {
11
11
  fontSize: "var(--text-4xl)",
12
12
  fontWeight: "var(--font-bold)",
13
- fontFamily: a,
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
- }, H = {
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: a
26
- }, I = {
25
+ fontFamily: d
26
+ }, A = {
27
27
  display: "grid",
28
28
  gridTemplateColumns: "1fr 1fr",
29
29
  gap: 12,
30
30
  marginTop: "36px"
31
- }, v = {
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
- }, M = {
46
- ...v,
45
+ }, B = {
46
+ ...x,
47
47
  boxShadow: "var(--shadow-sm)"
48
- }, T = {
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
- }, F = {
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: a,
63
+ fontFamily: d,
64
64
  margin: 0
65
- }, L = {
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: a,
72
+ fontFamily: d,
73
73
  flex: "1 0 0"
74
- }, A = {
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: a,
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
- }, R = {
94
+ }, O = {
95
95
  flex: 1,
96
96
  height: 8,
97
97
  borderRadius: 4,
98
98
  background: "var(--border)",
99
99
  overflow: "hidden"
100
- }, B = (o) => ({
101
- width: `${o}%`,
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
- }), E = {
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: a,
113
+ fontFamily: d,
114
114
  marginLeft: 12
115
115
  };
116
- function y({ icon: o, title: l, description: r, buttonLabel: s, onAction: g, recommended: h, children: p }) {
117
- const [d, f] = m(!1);
118
- return /* @__PURE__ */ n(
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: d ? M : v,
122
- onMouseEnter: () => f(!0),
123
- onMouseLeave: () => f(!1),
121
+ style: f ? B : x,
122
+ onMouseEnter: () => s(!0),
123
+ onMouseLeave: () => s(!1),
124
124
  children: [
125
- /* @__PURE__ */ n("div", { children: [
126
- /* @__PURE__ */ n("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
127
- /* @__PURE__ */ e("div", { style: T, children: o }),
128
- /* @__PURE__ */ e("h3", { style: F, children: l })
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__ */ n("div", { style: { display: "flex", flexDirection: "column", gap: 4, marginLeft: 52, marginTop: 4 }, children: [
131
- r && /* @__PURE__ */ e("p", { style: L, children: r }),
132
- p
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__ */ n("div", { style: { display: "flex", alignItems: "center", marginLeft: 52 }, children: [
135
+ /* @__PURE__ */ o("div", { style: { display: "flex", alignItems: "center", marginLeft: 52 }, children: [
136
136
  /* @__PURE__ */ e(
137
137
  "button",
138
138
  {
139
- style: A,
140
- onClick: g,
141
- onMouseEnter: (t) => {
142
- t.currentTarget.style.opacity = "0.85";
139
+ style: P,
140
+ onClick: c,
141
+ onMouseEnter: (i) => {
142
+ i.currentTarget.style.opacity = "0.85";
143
143
  },
144
- onMouseLeave: (t) => {
145
- t.currentTarget.style.opacity = "1";
144
+ onMouseLeave: (i) => {
145
+ i.currentTarget.style.opacity = "1";
146
146
  },
147
- children: s
147
+ children: p
148
148
  }
149
149
  ),
150
- h && /* @__PURE__ */ n("span", { style: E, children: [
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 Q = ({
160
- userName: o = "Will",
161
- stepsCompleted: l = 4,
162
- totalSteps: r = 6,
163
- onUpload: s,
164
- onContinue: g,
165
- onExplore: h,
166
- onConnect: p
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 d = l / r * 100;
169
- return /* @__PURE__ */ n("div", { style: W, children: [
170
- /* @__PURE__ */ n("h1", { style: D, children: [
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
- o
172
+ r
173
173
  ] }),
174
- /* @__PURE__ */ e("p", { style: H, children: "Get started with your project or explore new features" }),
175
- /* @__PURE__ */ n("div", { style: I, children: [
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(S, { size: 24 }),
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: s
183
+ onAction: p
184
184
  }
185
185
  ),
186
186
  /* @__PURE__ */ e(
187
187
  y,
188
188
  {
189
- icon: /* @__PURE__ */ e(w, { size: 24 }),
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: g,
194
- children: /* @__PURE__ */ n("div", { style: { display: "flex", alignItems: "center", gap: 8, width: "100%" }, children: [
195
- /* @__PURE__ */ e("div", { style: R, children: /* @__PURE__ */ e("div", { style: B(d) }) }),
196
- /* @__PURE__ */ n("span", { style: { fontSize: 12, color: "var(--text-muted)", fontFamily: a, whiteSpace: "nowrap" }, children: [
197
- /* @__PURE__ */ e("strong", { style: { color: "var(--text-base)", fontWeight: 600 }, children: l }),
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
- r,
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(z, { size: 24 }),
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: h,
212
+ onAction: u,
213
213
  recommended: !0
214
214
  }
215
215
  ),
216
216
  /* @__PURE__ */ e(
217
217
  y,
218
218
  {
219
- icon: /* @__PURE__ */ e(C, { size: 24 }),
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: p
223
+ onAction: g
224
224
  }
225
225
  )
226
226
  ] })
227
227
  ] });
228
- }, c = "var(--font-sans)", j = {
229
- fontFamily: c
230
- }, U = {
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: c,
234
+ fontFamily: l,
235
235
  color: "var(--grey-strong)",
236
236
  margin: 0,
237
237
  lineHeight: "normal"
238
- }, P = {
238
+ }, N = {
239
239
  fontSize: 13,
240
240
  fontWeight: 400,
241
241
  fontStyle: "normal",
242
242
  color: "var(--color-text-secondary)",
243
- fontFamily: c,
243
+ fontFamily: l,
244
244
  margin: "4px 0 0",
245
245
  lineHeight: "140%"
246
- }, b = {
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
- }, O = {
262
- ...b,
261
+ }, X = {
262
+ ...w,
263
263
  borderColor: "var(--color-green)",
264
264
  background: "var(--color-green-ring)"
265
- }, V = {
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: c,
278
+ fontFamily: l,
279
279
  color: "var(--grey-strong)",
280
280
  textAlign: "center",
281
281
  lineHeight: "28px",
282
282
  margin: 0
283
- }, G = {
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: c,
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
- }, q = {
302
+ }, Z = {
303
303
  fontSize: 14,
304
304
  fontWeight: 400,
305
- fontFamily: c,
305
+ fontFamily: l,
306
306
  color: "var(--grey-muted)",
307
307
  textAlign: "center",
308
308
  marginTop: 16,
309
309
  lineHeight: "140%"
310
- }, X = ({ onFileSelect: o }) => {
311
- const [l, r] = m(!1), s = x(null), g = (t) => {
312
- t.preventDefault(), r(!0);
313
- }, h = () => {
314
- r(!1);
315
- }, p = (t) => {
316
- var u;
317
- t.preventDefault(), r(!1);
318
- const i = (u = t.dataTransfer) == null ? void 0 : u.files;
319
- i != null && i.length && (o == null || o(i));
320
- }, d = () => {
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 = s.current) == null || t.click();
326
+ (t = f.current) == null || t.click();
323
327
  };
324
- return /* @__PURE__ */ n("div", { style: j, children: [
325
- /* @__PURE__ */ e("h2", { style: U, children: "Evaluate Interaction" }),
326
- /* @__PURE__ */ e("p", { style: P, children: "Upload interactions to generate insights, explore results, and identify patterns." }),
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: s,
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 i = t.target.files;
337
- i != null && i.length && (o == null || o(i)), t.target.value = "";
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__ */ n(
345
+ /* @__PURE__ */ o(
342
346
  "div",
343
347
  {
344
- style: l ? O : b,
345
- onDragOver: g,
346
- onDragLeave: h,
347
- onDrop: p,
348
- onClick: d,
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: V, children: /* @__PURE__ */ e(k, { size: 32, color: "var(--grey-strong)" }) }),
351
- /* @__PURE__ */ e("p", { style: $, children: "Drop your file here, or" }),
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: G,
360
+ style: Q,
357
361
  onClick: (t) => {
358
- t.stopPropagation(), d();
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: q, children: "Supports: MP3, WAV, WMA, MP4, and WEBM" })
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
- Q as U,
377
- X as a
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":"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"}