@fanfare-io/fanfare-sdk-react 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/compositions/outcome-panel.d.ts +12 -1
- package/dist/index.js +639 -611
- package/dist/styles/base.css +1 -2253
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as t, Fragment as Ce, jsxs as c } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
3
|
+
import Ka from "@fanfare-io/fanfare-sdk-core";
|
|
4
4
|
import * as s from "react";
|
|
5
|
-
import { createContext as Lt, useContext as At, useMemo as re, useState as _e, useRef as gt, useEffect as Ie, useCallback as O, useSyncExternalStore as
|
|
6
|
-
import { getLocaleMessages as
|
|
7
|
-
import { RTL_LOCALES as
|
|
8
|
-
import { getGates as
|
|
5
|
+
import { createContext as Lt, useContext as At, useMemo as re, useState as _e, useRef as gt, useEffect as Ie, useCallback as O, useSyncExternalStore as Za, forwardRef as wt, useLayoutEffect as Ya } from "react";
|
|
6
|
+
import { getLocaleMessages as Ga, mergeTranslations as Kt, createTranslateFunction as sa, isRTLLocale as Ja, en as Qa, resolveLocaleMapValue as Xa, normalizeLocale as er } from "@fanfare-io/fanfare-sdk-i18n";
|
|
7
|
+
import { RTL_LOCALES as Mo, isRTLLocale as To } from "@fanfare-io/fanfare-sdk-i18n";
|
|
8
|
+
import { getGates as la, getParticipation as tr, getDistribution as ar, getSequenceId as rr, getSequencePhase as nr } from "@fanfare-io/fanfare-sdk-core/internals";
|
|
9
9
|
import * as dt from "valibot";
|
|
10
|
-
import { clsx as
|
|
11
|
-
import { extendTailwindMerge as
|
|
10
|
+
import { clsx as or } from "clsx";
|
|
11
|
+
import { extendTailwindMerge as fr } from "tailwind-merge";
|
|
12
12
|
import { cva as ne } from "class-variance-authority";
|
|
13
13
|
import { AnimatePresence as vt, motion as W } from "motion/react";
|
|
14
|
-
import { mergeBrandTheme as
|
|
15
|
-
import
|
|
14
|
+
import { mergeBrandTheme as ir, DefaultBrandTheme as sr } from "@fanfare-io/fanfare-sdk-core/theme";
|
|
15
|
+
import lr from "canvas-confetti";
|
|
16
16
|
import { atom as ze } from "nanostores";
|
|
17
|
-
import { bucketFromEtaSeconds as
|
|
18
|
-
import { createPortal as
|
|
19
|
-
const
|
|
17
|
+
import { bucketFromEtaSeconds as cr, bucketI18nKey as dr } from "@fanfare-io/fanfare-sdk-core/queues";
|
|
18
|
+
import { createPortal as ur } from "react-dom";
|
|
19
|
+
const ca = Lt(null), da = Qa, pr = sa(da, "en"), gr = {
|
|
20
20
|
locale: "en",
|
|
21
|
-
messages:
|
|
21
|
+
messages: da,
|
|
22
22
|
isRoot: !0,
|
|
23
|
-
t:
|
|
23
|
+
t: pr,
|
|
24
24
|
dir: "ltr",
|
|
25
25
|
experienceTranslations: null,
|
|
26
26
|
setExperienceTranslations: () => {
|
|
27
27
|
}
|
|
28
|
-
},
|
|
28
|
+
}, ua = Lt(gr);
|
|
29
29
|
function It() {
|
|
30
|
-
return At(
|
|
30
|
+
return At(ua);
|
|
31
31
|
}
|
|
32
|
-
function
|
|
32
|
+
function Y() {
|
|
33
33
|
const { t: e, locale: a, dir: r } = It();
|
|
34
34
|
return { t: e, locale: a, dir: r };
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function mr(e, a, r, n) {
|
|
37
37
|
const o = It();
|
|
38
38
|
return re(() => {
|
|
39
|
-
const i = e ?? o.locale, f = e && e !== o.locale ?
|
|
39
|
+
const i = e ?? o.locale, f = e && e !== o.locale ? Ga(e) : o.messages, l = Kt(
|
|
40
40
|
f,
|
|
41
41
|
r ?? o.experienceTranslations ?? void 0
|
|
42
|
-
), d = Kt(l, a), u =
|
|
42
|
+
), d = Kt(l, a), u = sa(d, i), y = Ja(i) ? "rtl" : "ltr";
|
|
43
43
|
return {
|
|
44
44
|
locale: i,
|
|
45
45
|
messages: d,
|
|
@@ -51,11 +51,21 @@ function pr(e, a, r, n) {
|
|
|
51
51
|
};
|
|
52
52
|
}, [o, e, a, r, n]);
|
|
53
53
|
}
|
|
54
|
-
function
|
|
55
|
-
const [n, o] = _e(null), i =
|
|
56
|
-
return /* @__PURE__ */ t(
|
|
54
|
+
function pa({ locale: e, translations: a, children: r }) {
|
|
55
|
+
const [n, o] = _e(null), i = mr(e, a, n, o);
|
|
56
|
+
return /* @__PURE__ */ t(ua.Provider, { value: i, children: r });
|
|
57
57
|
}
|
|
58
|
-
|
|
58
|
+
let Zt = Promise.resolve();
|
|
59
|
+
function Yt(e) {
|
|
60
|
+
const a = Zt.then(e, e);
|
|
61
|
+
return Zt = a.then(
|
|
62
|
+
() => {
|
|
63
|
+
},
|
|
64
|
+
() => {
|
|
65
|
+
}
|
|
66
|
+
), a;
|
|
67
|
+
}
|
|
68
|
+
function No({
|
|
59
69
|
children: e,
|
|
60
70
|
autoRestore: a = !0,
|
|
61
71
|
autoResume: r = !0,
|
|
@@ -74,7 +84,7 @@ function yo({
|
|
|
74
84
|
features: h,
|
|
75
85
|
beacon: w
|
|
76
86
|
}) {
|
|
77
|
-
const [p, v] = _e(null), [
|
|
87
|
+
const [p, v] = _e(null), [M, E] = _e(!0), _ = gt(null), S = re(
|
|
78
88
|
() => ({
|
|
79
89
|
organizationId: f,
|
|
80
90
|
publishableKey: l,
|
|
@@ -91,36 +101,37 @@ function yo({
|
|
|
91
101
|
[f, l, d, u, y, g, b, m, x, h, w]
|
|
92
102
|
);
|
|
93
103
|
return Ie(() => {
|
|
94
|
-
let
|
|
95
|
-
v(null),
|
|
104
|
+
let D = !0;
|
|
105
|
+
v(null), E(!0);
|
|
96
106
|
async function N() {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
107
|
+
if (D)
|
|
108
|
+
try {
|
|
109
|
+
const T = await Ka(S);
|
|
110
|
+
if (!D) {
|
|
111
|
+
await T.destroy();
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
_.current = T, a && T.auth.getSession() && r && await T.journeys.resumeAll(), D && (v(T), E(!1));
|
|
115
|
+
} catch (T) {
|
|
116
|
+
console.error("Failed to initialize Fanfare SDK:", T), D && E(!1);
|
|
102
117
|
}
|
|
103
|
-
_.current = T, a && T.auth.getSession() && r && await T.journeys.resumeAll(), V && (v(T), M(!1));
|
|
104
|
-
} catch (T) {
|
|
105
|
-
console.error("Failed to initialize Fanfare SDK:", T), V && M(!1);
|
|
106
|
-
}
|
|
107
118
|
}
|
|
108
|
-
return N
|
|
109
|
-
|
|
119
|
+
return Yt(N), () => {
|
|
120
|
+
D = !1;
|
|
110
121
|
const T = _.current;
|
|
111
|
-
_.current = null, T
|
|
122
|
+
_.current = null, T && Yt(() => T.destroy());
|
|
112
123
|
};
|
|
113
|
-
}, [S, a, r]),
|
|
124
|
+
}, [S, a, r]), M ? /* @__PURE__ */ t(Ce, { children: n }) : p ? /* @__PURE__ */ t(ca.Provider, { value: p, children: /* @__PURE__ */ t(pa, { locale: o, translations: i, children: e }) }) : (console.error("Fanfare SDK failed to initialize"), null);
|
|
114
125
|
}
|
|
115
126
|
function bt() {
|
|
116
|
-
const e = At(
|
|
127
|
+
const e = At(ca);
|
|
117
128
|
if (!e)
|
|
118
129
|
throw new Error(
|
|
119
130
|
"useFanfare must be used within a FanfareProvider. Make sure your component is wrapped with <FanfareProvider>"
|
|
120
131
|
);
|
|
121
132
|
return e;
|
|
122
133
|
}
|
|
123
|
-
function
|
|
134
|
+
function So() {
|
|
124
135
|
const e = bt(), [a, r] = _e(e.auth.check());
|
|
125
136
|
Ie(() => {
|
|
126
137
|
const l = e.on("auth:authenticated", () => {
|
|
@@ -152,7 +163,7 @@ function ko() {
|
|
|
152
163
|
logout: f
|
|
153
164
|
};
|
|
154
165
|
}
|
|
155
|
-
function
|
|
166
|
+
function ga(e, a) {
|
|
156
167
|
const r = bt(), { locale: n, setExperienceTranslations: o } = It(), i = gt(null), f = gt(a), [l, d] = _e(null), [u, y] = _e(null), [g, b] = _e(null), [m, x] = _e(null);
|
|
157
168
|
Ie(() => {
|
|
158
169
|
f.current = a;
|
|
@@ -163,10 +174,10 @@ function ua(e, a) {
|
|
|
163
174
|
}
|
|
164
175
|
const w = r.journeys.get(e);
|
|
165
176
|
i.current = w, d(w), y(w.snapshot$.get()), b(w.view$.get());
|
|
166
|
-
const p = w.snapshot$.listen((
|
|
167
|
-
y(
|
|
168
|
-
}), v = w.view$.listen((
|
|
169
|
-
b(
|
|
177
|
+
const p = w.snapshot$.listen((M) => {
|
|
178
|
+
y(M);
|
|
179
|
+
}), v = w.view$.listen((M) => {
|
|
180
|
+
b(M);
|
|
170
181
|
});
|
|
171
182
|
return () => {
|
|
172
183
|
p(), v();
|
|
@@ -179,7 +190,7 @@ function ua(e, a) {
|
|
|
179
190
|
let w = !1;
|
|
180
191
|
const p = u?.experience?.experience?.i18n;
|
|
181
192
|
if (p) {
|
|
182
|
-
const v =
|
|
193
|
+
const v = Xa(p, n);
|
|
183
194
|
o(v ?? null);
|
|
184
195
|
} else w || o(null);
|
|
185
196
|
return () => {
|
|
@@ -192,23 +203,23 @@ function ua(e, a) {
|
|
|
192
203
|
throw new Error("experienceId is required to start an experience journey");
|
|
193
204
|
const p = i.current ?? r.journeys.get(e);
|
|
194
205
|
i.current = p, d(p), x(null);
|
|
195
|
-
const v = f.current,
|
|
206
|
+
const v = f.current, M = {
|
|
196
207
|
accessCode: w?.accessCode ?? v?.accessCode,
|
|
197
208
|
autoEnterWaitlist: w?.autoEnterWaitlist ?? v?.autoEnterWaitlist
|
|
198
209
|
};
|
|
199
210
|
try {
|
|
200
|
-
const
|
|
201
|
-
if (
|
|
202
|
-
const _ =
|
|
203
|
-
await
|
|
211
|
+
const E = p.view$.get();
|
|
212
|
+
if (E.journeyStage === "ready") {
|
|
213
|
+
const _ = M.accessCode ? { accessCode: M.accessCode } : void 0;
|
|
214
|
+
await E.start(_);
|
|
204
215
|
}
|
|
205
|
-
if (
|
|
216
|
+
if (M.autoEnterWaitlist) {
|
|
206
217
|
const _ = p.view$.get();
|
|
207
218
|
_.journeyStage === "routed" && _.sequence.phase === "enterable" && _.sequence.mechanism === "waitlist" && await _.sequence.enter();
|
|
208
219
|
}
|
|
209
220
|
return p.view$.get();
|
|
210
|
-
} catch (
|
|
211
|
-
throw x(
|
|
221
|
+
} catch (E) {
|
|
222
|
+
throw x(E instanceof Error ? E.message : "Unknown error"), E;
|
|
212
223
|
}
|
|
213
224
|
},
|
|
214
225
|
[e, r]
|
|
@@ -223,21 +234,21 @@ function ua(e, a) {
|
|
|
223
234
|
start: h
|
|
224
235
|
};
|
|
225
236
|
}
|
|
226
|
-
function
|
|
237
|
+
function Ee(e) {
|
|
227
238
|
const a = O((n) => e.listen(n), [e]), r = O(() => e.get(), [e]);
|
|
228
|
-
return
|
|
239
|
+
return Za(a, r, r);
|
|
229
240
|
}
|
|
230
|
-
function
|
|
231
|
-
return
|
|
241
|
+
function Co(e) {
|
|
242
|
+
return Ee(e.snapshot$);
|
|
232
243
|
}
|
|
233
|
-
function
|
|
234
|
-
const n =
|
|
244
|
+
function hr({ experienceId: e, autoStart: a, children: r }) {
|
|
245
|
+
const n = ga(e, {
|
|
235
246
|
autoStart: a
|
|
236
247
|
});
|
|
237
248
|
return /* @__PURE__ */ t(Ce, { children: r(n) });
|
|
238
249
|
}
|
|
239
|
-
function
|
|
240
|
-
return /* @__PURE__ */ t(
|
|
250
|
+
function Do({ experienceId: e, autoStart: a, renderHeader: r }) {
|
|
251
|
+
return /* @__PURE__ */ t(hr, { experienceId: e, autoStart: a, children: ({ journey: n, view: o, snapshot: i, error: f, start: l }) => {
|
|
241
252
|
const d = [], u = [];
|
|
242
253
|
if (o?.journeyStage === "ready" && d.push("start"), o?.journeyStage === "gated" && d.push("reroute", "retry"), o?.journeyStage === "routed") {
|
|
243
254
|
d.push("reroute", "retry");
|
|
@@ -247,10 +258,10 @@ function No({ experienceId: e, autoStart: a, renderHeader: r }) {
|
|
|
247
258
|
const y = i ? {
|
|
248
259
|
experienceId: i.experienceId,
|
|
249
260
|
accessCode: i.accessCode,
|
|
250
|
-
sequenceId:
|
|
251
|
-
distribution:
|
|
252
|
-
participation:
|
|
253
|
-
gates:
|
|
261
|
+
sequenceId: rr(i),
|
|
262
|
+
distribution: ar(i),
|
|
263
|
+
participation: tr(i),
|
|
264
|
+
gates: la(i)
|
|
254
265
|
} : null, g = (b) => {
|
|
255
266
|
if (!n) return;
|
|
256
267
|
const m = n.view$.get(), x = {};
|
|
@@ -324,7 +335,7 @@ function No({ experienceId: e, autoStart: a, renderHeader: r }) {
|
|
|
324
335
|
] }),
|
|
325
336
|
/* @__PURE__ */ c("div", { children: [
|
|
326
337
|
"Sequence phase: ",
|
|
327
|
-
|
|
338
|
+
nr(i)
|
|
328
339
|
] }),
|
|
329
340
|
/* @__PURE__ */ c("div", { children: [
|
|
330
341
|
"Journey actions: ",
|
|
@@ -387,59 +398,59 @@ function _t(e) {
|
|
|
387
398
|
const r = a.replace(/\D/g, "").slice(0, 10);
|
|
388
399
|
return r.length === 0 ? "" : r.length <= 3 ? `(${r}` : r.length <= 6 ? `(${r.slice(0, 3)}) ${r.slice(3)}` : `(${r.slice(0, 3)}) ${r.slice(3, 6)}-${r.slice(6, 10)}`;
|
|
389
400
|
}
|
|
390
|
-
function
|
|
401
|
+
function wr(e) {
|
|
391
402
|
if (!e) return null;
|
|
392
403
|
const a = zt(e), r = a.replace(/\D/g, "");
|
|
393
404
|
return a.startsWith("+") ? r.length < 10 || r.length > 15 ? null : `+${r}` : r.length === 10 ? `+1${r}` : null;
|
|
394
405
|
}
|
|
395
|
-
function
|
|
406
|
+
function vr(e) {
|
|
396
407
|
const a = e.replace(/\D/g, "");
|
|
397
408
|
return e.startsWith("+") ? a.length >= 10 && a.length <= 15 : a.length === 10;
|
|
398
409
|
}
|
|
399
|
-
const
|
|
410
|
+
const br = fr({
|
|
400
411
|
extend: {
|
|
401
412
|
classGroups: {
|
|
402
413
|
"font-size": ["text-xxs"]
|
|
403
414
|
}
|
|
404
415
|
}
|
|
405
416
|
});
|
|
406
|
-
function
|
|
407
|
-
return
|
|
417
|
+
function V(...e) {
|
|
418
|
+
return br(or(e));
|
|
408
419
|
}
|
|
409
|
-
function
|
|
420
|
+
function Gt(e, a) {
|
|
410
421
|
if (typeof e == "function")
|
|
411
422
|
return e(a);
|
|
412
423
|
e != null && (e.current = a);
|
|
413
424
|
}
|
|
414
|
-
function
|
|
425
|
+
function xr(...e) {
|
|
415
426
|
return (a) => {
|
|
416
427
|
let r = !1;
|
|
417
428
|
const n = e.map((o) => {
|
|
418
|
-
const i =
|
|
429
|
+
const i = Gt(o, a);
|
|
419
430
|
return !r && typeof i == "function" && (r = !0), i;
|
|
420
431
|
});
|
|
421
432
|
if (r)
|
|
422
433
|
return () => {
|
|
423
434
|
for (let o = 0; o < n.length; o++) {
|
|
424
435
|
const i = n[o];
|
|
425
|
-
typeof i == "function" ? i() :
|
|
436
|
+
typeof i == "function" ? i() : Gt(e[o], null);
|
|
426
437
|
}
|
|
427
438
|
};
|
|
428
439
|
};
|
|
429
440
|
}
|
|
430
|
-
var
|
|
431
|
-
function
|
|
441
|
+
var yr = /* @__PURE__ */ Symbol.for("react.lazy"), mt = s[" use ".trim().toString()];
|
|
442
|
+
function kr(e) {
|
|
432
443
|
return typeof e == "object" && e !== null && "then" in e;
|
|
433
444
|
}
|
|
434
|
-
function
|
|
435
|
-
return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof ===
|
|
445
|
+
function ma(e) {
|
|
446
|
+
return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof === yr && "_payload" in e && kr(e._payload);
|
|
436
447
|
}
|
|
437
448
|
// @__NO_SIDE_EFFECTS__
|
|
438
|
-
function
|
|
439
|
-
const a = /* @__PURE__ */
|
|
449
|
+
function _r(e) {
|
|
450
|
+
const a = /* @__PURE__ */ Sr(e), r = s.forwardRef((n, o) => {
|
|
440
451
|
let { children: i, ...f } = n;
|
|
441
|
-
|
|
442
|
-
const l = s.Children.toArray(i), d = l.find(
|
|
452
|
+
ma(i) && typeof mt == "function" && (i = mt(i._payload));
|
|
453
|
+
const l = s.Children.toArray(i), d = l.find(Dr);
|
|
443
454
|
if (d) {
|
|
444
455
|
const u = d.props.children, y = l.map((g) => g === d ? s.Children.count(u) > 1 ? s.Children.only(null) : s.isValidElement(u) ? u.props.children : null : g);
|
|
445
456
|
return /* @__PURE__ */ t(a, { ...f, ref: o, children: s.isValidElement(u) ? s.cloneElement(u, void 0, y) : null });
|
|
@@ -448,24 +459,24 @@ function yr(e) {
|
|
|
448
459
|
});
|
|
449
460
|
return r.displayName = `${e}.Slot`, r;
|
|
450
461
|
}
|
|
451
|
-
var
|
|
462
|
+
var Nr = /* @__PURE__ */ _r("Slot");
|
|
452
463
|
// @__NO_SIDE_EFFECTS__
|
|
453
|
-
function
|
|
464
|
+
function Sr(e) {
|
|
454
465
|
const a = s.forwardRef((r, n) => {
|
|
455
466
|
let { children: o, ...i } = r;
|
|
456
|
-
if (
|
|
457
|
-
const f =
|
|
458
|
-
return o.type !== s.Fragment && (l.ref = n ?
|
|
467
|
+
if (ma(o) && typeof mt == "function" && (o = mt(o._payload)), s.isValidElement(o)) {
|
|
468
|
+
const f = Er(o), l = Vr(i, o.props);
|
|
469
|
+
return o.type !== s.Fragment && (l.ref = n ? xr(n, f) : f), s.cloneElement(o, l);
|
|
459
470
|
}
|
|
460
471
|
return s.Children.count(o) > 1 ? s.Children.only(null) : null;
|
|
461
472
|
});
|
|
462
473
|
return a.displayName = `${e}.SlotClone`, a;
|
|
463
474
|
}
|
|
464
|
-
var
|
|
465
|
-
function
|
|
466
|
-
return s.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId ===
|
|
475
|
+
var Cr = /* @__PURE__ */ Symbol("radix.slottable");
|
|
476
|
+
function Dr(e) {
|
|
477
|
+
return s.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === Cr;
|
|
467
478
|
}
|
|
468
|
-
function
|
|
479
|
+
function Vr(e, a) {
|
|
469
480
|
const r = { ...a };
|
|
470
481
|
for (const n in a) {
|
|
471
482
|
const o = e[n], i = a[n];
|
|
@@ -476,24 +487,24 @@ function Cr(e, a) {
|
|
|
476
487
|
}
|
|
477
488
|
return { ...e, ...r };
|
|
478
489
|
}
|
|
479
|
-
function
|
|
490
|
+
function Er(e) {
|
|
480
491
|
let a = Object.getOwnPropertyDescriptor(e.props, "ref")?.get, r = a && "isReactWarning" in a && a.isReactWarning;
|
|
481
492
|
return r ? e.ref : (a = Object.getOwnPropertyDescriptor(e, "ref")?.get, r = a && "isReactWarning" in a && a.isReactWarning, r ? e.props.ref : e.props.ref || e.ref);
|
|
482
493
|
}
|
|
483
|
-
const Qe = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches,
|
|
494
|
+
const Qe = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches, Jt = {
|
|
484
495
|
initial: { opacity: 0 },
|
|
485
496
|
animate: { opacity: 1 },
|
|
486
497
|
exit: { opacity: 0 },
|
|
487
498
|
transition: { duration: 0.2 }
|
|
488
|
-
},
|
|
499
|
+
}, Mr = {
|
|
489
500
|
initial: { opacity: 0 },
|
|
490
501
|
animate: { opacity: 1 },
|
|
491
502
|
transition: { duration: 0.25, ease: "easeOut" }
|
|
492
|
-
},
|
|
503
|
+
}, Tr = {
|
|
493
504
|
initial: { opacity: 1 },
|
|
494
505
|
animate: { opacity: 1 },
|
|
495
506
|
transition: { duration: 0 }
|
|
496
|
-
}, he = () => Qe() ?
|
|
507
|
+
}, he = () => Qe() ? Tr : Mr, oe = {
|
|
497
508
|
// Core colors
|
|
498
509
|
primary: "--ff-color-primary",
|
|
499
510
|
primaryForeground: "--ff-color-primary-foreground",
|
|
@@ -515,18 +526,18 @@ const Qe = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-
|
|
|
515
526
|
// Typography
|
|
516
527
|
fontFamily: "--ff-font-sans",
|
|
517
528
|
fontHeading: "--ff-font-heading"
|
|
518
|
-
},
|
|
519
|
-
theme:
|
|
529
|
+
}, Rr = {
|
|
530
|
+
theme: sr,
|
|
520
531
|
variant: "default",
|
|
521
532
|
isRoot: !0
|
|
522
|
-
}, Dt = Lt(
|
|
533
|
+
}, Dt = Lt(Rr);
|
|
523
534
|
function Xe() {
|
|
524
535
|
return At(Dt);
|
|
525
536
|
}
|
|
526
|
-
function
|
|
537
|
+
function Lr(e, a) {
|
|
527
538
|
const r = Xe();
|
|
528
539
|
return re(() => ({
|
|
529
|
-
theme: e ?
|
|
540
|
+
theme: e ? ir({ ...r.theme, ...e }) : r.theme,
|
|
530
541
|
variant: a ?? r.variant,
|
|
531
542
|
isRoot: !1
|
|
532
543
|
}), [r, e, a]);
|
|
@@ -539,7 +550,7 @@ function He(e) {
|
|
|
539
550
|
const n = parseInt(r.slice(0, 2), 16) / 255, o = parseInt(r.slice(2, 4), 16) / 255, i = parseInt(r.slice(4, 6), 16) / 255;
|
|
540
551
|
return 0.2126 * n + 0.7152 * o + 0.0722 * i > 0.5 ? "#111111" : "#ffffff";
|
|
541
552
|
}
|
|
542
|
-
function
|
|
553
|
+
function ha(e) {
|
|
543
554
|
const a = {};
|
|
544
555
|
if (e.primary !== void 0) {
|
|
545
556
|
a[oe.primary] = e.primary;
|
|
@@ -569,11 +580,11 @@ function ga(e) {
|
|
|
569
580
|
return e.fontFamily !== void 0 && (a[oe.fontFamily] = e.fontFamily, e.fontHeading === void 0 && (a[oe.fontHeading] = e.fontFamily)), e.fontHeading !== void 0 && (a[oe.fontHeading] = e.fontHeading), a;
|
|
570
581
|
}
|
|
571
582
|
function Vt({ theme: e, variant: a, as: r = "div", className: n, children: o }) {
|
|
572
|
-
const i = Xe(), f =
|
|
583
|
+
const i = Xe(), f = Lr(e, a), l = re(() => ha(e ?? {}), [e]);
|
|
573
584
|
return e !== void 0 || a !== void 0 || i.isRoot ? /* @__PURE__ */ t(Dt.Provider, { value: f, children: /* @__PURE__ */ t(
|
|
574
585
|
r,
|
|
575
586
|
{
|
|
576
|
-
className:
|
|
587
|
+
className: V("fanfare-themed", n),
|
|
577
588
|
style: l,
|
|
578
589
|
"data-fanfare-themed": !0,
|
|
579
590
|
"data-fanfare-variant": f.variant,
|
|
@@ -584,7 +595,7 @@ function Vt({ theme: e, variant: a, as: r = "div", className: n, children: o })
|
|
|
584
595
|
function me() {
|
|
585
596
|
return Xe().variant;
|
|
586
597
|
}
|
|
587
|
-
const
|
|
598
|
+
const Ar = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "m4.5 12.75l6 6l9-13.5" }) }), Ir = wt(Ar), zr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M6 18L18 6M6 6l12 12" }) }), Fr = wt(zr), jr = ne("ff:animate-spin ff:text-current", {
|
|
588
599
|
variants: {
|
|
589
600
|
size: {
|
|
590
601
|
sm: "ff:size-4",
|
|
@@ -610,7 +621,7 @@ const Rr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.
|
|
|
610
621
|
ref: n,
|
|
611
622
|
viewBox: "0 0 24 24",
|
|
612
623
|
xmlns: "http://www.w3.org/2000/svg",
|
|
613
|
-
className:
|
|
624
|
+
className: V(jr({ size: a, styleVariant: o }), e),
|
|
614
625
|
"data-slot": "spinner",
|
|
615
626
|
"data-size": a,
|
|
616
627
|
"aria-hidden": "true",
|
|
@@ -651,7 +662,7 @@ const Rr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.
|
|
|
651
662
|
);
|
|
652
663
|
});
|
|
653
664
|
De.displayName = "Spinner";
|
|
654
|
-
const
|
|
665
|
+
const Pr = ne(
|
|
655
666
|
[
|
|
656
667
|
"ff:relative ff:inline-flex ff:items-center ff:justify-center",
|
|
657
668
|
"ff:whitespace-nowrap ff:font-medium",
|
|
@@ -786,7 +797,7 @@ const Fr = ne(
|
|
|
786
797
|
children: d,
|
|
787
798
|
...u
|
|
788
799
|
}, y) => {
|
|
789
|
-
const g = o ?
|
|
800
|
+
const g = o ? Nr : "button", b = me(), [m, x] = s.useState(void 0);
|
|
790
801
|
s.useImperativeHandle(i, () => ({
|
|
791
802
|
success: () => x("success"),
|
|
792
803
|
failure: () => x("failure")
|
|
@@ -808,7 +819,7 @@ const Fr = ne(
|
|
|
808
819
|
"data-status": m || void 0,
|
|
809
820
|
"aria-busy": n || void 0,
|
|
810
821
|
"aria-disabled": h || void 0,
|
|
811
|
-
className:
|
|
822
|
+
className: V(Pr({ variant: a, size: r, styleVariant: b, className: e })),
|
|
812
823
|
disabled: h,
|
|
813
824
|
...u,
|
|
814
825
|
children: [
|
|
@@ -818,14 +829,14 @@ const Fr = ne(
|
|
|
818
829
|
{
|
|
819
830
|
"data-slot": "button-status",
|
|
820
831
|
className: "ff:pointer-events-none ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center",
|
|
821
|
-
children: /* @__PURE__ */ t(vt, { children: m === "success" ? /* @__PURE__ */ t(W.span, { ...
|
|
832
|
+
children: /* @__PURE__ */ t(vt, { children: m === "success" ? /* @__PURE__ */ t(W.span, { ...Jt, className: "ff:flex", children: /* @__PURE__ */ t(Ir, { className: "ff:size-5" }) }, "success") : /* @__PURE__ */ t(W.span, { ...Jt, className: "ff:flex", children: /* @__PURE__ */ t(Fr, { className: "ff:size-5" }) }, "failure") })
|
|
822
833
|
}
|
|
823
834
|
),
|
|
824
835
|
/* @__PURE__ */ t(
|
|
825
836
|
"span",
|
|
826
837
|
{
|
|
827
838
|
"data-slot": "button-content",
|
|
828
|
-
className:
|
|
839
|
+
className: V(
|
|
829
840
|
"ff:gap-inherit ff:flex ff:items-center",
|
|
830
841
|
(n || m) && "ff:opacity-0",
|
|
831
842
|
f
|
|
@@ -839,7 +850,7 @@ const Fr = ne(
|
|
|
839
850
|
}
|
|
840
851
|
);
|
|
841
852
|
F.displayName = "Button";
|
|
842
|
-
const
|
|
853
|
+
const Qt = ["default", "rounded"], Br = ne(
|
|
843
854
|
[
|
|
844
855
|
"ff:flex ff:w-full ff:rounded-md ff:px-3 ff:py-2",
|
|
845
856
|
"ff:text-foreground ff:text-sm",
|
|
@@ -889,7 +900,7 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
889
900
|
styleVariant: "default"
|
|
890
901
|
}
|
|
891
902
|
}
|
|
892
|
-
),
|
|
903
|
+
), Xt = ne([], {
|
|
893
904
|
variants: {
|
|
894
905
|
styleVariant: {
|
|
895
906
|
default: "",
|
|
@@ -903,8 +914,8 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
903
914
|
}
|
|
904
915
|
}), ht = s.forwardRef(
|
|
905
916
|
({ className: e, type: a = "text", label: r, error: n, hasError: o, inlineLabel: i, inlineError: f, ...l }, d) => {
|
|
906
|
-
const { variant: u } = Xe(), y = me(), g = l.id || l.name, b = i ??
|
|
907
|
-
|
|
917
|
+
const { variant: u } = Xe(), y = me(), g = l.id || l.name, b = i ?? Qt.includes(u), m = f ?? Qt.includes(u), x = o || !!n, h = !!n && !o, w = b && r, p = !b && r, v = m && h, M = !m && h, E = V(
|
|
918
|
+
Br({ styleVariant: y }),
|
|
908
919
|
x && "ff:border-danger ff:focus:border-danger ff:focus:ring-danger",
|
|
909
920
|
// Extra padding for floating label
|
|
910
921
|
w && "ff:pt-5 ff:pb-1",
|
|
@@ -928,8 +939,8 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
928
939
|
"aria-invalid": x,
|
|
929
940
|
"aria-describedby": h ? `${g}-error` : void 0,
|
|
930
941
|
placeholder: l.placeholder || " ",
|
|
931
|
-
className:
|
|
932
|
-
|
|
942
|
+
className: V(
|
|
943
|
+
E,
|
|
933
944
|
// Placeholder shown state for label positioning
|
|
934
945
|
"ff:peer ff:placeholder:opacity-0 ff:placeholder:transition-opacity ff:placeholder:duration-200",
|
|
935
946
|
"ff:focus:placeholder:opacity-100"
|
|
@@ -942,7 +953,7 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
942
953
|
{
|
|
943
954
|
htmlFor: g,
|
|
944
955
|
"data-slot": "input-label",
|
|
945
|
-
className:
|
|
956
|
+
className: V(
|
|
946
957
|
"ff:absolute ff:left-3 ff:top-3 ff:z-10 ff:origin-top-left ff:select-none",
|
|
947
958
|
"ff:text-sm ff:font-medium ff:transition-all ff:duration-150 ff:ease-out",
|
|
948
959
|
"ff:pointer-events-none",
|
|
@@ -957,7 +968,7 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
957
968
|
// Error state
|
|
958
969
|
x && "ff:text-danger ff:peer-focus:text-danger",
|
|
959
970
|
// Style variant
|
|
960
|
-
|
|
971
|
+
Xt({ styleVariant: y })
|
|
961
972
|
),
|
|
962
973
|
children: r
|
|
963
974
|
}
|
|
@@ -972,7 +983,7 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
972
983
|
children: n
|
|
973
984
|
}
|
|
974
985
|
),
|
|
975
|
-
|
|
986
|
+
M && /* @__PURE__ */ t(
|
|
976
987
|
"p",
|
|
977
988
|
{
|
|
978
989
|
id: `${g}-error`,
|
|
@@ -990,9 +1001,9 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
990
1001
|
{
|
|
991
1002
|
htmlFor: g,
|
|
992
1003
|
"data-slot": "input-label",
|
|
993
|
-
className:
|
|
1004
|
+
className: V(
|
|
994
1005
|
"ff:text-foreground ff:mb-1.5 ff:block ff:text-sm ff:font-medium",
|
|
995
|
-
|
|
1006
|
+
Xt({ styleVariant: y })
|
|
996
1007
|
),
|
|
997
1008
|
children: r
|
|
998
1009
|
}
|
|
@@ -1007,7 +1018,7 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
1007
1018
|
"data-slot": "input-field",
|
|
1008
1019
|
"aria-invalid": x,
|
|
1009
1020
|
"aria-describedby": h ? `${g}-error` : void 0,
|
|
1010
|
-
className:
|
|
1021
|
+
className: E,
|
|
1011
1022
|
...l
|
|
1012
1023
|
}
|
|
1013
1024
|
),
|
|
@@ -1022,18 +1033,18 @@ const Yt = ["default", "rounded"], jr = ne(
|
|
|
1022
1033
|
}
|
|
1023
1034
|
)
|
|
1024
1035
|
] }),
|
|
1025
|
-
|
|
1036
|
+
M && /* @__PURE__ */ t("p", { id: `${g}-error`, "data-slot": "input-error", className: "ff:text-danger ff:mt-1 ff:text-xs", role: "alert", children: n })
|
|
1026
1037
|
] });
|
|
1027
1038
|
}
|
|
1028
1039
|
);
|
|
1029
1040
|
ht.displayName = "Input";
|
|
1030
|
-
const
|
|
1031
|
-
function
|
|
1041
|
+
const $r = dt.pipe(dt.string(), dt.email());
|
|
1042
|
+
function wa(e) {
|
|
1032
1043
|
if (!e) return "email";
|
|
1033
1044
|
const r = zt(e).replace(/\D/g, "");
|
|
1034
1045
|
return e.startsWith("+") || r.length > 0 && r.length === e.replace(/[^\d\s()-]/g, "").length ? "phone" : (e.includes("@") || /^[a-zA-Z]/.test(e), "email");
|
|
1035
1046
|
}
|
|
1036
|
-
const
|
|
1047
|
+
const va = s.forwardRef(
|
|
1037
1048
|
({
|
|
1038
1049
|
className: e,
|
|
1039
1050
|
value: a,
|
|
@@ -1047,21 +1058,21 @@ const ha = s.forwardRef(
|
|
|
1047
1058
|
disabled: u,
|
|
1048
1059
|
...y
|
|
1049
1060
|
}, g) => {
|
|
1050
|
-
const { t: b } =
|
|
1061
|
+
const { t: b } = Y(), [m, x] = s.useState(() => i === "auto" ? wa(a) : i), [h, w] = s.useState(!1), [p, v] = s.useState(null), [M, E] = s.useState(!1), [_, S] = s.useState(
|
|
1051
1062
|
() => m === "phone" ? _t(a) : a
|
|
1052
|
-
),
|
|
1063
|
+
), D = i === "auto";
|
|
1053
1064
|
s.useEffect(() => {
|
|
1054
|
-
|
|
1055
|
-
}, [i,
|
|
1065
|
+
D || x(i);
|
|
1066
|
+
}, [i, D]), s.useEffect(() => {
|
|
1056
1067
|
S(m === "phone" ? _t(a) : a);
|
|
1057
1068
|
}, [a, m]);
|
|
1058
1069
|
const N = s.useCallback(
|
|
1059
1070
|
(R, te) => {
|
|
1060
1071
|
if (!R) {
|
|
1061
|
-
v(null),
|
|
1072
|
+
v(null), E(!1), n?.(!1);
|
|
1062
1073
|
return;
|
|
1063
1074
|
}
|
|
1064
|
-
te === "email" ? dt.safeParse(
|
|
1075
|
+
te === "email" ? dt.safeParse($r, R).success ? (v(null), E(!0), n?.(!0)) : (v(b("auth.invalidEmail")), E(!1), n?.(!1)) : vr(R) ? (v(null), E(!0), n?.(!0)) : (v(b("auth.invalidPhone")), E(!1), n?.(!1));
|
|
1065
1076
|
},
|
|
1066
1077
|
[n]
|
|
1067
1078
|
);
|
|
@@ -1073,7 +1084,7 @@ const ha = s.forwardRef(
|
|
|
1073
1084
|
if (m === "phone") {
|
|
1074
1085
|
const H = _t(te);
|
|
1075
1086
|
S(H);
|
|
1076
|
-
const j =
|
|
1087
|
+
const j = wr(te);
|
|
1077
1088
|
r(j || te, m);
|
|
1078
1089
|
} else
|
|
1079
1090
|
S(te), r(te, m);
|
|
@@ -1083,8 +1094,8 @@ const ha = s.forwardRef(
|
|
|
1083
1094
|
R.key === "Enter" && o && (R.preventDefault(), o()), y.onKeyDown?.(R);
|
|
1084
1095
|
}, P = () => {
|
|
1085
1096
|
const R = m === "email" ? "phone" : "email";
|
|
1086
|
-
x(R), S(""), v(null), w(!1),
|
|
1087
|
-
}, X = f || (h && !
|
|
1097
|
+
x(R), S(""), v(null), w(!1), E(!1), r("", R), n?.(!1);
|
|
1098
|
+
}, X = f || (h && !M ? p : null), ce = y.placeholder || b(m === "email" ? "auth.emailPlaceholder" : "auth.phonePlaceholder"), B = D && /* @__PURE__ */ t(
|
|
1088
1099
|
F,
|
|
1089
1100
|
{
|
|
1090
1101
|
type: "button",
|
|
@@ -1096,13 +1107,13 @@ const ha = s.forwardRef(
|
|
|
1096
1107
|
children: b(m === "email" ? "auth.usePhone" : "auth.useEmail")
|
|
1097
1108
|
}
|
|
1098
1109
|
);
|
|
1099
|
-
return
|
|
1110
|
+
return D ? /* @__PURE__ */ c(
|
|
1100
1111
|
"div",
|
|
1101
1112
|
{
|
|
1102
|
-
className:
|
|
1113
|
+
className: V("fanfare-auth-input", e),
|
|
1103
1114
|
"data-slot": "auth-input",
|
|
1104
1115
|
"data-mode": m,
|
|
1105
|
-
"data-valid":
|
|
1116
|
+
"data-valid": M || void 0,
|
|
1106
1117
|
children: [
|
|
1107
1118
|
/* @__PURE__ */ c("div", { "data-slot": "auth-input-header", className: "ff:mb-1.5 ff:flex ff:items-center ff:justify-between", children: [
|
|
1108
1119
|
d && /* @__PURE__ */ t("label", { "data-slot": "auth-input-label", className: "ff:text-foreground ff:block ff:text-sm ff:font-medium", children: d }),
|
|
@@ -1147,17 +1158,17 @@ const ha = s.forwardRef(
|
|
|
1147
1158
|
label: d,
|
|
1148
1159
|
error: X || void 0,
|
|
1149
1160
|
hasError: l,
|
|
1150
|
-
className:
|
|
1161
|
+
className: V("fanfare-auth-input", e),
|
|
1151
1162
|
"data-slot": "auth-input",
|
|
1152
1163
|
"data-mode": m,
|
|
1153
|
-
"data-valid":
|
|
1164
|
+
"data-valid": M || void 0,
|
|
1154
1165
|
...y
|
|
1155
1166
|
}
|
|
1156
1167
|
);
|
|
1157
1168
|
}
|
|
1158
1169
|
);
|
|
1159
|
-
|
|
1160
|
-
const
|
|
1170
|
+
va.displayName = "AuthInput";
|
|
1171
|
+
const qr = ne(
|
|
1161
1172
|
[
|
|
1162
1173
|
"ff:h-12 ff:w-full ff:min-w-0 ff:text-center ff:text-lg ff:font-semibold",
|
|
1163
1174
|
"ff:text-foreground",
|
|
@@ -1225,7 +1236,7 @@ const Br = ne(
|
|
|
1225
1236
|
hasError: !1
|
|
1226
1237
|
}
|
|
1227
1238
|
}
|
|
1228
|
-
),
|
|
1239
|
+
), ba = s.forwardRef(
|
|
1229
1240
|
({ value: e = "", onChange: a, onComplete: r, length: n = 6, error: o, hasError: i, disabled: f, autoFocus: l, className: d }, u) => {
|
|
1230
1241
|
const y = me(), g = s.useRef([]), [b, m] = s.useState(() => {
|
|
1231
1242
|
const _ = e.split("").slice(0, n);
|
|
@@ -1238,15 +1249,15 @@ const Br = ne(
|
|
|
1238
1249
|
const x = (_) => {
|
|
1239
1250
|
_ >= 0 && _ < n && g.current[_]?.focus();
|
|
1240
1251
|
}, h = (_, S) => {
|
|
1241
|
-
const
|
|
1242
|
-
if (
|
|
1243
|
-
const $ =
|
|
1252
|
+
const D = S.replace(/\D/g, "");
|
|
1253
|
+
if (D.length > 1) {
|
|
1254
|
+
const $ = D.slice(0, n).split(""), P = [...$, ...Array(n - $.length).fill("")];
|
|
1244
1255
|
m(P);
|
|
1245
1256
|
const X = P.join("");
|
|
1246
1257
|
a?.(X), X.length === n ? (r?.(X), x(n - 1)) : x($.length);
|
|
1247
1258
|
return;
|
|
1248
1259
|
}
|
|
1249
|
-
const N =
|
|
1260
|
+
const N = D.slice(-1), T = [...b];
|
|
1250
1261
|
T[_] = N, m(T);
|
|
1251
1262
|
const L = T.join("");
|
|
1252
1263
|
a?.(L), N && _ < n - 1 && x(_ + 1), L.length === n && !L.includes("") && r?.(L);
|
|
@@ -1269,21 +1280,21 @@ const Br = ne(
|
|
|
1269
1280
|
_.preventDefault();
|
|
1270
1281
|
const S = _.clipboardData.getData("text").replace(/\D/g, "").slice(0, n);
|
|
1271
1282
|
if (S) {
|
|
1272
|
-
const
|
|
1283
|
+
const D = S.split(""), N = [...D, ...Array(n - D.length).fill("")];
|
|
1273
1284
|
m(N);
|
|
1274
1285
|
const T = N.join("");
|
|
1275
|
-
a?.(T), T.length === n ? (r?.(T), x(n - 1)) : x(
|
|
1286
|
+
a?.(T), T.length === n ? (r?.(T), x(n - 1)) : x(D.length);
|
|
1276
1287
|
}
|
|
1277
1288
|
}, v = (_) => {
|
|
1278
1289
|
_.target.select();
|
|
1279
|
-
},
|
|
1290
|
+
}, M = i || !!o, E = !!o && !i;
|
|
1280
1291
|
return /* @__PURE__ */ c(
|
|
1281
1292
|
"div",
|
|
1282
1293
|
{
|
|
1283
1294
|
ref: u,
|
|
1284
|
-
className:
|
|
1295
|
+
className: V("fanfare-otp-input", "ff:space-y-1.5", d),
|
|
1285
1296
|
"data-slot": "otp-input",
|
|
1286
|
-
"data-error":
|
|
1297
|
+
"data-error": M || void 0,
|
|
1287
1298
|
children: [
|
|
1288
1299
|
/* @__PURE__ */ t(
|
|
1289
1300
|
"div",
|
|
@@ -1295,8 +1306,8 @@ const Br = ne(
|
|
|
1295
1306
|
children: Array.from({ length: n }).map((_, S) => /* @__PURE__ */ t(
|
|
1296
1307
|
"input",
|
|
1297
1308
|
{
|
|
1298
|
-
ref: (
|
|
1299
|
-
g.current[S] =
|
|
1309
|
+
ref: (D) => {
|
|
1310
|
+
g.current[S] = D;
|
|
1300
1311
|
},
|
|
1301
1312
|
type: "text",
|
|
1302
1313
|
inputMode: "numeric",
|
|
@@ -1304,27 +1315,27 @@ const Br = ne(
|
|
|
1304
1315
|
maxLength: 1,
|
|
1305
1316
|
"data-slot": "otp-input-digit",
|
|
1306
1317
|
value: b[S],
|
|
1307
|
-
onChange: (
|
|
1308
|
-
onKeyDown: (
|
|
1318
|
+
onChange: (D) => h(S, D.target.value),
|
|
1319
|
+
onKeyDown: (D) => w(S, D),
|
|
1309
1320
|
onFocus: v,
|
|
1310
1321
|
disabled: f,
|
|
1311
1322
|
autoFocus: l && S === 0,
|
|
1312
1323
|
"aria-label": `Digit ${S + 1} of ${n}`,
|
|
1313
|
-
"aria-invalid":
|
|
1314
|
-
className:
|
|
1324
|
+
"aria-invalid": M,
|
|
1325
|
+
className: qr({ styleVariant: y, hasError: M })
|
|
1315
1326
|
},
|
|
1316
1327
|
S
|
|
1317
1328
|
))
|
|
1318
1329
|
}
|
|
1319
1330
|
),
|
|
1320
|
-
|
|
1331
|
+
E && /* @__PURE__ */ t("p", { "data-slot": "otp-input-error", className: "ff:text-danger ff:text-xs", role: "alert", children: o })
|
|
1321
1332
|
]
|
|
1322
1333
|
}
|
|
1323
1334
|
);
|
|
1324
1335
|
}
|
|
1325
1336
|
);
|
|
1326
|
-
|
|
1327
|
-
const
|
|
1337
|
+
ba.displayName = "OTPInput";
|
|
1338
|
+
const Or = ne(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"], {
|
|
1328
1339
|
variants: {
|
|
1329
1340
|
variant: {
|
|
1330
1341
|
default: "ff:border ff:border-border",
|
|
@@ -1354,7 +1365,7 @@ const $r = ne(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"]
|
|
|
1354
1365
|
variant: "default",
|
|
1355
1366
|
styleVariant: "default"
|
|
1356
1367
|
}
|
|
1357
|
-
}),
|
|
1368
|
+
}), xa = s.forwardRef(({ className: e, variant: a, ...r }, n) => {
|
|
1358
1369
|
const o = me();
|
|
1359
1370
|
return /* @__PURE__ */ t(
|
|
1360
1371
|
"div",
|
|
@@ -1362,55 +1373,55 @@ const $r = ne(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"]
|
|
|
1362
1373
|
ref: n,
|
|
1363
1374
|
"data-slot": "card",
|
|
1364
1375
|
"data-variant": a,
|
|
1365
|
-
className:
|
|
1376
|
+
className: V(Or({ variant: a, styleVariant: o, className: e })),
|
|
1366
1377
|
...r
|
|
1367
1378
|
}
|
|
1368
1379
|
);
|
|
1369
1380
|
});
|
|
1370
|
-
|
|
1371
|
-
const
|
|
1372
|
-
|
|
1373
|
-
const
|
|
1381
|
+
xa.displayName = "Card";
|
|
1382
|
+
const Wr = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-header", className: V("fanfare-card-header ff:mb-4", e), ...a }));
|
|
1383
|
+
Wr.displayName = "CardHeader";
|
|
1384
|
+
const Ur = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
1374
1385
|
"h3",
|
|
1375
1386
|
{
|
|
1376
1387
|
ref: r,
|
|
1377
1388
|
"data-slot": "card-title",
|
|
1378
|
-
className:
|
|
1389
|
+
className: V("ff:text-lg ff:font-heading ff:font-semibold ff:leading-none", "ff:text-foreground", e),
|
|
1379
1390
|
...a
|
|
1380
1391
|
}
|
|
1381
1392
|
));
|
|
1382
|
-
|
|
1383
|
-
const
|
|
1393
|
+
Ur.displayName = "CardTitle";
|
|
1394
|
+
const Hr = s.forwardRef(
|
|
1384
1395
|
({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
1385
1396
|
"p",
|
|
1386
1397
|
{
|
|
1387
1398
|
ref: r,
|
|
1388
1399
|
"data-slot": "card-description",
|
|
1389
|
-
className:
|
|
1400
|
+
className: V("ff:mt-1 ff:text-sm", "ff:text-muted", e),
|
|
1390
1401
|
...a
|
|
1391
1402
|
}
|
|
1392
1403
|
)
|
|
1393
1404
|
);
|
|
1394
|
-
|
|
1395
|
-
const
|
|
1396
|
-
|
|
1397
|
-
const
|
|
1405
|
+
Hr.displayName = "CardDescription";
|
|
1406
|
+
const Kr = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-content", className: V(e), ...a }));
|
|
1407
|
+
Kr.displayName = "CardContent";
|
|
1408
|
+
const Zr = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
1398
1409
|
"div",
|
|
1399
1410
|
{
|
|
1400
1411
|
ref: r,
|
|
1401
1412
|
"data-slot": "card-footer",
|
|
1402
|
-
className:
|
|
1413
|
+
className: V("ff:mt-4 ff:flex ff:items-center ff:gap-2", e),
|
|
1403
1414
|
...a
|
|
1404
1415
|
}
|
|
1405
1416
|
));
|
|
1406
|
-
|
|
1407
|
-
const
|
|
1417
|
+
Zr.displayName = "CardFooter";
|
|
1418
|
+
const ya = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ c(
|
|
1408
1419
|
"svg",
|
|
1409
1420
|
{
|
|
1410
1421
|
ref: r,
|
|
1411
1422
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1412
1423
|
viewBox: "0 0 5647 2166",
|
|
1413
|
-
className:
|
|
1424
|
+
className: V("ff:h-5 ff:w-auto", e),
|
|
1414
1425
|
"data-slot": "fanfare-logo",
|
|
1415
1426
|
...a,
|
|
1416
1427
|
children: [
|
|
@@ -1534,13 +1545,13 @@ const ba = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ c(
|
|
|
1534
1545
|
]
|
|
1535
1546
|
}
|
|
1536
1547
|
));
|
|
1537
|
-
|
|
1548
|
+
ya.displayName = "FanfareLogo";
|
|
1538
1549
|
const K = s.forwardRef(({ className: e, children: a, ...r }, n) => /* @__PURE__ */ t(
|
|
1539
1550
|
"div",
|
|
1540
1551
|
{
|
|
1541
1552
|
ref: n,
|
|
1542
1553
|
"data-slot": "panel-body",
|
|
1543
|
-
className:
|
|
1554
|
+
className: V("ff:flex ff:flex-1 ff:flex-col ff:gap-5", e),
|
|
1544
1555
|
...r,
|
|
1545
1556
|
children: a
|
|
1546
1557
|
}
|
|
@@ -1548,13 +1559,13 @@ const K = s.forwardRef(({ className: e, children: a, ...r }, n) => /* @__PURE__
|
|
|
1548
1559
|
K.displayName = "PanelBody";
|
|
1549
1560
|
const U = s.forwardRef(
|
|
1550
1561
|
({ className: e, children: a, ...r }, n) => {
|
|
1551
|
-
const { t: o } =
|
|
1562
|
+
const { t: o } = Y(), i = me();
|
|
1552
1563
|
return /* @__PURE__ */ t(
|
|
1553
1564
|
"div",
|
|
1554
1565
|
{
|
|
1555
1566
|
ref: n,
|
|
1556
1567
|
"data-slot": "panel-footer",
|
|
1557
|
-
className:
|
|
1568
|
+
className: V(
|
|
1558
1569
|
"ff:flex ff:items-center ff:justify-between ff:gap-2 ff:border-t ff:border-border-light ff:px-5 ff:py-2.5 ff:text-xxs ff:text-muted-foreground",
|
|
1559
1570
|
(i === "clean" || i === "retro") && "ff:font-mono",
|
|
1560
1571
|
e
|
|
@@ -1562,28 +1573,28 @@ const U = s.forwardRef(
|
|
|
1562
1573
|
...r,
|
|
1563
1574
|
children: a ?? /* @__PURE__ */ c("span", { className: "ff:inline-flex ff:items-center", children: [
|
|
1564
1575
|
o("common.poweredBy"),
|
|
1565
|
-
/* @__PURE__ */ t(
|
|
1576
|
+
/* @__PURE__ */ t(ya, { className: "ff:h-4.5 ff:w-auto", "aria-label": "Fanfare" })
|
|
1566
1577
|
] })
|
|
1567
1578
|
}
|
|
1568
1579
|
);
|
|
1569
1580
|
}
|
|
1570
1581
|
);
|
|
1571
1582
|
U.displayName = "PanelFooter";
|
|
1572
|
-
function
|
|
1583
|
+
function Et(e) {
|
|
1573
1584
|
if (!s.isValidElement(e)) return !1;
|
|
1574
1585
|
if (e.type === U) return !0;
|
|
1575
1586
|
const a = e.props;
|
|
1576
|
-
return a["data-slot"] === "panel-footer" ? !0 : e.type === s.Fragment ? s.Children.toArray(a.children).some(
|
|
1587
|
+
return a["data-slot"] === "panel-footer" ? !0 : e.type === s.Fragment ? s.Children.toArray(a.children).some(Et) : !1;
|
|
1577
1588
|
}
|
|
1578
1589
|
const Z = s.forwardRef(
|
|
1579
1590
|
({ className: e, children: a, ...r }, n) => {
|
|
1580
|
-
const o = s.Children.toArray(a), i = o.filter(
|
|
1591
|
+
const o = s.Children.toArray(a), i = o.filter(Et), f = o.filter((l) => !Et(l));
|
|
1581
1592
|
return /* @__PURE__ */ c(
|
|
1582
|
-
|
|
1593
|
+
xa,
|
|
1583
1594
|
{
|
|
1584
1595
|
ref: n,
|
|
1585
1596
|
"data-slot": "panel-layout",
|
|
1586
|
-
className:
|
|
1597
|
+
className: V("ff:flex ff:flex-col ff:overflow-hidden ff:p-0 ff:max-h-[24rem]", e),
|
|
1587
1598
|
...r,
|
|
1588
1599
|
children: [
|
|
1589
1600
|
/* @__PURE__ */ t("div", { className: "ff:flex ff:flex-1 ff:flex-col ff:gap-5 ff:p-5", children: f }),
|
|
@@ -1594,7 +1605,7 @@ const Z = s.forwardRef(
|
|
|
1594
1605
|
}
|
|
1595
1606
|
);
|
|
1596
1607
|
Z.displayName = "PanelLayout";
|
|
1597
|
-
const
|
|
1608
|
+
const Yr = ["clean"], Gr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:font-medium"], {
|
|
1598
1609
|
variants: {
|
|
1599
1610
|
variant: {
|
|
1600
1611
|
default: "",
|
|
@@ -1707,16 +1718,16 @@ const Kr = ["clean"], Zr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:
|
|
|
1707
1718
|
solid: !0,
|
|
1708
1719
|
styleVariant: "rounded"
|
|
1709
1720
|
}
|
|
1710
|
-
}),
|
|
1721
|
+
}), ea = {
|
|
1711
1722
|
default: "ff:bg-primary",
|
|
1712
1723
|
secondary: "ff:bg-foreground/40",
|
|
1713
1724
|
success: "ff:bg-success",
|
|
1714
1725
|
warning: "ff:bg-warning",
|
|
1715
1726
|
danger: "ff:bg-danger",
|
|
1716
1727
|
outline: "ff:bg-foreground/40"
|
|
1717
|
-
},
|
|
1728
|
+
}, ka = s.forwardRef(
|
|
1718
1729
|
({ className: e, variant: a = "default", solidBackground: r, children: n, ...o }, i) => {
|
|
1719
|
-
const { variant: f } = Xe(), l = me(), d = a ?? "default", u = r ?? !
|
|
1730
|
+
const { variant: f } = Xe(), l = me(), d = a ?? "default", u = r ?? !Yr.includes(f), y = !u && ea[d];
|
|
1720
1731
|
return /* @__PURE__ */ c(
|
|
1721
1732
|
"span",
|
|
1722
1733
|
{
|
|
@@ -1724,13 +1735,13 @@ const Kr = ["clean"], Zr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:
|
|
|
1724
1735
|
"data-slot": "badge",
|
|
1725
1736
|
"data-variant": d,
|
|
1726
1737
|
"data-solid-background": u,
|
|
1727
|
-
className:
|
|
1738
|
+
className: V(Gr({ variant: d, solid: u, styleVariant: l, className: e })),
|
|
1728
1739
|
...o,
|
|
1729
1740
|
children: [
|
|
1730
1741
|
y && /* @__PURE__ */ t(
|
|
1731
1742
|
"span",
|
|
1732
1743
|
{
|
|
1733
|
-
className:
|
|
1744
|
+
className: V("ff:size-1.5 ff:shrink-0 ff:rounded-full", ea[d]),
|
|
1734
1745
|
"aria-hidden": "true"
|
|
1735
1746
|
}
|
|
1736
1747
|
),
|
|
@@ -1740,10 +1751,10 @@ const Kr = ["clean"], Zr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:
|
|
|
1740
1751
|
);
|
|
1741
1752
|
}
|
|
1742
1753
|
);
|
|
1743
|
-
|
|
1754
|
+
ka.displayName = "Badge";
|
|
1744
1755
|
const Q = s.forwardRef(
|
|
1745
|
-
({ variant: e = "default", label: a, title: r, description: n, className: o, ...i }, f) => /* @__PURE__ */ c("div", { ref: f, "data-slot": "panel-header", className:
|
|
1746
|
-
a ? /* @__PURE__ */ t("div", { className: "ff:flex", children: /* @__PURE__ */ t(
|
|
1756
|
+
({ variant: e = "default", label: a, title: r, description: n, className: o, ...i }, f) => /* @__PURE__ */ c("div", { ref: f, "data-slot": "panel-header", className: V("ff:flex ff:flex-col ff:gap-4", o), ...i, children: [
|
|
1757
|
+
a ? /* @__PURE__ */ t("div", { className: "ff:flex", children: /* @__PURE__ */ t(ka, { variant: e, solidBackground: !1, children: a }) }) : null,
|
|
1747
1758
|
r || n ? /* @__PURE__ */ c("div", { children: [
|
|
1748
1759
|
r ? /* @__PURE__ */ t("h2", { className: "ff:text-xl ff:font-semibold ff:text-foreground", children: r }) : null,
|
|
1749
1760
|
n ? /* @__PURE__ */ t("p", { className: "ff:text-xs ff:text-muted-foreground", children: n }) : null
|
|
@@ -1751,7 +1762,7 @@ const Q = s.forwardRef(
|
|
|
1751
1762
|
] })
|
|
1752
1763
|
);
|
|
1753
1764
|
Q.displayName = "PanelHeading";
|
|
1754
|
-
const
|
|
1765
|
+
const Jr = ne(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-foreground"], {
|
|
1755
1766
|
variants: {
|
|
1756
1767
|
styleVariant: {
|
|
1757
1768
|
default: ["ff:rounded-md ff:border ff:border-border/50 ff:bg-muted/5"],
|
|
@@ -1765,10 +1776,10 @@ const Gr = ne(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-for
|
|
|
1765
1776
|
}
|
|
1766
1777
|
}), se = s.forwardRef(({ className: e, children: a, ...r }, n) => {
|
|
1767
1778
|
const o = me();
|
|
1768
|
-
return /* @__PURE__ */ t("div", { ref: n, "data-slot": "info-panel", className:
|
|
1779
|
+
return /* @__PURE__ */ t("div", { ref: n, "data-slot": "info-panel", className: V(Jr({ styleVariant: o }), e), ...r, children: a });
|
|
1769
1780
|
});
|
|
1770
1781
|
se.displayName = "InfoPanel";
|
|
1771
|
-
const
|
|
1782
|
+
const Qr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
|
|
1772
1783
|
variants: {
|
|
1773
1784
|
tone: {
|
|
1774
1785
|
danger: "ff:bg-danger/10",
|
|
@@ -1778,7 +1789,7 @@ const Yr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
|
|
|
1778
1789
|
defaultVariants: {
|
|
1779
1790
|
tone: "danger"
|
|
1780
1791
|
}
|
|
1781
|
-
}),
|
|
1792
|
+
}), Xr = ne(["ff:flex ff:size-5 ff:shrink-0 ff:items-center ff:justify-center ff:rounded-full"], {
|
|
1782
1793
|
variants: {
|
|
1783
1794
|
tone: {
|
|
1784
1795
|
danger: "ff:bg-danger ff:text-danger-foreground",
|
|
@@ -1788,7 +1799,7 @@ const Yr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
|
|
|
1788
1799
|
defaultVariants: {
|
|
1789
1800
|
tone: "danger"
|
|
1790
1801
|
}
|
|
1791
|
-
}),
|
|
1802
|
+
}), en = ne(["ff:text-xs ff:font-semibold ff:leading-tight"], {
|
|
1792
1803
|
variants: {
|
|
1793
1804
|
tone: {
|
|
1794
1805
|
danger: "ff:text-danger",
|
|
@@ -1799,7 +1810,7 @@ const Yr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
|
|
|
1799
1810
|
tone: "danger"
|
|
1800
1811
|
}
|
|
1801
1812
|
});
|
|
1802
|
-
function
|
|
1813
|
+
function tn() {
|
|
1803
1814
|
return /* @__PURE__ */ c(
|
|
1804
1815
|
"svg",
|
|
1805
1816
|
{
|
|
@@ -1818,7 +1829,7 @@ function Xr() {
|
|
|
1818
1829
|
}
|
|
1819
1830
|
);
|
|
1820
1831
|
}
|
|
1821
|
-
function
|
|
1832
|
+
function an() {
|
|
1822
1833
|
return /* @__PURE__ */ t(
|
|
1823
1834
|
"svg",
|
|
1824
1835
|
{
|
|
@@ -1836,7 +1847,7 @@ function en() {
|
|
|
1836
1847
|
}
|
|
1837
1848
|
const ve = s.forwardRef(
|
|
1838
1849
|
({ tone: e = "danger", icon: a, title: r, description: n, className: o, ...i }, f) => {
|
|
1839
|
-
const l = e === "success" ? /* @__PURE__ */ t(
|
|
1850
|
+
const l = e === "success" ? /* @__PURE__ */ t(an, {}) : /* @__PURE__ */ t(tn, {});
|
|
1840
1851
|
return /* @__PURE__ */ c(
|
|
1841
1852
|
"div",
|
|
1842
1853
|
{
|
|
@@ -1844,12 +1855,12 @@ const ve = s.forwardRef(
|
|
|
1844
1855
|
"data-slot": "alert-panel",
|
|
1845
1856
|
"data-tone": e,
|
|
1846
1857
|
role: e === "success" ? "status" : "alert",
|
|
1847
|
-
className:
|
|
1858
|
+
className: V(Qr({ tone: e }), o),
|
|
1848
1859
|
...i,
|
|
1849
1860
|
children: [
|
|
1850
|
-
/* @__PURE__ */ t("div", { className:
|
|
1861
|
+
/* @__PURE__ */ t("div", { className: V(Xr({ tone: e })), "aria-hidden": "true", children: a ?? l }),
|
|
1851
1862
|
/* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:gap-1", children: [
|
|
1852
|
-
r ? /* @__PURE__ */ t("p", { className:
|
|
1863
|
+
r ? /* @__PURE__ */ t("p", { className: V(en({ tone: e })), children: r }) : null,
|
|
1853
1864
|
n ? /* @__PURE__ */ t("p", { className: "ff:text-xs ff:text-foreground/80", children: n }) : null
|
|
1854
1865
|
] })
|
|
1855
1866
|
]
|
|
@@ -1858,7 +1869,7 @@ const ve = s.forwardRef(
|
|
|
1858
1869
|
}
|
|
1859
1870
|
);
|
|
1860
1871
|
ve.displayName = "AlertPanel";
|
|
1861
|
-
const
|
|
1872
|
+
const rn = {
|
|
1862
1873
|
expired: "expired",
|
|
1863
1874
|
queue_denied: "not_selected",
|
|
1864
1875
|
draw_denied: "not_selected",
|
|
@@ -1871,10 +1882,10 @@ const tn = {
|
|
|
1871
1882
|
closed: "ended",
|
|
1872
1883
|
unknown: "ended"
|
|
1873
1884
|
};
|
|
1874
|
-
function
|
|
1875
|
-
return e ?
|
|
1885
|
+
function ta(e) {
|
|
1886
|
+
return e ? rn[e] ?? "ended" : "ended";
|
|
1876
1887
|
}
|
|
1877
|
-
const
|
|
1888
|
+
const nn = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"], {
|
|
1878
1889
|
variants: {
|
|
1879
1890
|
styleVariant: {
|
|
1880
1891
|
default: "",
|
|
@@ -1895,7 +1906,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
1895
1906
|
styleVariant: "default",
|
|
1896
1907
|
size: "default"
|
|
1897
1908
|
}
|
|
1898
|
-
}),
|
|
1909
|
+
}), on = ne(
|
|
1899
1910
|
["ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:font-heading ff:tabular-nums"],
|
|
1900
1911
|
{
|
|
1901
1912
|
variants: {
|
|
@@ -1925,7 +1936,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
1925
1936
|
tone: "calm"
|
|
1926
1937
|
}
|
|
1927
1938
|
}
|
|
1928
|
-
),
|
|
1939
|
+
), fn = ne(["ff:flex ff:flex-col ff:items-center"], {
|
|
1929
1940
|
variants: {
|
|
1930
1941
|
styleVariant: {
|
|
1931
1942
|
default: "",
|
|
@@ -1967,7 +1978,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
1967
1978
|
styleVariant: "default",
|
|
1968
1979
|
tone: "calm"
|
|
1969
1980
|
}
|
|
1970
|
-
}),
|
|
1981
|
+
}), sn = ne(
|
|
1971
1982
|
["ff:text-xxs ff:font-heading ff:font-medium ff:uppercase ff:tracking-widest ff:text-neutral-500 ff:leading-none"],
|
|
1972
1983
|
{
|
|
1973
1984
|
variants: {
|
|
@@ -1997,7 +2008,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
1997
2008
|
tone: "calm"
|
|
1998
2009
|
}
|
|
1999
2010
|
}
|
|
2000
|
-
),
|
|
2011
|
+
), ln = ne(["ff:mx-2 ff:self-end ff:pb-2 ff:text-2xl ff:font-light ff:text-neutral-300"], {
|
|
2001
2012
|
variants: {
|
|
2002
2013
|
styleVariant: {
|
|
2003
2014
|
default: "",
|
|
@@ -2014,7 +2025,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
2014
2025
|
styleVariant: "default",
|
|
2015
2026
|
size: "default"
|
|
2016
2027
|
}
|
|
2017
|
-
}),
|
|
2028
|
+
}), cn = ne(["ff:flex ff:items-center ff:justify-center ff:font-heading"], {
|
|
2018
2029
|
variants: {
|
|
2019
2030
|
styleVariant: {
|
|
2020
2031
|
default: "",
|
|
@@ -2032,7 +2043,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
2032
2043
|
size: "default"
|
|
2033
2044
|
}
|
|
2034
2045
|
});
|
|
2035
|
-
function
|
|
2046
|
+
function aa(e) {
|
|
2036
2047
|
const a = typeof e == "object" ? e : new Date(e), r = /* @__PURE__ */ new Date(), n = a.getTime() - r.getTime(), o = Math.max(0, n);
|
|
2037
2048
|
return {
|
|
2038
2049
|
days: Math.floor(o / (1e3 * 60 * 60 * 24)),
|
|
@@ -2042,8 +2053,8 @@ function ea(e) {
|
|
|
2042
2053
|
total: n
|
|
2043
2054
|
};
|
|
2044
2055
|
}
|
|
2045
|
-
function
|
|
2046
|
-
return /* @__PURE__ */ t("div", { "data-slot": "countdown-digit", className:
|
|
2056
|
+
function dn({ value: e, styleVariant: a, size: r, tone: n }) {
|
|
2057
|
+
return /* @__PURE__ */ t("div", { "data-slot": "countdown-digit", className: nn({ styleVariant: a, size: r }), children: /* @__PURE__ */ t(vt, { mode: "popLayout", children: /* @__PURE__ */ t(
|
|
2047
2058
|
W.span,
|
|
2048
2059
|
{
|
|
2049
2060
|
initial: { y: "100%", filter: "blur(2px)" },
|
|
@@ -2055,28 +2066,28 @@ function ln({ value: e, styleVariant: a, size: r, tone: n }) {
|
|
|
2055
2066
|
damping: 30,
|
|
2056
2067
|
mass: 1
|
|
2057
2068
|
},
|
|
2058
|
-
className:
|
|
2069
|
+
className: on({ styleVariant: a, size: r, tone: n }),
|
|
2059
2070
|
children: e
|
|
2060
2071
|
},
|
|
2061
2072
|
e
|
|
2062
2073
|
) }) });
|
|
2063
2074
|
}
|
|
2064
|
-
function
|
|
2075
|
+
function un({ value: e, label: a, styleVariant: r, size: n, tone: o }) {
|
|
2065
2076
|
const f = e.toString().padStart(2, "0").split("").map(Number);
|
|
2066
|
-
return /* @__PURE__ */ c("div", { "data-slot": "countdown-unit", "data-tone": o, className:
|
|
2067
|
-
/* @__PURE__ */ t("div", { "data-slot": "countdown-unit-digits", className: "ff:flex", children: f.map((l, d) => /* @__PURE__ */ t(
|
|
2068
|
-
/* @__PURE__ */ t("span", { "data-slot": "countdown-unit-label", className:
|
|
2077
|
+
return /* @__PURE__ */ c("div", { "data-slot": "countdown-unit", "data-tone": o, className: fn({ styleVariant: r, tone: o }), children: [
|
|
2078
|
+
/* @__PURE__ */ t("div", { "data-slot": "countdown-unit-digits", className: "ff:flex", children: f.map((l, d) => /* @__PURE__ */ t(dn, { value: l, styleVariant: r, size: n, tone: o }, d)) }),
|
|
2079
|
+
/* @__PURE__ */ t("span", { "data-slot": "countdown-unit-label", className: sn({ styleVariant: r, size: n, tone: o }), children: a })
|
|
2069
2080
|
] });
|
|
2070
2081
|
}
|
|
2071
|
-
function
|
|
2072
|
-
return e === "rounded" || e === "retro" ? null : /* @__PURE__ */ t("span", { "data-slot": "countdown-separator", className:
|
|
2082
|
+
function pn({ styleVariant: e, size: a }) {
|
|
2083
|
+
return e === "rounded" || e === "retro" ? null : /* @__PURE__ */ t("span", { "data-slot": "countdown-separator", className: ln({ styleVariant: e, size: a }), children: "/" });
|
|
2073
2084
|
}
|
|
2074
|
-
function
|
|
2075
|
-
const [r, n] = s.useState(() =>
|
|
2085
|
+
function gn(e, a) {
|
|
2086
|
+
const [r, n] = s.useState(() => aa(e)), [o, i] = s.useState(!1), f = s.useRef(!1);
|
|
2076
2087
|
return s.useEffect(() => {
|
|
2077
2088
|
i(!0), f.current = !1;
|
|
2078
2089
|
const l = setInterval(() => {
|
|
2079
|
-
const d =
|
|
2090
|
+
const d = aa(e);
|
|
2080
2091
|
n(d), d.total <= 0 && !f.current && (f.current = !0, a?.(), clearInterval(l));
|
|
2081
2092
|
}, 1e3);
|
|
2082
2093
|
return () => clearInterval(l);
|
|
@@ -2095,11 +2106,11 @@ function de({
|
|
|
2095
2106
|
size: u = "default",
|
|
2096
2107
|
tone: y = "calm"
|
|
2097
2108
|
}) {
|
|
2098
|
-
const { t: g } =
|
|
2109
|
+
const { t: g } = Y(), { timeRemaining: b, isClient: m, isPast: x } = gn(e, a), h = me();
|
|
2099
2110
|
if (!m)
|
|
2100
2111
|
return null;
|
|
2101
2112
|
if (x && r)
|
|
2102
|
-
return /* @__PURE__ */ t("span", { className:
|
|
2113
|
+
return /* @__PURE__ */ t("span", { className: V("ff:text-muted ff:font-heading", n), "data-slot": "countdown", "data-past": "", children: r });
|
|
2103
2114
|
const w = x ? "ff:opacity-50" : void 0, v = [
|
|
2104
2115
|
{
|
|
2105
2116
|
value: b.days,
|
|
@@ -2120,22 +2131,22 @@ function de({
|
|
|
2120
2131
|
shortLabel: g("countdown.secondsShort"),
|
|
2121
2132
|
show: l
|
|
2122
2133
|
}
|
|
2123
|
-
].filter((
|
|
2134
|
+
].filter((E) => E.show), M = d === "swiss" ? v.slice(0, 3) : v;
|
|
2124
2135
|
if (d === "compact") {
|
|
2125
|
-
const
|
|
2136
|
+
const E = (_) => _.toString().padStart(2, "0");
|
|
2126
2137
|
return /* @__PURE__ */ t(
|
|
2127
2138
|
"span",
|
|
2128
2139
|
{
|
|
2129
|
-
className:
|
|
2140
|
+
className: V("ff:tabular-nums ff:font-heading", w, n),
|
|
2130
2141
|
"data-slot": "countdown",
|
|
2131
2142
|
"data-layout": "compact",
|
|
2132
2143
|
"data-past": x || void 0,
|
|
2133
2144
|
role: "timer",
|
|
2134
2145
|
"aria-live": x ? "off" : "polite",
|
|
2135
|
-
children:
|
|
2136
|
-
|
|
2146
|
+
children: M.map((_, S) => /* @__PURE__ */ c(s.Fragment, { children: [
|
|
2147
|
+
E(_.value),
|
|
2137
2148
|
_.shortLabel,
|
|
2138
|
-
S <
|
|
2149
|
+
S < M.length - 1 && " "
|
|
2139
2150
|
] }, _.label))
|
|
2140
2151
|
}
|
|
2141
2152
|
);
|
|
@@ -2143,7 +2154,7 @@ function de({
|
|
|
2143
2154
|
return /* @__PURE__ */ t(
|
|
2144
2155
|
"div",
|
|
2145
2156
|
{
|
|
2146
|
-
className:
|
|
2157
|
+
className: V(cn({ styleVariant: h, size: u }), w, n),
|
|
2147
2158
|
"data-slot": "countdown",
|
|
2148
2159
|
"data-layout": "swiss",
|
|
2149
2160
|
"data-size": u,
|
|
@@ -2151,10 +2162,10 @@ function de({
|
|
|
2151
2162
|
"data-past": x || void 0,
|
|
2152
2163
|
role: "timer",
|
|
2153
2164
|
"aria-live": x ? "off" : "polite",
|
|
2154
|
-
children:
|
|
2155
|
-
/* @__PURE__ */ t(
|
|
2156
|
-
_ <
|
|
2157
|
-
] },
|
|
2165
|
+
children: M.map((E, _) => /* @__PURE__ */ c(s.Fragment, { children: [
|
|
2166
|
+
/* @__PURE__ */ t(un, { value: E.value, label: E.label, styleVariant: h, size: u, tone: y }),
|
|
2167
|
+
_ < M.length - 1 && /* @__PURE__ */ t(pn, { styleVariant: h, size: u })
|
|
2168
|
+
] }, E.label))
|
|
2158
2169
|
}
|
|
2159
2170
|
);
|
|
2160
2171
|
}
|
|
@@ -2168,14 +2179,14 @@ function Je({ show: e, presenceKey: a, children: r, className: n }) {
|
|
|
2168
2179
|
animate: { opacity: 1, y: 0 },
|
|
2169
2180
|
exit: o ? { opacity: 0 } : { opacity: 0, y: -4 },
|
|
2170
2181
|
transition: { duration: 0.18, ease: "easeOut" },
|
|
2171
|
-
className:
|
|
2182
|
+
className: V(n),
|
|
2172
2183
|
children: r
|
|
2173
2184
|
},
|
|
2174
2185
|
a ?? "fade-presence"
|
|
2175
2186
|
) : null });
|
|
2176
2187
|
}
|
|
2177
2188
|
Je.displayName = "FadePresence";
|
|
2178
|
-
const
|
|
2189
|
+
const mn = {
|
|
2179
2190
|
default: {
|
|
2180
2191
|
initial: { opacity: 0, scale: 0.98 },
|
|
2181
2192
|
animate: { opacity: 1, scale: 1 },
|
|
@@ -2206,8 +2217,8 @@ const pn = {
|
|
|
2206
2217
|
exit: { opacity: 1 },
|
|
2207
2218
|
transition: { duration: 0 }
|
|
2208
2219
|
};
|
|
2209
|
-
function
|
|
2210
|
-
const i = me(), f = Qe(), l = f ? Nt :
|
|
2220
|
+
function Ge({ children: e, transitionKey: a, mode: r, layout: n = !0, className: o }) {
|
|
2221
|
+
const i = me(), f = Qe(), l = f ? Nt : mn[i], u = (!r || r === "none" ? r === "none" ? Nt : null : f ? Nt : {
|
|
2211
2222
|
fade: {
|
|
2212
2223
|
initial: { opacity: 0 },
|
|
2213
2224
|
animate: { opacity: 1 },
|
|
@@ -2236,19 +2247,19 @@ function Ye({ children: e, transitionKey: a, mode: r, layout: n = !0, className:
|
|
|
2236
2247
|
transition: u.transition,
|
|
2237
2248
|
layout: n && !f,
|
|
2238
2249
|
"data-slot": "transition",
|
|
2239
|
-
className:
|
|
2250
|
+
className: V(o),
|
|
2240
2251
|
children: e
|
|
2241
2252
|
},
|
|
2242
2253
|
a
|
|
2243
2254
|
) });
|
|
2244
2255
|
}
|
|
2245
|
-
|
|
2246
|
-
const St = 3e4,
|
|
2247
|
-
function
|
|
2256
|
+
Ge.displayName = "Transition";
|
|
2257
|
+
const St = 3e4, hn = 3e3;
|
|
2258
|
+
function wn(e) {
|
|
2248
2259
|
const a = Math.ceil(e / 1e3), r = Math.floor(a / 60), n = a % 60;
|
|
2249
2260
|
return `${r.toString().padStart(2, "0")}:${n.toString().padStart(2, "0")}`;
|
|
2250
2261
|
}
|
|
2251
|
-
function
|
|
2262
|
+
function _a({
|
|
2252
2263
|
onSubmit: e,
|
|
2253
2264
|
onVerify: a,
|
|
2254
2265
|
onSkip: r,
|
|
@@ -2268,74 +2279,74 @@ function ya({
|
|
|
2268
2279
|
defaultError: w,
|
|
2269
2280
|
className: p
|
|
2270
2281
|
}) {
|
|
2271
|
-
const { t: v } =
|
|
2272
|
-
h ??
|
|
2273
|
-
), [ce, B] = s.useState(!1), [R, te] = s.useState(""), [H, j] = s.useState(!1), [ae,
|
|
2282
|
+
const { t: v } = Y(), M = i ?? v("auth.badgeLabel"), E = f ?? v("auth.title"), _ = l ?? v("auth.description"), S = u ?? v("auth.submit"), D = y ?? v("auth.verify"), [N, T] = s.useState(m), [L, $] = s.useState(x ?? ""), [P, X] = s.useState(
|
|
2283
|
+
h ?? wa(x ?? "")
|
|
2284
|
+
), [ce, B] = s.useState(!1), [R, te] = s.useState(""), [H, j] = s.useState(!1), [ae, G] = s.useState(w ?? null), [J, ue] = s.useState(
|
|
2274
2285
|
m === "verify" && (x ?? "").length > 0 ? Date.now() + St : null
|
|
2275
|
-
), [le, I] = s.useState(() => Date.now()), [pe, ye] = s.useState(!1), [
|
|
2286
|
+
), [le, I] = s.useState(() => Date.now()), [pe, ye] = s.useState(!1), [Me, je] = s.useState(!1), at = v(P === "email" ? "auth.email" : "auth.phone");
|
|
2276
2287
|
s.useEffect(() => {
|
|
2277
2288
|
if (N !== "verify") return;
|
|
2278
2289
|
const q = setInterval(() => I(Date.now()), 1e3);
|
|
2279
2290
|
return () => clearInterval(q);
|
|
2280
2291
|
}, [N]), s.useEffect(() => {
|
|
2281
2292
|
if (!pe) return;
|
|
2282
|
-
const q = setTimeout(() => ye(!1),
|
|
2293
|
+
const q = setTimeout(() => ye(!1), hn);
|
|
2283
2294
|
return () => clearTimeout(q);
|
|
2284
2295
|
}, [pe]);
|
|
2285
2296
|
const Pe = J ? Math.max(0, J - le) : 0, Te = Pe > 0, Be = s.useRef(null);
|
|
2286
2297
|
ae && (Be.current = ae);
|
|
2287
2298
|
const rt = ae ?? Be.current ?? "", be = (q, ke) => {
|
|
2288
|
-
$(q), X(ke),
|
|
2299
|
+
$(q), X(ke), G(null);
|
|
2289
2300
|
}, we = async (q) => {
|
|
2290
2301
|
if (q?.preventDefault(), !(!ce || !L)) {
|
|
2291
|
-
j(!0),
|
|
2302
|
+
j(!0), G(null);
|
|
2292
2303
|
try {
|
|
2293
2304
|
await e?.(L, P), T("verify"), ue(Date.now() + St);
|
|
2294
2305
|
} catch (ke) {
|
|
2295
|
-
|
|
2306
|
+
G(ke instanceof Error ? ke.message : v("auth.sendFailed"));
|
|
2296
2307
|
} finally {
|
|
2297
2308
|
j(!1);
|
|
2298
2309
|
}
|
|
2299
2310
|
}
|
|
2300
2311
|
}, xt = (q) => {
|
|
2301
|
-
te(q),
|
|
2312
|
+
te(q), G(null);
|
|
2302
2313
|
}, nt = async (q) => {
|
|
2303
2314
|
te(q), await ot(void 0, q);
|
|
2304
2315
|
}, ot = async (q, ke) => {
|
|
2305
2316
|
q?.preventDefault();
|
|
2306
2317
|
const Re = ke || R;
|
|
2307
2318
|
if (!(!Re || Re.length < 6)) {
|
|
2308
|
-
j(!0),
|
|
2319
|
+
j(!0), G(null);
|
|
2309
2320
|
try {
|
|
2310
2321
|
await a?.(Re), T("success"), n?.();
|
|
2311
2322
|
} catch (qe) {
|
|
2312
|
-
|
|
2323
|
+
G(qe instanceof Error ? qe.message : v("auth.invalidCode"));
|
|
2313
2324
|
} finally {
|
|
2314
2325
|
j(!1);
|
|
2315
2326
|
}
|
|
2316
2327
|
}
|
|
2317
2328
|
}, ft = () => {
|
|
2318
|
-
T("credential"), te(""),
|
|
2329
|
+
T("credential"), te(""), G(null), ue(null), ye(!1);
|
|
2319
2330
|
}, yt = async () => {
|
|
2320
|
-
if (!(!L ||
|
|
2321
|
-
je(!0),
|
|
2331
|
+
if (!(!L || Me)) {
|
|
2332
|
+
je(!0), G(null), te("");
|
|
2322
2333
|
try {
|
|
2323
2334
|
await e?.(L, P), ue(Date.now() + St), I(Date.now()), ye(!0);
|
|
2324
2335
|
} catch (q) {
|
|
2325
|
-
|
|
2336
|
+
G(q instanceof Error ? q.message : v("auth.sendFailed"));
|
|
2326
2337
|
} finally {
|
|
2327
2338
|
je(!1);
|
|
2328
2339
|
}
|
|
2329
2340
|
}
|
|
2330
2341
|
};
|
|
2331
2342
|
if (N === "success")
|
|
2332
|
-
return /* @__PURE__ */ c(Z, { className:
|
|
2343
|
+
return /* @__PURE__ */ c(Z, { className: V("fanfare-auth-form", p), "data-slot": "auth-form", "data-step": "success", children: [
|
|
2333
2344
|
/* @__PURE__ */ t(K, { children: /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-center ff:gap-3 ff:py-4", children: [
|
|
2334
2345
|
/* @__PURE__ */ t(
|
|
2335
2346
|
"div",
|
|
2336
2347
|
{
|
|
2337
2348
|
"data-slot": "auth-form-success-icon",
|
|
2338
|
-
className:
|
|
2349
|
+
className: V(
|
|
2339
2350
|
"ff:flex ff:h-12 ff:w-12 ff:items-center ff:justify-center ff:rounded-full",
|
|
2340
2351
|
"ff:bg-success/10 ff:text-success"
|
|
2341
2352
|
),
|
|
@@ -2346,15 +2357,15 @@ function ya({
|
|
|
2346
2357
|
] }) }),
|
|
2347
2358
|
b && /* @__PURE__ */ t(U, {})
|
|
2348
2359
|
] });
|
|
2349
|
-
const $e = N === "credential" ?
|
|
2350
|
-
return /* @__PURE__ */ c(Z, { className:
|
|
2351
|
-
/* @__PURE__ */ t(Q, { variant: o, label:
|
|
2360
|
+
const $e = N === "credential" ? E : v("auth.verifyTitle");
|
|
2361
|
+
return /* @__PURE__ */ c(Z, { className: V("fanfare-auth-form", p), "data-slot": "auth-form", "data-step": N, children: [
|
|
2362
|
+
/* @__PURE__ */ t(Q, { variant: o, label: M }),
|
|
2352
2363
|
/* @__PURE__ */ c(K, { children: [
|
|
2353
2364
|
d ? /* @__PURE__ */ c("div", { "data-slot": "auth-form-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
2354
2365
|
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: v("time.opensIn") }),
|
|
2355
2366
|
/* @__PURE__ */ t(de, { targetDate: d, showDays: !1 })
|
|
2356
2367
|
] }) : null,
|
|
2357
|
-
/* @__PURE__ */ t("div", { "data-slot": "auth-form-heading", children: /* @__PURE__ */ t(
|
|
2368
|
+
/* @__PURE__ */ t("div", { "data-slot": "auth-form-heading", children: /* @__PURE__ */ t(Ge, { transitionKey: N, mode: "fade", children: N === "credential" ? /* @__PURE__ */ c(Ce, { children: [
|
|
2358
2369
|
/* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: $e }),
|
|
2359
2370
|
/* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: _ })
|
|
2360
2371
|
] }) : /* @__PURE__ */ c(Ce, { children: [
|
|
@@ -2375,8 +2386,8 @@ function ya({
|
|
|
2375
2386
|
q.preventDefault(), N === "credential" ? we(q) : ot(q);
|
|
2376
2387
|
},
|
|
2377
2388
|
children: [
|
|
2378
|
-
/* @__PURE__ */ t(
|
|
2379
|
-
|
|
2389
|
+
/* @__PURE__ */ t(Ge, { transitionKey: N, children: N === "credential" ? /* @__PURE__ */ t(
|
|
2390
|
+
va,
|
|
2380
2391
|
{
|
|
2381
2392
|
value: L,
|
|
2382
2393
|
onValueChange: be,
|
|
@@ -2389,7 +2400,7 @@ function ya({
|
|
|
2389
2400
|
disabled: H
|
|
2390
2401
|
}
|
|
2391
2402
|
) : /* @__PURE__ */ t(
|
|
2392
|
-
|
|
2403
|
+
ba,
|
|
2393
2404
|
{
|
|
2394
2405
|
value: R,
|
|
2395
2406
|
onChange: xt,
|
|
@@ -2401,9 +2412,9 @@ function ya({
|
|
|
2401
2412
|
disabled: H
|
|
2402
2413
|
}
|
|
2403
2414
|
) }),
|
|
2404
|
-
/* @__PURE__ */ t(Je, { show: N === "verify", presenceKey: "resend-area", children: /* @__PURE__ */ t(
|
|
2415
|
+
/* @__PURE__ */ t(Je, { show: N === "verify", presenceKey: "resend-area", children: /* @__PURE__ */ t(Ge, { transitionKey: pe ? "success" : "cooldown", mode: "fade", layout: !1, children: pe ? /* @__PURE__ */ t(ve, { tone: "success", title: v("auth.newCodeSent") }) : /* @__PURE__ */ c("div", { "data-slot": "auth-form-resend", className: "ff:flex ff:items-center ff:justify-between", children: [
|
|
2405
2416
|
/* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs", children: v("auth.didntGetIt") }),
|
|
2406
|
-
Te ? /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs ff:tabular-nums", children:
|
|
2417
|
+
Te ? /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs ff:tabular-nums", children: wn(Pe) }) : /* @__PURE__ */ t(
|
|
2407
2418
|
F,
|
|
2408
2419
|
{
|
|
2409
2420
|
type: "button",
|
|
@@ -2412,7 +2423,7 @@ function ya({
|
|
|
2412
2423
|
onClick: () => {
|
|
2413
2424
|
yt();
|
|
2414
2425
|
},
|
|
2415
|
-
disabled:
|
|
2426
|
+
disabled: Me || !L,
|
|
2416
2427
|
children: v("auth.resendCode")
|
|
2417
2428
|
}
|
|
2418
2429
|
)
|
|
@@ -2424,8 +2435,8 @@ function ya({
|
|
|
2424
2435
|
{
|
|
2425
2436
|
type: "submit",
|
|
2426
2437
|
className: "ff:w-full",
|
|
2427
|
-
disabled: H ||
|
|
2428
|
-
children: H ? /* @__PURE__ */ t(De, { size: "sm" }) : N === "credential" ? S :
|
|
2438
|
+
disabled: H || Me || (N === "credential" ? !ce : R.length < 6),
|
|
2439
|
+
children: H ? /* @__PURE__ */ t(De, { size: "sm" }) : N === "credential" ? S : D
|
|
2429
2440
|
}
|
|
2430
2441
|
),
|
|
2431
2442
|
g && N === "credential" && /* @__PURE__ */ t(F, { type: "button", variant: "outline", className: "ff:w-full", onClick: r, disabled: H, children: v("common.skip") })
|
|
@@ -2437,8 +2448,8 @@ function ya({
|
|
|
2437
2448
|
b && /* @__PURE__ */ t(U, {})
|
|
2438
2449
|
] });
|
|
2439
2450
|
}
|
|
2440
|
-
|
|
2441
|
-
const
|
|
2451
|
+
_a.displayName = "AuthForm";
|
|
2452
|
+
const Na = s.forwardRef(
|
|
2442
2453
|
({
|
|
2443
2454
|
className: e,
|
|
2444
2455
|
value: a,
|
|
@@ -2467,14 +2478,14 @@ const ka = s.forwardRef(
|
|
|
2467
2478
|
placeholder: f,
|
|
2468
2479
|
error: o,
|
|
2469
2480
|
hasError: i,
|
|
2470
|
-
className:
|
|
2481
|
+
className: V("fanfare-access-code-input", e),
|
|
2471
2482
|
"data-slot": "access-code-input",
|
|
2472
2483
|
...d
|
|
2473
2484
|
}
|
|
2474
2485
|
)
|
|
2475
2486
|
);
|
|
2476
|
-
|
|
2477
|
-
function
|
|
2487
|
+
Na.displayName = "AccessCodeInput";
|
|
2488
|
+
function Sa({
|
|
2478
2489
|
onSubmit: e,
|
|
2479
2490
|
onSkip: a,
|
|
2480
2491
|
variant: r = "secondary",
|
|
@@ -2488,19 +2499,19 @@ function _a({
|
|
|
2488
2499
|
defaultError: y,
|
|
2489
2500
|
className: g
|
|
2490
2501
|
}) {
|
|
2491
|
-
const { t: b } =
|
|
2502
|
+
const { t: b } = Y(), m = n ?? b("accessCode.badgeLabel"), x = o ?? b("accessCode.title"), h = i ?? b("accessCode.description"), w = l ?? b("accessCode.submit"), [p, v] = s.useState(""), [M, E] = s.useState(!1), [_, S] = s.useState(y ?? null), D = async (N) => {
|
|
2492
2503
|
if (N?.preventDefault(), !!p.trim()) {
|
|
2493
|
-
|
|
2504
|
+
E(!0), S(null);
|
|
2494
2505
|
try {
|
|
2495
2506
|
await e?.(p.trim());
|
|
2496
2507
|
} catch (T) {
|
|
2497
2508
|
S(T instanceof Error ? T.message : b("accessCode.invalid"));
|
|
2498
2509
|
} finally {
|
|
2499
|
-
|
|
2510
|
+
E(!1);
|
|
2500
2511
|
}
|
|
2501
2512
|
}
|
|
2502
2513
|
};
|
|
2503
|
-
return /* @__PURE__ */ c(Z, { className:
|
|
2514
|
+
return /* @__PURE__ */ c(Z, { className: V("fanfare-access-code-form", g), "data-slot": "access-code-form", children: [
|
|
2504
2515
|
/* @__PURE__ */ t(Q, { variant: r, label: m }),
|
|
2505
2516
|
/* @__PURE__ */ c(K, { children: [
|
|
2506
2517
|
f ? /* @__PURE__ */ c("div", { "data-slot": "access-code-form-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
@@ -2512,56 +2523,56 @@ function _a({
|
|
|
2512
2523
|
/* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: h })
|
|
2513
2524
|
] }),
|
|
2514
2525
|
/* @__PURE__ */ c("form", { className: "ff:flex ff:flex-1 ff:flex-col ff:gap-5", onSubmit: (N) => {
|
|
2515
|
-
|
|
2526
|
+
D(N);
|
|
2516
2527
|
}, children: [
|
|
2517
2528
|
/* @__PURE__ */ t(
|
|
2518
|
-
|
|
2529
|
+
Na,
|
|
2519
2530
|
{
|
|
2520
2531
|
value: p,
|
|
2521
2532
|
onValueChange: (N) => {
|
|
2522
2533
|
v(N), S(null);
|
|
2523
2534
|
},
|
|
2524
2535
|
onSubmit: () => {
|
|
2525
|
-
|
|
2536
|
+
D();
|
|
2526
2537
|
},
|
|
2527
2538
|
hasError: !!_,
|
|
2528
2539
|
placeholder: b("accessCode.placeholder"),
|
|
2529
2540
|
autoUppercase: u,
|
|
2530
2541
|
autoFocus: !0,
|
|
2531
|
-
disabled:
|
|
2542
|
+
disabled: M
|
|
2532
2543
|
}
|
|
2533
2544
|
),
|
|
2534
2545
|
_ ? /* @__PURE__ */ t(ve, { tone: "danger", title: _ }) : null,
|
|
2535
2546
|
/* @__PURE__ */ c("div", { className: "ff:mt-auto ff:flex ff:flex-col ff:gap-2", children: [
|
|
2536
|
-
/* @__PURE__ */ t(F, { type: "submit", className: "ff:w-full", disabled:
|
|
2537
|
-
d && /* @__PURE__ */ t(F, { type: "button", variant: "outline", className: "ff:w-full", onClick: a, disabled:
|
|
2547
|
+
/* @__PURE__ */ t(F, { type: "submit", className: "ff:w-full", disabled: M || !p.trim(), children: M ? /* @__PURE__ */ t(De, { size: "sm" }) : w }),
|
|
2548
|
+
d && /* @__PURE__ */ t(F, { type: "button", variant: "outline", className: "ff:w-full", onClick: a, disabled: M, children: b("common.skip") })
|
|
2538
2549
|
] })
|
|
2539
2550
|
] })
|
|
2540
2551
|
] }),
|
|
2541
2552
|
/* @__PURE__ */ t(U, {})
|
|
2542
2553
|
] });
|
|
2543
2554
|
}
|
|
2544
|
-
|
|
2545
|
-
function
|
|
2555
|
+
Sa.displayName = "AccessCodeForm";
|
|
2556
|
+
function vn(e) {
|
|
2546
2557
|
if (!e || typeof e != "object") return !1;
|
|
2547
2558
|
const a = e;
|
|
2548
2559
|
return typeof a.kind != "string" || typeof a.challengeId != "string" ? !1 : a.kind === "fanfare:challenge:turnstile" ? typeof a.token == "string" && a.token.length > 0 : a.kind === "fanfare:challenge:turnstile_error" || a.kind === "fanfare:challenge:turnstile_expired";
|
|
2549
2560
|
}
|
|
2550
|
-
function
|
|
2561
|
+
function bn(e, a) {
|
|
2551
2562
|
const r = e?.blockedUntil;
|
|
2552
2563
|
if (!r) return { blocked: !1 };
|
|
2553
2564
|
const n = Date.parse(r);
|
|
2554
2565
|
return Number.isFinite(n) ? { blocked: a < n, blockedUntil: r } : { blocked: !1 };
|
|
2555
2566
|
}
|
|
2556
|
-
function
|
|
2567
|
+
function xn(e, a) {
|
|
2557
2568
|
const r = new Date(e);
|
|
2558
2569
|
try {
|
|
2559
|
-
return r.toLocaleString(
|
|
2570
|
+
return r.toLocaleString(er(a));
|
|
2560
2571
|
} catch {
|
|
2561
2572
|
return r.toLocaleString();
|
|
2562
2573
|
}
|
|
2563
2574
|
}
|
|
2564
|
-
function
|
|
2575
|
+
function Ca({
|
|
2565
2576
|
challenge: e,
|
|
2566
2577
|
botMitigation: a,
|
|
2567
2578
|
onVerifyToken: r,
|
|
@@ -2574,7 +2585,7 @@ function Na({
|
|
|
2574
2585
|
retryLabel: u,
|
|
2575
2586
|
className: y
|
|
2576
2587
|
}) {
|
|
2577
|
-
const { t: g, locale: b } =
|
|
2588
|
+
const { t: g, locale: b } = Y(), [m, x] = s.useState(0), [h, w] = s.useState(!1), [p, v] = s.useState(!1), [M, E] = s.useState(null), [_, S] = s.useState(!1), [D, N] = s.useState("reload"), [T, L] = s.useState(() => Date.now()), $ = re(() => {
|
|
2578
2589
|
if (!e?.iframeUrl) return null;
|
|
2579
2590
|
try {
|
|
2580
2591
|
return new URL(e.iframeUrl).origin;
|
|
@@ -2584,16 +2595,16 @@ function Na({
|
|
|
2584
2595
|
}, [e?.iframeUrl]), P = re(() => {
|
|
2585
2596
|
if (!e?.iframeUrl) return null;
|
|
2586
2597
|
try {
|
|
2587
|
-
const
|
|
2588
|
-
return
|
|
2598
|
+
const G = new URL(e.iframeUrl);
|
|
2599
|
+
return G.searchParams.set("_t", String(m)), G.toString();
|
|
2589
2600
|
} catch {
|
|
2590
2601
|
return null;
|
|
2591
2602
|
}
|
|
2592
2603
|
}, [e?.iframeUrl, m]);
|
|
2593
2604
|
s.useEffect(() => {
|
|
2594
|
-
const
|
|
2595
|
-
if (L(J), !
|
|
2596
|
-
const ue = Date.parse(
|
|
2605
|
+
const G = a?.blockedUntil, J = Date.now();
|
|
2606
|
+
if (L(J), !G) return;
|
|
2607
|
+
const ue = Date.parse(G);
|
|
2597
2608
|
if (!Number.isFinite(ue) || ue <= J) return;
|
|
2598
2609
|
const le = window.setTimeout(() => L(Date.now()), Math.min(ue - J + 1, 2147483647));
|
|
2599
2610
|
return () => {
|
|
@@ -2601,24 +2612,24 @@ function Na({
|
|
|
2601
2612
|
};
|
|
2602
2613
|
}, [a?.blockedUntil]);
|
|
2603
2614
|
const { blocked: X, blockedUntil: ce } = re(
|
|
2604
|
-
() =>
|
|
2615
|
+
() => bn(a, T),
|
|
2605
2616
|
[a, T]
|
|
2606
2617
|
), B = typeof a?.attemptsRemaining == "number" ? a.attemptsRemaining : void 0;
|
|
2607
2618
|
s.useEffect(() => {
|
|
2608
|
-
x(0), w(!1), v(!1),
|
|
2619
|
+
x(0), w(!1), v(!1), E(null), S(!1), N("reload");
|
|
2609
2620
|
}, [e?.id]), s.useEffect(() => {
|
|
2610
|
-
_ && a?.message &&
|
|
2621
|
+
_ && a?.message && E(a.message);
|
|
2611
2622
|
}, [_, a?.message]), s.useEffect(() => {
|
|
2612
2623
|
if (!e?.id || !$) return;
|
|
2613
|
-
const
|
|
2614
|
-
if (J.origin !== $ || !
|
|
2624
|
+
const G = (J) => {
|
|
2625
|
+
if (J.origin !== $ || !vn(J.data) || J.data.challengeId !== e.id) return;
|
|
2615
2626
|
if (J.data.kind === "fanfare:challenge:turnstile") {
|
|
2616
2627
|
const I = J.data.token;
|
|
2617
|
-
S(!0), v(!0),
|
|
2628
|
+
S(!0), v(!0), E(null), (async () => {
|
|
2618
2629
|
try {
|
|
2619
2630
|
await r(I);
|
|
2620
2631
|
} catch (pe) {
|
|
2621
|
-
|
|
2632
|
+
E(pe instanceof Error ? pe.message : g("challenge.verificationFailed"));
|
|
2622
2633
|
} finally {
|
|
2623
2634
|
v(!1);
|
|
2624
2635
|
}
|
|
@@ -2628,30 +2639,30 @@ function Na({
|
|
|
2628
2639
|
S(!0);
|
|
2629
2640
|
const ue = typeof J.data.reason == "string" ? J.data.reason : void 0, le = typeof J.data.message == "string" ? J.data.message : void 0;
|
|
2630
2641
|
if (ue === "challenge_expired" || ue === "challenge_not_found") {
|
|
2631
|
-
N("reroute"),
|
|
2642
|
+
N("reroute"), E(
|
|
2632
2643
|
le ?? (J.data.kind === "fanfare:challenge:turnstile_expired" ? g("challenge.expiredRefresh") : g("challenge.errorRefresh"))
|
|
2633
2644
|
);
|
|
2634
2645
|
return;
|
|
2635
2646
|
}
|
|
2636
2647
|
if (N("reload"), J.data.kind === "fanfare:challenge:turnstile_expired") {
|
|
2637
|
-
|
|
2648
|
+
E(le ?? g("challenge.expiredRetry")), x((I) => I + 1), w(!1);
|
|
2638
2649
|
return;
|
|
2639
2650
|
}
|
|
2640
|
-
|
|
2651
|
+
E(le ?? g("challenge.errorRetry")), x((I) => I + 1), w(!1);
|
|
2641
2652
|
};
|
|
2642
|
-
return window.addEventListener("message",
|
|
2643
|
-
window.removeEventListener("message",
|
|
2653
|
+
return window.addEventListener("message", G), () => {
|
|
2654
|
+
window.removeEventListener("message", G);
|
|
2644
2655
|
};
|
|
2645
2656
|
}, [e?.id, $, r, g]);
|
|
2646
2657
|
const R = f ?? g("challenge.title"), te = l ?? g("challenge.description"), H = u ?? g("challenge.retry"), j = i ?? g("challenge.badgeLabel"), ae = () => {
|
|
2647
|
-
const
|
|
2648
|
-
if (
|
|
2658
|
+
const G = D;
|
|
2659
|
+
if (E(null), S(!1), n && (G === "reroute" || !P || typeof B == "number" && B <= 0)) {
|
|
2649
2660
|
N("reload"), n();
|
|
2650
2661
|
return;
|
|
2651
2662
|
}
|
|
2652
2663
|
N("reload"), x((J) => J + 1), w(!1);
|
|
2653
2664
|
};
|
|
2654
|
-
return /* @__PURE__ */ c(Z, { className:
|
|
2665
|
+
return /* @__PURE__ */ c(Z, { className: V("fanfare-challenge-gate", y), "data-slot": "challenge-gate", children: [
|
|
2655
2666
|
/* @__PURE__ */ t(Q, { variant: o, label: j }),
|
|
2656
2667
|
/* @__PURE__ */ c(K, { children: [
|
|
2657
2668
|
d ? /* @__PURE__ */ c("div", { "data-slot": "challenge-gate-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
@@ -2667,7 +2678,7 @@ function Na({
|
|
|
2667
2678
|
{
|
|
2668
2679
|
tone: "danger",
|
|
2669
2680
|
title: a?.message ?? g("challenge.blockedDefault"),
|
|
2670
|
-
description: ce ? g("challenge.blockedUntil", { values: { date:
|
|
2681
|
+
description: ce ? g("challenge.blockedUntil", { values: { date: xn(ce, b) } }) : void 0
|
|
2671
2682
|
}
|
|
2672
2683
|
) : P ? /* @__PURE__ */ c("div", { className: "ff:relative ff:w-full ff:rounded-md ff:border ff:border-border ff:bg-background ff:overflow-hidden", children: [
|
|
2673
2684
|
!h && /* @__PURE__ */ t("div", { className: "ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:bg-background/60", children: /* @__PURE__ */ t(De, { size: "lg" }) }),
|
|
@@ -2686,11 +2697,11 @@ function Na({
|
|
|
2686
2697
|
`${e?.id ?? "challenge"}-${m}`
|
|
2687
2698
|
)
|
|
2688
2699
|
] }) : /* @__PURE__ */ t(ve, { tone: "danger", title: g("challenge.unableToLoad") }),
|
|
2689
|
-
|
|
2700
|
+
M && /* @__PURE__ */ t(
|
|
2690
2701
|
ve,
|
|
2691
2702
|
{
|
|
2692
2703
|
tone: "danger",
|
|
2693
|
-
title:
|
|
2704
|
+
title: M,
|
|
2694
2705
|
description: B !== void 0 ? g("challenge.attemptsRemaining", { values: { count: B } }) : void 0
|
|
2695
2706
|
}
|
|
2696
2707
|
),
|
|
@@ -2699,14 +2710,14 @@ function Na({
|
|
|
2699
2710
|
/* @__PURE__ */ t(U, {})
|
|
2700
2711
|
] });
|
|
2701
2712
|
}
|
|
2702
|
-
|
|
2703
|
-
function
|
|
2704
|
-
const { t: f, locale: l } =
|
|
2713
|
+
Ca.displayName = "ChallengeGate";
|
|
2714
|
+
function Da({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, className: i }) {
|
|
2715
|
+
const { t: f, locale: l } = Y(), d = e ?? f("ended.title"), u = a ?? f("ended.message"), y = s.useMemo(() => r ? (r instanceof Date ? r : new Date(r)).toLocaleDateString(l, {
|
|
2705
2716
|
month: "long",
|
|
2706
2717
|
day: "numeric",
|
|
2707
2718
|
year: "numeric"
|
|
2708
2719
|
}) : null, [r, l]), g = he();
|
|
2709
|
-
return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ c(Z, { className:
|
|
2720
|
+
return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", i), "data-slot": "ended-module", role: "status", children: [
|
|
2710
2721
|
/* @__PURE__ */ t(Q, { variant: "outline", label: d }),
|
|
2711
2722
|
/* @__PURE__ */ c(K, { children: [
|
|
2712
2723
|
/* @__PURE__ */ c(se, { children: [
|
|
@@ -2718,9 +2729,9 @@ function Sa({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, clas
|
|
|
2718
2729
|
/* @__PURE__ */ t(U, {})
|
|
2719
2730
|
] }) });
|
|
2720
2731
|
}
|
|
2721
|
-
|
|
2732
|
+
Da.displayName = "EndedModule";
|
|
2722
2733
|
function Ke({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, className: f }) {
|
|
2723
|
-
const { t: l } =
|
|
2734
|
+
const { t: l } = Y(), [d, u] = s.useState(!1), y = r ?? l("error.label"), g = a ?? l("error.title"), m = (e instanceof Error ? e.message : e) ?? l("error.description"), x = o ?? l("error.retry"), h = async () => {
|
|
2724
2735
|
if (i) {
|
|
2725
2736
|
u(!0);
|
|
2726
2737
|
try {
|
|
@@ -2730,7 +2741,7 @@ function Ke({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
|
|
|
2730
2741
|
}
|
|
2731
2742
|
}
|
|
2732
2743
|
}, w = he();
|
|
2733
|
-
return /* @__PURE__ */ t(W.div, { ...w, children: /* @__PURE__ */ c(Z, { className:
|
|
2744
|
+
return /* @__PURE__ */ t(W.div, { ...w, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", f), "data-slot": "error-view", role: "alert", children: [
|
|
2734
2745
|
/* @__PURE__ */ t(Q, { variant: "danger", label: y }),
|
|
2735
2746
|
/* @__PURE__ */ c(K, { children: [
|
|
2736
2747
|
/* @__PURE__ */ t(ve, { tone: "danger", title: g, description: m }),
|
|
@@ -2752,7 +2763,7 @@ function Ke({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
|
|
|
2752
2763
|
] }) });
|
|
2753
2764
|
}
|
|
2754
2765
|
Ke.displayName = "ErrorView";
|
|
2755
|
-
const
|
|
2766
|
+
const yn = {
|
|
2756
2767
|
default: {
|
|
2757
2768
|
particleCount: 60,
|
|
2758
2769
|
spread: 70,
|
|
@@ -2784,22 +2795,22 @@ const bn = {
|
|
|
2784
2795
|
clean: null
|
|
2785
2796
|
// No confetti for clean variant - too busy
|
|
2786
2797
|
};
|
|
2787
|
-
function
|
|
2798
|
+
function kn(e, a) {
|
|
2788
2799
|
if (Qe())
|
|
2789
2800
|
return;
|
|
2790
|
-
const r =
|
|
2801
|
+
const r = yn[a];
|
|
2791
2802
|
if (!r)
|
|
2792
2803
|
return;
|
|
2793
2804
|
const n = e.getBoundingClientRect(), o = (n.left + n.width / 2) / window.innerWidth, i = (n.top + n.height / 2) / window.innerHeight;
|
|
2794
|
-
|
|
2805
|
+
lr({
|
|
2795
2806
|
...r,
|
|
2796
2807
|
origin: { x: o, y: i }
|
|
2797
2808
|
});
|
|
2798
2809
|
}
|
|
2799
|
-
function
|
|
2810
|
+
function _n(e) {
|
|
2800
2811
|
const a = me(), r = s.useRef(!1);
|
|
2801
2812
|
s.useEffect(() => {
|
|
2802
|
-
r.current || e.current && (r.current = !0,
|
|
2813
|
+
r.current || e.current && (r.current = !0, kn(e.current, a));
|
|
2803
2814
|
}, [e, a]);
|
|
2804
2815
|
}
|
|
2805
2816
|
function et({
|
|
@@ -2810,13 +2821,13 @@ function et({
|
|
|
2810
2821
|
onCtaClick: o,
|
|
2811
2822
|
className: i
|
|
2812
2823
|
}) {
|
|
2813
|
-
const { t: f } =
|
|
2814
|
-
|
|
2824
|
+
const { t: f } = Y(), l = s.useRef(null);
|
|
2825
|
+
_n(l);
|
|
2815
2826
|
const d = he();
|
|
2816
2827
|
return /* @__PURE__ */ t(W.div, { ...d, children: /* @__PURE__ */ c(
|
|
2817
2828
|
Z,
|
|
2818
2829
|
{
|
|
2819
|
-
className:
|
|
2830
|
+
className: V("ff:w-full ff:max-w-sm", i),
|
|
2820
2831
|
"data-slot": "granted-panel",
|
|
2821
2832
|
"data-stage": "granted",
|
|
2822
2833
|
role: "status",
|
|
@@ -2835,20 +2846,33 @@ function et({
|
|
|
2835
2846
|
) });
|
|
2836
2847
|
}
|
|
2837
2848
|
et.displayName = "GrantedPanel";
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2849
|
+
const Nn = {
|
|
2850
|
+
queue: "expired.reenter.queue",
|
|
2851
|
+
draw: "expired.reenter.draw",
|
|
2852
|
+
auction: "expired.reenter.auction",
|
|
2853
|
+
timed_release: "expired.reenter.timedRelease",
|
|
2854
|
+
appointment: "expired.reenter.appointment"
|
|
2855
|
+
};
|
|
2856
|
+
function Fe({
|
|
2857
|
+
outcomeReason: e,
|
|
2858
|
+
participationType: a,
|
|
2859
|
+
onReenter: r,
|
|
2860
|
+
isReentering: n,
|
|
2861
|
+
className: o
|
|
2862
|
+
}) {
|
|
2863
|
+
const { t: i } = Y(), f = e === "expired", l = f && typeof r == "function", d = i(a ? Nn[a] : "expired.reenter"), u = he();
|
|
2864
|
+
return /* @__PURE__ */ t(W.div, { ...u, children: /* @__PURE__ */ c(
|
|
2841
2865
|
Z,
|
|
2842
2866
|
{
|
|
2843
|
-
className:
|
|
2867
|
+
className: V("ff:w-full ff:max-w-sm", o),
|
|
2844
2868
|
"data-slot": "outcome-panel",
|
|
2845
2869
|
"data-stage": "ended",
|
|
2846
2870
|
"data-reason": e,
|
|
2847
2871
|
children: [
|
|
2848
|
-
/* @__PURE__ */ t(Q, { variant: "outline", label:
|
|
2872
|
+
/* @__PURE__ */ t(Q, { variant: "outline", label: i(f ? "expired.title" : "ended.title") }),
|
|
2849
2873
|
/* @__PURE__ */ c(K, { children: [
|
|
2850
|
-
/* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children:
|
|
2851
|
-
|
|
2874
|
+
/* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: i(f ? "expired.description" : "ended.message") }) }),
|
|
2875
|
+
l && /* @__PURE__ */ t(F, { className: "ff:mt-auto", onClick: r, disabled: n, loading: n, children: d })
|
|
2852
2876
|
] }),
|
|
2853
2877
|
/* @__PURE__ */ t(U, {})
|
|
2854
2878
|
]
|
|
@@ -2856,7 +2880,7 @@ function Fe({ outcomeReason: e, onReenter: a, isReentering: r, className: n }) {
|
|
|
2856
2880
|
) });
|
|
2857
2881
|
}
|
|
2858
2882
|
Fe.displayName = "OutcomePanel";
|
|
2859
|
-
function
|
|
2883
|
+
function Va({
|
|
2860
2884
|
stage: e,
|
|
2861
2885
|
onAuthSubmit: a,
|
|
2862
2886
|
onAuthVerify: r,
|
|
@@ -2877,7 +2901,7 @@ function Ca({
|
|
|
2877
2901
|
return e === "none" ? /* @__PURE__ */ t(Ce, { children: h }) : e === "loading" ? /* @__PURE__ */ t(
|
|
2878
2902
|
"div",
|
|
2879
2903
|
{
|
|
2880
|
-
className:
|
|
2904
|
+
className: V(
|
|
2881
2905
|
"fanfare-journey-gate",
|
|
2882
2906
|
"ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12",
|
|
2883
2907
|
x
|
|
@@ -2888,8 +2912,8 @@ function Ca({
|
|
|
2888
2912
|
"aria-busy": "true",
|
|
2889
2913
|
children: /* @__PURE__ */ t(De, { size: "lg", className: "ff:text-primary" })
|
|
2890
2914
|
}
|
|
2891
|
-
) : e === "auth" ? /* @__PURE__ */ t("div", { className:
|
|
2892
|
-
|
|
2915
|
+
) : e === "auth" ? /* @__PURE__ */ t("div", { className: V("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
|
|
2916
|
+
_a,
|
|
2893
2917
|
{
|
|
2894
2918
|
title: u,
|
|
2895
2919
|
description: y,
|
|
@@ -2900,8 +2924,8 @@ function Ca({
|
|
|
2900
2924
|
onSuccess: o,
|
|
2901
2925
|
allowSkip: l
|
|
2902
2926
|
}
|
|
2903
|
-
) }) : e === "access_code" ? /* @__PURE__ */ t("div", { className:
|
|
2904
|
-
|
|
2927
|
+
) }) : e === "access_code" ? /* @__PURE__ */ t("div", { className: V("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
|
|
2928
|
+
Sa,
|
|
2905
2929
|
{
|
|
2906
2930
|
title: g,
|
|
2907
2931
|
description: b,
|
|
@@ -2912,29 +2936,29 @@ function Ca({
|
|
|
2912
2936
|
}
|
|
2913
2937
|
) }) : null;
|
|
2914
2938
|
}
|
|
2915
|
-
|
|
2916
|
-
function
|
|
2939
|
+
Va.displayName = "JourneyGate";
|
|
2940
|
+
function Sn(e, a) {
|
|
2917
2941
|
return jt(e, { weekday: "long", timeZone: a });
|
|
2918
2942
|
}
|
|
2919
|
-
function
|
|
2943
|
+
function Cn(e, a) {
|
|
2920
2944
|
return jt(e, { month: "long", day: "numeric", timeZone: a });
|
|
2921
2945
|
}
|
|
2922
2946
|
function Ft(e, a) {
|
|
2923
2947
|
return jt(e, { hour: "numeric", minute: "2-digit", timeZone: a });
|
|
2924
2948
|
}
|
|
2925
|
-
function
|
|
2949
|
+
function Ea(e, a) {
|
|
2926
2950
|
const r = Date.parse(e), n = Date.parse(a);
|
|
2927
2951
|
if (!Number.isFinite(r) || !Number.isFinite(n)) return null;
|
|
2928
2952
|
const o = Math.round((n - r) / 6e4);
|
|
2929
2953
|
return o > 0 ? o : null;
|
|
2930
2954
|
}
|
|
2931
|
-
function
|
|
2955
|
+
function Ma(e) {
|
|
2932
2956
|
if (!e.startTime) return e.id;
|
|
2933
2957
|
const a = Ft(e.startTime, e.timezone);
|
|
2934
2958
|
return a === e.startTime ? e.id : a;
|
|
2935
2959
|
}
|
|
2936
2960
|
function jt(e, a) {
|
|
2937
|
-
const r =
|
|
2961
|
+
const r = Dn(e);
|
|
2938
2962
|
if (!r) return e;
|
|
2939
2963
|
try {
|
|
2940
2964
|
return new Intl.DateTimeFormat(void 0, a).format(r);
|
|
@@ -2942,7 +2966,7 @@ function jt(e, a) {
|
|
|
2942
2966
|
return e;
|
|
2943
2967
|
}
|
|
2944
2968
|
}
|
|
2945
|
-
function
|
|
2969
|
+
function Dn(e) {
|
|
2946
2970
|
try {
|
|
2947
2971
|
const a = new Date(e);
|
|
2948
2972
|
return Number.isNaN(a.getTime()) ? null : a;
|
|
@@ -2963,11 +2987,11 @@ function ct(e, a) {
|
|
|
2963
2987
|
return e.toISOString().slice(0, 10);
|
|
2964
2988
|
}
|
|
2965
2989
|
}
|
|
2966
|
-
function
|
|
2990
|
+
function ra(e, a) {
|
|
2967
2991
|
const [r, n, o] = e.split("-").map(Number);
|
|
2968
2992
|
return !r || !n || !o ? e : new Date(Date.UTC(r, n - 1, o + a)).toISOString().slice(0, 10);
|
|
2969
2993
|
}
|
|
2970
|
-
function
|
|
2994
|
+
function Vn(e) {
|
|
2971
2995
|
const [a, r, n] = e.split("-").map(Number);
|
|
2972
2996
|
if (!a || !r || !n) return "";
|
|
2973
2997
|
const o = new Date(Date.UTC(a, r - 1, n, 12, 0, 0));
|
|
@@ -2977,11 +3001,11 @@ function Sn(e) {
|
|
|
2977
3001
|
return "";
|
|
2978
3002
|
}
|
|
2979
3003
|
}
|
|
2980
|
-
function
|
|
3004
|
+
function En(e) {
|
|
2981
3005
|
const [, , a] = e.split("-").map(Number);
|
|
2982
3006
|
return a ?? 0;
|
|
2983
3007
|
}
|
|
2984
|
-
const
|
|
3008
|
+
const Mn = ne(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
|
|
2985
3009
|
variants: {
|
|
2986
3010
|
styleVariant: {
|
|
2987
3011
|
default: "",
|
|
@@ -3006,13 +3030,13 @@ const Dn = ne(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
|
|
|
3006
3030
|
defaultVariants: {
|
|
3007
3031
|
styleVariant: "default"
|
|
3008
3032
|
}
|
|
3009
|
-
}),
|
|
3033
|
+
}), Ta = s.forwardRef(({ className: e, ...a }, r) => {
|
|
3010
3034
|
const n = me();
|
|
3011
|
-
return /* @__PURE__ */ t("div", { ref: r, "data-slot": "skeleton", className:
|
|
3035
|
+
return /* @__PURE__ */ t("div", { ref: r, "data-slot": "skeleton", className: V(Mn({ styleVariant: n }), e), ...a });
|
|
3012
3036
|
});
|
|
3013
|
-
|
|
3014
|
-
const
|
|
3015
|
-
function
|
|
3037
|
+
Ta.displayName = "Skeleton";
|
|
3038
|
+
const Tn = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5m-9-6h.008v.008H12zM12 15h.008v.008H12zm0 2.25h.008v.008H12zM9.75 15h.008v.008H9.75zm0 2.25h.008v.008H9.75zM7.5 15h.008v.008H7.5zm0 2.25h.008v.008H7.5zm6.75-4.5h.008v.008h-.008zm0 2.25h.008v.008h-.008zm0 2.25h.008v.008h-.008zm2.25-4.5h.008v.008H16.5zm0 2.25h.008v.008H16.5z" }) }), Rn = wt(Tn), Ln = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "m15.75 10.5l4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25" }) }), Ra = wt(Ln);
|
|
3039
|
+
function La({
|
|
3016
3040
|
booking: e,
|
|
3017
3041
|
timezone: a,
|
|
3018
3042
|
readOnly: r = !1,
|
|
@@ -3023,17 +3047,17 @@ function Ta({
|
|
|
3023
3047
|
isCancelling: l,
|
|
3024
3048
|
cancelError: d
|
|
3025
3049
|
}) {
|
|
3026
|
-
const { t: u } =
|
|
3050
|
+
const { t: u } = Y(), [y, g] = s.useState(!1), b = Sn(e.startTime, a), m = Cn(e.startTime, a), x = Ft(e.startTime, a), h = Ea(e.startTime, e.endTime), w = !e.locationName, p = w ? u("appointment.online") : e.locationName, v = w ? {
|
|
3027
3051
|
label: u("appointment.joinCall"),
|
|
3028
3052
|
onClick: () => {
|
|
3029
3053
|
f ? f() : e.joinUrl && window.open(e.joinUrl, "_blank", "noopener,noreferrer");
|
|
3030
3054
|
},
|
|
3031
|
-
icon: /* @__PURE__ */ t(
|
|
3055
|
+
icon: /* @__PURE__ */ t(Ra, { className: "ff:size-4" }),
|
|
3032
3056
|
disabled: !e.joinUrl && !f
|
|
3033
3057
|
} : {
|
|
3034
3058
|
label: u("appointment.addToCalendar"),
|
|
3035
3059
|
onClick: () => i?.(),
|
|
3036
|
-
icon: /* @__PURE__ */ t(
|
|
3060
|
+
icon: /* @__PURE__ */ t(Rn, { className: "ff:size-4" }),
|
|
3037
3061
|
disabled: !i
|
|
3038
3062
|
};
|
|
3039
3063
|
return /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:gap-4", "data-slot": "appointment-booking-details", children: [
|
|
@@ -3096,9 +3120,9 @@ function Ta({
|
|
|
3096
3120
|
] })
|
|
3097
3121
|
] });
|
|
3098
3122
|
}
|
|
3099
|
-
|
|
3100
|
-
function
|
|
3101
|
-
const { t: o } =
|
|
3123
|
+
La.displayName = "AppointmentBookingDetails";
|
|
3124
|
+
function Aa({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
|
|
3125
|
+
const { t: o } = Y(), i = !e.locationName, f = Ft(e.startTime, a), l = Ea(e.startTime, e.endTime), d = o("appointment.youreUpAt", { values: { time: f } }), u = i ? o("appointment.youreUpOnlineHint") : o("appointment.youreUpIrlHint", { values: { location: e.locationName ?? "" } });
|
|
3102
3126
|
return /* @__PURE__ */ c(
|
|
3103
3127
|
"div",
|
|
3104
3128
|
{
|
|
@@ -3136,7 +3160,7 @@ function Ra({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
|
|
|
3136
3160
|
r ? r() : e.joinUrl && window.open(e.joinUrl, "_blank", "noopener,noreferrer");
|
|
3137
3161
|
},
|
|
3138
3162
|
children: /* @__PURE__ */ c("span", { className: "ff:flex ff:items-center ff:gap-1.5", children: [
|
|
3139
|
-
/* @__PURE__ */ t(
|
|
3163
|
+
/* @__PURE__ */ t(Ra, { className: "ff:size-4" }),
|
|
3140
3164
|
o("appointment.joinCall")
|
|
3141
3165
|
] })
|
|
3142
3166
|
}
|
|
@@ -3145,20 +3169,20 @@ function Ra({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
|
|
|
3145
3169
|
}
|
|
3146
3170
|
);
|
|
3147
3171
|
}
|
|
3148
|
-
|
|
3149
|
-
const
|
|
3150
|
-
function
|
|
3172
|
+
Aa.displayName = "AppointmentCheckedInView";
|
|
3173
|
+
const An = 3e4, Ct = /* @__PURE__ */ new Map();
|
|
3174
|
+
function na(e, a, r, n) {
|
|
3151
3175
|
return `${e}:${a}:${r}:${n ?? ""}`;
|
|
3152
3176
|
}
|
|
3153
|
-
function
|
|
3177
|
+
function In(e, a) {
|
|
3154
3178
|
const r = bt(), [n, o] = s.useState([]), [i, f] = s.useState(!1), [l, d] = s.useState(null), [u, y] = s.useState(0), { startDate: g, endDate: b, timezone: m } = a;
|
|
3155
3179
|
s.useEffect(() => {
|
|
3156
3180
|
if (!e || !g || !b) {
|
|
3157
3181
|
o([]), d(null), f(!1);
|
|
3158
3182
|
return;
|
|
3159
3183
|
}
|
|
3160
|
-
const h =
|
|
3161
|
-
if (w && Date.now() - w.fetchedAt <
|
|
3184
|
+
const h = na(e, g, b, m), w = Ct.get(h);
|
|
3185
|
+
if (w && Date.now() - w.fetchedAt < An) {
|
|
3162
3186
|
o(w.slots), d(null);
|
|
3163
3187
|
return;
|
|
3164
3188
|
}
|
|
@@ -3174,11 +3198,11 @@ function Rn(e, a) {
|
|
|
3174
3198
|
};
|
|
3175
3199
|
}, [r, e, g, b, m, u]);
|
|
3176
3200
|
const x = s.useCallback(() => {
|
|
3177
|
-
e && g && b && Ct.delete(
|
|
3201
|
+
e && g && b && Ct.delete(na(e, g, b, m)), y((h) => h + 1);
|
|
3178
3202
|
}, [e, g, b, m]);
|
|
3179
3203
|
return { slots: n, isLoading: i, error: l, refresh: x };
|
|
3180
3204
|
}
|
|
3181
|
-
function
|
|
3205
|
+
function Ia({ days: e, selectedDate: a, onSelect: r }) {
|
|
3182
3206
|
return /* @__PURE__ */ t(
|
|
3183
3207
|
"div",
|
|
3184
3208
|
{
|
|
@@ -3224,8 +3248,8 @@ function La({ days: e, selectedDate: a, onSelect: r }) {
|
|
|
3224
3248
|
}
|
|
3225
3249
|
);
|
|
3226
3250
|
}
|
|
3227
|
-
|
|
3228
|
-
function
|
|
3251
|
+
Ia.displayName = "AppointmentDayTabs";
|
|
3252
|
+
function za({
|
|
3229
3253
|
slotId: e,
|
|
3230
3254
|
timeLabel: a,
|
|
3231
3255
|
ariaLabel: r,
|
|
@@ -3253,16 +3277,16 @@ function Aa({
|
|
|
3253
3277
|
}
|
|
3254
3278
|
);
|
|
3255
3279
|
}
|
|
3256
|
-
|
|
3257
|
-
const
|
|
3258
|
-
function
|
|
3280
|
+
za.displayName = "AppointmentSlotItem";
|
|
3281
|
+
const zn = 9;
|
|
3282
|
+
function Fa({
|
|
3259
3283
|
slots: e,
|
|
3260
3284
|
isLoading: a,
|
|
3261
3285
|
selectedSlotId: r,
|
|
3262
3286
|
onSelect: n,
|
|
3263
3287
|
emptyMessage: o
|
|
3264
3288
|
}) {
|
|
3265
|
-
const { t: i } =
|
|
3289
|
+
const { t: i } = Y();
|
|
3266
3290
|
return a ? /* @__PURE__ */ t(
|
|
3267
3291
|
"div",
|
|
3268
3292
|
{
|
|
@@ -3272,7 +3296,7 @@ function Ia({
|
|
|
3272
3296
|
className: "ff:grid ff:grid-cols-3 ff:gap-1 ff:max-h-44",
|
|
3273
3297
|
"data-slot": "appointment-slot-grid",
|
|
3274
3298
|
"data-state": "loading",
|
|
3275
|
-
children: Array.from({ length:
|
|
3299
|
+
children: Array.from({ length: zn }).map((f, l) => /* @__PURE__ */ t(Ta, { className: "ff:h-8 ff:w-full" }, l))
|
|
3276
3300
|
}
|
|
3277
3301
|
) : e.length === 0 ? /* @__PURE__ */ t(se, { "data-slot": "appointment-slot-grid", "data-state": "empty", children: /* @__PURE__ */ t("span", { className: "ff:text-muted", children: o ?? i("appointment.noSlotsAvailable") }) }) : /* @__PURE__ */ t(
|
|
3278
3302
|
"div",
|
|
@@ -3282,9 +3306,9 @@ function Ia({
|
|
|
3282
3306
|
className: "ff:grid ff:grid-cols-3 ff:gap-1 ff:overflow-y-auto ff:max-h-44",
|
|
3283
3307
|
"data-slot": "appointment-slot-grid",
|
|
3284
3308
|
children: e.map((f) => {
|
|
3285
|
-
const l = f.available <= 0, d = r === f.id, u =
|
|
3309
|
+
const l = f.available <= 0, d = r === f.id, u = Ma(f), y = l ? i("appointment.slotFullAriaLabel", { values: { time: u } }) : u;
|
|
3286
3310
|
return /* @__PURE__ */ t(
|
|
3287
|
-
|
|
3311
|
+
za,
|
|
3288
3312
|
{
|
|
3289
3313
|
slotId: f.id,
|
|
3290
3314
|
timeLabel: u,
|
|
@@ -3299,9 +3323,9 @@ function Ia({
|
|
|
3299
3323
|
}
|
|
3300
3324
|
);
|
|
3301
3325
|
}
|
|
3302
|
-
|
|
3303
|
-
const
|
|
3304
|
-
function
|
|
3326
|
+
Fa.displayName = "AppointmentSlotGrid";
|
|
3327
|
+
const oa = 7;
|
|
3328
|
+
function ja({
|
|
3305
3329
|
appointmentId: e,
|
|
3306
3330
|
bookingWindowOpenAt: a,
|
|
3307
3331
|
bookingWindowCloseAt: r,
|
|
@@ -3309,60 +3333,60 @@ function za({
|
|
|
3309
3333
|
onSlotChange: o,
|
|
3310
3334
|
bookError: i
|
|
3311
3335
|
}) {
|
|
3312
|
-
const { t: f } =
|
|
3336
|
+
const { t: f } = Y(), l = s.useMemo(
|
|
3313
3337
|
() => a ? ct(new Date(a), n) : void 0,
|
|
3314
3338
|
[a, n]
|
|
3315
3339
|
), d = s.useMemo(
|
|
3316
3340
|
() => r ? ct(new Date(r), n) : void 0,
|
|
3317
3341
|
[r, n]
|
|
3318
3342
|
), { startDate: u, endDate: y } = s.useMemo(() => {
|
|
3319
|
-
const
|
|
3343
|
+
const D = ct(/* @__PURE__ */ new Date(), n), N = l && l > D ? l : D, T = ra(N, oa - 1), L = d && d < T ? d : T;
|
|
3320
3344
|
return { startDate: N, endDate: L };
|
|
3321
|
-
}, [l, d, n]), { slots: g, isLoading: b, error: m } =
|
|
3322
|
-
const
|
|
3345
|
+
}, [l, d, n]), { slots: g, isLoading: b, error: m } = In(e, { startDate: u, endDate: y, timezone: n }), x = s.useMemo(() => {
|
|
3346
|
+
const D = /* @__PURE__ */ new Map();
|
|
3323
3347
|
for (const N of g) {
|
|
3324
|
-
const T = N.startTime ? ct(new Date(N.startTime), N.timezone ?? n) : N.id.slice(0, 10), L =
|
|
3325
|
-
L ? L.push(N) :
|
|
3348
|
+
const T = N.startTime ? ct(new Date(N.startTime), N.timezone ?? n) : N.id.slice(0, 10), L = D.get(T);
|
|
3349
|
+
L ? L.push(N) : D.set(T, [N]);
|
|
3326
3350
|
}
|
|
3327
|
-
return
|
|
3351
|
+
return D;
|
|
3328
3352
|
}, [g, n]), h = s.useMemo(() => {
|
|
3329
|
-
const
|
|
3330
|
-
for (let N = 0; N <
|
|
3331
|
-
const T =
|
|
3353
|
+
const D = [];
|
|
3354
|
+
for (let N = 0; N < oa; N += 1) {
|
|
3355
|
+
const T = ra(u, N);
|
|
3332
3356
|
if (d && T > d) break;
|
|
3333
3357
|
const L = x.get(T) ?? [], $ = L.some((X) => X.available > 0), P = !b && L.length === 0;
|
|
3334
|
-
|
|
3358
|
+
D.push({
|
|
3335
3359
|
date: T,
|
|
3336
|
-
weekdayLabel:
|
|
3337
|
-
dayNumber:
|
|
3360
|
+
weekdayLabel: Vn(T),
|
|
3361
|
+
dayNumber: En(T),
|
|
3338
3362
|
hasAvailability: $,
|
|
3339
3363
|
isClosed: P
|
|
3340
3364
|
});
|
|
3341
3365
|
}
|
|
3342
|
-
return
|
|
3343
|
-
}, [u, d, x, b]), [w, p] = s.useState(null), [v,
|
|
3366
|
+
return D;
|
|
3367
|
+
}, [u, d, x, b]), [w, p] = s.useState(null), [v, M] = s.useState(null);
|
|
3344
3368
|
s.useEffect(() => {
|
|
3345
3369
|
if (w && h.some((N) => N.date === w && !N.isClosed)) return;
|
|
3346
|
-
const
|
|
3347
|
-
|
|
3370
|
+
const D = h.find((N) => !N.isClosed);
|
|
3371
|
+
D && (p(D.date), M(null));
|
|
3348
3372
|
}, [h, w]);
|
|
3349
|
-
const
|
|
3373
|
+
const E = s.useMemo(() => w ? x.get(w) ?? [] : [], [w, x]);
|
|
3350
3374
|
s.useEffect(() => {
|
|
3351
3375
|
if (!o) return;
|
|
3352
|
-
const
|
|
3353
|
-
o(
|
|
3354
|
-
}, [
|
|
3355
|
-
const _ = s.useCallback((
|
|
3356
|
-
p(
|
|
3357
|
-
}, []), S = s.useCallback((
|
|
3358
|
-
|
|
3376
|
+
const D = E.find((N) => N.id === v) ?? null;
|
|
3377
|
+
o(D);
|
|
3378
|
+
}, [E, v, o]);
|
|
3379
|
+
const _ = s.useCallback((D) => {
|
|
3380
|
+
p(D), M(null);
|
|
3381
|
+
}, []), S = s.useCallback((D) => {
|
|
3382
|
+
M((N) => N === D ? null : D);
|
|
3359
3383
|
}, []);
|
|
3360
3384
|
return /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:gap-2", children: [
|
|
3361
|
-
/* @__PURE__ */ t(
|
|
3385
|
+
/* @__PURE__ */ t(Ia, { days: h, selectedDate: w, onSelect: _ }),
|
|
3362
3386
|
/* @__PURE__ */ t(
|
|
3363
|
-
|
|
3387
|
+
Fa,
|
|
3364
3388
|
{
|
|
3365
|
-
slots:
|
|
3389
|
+
slots: E,
|
|
3366
3390
|
isLoading: b,
|
|
3367
3391
|
selectedSlotId: v,
|
|
3368
3392
|
onSelect: S
|
|
@@ -3371,9 +3395,9 @@ function za({
|
|
|
3371
3395
|
(i || m) && /* @__PURE__ */ t(ve, { tone: "danger", description: i ?? m?.message ?? f("appointment.bookingFailed") })
|
|
3372
3396
|
] });
|
|
3373
3397
|
}
|
|
3374
|
-
|
|
3375
|
-
const
|
|
3376
|
-
function
|
|
3398
|
+
ja.displayName = "AppointmentSlotPicker";
|
|
3399
|
+
const Fn = ze({});
|
|
3400
|
+
function Mt({
|
|
3377
3401
|
appointmentId: e,
|
|
3378
3402
|
state$: a,
|
|
3379
3403
|
sequencePhase: r,
|
|
@@ -3394,19 +3418,19 @@ function Et({
|
|
|
3394
3418
|
isReentering: p,
|
|
3395
3419
|
className: v
|
|
3396
3420
|
}) {
|
|
3397
|
-
const { t:
|
|
3421
|
+
const { t: M } = Y(), E = Ee(a ?? Fn), [_, S] = s.useState(!1), D = he();
|
|
3398
3422
|
if (r === "ended")
|
|
3399
|
-
return /* @__PURE__ */ t(Fe, { outcomeReason: h ?? "ended", className: v });
|
|
3423
|
+
return /* @__PURE__ */ t(Fe, { outcomeReason: h ?? "ended", participationType: "appointment", className: v });
|
|
3400
3424
|
if (r === "participating" && _)
|
|
3401
3425
|
return /* @__PURE__ */ t(
|
|
3402
|
-
|
|
3426
|
+
fa,
|
|
3403
3427
|
{
|
|
3404
3428
|
appointmentId: e,
|
|
3405
3429
|
bookingWindowOpenAt: n,
|
|
3406
3430
|
bookingWindowCloseAt: o,
|
|
3407
3431
|
timezone: i,
|
|
3408
3432
|
defaultLocationId: f,
|
|
3409
|
-
headingLabel:
|
|
3433
|
+
headingLabel: M("appointment.rescheduleTitle"),
|
|
3410
3434
|
headingVariant: "default",
|
|
3411
3435
|
confirmLabelKey: "appointment.continueWithTime",
|
|
3412
3436
|
idleLabelKey: "appointment.selectATime",
|
|
@@ -3416,24 +3440,24 @@ function Et({
|
|
|
3416
3440
|
await u(N, T), S(!1);
|
|
3417
3441
|
},
|
|
3418
3442
|
className: v,
|
|
3419
|
-
motionProps:
|
|
3443
|
+
motionProps: D,
|
|
3420
3444
|
dataStage: "participating",
|
|
3421
3445
|
dataMode: "reschedule"
|
|
3422
3446
|
}
|
|
3423
3447
|
);
|
|
3424
3448
|
if (r === "participating") {
|
|
3425
|
-
const N =
|
|
3426
|
-
return /* @__PURE__ */ t(W.div, { ...
|
|
3449
|
+
const N = E.booking, T = N?.consumerStatus, L = T === "checked_in", $ = T === "completed", P = $ ? "completed" : L ? "checked_in" : "booked", X = M($ ? "appointment.completedTitle" : L ? "appointment.checkedIn" : "appointment.bookedTitle");
|
|
3450
|
+
return /* @__PURE__ */ t(W.div, { ...D, children: /* @__PURE__ */ c(
|
|
3427
3451
|
Z,
|
|
3428
3452
|
{
|
|
3429
|
-
className:
|
|
3453
|
+
className: V("ff:w-full ff:max-w-sm", v),
|
|
3430
3454
|
"data-slot": "appointment-module",
|
|
3431
3455
|
"data-stage": "participating",
|
|
3432
3456
|
"data-substage": P,
|
|
3433
3457
|
children: [
|
|
3434
3458
|
/* @__PURE__ */ t(Q, { variant: "success", label: X }),
|
|
3435
|
-
/* @__PURE__ */ t(K, { children: N ? L ? /* @__PURE__ */ t(
|
|
3436
|
-
|
|
3459
|
+
/* @__PURE__ */ t(K, { children: N ? L ? /* @__PURE__ */ t(Aa, { booking: N, timezone: i }) : /* @__PURE__ */ t(
|
|
3460
|
+
La,
|
|
3437
3461
|
{
|
|
3438
3462
|
booking: N,
|
|
3439
3463
|
timezone: i,
|
|
@@ -3443,20 +3467,20 @@ function Et({
|
|
|
3443
3467
|
isCancelling: g,
|
|
3444
3468
|
cancelError: x
|
|
3445
3469
|
}
|
|
3446
|
-
) : /* @__PURE__ */ t("span", { className: "ff:text-muted", children:
|
|
3470
|
+
) : /* @__PURE__ */ t("span", { className: "ff:text-muted", children: M("appointment.loadingBooking") }) })
|
|
3447
3471
|
]
|
|
3448
3472
|
}
|
|
3449
3473
|
) });
|
|
3450
3474
|
}
|
|
3451
3475
|
return /* @__PURE__ */ t(
|
|
3452
|
-
|
|
3476
|
+
fa,
|
|
3453
3477
|
{
|
|
3454
3478
|
appointmentId: e,
|
|
3455
3479
|
bookingWindowOpenAt: n,
|
|
3456
3480
|
bookingWindowCloseAt: o,
|
|
3457
3481
|
timezone: i,
|
|
3458
3482
|
defaultLocationId: f,
|
|
3459
|
-
headingLabel:
|
|
3483
|
+
headingLabel: M("appointment.title"),
|
|
3460
3484
|
headingVariant: "default",
|
|
3461
3485
|
confirmLabelKey: "appointment.continueWithTime",
|
|
3462
3486
|
idleLabelKey: "appointment.selectATime",
|
|
@@ -3464,13 +3488,13 @@ function Et({
|
|
|
3464
3488
|
error: m,
|
|
3465
3489
|
onConfirm: l,
|
|
3466
3490
|
className: v,
|
|
3467
|
-
motionProps:
|
|
3491
|
+
motionProps: D,
|
|
3468
3492
|
dataStage: "enterable"
|
|
3469
3493
|
}
|
|
3470
3494
|
);
|
|
3471
3495
|
}
|
|
3472
|
-
|
|
3473
|
-
function
|
|
3496
|
+
Mt.displayName = "AppointmentModule";
|
|
3497
|
+
function fa({
|
|
3474
3498
|
appointmentId: e,
|
|
3475
3499
|
bookingWindowOpenAt: a,
|
|
3476
3500
|
bookingWindowCloseAt: r,
|
|
@@ -3488,7 +3512,7 @@ function na({
|
|
|
3488
3512
|
dataStage: x,
|
|
3489
3513
|
dataMode: h
|
|
3490
3514
|
}) {
|
|
3491
|
-
const { t: w } =
|
|
3515
|
+
const { t: w } = Y(), [p, v] = s.useState(null), M = p ? w(l, { values: { time: Ma(p) } }) : w(d), E = s.useCallback(async () => {
|
|
3492
3516
|
if (!p) return;
|
|
3493
3517
|
const _ = p.locationId ?? o;
|
|
3494
3518
|
await g(p.id, _);
|
|
@@ -3496,14 +3520,14 @@ function na({
|
|
|
3496
3520
|
return /* @__PURE__ */ t(W.div, { ...m, children: /* @__PURE__ */ c(
|
|
3497
3521
|
Z,
|
|
3498
3522
|
{
|
|
3499
|
-
className:
|
|
3523
|
+
className: V("ff:w-full ff:max-w-sm", b),
|
|
3500
3524
|
"data-slot": "appointment-module",
|
|
3501
3525
|
"data-stage": x,
|
|
3502
3526
|
"data-mode": h,
|
|
3503
3527
|
children: [
|
|
3504
3528
|
/* @__PURE__ */ t(Q, { variant: f, label: i }),
|
|
3505
3529
|
/* @__PURE__ */ t(K, { className: "ff:gap-2", children: /* @__PURE__ */ t(
|
|
3506
|
-
|
|
3530
|
+
ja,
|
|
3507
3531
|
{
|
|
3508
3532
|
appointmentId: e,
|
|
3509
3533
|
bookingWindowOpenAt: a,
|
|
@@ -3518,17 +3542,17 @@ function na({
|
|
|
3518
3542
|
{
|
|
3519
3543
|
size: "sm",
|
|
3520
3544
|
className: "ff:w-full",
|
|
3521
|
-
onClick:
|
|
3545
|
+
onClick: E,
|
|
3522
3546
|
disabled: !p || u,
|
|
3523
3547
|
loading: u,
|
|
3524
|
-
children:
|
|
3548
|
+
children: M
|
|
3525
3549
|
}
|
|
3526
3550
|
) })
|
|
3527
3551
|
]
|
|
3528
3552
|
}
|
|
3529
3553
|
) });
|
|
3530
3554
|
}
|
|
3531
|
-
function
|
|
3555
|
+
function jn(e, a) {
|
|
3532
3556
|
try {
|
|
3533
3557
|
return new Intl.NumberFormat(a, {
|
|
3534
3558
|
style: "currency",
|
|
@@ -3539,7 +3563,7 @@ function In(e, a) {
|
|
|
3539
3563
|
return e;
|
|
3540
3564
|
}
|
|
3541
3565
|
}
|
|
3542
|
-
function
|
|
3566
|
+
function Pn(e, a) {
|
|
3543
3567
|
const r = a?.currencyCode, n = a?.minimumFractionDigits ?? 2, o = a?.maximumFractionDigits ?? 2;
|
|
3544
3568
|
if (r)
|
|
3545
3569
|
try {
|
|
@@ -3552,7 +3576,7 @@ function zn(e, a) {
|
|
|
3552
3576
|
}).format(e);
|
|
3553
3577
|
} catch {
|
|
3554
3578
|
}
|
|
3555
|
-
const i = a?.currencySymbol ?? (r ?
|
|
3579
|
+
const i = a?.currencySymbol ?? (r ? jn(r, a?.locale) : "$");
|
|
3556
3580
|
try {
|
|
3557
3581
|
const f = e.toLocaleString(a?.locale, { minimumFractionDigits: n, maximumFractionDigits: o });
|
|
3558
3582
|
return `${i}${f}`;
|
|
@@ -3560,8 +3584,8 @@ function zn(e, a) {
|
|
|
3560
3584
|
return `${i}${e.toFixed(o)}`;
|
|
3561
3585
|
}
|
|
3562
3586
|
}
|
|
3563
|
-
const
|
|
3564
|
-
function
|
|
3587
|
+
const Bn = ze({});
|
|
3588
|
+
function $n(e, a) {
|
|
3565
3589
|
const r = { ...e }, n = r;
|
|
3566
3590
|
for (const [o, i] of Object.entries(a))
|
|
3567
3591
|
i !== void 0 && (n[o] = i);
|
|
@@ -3587,13 +3611,13 @@ function Ze({
|
|
|
3587
3611
|
checkoutUrl: w,
|
|
3588
3612
|
onCheckoutClick: p,
|
|
3589
3613
|
outcomeReason: v,
|
|
3590
|
-
onReenter:
|
|
3591
|
-
isReentering:
|
|
3614
|
+
onReenter: M,
|
|
3615
|
+
isReentering: E,
|
|
3592
3616
|
className: _
|
|
3593
3617
|
}) {
|
|
3594
|
-
const { t: S } =
|
|
3595
|
-
() =>
|
|
3596
|
-
[a,
|
|
3618
|
+
const { t: S } = Y(), D = Ee(e ?? Bn), N = s.useMemo(
|
|
3619
|
+
() => $n(a, D),
|
|
3620
|
+
[a, D]
|
|
3597
3621
|
), T = s.useMemo(
|
|
3598
3622
|
() => y ?? (N.closeAt ? new Date(N.closeAt) : void 0),
|
|
3599
3623
|
[y, N.closeAt]
|
|
@@ -3604,7 +3628,7 @@ function Ze({
|
|
|
3604
3628
|
(R) => {
|
|
3605
3629
|
if (R === void 0) return;
|
|
3606
3630
|
const te = parseFloat(R);
|
|
3607
|
-
return Number.isNaN(te) ? R :
|
|
3631
|
+
return Number.isNaN(te) ? R : Pn(
|
|
3608
3632
|
te,
|
|
3609
3633
|
$ ? { currencyCode: $, locale: m } : { currencySymbol: "$", locale: m }
|
|
3610
3634
|
);
|
|
@@ -3621,7 +3645,7 @@ function Ze({
|
|
|
3621
3645
|
return /* @__PURE__ */ t(W.div, { ...X, children: /* @__PURE__ */ c(
|
|
3622
3646
|
Z,
|
|
3623
3647
|
{
|
|
3624
|
-
className:
|
|
3648
|
+
className: V("ff:w-full ff:max-w-sm", _),
|
|
3625
3649
|
"data-slot": "auction-module",
|
|
3626
3650
|
"data-stage": "enterable",
|
|
3627
3651
|
children: [
|
|
@@ -3643,7 +3667,7 @@ function Ze({
|
|
|
3643
3667
|
return /* @__PURE__ */ t(W.div, { ...X, children: /* @__PURE__ */ c(
|
|
3644
3668
|
Z,
|
|
3645
3669
|
{
|
|
3646
|
-
className:
|
|
3670
|
+
className: V("ff:w-full ff:max-w-sm", _),
|
|
3647
3671
|
"data-slot": "auction-module",
|
|
3648
3672
|
"data-stage": "participating",
|
|
3649
3673
|
children: [
|
|
@@ -3688,7 +3712,7 @@ function Ze({
|
|
|
3688
3712
|
return /* @__PURE__ */ t(W.div, { ...X, children: /* @__PURE__ */ c(
|
|
3689
3713
|
Z,
|
|
3690
3714
|
{
|
|
3691
|
-
className:
|
|
3715
|
+
className: V("ff:w-full ff:max-w-sm", _),
|
|
3692
3716
|
"data-slot": "auction-module",
|
|
3693
3717
|
"data-stage": "settling",
|
|
3694
3718
|
children: [
|
|
@@ -3719,15 +3743,16 @@ function Ze({
|
|
|
3719
3743
|
Fe,
|
|
3720
3744
|
{
|
|
3721
3745
|
outcomeReason: v ?? "ended",
|
|
3722
|
-
|
|
3723
|
-
|
|
3746
|
+
participationType: "auction",
|
|
3747
|
+
onReenter: M,
|
|
3748
|
+
isReentering: E,
|
|
3724
3749
|
className: _
|
|
3725
3750
|
}
|
|
3726
3751
|
) : null;
|
|
3727
3752
|
}
|
|
3728
3753
|
Ze.displayName = "AuctionModule";
|
|
3729
|
-
const
|
|
3730
|
-
function
|
|
3754
|
+
const qn = ze({});
|
|
3755
|
+
function Ye({
|
|
3731
3756
|
state$: e,
|
|
3732
3757
|
sequencePhase: a,
|
|
3733
3758
|
canEnter: r,
|
|
@@ -3746,21 +3771,21 @@ function Ge({
|
|
|
3746
3771
|
isReentering: h,
|
|
3747
3772
|
className: w
|
|
3748
3773
|
}) {
|
|
3749
|
-
const { t: p } =
|
|
3774
|
+
const { t: p } = Y(), v = Ee(e ?? qn), M = s.useMemo(
|
|
3750
3775
|
() => d ?? (v.drawTime ? new Date(v.drawTime) : void 0),
|
|
3751
3776
|
[d, v.drawTime]
|
|
3752
|
-
),
|
|
3777
|
+
), E = s.useMemo(() => {
|
|
3753
3778
|
if (y)
|
|
3754
3779
|
return y instanceof Date ? y : new Date(y);
|
|
3755
3780
|
}, [y]), _ = he(), S = () => {
|
|
3756
3781
|
b ? b() : g && window.open(g, "_blank", "noopener,noreferrer");
|
|
3757
3782
|
};
|
|
3758
|
-
return a === "enterable" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(Z, { className:
|
|
3783
|
+
return a === "enterable" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", w), "data-slot": "draw-module", "data-stage": "enterable", children: [
|
|
3759
3784
|
/* @__PURE__ */ t(Q, { variant: "default", label: p("draw.title") }),
|
|
3760
3785
|
/* @__PURE__ */ c(K, { children: [
|
|
3761
|
-
|
|
3786
|
+
M && /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
3762
3787
|
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: p("draw.drawClosesIn") }),
|
|
3763
|
-
/* @__PURE__ */ t(de, { targetDate:
|
|
3788
|
+
/* @__PURE__ */ t(de, { targetDate: M, showDays: !1 })
|
|
3764
3789
|
] }),
|
|
3765
3790
|
r && /* @__PURE__ */ t(F, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children: p("draw.enter") })
|
|
3766
3791
|
] }),
|
|
@@ -3768,18 +3793,18 @@ function Ge({
|
|
|
3768
3793
|
] }) }) : a === "participating" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(
|
|
3769
3794
|
Z,
|
|
3770
3795
|
{
|
|
3771
|
-
className:
|
|
3796
|
+
className: V("ff:w-full ff:max-w-sm", w),
|
|
3772
3797
|
"data-slot": "draw-module",
|
|
3773
3798
|
"data-stage": "participating",
|
|
3774
3799
|
children: [
|
|
3775
3800
|
/* @__PURE__ */ t(Q, { variant: "success", label: p("draw.entered") }),
|
|
3776
3801
|
/* @__PURE__ */ c(K, { children: [
|
|
3777
3802
|
v.entryNumber && /* @__PURE__ */ t("span", { className: "ff:text-xs ff:text-muted ff:font-mono", children: v.entryNumber }),
|
|
3778
|
-
|
|
3803
|
+
M ? /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
3779
3804
|
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: p("draw.drawHappensIn") }),
|
|
3780
|
-
/* @__PURE__ */ t(de, { targetDate:
|
|
3805
|
+
/* @__PURE__ */ t(de, { targetDate: M, showDays: !1 })
|
|
3781
3806
|
] }) : null,
|
|
3782
|
-
/* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: p(
|
|
3807
|
+
/* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: p(M ? "draw.goodLuck" : "draw.stayTuned") }) }),
|
|
3783
3808
|
n && /* @__PURE__ */ t(
|
|
3784
3809
|
F,
|
|
3785
3810
|
{
|
|
@@ -3795,7 +3820,7 @@ function Ge({
|
|
|
3795
3820
|
/* @__PURE__ */ t(U, {})
|
|
3796
3821
|
]
|
|
3797
3822
|
}
|
|
3798
|
-
) }) : a === "settling" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(Z, { className:
|
|
3823
|
+
) }) : a === "settling" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", w), "data-slot": "draw-module", "data-stage": "settling", children: [
|
|
3799
3824
|
/* @__PURE__ */ t(Q, { variant: "default", label: p("draw.settlingTitle") }),
|
|
3800
3825
|
/* @__PURE__ */ t(K, { children: /* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: p("draw.settlingDescription") }) }) }),
|
|
3801
3826
|
/* @__PURE__ */ t(U, {})
|
|
@@ -3805,7 +3830,7 @@ function Ge({
|
|
|
3805
3830
|
label: p("draw.wonTitle"),
|
|
3806
3831
|
fallbackMessage: p("granted.description"),
|
|
3807
3832
|
ctaLabel: p("granted.cta"),
|
|
3808
|
-
expiresAt:
|
|
3833
|
+
expiresAt: E,
|
|
3809
3834
|
onCtaClick: S,
|
|
3810
3835
|
className: w
|
|
3811
3836
|
}
|
|
@@ -3813,14 +3838,15 @@ function Ge({
|
|
|
3813
3838
|
Fe,
|
|
3814
3839
|
{
|
|
3815
3840
|
outcomeReason: m ?? "ended",
|
|
3841
|
+
participationType: "draw",
|
|
3816
3842
|
onReenter: x,
|
|
3817
3843
|
isReentering: h,
|
|
3818
3844
|
className: w
|
|
3819
3845
|
}
|
|
3820
3846
|
) : null;
|
|
3821
3847
|
}
|
|
3822
|
-
|
|
3823
|
-
const
|
|
3848
|
+
Ye.displayName = "DrawModule";
|
|
3849
|
+
const On = ze({});
|
|
3824
3850
|
function ut({
|
|
3825
3851
|
state$: e,
|
|
3826
3852
|
sequencePhase: a,
|
|
@@ -3840,14 +3866,14 @@ function ut({
|
|
|
3840
3866
|
isReentering: h,
|
|
3841
3867
|
className: w
|
|
3842
3868
|
}) {
|
|
3843
|
-
const { t: p } =
|
|
3869
|
+
const { t: p } = Y(), v = Ee(e ?? On), M = s.useMemo(() => {
|
|
3844
3870
|
if (y)
|
|
3845
3871
|
return y instanceof Date ? y : new Date(y);
|
|
3846
|
-
}, [y]),
|
|
3872
|
+
}, [y]), E = he(), _ = () => {
|
|
3847
3873
|
b ? b() : g && window.open(g, "_blank", "noopener,noreferrer");
|
|
3848
3874
|
};
|
|
3849
3875
|
if (a === "enterable")
|
|
3850
|
-
return /* @__PURE__ */ t(W.div, { ...
|
|
3876
|
+
return /* @__PURE__ */ t(W.div, { ...E, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", w), "data-slot": "queue-module", "data-stage": "enterable", children: [
|
|
3851
3877
|
/* @__PURE__ */ t(Q, { variant: "default", label: p("queue.openingSoon") }),
|
|
3852
3878
|
/* @__PURE__ */ c(K, { children: [
|
|
3853
3879
|
d && /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
@@ -3859,11 +3885,11 @@ function ut({
|
|
|
3859
3885
|
/* @__PURE__ */ t(U, {})
|
|
3860
3886
|
] }) });
|
|
3861
3887
|
if (a === "participating") {
|
|
3862
|
-
const S = v.estimatedWaitTime,
|
|
3863
|
-
return /* @__PURE__ */ t(W.div, { ...
|
|
3888
|
+
const S = v.estimatedWaitTime, D = S != null ? Math.ceil(S / 60) : null, N = (P) => P < 1 ? p("queue.waitLessThanMinute") : P === 1 ? p("queue.waitOneMinute") : p("queue.waitMinutes", { values: { count: P } }), T = S != null ? cr(S) : null, L = T ? p(dr(T)) : null, $ = D !== null ? N(D) : "...";
|
|
3889
|
+
return /* @__PURE__ */ t(W.div, { ...E, children: /* @__PURE__ */ c(
|
|
3864
3890
|
Z,
|
|
3865
3891
|
{
|
|
3866
|
-
className:
|
|
3892
|
+
className: V("ff:w-full ff:max-w-sm", w),
|
|
3867
3893
|
"data-slot": "queue-module",
|
|
3868
3894
|
"data-stage": "participating",
|
|
3869
3895
|
children: [
|
|
@@ -3898,7 +3924,7 @@ function ut({
|
|
|
3898
3924
|
label: p("queue.granted"),
|
|
3899
3925
|
fallbackMessage: p("queue.grantedMessage"),
|
|
3900
3926
|
ctaLabel: p("granted.cta"),
|
|
3901
|
-
expiresAt:
|
|
3927
|
+
expiresAt: M,
|
|
3902
3928
|
onCtaClick: _,
|
|
3903
3929
|
className: w
|
|
3904
3930
|
}
|
|
@@ -3906,6 +3932,7 @@ function ut({
|
|
|
3906
3932
|
Fe,
|
|
3907
3933
|
{
|
|
3908
3934
|
outcomeReason: m ?? "ended",
|
|
3935
|
+
participationType: "queue",
|
|
3909
3936
|
onReenter: x,
|
|
3910
3937
|
isReentering: h,
|
|
3911
3938
|
className: w
|
|
@@ -3913,7 +3940,7 @@ function ut({
|
|
|
3913
3940
|
) : null;
|
|
3914
3941
|
}
|
|
3915
3942
|
ut.displayName = "QueueModule";
|
|
3916
|
-
const
|
|
3943
|
+
const Wn = ze({});
|
|
3917
3944
|
function pt({
|
|
3918
3945
|
state$: e,
|
|
3919
3946
|
sequencePhase: a,
|
|
@@ -3934,16 +3961,16 @@ function pt({
|
|
|
3934
3961
|
isReentering: w,
|
|
3935
3962
|
className: p
|
|
3936
3963
|
}) {
|
|
3937
|
-
const { t: v } =
|
|
3964
|
+
const { t: v } = Y(), M = Ee(e ?? Wn), E = s.useMemo(() => {
|
|
3938
3965
|
if (m)
|
|
3939
3966
|
return m instanceof Date ? m : new Date(m);
|
|
3940
|
-
}, [m]), _ = y ??
|
|
3967
|
+
}, [m]), _ = y ?? M.checkoutUrl, S = he(), D = () => {
|
|
3941
3968
|
g ? g() : _ && window.open(_, "_blank", "noopener,noreferrer");
|
|
3942
3969
|
};
|
|
3943
3970
|
return a === "enterable" ? /* @__PURE__ */ t(W.div, { ...S, children: /* @__PURE__ */ c(
|
|
3944
3971
|
Z,
|
|
3945
3972
|
{
|
|
3946
|
-
className:
|
|
3973
|
+
className: V("ff:w-full ff:max-w-sm", p),
|
|
3947
3974
|
"data-slot": "timed-release-module",
|
|
3948
3975
|
"data-stage": "enterable",
|
|
3949
3976
|
children: [
|
|
@@ -3962,7 +3989,7 @@ function pt({
|
|
|
3962
3989
|
) }) : a === "participating" ? /* @__PURE__ */ t(W.div, { ...S, children: /* @__PURE__ */ c(
|
|
3963
3990
|
Z,
|
|
3964
3991
|
{
|
|
3965
|
-
className:
|
|
3992
|
+
className: V("ff:w-full ff:max-w-sm", p),
|
|
3966
3993
|
"data-slot": "timed-release-module",
|
|
3967
3994
|
"data-stage": "participating",
|
|
3968
3995
|
children: [
|
|
@@ -3974,7 +4001,7 @@ function pt({
|
|
|
3974
4001
|
] }),
|
|
3975
4002
|
/* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: v("timedRelease.browseAndComplete") }) }),
|
|
3976
4003
|
/* @__PURE__ */ c("div", { className: "ff:mt-auto ff:flex ff:flex-col ff:gap-2", children: [
|
|
3977
|
-
_ && /* @__PURE__ */ t(F, { className: "ff:w-full", onClick:
|
|
4004
|
+
_ && /* @__PURE__ */ t(F, { className: "ff:w-full", onClick: D, children: v("timedRelease.shop") }),
|
|
3978
4005
|
f && /* @__PURE__ */ t(
|
|
3979
4006
|
F,
|
|
3980
4007
|
{
|
|
@@ -4006,14 +4033,15 @@ function pt({
|
|
|
4006
4033
|
label: v("timedRelease.granted"),
|
|
4007
4034
|
fallbackMessage: v("granted.description"),
|
|
4008
4035
|
ctaLabel: v("granted.cta"),
|
|
4009
|
-
expiresAt:
|
|
4010
|
-
onCtaClick:
|
|
4036
|
+
expiresAt: E,
|
|
4037
|
+
onCtaClick: D,
|
|
4011
4038
|
className: p
|
|
4012
4039
|
}
|
|
4013
4040
|
) : a === "ended" ? /* @__PURE__ */ t(
|
|
4014
4041
|
Fe,
|
|
4015
4042
|
{
|
|
4016
4043
|
outcomeReason: x ?? "ended",
|
|
4044
|
+
participationType: "timed_release",
|
|
4017
4045
|
onReenter: h,
|
|
4018
4046
|
isReentering: w,
|
|
4019
4047
|
className: p
|
|
@@ -4031,8 +4059,8 @@ function Tt({
|
|
|
4031
4059
|
isEntering: f = !1,
|
|
4032
4060
|
className: l
|
|
4033
4061
|
}) {
|
|
4034
|
-
const { t: d } =
|
|
4035
|
-
return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ c(Z, { className:
|
|
4062
|
+
const { t: d } = Y(), u = e ?? d("upcoming.title"), y = a ?? d("upcoming.description"), g = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), b = he();
|
|
4063
|
+
return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", l), "data-slot": "upcoming-module", children: [
|
|
4036
4064
|
/* @__PURE__ */ t(Q, { variant: "secondary", label: u }),
|
|
4037
4065
|
/* @__PURE__ */ c(K, { children: [
|
|
4038
4066
|
g && /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
@@ -4053,11 +4081,11 @@ function Tt({
|
|
|
4053
4081
|
] }) });
|
|
4054
4082
|
}
|
|
4055
4083
|
Tt.displayName = "UpcomingModule";
|
|
4056
|
-
const
|
|
4084
|
+
const Un = {
|
|
4057
4085
|
initial: { opacity: 1 },
|
|
4058
4086
|
animate: { opacity: 1 },
|
|
4059
4087
|
transition: { duration: 0 }
|
|
4060
|
-
},
|
|
4088
|
+
}, Hn = {
|
|
4061
4089
|
default: {
|
|
4062
4090
|
initial: { opacity: 0, scale: 0.95 },
|
|
4063
4091
|
animate: { opacity: 1, scale: 1 },
|
|
@@ -4078,7 +4106,7 @@ const qn = {
|
|
|
4078
4106
|
animate: { opacity: 1 },
|
|
4079
4107
|
transition: { duration: 0.4, ease: "easeInOut" }
|
|
4080
4108
|
}
|
|
4081
|
-
},
|
|
4109
|
+
}, Kn = ne("ff:flex ff:items-center ff:justify-center", {
|
|
4082
4110
|
variants: {
|
|
4083
4111
|
styleVariant: {
|
|
4084
4112
|
default: "ff:w-16 ff:h-16 ff:rounded-full ff:bg-primary/5",
|
|
@@ -4092,7 +4120,7 @@ const qn = {
|
|
|
4092
4120
|
}
|
|
4093
4121
|
},
|
|
4094
4122
|
defaultVariants: { styleVariant: "default" }
|
|
4095
|
-
}),
|
|
4123
|
+
}), Zn = ne("ff:mt-4 ff:text-sm", {
|
|
4096
4124
|
variants: {
|
|
4097
4125
|
styleVariant: {
|
|
4098
4126
|
default: "ff:text-muted",
|
|
@@ -4104,7 +4132,7 @@ const qn = {
|
|
|
4104
4132
|
defaultVariants: { styleVariant: "default" }
|
|
4105
4133
|
});
|
|
4106
4134
|
function Rt({ message: e, className: a }) {
|
|
4107
|
-
const r = me(), n = Qe() ?
|
|
4135
|
+
const r = me(), n = Qe() ? Un : Hn[r], o = r === "clean" ? "md" : "lg";
|
|
4108
4136
|
return /* @__PURE__ */ c(
|
|
4109
4137
|
W.div,
|
|
4110
4138
|
{
|
|
@@ -4113,16 +4141,16 @@ function Rt({ message: e, className: a }) {
|
|
|
4113
4141
|
role: "status",
|
|
4114
4142
|
"aria-live": "polite",
|
|
4115
4143
|
"aria-busy": "true",
|
|
4116
|
-
className:
|
|
4144
|
+
className: V("ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12", a),
|
|
4117
4145
|
children: [
|
|
4118
|
-
/* @__PURE__ */ t("div", { className:
|
|
4119
|
-
e && /* @__PURE__ */ t("p", { className:
|
|
4146
|
+
/* @__PURE__ */ t("div", { className: V(Kn({ styleVariant: r })), children: /* @__PURE__ */ t(De, { size: o }) }),
|
|
4147
|
+
e && /* @__PURE__ */ t("p", { className: V(Zn({ styleVariant: r })), children: e })
|
|
4120
4148
|
]
|
|
4121
4149
|
}
|
|
4122
4150
|
);
|
|
4123
4151
|
}
|
|
4124
4152
|
Rt.displayName = "LoadingView";
|
|
4125
|
-
function
|
|
4153
|
+
function Pa({
|
|
4126
4154
|
variant: e,
|
|
4127
4155
|
label: a,
|
|
4128
4156
|
title: r,
|
|
@@ -4134,8 +4162,8 @@ function Fa({
|
|
|
4134
4162
|
isLoading: d = !1,
|
|
4135
4163
|
className: u
|
|
4136
4164
|
}) {
|
|
4137
|
-
const { t: y } =
|
|
4138
|
-
return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ c(Z, { className:
|
|
4165
|
+
const { t: y } = Y(), g = he();
|
|
4166
|
+
return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ c(Z, { className: V("fanfare-start-view", u), "data-slot": "start-view", children: [
|
|
4139
4167
|
/* @__PURE__ */ t(
|
|
4140
4168
|
Q,
|
|
4141
4169
|
{
|
|
@@ -4156,8 +4184,8 @@ function Fa({
|
|
|
4156
4184
|
/* @__PURE__ */ t(U, {})
|
|
4157
4185
|
] }) });
|
|
4158
4186
|
}
|
|
4159
|
-
|
|
4160
|
-
function
|
|
4187
|
+
Pa.displayName = "StartView";
|
|
4188
|
+
function Ba({
|
|
4161
4189
|
title: e,
|
|
4162
4190
|
description: a,
|
|
4163
4191
|
startsAt: r,
|
|
@@ -4166,8 +4194,8 @@ function ja({
|
|
|
4166
4194
|
isLeaving: i = !1,
|
|
4167
4195
|
className: f
|
|
4168
4196
|
}) {
|
|
4169
|
-
const { t: l } =
|
|
4170
|
-
return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ c(Z, { className:
|
|
4197
|
+
const { t: l } = Y(), d = e ?? l("waitlist.enteredTitle"), u = a ?? l("waitlist.enteredDescription"), y = l("time.opensIn"), g = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), b = he();
|
|
4198
|
+
return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ c(Z, { className: V("fanfare-waitlist-view", f), "data-slot": "waitlist-view", children: [
|
|
4171
4199
|
/* @__PURE__ */ t(Q, { variant: "success", title: d, description: u }),
|
|
4172
4200
|
/* @__PURE__ */ c(K, { children: [
|
|
4173
4201
|
g && /* @__PURE__ */ c(se, { children: [
|
|
@@ -4196,52 +4224,52 @@ function ja({
|
|
|
4196
4224
|
/* @__PURE__ */ t(U, {})
|
|
4197
4225
|
] }) });
|
|
4198
4226
|
}
|
|
4199
|
-
|
|
4200
|
-
const
|
|
4201
|
-
function
|
|
4227
|
+
Ba.displayName = "WaitlistView";
|
|
4228
|
+
const Yn = ze({});
|
|
4229
|
+
function Gn(e) {
|
|
4202
4230
|
return "mechanism" in e && e.mechanism === "auction" && "bid" in e;
|
|
4203
4231
|
}
|
|
4204
4232
|
function Se(e) {
|
|
4205
4233
|
return e === "queue" || e === "draw" || e === "auction" || e === "timed_release" || e === "appointment";
|
|
4206
4234
|
}
|
|
4207
|
-
function
|
|
4235
|
+
function ia(e) {
|
|
4208
4236
|
return Se(e) || e === "waitlist";
|
|
4209
4237
|
}
|
|
4210
|
-
function
|
|
4238
|
+
function Jn(e) {
|
|
4211
4239
|
return e?.phase === "enterable" && Se(e.mechanism);
|
|
4212
4240
|
}
|
|
4213
|
-
function
|
|
4241
|
+
function Qn(e) {
|
|
4214
4242
|
return e?.phase === "participating" && Se(e.mechanism);
|
|
4215
4243
|
}
|
|
4216
|
-
function
|
|
4244
|
+
function Xn(e) {
|
|
4217
4245
|
return e?.phase === "granted";
|
|
4218
4246
|
}
|
|
4219
4247
|
function tt(e) {
|
|
4220
4248
|
return e?.journeyStage === "routed" ? e.sequence : void 0;
|
|
4221
4249
|
}
|
|
4222
|
-
function
|
|
4250
|
+
function eo(e, a) {
|
|
4223
4251
|
const r = tt(e);
|
|
4224
|
-
return r && "mechanism" in r &&
|
|
4252
|
+
return r && "mechanism" in r && ia(r.mechanism) ? r.mechanism : a?.phase === "participating" && "consumer" in a && "mechanism" in a.consumer && ia(a.consumer.mechanism) ? a.consumer.mechanism : null;
|
|
4225
4253
|
}
|
|
4226
|
-
function
|
|
4254
|
+
function to(e) {
|
|
4227
4255
|
const a = tt(e);
|
|
4228
4256
|
if (!(!a || !("distribution" in a)))
|
|
4229
4257
|
return a.distribution;
|
|
4230
4258
|
}
|
|
4231
|
-
function
|
|
4259
|
+
function ao(e) {
|
|
4232
4260
|
const a = tt(e);
|
|
4233
4261
|
if (!(!a || !("target" in a)))
|
|
4234
4262
|
return a.target;
|
|
4235
4263
|
}
|
|
4236
|
-
function
|
|
4264
|
+
function ro(e) {
|
|
4237
4265
|
const a = tt(e);
|
|
4238
4266
|
if (!(!a || !("consumer" in a)))
|
|
4239
4267
|
return a.consumer;
|
|
4240
4268
|
}
|
|
4241
|
-
function
|
|
4269
|
+
function no(e, a) {
|
|
4242
4270
|
return e ? "distributionId" in e && typeof e.distributionId == "string" && e.distributionId ? e.distributionId : "waitlistId" in e && typeof e.waitlistId == "string" && e.waitlistId ? e.waitlistId : e.id ?? a ?? null : a ?? null;
|
|
4243
4271
|
}
|
|
4244
|
-
function
|
|
4272
|
+
function oo({
|
|
4245
4273
|
experienceId: e,
|
|
4246
4274
|
autoStart: a = !1,
|
|
4247
4275
|
accessCode: r,
|
|
@@ -4256,11 +4284,11 @@ function ao({
|
|
|
4256
4284
|
onError: g,
|
|
4257
4285
|
className: b
|
|
4258
4286
|
}) {
|
|
4259
|
-
const m = bt(), { t: x } =
|
|
4287
|
+
const m = bt(), { t: x } = Y(), { journey: h, view: w, snapshot: p, error: v, start: M } = ga(e, {
|
|
4260
4288
|
autoStart: a,
|
|
4261
4289
|
accessCode: r,
|
|
4262
4290
|
autoEnterWaitlist: n
|
|
4263
|
-
}), [
|
|
4291
|
+
}), [E, _] = s.useState(!1), [S, D] = s.useState(!1), [N, T] = s.useState(!1), [L, $] = s.useState(!1), [P, X] = s.useState(!1), [ce, B] = s.useState(null), R = w?.journeyStage ?? null, te = w?.journeyStage === "routed" ? w : void 0, H = tt(p), j = H?.phase ?? te?.sequence.phase ?? null, ae = ce ?? v, G = p?.experience?.experience?.theme, J = o ?? G, ue = i ?? o?.variant ?? G?.variant, le = re(() => p ? la(p) : [], [p]);
|
|
4264
4292
|
s.useEffect(() => {
|
|
4265
4293
|
p && u && u(p);
|
|
4266
4294
|
}, [p, u]), s.useEffect(() => {
|
|
@@ -4275,17 +4303,17 @@ function ao({
|
|
|
4275
4303
|
), pe = O(async () => {
|
|
4276
4304
|
_(!0), B(null);
|
|
4277
4305
|
try {
|
|
4278
|
-
await
|
|
4306
|
+
await M();
|
|
4279
4307
|
} catch (k) {
|
|
4280
4308
|
I(k);
|
|
4281
4309
|
} finally {
|
|
4282
4310
|
_(!1);
|
|
4283
4311
|
}
|
|
4284
|
-
}, [I,
|
|
4312
|
+
}, [I, M]), [ye, Me] = s.useState(null), je = O(
|
|
4285
4313
|
async (k, C) => {
|
|
4286
4314
|
B(null);
|
|
4287
4315
|
try {
|
|
4288
|
-
C === "email" ? await m.auth.requestOtp({ email: k }) : await m.auth.requestOtp({ phone: k }),
|
|
4316
|
+
C === "email" ? await m.auth.requestOtp({ email: k }) : await m.auth.requestOtp({ phone: k }), Me({ value: k, type: C });
|
|
4289
4317
|
} catch (A) {
|
|
4290
4318
|
I(A);
|
|
4291
4319
|
}
|
|
@@ -4296,7 +4324,7 @@ function ao({
|
|
|
4296
4324
|
if (!(!h || !ye)) {
|
|
4297
4325
|
B(null);
|
|
4298
4326
|
try {
|
|
4299
|
-
ye.type === "email" ? await m.auth.verifyOtp({ email: ye.value, code: k }) : await m.auth.verifyOtp({ phone: ye.value, code: k }),
|
|
4327
|
+
ye.type === "email" ? await m.auth.verifyOtp({ email: ye.value, code: k }) : await m.auth.verifyOtp({ phone: ye.value, code: k }), Me(null);
|
|
4300
4328
|
const C = h.view$.get();
|
|
4301
4329
|
C.journeyStage === "gated" && await C.reroute();
|
|
4302
4330
|
} catch (C) {
|
|
@@ -4320,14 +4348,14 @@ function ao({
|
|
|
4320
4348
|
[I, h]
|
|
4321
4349
|
), Te = O(async () => {
|
|
4322
4350
|
if (h) {
|
|
4323
|
-
|
|
4351
|
+
D(!0), B(null);
|
|
4324
4352
|
try {
|
|
4325
4353
|
const k = h.view$.get();
|
|
4326
4354
|
k.journeyStage === "routed" && k.sequence.phase === "enterable" && k.sequence.mechanism === "waitlist" && await k.sequence.enter();
|
|
4327
4355
|
} catch (k) {
|
|
4328
4356
|
I(k);
|
|
4329
4357
|
} finally {
|
|
4330
|
-
|
|
4358
|
+
D(!1);
|
|
4331
4359
|
}
|
|
4332
4360
|
}
|
|
4333
4361
|
}, [I, h]), Be = O(async () => {
|
|
@@ -4383,7 +4411,7 @@ function ao({
|
|
|
4383
4411
|
B(null);
|
|
4384
4412
|
try {
|
|
4385
4413
|
const C = h.view$.get();
|
|
4386
|
-
C.journeyStage === "routed" &&
|
|
4414
|
+
C.journeyStage === "routed" && Gn(C.sequence) && await C.sequence.bid(k);
|
|
4387
4415
|
} catch (C) {
|
|
4388
4416
|
I(C);
|
|
4389
4417
|
}
|
|
@@ -4457,11 +4485,11 @@ function ao({
|
|
|
4457
4485
|
B(null);
|
|
4458
4486
|
const k = h.view$.get();
|
|
4459
4487
|
k.journeyStage === "gated" && k.retry().catch(I);
|
|
4460
|
-
}, [I, h]), z = re(() => w?.journeyStage === "routed" && "sequence" in w ? w.sequence : void 0, [w]), ge =
|
|
4488
|
+
}, [I, h]), z = re(() => w?.journeyStage === "routed" && "sequence" in w ? w.sequence : void 0, [w]), ge = eo(p, z), $a = to(p), it = ao(p), fe = $a, qa = ro(p), qt = no(qa, it?.id ?? fe?.id), Ve = H && "grant" in H && H.grant ? H.grant : void 0, We = H && "outcome" in H && H.outcome ? H.outcome : void 0;
|
|
4461
4489
|
s.useEffect(() => {
|
|
4462
4490
|
Ve?.token && y && y(Ve.token);
|
|
4463
4491
|
}, [Ve?.token, y]);
|
|
4464
|
-
const
|
|
4492
|
+
const Oa = re(() => Se(ge) ? ge : Se(fe?.type) ? fe.type : null, [fe?.type, ge]), kt = re(() => Se(ge) ? ge : null, [ge]), Ot = re(() => Se(ge) ? ge : Se(fe?.type) ? fe.type : null, [fe?.type, ge]), Wt = re(() => z?.phase === "enterable" && z.mechanism === "waitlist" && typeof z.enter == "function", [z]), Ue = re(() => {
|
|
4465
4493
|
if (R === "routing") return "loading";
|
|
4466
4494
|
if (R === "gated" && le.length > 0) {
|
|
4467
4495
|
const k = le[0];
|
|
@@ -4474,7 +4502,7 @@ function ao({
|
|
|
4474
4502
|
}, [R, x]), Le = re(() => {
|
|
4475
4503
|
if (!(!h || j !== "participating" || !z || z.phase !== "participating" || !("state$" in z)))
|
|
4476
4504
|
return z.state$;
|
|
4477
|
-
}, [h, j, z]), lt =
|
|
4505
|
+
}, [h, j, z]), lt = Ee(Le ?? Yn), Ut = re(() => {
|
|
4478
4506
|
const k = fe?.details?.type === "auction" ? fe.details : void 0, C = z?.phase === "participating" && z.mechanism === "auction" ? z.consumer : void 0, A = lt;
|
|
4479
4507
|
if (!(!k && !C && !A))
|
|
4480
4508
|
return {
|
|
@@ -4487,24 +4515,24 @@ function ao({
|
|
|
4487
4515
|
minNextBid: A?.minNextBid ?? k?.minNextBid,
|
|
4488
4516
|
bidIncrement: A?.bidIncrement ?? k?.bidIncrement
|
|
4489
4517
|
};
|
|
4490
|
-
}, [lt, z, fe?.details]), Ne = re(() => z?.phase === "scheduled" && z.startsAt ? new Date(z.startsAt) : ge === "waitlist" && it?.opensAt ? new Date(it.opensAt) : fe?.opensAt ? new Date(fe.opensAt) : void 0, [it?.opensAt, z, fe?.opensAt, ge]),
|
|
4518
|
+
}, [lt, z, fe?.details]), Ne = re(() => z?.phase === "scheduled" && z.startsAt ? new Date(z.startsAt) : ge === "waitlist" && it?.opensAt ? new Date(it.opensAt) : fe?.opensAt ? new Date(fe.opensAt) : void 0, [it?.opensAt, z, fe?.opensAt, ge]), Wa = re(() => {
|
|
4491
4519
|
if (!(j !== "participating" || kt !== "queue"))
|
|
4492
4520
|
return lt?.position;
|
|
4493
4521
|
}, [lt, kt, j]);
|
|
4494
4522
|
if (l)
|
|
4495
|
-
return /* @__PURE__ */ t(Vt, { theme: J, variant: ue, children: /* @__PURE__ */ t("div", { className:
|
|
4523
|
+
return /* @__PURE__ */ t(Vt, { theme: J, variant: ue, children: /* @__PURE__ */ t("div", { className: V("fanfare-experience-widget", b), "data-slot": "experience-widget", children: l({
|
|
4496
4524
|
journey: h,
|
|
4497
4525
|
view: w,
|
|
4498
4526
|
snapshot: p,
|
|
4499
4527
|
error: ae,
|
|
4500
4528
|
start: pe,
|
|
4501
|
-
isStarting:
|
|
4529
|
+
isStarting: E
|
|
4502
4530
|
}) }) });
|
|
4503
|
-
const ie = { snapshot: p, view: w, error: ae },
|
|
4531
|
+
const ie = { snapshot: p, view: w, error: ae }, Ua = () => {
|
|
4504
4532
|
if (ae)
|
|
4505
4533
|
return f?.error ? f.error({ ...ie, error: ae, onRetry: Oe }) : /* @__PURE__ */ t(Ke, { error: ae, onRetry: Oe });
|
|
4506
4534
|
if (R === "ready")
|
|
4507
|
-
return f?.start ? f.start({ ...ie, onStart: pe, isStarting:
|
|
4535
|
+
return f?.start ? f.start({ ...ie, onStart: pe, isStarting: E }) : /* @__PURE__ */ t(Pa, { onStart: pe, isLoading: E });
|
|
4508
4536
|
if (Ue !== "none")
|
|
4509
4537
|
return Ue === "auth" && f?.auth ? f.auth({
|
|
4510
4538
|
...ie,
|
|
@@ -4514,7 +4542,7 @@ function ao({
|
|
|
4514
4542
|
...ie,
|
|
4515
4543
|
onSubmit: Pe
|
|
4516
4544
|
}) : Ue === "loading" && f?.loading ? f.loading({ ...ie, message: st }) : /* @__PURE__ */ t(
|
|
4517
|
-
|
|
4545
|
+
Va,
|
|
4518
4546
|
{
|
|
4519
4547
|
stage: Ue,
|
|
4520
4548
|
startsAt: Ne,
|
|
@@ -4532,7 +4560,7 @@ function ao({
|
|
|
4532
4560
|
onVerifyToken: Bt,
|
|
4533
4561
|
onRetry: $t
|
|
4534
4562
|
}) : /* @__PURE__ */ t(
|
|
4535
|
-
|
|
4563
|
+
Ca,
|
|
4536
4564
|
{
|
|
4537
4565
|
challenge: C,
|
|
4538
4566
|
botMitigation: A,
|
|
@@ -4547,7 +4575,7 @@ function ao({
|
|
|
4547
4575
|
return f?.ended ? f.ended({
|
|
4548
4576
|
...ie,
|
|
4549
4577
|
reason: z?.phase === "unavailable" ? z.reason ?? "unavailable" : "unavailable"
|
|
4550
|
-
}) : /* @__PURE__ */ t(
|
|
4578
|
+
}) : /* @__PURE__ */ t(Da, { title: x("experience.noSequenceTitle"), message: x("experience.noSequenceMessage") });
|
|
4551
4579
|
if (j === "scheduled")
|
|
4552
4580
|
return f?.upcoming ? f.upcoming({
|
|
4553
4581
|
...ie,
|
|
@@ -4578,21 +4606,21 @@ function ao({
|
|
|
4578
4606
|
startsAt: Ne,
|
|
4579
4607
|
onLeave: Be,
|
|
4580
4608
|
isLeaving: N
|
|
4581
|
-
}) : /* @__PURE__ */ t(
|
|
4609
|
+
}) : /* @__PURE__ */ t(Ba, { startsAt: Ne, onLeave: Be, isLeaving: N });
|
|
4582
4610
|
if (j === "enterable" || j === "participating") {
|
|
4583
|
-
const k = j === "enterable" ?
|
|
4584
|
-
if (j === "enterable" && f?.enterable &&
|
|
4611
|
+
const k = j === "enterable" ? Oa : kt, C = j === "participating" ? qt : fe?.id, A = z?.phase === "enterable" && "enter" in z && typeof z.enter == "function", Ae = z?.phase === "participating" && "leave" in z;
|
|
4612
|
+
if (j === "enterable" && f?.enterable && Jn(z))
|
|
4585
4613
|
return f.enterable({
|
|
4586
4614
|
...ie,
|
|
4587
4615
|
sequence: z,
|
|
4588
4616
|
participationType: z.mechanism
|
|
4589
4617
|
});
|
|
4590
|
-
if (j === "participating" && f?.participating &&
|
|
4618
|
+
if (j === "participating" && f?.participating && Qn(z))
|
|
4591
4619
|
return f.participating({
|
|
4592
4620
|
...ie,
|
|
4593
4621
|
sequence: z,
|
|
4594
4622
|
participationType: z.mechanism,
|
|
4595
|
-
position:
|
|
4623
|
+
position: Wa
|
|
4596
4624
|
});
|
|
4597
4625
|
const xe = fe?.details;
|
|
4598
4626
|
if (C)
|
|
@@ -4617,7 +4645,7 @@ function ao({
|
|
|
4617
4645
|
case "draw": {
|
|
4618
4646
|
const ee = xe?.type === "draw" ? xe : void 0;
|
|
4619
4647
|
return /* @__PURE__ */ t(
|
|
4620
|
-
|
|
4648
|
+
Ye,
|
|
4621
4649
|
{
|
|
4622
4650
|
state$: Le,
|
|
4623
4651
|
sequencePhase: j,
|
|
@@ -4674,7 +4702,7 @@ function ao({
|
|
|
4674
4702
|
case "appointment": {
|
|
4675
4703
|
const ee = xe?.type === "appointment" ? xe : void 0;
|
|
4676
4704
|
return /* @__PURE__ */ t(
|
|
4677
|
-
|
|
4705
|
+
Mt,
|
|
4678
4706
|
{
|
|
4679
4707
|
appointmentId: C,
|
|
4680
4708
|
state$: Le,
|
|
@@ -4705,7 +4733,7 @@ function ao({
|
|
|
4705
4733
|
case "draw": {
|
|
4706
4734
|
const C = k?.type === "draw" ? k : void 0;
|
|
4707
4735
|
return /* @__PURE__ */ t(
|
|
4708
|
-
|
|
4736
|
+
Ye,
|
|
4709
4737
|
{
|
|
4710
4738
|
state$: void 0,
|
|
4711
4739
|
sequencePhase: "settling",
|
|
@@ -4744,7 +4772,7 @@ function ao({
|
|
|
4744
4772
|
}
|
|
4745
4773
|
if (j === "granted") {
|
|
4746
4774
|
const k = Ve?.expiresAt ? new Date(Ve.expiresAt).getTime() : void 0;
|
|
4747
|
-
if (f?.granted &&
|
|
4775
|
+
if (f?.granted && Xn(z))
|
|
4748
4776
|
return f.granted({
|
|
4749
4777
|
...ie,
|
|
4750
4778
|
sequence: z,
|
|
@@ -4767,7 +4795,7 @@ function ao({
|
|
|
4767
4795
|
case "queue":
|
|
4768
4796
|
return /* @__PURE__ */ t(ut, { ...C });
|
|
4769
4797
|
case "draw":
|
|
4770
|
-
return /* @__PURE__ */ t(
|
|
4798
|
+
return /* @__PURE__ */ t(Ye, { ...C });
|
|
4771
4799
|
case "auction":
|
|
4772
4800
|
return /* @__PURE__ */ t(Ze, { ...C });
|
|
4773
4801
|
case "timed_release":
|
|
@@ -4799,20 +4827,20 @@ function ao({
|
|
|
4799
4827
|
onLeave: we,
|
|
4800
4828
|
isEntering: !1,
|
|
4801
4829
|
isLeaving: !1,
|
|
4802
|
-
outcomeReason:
|
|
4830
|
+
outcomeReason: ta(k)
|
|
4803
4831
|
};
|
|
4804
4832
|
switch (Ot) {
|
|
4805
4833
|
case "queue":
|
|
4806
4834
|
return /* @__PURE__ */ t(ut, { ...C });
|
|
4807
4835
|
case "draw":
|
|
4808
|
-
return /* @__PURE__ */ t(
|
|
4836
|
+
return /* @__PURE__ */ t(Ye, { ...C });
|
|
4809
4837
|
case "auction":
|
|
4810
4838
|
return /* @__PURE__ */ t(Ze, { ...C });
|
|
4811
4839
|
case "timed_release":
|
|
4812
4840
|
return /* @__PURE__ */ t(pt, { ...C });
|
|
4813
4841
|
case "appointment":
|
|
4814
4842
|
return /* @__PURE__ */ t(
|
|
4815
|
-
|
|
4843
|
+
Mt,
|
|
4816
4844
|
{
|
|
4817
4845
|
appointmentId: qt ?? fe?.id ?? "",
|
|
4818
4846
|
sequencePhase: "ended",
|
|
@@ -4822,7 +4850,7 @@ function ao({
|
|
|
4822
4850
|
isBooking: !1,
|
|
4823
4851
|
isCancelling: !1,
|
|
4824
4852
|
isRescheduling: !1,
|
|
4825
|
-
outcomeReason:
|
|
4853
|
+
outcomeReason: ta(k)
|
|
4826
4854
|
}
|
|
4827
4855
|
);
|
|
4828
4856
|
}
|
|
@@ -4830,12 +4858,12 @@ function ao({
|
|
|
4830
4858
|
}
|
|
4831
4859
|
}
|
|
4832
4860
|
return f?.loading ? f.loading({ ...ie, message: st }) : /* @__PURE__ */ t(Rt, { message: st });
|
|
4833
|
-
},
|
|
4834
|
-
return /* @__PURE__ */ t(Vt, { theme: J, variant: ue, children: /* @__PURE__ */ t("div", { className:
|
|
4861
|
+
}, Ha = `${R ?? "loading"}-${j ?? "unavailable"}`;
|
|
4862
|
+
return /* @__PURE__ */ t(Vt, { theme: J, variant: ue, children: /* @__PURE__ */ t("div", { className: V("fanfare-experience-widget", b), "data-slot": "experience-widget", children: /* @__PURE__ */ t(Ge, { transitionKey: Ha, children: Ua() }) }) });
|
|
4835
4863
|
}
|
|
4836
|
-
|
|
4837
|
-
const ro = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ff-font-sans:"Inter",system-ui,sans-serif;--ff-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ff-color-neutral-50:oklch(98.5% 0 0);--ff-color-neutral-200:oklch(92.2% 0 0);--ff-color-neutral-300:oklch(87% 0 0);--ff-color-neutral-500:oklch(55.6% 0 0);--ff-color-white:#fff;--ff-spacing:.25rem;--ff-container-sm:24rem;--ff-text-xs:.75rem;--ff-text-xs--line-height:calc(1/.75);--ff-text-sm:.875rem;--ff-text-sm--line-height:calc(1.25/.875);--ff-text-base:1rem;--ff-text-base--line-height: 1.5 ;--ff-text-lg:1.125rem;--ff-text-lg--line-height:calc(1.75/1.125);--ff-text-xl:1.25rem;--ff-text-xl--line-height:calc(1.75/1.25);--ff-text-2xl:1.5rem;--ff-text-2xl--line-height:calc(2/1.5);--ff-text-3xl:1.875rem;--ff-text-3xl--line-height: 1.2 ;--ff-text-4xl:2.25rem;--ff-text-4xl--line-height:calc(2.5/2.25);--ff-font-weight-extralight:200;--ff-font-weight-light:300;--ff-font-weight-normal:400;--ff-font-weight-medium:500;--ff-font-weight-semibold:600;--ff-font-weight-bold:700;--ff-font-weight-extrabold:800;--ff-font-weight-black:900;--ff-tracking-tight:-.025em;--ff-tracking-normal:0em;--ff-tracking-wide:.025em;--ff-tracking-wider:.05em;--ff-tracking-widest:.1em;--ff-leading-tight:1.25;--ff-radius-md:.375rem;--ff-radius-lg:.5rem;--ff-radius-xl:.75rem;--ff-radius-2xl:1rem;--ff-radius-3xl:1.5rem;--ff-ease-out:cubic-bezier(0,0,.2,1);--ff-animate-spin:spin 1s linear infinite;--ff-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ff-default-transition-duration:.15s;--ff-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ff-default-font-family:var(--ff-font-sans);--ff-default-mono-font-family:var(--ff-font-mono);--ff-color-primary:#1d1f27;--ff-color-primary-foreground:#fff;--ff-color-secondary:#f4f4f5;--ff-color-background:#fff;--ff-color-surface:transparent;--ff-color-surface-foreground:#1d1f27;--ff-color-foreground:#1d1f27;--ff-color-muted:#4b4e56cc;--ff-color-muted-foreground:#4b4e5699;--ff-color-border:#4b4e5666;--ff-color-success:oklch(77% .18 130);--ff-color-success-foreground:#111;--ff-color-warning:oklch(72% .18 65);--ff-color-warning-foreground:#111;--ff-color-danger:oklch(63% .24 25);--ff-color-danger-foreground:#fff;--ff-font-heading:"Inter",system-ui,sans-serif;--ff-text-xxs:.625rem;--ff-text-xxs--line-height:.875rem;--ff-animate-fade-in:fade-in .2s ease-out;--ff-animate-fade-out:fade-out .2s ease-out;--ff-animate-slide-in:slide-in .2s ease-out;--ff-animate-slide-out:slide-out .2s ease-out;--ff-animate-scale-in:scale-in .2s ease-out;--ff-animate-scale-out:scale-out .2s ease-out;--ff-animate-accordion-down:accordion-down .2s ease-out;--ff-animate-accordion-up:accordion-up .2s ease-out;--ff-animate-celebration:celebration-bounce .6s ease-out;--ff-animate-shake:shake .5s ease-out;--ff-animate-pulse-success:pulse-success 1s ease-out}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ff-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ff-default-font-feature-settings,normal);font-variation-settings:var(--ff-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ff-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ff-default-mono-font-feature-settings,normal);font-variation-settings:var(--ff-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fanfare-root{color:var(--ff-color-foreground);background-color:var(--ff-color-surface);font-family:var(--ff-font-sans)}.fanfare-root *,.fanfare-root :after,.fanfare-root :before,.fanfare-root ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root button:not(:disabled),.fanfare-root [role=button]:not(:disabled){cursor:pointer}@media(prefers-reduced-motion:reduce){.fanfare-root *,.fanfare-root :before,.fanfare-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.ff\\:pointer-events-none{pointer-events:none}.ff\\:absolute{position:absolute}.ff\\:relative{position:relative}.ff\\:inset-0{inset:calc(var(--ff-spacing)*0)}.ff\\:top-1\\/2{top:50%}.ff\\:top-3{top:calc(var(--ff-spacing)*3)}.ff\\:right-2{right:calc(var(--ff-spacing)*2)}.ff\\:left-3{left:calc(var(--ff-spacing)*3)}.ff\\:z-10{z-index:10}.ff\\:-mx-1{margin-inline:calc(var(--ff-spacing)*-1)}.ff\\:mx-2{margin-inline:calc(var(--ff-spacing)*2)}.ff\\:-mt-0\\.5{margin-top:calc(var(--ff-spacing)*-.5)}.ff\\:mt-0\\.5{margin-top:calc(var(--ff-spacing)*.5)}.ff\\:mt-1{margin-top:calc(var(--ff-spacing)*1)}.ff\\:mt-2{margin-top:calc(var(--ff-spacing)*2)}.ff\\:mt-3{margin-top:calc(var(--ff-spacing)*3)}.ff\\:mt-4{margin-top:calc(var(--ff-spacing)*4)}.ff\\:mt-auto{margin-top:auto}.ff\\:mb-1\\.5{margin-bottom:calc(var(--ff-spacing)*1.5)}.ff\\:mb-2{margin-bottom:calc(var(--ff-spacing)*2)}.ff\\:mb-4{margin-bottom:calc(var(--ff-spacing)*4)}.ff\\:mb-6{margin-bottom:calc(var(--ff-spacing)*6)}.ff\\:block{display:block}.ff\\:flex{display:flex}.ff\\:grid{display:grid}.ff\\:inline-block{display:inline-block}.ff\\:inline-flex{display:inline-flex}.ff\\:size-1{width:calc(var(--ff-spacing)*1);height:calc(var(--ff-spacing)*1)}.ff\\:size-1\\.5{width:calc(var(--ff-spacing)*1.5);height:calc(var(--ff-spacing)*1.5)}.ff\\:size-4{width:calc(var(--ff-spacing)*4);height:calc(var(--ff-spacing)*4)}.ff\\:size-5{width:calc(var(--ff-spacing)*5);height:calc(var(--ff-spacing)*5)}.ff\\:size-6{width:calc(var(--ff-spacing)*6);height:calc(var(--ff-spacing)*6)}.ff\\:size-8{width:calc(var(--ff-spacing)*8);height:calc(var(--ff-spacing)*8)}.ff\\:size-10{width:calc(var(--ff-spacing)*10);height:calc(var(--ff-spacing)*10)}.ff\\:h-0\\.5{height:calc(var(--ff-spacing)*.5)}.ff\\:h-1{height:calc(var(--ff-spacing)*1)}.ff\\:h-2{height:calc(var(--ff-spacing)*2)}.ff\\:h-2\\.5{height:calc(var(--ff-spacing)*2.5)}.ff\\:h-3{height:calc(var(--ff-spacing)*3)}.ff\\:h-4{height:calc(var(--ff-spacing)*4)}.ff\\:h-4\\.5{height:calc(var(--ff-spacing)*4.5)}.ff\\:h-5{height:calc(var(--ff-spacing)*5)}.ff\\:h-6{height:calc(var(--ff-spacing)*6)}.ff\\:h-8{height:calc(var(--ff-spacing)*8)}.ff\\:h-10{height:calc(var(--ff-spacing)*10)}.ff\\:h-12{height:calc(var(--ff-spacing)*12)}.ff\\:h-14{height:calc(var(--ff-spacing)*14)}.ff\\:h-16{height:calc(var(--ff-spacing)*16)}.ff\\:h-20{height:calc(var(--ff-spacing)*20)}.ff\\:h-32{height:calc(var(--ff-spacing)*32)}.ff\\:h-\\[480px\\]{height:480px}.ff\\:h-auto{height:auto}.ff\\:h-full{height:100%}.ff\\:max-h-44{max-height:calc(var(--ff-spacing)*44)}.ff\\:max-h-\\[24rem\\]{max-height:24rem}.ff\\:w-1\\/2{width:50%}.ff\\:w-1\\/3{width:33.3333%}.ff\\:w-2\\/3{width:66.6667%}.ff\\:w-3\\/4{width:75%}.ff\\:w-5\\/6{width:83.3333%}.ff\\:w-6{width:calc(var(--ff-spacing)*6)}.ff\\:w-9{width:calc(var(--ff-spacing)*9)}.ff\\:w-10{width:calc(var(--ff-spacing)*10)}.ff\\:w-12{width:calc(var(--ff-spacing)*12)}.ff\\:w-14{width:calc(var(--ff-spacing)*14)}.ff\\:w-16{width:calc(var(--ff-spacing)*16)}.ff\\:w-20{width:calc(var(--ff-spacing)*20)}.ff\\:w-40{width:calc(var(--ff-spacing)*40)}.ff\\:w-72{width:calc(var(--ff-spacing)*72)}.ff\\:w-80{width:calc(var(--ff-spacing)*80)}.ff\\:w-auto{width:auto}.ff\\:w-full{width:100%}.ff\\:max-w-sm{max-width:var(--ff-container-sm)}.ff\\:min-w-0{min-width:calc(var(--ff-spacing)*0)}.ff\\:flex-1{flex:1}.ff\\:shrink-0{flex-shrink:0}.ff\\:origin-center{transform-origin:50%}.ff\\:origin-top-left{transform-origin:0 0}.ff\\:-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:-translate-y-2{--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:animate-\\[skeleton-shimmer_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-shimmer}.ff\\:animate-\\[skeleton-slide_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-slide}.ff\\:animate-\\[spin_1\\.2s_cubic-bezier\\(0\\.4\\,0\\,0\\.6\\,1\\)_infinite\\]{animation:1.2s cubic-bezier(.4,0,.6,1) infinite spin}.ff\\:animate-\\[spin_1\\.8s_linear_infinite\\]{animation:1.8s linear infinite spin}.ff\\:animate-accordion-down{animation:var(--ff-animate-accordion-down)}.ff\\:animate-accordion-up{animation:var(--ff-animate-accordion-up)}.ff\\:animate-celebration{animation:var(--ff-animate-celebration)}.ff\\:animate-fade-in{animation:var(--ff-animate-fade-in)}.ff\\:animate-fade-out{animation:var(--ff-animate-fade-out)}.ff\\:animate-none{animation:none}.ff\\:animate-pulse{animation:var(--ff-animate-pulse)}.ff\\:animate-pulse-success{animation:var(--ff-animate-pulse-success)}.ff\\:animate-scale-in{animation:var(--ff-animate-scale-in)}.ff\\:animate-scale-out{animation:var(--ff-animate-scale-out)}.ff\\:animate-shake{animation:var(--ff-animate-shake)}.ff\\:animate-slide-in{animation:var(--ff-animate-slide-in)}.ff\\:animate-slide-out{animation:var(--ff-animate-slide-out)}.ff\\:animate-spin{animation:var(--ff-animate-spin)}.ff\\:cursor-not-allowed{cursor:not-allowed}.ff\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff\\:flex-col{flex-direction:column}.ff\\:flex-row{flex-direction:row}.ff\\:flex-wrap{flex-wrap:wrap}.ff\\:items-baseline{align-items:baseline}.ff\\:items-center{align-items:center}.ff\\:items-start{align-items:flex-start}.ff\\:justify-between{justify-content:space-between}.ff\\:justify-center{justify-content:center}.ff\\:gap-0\\.5{gap:calc(var(--ff-spacing)*.5)}.ff\\:gap-1{gap:calc(var(--ff-spacing)*1)}.ff\\:gap-1\\.5{gap:calc(var(--ff-spacing)*1.5)}.ff\\:gap-2{gap:calc(var(--ff-spacing)*2)}.ff\\:gap-3{gap:calc(var(--ff-spacing)*3)}.ff\\:gap-4{gap:calc(var(--ff-spacing)*4)}.ff\\:gap-5{gap:calc(var(--ff-spacing)*5)}.ff\\:gap-6{gap:calc(var(--ff-spacing)*6)}.ff\\:gap-10{gap:calc(var(--ff-spacing)*10)}.ff\\:gap-12{gap:calc(var(--ff-spacing)*12)}:where(.ff\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.ff\\:self-end{align-self:flex-end}.ff\\:overflow-hidden{overflow:hidden}.ff\\:overflow-visible{overflow:visible}.ff\\:overflow-x-auto{overflow-x:auto}.ff\\:overflow-y-auto{overflow-y:auto}.ff\\:rounded{border-radius:.25rem}.ff\\:rounded-2xl{border-radius:var(--ff-radius-2xl)}.ff\\:rounded-3xl{border-radius:var(--ff-radius-3xl)}.ff\\:rounded-\\[8px\\]{border-radius:8px}.ff\\:rounded-\\[10px\\]{border-radius:10px}.ff\\:rounded-\\[14px\\]{border-radius:14px}.ff\\:rounded-full{border-radius:3.40282e38px}.ff\\:rounded-lg{border-radius:var(--ff-radius-lg)}.ff\\:rounded-md{border-radius:var(--ff-radius-md)}.ff\\:rounded-none{border-radius:0}.ff\\:rounded-xl{border-radius:var(--ff-radius-xl)}.ff\\:border{border-style:var(--tw-border-style);border-width:1px}.ff\\:border-0{border-style:var(--tw-border-style);border-width:0}.ff\\:border-2{border-style:var(--tw-border-style);border-width:2px}.ff\\:border-3{border-style:var(--tw-border-style);border-width:3px}.ff\\:border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.ff\\:border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.ff\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ff\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ff\\:border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.ff\\:border-none{--tw-border-style:none;border-style:none}.ff\\:border-border,.ff\\:border-border\\/40{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/40{border-color:color-mix(in oklab,var(--ff-color-border)40%,transparent)}}.ff\\:border-border\\/50{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/50{border-color:color-mix(in oklab,var(--ff-color-border)50%,transparent)}}.ff\\:border-danger,.ff\\:border-danger\\/50{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-danger\\/50{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:border-foreground,.ff\\:border-foreground\\/8{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/8{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-foreground\\/12{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/12{border-color:color-mix(in oklab,var(--ff-color-foreground)12%,transparent)}}.ff\\:border-foreground\\/20{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/20{border-color:color-mix(in oklab,var(--ff-color-foreground)20%,transparent)}}.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-neutral-200{border-color:var(--ff-color-neutral-200)}.ff\\:border-primary{border-color:var(--ff-color-primary)}.ff\\:border-transparent{border-color:#0000}.ff\\:border-b-danger{border-bottom-color:var(--ff-color-danger)}.ff\\:bg-\\[\\#ff3a00\\]{background-color:#ff3a00}.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:color-mix(in oklch,var(--ff-color-foreground)3%,var(--ff-color-background))}}.ff\\:bg-background,.ff\\:bg-background\\/60{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/60{background-color:color-mix(in oklab,var(--ff-color-background)60%,transparent)}}.ff\\:bg-background\\/70{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/70{background-color:color-mix(in oklab,var(--ff-color-background)70%,transparent)}}.ff\\:bg-danger,.ff\\:bg-danger\\/10{background-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-danger\\/10{background-color:color-mix(in oklab,var(--ff-color-danger)10%,transparent)}}.ff\\:bg-foreground\\/5{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ff-color-foreground)5%,transparent)}}.ff\\:bg-foreground\\/40{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/40{background-color:color-mix(in oklab,var(--ff-color-foreground)40%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)10%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:bg-muted\\/5{background-color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-muted\\/5{background-color:color-mix(in oklab,var(--ff-color-muted)5%,transparent)}}.ff\\:bg-neutral-50{background-color:var(--ff-color-neutral-50)}.ff\\:bg-primary{background-color:var(--ff-color-primary)}.ff\\:bg-primary-foreground{background-color:var(--ff-color-primary-foreground)}.ff\\:bg-primary\\/5{background-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-primary\\/5{background-color:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:bg-secondary{background-color:var(--ff-color-secondary)}.ff\\:bg-success,.ff\\:bg-success\\/10{background-color:var(--ff-color-success)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-success\\/10{background-color:color-mix(in oklab,var(--ff-color-success)10%,transparent)}}.ff\\:bg-transparent{background-color:#0000}.ff\\:bg-warning,.ff\\:bg-warning\\/10{background-color:var(--ff-color-warning)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-warning\\/10{background-color:color-mix(in oklab,var(--ff-color-warning)10%,transparent)}}.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.ff\\:bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.ff\\:from-primary\\/10{--tw-gradient-from:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:from-primary\\/10{--tw-gradient-from:color-mix(in oklab,var(--ff-color-primary)10%,transparent)}}.ff\\:from-primary\\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:to-primary\\/5{--tw-gradient-to:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:to-primary\\/5{--tw-gradient-to:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:to-primary\\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:\\[background-size\\:200\\%_100\\%\\]{background-size:200% 100%}.ff\\:p-0{padding:calc(var(--ff-spacing)*0)}.ff\\:p-3{padding:calc(var(--ff-spacing)*3)}.ff\\:p-4{padding:calc(var(--ff-spacing)*4)}.ff\\:p-5{padding:calc(var(--ff-spacing)*5)}.ff\\:p-6{padding:calc(var(--ff-spacing)*6)}.ff\\:p-8{padding:calc(var(--ff-spacing)*8)}.ff\\:px-0{padding-inline:calc(var(--ff-spacing)*0)}.ff\\:px-2{padding-inline:calc(var(--ff-spacing)*2)}.ff\\:px-2\\.5{padding-inline:calc(var(--ff-spacing)*2.5)}.ff\\:px-3{padding-inline:calc(var(--ff-spacing)*3)}.ff\\:px-4{padding-inline:calc(var(--ff-spacing)*4)}.ff\\:px-5{padding-inline:calc(var(--ff-spacing)*5)}.ff\\:px-6{padding-inline:calc(var(--ff-spacing)*6)}.ff\\:py-0\\.5{padding-block:calc(var(--ff-spacing)*.5)}.ff\\:py-1{padding-block:calc(var(--ff-spacing)*1)}.ff\\:py-1\\.5{padding-block:calc(var(--ff-spacing)*1.5)}.ff\\:py-2{padding-block:calc(var(--ff-spacing)*2)}.ff\\:py-2\\.5{padding-block:calc(var(--ff-spacing)*2.5)}.ff\\:py-3{padding-block:calc(var(--ff-spacing)*3)}.ff\\:py-4{padding-block:calc(var(--ff-spacing)*4)}.ff\\:py-12{padding-block:calc(var(--ff-spacing)*12)}.ff\\:pt-2{padding-top:calc(var(--ff-spacing)*2)}.ff\\:pt-3{padding-top:calc(var(--ff-spacing)*3)}.ff\\:pt-5{padding-top:calc(var(--ff-spacing)*5)}.ff\\:pb-0\\.5{padding-bottom:calc(var(--ff-spacing)*.5)}.ff\\:pb-1{padding-bottom:calc(var(--ff-spacing)*1)}.ff\\:pb-2{padding-bottom:calc(var(--ff-spacing)*2)}.ff\\:pb-8{padding-bottom:calc(var(--ff-spacing)*8)}.ff\\:pl-7{padding-left:calc(var(--ff-spacing)*7)}.ff\\:text-center{text-align:center}.ff\\:text-right{text-align:right}.ff\\:font-heading{font-family:var(--ff-font-heading)}.ff\\:font-mono{font-family:var(--ff-font-mono)}.ff\\:text-2xl{font-size:var(--ff-text-2xl);line-height:var(--tw-leading,var(--ff-text-2xl--line-height))}.ff\\:text-3xl{font-size:var(--ff-text-3xl);line-height:var(--tw-leading,var(--ff-text-3xl--line-height))}.ff\\:text-4xl{font-size:var(--ff-text-4xl);line-height:var(--tw-leading,var(--ff-text-4xl--line-height))}.ff\\:text-base{font-size:var(--ff-text-base);line-height:var(--tw-leading,var(--ff-text-base--line-height))}.ff\\:text-lg{font-size:var(--ff-text-lg);line-height:var(--tw-leading,var(--ff-text-lg--line-height))}.ff\\:text-sm{font-size:var(--ff-text-sm);line-height:var(--tw-leading,var(--ff-text-sm--line-height))}.ff\\:text-xl{font-size:var(--ff-text-xl);line-height:var(--tw-leading,var(--ff-text-xl--line-height))}.ff\\:text-xs{font-size:var(--ff-text-xs);line-height:var(--tw-leading,var(--ff-text-xs--line-height))}.ff\\:text-xxs{font-size:var(--ff-text-xxs);line-height:var(--tw-leading,var(--ff-text-xxs--line-height))}.ff\\:text-\\[2rem\\]{font-size:2rem}.ff\\:text-\\[10\\.5px\\]{font-size:10.5px}.ff\\:text-\\[52px\\]{font-size:52px}.ff\\:leading-none{--tw-leading:1;line-height:1}.ff\\:leading-tight{--tw-leading:var(--ff-leading-tight);line-height:var(--ff-leading-tight)}.ff\\:font-black{--tw-font-weight:var(--ff-font-weight-black);font-weight:var(--ff-font-weight-black)}.ff\\:font-bold{--tw-font-weight:var(--ff-font-weight-bold);font-weight:var(--ff-font-weight-bold)}.ff\\:font-extrabold{--tw-font-weight:var(--ff-font-weight-extrabold);font-weight:var(--ff-font-weight-extrabold)}.ff\\:font-extralight{--tw-font-weight:var(--ff-font-weight-extralight);font-weight:var(--ff-font-weight-extralight)}.ff\\:font-light{--tw-font-weight:var(--ff-font-weight-light);font-weight:var(--ff-font-weight-light)}.ff\\:font-medium{--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:font-normal{--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:font-semibold{--tw-font-weight:var(--ff-font-weight-semibold);font-weight:var(--ff-font-weight-semibold)}.ff\\:tracking-\\[-0\\.025em\\]{--tw-tracking:-.025em;letter-spacing:-.025em}.ff\\:tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.ff\\:tracking-\\[0\\.08em\\]{--tw-tracking:.08em;letter-spacing:.08em}.ff\\:tracking-\\[0\\.15em\\]{--tw-tracking:.15em;letter-spacing:.15em}.ff\\:tracking-normal{--tw-tracking:var(--ff-tracking-normal);letter-spacing:var(--ff-tracking-normal)}.ff\\:tracking-tight{--tw-tracking:var(--ff-tracking-tight);letter-spacing:var(--ff-tracking-tight)}.ff\\:tracking-wide{--tw-tracking:var(--ff-tracking-wide);letter-spacing:var(--ff-tracking-wide)}.ff\\:tracking-wider{--tw-tracking:var(--ff-tracking-wider);letter-spacing:var(--ff-tracking-wider)}.ff\\:tracking-widest{--tw-tracking:var(--ff-tracking-widest);letter-spacing:var(--ff-tracking-widest)}.ff\\:whitespace-nowrap{white-space:nowrap}.ff\\:text-current{color:currentColor}.ff\\:text-danger{color:var(--ff-color-danger)}.ff\\:text-danger-foreground{color:var(--ff-color-danger-foreground)}.ff\\:text-foreground,.ff\\:text-foreground\\/80{color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-foreground\\/80{color:color-mix(in oklab,var(--ff-color-foreground)80%,transparent)}}.ff\\:text-muted{color:var(--ff-color-muted)}.ff\\:text-muted-foreground{color:var(--ff-color-muted-foreground)}.ff\\:text-muted\\/60{color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-muted\\/60{color:color-mix(in oklab,var(--ff-color-muted)60%,transparent)}}.ff\\:text-neutral-300{color:var(--ff-color-neutral-300)}.ff\\:text-neutral-500{color:var(--ff-color-neutral-500)}.ff\\:text-primary{color:var(--ff-color-primary)}.ff\\:text-primary-foreground{color:var(--ff-color-primary-foreground)}.ff\\:text-success{color:var(--ff-color-success)}.ff\\:text-success-foreground{color:var(--ff-color-success-foreground)}.ff\\:text-warning{color:var(--ff-color-warning)}.ff\\:text-warning-foreground{color:var(--ff-color-warning-foreground)}.ff\\:text-white{color:var(--ff-color-white)}.ff\\:uppercase{text-transform:uppercase}.ff\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.ff\\:accent-foreground{accent-color:var(--ff-color-foreground)}.ff\\:opacity-0{opacity:0}.ff\\:opacity-25{opacity:.25}.ff\\:opacity-40{opacity:.4}.ff\\:opacity-50{opacity:.5}.ff\\:opacity-60{opacity:.6}.ff\\:opacity-80{opacity:.8}.ff\\:shadow-\\[0_0_10px_-2px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 0 10px -2px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\,0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0000000a),0 8px 24px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0_0_12px_-6px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014),0 0 12px -6px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[3px_3px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:3px 3px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_-3px_0_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--tw-shadow:inset 0 -3px 0 var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.ff\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ff\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ff\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ff\\:ease-out{--tw-ease:var(--ff-ease-out);transition-timing-function:var(--ff-ease-out)}.ff\\:outline-none{--tw-outline-style:none;outline-style:none}.ff\\:select-none{-webkit-user-select:none;user-select:none}.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,var(--ff-color-foreground)0%,var(--ff-color-foreground)50%,var(--ff-color-foreground)100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,color-mix(in oklch,var(--ff-color-foreground)6%,transparent),color-mix(in oklch,var(--ff-color-foreground)10%,transparent),color-mix(in oklch,var(--ff-color-foreground)6%,transparent))}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,var(--ff-color-foreground)20%,var(--ff-color-foreground)80%,transparent 100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)20%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)80%,transparent 100%)}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),var(--ff-color-primary))}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),color-mix(in oklch,var(--ff-color-primary)80%,white))}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,var(--ff-color-primary)8px,var(--ff-color-primary)16px)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)16px)}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-secondary\\)\\,var\\(--ff-color-secondary\\)_4px\\,var\\(--ff-color-surface\\)_4px\\,var\\(--ff-color-surface\\)_8px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-secondary),var(--ff-color-secondary)4px,var(--ff-color-surface)4px,var(--ff-color-surface)8px)}.ff\\:\\[scrollbar-width\\:none\\]{scrollbar-width:none}.ff\\:duration-100{animation-duration:.1s}.ff\\:duration-150{animation-duration:.15s}.ff\\:duration-200{animation-duration:.2s}.ff\\:duration-300{animation-duration:.3s}.ff\\:ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.ff\\:peer-placeholder-shown\\:translate-y-0:is(:where(.ff\\:peer):placeholder-shown~*){--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-placeholder-shown\\:scale-100:is(:where(.ff\\:peer):placeholder-shown~*){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-placeholder-shown\\:font-normal:is(:where(.ff\\:peer):placeholder-shown~*){--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:peer-placeholder-shown\\:text-muted:is(:where(.ff\\:peer):placeholder-shown~*){color:var(--ff-color-muted)}.ff\\:peer-focus\\:-translate-y-2:is(:where(.ff\\:peer):focus~*){--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-focus\\:scale-75:is(:where(.ff\\:peer):focus~*){--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-focus\\:font-medium:is(:where(.ff\\:peer):focus~*){--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:peer-focus\\:text-danger:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-danger)}.ff\\:peer-focus\\:text-primary:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-primary)}.ff\\:peer-disabled\\:text-muted:is(:where(.ff\\:peer):disabled~*){color:var(--ff-color-muted)}.ff\\:peer-disabled\\:opacity-50:is(:where(.ff\\:peer):disabled~*){opacity:.5}.ff\\:placeholder\\:text-muted::placeholder{color:var(--ff-color-muted)}.ff\\:placeholder\\:opacity-0::placeholder{opacity:0}.ff\\:placeholder\\:transition-opacity::placeholder{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:placeholder\\:duration-200::placeholder{--tw-duration:.2s;transition-duration:.2s;animation-duration:.2s}.ff\\:last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.ff\\:last\\:pb-0:last-child{padding-bottom:calc(var(--ff-spacing)*0)}@media(hover:hover){.ff\\:hover\\:-translate-x-0\\.5:hover{--tw-translate-x:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-x-0:hover{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-y-0:hover{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:border-foreground:hover{border-color:var(--ff-color-foreground)}.ff\\:hover\\:bg-secondary:hover{background-color:var(--ff-color-secondary)}.ff\\:hover\\:underline:hover{text-decoration-line:underline}.ff\\:hover\\:opacity-90:hover{opacity:.9}.ff\\:hover\\:shadow-\\[0_4px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]:hover{--tw-shadow:0 4px 16px -4px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-none:hover{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.ff\\:focus\\:border-danger:focus,.ff\\:focus\\:border-danger\\/50:focus{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-danger\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:focus\\:border-primary:focus,.ff\\:focus\\:border-primary\\/50:focus{border-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-primary\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-primary)50%,transparent)}}.ff\\:focus\\:border-b-danger:focus{border-bottom-color:var(--ff-color-danger)}.ff\\:focus\\:border-b-primary:focus{border-bottom-color:var(--ff-color-primary)}.ff\\:focus\\:bg-background:focus{background-color:var(--ff-color-background)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-danger-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-danger-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-primary-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-primary-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-none:focus{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-danger:focus,.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-danger)20%,transparent)}}.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-primary)20%,transparent)}}.ff\\:focus\\:placeholder\\:opacity-100:focus::placeholder{opacity:1}.ff\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus-visible\\:ring-border:focus-visible{--tw-ring-color:var(--ff-color-border)}.ff\\:focus-visible\\:ring-danger:focus-visible{--tw-ring-color:var(--ff-color-danger)}.ff\\:focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--ff-color-primary)}.ff\\:focus-visible\\:ring-secondary:focus-visible{--tw-ring-color:var(--ff-color-secondary)}.ff\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ff\\:active\\:translate-x-0:active{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-x-0\\.5:active{--tw-translate-x:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0\\.5:active{--tw-translate-y:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]:active{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]:active{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-none:active{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ff\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.ff\\:disabled\\:opacity-35:disabled{opacity:.35}.ff\\:disabled\\:opacity-50:disabled{opacity:.5}.ff\\:\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden::-webkit-scrollbar{display:none}.ff\\:\\[\\&\\>\\*\\]\\:min-h-0>*{min-height:calc(var(--ff-spacing)*0)}.ff\\:\\[\\&\\>\\*\\]\\:flex-1>*{flex:1}.fanfare-text-balance{text-wrap:balance}.fanfare-text-pretty{text-wrap:pretty}}[data-fanfare-variant=default]{--ff-variant:"default"}[data-fanfare-variant=retro]{--ff-variant:"retro";--ff-color-background:#f4f1ea;--ff-color-foreground:#000;--ff-color-muted:#444;--ff-color-muted-foreground:#444;--ff-color-border:#000;--ff-font-sans:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-heading:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}[data-fanfare-variant=rounded]{--ff-variant:"rounded"}[data-fanfare-variant=clean]{--ff-variant:"clean";--ff-color-background:#fff;--ff-color-foreground:#0a0a0a;--ff-color-muted:#737373;--ff-color-muted-foreground:#737373;--ff-color-border:#e8e8e8;--ff-font-sans:"Figtree",system-ui,sans-serif;--ff-font-heading:"Figtree",system-ui,sans-serif;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.5rem)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes celebration-bounce{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}75%{transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes pulse-success{0%{box-shadow:0 0 0 0 var(--ff-color-success,#22c55e)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-slide{0%{background-position:-100% 0}to{background-position:200% 0}}', no = '@theme{ --color-primary: #1d1f27; --color-primary-foreground: #ffffff; --color-secondary: #f4f4f5; --color-background: #ffffff; --color-surface: transparent; --color-surface-foreground: #1d1f27; --color-foreground: #1d1f27; --color-muted: #4b4e56cc; --color-muted-foreground: #4b4e5699; --color-border: #4b4e5666; --color-success: oklch(.77 .18 130); --color-success-foreground: #111111; --color-warning: oklch(.72 .18 65); --color-warning-foreground: #111111; --color-danger: oklch(.63 .24 25); --color-danger-foreground: #ffffff; --font-sans: "Inter", system-ui, sans-serif; --font-heading: "Inter", system-ui, sans-serif; --text-xxs: .625rem; --text-xxs--line-height: .875rem; }[data-fanfare-variant=default]{--ff-variant: "default"}[data-fanfare-variant=retro]{--ff-variant: "retro";--ff-color-background: #f4f1ea;--ff-color-foreground: #000000;--ff-color-muted: #444444;--ff-color-muted-foreground: #444444;--ff-color-border: #000000;--ff-font-sans: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-heading: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}[data-fanfare-variant=rounded]{--ff-variant: "rounded"}[data-fanfare-variant=clean]{--ff-variant: "clean";--ff-color-background: #ffffff;--ff-color-foreground: #0a0a0a;--ff-color-muted: #737373;--ff-color-muted-foreground: #737373;--ff-color-border: #e8e8e8;--ff-font-sans: "Figtree", system-ui, sans-serif;--ff-font-heading: "Figtree", system-ui, sans-serif;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@layer base{.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop,.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}}';
|
|
4838
|
-
function
|
|
4864
|
+
oo.displayName = "ExperienceWidget";
|
|
4865
|
+
const fo = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ff-font-sans:"Inter",system-ui,sans-serif;--ff-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ff-color-neutral-50:oklch(98.5% 0 0);--ff-color-neutral-200:oklch(92.2% 0 0);--ff-color-neutral-300:oklch(87% 0 0);--ff-color-neutral-500:oklch(55.6% 0 0);--ff-color-white:#fff;--ff-spacing:.25rem;--ff-container-sm:24rem;--ff-text-xs:.75rem;--ff-text-xs--line-height:calc(1/.75);--ff-text-sm:.875rem;--ff-text-sm--line-height:calc(1.25/.875);--ff-text-base:1rem;--ff-text-base--line-height: 1.5 ;--ff-text-lg:1.125rem;--ff-text-lg--line-height:calc(1.75/1.125);--ff-text-xl:1.25rem;--ff-text-xl--line-height:calc(1.75/1.25);--ff-text-2xl:1.5rem;--ff-text-2xl--line-height:calc(2/1.5);--ff-text-3xl:1.875rem;--ff-text-3xl--line-height: 1.2 ;--ff-text-4xl:2.25rem;--ff-text-4xl--line-height:calc(2.5/2.25);--ff-font-weight-extralight:200;--ff-font-weight-light:300;--ff-font-weight-normal:400;--ff-font-weight-medium:500;--ff-font-weight-semibold:600;--ff-font-weight-bold:700;--ff-font-weight-extrabold:800;--ff-font-weight-black:900;--ff-tracking-tight:-.025em;--ff-tracking-normal:0em;--ff-tracking-wide:.025em;--ff-tracking-wider:.05em;--ff-tracking-widest:.1em;--ff-leading-tight:1.25;--ff-radius-md:.375rem;--ff-radius-lg:.5rem;--ff-radius-xl:.75rem;--ff-radius-2xl:1rem;--ff-radius-3xl:1.5rem;--ff-ease-out:cubic-bezier(0,0,.2,1);--ff-animate-spin:spin 1s linear infinite;--ff-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ff-default-transition-duration:.15s;--ff-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ff-default-font-family:var(--ff-font-sans);--ff-default-mono-font-family:var(--ff-font-mono);--ff-color-primary:#1d1f27;--ff-color-primary-foreground:#fff;--ff-color-secondary:#f4f4f5;--ff-color-background:#fff;--ff-color-surface:transparent;--ff-color-surface-foreground:#1d1f27;--ff-color-foreground:#1d1f27;--ff-color-muted:#4b4e56cc;--ff-color-muted-foreground:#4b4e5699;--ff-color-border:#4b4e5666;--ff-color-success:oklch(77% .18 130);--ff-color-success-foreground:#111;--ff-color-warning:oklch(72% .18 65);--ff-color-warning-foreground:#111;--ff-color-danger:oklch(63% .24 25);--ff-color-danger-foreground:#fff;--ff-font-heading:"Inter",system-ui,sans-serif;--ff-text-xxs:.625rem;--ff-text-xxs--line-height:.875rem;--ff-animate-fade-in:fade-in .2s ease-out;--ff-animate-fade-out:fade-out .2s ease-out;--ff-animate-slide-in:slide-in .2s ease-out;--ff-animate-slide-out:slide-out .2s ease-out;--ff-animate-scale-in:scale-in .2s ease-out;--ff-animate-scale-out:scale-out .2s ease-out;--ff-animate-accordion-down:accordion-down .2s ease-out;--ff-animate-accordion-up:accordion-up .2s ease-out;--ff-animate-celebration:celebration-bounce .6s ease-out;--ff-animate-shake:shake .5s ease-out;--ff-animate-pulse-success:pulse-success 1s ease-out}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ff-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ff-default-font-feature-settings,normal);font-variation-settings:var(--ff-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ff-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ff-default-mono-font-feature-settings,normal);font-variation-settings:var(--ff-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fanfare-root{color:var(--ff-color-foreground);background-color:var(--ff-color-surface);font-family:var(--ff-font-sans)}.fanfare-root *,.fanfare-root :after,.fanfare-root :before,.fanfare-root ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root button:not(:disabled),.fanfare-root [role=button]:not(:disabled){cursor:pointer}@media(prefers-reduced-motion:reduce){.fanfare-root *,.fanfare-root :before,.fanfare-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.ff\\:pointer-events-none{pointer-events:none}.ff\\:absolute{position:absolute}.ff\\:relative{position:relative}.ff\\:inset-0{inset:calc(var(--ff-spacing)*0)}.ff\\:top-1\\/2{top:50%}.ff\\:top-3{top:calc(var(--ff-spacing)*3)}.ff\\:right-2{right:calc(var(--ff-spacing)*2)}.ff\\:left-3{left:calc(var(--ff-spacing)*3)}.ff\\:z-10{z-index:10}.ff\\:-mx-1{margin-inline:calc(var(--ff-spacing)*-1)}.ff\\:mx-2{margin-inline:calc(var(--ff-spacing)*2)}.ff\\:-mt-0\\.5{margin-top:calc(var(--ff-spacing)*-.5)}.ff\\:mt-0\\.5{margin-top:calc(var(--ff-spacing)*.5)}.ff\\:mt-1{margin-top:calc(var(--ff-spacing)*1)}.ff\\:mt-2{margin-top:calc(var(--ff-spacing)*2)}.ff\\:mt-3{margin-top:calc(var(--ff-spacing)*3)}.ff\\:mt-4{margin-top:calc(var(--ff-spacing)*4)}.ff\\:mt-auto{margin-top:auto}.ff\\:mb-1\\.5{margin-bottom:calc(var(--ff-spacing)*1.5)}.ff\\:mb-2{margin-bottom:calc(var(--ff-spacing)*2)}.ff\\:mb-4{margin-bottom:calc(var(--ff-spacing)*4)}.ff\\:mb-6{margin-bottom:calc(var(--ff-spacing)*6)}.ff\\:block{display:block}.ff\\:flex{display:flex}.ff\\:grid{display:grid}.ff\\:inline-block{display:inline-block}.ff\\:inline-flex{display:inline-flex}.ff\\:size-1{width:calc(var(--ff-spacing)*1);height:calc(var(--ff-spacing)*1)}.ff\\:size-1\\.5{width:calc(var(--ff-spacing)*1.5);height:calc(var(--ff-spacing)*1.5)}.ff\\:size-4{width:calc(var(--ff-spacing)*4);height:calc(var(--ff-spacing)*4)}.ff\\:size-5{width:calc(var(--ff-spacing)*5);height:calc(var(--ff-spacing)*5)}.ff\\:size-6{width:calc(var(--ff-spacing)*6);height:calc(var(--ff-spacing)*6)}.ff\\:size-8{width:calc(var(--ff-spacing)*8);height:calc(var(--ff-spacing)*8)}.ff\\:size-10{width:calc(var(--ff-spacing)*10);height:calc(var(--ff-spacing)*10)}.ff\\:h-0\\.5{height:calc(var(--ff-spacing)*.5)}.ff\\:h-1{height:calc(var(--ff-spacing)*1)}.ff\\:h-2{height:calc(var(--ff-spacing)*2)}.ff\\:h-2\\.5{height:calc(var(--ff-spacing)*2.5)}.ff\\:h-3{height:calc(var(--ff-spacing)*3)}.ff\\:h-4{height:calc(var(--ff-spacing)*4)}.ff\\:h-4\\.5{height:calc(var(--ff-spacing)*4.5)}.ff\\:h-5{height:calc(var(--ff-spacing)*5)}.ff\\:h-6{height:calc(var(--ff-spacing)*6)}.ff\\:h-8{height:calc(var(--ff-spacing)*8)}.ff\\:h-10{height:calc(var(--ff-spacing)*10)}.ff\\:h-12{height:calc(var(--ff-spacing)*12)}.ff\\:h-14{height:calc(var(--ff-spacing)*14)}.ff\\:h-16{height:calc(var(--ff-spacing)*16)}.ff\\:h-20{height:calc(var(--ff-spacing)*20)}.ff\\:h-32{height:calc(var(--ff-spacing)*32)}.ff\\:h-\\[480px\\]{height:480px}.ff\\:h-auto{height:auto}.ff\\:h-full{height:100%}.ff\\:max-h-44{max-height:calc(var(--ff-spacing)*44)}.ff\\:max-h-\\[24rem\\]{max-height:24rem}.ff\\:w-1\\/2{width:50%}.ff\\:w-1\\/3{width:33.3333%}.ff\\:w-2\\/3{width:66.6667%}.ff\\:w-3\\/4{width:75%}.ff\\:w-5\\/6{width:83.3333%}.ff\\:w-6{width:calc(var(--ff-spacing)*6)}.ff\\:w-9{width:calc(var(--ff-spacing)*9)}.ff\\:w-10{width:calc(var(--ff-spacing)*10)}.ff\\:w-12{width:calc(var(--ff-spacing)*12)}.ff\\:w-14{width:calc(var(--ff-spacing)*14)}.ff\\:w-16{width:calc(var(--ff-spacing)*16)}.ff\\:w-20{width:calc(var(--ff-spacing)*20)}.ff\\:w-40{width:calc(var(--ff-spacing)*40)}.ff\\:w-72{width:calc(var(--ff-spacing)*72)}.ff\\:w-80{width:calc(var(--ff-spacing)*80)}.ff\\:w-auto{width:auto}.ff\\:w-full{width:100%}.ff\\:max-w-sm{max-width:var(--ff-container-sm)}.ff\\:min-w-0{min-width:calc(var(--ff-spacing)*0)}.ff\\:flex-1{flex:1}.ff\\:shrink-0{flex-shrink:0}.ff\\:origin-center{transform-origin:50%}.ff\\:origin-top-left{transform-origin:0 0}.ff\\:-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:-translate-y-2{--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:animate-\\[skeleton-shimmer_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-shimmer}.ff\\:animate-\\[skeleton-slide_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-slide}.ff\\:animate-\\[spin_1\\.2s_cubic-bezier\\(0\\.4\\,0\\,0\\.6\\,1\\)_infinite\\]{animation:1.2s cubic-bezier(.4,0,.6,1) infinite spin}.ff\\:animate-\\[spin_1\\.8s_linear_infinite\\]{animation:1.8s linear infinite spin}.ff\\:animate-accordion-down{animation:var(--ff-animate-accordion-down)}.ff\\:animate-accordion-up{animation:var(--ff-animate-accordion-up)}.ff\\:animate-celebration{animation:var(--ff-animate-celebration)}.ff\\:animate-fade-in{animation:var(--ff-animate-fade-in)}.ff\\:animate-fade-out{animation:var(--ff-animate-fade-out)}.ff\\:animate-none{animation:none}.ff\\:animate-pulse{animation:var(--ff-animate-pulse)}.ff\\:animate-pulse-success{animation:var(--ff-animate-pulse-success)}.ff\\:animate-scale-in{animation:var(--ff-animate-scale-in)}.ff\\:animate-scale-out{animation:var(--ff-animate-scale-out)}.ff\\:animate-shake{animation:var(--ff-animate-shake)}.ff\\:animate-slide-in{animation:var(--ff-animate-slide-in)}.ff\\:animate-slide-out{animation:var(--ff-animate-slide-out)}.ff\\:animate-spin{animation:var(--ff-animate-spin)}.ff\\:cursor-not-allowed{cursor:not-allowed}.ff\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff\\:flex-col{flex-direction:column}.ff\\:flex-row{flex-direction:row}.ff\\:flex-wrap{flex-wrap:wrap}.ff\\:items-baseline{align-items:baseline}.ff\\:items-center{align-items:center}.ff\\:items-start{align-items:flex-start}.ff\\:justify-between{justify-content:space-between}.ff\\:justify-center{justify-content:center}.ff\\:gap-0\\.5{gap:calc(var(--ff-spacing)*.5)}.ff\\:gap-1{gap:calc(var(--ff-spacing)*1)}.ff\\:gap-1\\.5{gap:calc(var(--ff-spacing)*1.5)}.ff\\:gap-2{gap:calc(var(--ff-spacing)*2)}.ff\\:gap-3{gap:calc(var(--ff-spacing)*3)}.ff\\:gap-4{gap:calc(var(--ff-spacing)*4)}.ff\\:gap-5{gap:calc(var(--ff-spacing)*5)}.ff\\:gap-6{gap:calc(var(--ff-spacing)*6)}.ff\\:gap-10{gap:calc(var(--ff-spacing)*10)}.ff\\:gap-12{gap:calc(var(--ff-spacing)*12)}:where(.ff\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.ff\\:self-end{align-self:flex-end}.ff\\:overflow-hidden{overflow:hidden}.ff\\:overflow-visible{overflow:visible}.ff\\:overflow-x-auto{overflow-x:auto}.ff\\:overflow-y-auto{overflow-y:auto}.ff\\:rounded{border-radius:.25rem}.ff\\:rounded-2xl{border-radius:var(--ff-radius-2xl)}.ff\\:rounded-3xl{border-radius:var(--ff-radius-3xl)}.ff\\:rounded-\\[8px\\]{border-radius:8px}.ff\\:rounded-\\[10px\\]{border-radius:10px}.ff\\:rounded-\\[14px\\]{border-radius:14px}.ff\\:rounded-full{border-radius:3.40282e38px}.ff\\:rounded-lg{border-radius:var(--ff-radius-lg)}.ff\\:rounded-md{border-radius:var(--ff-radius-md)}.ff\\:rounded-none{border-radius:0}.ff\\:rounded-xl{border-radius:var(--ff-radius-xl)}.ff\\:border{border-style:var(--tw-border-style);border-width:1px}.ff\\:border-0{border-style:var(--tw-border-style);border-width:0}.ff\\:border-2{border-style:var(--tw-border-style);border-width:2px}.ff\\:border-3{border-style:var(--tw-border-style);border-width:3px}.ff\\:border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.ff\\:border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.ff\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ff\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ff\\:border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.ff\\:border-none{--tw-border-style:none;border-style:none}.ff\\:border-border,.ff\\:border-border\\/40{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/40{border-color:color-mix(in oklab,var(--ff-color-border)40%,transparent)}}.ff\\:border-border\\/50{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/50{border-color:color-mix(in oklab,var(--ff-color-border)50%,transparent)}}.ff\\:border-danger,.ff\\:border-danger\\/50{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-danger\\/50{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:border-foreground,.ff\\:border-foreground\\/8{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/8{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-foreground\\/12{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/12{border-color:color-mix(in oklab,var(--ff-color-foreground)12%,transparent)}}.ff\\:border-foreground\\/20{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/20{border-color:color-mix(in oklab,var(--ff-color-foreground)20%,transparent)}}.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-neutral-200{border-color:var(--ff-color-neutral-200)}.ff\\:border-primary{border-color:var(--ff-color-primary)}.ff\\:border-transparent{border-color:#0000}.ff\\:border-b-danger{border-bottom-color:var(--ff-color-danger)}.ff\\:bg-\\[\\#ff3a00\\]{background-color:#ff3a00}.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:color-mix(in oklch,var(--ff-color-foreground)3%,var(--ff-color-background))}}.ff\\:bg-background,.ff\\:bg-background\\/60{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/60{background-color:color-mix(in oklab,var(--ff-color-background)60%,transparent)}}.ff\\:bg-background\\/70{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/70{background-color:color-mix(in oklab,var(--ff-color-background)70%,transparent)}}.ff\\:bg-danger,.ff\\:bg-danger\\/10{background-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-danger\\/10{background-color:color-mix(in oklab,var(--ff-color-danger)10%,transparent)}}.ff\\:bg-foreground\\/5{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ff-color-foreground)5%,transparent)}}.ff\\:bg-foreground\\/40{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/40{background-color:color-mix(in oklab,var(--ff-color-foreground)40%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)10%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:bg-muted\\/5{background-color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-muted\\/5{background-color:color-mix(in oklab,var(--ff-color-muted)5%,transparent)}}.ff\\:bg-neutral-50{background-color:var(--ff-color-neutral-50)}.ff\\:bg-primary{background-color:var(--ff-color-primary)}.ff\\:bg-primary-foreground{background-color:var(--ff-color-primary-foreground)}.ff\\:bg-primary\\/5{background-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-primary\\/5{background-color:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:bg-secondary{background-color:var(--ff-color-secondary)}.ff\\:bg-success,.ff\\:bg-success\\/10{background-color:var(--ff-color-success)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-success\\/10{background-color:color-mix(in oklab,var(--ff-color-success)10%,transparent)}}.ff\\:bg-transparent{background-color:#0000}.ff\\:bg-warning,.ff\\:bg-warning\\/10{background-color:var(--ff-color-warning)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-warning\\/10{background-color:color-mix(in oklab,var(--ff-color-warning)10%,transparent)}}.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.ff\\:bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.ff\\:from-primary\\/10{--tw-gradient-from:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:from-primary\\/10{--tw-gradient-from:color-mix(in oklab,var(--ff-color-primary)10%,transparent)}}.ff\\:from-primary\\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:to-primary\\/5{--tw-gradient-to:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:to-primary\\/5{--tw-gradient-to:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:to-primary\\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:\\[background-size\\:200\\%_100\\%\\]{background-size:200% 100%}.ff\\:p-0{padding:calc(var(--ff-spacing)*0)}.ff\\:p-3{padding:calc(var(--ff-spacing)*3)}.ff\\:p-4{padding:calc(var(--ff-spacing)*4)}.ff\\:p-5{padding:calc(var(--ff-spacing)*5)}.ff\\:p-6{padding:calc(var(--ff-spacing)*6)}.ff\\:p-8{padding:calc(var(--ff-spacing)*8)}.ff\\:px-0{padding-inline:calc(var(--ff-spacing)*0)}.ff\\:px-2{padding-inline:calc(var(--ff-spacing)*2)}.ff\\:px-2\\.5{padding-inline:calc(var(--ff-spacing)*2.5)}.ff\\:px-3{padding-inline:calc(var(--ff-spacing)*3)}.ff\\:px-4{padding-inline:calc(var(--ff-spacing)*4)}.ff\\:px-5{padding-inline:calc(var(--ff-spacing)*5)}.ff\\:px-6{padding-inline:calc(var(--ff-spacing)*6)}.ff\\:py-0\\.5{padding-block:calc(var(--ff-spacing)*.5)}.ff\\:py-1{padding-block:calc(var(--ff-spacing)*1)}.ff\\:py-1\\.5{padding-block:calc(var(--ff-spacing)*1.5)}.ff\\:py-2{padding-block:calc(var(--ff-spacing)*2)}.ff\\:py-2\\.5{padding-block:calc(var(--ff-spacing)*2.5)}.ff\\:py-3{padding-block:calc(var(--ff-spacing)*3)}.ff\\:py-4{padding-block:calc(var(--ff-spacing)*4)}.ff\\:py-12{padding-block:calc(var(--ff-spacing)*12)}.ff\\:pt-2{padding-top:calc(var(--ff-spacing)*2)}.ff\\:pt-3{padding-top:calc(var(--ff-spacing)*3)}.ff\\:pt-5{padding-top:calc(var(--ff-spacing)*5)}.ff\\:pb-0\\.5{padding-bottom:calc(var(--ff-spacing)*.5)}.ff\\:pb-1{padding-bottom:calc(var(--ff-spacing)*1)}.ff\\:pb-2{padding-bottom:calc(var(--ff-spacing)*2)}.ff\\:pb-8{padding-bottom:calc(var(--ff-spacing)*8)}.ff\\:pl-7{padding-left:calc(var(--ff-spacing)*7)}.ff\\:text-center{text-align:center}.ff\\:text-right{text-align:right}.ff\\:font-heading{font-family:var(--ff-font-heading)}.ff\\:font-mono{font-family:var(--ff-font-mono)}.ff\\:text-2xl{font-size:var(--ff-text-2xl);line-height:var(--tw-leading,var(--ff-text-2xl--line-height))}.ff\\:text-3xl{font-size:var(--ff-text-3xl);line-height:var(--tw-leading,var(--ff-text-3xl--line-height))}.ff\\:text-4xl{font-size:var(--ff-text-4xl);line-height:var(--tw-leading,var(--ff-text-4xl--line-height))}.ff\\:text-base{font-size:var(--ff-text-base);line-height:var(--tw-leading,var(--ff-text-base--line-height))}.ff\\:text-lg{font-size:var(--ff-text-lg);line-height:var(--tw-leading,var(--ff-text-lg--line-height))}.ff\\:text-sm{font-size:var(--ff-text-sm);line-height:var(--tw-leading,var(--ff-text-sm--line-height))}.ff\\:text-xl{font-size:var(--ff-text-xl);line-height:var(--tw-leading,var(--ff-text-xl--line-height))}.ff\\:text-xs{font-size:var(--ff-text-xs);line-height:var(--tw-leading,var(--ff-text-xs--line-height))}.ff\\:text-xxs{font-size:var(--ff-text-xxs);line-height:var(--tw-leading,var(--ff-text-xxs--line-height))}.ff\\:text-\\[2rem\\]{font-size:2rem}.ff\\:text-\\[10\\.5px\\]{font-size:10.5px}.ff\\:text-\\[52px\\]{font-size:52px}.ff\\:leading-none{--tw-leading:1;line-height:1}.ff\\:leading-tight{--tw-leading:var(--ff-leading-tight);line-height:var(--ff-leading-tight)}.ff\\:font-black{--tw-font-weight:var(--ff-font-weight-black);font-weight:var(--ff-font-weight-black)}.ff\\:font-bold{--tw-font-weight:var(--ff-font-weight-bold);font-weight:var(--ff-font-weight-bold)}.ff\\:font-extrabold{--tw-font-weight:var(--ff-font-weight-extrabold);font-weight:var(--ff-font-weight-extrabold)}.ff\\:font-extralight{--tw-font-weight:var(--ff-font-weight-extralight);font-weight:var(--ff-font-weight-extralight)}.ff\\:font-light{--tw-font-weight:var(--ff-font-weight-light);font-weight:var(--ff-font-weight-light)}.ff\\:font-medium{--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:font-normal{--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:font-semibold{--tw-font-weight:var(--ff-font-weight-semibold);font-weight:var(--ff-font-weight-semibold)}.ff\\:tracking-\\[-0\\.025em\\]{--tw-tracking:-.025em;letter-spacing:-.025em}.ff\\:tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.ff\\:tracking-\\[0\\.08em\\]{--tw-tracking:.08em;letter-spacing:.08em}.ff\\:tracking-\\[0\\.15em\\]{--tw-tracking:.15em;letter-spacing:.15em}.ff\\:tracking-normal{--tw-tracking:var(--ff-tracking-normal);letter-spacing:var(--ff-tracking-normal)}.ff\\:tracking-tight{--tw-tracking:var(--ff-tracking-tight);letter-spacing:var(--ff-tracking-tight)}.ff\\:tracking-wide{--tw-tracking:var(--ff-tracking-wide);letter-spacing:var(--ff-tracking-wide)}.ff\\:tracking-wider{--tw-tracking:var(--ff-tracking-wider);letter-spacing:var(--ff-tracking-wider)}.ff\\:tracking-widest{--tw-tracking:var(--ff-tracking-widest);letter-spacing:var(--ff-tracking-widest)}.ff\\:whitespace-nowrap{white-space:nowrap}.ff\\:text-current{color:currentColor}.ff\\:text-danger{color:var(--ff-color-danger)}.ff\\:text-danger-foreground{color:var(--ff-color-danger-foreground)}.ff\\:text-foreground,.ff\\:text-foreground\\/80{color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-foreground\\/80{color:color-mix(in oklab,var(--ff-color-foreground)80%,transparent)}}.ff\\:text-muted{color:var(--ff-color-muted)}.ff\\:text-muted-foreground{color:var(--ff-color-muted-foreground)}.ff\\:text-muted\\/60{color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-muted\\/60{color:color-mix(in oklab,var(--ff-color-muted)60%,transparent)}}.ff\\:text-neutral-300{color:var(--ff-color-neutral-300)}.ff\\:text-neutral-500{color:var(--ff-color-neutral-500)}.ff\\:text-primary{color:var(--ff-color-primary)}.ff\\:text-primary-foreground{color:var(--ff-color-primary-foreground)}.ff\\:text-success{color:var(--ff-color-success)}.ff\\:text-success-foreground{color:var(--ff-color-success-foreground)}.ff\\:text-warning{color:var(--ff-color-warning)}.ff\\:text-warning-foreground{color:var(--ff-color-warning-foreground)}.ff\\:text-white{color:var(--ff-color-white)}.ff\\:uppercase{text-transform:uppercase}.ff\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.ff\\:accent-foreground{accent-color:var(--ff-color-foreground)}.ff\\:opacity-0{opacity:0}.ff\\:opacity-25{opacity:.25}.ff\\:opacity-40{opacity:.4}.ff\\:opacity-50{opacity:.5}.ff\\:opacity-60{opacity:.6}.ff\\:opacity-80{opacity:.8}.ff\\:shadow-\\[0_0_10px_-2px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 0 10px -2px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\,0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0000000a),0 8px 24px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0_0_12px_-6px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014),0 0 12px -6px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[3px_3px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:3px 3px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_-3px_0_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--tw-shadow:inset 0 -3px 0 var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.ff\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ff\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ff\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ff\\:ease-out{--tw-ease:var(--ff-ease-out);transition-timing-function:var(--ff-ease-out)}.ff\\:outline-none{--tw-outline-style:none;outline-style:none}.ff\\:select-none{-webkit-user-select:none;user-select:none}.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,var(--ff-color-foreground)0%,var(--ff-color-foreground)50%,var(--ff-color-foreground)100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,color-mix(in oklch,var(--ff-color-foreground)6%,transparent),color-mix(in oklch,var(--ff-color-foreground)10%,transparent),color-mix(in oklch,var(--ff-color-foreground)6%,transparent))}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,var(--ff-color-foreground)20%,var(--ff-color-foreground)80%,transparent 100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)20%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)80%,transparent 100%)}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),var(--ff-color-primary))}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),color-mix(in oklch,var(--ff-color-primary)80%,white))}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,var(--ff-color-primary)8px,var(--ff-color-primary)16px)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)16px)}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-secondary\\)\\,var\\(--ff-color-secondary\\)_4px\\,var\\(--ff-color-surface\\)_4px\\,var\\(--ff-color-surface\\)_8px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-secondary),var(--ff-color-secondary)4px,var(--ff-color-surface)4px,var(--ff-color-surface)8px)}.ff\\:\\[scrollbar-width\\:none\\]{scrollbar-width:none}.ff\\:duration-100{animation-duration:.1s}.ff\\:duration-150{animation-duration:.15s}.ff\\:duration-200{animation-duration:.2s}.ff\\:duration-300{animation-duration:.3s}.ff\\:ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.ff\\:peer-placeholder-shown\\:translate-y-0:is(:where(.ff\\:peer):placeholder-shown~*){--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-placeholder-shown\\:scale-100:is(:where(.ff\\:peer):placeholder-shown~*){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-placeholder-shown\\:font-normal:is(:where(.ff\\:peer):placeholder-shown~*){--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:peer-placeholder-shown\\:text-muted:is(:where(.ff\\:peer):placeholder-shown~*){color:var(--ff-color-muted)}.ff\\:peer-focus\\:-translate-y-2:is(:where(.ff\\:peer):focus~*){--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-focus\\:scale-75:is(:where(.ff\\:peer):focus~*){--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-focus\\:font-medium:is(:where(.ff\\:peer):focus~*){--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:peer-focus\\:text-danger:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-danger)}.ff\\:peer-focus\\:text-primary:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-primary)}.ff\\:peer-disabled\\:text-muted:is(:where(.ff\\:peer):disabled~*){color:var(--ff-color-muted)}.ff\\:peer-disabled\\:opacity-50:is(:where(.ff\\:peer):disabled~*){opacity:.5}.ff\\:placeholder\\:text-muted::placeholder{color:var(--ff-color-muted)}.ff\\:placeholder\\:opacity-0::placeholder{opacity:0}.ff\\:placeholder\\:transition-opacity::placeholder{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:placeholder\\:duration-200::placeholder{--tw-duration:.2s;transition-duration:.2s;animation-duration:.2s}.ff\\:last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.ff\\:last\\:pb-0:last-child{padding-bottom:calc(var(--ff-spacing)*0)}@media(hover:hover){.ff\\:hover\\:-translate-x-0\\.5:hover{--tw-translate-x:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-x-0:hover{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-y-0:hover{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:border-foreground:hover{border-color:var(--ff-color-foreground)}.ff\\:hover\\:bg-secondary:hover{background-color:var(--ff-color-secondary)}.ff\\:hover\\:underline:hover{text-decoration-line:underline}.ff\\:hover\\:opacity-90:hover{opacity:.9}.ff\\:hover\\:shadow-\\[0_4px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]:hover{--tw-shadow:0 4px 16px -4px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-none:hover{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.ff\\:focus\\:border-danger:focus,.ff\\:focus\\:border-danger\\/50:focus{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-danger\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:focus\\:border-primary:focus,.ff\\:focus\\:border-primary\\/50:focus{border-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-primary\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-primary)50%,transparent)}}.ff\\:focus\\:border-b-danger:focus{border-bottom-color:var(--ff-color-danger)}.ff\\:focus\\:border-b-primary:focus{border-bottom-color:var(--ff-color-primary)}.ff\\:focus\\:bg-background:focus{background-color:var(--ff-color-background)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-danger-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-danger-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-primary-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-primary-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-none:focus{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-danger:focus,.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-danger)20%,transparent)}}.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-primary)20%,transparent)}}.ff\\:focus\\:placeholder\\:opacity-100:focus::placeholder{opacity:1}.ff\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus-visible\\:ring-border:focus-visible{--tw-ring-color:var(--ff-color-border)}.ff\\:focus-visible\\:ring-danger:focus-visible{--tw-ring-color:var(--ff-color-danger)}.ff\\:focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--ff-color-primary)}.ff\\:focus-visible\\:ring-secondary:focus-visible{--tw-ring-color:var(--ff-color-secondary)}.ff\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ff\\:active\\:translate-x-0:active{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-x-0\\.5:active{--tw-translate-x:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0\\.5:active{--tw-translate-y:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]:active{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]:active{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-none:active{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ff\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.ff\\:disabled\\:opacity-35:disabled{opacity:.35}.ff\\:disabled\\:opacity-50:disabled{opacity:.5}.ff\\:\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden::-webkit-scrollbar{display:none}.ff\\:\\[\\&\\>\\*\\]\\:min-h-0>*{min-height:calc(var(--ff-spacing)*0)}.ff\\:\\[\\&\\>\\*\\]\\:flex-1>*{flex:1}.fanfare-text-balance{text-wrap:balance}.fanfare-text-pretty{text-wrap:pretty}}[data-fanfare-variant=default]{--ff-variant:"default"}[data-fanfare-variant=retro]{--ff-variant:"retro";--ff-color-background:#f4f1ea;--ff-color-foreground:#000;--ff-color-muted:#444;--ff-color-muted-foreground:#444;--ff-color-border:#000;--ff-font-sans:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-heading:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}[data-fanfare-variant=rounded]{--ff-variant:"rounded"}[data-fanfare-variant=clean]{--ff-variant:"clean";--ff-color-background:#fff;--ff-color-foreground:#0a0a0a;--ff-color-muted:#737373;--ff-color-muted-foreground:#737373;--ff-color-border:#e8e8e8;--ff-font-sans:"Figtree",system-ui,sans-serif;--ff-font-heading:"Figtree",system-ui,sans-serif;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.5rem)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes celebration-bounce{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}75%{transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes pulse-success{0%{box-shadow:0 0 0 0 var(--ff-color-success,#22c55e)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-slide{0%{background-position:-100% 0}to{background-position:200% 0}}', io = '@theme{ --color-primary: #1d1f27; --color-primary-foreground: #ffffff; --color-secondary: #f4f4f5; --color-background: #ffffff; --color-surface: transparent; --color-surface-foreground: #1d1f27; --color-foreground: #1d1f27; --color-muted: #4b4e56cc; --color-muted-foreground: #4b4e5699; --color-border: #4b4e5666; --color-success: oklch(.77 .18 130); --color-success-foreground: #111111; --color-warning: oklch(.72 .18 65); --color-warning-foreground: #111111; --color-danger: oklch(.63 .24 25); --color-danger-foreground: #ffffff; --font-sans: "Inter", system-ui, sans-serif; --font-heading: "Inter", system-ui, sans-serif; --text-xxs: .625rem; --text-xxs--line-height: .875rem; }[data-fanfare-variant=default]{--ff-variant: "default"}[data-fanfare-variant=retro]{--ff-variant: "retro";--ff-color-background: #f4f1ea;--ff-color-foreground: #000000;--ff-color-muted: #444444;--ff-color-muted-foreground: #444444;--ff-color-border: #000000;--ff-font-sans: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-heading: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}[data-fanfare-variant=rounded]{--ff-variant: "rounded"}[data-fanfare-variant=clean]{--ff-variant: "clean";--ff-color-background: #ffffff;--ff-color-foreground: #0a0a0a;--ff-color-muted: #737373;--ff-color-muted-foreground: #737373;--ff-color-border: #e8e8e8;--ff-font-sans: "Figtree", system-ui, sans-serif;--ff-font-heading: "Figtree", system-ui, sans-serif;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@layer base{.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop,.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}}';
|
|
4866
|
+
function so({
|
|
4839
4867
|
children: e,
|
|
4840
4868
|
theme: a,
|
|
4841
4869
|
variant: r,
|
|
@@ -4845,74 +4873,74 @@ function oo({
|
|
|
4845
4873
|
style: f
|
|
4846
4874
|
}) {
|
|
4847
4875
|
const l = gt(null), [d, u] = _e(null);
|
|
4848
|
-
|
|
4876
|
+
Ya(() => {
|
|
4849
4877
|
if (l.current && !l.current.shadowRoot) {
|
|
4850
4878
|
const g = l.current.attachShadow({ mode: "open" });
|
|
4851
4879
|
u(g);
|
|
4852
4880
|
}
|
|
4853
4881
|
}, []);
|
|
4854
|
-
const y = re(() => a ?
|
|
4855
|
-
return /* @__PURE__ */ t("div", { ref: l, className: i, style: f, children: d &&
|
|
4882
|
+
const y = re(() => a ? ha(a) : {}, [a]);
|
|
4883
|
+
return /* @__PURE__ */ t("div", { ref: l, className: i, style: f, children: d && ur(
|
|
4856
4884
|
/* @__PURE__ */ c(Ce, { children: [
|
|
4857
4885
|
/* @__PURE__ */ c("style", { "data-fanfare-styles": !0, children: [
|
|
4858
|
-
|
|
4859
|
-
|
|
4886
|
+
fo,
|
|
4887
|
+
io
|
|
4860
4888
|
] }),
|
|
4861
|
-
/* @__PURE__ */ t(
|
|
4889
|
+
/* @__PURE__ */ t(pa, { locale: n, translations: o, children: /* @__PURE__ */ t(Vt, { theme: a, variant: r, className: "ff:h-full ff:w-full", children: /* @__PURE__ */ t("div", { className: "fanfare-root ff:h-full ff:w-full", style: y, children: e }) }) })
|
|
4862
4890
|
] }),
|
|
4863
4891
|
d
|
|
4864
4892
|
) });
|
|
4865
4893
|
}
|
|
4866
|
-
|
|
4894
|
+
so.displayName = "ShadowDOMPreview";
|
|
4867
4895
|
export {
|
|
4868
|
-
|
|
4896
|
+
Sa as AccessCodeForm,
|
|
4869
4897
|
Ze as AuctionModule,
|
|
4870
|
-
|
|
4871
|
-
|
|
4898
|
+
_a as AuthForm,
|
|
4899
|
+
va as AuthInput,
|
|
4872
4900
|
F as Button,
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
|
|
4877
|
-
|
|
4878
|
-
|
|
4879
|
-
|
|
4880
|
-
|
|
4881
|
-
|
|
4901
|
+
xa as Card,
|
|
4902
|
+
Kr as CardContent,
|
|
4903
|
+
Hr as CardDescription,
|
|
4904
|
+
Zr as CardFooter,
|
|
4905
|
+
Wr as CardHeader,
|
|
4906
|
+
Ur as CardTitle,
|
|
4907
|
+
Ca as ChallengeGate,
|
|
4908
|
+
Ye as DrawModule,
|
|
4909
|
+
Da as EndedModule,
|
|
4882
4910
|
Ke as ErrorView,
|
|
4883
|
-
|
|
4884
|
-
|
|
4885
|
-
|
|
4886
|
-
|
|
4887
|
-
|
|
4911
|
+
hr as ExperienceJourneyController,
|
|
4912
|
+
Do as ExperienceJourneySkeleton,
|
|
4913
|
+
oo as ExperienceWidget,
|
|
4914
|
+
ca as FanfareContext,
|
|
4915
|
+
No as FanfareProvider,
|
|
4888
4916
|
et as GrantedPanel,
|
|
4889
|
-
|
|
4917
|
+
pa as I18nProvider,
|
|
4890
4918
|
se as InfoPanel,
|
|
4891
4919
|
ht as Input,
|
|
4892
4920
|
Rt as LoadingView,
|
|
4893
|
-
|
|
4921
|
+
ba as OTPInput,
|
|
4894
4922
|
Fe as OutcomePanel,
|
|
4895
4923
|
K as PanelBody,
|
|
4896
4924
|
U as PanelFooter,
|
|
4897
4925
|
Q as PanelHeading,
|
|
4898
4926
|
Z as PanelLayout,
|
|
4899
4927
|
ut as QueueModule,
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
|
|
4928
|
+
Mo as RTL_LOCALES,
|
|
4929
|
+
so as ShadowDOMPreview,
|
|
4930
|
+
Pa as StartView,
|
|
4903
4931
|
oe as THEME_CSS_VARS,
|
|
4904
4932
|
Vt as ThemeProvider,
|
|
4905
4933
|
pt as TimedReleaseModule,
|
|
4906
4934
|
Tt as UpcomingModule,
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4935
|
+
Ba as WaitlistView,
|
|
4936
|
+
ha as buildThemeCssVars,
|
|
4937
|
+
Pr as buttonVariants,
|
|
4938
|
+
To as isRTLLocale,
|
|
4939
|
+
ta as normalizeOutcomeReason,
|
|
4940
|
+
ga as useExperienceJourney,
|
|
4913
4941
|
bt as useFanfare,
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
|
|
4942
|
+
So as useFanfareAuth,
|
|
4943
|
+
Co as useJourneySnapshot,
|
|
4944
|
+
Ee as useNanostore,
|
|
4945
|
+
Y as useTranslations
|
|
4918
4946
|
};
|