@fanfare-io/fanfare-sdk-react 0.8.0 → 0.10.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/error-view.d.ts +1 -1
- package/dist/index.js +914 -903
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as t, Fragment as Me, jsxs as u } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
3
|
+
import cr from "@fanfare-io/fanfare-sdk-core";
|
|
4
4
|
import * as s from "react";
|
|
5
|
-
import { createContext as
|
|
6
|
-
import { getLocaleMessages as
|
|
7
|
-
import { RTL_LOCALES as
|
|
8
|
-
import { ensureFanfareError as mt, toDisplay as ra, classify as
|
|
9
|
-
import { getGates as xa, getParticipation as
|
|
5
|
+
import { createContext as jt, useMemo as X, useContext as zt, useState as ve, useRef as bt, useEffect as $e, useCallback as B, useSyncExternalStore as dr, forwardRef as kt, useLayoutEffect as ur } from "react";
|
|
6
|
+
import { getLocaleMessages as pr, mergeTranslations as aa, createTranslateFunction as ba, isRTLLocale as gr, en as mr, resolveLocaleMapValue as hr, normalizeLocale as wr } from "@fanfare-io/fanfare-sdk-i18n";
|
|
7
|
+
import { RTL_LOCALES as Yo, isRTLLocale as Go } from "@fanfare-io/fanfare-sdk-i18n";
|
|
8
|
+
import { ensureFanfareError as mt, toDisplay as ra, classify as vr } from "@fanfare-io/fanfare-sdk-core/errors";
|
|
9
|
+
import { getGates as xa, getParticipation as br, getDistribution as xr, getSequenceId as yr, getSequencePhase as kr } from "@fanfare-io/fanfare-sdk-core/internals";
|
|
10
10
|
import * as ht from "valibot";
|
|
11
|
-
import { clsx as
|
|
12
|
-
import { extendTailwindMerge as
|
|
13
|
-
import { cva as
|
|
14
|
-
import { AnimatePresence as _t, motion as
|
|
15
|
-
import { mergeBrandTheme as
|
|
16
|
-
import
|
|
11
|
+
import { clsx as _r } from "clsx";
|
|
12
|
+
import { extendTailwindMerge as Nr } from "tailwind-merge";
|
|
13
|
+
import { cva as ae } from "class-variance-authority";
|
|
14
|
+
import { AnimatePresence as _t, motion as W } from "motion/react";
|
|
15
|
+
import { mergeBrandTheme as Sr, DefaultBrandTheme as Cr } from "@fanfare-io/fanfare-sdk-core/theme";
|
|
16
|
+
import Dr from "canvas-confetti";
|
|
17
17
|
import { atom as qe } from "nanostores";
|
|
18
|
-
import { bucketFromEtaSeconds as
|
|
19
|
-
import { createPortal as
|
|
20
|
-
const ya =
|
|
18
|
+
import { bucketFromEtaSeconds as Vr, bucketI18nKey as Er } from "@fanfare-io/fanfare-sdk-core/queues";
|
|
19
|
+
import { createPortal as Mr } from "react-dom";
|
|
20
|
+
const ya = jt(null), ka = mr, Tr = ba(ka, "en"), Rr = {
|
|
21
21
|
locale: "en",
|
|
22
22
|
messages: ka,
|
|
23
23
|
isRoot: !0,
|
|
24
|
-
t:
|
|
24
|
+
t: Tr,
|
|
25
25
|
dir: "ltr",
|
|
26
26
|
experienceTranslations: null,
|
|
27
27
|
setExperienceTranslations: () => {
|
|
28
28
|
}
|
|
29
|
-
}, _a =
|
|
29
|
+
}, _a = jt(Rr);
|
|
30
30
|
function Ft() {
|
|
31
|
-
return
|
|
31
|
+
return zt(_a);
|
|
32
32
|
}
|
|
33
33
|
function K() {
|
|
34
34
|
const { t: e, locale: a, dir: r } = Ft();
|
|
35
35
|
return { t: e, locale: a, dir: r };
|
|
36
36
|
}
|
|
37
|
-
function
|
|
37
|
+
function Lr(e, a, r, n) {
|
|
38
38
|
const o = Ft();
|
|
39
39
|
return X(() => {
|
|
40
|
-
const i = e ?? o.locale, f = e && e !== o.locale ?
|
|
40
|
+
const i = e ?? o.locale, f = e && e !== o.locale ? pr(e) : o.messages, l = aa(
|
|
41
41
|
f,
|
|
42
42
|
r ?? o.experienceTranslations ?? void 0
|
|
43
|
-
), g = aa(
|
|
43
|
+
), g = aa(l, a), d = ba(g, i), b = gr(i) ? "rtl" : "ltr";
|
|
44
44
|
return {
|
|
45
45
|
locale: i,
|
|
46
46
|
messages: g,
|
|
47
47
|
isRoot: !1,
|
|
48
48
|
t: d,
|
|
49
|
-
dir:
|
|
49
|
+
dir: b,
|
|
50
50
|
experienceTranslations: r ?? o.experienceTranslations,
|
|
51
51
|
setExperienceTranslations: n ?? o.setExperienceTranslations
|
|
52
52
|
};
|
|
53
53
|
}, [o, e, a, r, n]);
|
|
54
54
|
}
|
|
55
55
|
function Na({ locale: e, translations: a, children: r }) {
|
|
56
|
-
const [n, o] = ve(null), i =
|
|
56
|
+
const [n, o] = ve(null), i = Lr(e, a, n, o);
|
|
57
57
|
return /* @__PURE__ */ t(_a.Provider, { value: i, children: r });
|
|
58
58
|
}
|
|
59
59
|
let na = Promise.resolve();
|
|
@@ -66,7 +66,7 @@ function oa(e) {
|
|
|
66
66
|
}
|
|
67
67
|
), a;
|
|
68
68
|
}
|
|
69
|
-
function
|
|
69
|
+
function qo({
|
|
70
70
|
children: e,
|
|
71
71
|
autoRestore: a = !0,
|
|
72
72
|
autoResume: r = !0,
|
|
@@ -74,32 +74,32 @@ function $o({
|
|
|
74
74
|
locale: o,
|
|
75
75
|
translations: i,
|
|
76
76
|
organizationId: f,
|
|
77
|
-
publishableKey:
|
|
77
|
+
publishableKey: l,
|
|
78
78
|
environment: g,
|
|
79
79
|
apiUrl: d,
|
|
80
|
-
credentials:
|
|
80
|
+
credentials: b,
|
|
81
81
|
debug: m,
|
|
82
82
|
auth: v,
|
|
83
|
-
logging:
|
|
84
|
-
sync:
|
|
83
|
+
logging: h,
|
|
84
|
+
sync: x,
|
|
85
85
|
features: C,
|
|
86
|
-
beacon:
|
|
86
|
+
beacon: c
|
|
87
87
|
}) {
|
|
88
|
-
const [
|
|
88
|
+
const [w, p] = ve(null), [D, V] = ve(!0), T = bt(null), y = X(
|
|
89
89
|
() => ({
|
|
90
90
|
organizationId: f,
|
|
91
|
-
publishableKey:
|
|
91
|
+
publishableKey: l,
|
|
92
92
|
environment: g,
|
|
93
93
|
apiUrl: d,
|
|
94
|
-
credentials:
|
|
94
|
+
credentials: b,
|
|
95
95
|
debug: m,
|
|
96
96
|
auth: v,
|
|
97
|
-
logging:
|
|
98
|
-
sync:
|
|
97
|
+
logging: h,
|
|
98
|
+
sync: x,
|
|
99
99
|
features: C,
|
|
100
|
-
beacon:
|
|
100
|
+
beacon: c
|
|
101
101
|
}),
|
|
102
|
-
[f,
|
|
102
|
+
[f, l, g, d, b, m, v, h, x, C, c]
|
|
103
103
|
);
|
|
104
104
|
return $e(() => {
|
|
105
105
|
let N = !0;
|
|
@@ -107,7 +107,7 @@ function $o({
|
|
|
107
107
|
async function S() {
|
|
108
108
|
if (N)
|
|
109
109
|
try {
|
|
110
|
-
const M = await
|
|
110
|
+
const M = await cr({ ...y, autoResume: a && r });
|
|
111
111
|
if (!N) {
|
|
112
112
|
await M.destroy();
|
|
113
113
|
return;
|
|
@@ -122,34 +122,34 @@ function $o({
|
|
|
122
122
|
const M = T.current;
|
|
123
123
|
T.current = null, M && oa(() => M.destroy());
|
|
124
124
|
};
|
|
125
|
-
}, [
|
|
125
|
+
}, [y, a, r]), D ? /* @__PURE__ */ t(Me, { children: n }) : w ? /* @__PURE__ */ t(ya.Provider, { value: w, children: /* @__PURE__ */ t(Na, { locale: o, translations: i, children: e }) }) : (console.error("Fanfare SDK failed to initialize"), null);
|
|
126
126
|
}
|
|
127
127
|
function Nt() {
|
|
128
|
-
const e =
|
|
128
|
+
const e = zt(ya);
|
|
129
129
|
if (!e)
|
|
130
130
|
throw new Error(
|
|
131
131
|
"useFanfare must be used within a FanfareProvider. Make sure your component is wrapped with <FanfareProvider>"
|
|
132
132
|
);
|
|
133
133
|
return e;
|
|
134
134
|
}
|
|
135
|
-
function
|
|
135
|
+
function Uo() {
|
|
136
136
|
const e = Nt(), [a, r] = ve(e.auth.check());
|
|
137
137
|
$e(() => {
|
|
138
|
-
const
|
|
138
|
+
const l = e.on("auth:authenticated", () => {
|
|
139
139
|
r(e.auth.check());
|
|
140
140
|
}), g = e.on("auth:logout", () => {
|
|
141
141
|
r(e.auth.check());
|
|
142
142
|
});
|
|
143
143
|
return () => {
|
|
144
|
-
|
|
144
|
+
l(), g();
|
|
145
145
|
};
|
|
146
146
|
}, [e]);
|
|
147
147
|
const n = B(async () => {
|
|
148
|
-
const
|
|
149
|
-
return r(e.auth.check()),
|
|
150
|
-
}, [e]), o = B((
|
|
151
|
-
async (
|
|
152
|
-
const g = await e.auth.verifyOtp(
|
|
148
|
+
const l = await e.auth.guest();
|
|
149
|
+
return r(e.auth.check()), l;
|
|
150
|
+
}, [e]), o = B((l) => e.auth.requestOtp(l), [e]), i = B(
|
|
151
|
+
async (l) => {
|
|
152
|
+
const g = await e.auth.verifyOtp(l);
|
|
153
153
|
return r(e.auth.check()), g;
|
|
154
154
|
},
|
|
155
155
|
[e]
|
|
@@ -165,18 +165,18 @@ function qo() {
|
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
167
|
function Sa(e, a) {
|
|
168
|
-
const r = Nt(), { locale: n, setExperienceTranslations: o } = Ft(), i = bt(null), f = bt(a), [
|
|
168
|
+
const r = Nt(), { locale: n, setExperienceTranslations: o } = Ft(), i = bt(null), f = bt(a), [l, g] = ve(null), [d, b] = ve(null), [m, v] = ve(null), [h, x] = ve(null), [C, c] = ve(null);
|
|
169
169
|
$e(() => {
|
|
170
170
|
f.current = a;
|
|
171
171
|
}, [a]), $e(() => {
|
|
172
172
|
if (!e) {
|
|
173
|
-
i.current = null, g(null),
|
|
173
|
+
i.current = null, g(null), b(null), v(null), x(null), c(null);
|
|
174
174
|
return;
|
|
175
175
|
}
|
|
176
176
|
const p = r.journeys.get(e);
|
|
177
|
-
i.current = p, g(p),
|
|
177
|
+
i.current = p, g(p), b(p.snapshot$.get()), v(p.view$.get());
|
|
178
178
|
const D = p.snapshot$.listen((T) => {
|
|
179
|
-
|
|
179
|
+
b(T);
|
|
180
180
|
}), V = p.view$.listen((T) => {
|
|
181
181
|
v(T);
|
|
182
182
|
});
|
|
@@ -191,138 +191,138 @@ function Sa(e, a) {
|
|
|
191
191
|
let p = !1;
|
|
192
192
|
const D = d?.experience?.experience?.i18n;
|
|
193
193
|
if (D) {
|
|
194
|
-
const V =
|
|
194
|
+
const V = hr(D, n);
|
|
195
195
|
o(V ?? null);
|
|
196
196
|
} else p || o(null);
|
|
197
197
|
return () => {
|
|
198
198
|
p = !0, o(null);
|
|
199
199
|
};
|
|
200
200
|
}, [e, d?.experience?.experience?.i18n, n, o]);
|
|
201
|
-
const
|
|
201
|
+
const w = B(
|
|
202
202
|
async (p) => {
|
|
203
203
|
if (!e)
|
|
204
204
|
throw new Error("experienceId is required to start an experience journey");
|
|
205
205
|
const D = i.current ?? r.journeys.get(e);
|
|
206
|
-
i.current = D, g(D),
|
|
206
|
+
i.current = D, g(D), x(null), c(null);
|
|
207
207
|
const V = f.current, T = {
|
|
208
208
|
accessCode: p?.accessCode ?? V?.accessCode,
|
|
209
209
|
autoEnterWaitlist: p?.autoEnterWaitlist ?? V?.autoEnterWaitlist
|
|
210
210
|
};
|
|
211
211
|
try {
|
|
212
|
-
const
|
|
213
|
-
if (
|
|
212
|
+
const y = D.view$.get();
|
|
213
|
+
if (y.journeyStage === "ready") {
|
|
214
214
|
const N = T.accessCode ? { accessCode: T.accessCode } : void 0;
|
|
215
|
-
await
|
|
215
|
+
await y.start(N);
|
|
216
216
|
}
|
|
217
217
|
if (T.autoEnterWaitlist) {
|
|
218
218
|
const N = D.view$.get();
|
|
219
|
-
N.journeyStage === "routed" && N.sequence.phase === "scheduled" && N.
|
|
219
|
+
N.journeyStage === "routed" && N.sequence.phase === "scheduled" && N.waitlist?.status === "not_waitlisted" && await N.waitlist.join();
|
|
220
220
|
}
|
|
221
221
|
return D.view$.get();
|
|
222
|
-
} catch (
|
|
223
|
-
throw y
|
|
222
|
+
} catch (y) {
|
|
223
|
+
throw x(y instanceof Error ? y.message : "Unknown error"), c(mt(y)), y;
|
|
224
224
|
}
|
|
225
225
|
},
|
|
226
226
|
[e, r]
|
|
227
227
|
);
|
|
228
228
|
return $e(() => {
|
|
229
|
-
a?.autoStart && e &&
|
|
230
|
-
}, [a?.autoStart, e,
|
|
231
|
-
journey:
|
|
229
|
+
a?.autoStart && e && w();
|
|
230
|
+
}, [a?.autoStart, e, w]), {
|
|
231
|
+
journey: l,
|
|
232
232
|
view: m,
|
|
233
233
|
snapshot: d,
|
|
234
|
-
error:
|
|
234
|
+
error: h,
|
|
235
235
|
fanfareError: C,
|
|
236
|
-
start:
|
|
236
|
+
start: w
|
|
237
237
|
};
|
|
238
238
|
}
|
|
239
|
-
function
|
|
239
|
+
function je(e) {
|
|
240
240
|
const a = B((n) => e.listen(n), [e]), r = B(() => e.get(), [e]);
|
|
241
|
-
return
|
|
241
|
+
return dr(a, r, r);
|
|
242
242
|
}
|
|
243
243
|
function Wo(e) {
|
|
244
|
-
return
|
|
244
|
+
return je(e.snapshot$);
|
|
245
245
|
}
|
|
246
|
-
function
|
|
246
|
+
function Ar({ experienceId: e, autoStart: a, children: r }) {
|
|
247
247
|
const n = Sa(e, {
|
|
248
248
|
autoStart: a
|
|
249
249
|
});
|
|
250
250
|
return /* @__PURE__ */ t(Me, { children: r(n) });
|
|
251
251
|
}
|
|
252
|
-
function
|
|
253
|
-
return /* @__PURE__ */ t(
|
|
252
|
+
function Ho({ experienceId: e, autoStart: a, renderHeader: r }) {
|
|
253
|
+
return /* @__PURE__ */ t(Ar, { experienceId: e, autoStart: a, children: ({ journey: n, view: o, snapshot: i, error: f, start: l }) => {
|
|
254
254
|
const g = [], d = [];
|
|
255
255
|
if (o?.journeyStage === "ready" && g.push("start"), o?.journeyStage === "gated" && g.push("reroute", "retry"), o?.journeyStage === "routed") {
|
|
256
256
|
g.push("reroute", "retry");
|
|
257
257
|
const v = o.sequence;
|
|
258
|
-
v.phase === "scheduled" &&
|
|
258
|
+
v.phase === "scheduled" && o.waitlist?.status === "not_waitlisted" && d.push("joinAttachment"), v.phase === "scheduled" && o.waitlist && o.waitlist.status !== "not_waitlisted" && d.push("leaveAttachment"), v.phase === "enterable" && d.push("enter"), v.phase === "participating" && "leave" in v && d.push("leave"), v.phase === "participating" && "complete" in v && d.push("complete"), "bid" in v && d.push("bid"), "book" in v && d.push("book"), "cancel" in v && d.push("cancel"), "reschedule" in v && d.push("reschedule"), "claim" in v && d.push("claim");
|
|
259
259
|
}
|
|
260
|
-
const
|
|
260
|
+
const b = i ? {
|
|
261
261
|
experienceId: i.experienceId,
|
|
262
262
|
accessCode: i.accessCode,
|
|
263
|
-
sequenceId:
|
|
264
|
-
distribution:
|
|
265
|
-
participation:
|
|
263
|
+
sequenceId: yr(i),
|
|
264
|
+
distribution: xr(i),
|
|
265
|
+
participation: br(i),
|
|
266
266
|
gates: xa(i)
|
|
267
267
|
} : null, m = (v) => {
|
|
268
268
|
if (!n) return;
|
|
269
|
-
const
|
|
270
|
-
if (
|
|
271
|
-
|
|
272
|
-
const
|
|
273
|
-
if (
|
|
274
|
-
const
|
|
275
|
-
|
|
269
|
+
const h = n.view$.get(), x = {};
|
|
270
|
+
if (h.journeyStage === "ready" && (x.start = () => h.start()), h.journeyStage === "gated" && (x.reroute = () => h.reroute(), x.retry = () => h.retry()), h.journeyStage === "routed") {
|
|
271
|
+
x.reroute = () => h.reroute(), x.retry = () => h.retry();
|
|
272
|
+
const c = h.sequence;
|
|
273
|
+
if (c.phase === "scheduled" && h.waitlist?.status === "not_waitlisted") {
|
|
274
|
+
const w = h.waitlist.join;
|
|
275
|
+
x.joinAttachment = () => w();
|
|
276
276
|
}
|
|
277
|
-
if (
|
|
278
|
-
const
|
|
279
|
-
|
|
277
|
+
if (c.phase === "scheduled" && h.waitlist && h.waitlist.status !== "not_waitlisted") {
|
|
278
|
+
const w = h.waitlist.leave;
|
|
279
|
+
x.leaveAttachment = () => w();
|
|
280
280
|
}
|
|
281
|
-
if (
|
|
282
|
-
const
|
|
283
|
-
|
|
281
|
+
if (c.phase === "enterable" && "enter" in c) {
|
|
282
|
+
const w = c.enter;
|
|
283
|
+
x.enter = () => w();
|
|
284
284
|
}
|
|
285
|
-
if (
|
|
286
|
-
const
|
|
287
|
-
|
|
285
|
+
if (c.phase === "participating" && "leave" in c) {
|
|
286
|
+
const w = c.leave;
|
|
287
|
+
x.leave = () => w();
|
|
288
288
|
}
|
|
289
|
-
if (
|
|
290
|
-
const
|
|
291
|
-
|
|
289
|
+
if (c.phase === "participating" && "complete" in c) {
|
|
290
|
+
const w = c.complete;
|
|
291
|
+
x.complete = () => w();
|
|
292
292
|
}
|
|
293
|
-
if ("bid" in
|
|
294
|
-
const
|
|
295
|
-
|
|
293
|
+
if ("bid" in c) {
|
|
294
|
+
const w = c.bid;
|
|
295
|
+
x.bid = async () => {
|
|
296
296
|
const p = globalThis.window?.prompt?.("Bid amount");
|
|
297
|
-
p && await
|
|
297
|
+
p && await w(p);
|
|
298
298
|
};
|
|
299
299
|
}
|
|
300
|
-
if ("book" in
|
|
301
|
-
const
|
|
302
|
-
|
|
300
|
+
if ("book" in c) {
|
|
301
|
+
const w = c.book;
|
|
302
|
+
x.book = async () => {
|
|
303
303
|
const p = globalThis.window?.prompt?.("Slot ID");
|
|
304
|
-
p && await
|
|
304
|
+
p && await w(p);
|
|
305
305
|
};
|
|
306
306
|
}
|
|
307
|
-
if ("cancel" in
|
|
308
|
-
const
|
|
309
|
-
|
|
307
|
+
if ("cancel" in c) {
|
|
308
|
+
const w = c.cancel;
|
|
309
|
+
x.cancel = () => w();
|
|
310
310
|
}
|
|
311
|
-
if ("reschedule" in
|
|
312
|
-
const
|
|
313
|
-
|
|
311
|
+
if ("reschedule" in c) {
|
|
312
|
+
const w = c.reschedule;
|
|
313
|
+
x.reschedule = async () => {
|
|
314
314
|
const p = globalThis.window?.prompt?.("New slot ID");
|
|
315
|
-
p && await
|
|
315
|
+
p && await w(p);
|
|
316
316
|
};
|
|
317
317
|
}
|
|
318
|
-
if ("claim" in
|
|
319
|
-
const
|
|
320
|
-
|
|
321
|
-
|
|
318
|
+
if ("claim" in c) {
|
|
319
|
+
const w = c.claim;
|
|
320
|
+
x.claim = async () => {
|
|
321
|
+
w();
|
|
322
322
|
};
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
const C =
|
|
325
|
+
const C = x[v];
|
|
326
326
|
C && C();
|
|
327
327
|
};
|
|
328
328
|
return /* @__PURE__ */ u("div", { children: [
|
|
@@ -341,7 +341,7 @@ function Uo({ experienceId: e, autoStart: a, renderHeader: r }) {
|
|
|
341
341
|
] }),
|
|
342
342
|
/* @__PURE__ */ u("div", { children: [
|
|
343
343
|
"Sequence phase: ",
|
|
344
|
-
|
|
344
|
+
kr(i)
|
|
345
345
|
] }),
|
|
346
346
|
/* @__PURE__ */ u("div", { children: [
|
|
347
347
|
"Journey actions: ",
|
|
@@ -358,7 +358,7 @@ function Uo({ experienceId: e, autoStart: a, renderHeader: r }) {
|
|
|
358
358
|
type: "button",
|
|
359
359
|
disabled: !n,
|
|
360
360
|
onClick: () => {
|
|
361
|
-
|
|
361
|
+
l();
|
|
362
362
|
},
|
|
363
363
|
children: "Start"
|
|
364
364
|
}
|
|
@@ -374,7 +374,7 @@ function Uo({ experienceId: e, autoStart: a, renderHeader: r }) {
|
|
|
374
374
|
d.includes("reschedule") && /* @__PURE__ */ t("button", { type: "button", onClick: () => m("reschedule"), children: "Reschedule" }),
|
|
375
375
|
d.includes("claim") && /* @__PURE__ */ t("button", { type: "button", onClick: () => m("claim"), children: "Claim" })
|
|
376
376
|
] }),
|
|
377
|
-
/* @__PURE__ */ t("pre", { children: JSON.stringify(
|
|
377
|
+
/* @__PURE__ */ t("pre", { children: JSON.stringify(b, null, 2) })
|
|
378
378
|
] })
|
|
379
379
|
] });
|
|
380
380
|
} });
|
|
@@ -404,16 +404,16 @@ function Dt(e) {
|
|
|
404
404
|
const r = a.replace(/\D/g, "").slice(0, 10);
|
|
405
405
|
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)}`;
|
|
406
406
|
}
|
|
407
|
-
function
|
|
407
|
+
function Ir(e) {
|
|
408
408
|
if (!e) return null;
|
|
409
409
|
const a = Pt(e), r = a.replace(/\D/g, "");
|
|
410
410
|
return a.startsWith("+") ? r.length < 10 || r.length > 15 ? null : `+${r}` : r.length === 10 ? `+1${r}` : null;
|
|
411
411
|
}
|
|
412
|
-
function
|
|
412
|
+
function jr(e) {
|
|
413
413
|
const a = e.replace(/\D/g, "");
|
|
414
414
|
return e.startsWith("+") ? a.length >= 10 && a.length <= 15 : a.length === 10;
|
|
415
415
|
}
|
|
416
|
-
const zr =
|
|
416
|
+
const zr = Nr({
|
|
417
417
|
extend: {
|
|
418
418
|
classGroups: {
|
|
419
419
|
"font-size": ["text-xxs"]
|
|
@@ -421,14 +421,14 @@ const zr = _r({
|
|
|
421
421
|
}
|
|
422
422
|
});
|
|
423
423
|
function E(...e) {
|
|
424
|
-
return zr(
|
|
424
|
+
return zr(_r(e));
|
|
425
425
|
}
|
|
426
426
|
function fa(e, a) {
|
|
427
427
|
if (typeof e == "function")
|
|
428
428
|
return e(a);
|
|
429
429
|
e != null && (e.current = a);
|
|
430
430
|
}
|
|
431
|
-
function
|
|
431
|
+
function Fr(...e) {
|
|
432
432
|
return (a) => {
|
|
433
433
|
let r = !1;
|
|
434
434
|
const n = e.map((o) => {
|
|
@@ -444,56 +444,56 @@ function jr(...e) {
|
|
|
444
444
|
};
|
|
445
445
|
};
|
|
446
446
|
}
|
|
447
|
-
var
|
|
448
|
-
function
|
|
447
|
+
var Pr = /* @__PURE__ */ Symbol.for("react.lazy"), xt = s[" use ".trim().toString()];
|
|
448
|
+
function Br(e) {
|
|
449
449
|
return typeof e == "object" && e !== null && "then" in e;
|
|
450
450
|
}
|
|
451
451
|
function Ca(e) {
|
|
452
|
-
return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof ===
|
|
452
|
+
return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof === Pr && "_payload" in e && Br(e._payload);
|
|
453
453
|
}
|
|
454
454
|
// @__NO_SIDE_EFFECTS__
|
|
455
|
-
function
|
|
456
|
-
const a = /* @__PURE__ */
|
|
455
|
+
function Or(e) {
|
|
456
|
+
const a = /* @__PURE__ */ qr(e), r = s.forwardRef((n, o) => {
|
|
457
457
|
let { children: i, ...f } = n;
|
|
458
458
|
Ca(i) && typeof xt == "function" && (i = xt(i._payload));
|
|
459
|
-
const
|
|
459
|
+
const l = s.Children.toArray(i), g = l.find(Wr);
|
|
460
460
|
if (g) {
|
|
461
|
-
const d = g.props.children,
|
|
462
|
-
return /* @__PURE__ */ t(a, { ...f, ref: o, children: s.isValidElement(d) ? s.cloneElement(d, void 0,
|
|
461
|
+
const d = g.props.children, b = l.map((m) => m === g ? s.Children.count(d) > 1 ? s.Children.only(null) : s.isValidElement(d) ? d.props.children : null : m);
|
|
462
|
+
return /* @__PURE__ */ t(a, { ...f, ref: o, children: s.isValidElement(d) ? s.cloneElement(d, void 0, b) : null });
|
|
463
463
|
}
|
|
464
464
|
return /* @__PURE__ */ t(a, { ...f, ref: o, children: i });
|
|
465
465
|
});
|
|
466
466
|
return r.displayName = `${e}.Slot`, r;
|
|
467
467
|
}
|
|
468
|
-
var
|
|
468
|
+
var $r = /* @__PURE__ */ Or("Slot");
|
|
469
469
|
// @__NO_SIDE_EFFECTS__
|
|
470
|
-
function
|
|
470
|
+
function qr(e) {
|
|
471
471
|
const a = s.forwardRef((r, n) => {
|
|
472
472
|
let { children: o, ...i } = r;
|
|
473
473
|
if (Ca(o) && typeof xt == "function" && (o = xt(o._payload)), s.isValidElement(o)) {
|
|
474
|
-
const f =
|
|
475
|
-
return o.type !== s.Fragment && (
|
|
474
|
+
const f = Kr(o), l = Hr(i, o.props);
|
|
475
|
+
return o.type !== s.Fragment && (l.ref = n ? Fr(n, f) : f), s.cloneElement(o, l);
|
|
476
476
|
}
|
|
477
477
|
return s.Children.count(o) > 1 ? s.Children.only(null) : null;
|
|
478
478
|
});
|
|
479
479
|
return a.displayName = `${e}.SlotClone`, a;
|
|
480
480
|
}
|
|
481
|
-
var
|
|
481
|
+
var Ur = /* @__PURE__ */ Symbol("radix.slottable");
|
|
482
482
|
function Wr(e) {
|
|
483
|
-
return s.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId ===
|
|
483
|
+
return s.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === Ur;
|
|
484
484
|
}
|
|
485
|
-
function
|
|
485
|
+
function Hr(e, a) {
|
|
486
486
|
const r = { ...a };
|
|
487
487
|
for (const n in a) {
|
|
488
488
|
const o = e[n], i = a[n];
|
|
489
|
-
/^on[A-Z]/.test(n) ? o && i ? r[n] = (...
|
|
490
|
-
const g = i(...
|
|
491
|
-
return o(...
|
|
489
|
+
/^on[A-Z]/.test(n) ? o && i ? r[n] = (...l) => {
|
|
490
|
+
const g = i(...l);
|
|
491
|
+
return o(...l), g;
|
|
492
492
|
} : o && (r[n] = o) : n === "style" ? r[n] = { ...o, ...i } : n === "className" && (r[n] = [o, i].filter(Boolean).join(" "));
|
|
493
493
|
}
|
|
494
494
|
return { ...e, ...r };
|
|
495
495
|
}
|
|
496
|
-
function
|
|
496
|
+
function Kr(e) {
|
|
497
497
|
let a = Object.getOwnPropertyDescriptor(e.props, "ref")?.get, r = a && "isReactWarning" in a && a.isReactWarning;
|
|
498
498
|
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);
|
|
499
499
|
}
|
|
@@ -502,15 +502,15 @@ const ot = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-
|
|
|
502
502
|
animate: { opacity: 1 },
|
|
503
503
|
exit: { opacity: 0 },
|
|
504
504
|
transition: { duration: 0.2 }
|
|
505
|
-
},
|
|
505
|
+
}, Zr = {
|
|
506
506
|
initial: { opacity: 0 },
|
|
507
507
|
animate: { opacity: 1 },
|
|
508
508
|
transition: { duration: 0.25, ease: "easeOut" }
|
|
509
|
-
},
|
|
509
|
+
}, Yr = {
|
|
510
510
|
initial: { opacity: 1 },
|
|
511
511
|
animate: { opacity: 1 },
|
|
512
512
|
transition: { duration: 0 }
|
|
513
|
-
}, we = () => ot() ?
|
|
513
|
+
}, we = () => ot() ? Yr : Zr, re = {
|
|
514
514
|
// Core colors
|
|
515
515
|
primary: "--ff-color-primary",
|
|
516
516
|
primaryForeground: "--ff-color-primary-foreground",
|
|
@@ -532,18 +532,18 @@ const ot = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-
|
|
|
532
532
|
// Typography
|
|
533
533
|
fontFamily: "--ff-font-sans",
|
|
534
534
|
fontHeading: "--ff-font-heading"
|
|
535
|
-
},
|
|
536
|
-
theme:
|
|
535
|
+
}, Gr = {
|
|
536
|
+
theme: Cr,
|
|
537
537
|
variant: "default",
|
|
538
538
|
isRoot: !0
|
|
539
|
-
}, Tt =
|
|
539
|
+
}, Tt = jt(Gr);
|
|
540
540
|
function ft() {
|
|
541
|
-
return
|
|
541
|
+
return zt(Tt);
|
|
542
542
|
}
|
|
543
|
-
function
|
|
543
|
+
function Jr(e, a) {
|
|
544
544
|
const r = ft();
|
|
545
545
|
return X(() => ({
|
|
546
|
-
theme: e ?
|
|
546
|
+
theme: e ? Sr({ ...r.theme, ...e }) : r.theme,
|
|
547
547
|
variant: a ?? r.variant,
|
|
548
548
|
isRoot: !1
|
|
549
549
|
}), [r, e, a]);
|
|
@@ -586,12 +586,12 @@ function Da(e) {
|
|
|
586
586
|
return e.fontFamily !== void 0 && (a[re.fontFamily] = e.fontFamily, e.fontHeading === void 0 && (a[re.fontHeading] = e.fontFamily)), e.fontHeading !== void 0 && (a[re.fontHeading] = e.fontHeading), a;
|
|
587
587
|
}
|
|
588
588
|
function Rt({ theme: e, variant: a, as: r = "div", className: n, children: o }) {
|
|
589
|
-
const i = ft(), f =
|
|
589
|
+
const i = ft(), f = Jr(e, a), l = X(() => Da(e ?? {}), [e]);
|
|
590
590
|
return e !== void 0 || a !== void 0 || i.isRoot ? /* @__PURE__ */ t(Tt.Provider, { value: f, children: /* @__PURE__ */ t(
|
|
591
591
|
r,
|
|
592
592
|
{
|
|
593
593
|
className: E("fanfare-themed", n),
|
|
594
|
-
style:
|
|
594
|
+
style: l,
|
|
595
595
|
"data-fanfare-themed": !0,
|
|
596
596
|
"data-fanfare-variant": f.variant,
|
|
597
597
|
children: o
|
|
@@ -601,7 +601,7 @@ function Rt({ theme: e, variant: a, as: r = "div", className: n, children: o })
|
|
|
601
601
|
function ge() {
|
|
602
602
|
return ft().variant;
|
|
603
603
|
}
|
|
604
|
-
const
|
|
604
|
+
const Qr = (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" }) }), Xr = kt(Qr), en = (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" }) }), tn = kt(en), an = ae("ff:animate-spin ff:text-current", {
|
|
605
605
|
variants: {
|
|
606
606
|
size: {
|
|
607
607
|
sm: "ff:size-4",
|
|
@@ -627,7 +627,7 @@ const Jr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.
|
|
|
627
627
|
ref: n,
|
|
628
628
|
viewBox: "0 0 24 24",
|
|
629
629
|
xmlns: "http://www.w3.org/2000/svg",
|
|
630
|
-
className: E(
|
|
630
|
+
className: E(an({ size: a, styleVariant: o }), e),
|
|
631
631
|
"data-slot": "spinner",
|
|
632
632
|
"data-size": a,
|
|
633
633
|
"aria-hidden": "true",
|
|
@@ -668,7 +668,7 @@ const Jr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.
|
|
|
668
668
|
);
|
|
669
669
|
});
|
|
670
670
|
Te.displayName = "Spinner";
|
|
671
|
-
const
|
|
671
|
+
const rn = ae(
|
|
672
672
|
[
|
|
673
673
|
"ff:relative ff:inline-flex ff:items-center ff:justify-center",
|
|
674
674
|
"ff:whitespace-nowrap ff:font-medium",
|
|
@@ -799,43 +799,43 @@ const an = te(
|
|
|
799
799
|
asChild: o = !1,
|
|
800
800
|
statusRef: i,
|
|
801
801
|
contentClassName: f,
|
|
802
|
-
disabled:
|
|
802
|
+
disabled: l,
|
|
803
803
|
children: g,
|
|
804
804
|
...d
|
|
805
|
-
},
|
|
806
|
-
const m = o ?
|
|
805
|
+
}, b) => {
|
|
806
|
+
const m = o ? $r : "button", v = ge(), [h, x] = s.useState(void 0);
|
|
807
807
|
s.useImperativeHandle(i, () => ({
|
|
808
|
-
success: () =>
|
|
809
|
-
failure: () =>
|
|
808
|
+
success: () => x("success"),
|
|
809
|
+
failure: () => x("failure")
|
|
810
810
|
})), s.useEffect(() => {
|
|
811
|
-
if (
|
|
812
|
-
const
|
|
813
|
-
return () => clearTimeout(
|
|
811
|
+
if (h === "success" || h === "failure") {
|
|
812
|
+
const c = setTimeout(() => x(void 0), 1500);
|
|
813
|
+
return () => clearTimeout(c);
|
|
814
814
|
}
|
|
815
|
-
}, [
|
|
816
|
-
const C =
|
|
815
|
+
}, [h]);
|
|
816
|
+
const C = l || n || !!h;
|
|
817
817
|
return /* @__PURE__ */ u(
|
|
818
818
|
m,
|
|
819
819
|
{
|
|
820
|
-
ref:
|
|
820
|
+
ref: b,
|
|
821
821
|
"data-slot": "button",
|
|
822
822
|
"data-variant": a,
|
|
823
823
|
"data-size": r,
|
|
824
824
|
"data-loading": n || void 0,
|
|
825
|
-
"data-status":
|
|
825
|
+
"data-status": h || void 0,
|
|
826
826
|
"aria-busy": n || void 0,
|
|
827
827
|
"aria-disabled": C || void 0,
|
|
828
|
-
className: E(
|
|
828
|
+
className: E(rn({ variant: a, size: r, styleVariant: v, className: e })),
|
|
829
829
|
disabled: C,
|
|
830
830
|
...d,
|
|
831
831
|
children: [
|
|
832
|
-
n && !
|
|
833
|
-
|
|
832
|
+
n && !h && /* @__PURE__ */ t(Te, { size: "sm", className: "ff:absolute", "data-slot": "button-spinner" }),
|
|
833
|
+
h && /* @__PURE__ */ t(
|
|
834
834
|
"span",
|
|
835
835
|
{
|
|
836
836
|
"data-slot": "button-status",
|
|
837
837
|
className: "ff:pointer-events-none ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center",
|
|
838
|
-
children: /* @__PURE__ */ t(_t, { children:
|
|
838
|
+
children: /* @__PURE__ */ t(_t, { children: h === "success" ? /* @__PURE__ */ t(W.span, { ...ia, className: "ff:flex", children: /* @__PURE__ */ t(Xr, { className: "ff:size-5" }) }, "success") : /* @__PURE__ */ t(W.span, { ...ia, className: "ff:flex", children: /* @__PURE__ */ t(tn, { className: "ff:size-5" }) }, "failure") })
|
|
839
839
|
}
|
|
840
840
|
),
|
|
841
841
|
/* @__PURE__ */ t(
|
|
@@ -844,7 +844,7 @@ const an = te(
|
|
|
844
844
|
"data-slot": "button-content",
|
|
845
845
|
className: E(
|
|
846
846
|
"ff:gap-inherit ff:flex ff:items-center",
|
|
847
|
-
(n ||
|
|
847
|
+
(n || h) && "ff:opacity-0",
|
|
848
848
|
f
|
|
849
849
|
),
|
|
850
850
|
children: g
|
|
@@ -856,7 +856,7 @@ const an = te(
|
|
|
856
856
|
}
|
|
857
857
|
);
|
|
858
858
|
j.displayName = "Button";
|
|
859
|
-
const sa = ["default", "rounded"],
|
|
859
|
+
const sa = ["default", "rounded"], nn = ae(
|
|
860
860
|
[
|
|
861
861
|
"ff:flex ff:w-full ff:rounded-md ff:px-3 ff:py-2",
|
|
862
862
|
"ff:text-foreground ff:text-sm",
|
|
@@ -906,7 +906,7 @@ const sa = ["default", "rounded"], rn = te(
|
|
|
906
906
|
styleVariant: "default"
|
|
907
907
|
}
|
|
908
908
|
}
|
|
909
|
-
), la =
|
|
909
|
+
), la = ae([], {
|
|
910
910
|
variants: {
|
|
911
911
|
styleVariant: {
|
|
912
912
|
default: "",
|
|
@@ -919,19 +919,19 @@ const sa = ["default", "rounded"], rn = te(
|
|
|
919
919
|
styleVariant: "default"
|
|
920
920
|
}
|
|
921
921
|
}), yt = s.forwardRef(
|
|
922
|
-
({ className: e, type: a = "text", label: r, error: n, hasError: o, inlineLabel: i, inlineError: f, ...
|
|
923
|
-
const { variant: d } = ft(),
|
|
924
|
-
|
|
925
|
-
|
|
922
|
+
({ className: e, type: a = "text", label: r, error: n, hasError: o, inlineLabel: i, inlineError: f, ...l }, g) => {
|
|
923
|
+
const { variant: d } = ft(), b = ge(), m = l.id || l.name, v = i ?? sa.includes(d), h = f ?? sa.includes(d), x = o || !!n, C = !!n && !o, c = v && r, w = !v && r, p = h && C, D = !h && C, V = E(
|
|
924
|
+
nn({ styleVariant: b }),
|
|
925
|
+
x && "ff:border-danger ff:focus:border-danger ff:focus:ring-danger",
|
|
926
926
|
// Extra padding for floating label
|
|
927
|
-
|
|
927
|
+
c && "ff:pt-5 ff:pb-1",
|
|
928
928
|
e
|
|
929
929
|
);
|
|
930
|
-
return
|
|
930
|
+
return c ? /* @__PURE__ */ u(
|
|
931
931
|
"div",
|
|
932
932
|
{
|
|
933
933
|
"data-slot": "input-wrapper",
|
|
934
|
-
"data-error":
|
|
934
|
+
"data-error": x || void 0,
|
|
935
935
|
"data-inline-label": "true",
|
|
936
936
|
className: "ff:group ff:relative",
|
|
937
937
|
children: [
|
|
@@ -942,16 +942,16 @@ const sa = ["default", "rounded"], rn = te(
|
|
|
942
942
|
type: a,
|
|
943
943
|
id: m,
|
|
944
944
|
"data-slot": "input-field",
|
|
945
|
-
"aria-invalid":
|
|
945
|
+
"aria-invalid": x,
|
|
946
946
|
"aria-describedby": C ? `${m}-error` : void 0,
|
|
947
|
-
placeholder:
|
|
947
|
+
placeholder: l.placeholder || " ",
|
|
948
948
|
className: E(
|
|
949
949
|
V,
|
|
950
950
|
// Placeholder shown state for label positioning
|
|
951
951
|
"ff:peer ff:placeholder:opacity-0 ff:placeholder:transition-opacity ff:placeholder:duration-200",
|
|
952
952
|
"ff:focus:placeholder:opacity-100"
|
|
953
953
|
),
|
|
954
|
-
...
|
|
954
|
+
...l
|
|
955
955
|
}
|
|
956
956
|
),
|
|
957
957
|
/* @__PURE__ */ t(
|
|
@@ -972,9 +972,9 @@ const sa = ["default", "rounded"], rn = te(
|
|
|
972
972
|
// Disabled state
|
|
973
973
|
"ff:peer-disabled:text-muted ff:peer-disabled:opacity-50",
|
|
974
974
|
// Error state
|
|
975
|
-
|
|
975
|
+
x && "ff:text-danger ff:peer-focus:text-danger",
|
|
976
976
|
// Style variant
|
|
977
|
-
la({ styleVariant:
|
|
977
|
+
la({ styleVariant: b })
|
|
978
978
|
),
|
|
979
979
|
children: r
|
|
980
980
|
}
|
|
@@ -1002,14 +1002,14 @@ const sa = ["default", "rounded"], rn = te(
|
|
|
1002
1002
|
]
|
|
1003
1003
|
}
|
|
1004
1004
|
) : /* @__PURE__ */ u("div", { "data-slot": "input-wrapper", "data-error": !!n || void 0, className: "ff:relative", children: [
|
|
1005
|
-
|
|
1005
|
+
w && /* @__PURE__ */ t(
|
|
1006
1006
|
"label",
|
|
1007
1007
|
{
|
|
1008
1008
|
htmlFor: m,
|
|
1009
1009
|
"data-slot": "input-label",
|
|
1010
1010
|
className: E(
|
|
1011
1011
|
"ff:text-foreground ff:mb-1.5 ff:block ff:text-sm ff:font-medium",
|
|
1012
|
-
la({ styleVariant:
|
|
1012
|
+
la({ styleVariant: b })
|
|
1013
1013
|
),
|
|
1014
1014
|
children: r
|
|
1015
1015
|
}
|
|
@@ -1022,10 +1022,10 @@ const sa = ["default", "rounded"], rn = te(
|
|
|
1022
1022
|
type: a,
|
|
1023
1023
|
id: m,
|
|
1024
1024
|
"data-slot": "input-field",
|
|
1025
|
-
"aria-invalid":
|
|
1025
|
+
"aria-invalid": x,
|
|
1026
1026
|
"aria-describedby": C ? `${m}-error` : void 0,
|
|
1027
1027
|
className: V,
|
|
1028
|
-
...
|
|
1028
|
+
...l
|
|
1029
1029
|
}
|
|
1030
1030
|
),
|
|
1031
1031
|
p && /* @__PURE__ */ t(
|
|
@@ -1044,7 +1044,7 @@ const sa = ["default", "rounded"], rn = te(
|
|
|
1044
1044
|
}
|
|
1045
1045
|
);
|
|
1046
1046
|
yt.displayName = "Input";
|
|
1047
|
-
const
|
|
1047
|
+
const on = ht.pipe(ht.string(), ht.email());
|
|
1048
1048
|
function Va(e) {
|
|
1049
1049
|
if (!e) return "email";
|
|
1050
1050
|
const r = Pt(e).replace(/\D/g, "");
|
|
@@ -1059,49 +1059,49 @@ const Ea = s.forwardRef(
|
|
|
1059
1059
|
onSubmit: o,
|
|
1060
1060
|
type: i = "auto",
|
|
1061
1061
|
error: f,
|
|
1062
|
-
hasError:
|
|
1062
|
+
hasError: l,
|
|
1063
1063
|
label: g,
|
|
1064
1064
|
disabled: d,
|
|
1065
|
-
...
|
|
1065
|
+
...b
|
|
1066
1066
|
}, m) => {
|
|
1067
|
-
const { t: v } = K(), [
|
|
1068
|
-
() =>
|
|
1067
|
+
const { t: v } = K(), [h, x] = s.useState(() => i === "auto" ? Va(a) : i), [C, c] = s.useState(!1), [w, p] = s.useState(null), [D, V] = s.useState(!1), [T, y] = s.useState(
|
|
1068
|
+
() => h === "phone" ? Dt(a) : a
|
|
1069
1069
|
), N = i === "auto";
|
|
1070
1070
|
s.useEffect(() => {
|
|
1071
|
-
N ||
|
|
1071
|
+
N || x(i);
|
|
1072
1072
|
}, [i, N]), s.useEffect(() => {
|
|
1073
|
-
|
|
1074
|
-
}, [a,
|
|
1073
|
+
y(h === "phone" ? Dt(a) : a);
|
|
1074
|
+
}, [a, h]);
|
|
1075
1075
|
const S = s.useCallback(
|
|
1076
1076
|
(L, J) => {
|
|
1077
1077
|
if (!L) {
|
|
1078
1078
|
p(null), V(!1), n?.(!1);
|
|
1079
1079
|
return;
|
|
1080
1080
|
}
|
|
1081
|
-
J === "email" ? ht.safeParse(
|
|
1081
|
+
J === "email" ? ht.safeParse(on, L).success ? (p(null), V(!0), n?.(!0)) : (p(v("auth.invalidEmail")), V(!1), n?.(!1)) : jr(L) ? (p(null), V(!0), n?.(!0)) : (p(v("auth.invalidPhone")), V(!1), n?.(!1));
|
|
1082
1082
|
},
|
|
1083
1083
|
[n]
|
|
1084
1084
|
);
|
|
1085
1085
|
s.useEffect(() => {
|
|
1086
|
-
S(a,
|
|
1087
|
-
}, [a,
|
|
1086
|
+
S(a, h);
|
|
1087
|
+
}, [a, h, S]);
|
|
1088
1088
|
const M = (L) => {
|
|
1089
1089
|
const J = L.target.value;
|
|
1090
|
-
if (
|
|
1090
|
+
if (h === "phone") {
|
|
1091
1091
|
const ne = Dt(J);
|
|
1092
|
-
|
|
1093
|
-
const se =
|
|
1094
|
-
r(se || J,
|
|
1092
|
+
y(ne);
|
|
1093
|
+
const se = Ir(J);
|
|
1094
|
+
r(se || J, h);
|
|
1095
1095
|
} else
|
|
1096
|
-
|
|
1096
|
+
y(J), r(J, h);
|
|
1097
1097
|
}, A = (L) => {
|
|
1098
|
-
|
|
1098
|
+
c(!0), b.onBlur?.(L);
|
|
1099
1099
|
}, I = (L) => {
|
|
1100
|
-
L.key === "Enter" && o && (L.preventDefault(), o()),
|
|
1100
|
+
L.key === "Enter" && o && (L.preventDefault(), o()), b.onKeyDown?.(L);
|
|
1101
1101
|
}, O = () => {
|
|
1102
|
-
const L =
|
|
1103
|
-
|
|
1104
|
-
}, $ = f || (C && !D ?
|
|
1102
|
+
const L = h === "email" ? "phone" : "email";
|
|
1103
|
+
x(L), y(""), p(null), c(!1), V(!1), r("", L), n?.(!1);
|
|
1104
|
+
}, $ = f || (C && !D ? w : null), fe = b.placeholder || v(h === "email" ? "auth.emailPlaceholder" : "auth.phonePlaceholder"), ce = N && /* @__PURE__ */ t(
|
|
1105
1105
|
j,
|
|
1106
1106
|
{
|
|
1107
1107
|
type: "button",
|
|
@@ -1110,7 +1110,7 @@ const Ea = s.forwardRef(
|
|
|
1110
1110
|
"data-slot": "auth-input-toggle",
|
|
1111
1111
|
onClick: O,
|
|
1112
1112
|
disabled: d,
|
|
1113
|
-
children: v(
|
|
1113
|
+
children: v(h === "email" ? "auth.usePhone" : "auth.useEmail")
|
|
1114
1114
|
}
|
|
1115
1115
|
);
|
|
1116
1116
|
return N ? /* @__PURE__ */ u(
|
|
@@ -1118,7 +1118,7 @@ const Ea = s.forwardRef(
|
|
|
1118
1118
|
{
|
|
1119
1119
|
className: E("fanfare-auth-input", e),
|
|
1120
1120
|
"data-slot": "auth-input",
|
|
1121
|
-
"data-mode":
|
|
1121
|
+
"data-mode": h,
|
|
1122
1122
|
"data-valid": D || void 0,
|
|
1123
1123
|
children: [
|
|
1124
1124
|
/* @__PURE__ */ u("div", { "data-slot": "auth-input-header", className: "ff:mb-1.5 ff:flex ff:items-center ff:justify-between", children: [
|
|
@@ -1129,9 +1129,9 @@ const Ea = s.forwardRef(
|
|
|
1129
1129
|
yt,
|
|
1130
1130
|
{
|
|
1131
1131
|
ref: m,
|
|
1132
|
-
type:
|
|
1133
|
-
inputMode:
|
|
1134
|
-
autoComplete:
|
|
1132
|
+
type: h === "email" ? "email" : "tel",
|
|
1133
|
+
inputMode: h === "email" ? "email" : "tel",
|
|
1134
|
+
autoComplete: h === "email" ? "email" : "tel",
|
|
1135
1135
|
value: T,
|
|
1136
1136
|
onChange: M,
|
|
1137
1137
|
onBlur: A,
|
|
@@ -1139,11 +1139,11 @@ const Ea = s.forwardRef(
|
|
|
1139
1139
|
placeholder: fe,
|
|
1140
1140
|
disabled: d,
|
|
1141
1141
|
error: $ || void 0,
|
|
1142
|
-
hasError:
|
|
1142
|
+
hasError: l,
|
|
1143
1143
|
inlineLabel: !1,
|
|
1144
1144
|
inlineError: !1,
|
|
1145
1145
|
"data-slot": "auth-input-field",
|
|
1146
|
-
...
|
|
1146
|
+
...b
|
|
1147
1147
|
}
|
|
1148
1148
|
)
|
|
1149
1149
|
]
|
|
@@ -1152,9 +1152,9 @@ const Ea = s.forwardRef(
|
|
|
1152
1152
|
yt,
|
|
1153
1153
|
{
|
|
1154
1154
|
ref: m,
|
|
1155
|
-
type:
|
|
1156
|
-
inputMode:
|
|
1157
|
-
autoComplete:
|
|
1155
|
+
type: h === "email" ? "email" : "tel",
|
|
1156
|
+
inputMode: h === "email" ? "email" : "tel",
|
|
1157
|
+
autoComplete: h === "email" ? "email" : "tel",
|
|
1158
1158
|
value: T,
|
|
1159
1159
|
onChange: M,
|
|
1160
1160
|
onBlur: A,
|
|
@@ -1163,18 +1163,18 @@ const Ea = s.forwardRef(
|
|
|
1163
1163
|
disabled: d,
|
|
1164
1164
|
label: g,
|
|
1165
1165
|
error: $ || void 0,
|
|
1166
|
-
hasError:
|
|
1166
|
+
hasError: l,
|
|
1167
1167
|
className: E("fanfare-auth-input", e),
|
|
1168
1168
|
"data-slot": "auth-input",
|
|
1169
|
-
"data-mode":
|
|
1169
|
+
"data-mode": h,
|
|
1170
1170
|
"data-valid": D || void 0,
|
|
1171
|
-
...
|
|
1171
|
+
...b
|
|
1172
1172
|
}
|
|
1173
1173
|
);
|
|
1174
1174
|
}
|
|
1175
1175
|
);
|
|
1176
1176
|
Ea.displayName = "AuthInput";
|
|
1177
|
-
const
|
|
1177
|
+
const fn = ae(
|
|
1178
1178
|
[
|
|
1179
1179
|
"ff:h-12 ff:w-full ff:min-w-0 ff:text-center ff:text-lg ff:font-semibold",
|
|
1180
1180
|
"ff:text-foreground",
|
|
@@ -1243,61 +1243,61 @@ const on = te(
|
|
|
1243
1243
|
}
|
|
1244
1244
|
}
|
|
1245
1245
|
), Ma = s.forwardRef(
|
|
1246
|
-
({ value: e = "", onChange: a, onComplete: r, length: n = 6, error: o, hasError: i, disabled: f, autoFocus:
|
|
1247
|
-
const m = ge(), v = s.useRef([]), [
|
|
1248
|
-
const
|
|
1249
|
-
return [...
|
|
1246
|
+
({ value: e = "", onChange: a, onComplete: r, length: n = 6, error: o, hasError: i, disabled: f, autoFocus: l, ariaDescribedBy: g, className: d }, b) => {
|
|
1247
|
+
const m = ge(), v = s.useRef([]), [h, x] = s.useState(() => {
|
|
1248
|
+
const y = e.split("").slice(0, n);
|
|
1249
|
+
return [...y, ...Array(n - y.length).fill("")];
|
|
1250
1250
|
});
|
|
1251
1251
|
s.useEffect(() => {
|
|
1252
|
-
const
|
|
1253
|
-
|
|
1252
|
+
const y = e.split("").slice(0, n);
|
|
1253
|
+
x([...y, ...Array(n - y.length).fill("")]);
|
|
1254
1254
|
}, [e, n]);
|
|
1255
|
-
const C = (
|
|
1256
|
-
|
|
1257
|
-
},
|
|
1255
|
+
const C = (y) => {
|
|
1256
|
+
y >= 0 && y < n && v.current[y]?.focus();
|
|
1257
|
+
}, c = (y, N) => {
|
|
1258
1258
|
const S = N.replace(/\D/g, "");
|
|
1259
1259
|
if (S.length > 1) {
|
|
1260
1260
|
const O = S.slice(0, n).split(""), $ = [...O, ...Array(n - O.length).fill("")];
|
|
1261
|
-
|
|
1261
|
+
x($);
|
|
1262
1262
|
const fe = $.join("");
|
|
1263
1263
|
a?.(fe), fe.length === n ? (r?.(fe), C(n - 1)) : C(O.length);
|
|
1264
1264
|
return;
|
|
1265
1265
|
}
|
|
1266
|
-
const M = S.slice(-1), A = [...
|
|
1267
|
-
A[
|
|
1266
|
+
const M = S.slice(-1), A = [...h];
|
|
1267
|
+
A[y] = M, x(A);
|
|
1268
1268
|
const I = A.join("");
|
|
1269
|
-
a?.(I), M &&
|
|
1270
|
-
},
|
|
1269
|
+
a?.(I), M && y < n - 1 && C(y + 1), I.length === n && !I.includes("") && r?.(I);
|
|
1270
|
+
}, w = (y, N) => {
|
|
1271
1271
|
switch (N.key) {
|
|
1272
1272
|
case "Backspace":
|
|
1273
|
-
N.preventDefault(),
|
|
1273
|
+
N.preventDefault(), h[y] ? c(y, "") : y > 0 && (C(y - 1), c(y - 1, ""));
|
|
1274
1274
|
break;
|
|
1275
1275
|
case "ArrowLeft":
|
|
1276
|
-
N.preventDefault(), C(
|
|
1276
|
+
N.preventDefault(), C(y - 1);
|
|
1277
1277
|
break;
|
|
1278
1278
|
case "ArrowRight":
|
|
1279
|
-
N.preventDefault(), C(
|
|
1279
|
+
N.preventDefault(), C(y + 1);
|
|
1280
1280
|
break;
|
|
1281
1281
|
case "Delete":
|
|
1282
|
-
N.preventDefault(),
|
|
1282
|
+
N.preventDefault(), c(y, "");
|
|
1283
1283
|
break;
|
|
1284
1284
|
}
|
|
1285
|
-
}, p = (
|
|
1286
|
-
|
|
1287
|
-
const N =
|
|
1285
|
+
}, p = (y) => {
|
|
1286
|
+
y.preventDefault();
|
|
1287
|
+
const N = y.clipboardData.getData("text").replace(/\D/g, "").slice(0, n);
|
|
1288
1288
|
if (N) {
|
|
1289
1289
|
const S = N.split(""), M = [...S, ...Array(n - S.length).fill("")];
|
|
1290
|
-
|
|
1290
|
+
x(M);
|
|
1291
1291
|
const A = M.join("");
|
|
1292
1292
|
a?.(A), A.length === n ? (r?.(A), C(n - 1)) : C(S.length);
|
|
1293
1293
|
}
|
|
1294
|
-
}, D = (
|
|
1295
|
-
|
|
1294
|
+
}, D = (y) => {
|
|
1295
|
+
y.target.select();
|
|
1296
1296
|
}, V = i || !!o, T = !!o && !i;
|
|
1297
1297
|
return /* @__PURE__ */ u(
|
|
1298
1298
|
"div",
|
|
1299
1299
|
{
|
|
1300
|
-
ref:
|
|
1300
|
+
ref: b,
|
|
1301
1301
|
className: E("fanfare-otp-input", "ff:space-y-1.5", d),
|
|
1302
1302
|
"data-slot": "otp-input",
|
|
1303
1303
|
"data-error": V || void 0,
|
|
@@ -1309,7 +1309,7 @@ const on = te(
|
|
|
1309
1309
|
className: "ff:grid ff:gap-2",
|
|
1310
1310
|
style: { gridTemplateColumns: `repeat(${n}, minmax(0, 1fr))` },
|
|
1311
1311
|
onPaste: p,
|
|
1312
|
-
children: Array.from({ length: n }).map((
|
|
1312
|
+
children: Array.from({ length: n }).map((y, N) => /* @__PURE__ */ t(
|
|
1313
1313
|
"input",
|
|
1314
1314
|
{
|
|
1315
1315
|
ref: (S) => {
|
|
@@ -1320,16 +1320,16 @@ const on = te(
|
|
|
1320
1320
|
autoComplete: N === 0 ? "one-time-code" : "off",
|
|
1321
1321
|
maxLength: 1,
|
|
1322
1322
|
"data-slot": "otp-input-digit",
|
|
1323
|
-
value:
|
|
1324
|
-
onChange: (S) =>
|
|
1325
|
-
onKeyDown: (S) =>
|
|
1323
|
+
value: h[N],
|
|
1324
|
+
onChange: (S) => c(N, S.target.value),
|
|
1325
|
+
onKeyDown: (S) => w(N, S),
|
|
1326
1326
|
onFocus: D,
|
|
1327
1327
|
disabled: f,
|
|
1328
|
-
autoFocus:
|
|
1328
|
+
autoFocus: l && N === 0,
|
|
1329
1329
|
"aria-label": `Digit ${N + 1} of ${n}`,
|
|
1330
1330
|
"aria-invalid": V,
|
|
1331
1331
|
"aria-describedby": V ? g : void 0,
|
|
1332
|
-
className:
|
|
1332
|
+
className: fn({ styleVariant: m, hasError: V })
|
|
1333
1333
|
},
|
|
1334
1334
|
N
|
|
1335
1335
|
))
|
|
@@ -1342,7 +1342,7 @@ const on = te(
|
|
|
1342
1342
|
}
|
|
1343
1343
|
);
|
|
1344
1344
|
Ma.displayName = "OTPInput";
|
|
1345
|
-
const
|
|
1345
|
+
const sn = ae(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"], {
|
|
1346
1346
|
variants: {
|
|
1347
1347
|
variant: {
|
|
1348
1348
|
default: "ff:border ff:border-border",
|
|
@@ -1380,15 +1380,15 @@ const fn = te(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"]
|
|
|
1380
1380
|
ref: n,
|
|
1381
1381
|
"data-slot": "card",
|
|
1382
1382
|
"data-variant": a,
|
|
1383
|
-
className: E(
|
|
1383
|
+
className: E(sn({ variant: a, styleVariant: o, className: e })),
|
|
1384
1384
|
...r
|
|
1385
1385
|
}
|
|
1386
1386
|
);
|
|
1387
1387
|
});
|
|
1388
1388
|
Ta.displayName = "Card";
|
|
1389
|
-
const
|
|
1390
|
-
|
|
1391
|
-
const
|
|
1389
|
+
const ln = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-header", className: E("fanfare-card-header ff:mb-4", e), ...a }));
|
|
1390
|
+
ln.displayName = "CardHeader";
|
|
1391
|
+
const cn = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
1392
1392
|
"h3",
|
|
1393
1393
|
{
|
|
1394
1394
|
ref: r,
|
|
@@ -1397,8 +1397,8 @@ const ln = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
|
1397
1397
|
...a
|
|
1398
1398
|
}
|
|
1399
1399
|
));
|
|
1400
|
-
|
|
1401
|
-
const
|
|
1400
|
+
cn.displayName = "CardTitle";
|
|
1401
|
+
const dn = s.forwardRef(
|
|
1402
1402
|
({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
1403
1403
|
"p",
|
|
1404
1404
|
{
|
|
@@ -1409,10 +1409,10 @@ const cn = s.forwardRef(
|
|
|
1409
1409
|
}
|
|
1410
1410
|
)
|
|
1411
1411
|
);
|
|
1412
|
-
|
|
1413
|
-
const
|
|
1414
|
-
|
|
1415
|
-
const
|
|
1412
|
+
dn.displayName = "CardDescription";
|
|
1413
|
+
const un = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-content", className: E(e), ...a }));
|
|
1414
|
+
un.displayName = "CardContent";
|
|
1415
|
+
const pn = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
1416
1416
|
"div",
|
|
1417
1417
|
{
|
|
1418
1418
|
ref: r,
|
|
@@ -1421,7 +1421,7 @@ const un = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
|
1421
1421
|
...a
|
|
1422
1422
|
}
|
|
1423
1423
|
));
|
|
1424
|
-
|
|
1424
|
+
pn.displayName = "CardFooter";
|
|
1425
1425
|
const Ra = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ u(
|
|
1426
1426
|
"svg",
|
|
1427
1427
|
{
|
|
@@ -1595,7 +1595,7 @@ function Lt(e) {
|
|
|
1595
1595
|
}
|
|
1596
1596
|
const Y = s.forwardRef(
|
|
1597
1597
|
({ className: e, children: a, ...r }, n) => {
|
|
1598
|
-
const o = s.Children.toArray(a), i = o.filter(Lt), f = o.filter((
|
|
1598
|
+
const o = s.Children.toArray(a), i = o.filter(Lt), f = o.filter((l) => !Lt(l));
|
|
1599
1599
|
return /* @__PURE__ */ u(
|
|
1600
1600
|
Ta,
|
|
1601
1601
|
{
|
|
@@ -1612,7 +1612,7 @@ const Y = s.forwardRef(
|
|
|
1612
1612
|
}
|
|
1613
1613
|
);
|
|
1614
1614
|
Y.displayName = "PanelLayout";
|
|
1615
|
-
const
|
|
1615
|
+
const gn = ["clean"], mn = ae(["ff:inline-flex ff:items-center", "ff:text-xs ff:font-medium"], {
|
|
1616
1616
|
variants: {
|
|
1617
1617
|
variant: {
|
|
1618
1618
|
default: "",
|
|
@@ -1734,7 +1734,7 @@ const pn = ["clean"], gn = te(["ff:inline-flex ff:items-center", "ff:text-xs ff:
|
|
|
1734
1734
|
outline: "ff:bg-foreground/40"
|
|
1735
1735
|
}, La = s.forwardRef(
|
|
1736
1736
|
({ className: e, variant: a = "default", solidBackground: r, children: n, ...o }, i) => {
|
|
1737
|
-
const { variant: f } = ft(),
|
|
1737
|
+
const { variant: f } = ft(), l = ge(), g = a ?? "default", d = r ?? !gn.includes(f), b = !d && ca[g];
|
|
1738
1738
|
return /* @__PURE__ */ u(
|
|
1739
1739
|
"span",
|
|
1740
1740
|
{
|
|
@@ -1742,10 +1742,10 @@ const pn = ["clean"], gn = te(["ff:inline-flex ff:items-center", "ff:text-xs ff:
|
|
|
1742
1742
|
"data-slot": "badge",
|
|
1743
1743
|
"data-variant": g,
|
|
1744
1744
|
"data-solid-background": d,
|
|
1745
|
-
className: E(
|
|
1745
|
+
className: E(mn({ variant: g, solid: d, styleVariant: l, className: e })),
|
|
1746
1746
|
...o,
|
|
1747
1747
|
children: [
|
|
1748
|
-
|
|
1748
|
+
b && /* @__PURE__ */ t(
|
|
1749
1749
|
"span",
|
|
1750
1750
|
{
|
|
1751
1751
|
className: E("ff:size-1.5 ff:shrink-0 ff:rounded-full", ca[g]),
|
|
@@ -1769,7 +1769,7 @@ const G = s.forwardRef(
|
|
|
1769
1769
|
] })
|
|
1770
1770
|
);
|
|
1771
1771
|
G.displayName = "PanelHeading";
|
|
1772
|
-
const
|
|
1772
|
+
const hn = ae(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-foreground"], {
|
|
1773
1773
|
variants: {
|
|
1774
1774
|
styleVariant: {
|
|
1775
1775
|
default: ["ff:rounded-md ff:border ff:border-border/50 ff:bg-muted/5"],
|
|
@@ -1783,10 +1783,10 @@ const mn = te(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-for
|
|
|
1783
1783
|
}
|
|
1784
1784
|
}), ie = s.forwardRef(({ className: e, children: a, ...r }, n) => {
|
|
1785
1785
|
const o = ge();
|
|
1786
|
-
return /* @__PURE__ */ t("div", { ref: n, "data-slot": "info-panel", className: E(
|
|
1786
|
+
return /* @__PURE__ */ t("div", { ref: n, "data-slot": "info-panel", className: E(hn({ styleVariant: o }), e), ...r, children: a });
|
|
1787
1787
|
});
|
|
1788
1788
|
ie.displayName = "InfoPanel";
|
|
1789
|
-
const
|
|
1789
|
+
const wn = ae(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
|
|
1790
1790
|
variants: {
|
|
1791
1791
|
tone: {
|
|
1792
1792
|
danger: "ff:bg-danger/10",
|
|
@@ -1796,7 +1796,7 @@ const hn = te(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
|
|
|
1796
1796
|
defaultVariants: {
|
|
1797
1797
|
tone: "danger"
|
|
1798
1798
|
}
|
|
1799
|
-
}),
|
|
1799
|
+
}), vn = ae(["ff:flex ff:size-5 ff:shrink-0 ff:items-center ff:justify-center ff:rounded-full"], {
|
|
1800
1800
|
variants: {
|
|
1801
1801
|
tone: {
|
|
1802
1802
|
danger: "ff:bg-danger ff:text-danger-foreground",
|
|
@@ -1806,7 +1806,7 @@ const hn = te(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
|
|
|
1806
1806
|
defaultVariants: {
|
|
1807
1807
|
tone: "danger"
|
|
1808
1808
|
}
|
|
1809
|
-
}),
|
|
1809
|
+
}), bn = ae(["ff:text-xs ff:font-semibold ff:leading-tight"], {
|
|
1810
1810
|
variants: {
|
|
1811
1811
|
tone: {
|
|
1812
1812
|
danger: "ff:text-danger",
|
|
@@ -1817,7 +1817,7 @@ const hn = te(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
|
|
|
1817
1817
|
tone: "danger"
|
|
1818
1818
|
}
|
|
1819
1819
|
});
|
|
1820
|
-
function
|
|
1820
|
+
function xn() {
|
|
1821
1821
|
return /* @__PURE__ */ u(
|
|
1822
1822
|
"svg",
|
|
1823
1823
|
{
|
|
@@ -1836,7 +1836,7 @@ function bn() {
|
|
|
1836
1836
|
}
|
|
1837
1837
|
);
|
|
1838
1838
|
}
|
|
1839
|
-
function
|
|
1839
|
+
function yn() {
|
|
1840
1840
|
return /* @__PURE__ */ t(
|
|
1841
1841
|
"svg",
|
|
1842
1842
|
{
|
|
@@ -1854,7 +1854,7 @@ function xn() {
|
|
|
1854
1854
|
}
|
|
1855
1855
|
const be = s.forwardRef(
|
|
1856
1856
|
({ tone: e = "danger", icon: a, title: r, description: n, className: o, ...i }, f) => {
|
|
1857
|
-
const
|
|
1857
|
+
const l = e === "success" ? /* @__PURE__ */ t(yn, {}) : /* @__PURE__ */ t(xn, {});
|
|
1858
1858
|
return /* @__PURE__ */ u(
|
|
1859
1859
|
"div",
|
|
1860
1860
|
{
|
|
@@ -1862,12 +1862,12 @@ const be = s.forwardRef(
|
|
|
1862
1862
|
"data-slot": "alert-panel",
|
|
1863
1863
|
"data-tone": e,
|
|
1864
1864
|
role: e === "success" ? "status" : "alert",
|
|
1865
|
-
className: E(
|
|
1865
|
+
className: E(wn({ tone: e }), o),
|
|
1866
1866
|
...i,
|
|
1867
1867
|
children: [
|
|
1868
|
-
/* @__PURE__ */ t("div", { className: E(
|
|
1868
|
+
/* @__PURE__ */ t("div", { className: E(vn({ tone: e })), "aria-hidden": "true", children: a ?? l }),
|
|
1869
1869
|
/* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-1", children: [
|
|
1870
|
-
r ? /* @__PURE__ */ t("p", { className: E(
|
|
1870
|
+
r ? /* @__PURE__ */ t("p", { className: E(bn({ tone: e })), children: r }) : null,
|
|
1871
1871
|
n ? /* @__PURE__ */ t("p", { className: "ff:text-xs ff:text-foreground/80", children: n }) : null
|
|
1872
1872
|
] })
|
|
1873
1873
|
]
|
|
@@ -1876,7 +1876,7 @@ const be = s.forwardRef(
|
|
|
1876
1876
|
}
|
|
1877
1877
|
);
|
|
1878
1878
|
be.displayName = "AlertPanel";
|
|
1879
|
-
const
|
|
1879
|
+
const kn = {
|
|
1880
1880
|
expired: "expired",
|
|
1881
1881
|
queue_denied: "not_selected",
|
|
1882
1882
|
draw_denied: "not_selected",
|
|
@@ -1893,9 +1893,9 @@ const yn = {
|
|
|
1893
1893
|
unknown: "ended"
|
|
1894
1894
|
};
|
|
1895
1895
|
function da(e) {
|
|
1896
|
-
return e ?
|
|
1896
|
+
return e ? kn[e] ?? "ended" : "ended";
|
|
1897
1897
|
}
|
|
1898
|
-
const
|
|
1898
|
+
const _n = ae(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"], {
|
|
1899
1899
|
variants: {
|
|
1900
1900
|
styleVariant: {
|
|
1901
1901
|
default: "",
|
|
@@ -1916,7 +1916,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
1916
1916
|
styleVariant: "default",
|
|
1917
1917
|
size: "default"
|
|
1918
1918
|
}
|
|
1919
|
-
}),
|
|
1919
|
+
}), Nn = ae(
|
|
1920
1920
|
["ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:font-heading ff:tabular-nums"],
|
|
1921
1921
|
{
|
|
1922
1922
|
variants: {
|
|
@@ -1946,7 +1946,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
1946
1946
|
tone: "calm"
|
|
1947
1947
|
}
|
|
1948
1948
|
}
|
|
1949
|
-
),
|
|
1949
|
+
), Sn = ae(["ff:flex ff:flex-col ff:items-center"], {
|
|
1950
1950
|
variants: {
|
|
1951
1951
|
styleVariant: {
|
|
1952
1952
|
default: "",
|
|
@@ -1988,7 +1988,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
1988
1988
|
styleVariant: "default",
|
|
1989
1989
|
tone: "calm"
|
|
1990
1990
|
}
|
|
1991
|
-
}),
|
|
1991
|
+
}), Cn = ae(
|
|
1992
1992
|
["ff:text-xxs ff:font-heading ff:font-medium ff:uppercase ff:tracking-widest ff:text-neutral-500 ff:leading-none"],
|
|
1993
1993
|
{
|
|
1994
1994
|
variants: {
|
|
@@ -2018,7 +2018,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
2018
2018
|
tone: "calm"
|
|
2019
2019
|
}
|
|
2020
2020
|
}
|
|
2021
|
-
),
|
|
2021
|
+
), Dn = ae(["ff:mx-2 ff:self-end ff:pb-2 ff:text-2xl ff:font-light ff:text-neutral-300"], {
|
|
2022
2022
|
variants: {
|
|
2023
2023
|
styleVariant: {
|
|
2024
2024
|
default: "",
|
|
@@ -2035,7 +2035,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
|
|
|
2035
2035
|
styleVariant: "default",
|
|
2036
2036
|
size: "default"
|
|
2037
2037
|
}
|
|
2038
|
-
}),
|
|
2038
|
+
}), Vn = ae(["ff:flex ff:items-center ff:justify-center ff:font-heading"], {
|
|
2039
2039
|
variants: {
|
|
2040
2040
|
styleVariant: {
|
|
2041
2041
|
default: "",
|
|
@@ -2063,9 +2063,9 @@ function ua(e) {
|
|
|
2063
2063
|
total: n
|
|
2064
2064
|
};
|
|
2065
2065
|
}
|
|
2066
|
-
function
|
|
2067
|
-
return /* @__PURE__ */ t("div", { "data-slot": "countdown-digit", className:
|
|
2068
|
-
|
|
2066
|
+
function En({ value: e, styleVariant: a, size: r, tone: n }) {
|
|
2067
|
+
return /* @__PURE__ */ t("div", { "data-slot": "countdown-digit", className: _n({ styleVariant: a, size: r }), children: /* @__PURE__ */ t(_t, { mode: "popLayout", children: /* @__PURE__ */ t(
|
|
2068
|
+
W.span,
|
|
2069
2069
|
{
|
|
2070
2070
|
initial: { y: "100%", filter: "blur(2px)" },
|
|
2071
2071
|
animate: { y: "0%", filter: "blur(0px)" },
|
|
@@ -2076,31 +2076,31 @@ function Vn({ value: e, styleVariant: a, size: r, tone: n }) {
|
|
|
2076
2076
|
damping: 30,
|
|
2077
2077
|
mass: 1
|
|
2078
2078
|
},
|
|
2079
|
-
className:
|
|
2079
|
+
className: Nn({ styleVariant: a, size: r, tone: n }),
|
|
2080
2080
|
children: e
|
|
2081
2081
|
},
|
|
2082
2082
|
e
|
|
2083
2083
|
) }) });
|
|
2084
2084
|
}
|
|
2085
|
-
function
|
|
2085
|
+
function Mn({ value: e, label: a, styleVariant: r, size: n, tone: o }) {
|
|
2086
2086
|
const f = e.toString().padStart(2, "0").split("").map(Number);
|
|
2087
|
-
return /* @__PURE__ */ u("div", { "data-slot": "countdown-unit", "data-tone": o, className:
|
|
2088
|
-
/* @__PURE__ */ t("div", { "data-slot": "countdown-unit-digits", className: "ff:flex", children: f.map((
|
|
2089
|
-
/* @__PURE__ */ t("span", { "data-slot": "countdown-unit-label", className:
|
|
2087
|
+
return /* @__PURE__ */ u("div", { "data-slot": "countdown-unit", "data-tone": o, className: Sn({ styleVariant: r, tone: o }), children: [
|
|
2088
|
+
/* @__PURE__ */ t("div", { "data-slot": "countdown-unit-digits", className: "ff:flex", children: f.map((l, g) => /* @__PURE__ */ t(En, { value: l, styleVariant: r, size: n, tone: o }, g)) }),
|
|
2089
|
+
/* @__PURE__ */ t("span", { "data-slot": "countdown-unit-label", className: Cn({ styleVariant: r, size: n, tone: o }), children: a })
|
|
2090
2090
|
] });
|
|
2091
2091
|
}
|
|
2092
|
-
function
|
|
2093
|
-
return e === "rounded" || e === "retro" ? null : /* @__PURE__ */ t("span", { "data-slot": "countdown-separator", className:
|
|
2092
|
+
function Tn({ styleVariant: e, size: a }) {
|
|
2093
|
+
return e === "rounded" || e === "retro" ? null : /* @__PURE__ */ t("span", { "data-slot": "countdown-separator", className: Dn({ styleVariant: e, size: a }), children: "/" });
|
|
2094
2094
|
}
|
|
2095
|
-
function
|
|
2095
|
+
function Rn(e, a) {
|
|
2096
2096
|
const [r, n] = s.useState(() => ua(e)), [o, i] = s.useState(!1), f = s.useRef(!1);
|
|
2097
2097
|
return s.useEffect(() => {
|
|
2098
2098
|
i(!0), f.current = !1;
|
|
2099
|
-
const
|
|
2099
|
+
const l = setInterval(() => {
|
|
2100
2100
|
const g = ua(e);
|
|
2101
|
-
n(g), g.total <= 0 && !f.current && (f.current = !0, a?.(), clearInterval(
|
|
2101
|
+
n(g), g.total <= 0 && !f.current && (f.current = !0, a?.(), clearInterval(l));
|
|
2102
2102
|
}, 1e3);
|
|
2103
|
-
return () => clearInterval(
|
|
2103
|
+
return () => clearInterval(l);
|
|
2104
2104
|
}, [e, a]), { timeRemaining: r, isClient: o, isPast: r.total <= 0 };
|
|
2105
2105
|
}
|
|
2106
2106
|
function pe({
|
|
@@ -2111,35 +2111,35 @@ function pe({
|
|
|
2111
2111
|
showDays: o = !0,
|
|
2112
2112
|
showHours: i = !0,
|
|
2113
2113
|
showMinutes: f = !0,
|
|
2114
|
-
showSeconds:
|
|
2114
|
+
showSeconds: l = !0,
|
|
2115
2115
|
layout: g = "swiss",
|
|
2116
2116
|
size: d = "default",
|
|
2117
|
-
tone:
|
|
2117
|
+
tone: b = "calm"
|
|
2118
2118
|
}) {
|
|
2119
|
-
const { t: m } = K(), { timeRemaining: v, isClient:
|
|
2120
|
-
if (!
|
|
2119
|
+
const { t: m } = K(), { timeRemaining: v, isClient: h, isPast: x } = Rn(e, a), C = ge();
|
|
2120
|
+
if (!h)
|
|
2121
2121
|
return null;
|
|
2122
|
-
if (
|
|
2122
|
+
if (x && r)
|
|
2123
2123
|
return /* @__PURE__ */ t("span", { className: E("ff:text-muted ff:font-heading", n), "data-slot": "countdown", "data-past": "", children: r });
|
|
2124
|
-
const
|
|
2124
|
+
const c = x ? "ff:opacity-50" : void 0, p = [
|
|
2125
2125
|
{
|
|
2126
2126
|
value: v.days,
|
|
2127
|
-
label: m("
|
|
2128
|
-
shortLabel: m("
|
|
2127
|
+
label: m("duration.days"),
|
|
2128
|
+
shortLabel: m("duration.daysShort"),
|
|
2129
2129
|
show: o && v.days > 0
|
|
2130
2130
|
},
|
|
2131
|
-
{ value: v.hours, label: m("
|
|
2131
|
+
{ value: v.hours, label: m("duration.hours"), shortLabel: m("duration.hoursShort"), show: i },
|
|
2132
2132
|
{
|
|
2133
2133
|
value: v.minutes,
|
|
2134
|
-
label: m("
|
|
2135
|
-
shortLabel: m("
|
|
2134
|
+
label: m("duration.minutes"),
|
|
2135
|
+
shortLabel: m("duration.minutesShort"),
|
|
2136
2136
|
show: f
|
|
2137
2137
|
},
|
|
2138
2138
|
{
|
|
2139
2139
|
value: v.seconds,
|
|
2140
|
-
label: m("
|
|
2141
|
-
shortLabel: m("
|
|
2142
|
-
show:
|
|
2140
|
+
label: m("duration.seconds"),
|
|
2141
|
+
shortLabel: m("duration.secondsShort"),
|
|
2142
|
+
show: l
|
|
2143
2143
|
}
|
|
2144
2144
|
].filter((V) => V.show), D = g === "swiss" ? p.slice(0, 3) : p;
|
|
2145
2145
|
if (g === "compact") {
|
|
@@ -2147,16 +2147,16 @@ function pe({
|
|
|
2147
2147
|
return /* @__PURE__ */ t(
|
|
2148
2148
|
"span",
|
|
2149
2149
|
{
|
|
2150
|
-
className: E("ff:tabular-nums ff:font-heading",
|
|
2150
|
+
className: E("ff:tabular-nums ff:font-heading", c, n),
|
|
2151
2151
|
"data-slot": "countdown",
|
|
2152
2152
|
"data-layout": "compact",
|
|
2153
|
-
"data-past":
|
|
2153
|
+
"data-past": x || void 0,
|
|
2154
2154
|
role: "timer",
|
|
2155
|
-
"aria-live":
|
|
2156
|
-
children: D.map((T,
|
|
2155
|
+
"aria-live": x ? "off" : "polite",
|
|
2156
|
+
children: D.map((T, y) => /* @__PURE__ */ u(s.Fragment, { children: [
|
|
2157
2157
|
V(T.value),
|
|
2158
2158
|
T.shortLabel,
|
|
2159
|
-
|
|
2159
|
+
y < D.length - 1 && " "
|
|
2160
2160
|
] }, T.label))
|
|
2161
2161
|
}
|
|
2162
2162
|
);
|
|
@@ -2164,17 +2164,17 @@ function pe({
|
|
|
2164
2164
|
return /* @__PURE__ */ t(
|
|
2165
2165
|
"div",
|
|
2166
2166
|
{
|
|
2167
|
-
className: E(
|
|
2167
|
+
className: E(Vn({ styleVariant: C, size: d }), c, n),
|
|
2168
2168
|
"data-slot": "countdown",
|
|
2169
2169
|
"data-layout": "swiss",
|
|
2170
2170
|
"data-size": d,
|
|
2171
|
-
"data-tone":
|
|
2172
|
-
"data-past":
|
|
2171
|
+
"data-tone": b,
|
|
2172
|
+
"data-past": x || void 0,
|
|
2173
2173
|
role: "timer",
|
|
2174
|
-
"aria-live":
|
|
2174
|
+
"aria-live": x ? "off" : "polite",
|
|
2175
2175
|
children: D.map((V, T) => /* @__PURE__ */ u(s.Fragment, { children: [
|
|
2176
|
-
/* @__PURE__ */ t(
|
|
2177
|
-
T < D.length - 1 && /* @__PURE__ */ t(
|
|
2176
|
+
/* @__PURE__ */ t(Mn, { value: V.value, label: V.label, styleVariant: C, size: d, tone: b }),
|
|
2177
|
+
T < D.length - 1 && /* @__PURE__ */ t(Tn, { styleVariant: C, size: d })
|
|
2178
2178
|
] }, V.label))
|
|
2179
2179
|
}
|
|
2180
2180
|
);
|
|
@@ -2182,7 +2182,7 @@ function pe({
|
|
|
2182
2182
|
function nt({ show: e, presenceKey: a, children: r, className: n }) {
|
|
2183
2183
|
const o = ot();
|
|
2184
2184
|
return /* @__PURE__ */ t(_t, { initial: !1, children: e ? /* @__PURE__ */ t(
|
|
2185
|
-
|
|
2185
|
+
W.div,
|
|
2186
2186
|
{
|
|
2187
2187
|
"data-slot": "fade-presence",
|
|
2188
2188
|
initial: o ? !1 : { opacity: 0, y: -4 },
|
|
@@ -2196,7 +2196,7 @@ function nt({ show: e, presenceKey: a, children: r, className: n }) {
|
|
|
2196
2196
|
) : null });
|
|
2197
2197
|
}
|
|
2198
2198
|
nt.displayName = "FadePresence";
|
|
2199
|
-
const
|
|
2199
|
+
const Ln = {
|
|
2200
2200
|
default: {
|
|
2201
2201
|
initial: { opacity: 0, scale: 0.98 },
|
|
2202
2202
|
animate: { opacity: 1, scale: 1 },
|
|
@@ -2228,7 +2228,7 @@ const Rn = {
|
|
|
2228
2228
|
transition: { duration: 0 }
|
|
2229
2229
|
};
|
|
2230
2230
|
function rt({ children: e, transitionKey: a, mode: r, layout: n = !0, className: o }) {
|
|
2231
|
-
const i = ge(), f = ot(),
|
|
2231
|
+
const i = ge(), f = ot(), l = f ? Vt : Ln[i], d = (!r || r === "none" ? r === "none" ? Vt : null : f ? Vt : {
|
|
2232
2232
|
fade: {
|
|
2233
2233
|
initial: { opacity: 0 },
|
|
2234
2234
|
animate: { opacity: 1 },
|
|
@@ -2247,9 +2247,9 @@ function rt({ children: e, transitionKey: a, mode: r, layout: n = !0, className:
|
|
|
2247
2247
|
exit: { opacity: 0, scale: 0.95 },
|
|
2248
2248
|
transition: { duration: 0.2, ease: "easeOut" }
|
|
2249
2249
|
}
|
|
2250
|
-
}[r]) ??
|
|
2250
|
+
}[r]) ?? l;
|
|
2251
2251
|
return /* @__PURE__ */ t(_t, { mode: "wait", initial: !1, children: /* @__PURE__ */ t(
|
|
2252
|
-
|
|
2252
|
+
W.div,
|
|
2253
2253
|
{
|
|
2254
2254
|
initial: d.initial,
|
|
2255
2255
|
animate: d.animate,
|
|
@@ -2264,8 +2264,8 @@ function rt({ children: e, transitionKey: a, mode: r, layout: n = !0, className:
|
|
|
2264
2264
|
) });
|
|
2265
2265
|
}
|
|
2266
2266
|
rt.displayName = "Transition";
|
|
2267
|
-
const Et = 3e4,
|
|
2268
|
-
function
|
|
2267
|
+
const Et = 3e4, An = 3e3;
|
|
2268
|
+
function In(e) {
|
|
2269
2269
|
const a = Math.ceil(e / 1e3), r = Math.floor(a / 60), n = a % 60;
|
|
2270
2270
|
return `${r.toString().padStart(2, "0")}:${n.toString().padStart(2, "0")}`;
|
|
2271
2271
|
}
|
|
@@ -2277,38 +2277,38 @@ function Aa({
|
|
|
2277
2277
|
variant: o = "default",
|
|
2278
2278
|
label: i,
|
|
2279
2279
|
title: f,
|
|
2280
|
-
description:
|
|
2280
|
+
description: l,
|
|
2281
2281
|
countdownTo: g,
|
|
2282
2282
|
submitLabel: d,
|
|
2283
|
-
verifyLabel:
|
|
2283
|
+
verifyLabel: b,
|
|
2284
2284
|
allowSkip: m = !1,
|
|
2285
2285
|
showBranding: v = !0,
|
|
2286
|
-
defaultStep:
|
|
2287
|
-
defaultCredential:
|
|
2286
|
+
defaultStep: h = "credential",
|
|
2287
|
+
defaultCredential: x,
|
|
2288
2288
|
defaultCredentialType: C,
|
|
2289
|
-
defaultError:
|
|
2290
|
-
className:
|
|
2289
|
+
defaultError: c,
|
|
2290
|
+
className: w
|
|
2291
2291
|
}) {
|
|
2292
|
-
const { t: p } = K(), D = s.useId(), V = i ?? p("auth.badgeLabel"), T = f ?? p("auth.title"),
|
|
2293
|
-
C ?? Va(
|
|
2294
|
-
), [ce, L] = s.useState(!1), [J, ne] = s.useState(""), [se, de] = s.useState(!1), [ee, P] = s.useState(
|
|
2295
|
-
|
|
2296
|
-
), [
|
|
2292
|
+
const { t: p } = K(), D = s.useId(), V = i ?? p("auth.badgeLabel"), T = f ?? p("auth.title"), y = l ?? p("auth.description"), N = d ?? p("auth.submit"), S = b ?? p("auth.verify"), [M, A] = s.useState(h), [I, O] = s.useState(x ?? ""), [$, fe] = s.useState(
|
|
2293
|
+
C ?? Va(x ?? "")
|
|
2294
|
+
), [ce, L] = s.useState(!1), [J, ne] = s.useState(""), [se, de] = s.useState(!1), [ee, P] = s.useState(c ?? null), [te, me] = s.useState(
|
|
2295
|
+
h === "verify" && (x ?? "").length > 0 ? Date.now() + Et : null
|
|
2296
|
+
), [_e, Re] = s.useState(() => Date.now()), [ue, q] = s.useState(!1), [Ne, xe] = s.useState(!1), st = p($ === "email" ? "auth.email" : "auth.phone");
|
|
2297
2297
|
s.useEffect(() => {
|
|
2298
2298
|
if (M !== "verify") return;
|
|
2299
|
-
const
|
|
2300
|
-
return () => clearInterval(
|
|
2299
|
+
const U = setInterval(() => Re(Date.now()), 1e3);
|
|
2300
|
+
return () => clearInterval(U);
|
|
2301
2301
|
}, [M]), s.useEffect(() => {
|
|
2302
2302
|
if (!ue) return;
|
|
2303
|
-
const
|
|
2304
|
-
return () => clearTimeout(
|
|
2303
|
+
const U = setTimeout(() => q(!1), An);
|
|
2304
|
+
return () => clearTimeout(U);
|
|
2305
2305
|
}, [ue]);
|
|
2306
|
-
const
|
|
2307
|
-
ee && (
|
|
2308
|
-
const F = ee ??
|
|
2309
|
-
O(
|
|
2310
|
-
}, Fe = async (
|
|
2311
|
-
if (
|
|
2306
|
+
const We = te ? Math.max(0, te - _e) : 0, lt = We > 0, ye = s.useRef(null);
|
|
2307
|
+
ee && (ye.current = ee);
|
|
2308
|
+
const F = ee ?? ye.current ?? "", ze = (U, Se) => {
|
|
2309
|
+
O(U), fe(Se), P(null);
|
|
2310
|
+
}, Fe = async (U) => {
|
|
2311
|
+
if (U?.preventDefault(), !(!ce || !I)) {
|
|
2312
2312
|
de(!0), P(null);
|
|
2313
2313
|
try {
|
|
2314
2314
|
await e?.(I, $), A("verify"), me(Date.now() + Et);
|
|
@@ -2318,12 +2318,12 @@ function Aa({
|
|
|
2318
2318
|
de(!1);
|
|
2319
2319
|
}
|
|
2320
2320
|
}
|
|
2321
|
-
}, Le = (
|
|
2322
|
-
ne(
|
|
2323
|
-
}, Ae = async (
|
|
2324
|
-
ne(
|
|
2325
|
-
}, He = async (
|
|
2326
|
-
|
|
2321
|
+
}, Le = (U) => {
|
|
2322
|
+
ne(U), P(null);
|
|
2323
|
+
}, Ae = async (U) => {
|
|
2324
|
+
ne(U), await He(void 0, U);
|
|
2325
|
+
}, He = async (U, Se) => {
|
|
2326
|
+
U?.preventDefault();
|
|
2327
2327
|
const Pe = Se || J;
|
|
2328
2328
|
if (!(!Pe || Pe.length < 6)) {
|
|
2329
2329
|
de(!0), P(null);
|
|
@@ -2338,19 +2338,19 @@ function Aa({
|
|
|
2338
2338
|
}, ct = () => {
|
|
2339
2339
|
A("credential"), ne(""), P(null), me(null), q(!1);
|
|
2340
2340
|
}, dt = async () => {
|
|
2341
|
-
if (!(!I ||
|
|
2342
|
-
|
|
2341
|
+
if (!(!I || Ne)) {
|
|
2342
|
+
xe(!0), P(null), ne("");
|
|
2343
2343
|
try {
|
|
2344
2344
|
await e?.(I, $), me(Date.now() + Et), Re(Date.now()), q(!0);
|
|
2345
|
-
} catch (
|
|
2346
|
-
P(
|
|
2345
|
+
} catch (U) {
|
|
2346
|
+
P(U instanceof Error ? U.message : p("auth.sendFailed"));
|
|
2347
2347
|
} finally {
|
|
2348
|
-
|
|
2348
|
+
xe(!1);
|
|
2349
2349
|
}
|
|
2350
2350
|
}
|
|
2351
2351
|
};
|
|
2352
2352
|
if (M === "success")
|
|
2353
|
-
return /* @__PURE__ */ u(Y, { className: E("fanfare-auth-form",
|
|
2353
|
+
return /* @__PURE__ */ u(Y, { className: E("fanfare-auth-form", w), "data-slot": "auth-form", "data-step": "success", children: [
|
|
2354
2354
|
/* @__PURE__ */ t(Z, { children: /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-center ff:gap-3 ff:py-4", children: [
|
|
2355
2355
|
/* @__PURE__ */ t(
|
|
2356
2356
|
"div",
|
|
@@ -2367,17 +2367,17 @@ function Aa({
|
|
|
2367
2367
|
] }) }),
|
|
2368
2368
|
v && /* @__PURE__ */ t(H, {})
|
|
2369
2369
|
] });
|
|
2370
|
-
const Ke = M === "credential" ? T : p("auth.
|
|
2371
|
-
return /* @__PURE__ */ u(Y, { className: E("fanfare-auth-form",
|
|
2370
|
+
const Ke = M === "credential" ? T : p("auth.verify.title");
|
|
2371
|
+
return /* @__PURE__ */ u(Y, { className: E("fanfare-auth-form", w), "data-slot": "auth-form", "data-step": M, children: [
|
|
2372
2372
|
/* @__PURE__ */ t(G, { variant: o, label: V }),
|
|
2373
2373
|
/* @__PURE__ */ u(Z, { children: [
|
|
2374
2374
|
g ? /* @__PURE__ */ u("div", { "data-slot": "auth-form-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
2375
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: p("
|
|
2375
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: p("duration.opensIn") }),
|
|
2376
2376
|
/* @__PURE__ */ t(pe, { targetDate: g, showDays: !1 })
|
|
2377
2377
|
] }) : null,
|
|
2378
2378
|
/* @__PURE__ */ t("div", { "data-slot": "auth-form-heading", children: /* @__PURE__ */ t(rt, { transitionKey: M, mode: "fade", children: M === "credential" ? /* @__PURE__ */ u(Me, { children: [
|
|
2379
2379
|
/* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: Ke }),
|
|
2380
|
-
/* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children:
|
|
2380
|
+
/* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: y })
|
|
2381
2381
|
] }) : /* @__PURE__ */ u(Me, { children: [
|
|
2382
2382
|
/* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: Ke }),
|
|
2383
2383
|
I ? /* @__PURE__ */ u("p", { className: "ff:text-muted-foreground ff:text-xxs", children: [
|
|
@@ -2386,21 +2386,21 @@ function Aa({
|
|
|
2386
2386
|
/* @__PURE__ */ t("strong", { className: "ff:text-foreground ff:font-semibold", children: I }),
|
|
2387
2387
|
" · ",
|
|
2388
2388
|
/* @__PURE__ */ t(j, { type: "button", variant: "link", size: "xs", onClick: ct, disabled: se, children: p("auth.change") })
|
|
2389
|
-
] }) : /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: p("auth.
|
|
2389
|
+
] }) : /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: p("auth.verify.description", { values: { type: st } }) })
|
|
2390
2390
|
] }) }) }),
|
|
2391
2391
|
/* @__PURE__ */ u(
|
|
2392
2392
|
"form",
|
|
2393
2393
|
{
|
|
2394
2394
|
className: "ff:flex ff:flex-1 ff:flex-col ff:gap-5",
|
|
2395
|
-
onSubmit: (
|
|
2396
|
-
|
|
2395
|
+
onSubmit: (U) => {
|
|
2396
|
+
U.preventDefault(), M === "credential" ? Fe(U) : He(U);
|
|
2397
2397
|
},
|
|
2398
2398
|
children: [
|
|
2399
2399
|
/* @__PURE__ */ t(rt, { transitionKey: M, children: M === "credential" ? /* @__PURE__ */ t(
|
|
2400
2400
|
Ea,
|
|
2401
2401
|
{
|
|
2402
2402
|
value: I,
|
|
2403
|
-
onValueChange:
|
|
2403
|
+
onValueChange: ze,
|
|
2404
2404
|
onValidChange: L,
|
|
2405
2405
|
onSubmit: () => {
|
|
2406
2406
|
Fe();
|
|
@@ -2414,8 +2414,8 @@ function Aa({
|
|
|
2414
2414
|
{
|
|
2415
2415
|
value: J,
|
|
2416
2416
|
onChange: Le,
|
|
2417
|
-
onComplete: (
|
|
2418
|
-
Ae(
|
|
2417
|
+
onComplete: (U) => {
|
|
2418
|
+
Ae(U);
|
|
2419
2419
|
},
|
|
2420
2420
|
hasError: !!ee,
|
|
2421
2421
|
ariaDescribedBy: ee ? D : void 0,
|
|
@@ -2425,7 +2425,7 @@ function Aa({
|
|
|
2425
2425
|
) }),
|
|
2426
2426
|
/* @__PURE__ */ t(nt, { show: M === "verify", presenceKey: "resend-area", children: /* @__PURE__ */ t(rt, { transitionKey: ue ? "success" : "cooldown", mode: "fade", layout: !1, children: ue ? /* @__PURE__ */ t(be, { tone: "success", title: p("auth.newCodeSent") }) : /* @__PURE__ */ u("div", { "data-slot": "auth-form-resend", className: "ff:flex ff:items-center ff:justify-between", children: [
|
|
2427
2427
|
/* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs", children: p("auth.didntGetIt") }),
|
|
2428
|
-
lt ? /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs ff:tabular-nums", children:
|
|
2428
|
+
lt ? /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs ff:tabular-nums", children: In(We) }) : /* @__PURE__ */ t(
|
|
2429
2429
|
j,
|
|
2430
2430
|
{
|
|
2431
2431
|
type: "button",
|
|
@@ -2434,7 +2434,7 @@ function Aa({
|
|
|
2434
2434
|
onClick: () => {
|
|
2435
2435
|
dt();
|
|
2436
2436
|
},
|
|
2437
|
-
disabled:
|
|
2437
|
+
disabled: Ne || !I,
|
|
2438
2438
|
children: p("auth.resendCode")
|
|
2439
2439
|
}
|
|
2440
2440
|
)
|
|
@@ -2446,11 +2446,11 @@ function Aa({
|
|
|
2446
2446
|
{
|
|
2447
2447
|
type: "submit",
|
|
2448
2448
|
className: "ff:w-full",
|
|
2449
|
-
disabled: se ||
|
|
2449
|
+
disabled: se || Ne || (M === "credential" ? !ce : J.length < 6),
|
|
2450
2450
|
children: se ? /* @__PURE__ */ t(Te, { size: "sm" }) : M === "credential" ? N : S
|
|
2451
2451
|
}
|
|
2452
2452
|
),
|
|
2453
|
-
m && M === "credential" && /* @__PURE__ */ t(j, { type: "button", variant: "outline", className: "ff:w-full", onClick: r, disabled: se, children: p("
|
|
2453
|
+
m && M === "credential" && /* @__PURE__ */ t(j, { type: "button", variant: "outline", className: "ff:w-full", onClick: r, disabled: se, children: p("action.skip") })
|
|
2454
2454
|
] })
|
|
2455
2455
|
]
|
|
2456
2456
|
}
|
|
@@ -2469,7 +2469,7 @@ const Ia = s.forwardRef(
|
|
|
2469
2469
|
error: o,
|
|
2470
2470
|
hasError: i,
|
|
2471
2471
|
placeholder: f = "Enter your access code",
|
|
2472
|
-
autoUppercase:
|
|
2472
|
+
autoUppercase: l = !1,
|
|
2473
2473
|
...g
|
|
2474
2474
|
}, d) => /* @__PURE__ */ t(
|
|
2475
2475
|
yt,
|
|
@@ -2480,8 +2480,8 @@ const Ia = s.forwardRef(
|
|
|
2480
2480
|
spellCheck: !1,
|
|
2481
2481
|
value: a,
|
|
2482
2482
|
onChange: (v) => {
|
|
2483
|
-
let
|
|
2484
|
-
|
|
2483
|
+
let h = v.target.value;
|
|
2484
|
+
l && (h = h.toUpperCase()), r(h);
|
|
2485
2485
|
},
|
|
2486
2486
|
onKeyDown: (v) => {
|
|
2487
2487
|
v.key === "Enter" && n && (v.preventDefault(), n()), g.onKeyDown?.(v);
|
|
@@ -2496,7 +2496,7 @@ const Ia = s.forwardRef(
|
|
|
2496
2496
|
)
|
|
2497
2497
|
);
|
|
2498
2498
|
Ia.displayName = "AccessCodeInput";
|
|
2499
|
-
function
|
|
2499
|
+
function ja({
|
|
2500
2500
|
onSubmit: e,
|
|
2501
2501
|
onSkip: a,
|
|
2502
2502
|
variant: r = "secondary",
|
|
@@ -2504,33 +2504,33 @@ function za({
|
|
|
2504
2504
|
title: o,
|
|
2505
2505
|
description: i,
|
|
2506
2506
|
countdownTo: f,
|
|
2507
|
-
submitLabel:
|
|
2507
|
+
submitLabel: l,
|
|
2508
2508
|
allowSkip: g = !1,
|
|
2509
2509
|
autoUppercase: d = !0,
|
|
2510
|
-
defaultError:
|
|
2510
|
+
defaultError: b,
|
|
2511
2511
|
className: m
|
|
2512
2512
|
}) {
|
|
2513
|
-
const { t: v } = K(),
|
|
2514
|
-
if (S?.preventDefault(), !!
|
|
2515
|
-
V(!0),
|
|
2513
|
+
const { t: v } = K(), h = n ?? v("accessCode.badgeLabel"), x = o ?? v("accessCode.title"), C = i ?? v("accessCode.description"), c = l ?? v("accessCode.submit"), [w, p] = s.useState(""), [D, V] = s.useState(!1), [T, y] = s.useState(b ?? null), N = async (S) => {
|
|
2514
|
+
if (S?.preventDefault(), !!w.trim()) {
|
|
2515
|
+
V(!0), y(null);
|
|
2516
2516
|
try {
|
|
2517
|
-
await e?.(
|
|
2517
|
+
await e?.(w.trim());
|
|
2518
2518
|
} catch (M) {
|
|
2519
|
-
|
|
2519
|
+
y(M instanceof Error ? M.message : v("accessCode.invalid"));
|
|
2520
2520
|
} finally {
|
|
2521
2521
|
V(!1);
|
|
2522
2522
|
}
|
|
2523
2523
|
}
|
|
2524
2524
|
};
|
|
2525
2525
|
return /* @__PURE__ */ u(Y, { className: E("fanfare-access-code-form", m), "data-slot": "access-code-form", children: [
|
|
2526
|
-
/* @__PURE__ */ t(G, { variant: r, label:
|
|
2526
|
+
/* @__PURE__ */ t(G, { variant: r, label: h }),
|
|
2527
2527
|
/* @__PURE__ */ u(Z, { children: [
|
|
2528
2528
|
f ? /* @__PURE__ */ u("div", { "data-slot": "access-code-form-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
2529
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: v("
|
|
2529
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: v("duration.opensIn") }),
|
|
2530
2530
|
/* @__PURE__ */ t(pe, { targetDate: f, showDays: !1 })
|
|
2531
2531
|
] }) : null,
|
|
2532
2532
|
/* @__PURE__ */ u("div", { "data-slot": "access-code-form-heading", children: [
|
|
2533
|
-
/* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children:
|
|
2533
|
+
/* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: x }),
|
|
2534
2534
|
/* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: C })
|
|
2535
2535
|
] }),
|
|
2536
2536
|
/* @__PURE__ */ u("form", { className: "ff:flex ff:flex-1 ff:flex-col ff:gap-5", onSubmit: (S) => {
|
|
@@ -2539,9 +2539,9 @@ function za({
|
|
|
2539
2539
|
/* @__PURE__ */ t(
|
|
2540
2540
|
Ia,
|
|
2541
2541
|
{
|
|
2542
|
-
value:
|
|
2542
|
+
value: w,
|
|
2543
2543
|
onValueChange: (S) => {
|
|
2544
|
-
p(S),
|
|
2544
|
+
p(S), y(null);
|
|
2545
2545
|
},
|
|
2546
2546
|
onSubmit: () => {
|
|
2547
2547
|
N();
|
|
@@ -2555,16 +2555,16 @@ function za({
|
|
|
2555
2555
|
),
|
|
2556
2556
|
T ? /* @__PURE__ */ t(be, { tone: "danger", title: T }) : null,
|
|
2557
2557
|
/* @__PURE__ */ u("div", { className: "ff:mt-auto ff:flex ff:flex-col ff:gap-2", children: [
|
|
2558
|
-
/* @__PURE__ */ t(j, { type: "submit", className: "ff:w-full", disabled: D || !
|
|
2559
|
-
g && /* @__PURE__ */ t(j, { type: "button", variant: "outline", className: "ff:w-full", onClick: a, disabled: D, children: v("
|
|
2558
|
+
/* @__PURE__ */ t(j, { type: "submit", className: "ff:w-full", disabled: D || !w.trim(), children: D ? /* @__PURE__ */ t(Te, { size: "sm" }) : c }),
|
|
2559
|
+
g && /* @__PURE__ */ t(j, { type: "button", variant: "outline", className: "ff:w-full", onClick: a, disabled: D, children: v("action.skip") })
|
|
2560
2560
|
] })
|
|
2561
2561
|
] })
|
|
2562
2562
|
] }),
|
|
2563
2563
|
/* @__PURE__ */ t(H, {})
|
|
2564
2564
|
] });
|
|
2565
2565
|
}
|
|
2566
|
-
|
|
2567
|
-
function
|
|
2566
|
+
ja.displayName = "AccessCodeForm";
|
|
2567
|
+
function jn(e) {
|
|
2568
2568
|
if (!e || typeof e != "object") return !1;
|
|
2569
2569
|
const a = e;
|
|
2570
2570
|
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";
|
|
@@ -2575,15 +2575,15 @@ function zn(e, a) {
|
|
|
2575
2575
|
const n = Date.parse(r);
|
|
2576
2576
|
return Number.isFinite(n) ? { blocked: a < n, blockedUntil: r } : { blocked: !1 };
|
|
2577
2577
|
}
|
|
2578
|
-
function
|
|
2578
|
+
function Fn(e, a) {
|
|
2579
2579
|
const r = new Date(e);
|
|
2580
2580
|
try {
|
|
2581
|
-
return r.toLocaleString(
|
|
2581
|
+
return r.toLocaleString(wr(a));
|
|
2582
2582
|
} catch {
|
|
2583
2583
|
return r.toLocaleString();
|
|
2584
2584
|
}
|
|
2585
2585
|
}
|
|
2586
|
-
function
|
|
2586
|
+
function za({
|
|
2587
2587
|
challenge: e,
|
|
2588
2588
|
botMitigation: a,
|
|
2589
2589
|
onVerifyToken: r,
|
|
@@ -2591,12 +2591,12 @@ function ja({
|
|
|
2591
2591
|
variant: o = "default",
|
|
2592
2592
|
label: i,
|
|
2593
2593
|
title: f,
|
|
2594
|
-
description:
|
|
2594
|
+
description: l,
|
|
2595
2595
|
countdownTo: g,
|
|
2596
2596
|
retryLabel: d,
|
|
2597
|
-
className:
|
|
2597
|
+
className: b
|
|
2598
2598
|
}) {
|
|
2599
|
-
const { t: m, locale: v } = K(), [
|
|
2599
|
+
const { t: m, locale: v } = K(), [h, x] = s.useState(0), [C, c] = s.useState(!1), [w, p] = s.useState(!1), [D, V] = s.useState(null), [T, y] = s.useState(!1), [N, S] = s.useState("reload"), [M, A] = s.useState(() => Date.now()), I = X(() => {
|
|
2600
2600
|
if (!e?.iframeUrl) return null;
|
|
2601
2601
|
try {
|
|
2602
2602
|
return new URL(e.iframeUrl).origin;
|
|
@@ -2607,17 +2607,17 @@ function ja({
|
|
|
2607
2607
|
if (!e?.iframeUrl) return null;
|
|
2608
2608
|
try {
|
|
2609
2609
|
const ee = new URL(e.iframeUrl);
|
|
2610
|
-
return ee.searchParams.set("_t", String(
|
|
2610
|
+
return ee.searchParams.set("_t", String(h)), ee.toString();
|
|
2611
2611
|
} catch {
|
|
2612
2612
|
return null;
|
|
2613
2613
|
}
|
|
2614
|
-
}, [e?.iframeUrl,
|
|
2614
|
+
}, [e?.iframeUrl, h]);
|
|
2615
2615
|
s.useEffect(() => {
|
|
2616
2616
|
const ee = a?.blockedUntil, P = Date.now();
|
|
2617
2617
|
if (A(P), !ee) return;
|
|
2618
|
-
const
|
|
2619
|
-
if (!Number.isFinite(
|
|
2620
|
-
const me = window.setTimeout(() => A(Date.now()), Math.min(
|
|
2618
|
+
const te = Date.parse(ee);
|
|
2619
|
+
if (!Number.isFinite(te) || te <= P) return;
|
|
2620
|
+
const me = window.setTimeout(() => A(Date.now()), Math.min(te - P + 1, 2147483647));
|
|
2621
2621
|
return () => {
|
|
2622
2622
|
window.clearTimeout(me);
|
|
2623
2623
|
};
|
|
@@ -2627,18 +2627,18 @@ function ja({
|
|
|
2627
2627
|
[a, M]
|
|
2628
2628
|
), ce = typeof a?.attemptsRemaining == "number" ? a.attemptsRemaining : void 0;
|
|
2629
2629
|
s.useEffect(() => {
|
|
2630
|
-
|
|
2630
|
+
x(0), c(!1), p(!1), V(null), y(!1), S("reload");
|
|
2631
2631
|
}, [e?.id]), s.useEffect(() => {
|
|
2632
2632
|
T && a?.message && V(a.message);
|
|
2633
2633
|
}, [T, a?.message]), s.useEffect(() => {
|
|
2634
2634
|
if (!e?.id || !I) return;
|
|
2635
2635
|
const ee = (P) => {
|
|
2636
|
-
if (P.origin !== I || !
|
|
2636
|
+
if (P.origin !== I || !jn(P.data) || P.data.challengeId !== e.id) return;
|
|
2637
2637
|
if (P.data.kind === "fanfare:challenge:turnstile") {
|
|
2638
|
-
const
|
|
2639
|
-
|
|
2638
|
+
const _e = P.data.token;
|
|
2639
|
+
y(!0), p(!0), V(null), (async () => {
|
|
2640
2640
|
try {
|
|
2641
|
-
await r(
|
|
2641
|
+
await r(_e);
|
|
2642
2642
|
} catch (Re) {
|
|
2643
2643
|
V(Re instanceof Error ? Re.message : m("challenge.verificationFailed"));
|
|
2644
2644
|
} finally {
|
|
@@ -2647,37 +2647,37 @@ function ja({
|
|
|
2647
2647
|
})();
|
|
2648
2648
|
return;
|
|
2649
2649
|
}
|
|
2650
|
-
|
|
2651
|
-
const
|
|
2652
|
-
if (
|
|
2650
|
+
y(!0);
|
|
2651
|
+
const te = typeof P.data.reason == "string" ? P.data.reason : void 0, me = typeof P.data.message == "string" ? P.data.message : void 0;
|
|
2652
|
+
if (te === "challenge_expired" || te === "challenge_not_found") {
|
|
2653
2653
|
S("reroute"), V(
|
|
2654
2654
|
me ?? (P.data.kind === "fanfare:challenge:turnstile_expired" ? m("challenge.expiredRefresh") : m("challenge.errorRefresh"))
|
|
2655
2655
|
);
|
|
2656
2656
|
return;
|
|
2657
2657
|
}
|
|
2658
2658
|
if (S("reload"), P.data.kind === "fanfare:challenge:turnstile_expired") {
|
|
2659
|
-
V(me ?? m("challenge.expiredRetry")),
|
|
2659
|
+
V(me ?? m("challenge.expiredRetry")), x((_e) => _e + 1), c(!1);
|
|
2660
2660
|
return;
|
|
2661
2661
|
}
|
|
2662
|
-
V(me ?? m("challenge.errorRetry")),
|
|
2662
|
+
V(me ?? m("challenge.errorRetry")), x((_e) => _e + 1), c(!1);
|
|
2663
2663
|
};
|
|
2664
2664
|
return window.addEventListener("message", ee), () => {
|
|
2665
2665
|
window.removeEventListener("message", ee);
|
|
2666
2666
|
};
|
|
2667
2667
|
}, [e?.id, I, r, m]);
|
|
2668
|
-
const L = f ?? m("challenge.title"), J =
|
|
2668
|
+
const L = f ?? m("challenge.title"), J = l ?? m("challenge.description"), ne = d ?? m("challenge.retry"), se = i ?? m("challenge.badgeLabel"), de = () => {
|
|
2669
2669
|
const ee = N;
|
|
2670
|
-
if (V(null),
|
|
2670
|
+
if (V(null), y(!1), n && (ee === "reroute" || !O || typeof ce == "number" && ce <= 0)) {
|
|
2671
2671
|
S("reload"), n();
|
|
2672
2672
|
return;
|
|
2673
2673
|
}
|
|
2674
|
-
S("reload"),
|
|
2674
|
+
S("reload"), x((P) => P + 1), c(!1);
|
|
2675
2675
|
};
|
|
2676
|
-
return /* @__PURE__ */ u(Y, { className: E("fanfare-challenge-gate",
|
|
2676
|
+
return /* @__PURE__ */ u(Y, { className: E("fanfare-challenge-gate", b), "data-slot": "challenge-gate", children: [
|
|
2677
2677
|
/* @__PURE__ */ t(G, { variant: o, label: se }),
|
|
2678
2678
|
/* @__PURE__ */ u(Z, { children: [
|
|
2679
2679
|
g ? /* @__PURE__ */ u("div", { "data-slot": "challenge-gate-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
2680
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: m("
|
|
2680
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: m("duration.opensIn") }),
|
|
2681
2681
|
/* @__PURE__ */ t(pe, { targetDate: g, showDays: !1 })
|
|
2682
2682
|
] }) : null,
|
|
2683
2683
|
/* @__PURE__ */ u("div", { "data-slot": "challenge-gate-heading", children: [
|
|
@@ -2689,11 +2689,11 @@ function ja({
|
|
|
2689
2689
|
{
|
|
2690
2690
|
tone: "danger",
|
|
2691
2691
|
title: a?.message ?? m("challenge.blockedDefault"),
|
|
2692
|
-
description: fe ? m("challenge.blockedUntil", { values: { date:
|
|
2692
|
+
description: fe ? m("challenge.blockedUntil", { values: { date: Fn(fe, v) } }) : void 0
|
|
2693
2693
|
}
|
|
2694
2694
|
) : O ? /* @__PURE__ */ u("div", { className: "ff:relative ff:w-full ff:rounded-md ff:border ff:border-border ff:bg-background ff:overflow-hidden", children: [
|
|
2695
2695
|
!C && /* @__PURE__ */ t("div", { className: "ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:bg-background/60", children: /* @__PURE__ */ t(Te, { size: "lg" }) }),
|
|
2696
|
-
|
|
2696
|
+
w && /* @__PURE__ */ t("div", { className: "ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:bg-background/70", children: /* @__PURE__ */ t(Te, { size: "lg" }) }),
|
|
2697
2697
|
/* @__PURE__ */ t(
|
|
2698
2698
|
"iframe",
|
|
2699
2699
|
{
|
|
@@ -2703,9 +2703,9 @@ function ja({
|
|
|
2703
2703
|
style: { height: 120, border: 0 },
|
|
2704
2704
|
sandbox: "allow-scripts allow-forms allow-same-origin",
|
|
2705
2705
|
referrerPolicy: "no-referrer",
|
|
2706
|
-
onLoad: () =>
|
|
2706
|
+
onLoad: () => c(!0)
|
|
2707
2707
|
},
|
|
2708
|
-
`${e?.id ?? "challenge"}-${
|
|
2708
|
+
`${e?.id ?? "challenge"}-${h}`
|
|
2709
2709
|
)
|
|
2710
2710
|
] }) : /* @__PURE__ */ t(be, { tone: "danger", title: m("challenge.unableToLoad") }),
|
|
2711
2711
|
D && /* @__PURE__ */ t(
|
|
@@ -2716,24 +2716,24 @@ function ja({
|
|
|
2716
2716
|
description: ce !== void 0 ? m("challenge.attemptsRemaining", { values: { count: ce } }) : void 0
|
|
2717
2717
|
}
|
|
2718
2718
|
),
|
|
2719
|
-
!$ && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", variant: "secondary", onClick: de, disabled:
|
|
2719
|
+
!$ && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", variant: "secondary", onClick: de, disabled: w, children: ne })
|
|
2720
2720
|
] }),
|
|
2721
2721
|
/* @__PURE__ */ t(H, {})
|
|
2722
2722
|
] });
|
|
2723
2723
|
}
|
|
2724
|
-
|
|
2724
|
+
za.displayName = "ChallengeGate";
|
|
2725
2725
|
function Fa({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, className: i }) {
|
|
2726
|
-
const { t: f, locale:
|
|
2726
|
+
const { t: f, locale: l } = K(), g = e ?? f("ended.title"), d = a ?? f("ended.message"), b = s.useMemo(() => r ? (r instanceof Date ? r : new Date(r)).toLocaleDateString(l, {
|
|
2727
2727
|
month: "long",
|
|
2728
2728
|
day: "numeric",
|
|
2729
2729
|
year: "numeric"
|
|
2730
|
-
}) : null, [r,
|
|
2731
|
-
return /* @__PURE__ */ t(
|
|
2730
|
+
}) : null, [r, l]), m = we();
|
|
2731
|
+
return /* @__PURE__ */ t(W.div, { ...m, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", i), "data-slot": "ended-module", role: "status", children: [
|
|
2732
2732
|
/* @__PURE__ */ t(G, { variant: "outline", label: g }),
|
|
2733
2733
|
/* @__PURE__ */ u(Z, { children: [
|
|
2734
2734
|
/* @__PURE__ */ u(ie, { children: [
|
|
2735
2735
|
/* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: d }),
|
|
2736
|
-
|
|
2736
|
+
b && /* @__PURE__ */ t("p", { className: "ff:text-xs ff:text-muted", children: f("ended.endedOn", { values: { date: b } }) })
|
|
2737
2737
|
] }),
|
|
2738
2738
|
n && o && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", variant: "outline", onClick: o, children: n })
|
|
2739
2739
|
] }),
|
|
@@ -2742,7 +2742,7 @@ function Fa({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, clas
|
|
|
2742
2742
|
}
|
|
2743
2743
|
Fa.displayName = "EndedModule";
|
|
2744
2744
|
function et({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, className: f }) {
|
|
2745
|
-
const { t:
|
|
2745
|
+
const { t: l } = K(), [g, d] = s.useState(!1), b = r ?? l("error.label"), m = a ?? l("error.title"), h = (e instanceof Error ? e.message : e) ?? l("error.description"), x = o ?? l("error.retry"), C = async () => {
|
|
2746
2746
|
if (i) {
|
|
2747
2747
|
d(!0);
|
|
2748
2748
|
try {
|
|
@@ -2751,11 +2751,11 @@ function et({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
|
|
|
2751
2751
|
d(!1);
|
|
2752
2752
|
}
|
|
2753
2753
|
}
|
|
2754
|
-
},
|
|
2755
|
-
return /* @__PURE__ */ t(
|
|
2756
|
-
/* @__PURE__ */ t(G, { variant: "danger", label:
|
|
2754
|
+
}, c = we();
|
|
2755
|
+
return /* @__PURE__ */ t(W.div, { ...c, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", f), "data-slot": "error-view", role: "alert", children: [
|
|
2756
|
+
/* @__PURE__ */ t(G, { variant: "danger", label: b }),
|
|
2757
2757
|
/* @__PURE__ */ u(Z, { children: [
|
|
2758
|
-
/* @__PURE__ */ t(be, { tone: "danger", title: m, description:
|
|
2758
|
+
/* @__PURE__ */ t(be, { tone: "danger", title: m, description: h }),
|
|
2759
2759
|
n ? /* @__PURE__ */ t(ie, { children: n }) : null,
|
|
2760
2760
|
i ? /* @__PURE__ */ t(
|
|
2761
2761
|
j,
|
|
@@ -2766,7 +2766,7 @@ function et({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
|
|
|
2766
2766
|
},
|
|
2767
2767
|
disabled: g,
|
|
2768
2768
|
loading: g,
|
|
2769
|
-
children:
|
|
2769
|
+
children: x
|
|
2770
2770
|
}
|
|
2771
2771
|
) : null
|
|
2772
2772
|
] }),
|
|
@@ -2774,7 +2774,7 @@ function et({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
|
|
|
2774
2774
|
] }) });
|
|
2775
2775
|
}
|
|
2776
2776
|
et.displayName = "ErrorView";
|
|
2777
|
-
const
|
|
2777
|
+
const Pn = {
|
|
2778
2778
|
default: {
|
|
2779
2779
|
particleCount: 60,
|
|
2780
2780
|
spread: 70,
|
|
@@ -2806,22 +2806,22 @@ const Fn = {
|
|
|
2806
2806
|
clean: null
|
|
2807
2807
|
// No confetti for clean variant - too busy
|
|
2808
2808
|
};
|
|
2809
|
-
function
|
|
2809
|
+
function Bn(e, a) {
|
|
2810
2810
|
if (ot())
|
|
2811
2811
|
return;
|
|
2812
|
-
const r =
|
|
2812
|
+
const r = Pn[a];
|
|
2813
2813
|
if (!r)
|
|
2814
2814
|
return;
|
|
2815
2815
|
const n = e.getBoundingClientRect(), o = (n.left + n.width / 2) / window.innerWidth, i = (n.top + n.height / 2) / window.innerHeight;
|
|
2816
|
-
|
|
2816
|
+
Dr({
|
|
2817
2817
|
...r,
|
|
2818
2818
|
origin: { x: o, y: i }
|
|
2819
2819
|
});
|
|
2820
2820
|
}
|
|
2821
|
-
function
|
|
2821
|
+
function On(e) {
|
|
2822
2822
|
const a = ge(), r = s.useRef(!1);
|
|
2823
2823
|
s.useEffect(() => {
|
|
2824
|
-
r.current || e.current && (r.current = !0,
|
|
2824
|
+
r.current || e.current && (r.current = !0, Bn(e.current, a));
|
|
2825
2825
|
}, [e, a]);
|
|
2826
2826
|
}
|
|
2827
2827
|
function it({
|
|
@@ -2832,10 +2832,10 @@ function it({
|
|
|
2832
2832
|
onCtaClick: o,
|
|
2833
2833
|
className: i
|
|
2834
2834
|
}) {
|
|
2835
|
-
const { t: f } = K(),
|
|
2836
|
-
|
|
2835
|
+
const { t: f } = K(), l = s.useRef(null);
|
|
2836
|
+
On(l);
|
|
2837
2837
|
const g = we();
|
|
2838
|
-
return /* @__PURE__ */ t(
|
|
2838
|
+
return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ u(
|
|
2839
2839
|
Y,
|
|
2840
2840
|
{
|
|
2841
2841
|
className: E("ff:w-full ff:max-w-sm", i),
|
|
@@ -2845,8 +2845,8 @@ function it({
|
|
|
2845
2845
|
children: [
|
|
2846
2846
|
/* @__PURE__ */ t(G, { variant: "default", label: e }),
|
|
2847
2847
|
/* @__PURE__ */ u(Z, { children: [
|
|
2848
|
-
/* @__PURE__ */ t("div", { ref:
|
|
2849
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: f("
|
|
2848
|
+
/* @__PURE__ */ t("div", { ref: l, className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: n ? /* @__PURE__ */ u(Me, { children: [
|
|
2849
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: f("duration.timeRemaining") }),
|
|
2850
2850
|
/* @__PURE__ */ t(pe, { targetDate: n, showDays: !1 })
|
|
2851
2851
|
] }) : /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: a }) }),
|
|
2852
2852
|
/* @__PURE__ */ t(j, { className: "ff:mt-auto", onClick: o, children: r })
|
|
@@ -2857,30 +2857,30 @@ function it({
|
|
|
2857
2857
|
) });
|
|
2858
2858
|
}
|
|
2859
2859
|
it.displayName = "GrantedPanel";
|
|
2860
|
-
const
|
|
2861
|
-
queue: "
|
|
2862
|
-
draw: "
|
|
2863
|
-
auction: "
|
|
2864
|
-
timed_release: "
|
|
2865
|
-
appointment: "
|
|
2860
|
+
const $n = {
|
|
2861
|
+
queue: "outcome.reenter.queue",
|
|
2862
|
+
draw: "outcome.reenter.draw",
|
|
2863
|
+
auction: "outcome.reenter.auction",
|
|
2864
|
+
timed_release: "outcome.reenter.timedRelease",
|
|
2865
|
+
appointment: "outcome.reenter.appointment"
|
|
2866
2866
|
}, pa = {
|
|
2867
|
-
expired: { title: "expired.title", body: "expired.description", variant: "outline" },
|
|
2868
|
-
not_selected: { title: "
|
|
2869
|
-
sold_out: { title: "
|
|
2870
|
-
outbid: { title: "auction.outbid", body: "auction.
|
|
2871
|
-
reserve_not_met: { title: "
|
|
2867
|
+
expired: { title: "outcome.expired.title", body: "outcome.expired.description", variant: "outline" },
|
|
2868
|
+
not_selected: { title: "outcome.notSelected.title", body: "outcome.notSelected.description", variant: "outline" },
|
|
2869
|
+
sold_out: { title: "outcome.soldOut.title", body: "outcome.soldOut.description", variant: "outline" },
|
|
2870
|
+
outbid: { title: "auction.outbid.title", body: "auction.outbid.message", variant: "outline" },
|
|
2871
|
+
reserve_not_met: { title: "outcome.closed.title", body: "outcome.closed.description", variant: "outline" },
|
|
2872
2872
|
completed: { title: "common.purchaseComplete", body: "common.thankYou", variant: "success" },
|
|
2873
|
-
ended: { title: "
|
|
2873
|
+
ended: { title: "outcome.closed.title", body: "outcome.closed.description", variant: "outline" }
|
|
2874
2874
|
};
|
|
2875
|
-
function
|
|
2875
|
+
function Ue({
|
|
2876
2876
|
outcomeReason: e,
|
|
2877
2877
|
participationType: a,
|
|
2878
2878
|
onReenter: r,
|
|
2879
2879
|
isReentering: n,
|
|
2880
2880
|
className: o
|
|
2881
2881
|
}) {
|
|
2882
|
-
const { t: i } = K(), f = e === "expired",
|
|
2883
|
-
return /* @__PURE__ */ t(
|
|
2882
|
+
const { t: i } = K(), f = e === "expired", l = pa[e] ?? pa.ended, g = f && typeof r == "function", d = i(a ? $n[a] : "outcome.reenter"), b = we();
|
|
2883
|
+
return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ u(
|
|
2884
2884
|
Y,
|
|
2885
2885
|
{
|
|
2886
2886
|
className: E("ff:w-full ff:max-w-sm", o),
|
|
@@ -2888,9 +2888,9 @@ function We({
|
|
|
2888
2888
|
"data-stage": "ended",
|
|
2889
2889
|
"data-reason": e,
|
|
2890
2890
|
children: [
|
|
2891
|
-
/* @__PURE__ */ t(G, { variant:
|
|
2891
|
+
/* @__PURE__ */ t(G, { variant: l.variant, label: i(l.title) }),
|
|
2892
2892
|
/* @__PURE__ */ u(Z, { children: [
|
|
2893
|
-
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: i(
|
|
2893
|
+
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: i(l.body) }) }),
|
|
2894
2894
|
g && /* @__PURE__ */ t(j, { className: "ff:mt-auto", onClick: r, disabled: n, loading: n, children: d })
|
|
2895
2895
|
] }),
|
|
2896
2896
|
/* @__PURE__ */ t(H, {})
|
|
@@ -2898,7 +2898,7 @@ function We({
|
|
|
2898
2898
|
}
|
|
2899
2899
|
) });
|
|
2900
2900
|
}
|
|
2901
|
-
|
|
2901
|
+
Ue.displayName = "OutcomePanel";
|
|
2902
2902
|
function Pa({
|
|
2903
2903
|
stage: e,
|
|
2904
2904
|
onAuthSubmit: a,
|
|
@@ -2907,14 +2907,14 @@ function Pa({
|
|
|
2907
2907
|
onAuthSuccess: o,
|
|
2908
2908
|
onAccessCodeSubmit: i,
|
|
2909
2909
|
onAccessCodeSkip: f,
|
|
2910
|
-
allowAuthSkip:
|
|
2910
|
+
allowAuthSkip: l = !1,
|
|
2911
2911
|
allowAccessCodeSkip: g = !1,
|
|
2912
2912
|
authTitle: d,
|
|
2913
|
-
authDescription:
|
|
2913
|
+
authDescription: b,
|
|
2914
2914
|
accessCodeTitle: m,
|
|
2915
2915
|
accessCodeDescription: v,
|
|
2916
|
-
startsAt:
|
|
2917
|
-
className:
|
|
2916
|
+
startsAt: h,
|
|
2917
|
+
className: x,
|
|
2918
2918
|
children: C
|
|
2919
2919
|
}) {
|
|
2920
2920
|
return e === "none" ? /* @__PURE__ */ t(Me, { children: C }) : e === "loading" ? /* @__PURE__ */ t(
|
|
@@ -2923,7 +2923,7 @@ function Pa({
|
|
|
2923
2923
|
className: E(
|
|
2924
2924
|
"fanfare-journey-gate",
|
|
2925
2925
|
"ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12",
|
|
2926
|
-
|
|
2926
|
+
x
|
|
2927
2927
|
),
|
|
2928
2928
|
"data-slot": "journey-gate",
|
|
2929
2929
|
role: "status",
|
|
@@ -2931,24 +2931,24 @@ function Pa({
|
|
|
2931
2931
|
"aria-busy": "true",
|
|
2932
2932
|
children: /* @__PURE__ */ t(Te, { size: "lg", className: "ff:text-primary" })
|
|
2933
2933
|
}
|
|
2934
|
-
) : e === "auth" ? /* @__PURE__ */ t("div", { className: E("fanfare-journey-gate",
|
|
2934
|
+
) : e === "auth" ? /* @__PURE__ */ t("div", { className: E("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
|
|
2935
2935
|
Aa,
|
|
2936
2936
|
{
|
|
2937
2937
|
title: d,
|
|
2938
|
-
description:
|
|
2939
|
-
countdownTo:
|
|
2938
|
+
description: b,
|
|
2939
|
+
countdownTo: h,
|
|
2940
2940
|
onSubmit: a,
|
|
2941
2941
|
onVerify: r,
|
|
2942
2942
|
onSkip: n,
|
|
2943
2943
|
onSuccess: o,
|
|
2944
|
-
allowSkip:
|
|
2944
|
+
allowSkip: l
|
|
2945
2945
|
}
|
|
2946
|
-
) }) : e === "access_code" ? /* @__PURE__ */ t("div", { className: E("fanfare-journey-gate",
|
|
2947
|
-
|
|
2946
|
+
) }) : e === "access_code" ? /* @__PURE__ */ t("div", { className: E("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
|
|
2947
|
+
ja,
|
|
2948
2948
|
{
|
|
2949
2949
|
title: m,
|
|
2950
2950
|
description: v,
|
|
2951
|
-
countdownTo:
|
|
2951
|
+
countdownTo: h,
|
|
2952
2952
|
onSubmit: i,
|
|
2953
2953
|
onSkip: f,
|
|
2954
2954
|
allowSkip: g
|
|
@@ -2956,10 +2956,10 @@ function Pa({
|
|
|
2956
2956
|
) }) : null;
|
|
2957
2957
|
}
|
|
2958
2958
|
Pa.displayName = "JourneyGate";
|
|
2959
|
-
function
|
|
2959
|
+
function qn(e, a) {
|
|
2960
2960
|
return Ot(e, { weekday: "long", timeZone: a });
|
|
2961
2961
|
}
|
|
2962
|
-
function
|
|
2962
|
+
function Un(e, a) {
|
|
2963
2963
|
return Ot(e, { month: "long", day: "numeric", timeZone: a });
|
|
2964
2964
|
}
|
|
2965
2965
|
function Bt(e, a) {
|
|
@@ -3010,7 +3010,7 @@ function ga(e, a) {
|
|
|
3010
3010
|
const [r, n, o] = e.split("-").map(Number);
|
|
3011
3011
|
return !r || !n || !o ? e : new Date(Date.UTC(r, n - 1, o + a)).toISOString().slice(0, 10);
|
|
3012
3012
|
}
|
|
3013
|
-
function
|
|
3013
|
+
function Hn(e) {
|
|
3014
3014
|
const [a, r, n] = e.split("-").map(Number);
|
|
3015
3015
|
if (!a || !r || !n) return "";
|
|
3016
3016
|
const o = new Date(Date.UTC(a, r - 1, n, 12, 0, 0));
|
|
@@ -3020,11 +3020,11 @@ function Un(e) {
|
|
|
3020
3020
|
return "";
|
|
3021
3021
|
}
|
|
3022
3022
|
}
|
|
3023
|
-
function
|
|
3023
|
+
function Kn(e) {
|
|
3024
3024
|
const [, , a] = e.split("-").map(Number);
|
|
3025
3025
|
return a ?? 0;
|
|
3026
3026
|
}
|
|
3027
|
-
const
|
|
3027
|
+
const Zn = ae(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
|
|
3028
3028
|
variants: {
|
|
3029
3029
|
styleVariant: {
|
|
3030
3030
|
default: "",
|
|
@@ -3051,11 +3051,11 @@ const Kn = te(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
|
|
|
3051
3051
|
}
|
|
3052
3052
|
}), $a = s.forwardRef(({ className: e, ...a }, r) => {
|
|
3053
3053
|
const n = ge();
|
|
3054
|
-
return /* @__PURE__ */ t("div", { ref: r, "data-slot": "skeleton", className: E(
|
|
3054
|
+
return /* @__PURE__ */ t("div", { ref: r, "data-slot": "skeleton", className: E(Zn({ styleVariant: n }), e), ...a });
|
|
3055
3055
|
});
|
|
3056
3056
|
$a.displayName = "Skeleton";
|
|
3057
|
-
const
|
|
3058
|
-
function
|
|
3057
|
+
const Yn = (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" }) }), Gn = kt(Yn), Jn = (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" }) }), qa = kt(Jn);
|
|
3058
|
+
function Ua({
|
|
3059
3059
|
booking: e,
|
|
3060
3060
|
timezone: a,
|
|
3061
3061
|
readOnly: r = !1,
|
|
@@ -3063,10 +3063,10 @@ function Wa({
|
|
|
3063
3063
|
onStartReschedule: o,
|
|
3064
3064
|
onAddToCalendar: i,
|
|
3065
3065
|
onJoinCall: f,
|
|
3066
|
-
isCancelling:
|
|
3066
|
+
isCancelling: l,
|
|
3067
3067
|
cancelError: g
|
|
3068
3068
|
}) {
|
|
3069
|
-
const { t: d } = K(), [
|
|
3069
|
+
const { t: d } = K(), [b, m] = s.useState(!1), v = qn(e.startTime, a), h = Un(e.startTime, a), x = Bt(e.startTime, a), C = Ba(e.startTime, e.endTime), c = !e.locationName, w = c ? d("appointment.online") : e.locationName, p = c ? {
|
|
3070
3070
|
label: d("appointment.joinCall"),
|
|
3071
3071
|
onClick: () => {
|
|
3072
3072
|
f ? f() : e.joinUrl && window.open(e.joinUrl, "_blank", "noopener,noreferrer");
|
|
@@ -3076,19 +3076,19 @@ function Wa({
|
|
|
3076
3076
|
} : {
|
|
3077
3077
|
label: d("appointment.addToCalendar"),
|
|
3078
3078
|
onClick: () => i?.(),
|
|
3079
|
-
icon: /* @__PURE__ */ t(
|
|
3079
|
+
icon: /* @__PURE__ */ t(Gn, { className: "ff:size-4" }),
|
|
3080
3080
|
disabled: !i
|
|
3081
3081
|
};
|
|
3082
3082
|
return /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-4", "data-slot": "appointment-booking-details", children: [
|
|
3083
3083
|
/* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-1", children: [
|
|
3084
3084
|
/* @__PURE__ */ t("span", { className: "ff:text-3xl ff:font-bold ff:leading-tight ff:font-heading ff:text-foreground", children: v }),
|
|
3085
|
-
/* @__PURE__ */ t("span", { className: "ff:text-3xl ff:font-bold ff:leading-tight ff:font-heading ff:text-foreground", children:
|
|
3086
|
-
/* @__PURE__ */ t("span", { className: "ff:mt-1 ff:text-3xl ff:font-bold ff:tabular-nums ff:font-heading ff:text-foreground", children:
|
|
3085
|
+
/* @__PURE__ */ t("span", { className: "ff:text-3xl ff:font-bold ff:leading-tight ff:font-heading ff:text-foreground", children: h }),
|
|
3086
|
+
/* @__PURE__ */ t("span", { className: "ff:mt-1 ff:text-3xl ff:font-bold ff:tabular-nums ff:font-heading ff:text-foreground", children: x })
|
|
3087
3087
|
] }),
|
|
3088
3088
|
/* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-1.5 ff:border-t ff:border-border/40 ff:pt-3 ff:text-sm", children: [
|
|
3089
|
-
|
|
3089
|
+
w && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
|
|
3090
3090
|
/* @__PURE__ */ t("span", { className: "ff:text-muted", children: d("appointment.location") }),
|
|
3091
|
-
/* @__PURE__ */ t("span", { className: "ff:text-right ff:font-semibold ff:text-foreground", children:
|
|
3091
|
+
/* @__PURE__ */ t("span", { className: "ff:text-right ff:font-semibold ff:text-foreground", children: w })
|
|
3092
3092
|
] }),
|
|
3093
3093
|
C && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
|
|
3094
3094
|
/* @__PURE__ */ t("span", { className: "ff:text-muted", children: d("appointment.duration") }),
|
|
@@ -3104,7 +3104,7 @@ function Wa({
|
|
|
3104
3104
|
p.label
|
|
3105
3105
|
] }) }),
|
|
3106
3106
|
/* @__PURE__ */ t(nt, { show: !!g, children: g && /* @__PURE__ */ t(be, { tone: "danger", description: g }) }),
|
|
3107
|
-
/* @__PURE__ */ t(nt, { show: !r &&
|
|
3107
|
+
/* @__PURE__ */ t(nt, { show: !r && b, children: !r && b && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-2", children: [
|
|
3108
3108
|
/* @__PURE__ */ t(be, { tone: "danger", title: d("appointment.cancelConfirm") }),
|
|
3109
3109
|
/* @__PURE__ */ u("div", { className: "ff:flex ff:gap-2", children: [
|
|
3110
3110
|
/* @__PURE__ */ t(
|
|
@@ -3114,8 +3114,8 @@ function Wa({
|
|
|
3114
3114
|
variant: "destructive",
|
|
3115
3115
|
className: "ff:flex-1",
|
|
3116
3116
|
onClick: n,
|
|
3117
|
-
disabled:
|
|
3118
|
-
loading:
|
|
3117
|
+
disabled: l,
|
|
3118
|
+
loading: l,
|
|
3119
3119
|
children: d("appointment.cancelConfirmYes")
|
|
3120
3120
|
}
|
|
3121
3121
|
),
|
|
@@ -3126,22 +3126,22 @@ function Wa({
|
|
|
3126
3126
|
variant: "outline",
|
|
3127
3127
|
className: "ff:flex-1",
|
|
3128
3128
|
onClick: () => m(!1),
|
|
3129
|
-
disabled:
|
|
3129
|
+
disabled: l,
|
|
3130
3130
|
children: d("appointment.cancelConfirmNo")
|
|
3131
3131
|
}
|
|
3132
3132
|
)
|
|
3133
3133
|
] })
|
|
3134
3134
|
] }) }),
|
|
3135
|
-
!r && !
|
|
3135
|
+
!r && !b && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-center ff:justify-center ff:gap-3 ff:text-xs", children: [
|
|
3136
3136
|
/* @__PURE__ */ t(j, { variant: "link", size: "xs", onClick: o, children: d("appointment.reschedule") }),
|
|
3137
3137
|
/* @__PURE__ */ t("span", { "aria-hidden": "true", className: "ff:text-muted", children: "·" }),
|
|
3138
|
-
/* @__PURE__ */ t(j, { variant: "link", size: "xs", onClick: () => m(!0), disabled:
|
|
3138
|
+
/* @__PURE__ */ t(j, { variant: "link", size: "xs", onClick: () => m(!0), disabled: l, children: d("appointment.cancel") })
|
|
3139
3139
|
] })
|
|
3140
3140
|
] });
|
|
3141
3141
|
}
|
|
3142
|
-
|
|
3143
|
-
function
|
|
3144
|
-
const { t: o } = K(), i = !e.locationName, f = Bt(e.startTime, a),
|
|
3142
|
+
Ua.displayName = "AppointmentBookingDetails";
|
|
3143
|
+
function Wa({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
|
|
3144
|
+
const { t: o } = K(), i = !e.locationName, f = Bt(e.startTime, a), l = Ba(e.startTime, e.endTime), g = o("appointment.youreUpAt", { values: { time: f } }), d = i ? o("appointment.youreUpOnlineHint") : o("appointment.youreUpIrlHint", { values: { location: e.locationName ?? "" } });
|
|
3145
3145
|
return /* @__PURE__ */ u(
|
|
3146
3146
|
"div",
|
|
3147
3147
|
{
|
|
@@ -3156,9 +3156,9 @@ function Ua({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
|
|
|
3156
3156
|
/* @__PURE__ */ t("span", { className: "ff:text-muted", children: o("appointment.time") }),
|
|
3157
3157
|
/* @__PURE__ */ t("span", { className: "ff:font-semibold ff:tabular-nums ff:text-foreground", children: f })
|
|
3158
3158
|
] }),
|
|
3159
|
-
|
|
3159
|
+
l && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
|
|
3160
3160
|
/* @__PURE__ */ t("span", { className: "ff:text-muted", children: o("appointment.duration") }),
|
|
3161
|
-
/* @__PURE__ */ t("span", { className: "ff:font-semibold ff:tabular-nums ff:text-foreground", children: o("appointment.minutes", { values: { count:
|
|
3161
|
+
/* @__PURE__ */ t("span", { className: "ff:font-semibold ff:tabular-nums ff:text-foreground", children: o("appointment.minutes", { values: { count: l } }) })
|
|
3162
3162
|
] }),
|
|
3163
3163
|
!i && e.locationName && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
|
|
3164
3164
|
/* @__PURE__ */ t("span", { className: "ff:text-muted", children: o("appointment.location") }),
|
|
@@ -3188,38 +3188,38 @@ function Ua({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
|
|
|
3188
3188
|
}
|
|
3189
3189
|
);
|
|
3190
3190
|
}
|
|
3191
|
-
|
|
3192
|
-
const
|
|
3191
|
+
Wa.displayName = "AppointmentCheckedInView";
|
|
3192
|
+
const Qn = 3e4, Mt = /* @__PURE__ */ new Map();
|
|
3193
3193
|
function ma(e, a, r, n) {
|
|
3194
3194
|
return `${e}:${a}:${r}:${n ?? ""}`;
|
|
3195
3195
|
}
|
|
3196
|
-
function
|
|
3197
|
-
const r = Nt(), [n, o] = s.useState([]), [i, f] = s.useState(!1), [
|
|
3196
|
+
function Xn(e, a) {
|
|
3197
|
+
const r = Nt(), [n, o] = s.useState([]), [i, f] = s.useState(!1), [l, g] = s.useState(null), [d, b] = s.useState(0), { startDate: m, endDate: v, timezone: h } = a;
|
|
3198
3198
|
s.useEffect(() => {
|
|
3199
3199
|
if (!e || !m || !v) {
|
|
3200
3200
|
o([]), g(null), f(!1);
|
|
3201
3201
|
return;
|
|
3202
3202
|
}
|
|
3203
|
-
const C = ma(e, m, v,
|
|
3204
|
-
if (
|
|
3205
|
-
o(
|
|
3203
|
+
const C = ma(e, m, v, h), c = Mt.get(C);
|
|
3204
|
+
if (c && Date.now() - c.fetchedAt < Qn) {
|
|
3205
|
+
o(c.slots), g(null);
|
|
3206
3206
|
return;
|
|
3207
3207
|
}
|
|
3208
|
-
let
|
|
3209
|
-
return f(!0), g(null), r.appointments.getSlots(e, { startDate: m, endDate: v, timezone:
|
|
3210
|
-
|
|
3208
|
+
let w = !1;
|
|
3209
|
+
return f(!0), g(null), r.appointments.getSlots(e, { startDate: m, endDate: v, timezone: h }).then((p) => {
|
|
3210
|
+
w || (Mt.set(C, { fetchedAt: Date.now(), slots: p }), o(p));
|
|
3211
3211
|
}).catch((p) => {
|
|
3212
|
-
|
|
3212
|
+
w || g(p instanceof Error ? p : new Error(String(p)));
|
|
3213
3213
|
}).finally(() => {
|
|
3214
|
-
|
|
3214
|
+
w || f(!1);
|
|
3215
3215
|
}), () => {
|
|
3216
|
-
|
|
3216
|
+
w = !0;
|
|
3217
3217
|
};
|
|
3218
|
-
}, [r, e, m, v,
|
|
3219
|
-
const
|
|
3220
|
-
e && m && v && Mt.delete(ma(e, m, v,
|
|
3221
|
-
}, [e, m, v,
|
|
3222
|
-
return { slots: n, isLoading: i, error:
|
|
3218
|
+
}, [r, e, m, v, h, d]);
|
|
3219
|
+
const x = s.useCallback(() => {
|
|
3220
|
+
e && m && v && Mt.delete(ma(e, m, v, h)), b((C) => C + 1);
|
|
3221
|
+
}, [e, m, v, h]);
|
|
3222
|
+
return { slots: n, isLoading: i, error: l, refresh: x };
|
|
3223
3223
|
}
|
|
3224
3224
|
function Ha({ days: e, selectedDate: a, onSelect: r }) {
|
|
3225
3225
|
return /* @__PURE__ */ t(
|
|
@@ -3297,7 +3297,7 @@ function Ka({
|
|
|
3297
3297
|
);
|
|
3298
3298
|
}
|
|
3299
3299
|
Ka.displayName = "AppointmentSlotItem";
|
|
3300
|
-
const
|
|
3300
|
+
const eo = 9;
|
|
3301
3301
|
function Za({
|
|
3302
3302
|
slots: e,
|
|
3303
3303
|
isLoading: a,
|
|
@@ -3315,7 +3315,7 @@ function Za({
|
|
|
3315
3315
|
className: "ff:grid ff:grid-cols-3 ff:gap-1 ff:max-h-44",
|
|
3316
3316
|
"data-slot": "appointment-slot-grid",
|
|
3317
3317
|
"data-state": "loading",
|
|
3318
|
-
children: Array.from({ length:
|
|
3318
|
+
children: Array.from({ length: eo }).map((f, l) => /* @__PURE__ */ t($a, { className: "ff:h-8 ff:w-full" }, l))
|
|
3319
3319
|
}
|
|
3320
3320
|
) : e.length === 0 ? /* @__PURE__ */ t(ie, { "data-slot": "appointment-slot-grid", "data-state": "empty", children: /* @__PURE__ */ t("span", { className: "ff:text-muted", children: o ?? i("appointment.noSlotsAvailable") }) }) : /* @__PURE__ */ t(
|
|
3321
3321
|
"div",
|
|
@@ -3325,14 +3325,14 @@ function Za({
|
|
|
3325
3325
|
className: "ff:grid ff:grid-cols-3 ff:gap-1 ff:overflow-y-auto ff:max-h-44",
|
|
3326
3326
|
"data-slot": "appointment-slot-grid",
|
|
3327
3327
|
children: e.map((f) => {
|
|
3328
|
-
const
|
|
3328
|
+
const l = f.available <= 0, g = r === f.id, d = Oa(f), b = l ? i("appointment.slotFullAriaLabel", { values: { time: d } }) : d;
|
|
3329
3329
|
return /* @__PURE__ */ t(
|
|
3330
3330
|
Ka,
|
|
3331
3331
|
{
|
|
3332
3332
|
slotId: f.id,
|
|
3333
3333
|
timeLabel: d,
|
|
3334
|
-
ariaLabel:
|
|
3335
|
-
isFull:
|
|
3334
|
+
ariaLabel: b,
|
|
3335
|
+
isFull: l,
|
|
3336
3336
|
isSelected: g,
|
|
3337
3337
|
onSelect: n
|
|
3338
3338
|
},
|
|
@@ -3352,16 +3352,16 @@ function Ya({
|
|
|
3352
3352
|
onSlotChange: o,
|
|
3353
3353
|
bookError: i
|
|
3354
3354
|
}) {
|
|
3355
|
-
const { t: f } = K(),
|
|
3355
|
+
const { t: f } = K(), l = s.useMemo(
|
|
3356
3356
|
() => a ? gt(new Date(a), n) : void 0,
|
|
3357
3357
|
[a, n]
|
|
3358
3358
|
), g = s.useMemo(
|
|
3359
3359
|
() => r ? gt(new Date(r), n) : void 0,
|
|
3360
3360
|
[r, n]
|
|
3361
|
-
), { startDate: d, endDate:
|
|
3362
|
-
const N = gt(/* @__PURE__ */ new Date(), n), S =
|
|
3361
|
+
), { startDate: d, endDate: b } = s.useMemo(() => {
|
|
3362
|
+
const N = gt(/* @__PURE__ */ new Date(), n), S = l && l > N ? l : N, M = ga(S, ha - 1), A = g && g < M ? g : M;
|
|
3363
3363
|
return { startDate: S, endDate: A };
|
|
3364
|
-
}, [
|
|
3364
|
+
}, [l, g, n]), { slots: m, isLoading: v, error: h } = Xn(e, { startDate: d, endDate: b, timezone: n }), x = s.useMemo(() => {
|
|
3365
3365
|
const N = /* @__PURE__ */ new Map();
|
|
3366
3366
|
for (const S of m) {
|
|
3367
3367
|
const M = S.startTime ? gt(new Date(S.startTime), S.timezone ?? n) : S.id.slice(0, 10), A = N.get(M);
|
|
@@ -3373,49 +3373,49 @@ function Ya({
|
|
|
3373
3373
|
for (let S = 0; S < ha; S += 1) {
|
|
3374
3374
|
const M = ga(d, S);
|
|
3375
3375
|
if (g && M > g) break;
|
|
3376
|
-
const A =
|
|
3376
|
+
const A = x.get(M) ?? [], I = A.some(($) => $.available > 0), O = !v && A.length === 0;
|
|
3377
3377
|
N.push({
|
|
3378
3378
|
date: M,
|
|
3379
|
-
weekdayLabel:
|
|
3380
|
-
dayNumber:
|
|
3379
|
+
weekdayLabel: Hn(M),
|
|
3380
|
+
dayNumber: Kn(M),
|
|
3381
3381
|
hasAvailability: I,
|
|
3382
3382
|
isClosed: O
|
|
3383
3383
|
});
|
|
3384
3384
|
}
|
|
3385
3385
|
return N;
|
|
3386
|
-
}, [d, g,
|
|
3386
|
+
}, [d, g, x, v]), [c, w] = s.useState(null), [p, D] = s.useState(null);
|
|
3387
3387
|
s.useEffect(() => {
|
|
3388
|
-
if (
|
|
3388
|
+
if (c && C.some((S) => S.date === c && !S.isClosed)) return;
|
|
3389
3389
|
const N = C.find((S) => !S.isClosed);
|
|
3390
|
-
N && (
|
|
3391
|
-
}, [C,
|
|
3392
|
-
const V = s.useMemo(() =>
|
|
3390
|
+
N && (w(N.date), D(null));
|
|
3391
|
+
}, [C, c]);
|
|
3392
|
+
const V = s.useMemo(() => c ? x.get(c) ?? [] : [], [c, x]);
|
|
3393
3393
|
s.useEffect(() => {
|
|
3394
3394
|
if (!o) return;
|
|
3395
3395
|
const N = V.find((S) => S.id === p) ?? null;
|
|
3396
3396
|
o(N);
|
|
3397
3397
|
}, [V, p, o]);
|
|
3398
3398
|
const T = s.useCallback((N) => {
|
|
3399
|
-
|
|
3400
|
-
}, []),
|
|
3399
|
+
w(N), D(null);
|
|
3400
|
+
}, []), y = s.useCallback((N) => {
|
|
3401
3401
|
D((S) => S === N ? null : N);
|
|
3402
3402
|
}, []);
|
|
3403
3403
|
return /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-2", children: [
|
|
3404
|
-
/* @__PURE__ */ t(Ha, { days: C, selectedDate:
|
|
3404
|
+
/* @__PURE__ */ t(Ha, { days: C, selectedDate: c, onSelect: T }),
|
|
3405
3405
|
/* @__PURE__ */ t(
|
|
3406
3406
|
Za,
|
|
3407
3407
|
{
|
|
3408
3408
|
slots: V,
|
|
3409
3409
|
isLoading: v,
|
|
3410
3410
|
selectedSlotId: p,
|
|
3411
|
-
onSelect:
|
|
3411
|
+
onSelect: y
|
|
3412
3412
|
}
|
|
3413
3413
|
),
|
|
3414
|
-
(i ||
|
|
3414
|
+
(i || h) && /* @__PURE__ */ t(be, { tone: "danger", description: i ?? h?.message ?? f("appointment.bookingFailed") })
|
|
3415
3415
|
] });
|
|
3416
3416
|
}
|
|
3417
3417
|
Ya.displayName = "AppointmentSlotPicker";
|
|
3418
|
-
const
|
|
3418
|
+
const to = qe({});
|
|
3419
3419
|
function At({
|
|
3420
3420
|
appointmentId: e,
|
|
3421
3421
|
display$: a,
|
|
@@ -3424,22 +3424,22 @@ function At({
|
|
|
3424
3424
|
bookingWindowCloseAt: o,
|
|
3425
3425
|
timezone: i,
|
|
3426
3426
|
defaultLocationId: f,
|
|
3427
|
-
onBook:
|
|
3427
|
+
onBook: l,
|
|
3428
3428
|
onCancel: g,
|
|
3429
3429
|
onReschedule: d,
|
|
3430
|
-
isBooking:
|
|
3430
|
+
isBooking: b,
|
|
3431
3431
|
isCancelling: m,
|
|
3432
3432
|
isRescheduling: v,
|
|
3433
|
-
bookError:
|
|
3434
|
-
cancelError:
|
|
3433
|
+
bookError: h,
|
|
3434
|
+
cancelError: x,
|
|
3435
3435
|
outcomeReason: C,
|
|
3436
|
-
onReenter:
|
|
3437
|
-
isReentering:
|
|
3436
|
+
onReenter: c,
|
|
3437
|
+
isReentering: w,
|
|
3438
3438
|
className: p
|
|
3439
3439
|
}) {
|
|
3440
|
-
const { t: D } = K(), V =
|
|
3440
|
+
const { t: D } = K(), V = je(a ?? to), [T, y] = s.useState(!1), N = we();
|
|
3441
3441
|
if (r === "ended")
|
|
3442
|
-
return /* @__PURE__ */ t(
|
|
3442
|
+
return /* @__PURE__ */ t(Ue, { outcomeReason: C ?? "ended", participationType: "appointment", className: p });
|
|
3443
3443
|
if (r === "participating" && T)
|
|
3444
3444
|
return /* @__PURE__ */ t(
|
|
3445
3445
|
wa,
|
|
@@ -3449,14 +3449,14 @@ function At({
|
|
|
3449
3449
|
bookingWindowCloseAt: o,
|
|
3450
3450
|
timezone: i,
|
|
3451
3451
|
defaultLocationId: f,
|
|
3452
|
-
headingLabel: D("appointment.
|
|
3452
|
+
headingLabel: D("appointment.reschedule.title"),
|
|
3453
3453
|
headingVariant: "default",
|
|
3454
3454
|
confirmLabelKey: "appointment.continueWithTime",
|
|
3455
3455
|
idleLabelKey: "appointment.selectATime",
|
|
3456
3456
|
isPending: v,
|
|
3457
|
-
error:
|
|
3457
|
+
error: h,
|
|
3458
3458
|
onConfirm: async (S, M) => {
|
|
3459
|
-
await d(S, M),
|
|
3459
|
+
await d(S, M), y(!1);
|
|
3460
3460
|
},
|
|
3461
3461
|
className: p,
|
|
3462
3462
|
motionProps: N,
|
|
@@ -3465,8 +3465,8 @@ function At({
|
|
|
3465
3465
|
}
|
|
3466
3466
|
);
|
|
3467
3467
|
if (r === "participating") {
|
|
3468
|
-
const S = V.booking, M = S?.consumerStatus, A = M === "checked_in", I = M === "completed", O = I ? "completed" : A ? "checked_in" : "booked", $ = D(I ? "appointment.
|
|
3469
|
-
return /* @__PURE__ */ t(
|
|
3468
|
+
const S = V.booking, M = S?.consumerStatus, A = M === "checked_in", I = M === "completed", O = I ? "completed" : A ? "checked_in" : "booked", $ = D(I ? "appointment.completed.title" : A ? "appointment.checkedIn" : "appointment.booked.title");
|
|
3469
|
+
return /* @__PURE__ */ t(W.div, { ...N, children: /* @__PURE__ */ u(
|
|
3470
3470
|
Y,
|
|
3471
3471
|
{
|
|
3472
3472
|
className: E("ff:w-full ff:max-w-sm", p),
|
|
@@ -3475,16 +3475,16 @@ function At({
|
|
|
3475
3475
|
"data-substage": O,
|
|
3476
3476
|
children: [
|
|
3477
3477
|
/* @__PURE__ */ t(G, { variant: "success", label: $ }),
|
|
3478
|
-
/* @__PURE__ */ t(Z, { children: S ? A ? /* @__PURE__ */ t(
|
|
3479
|
-
|
|
3478
|
+
/* @__PURE__ */ t(Z, { children: S ? A ? /* @__PURE__ */ t(Wa, { booking: S, timezone: i }) : /* @__PURE__ */ t(
|
|
3479
|
+
Ua,
|
|
3480
3480
|
{
|
|
3481
3481
|
booking: S,
|
|
3482
3482
|
timezone: i,
|
|
3483
3483
|
readOnly: I,
|
|
3484
3484
|
onCancel: () => g(),
|
|
3485
|
-
onStartReschedule: () =>
|
|
3485
|
+
onStartReschedule: () => y(!0),
|
|
3486
3486
|
isCancelling: m,
|
|
3487
|
-
cancelError:
|
|
3487
|
+
cancelError: x
|
|
3488
3488
|
}
|
|
3489
3489
|
) : /* @__PURE__ */ t("span", { className: "ff:text-muted", children: D("appointment.loadingBooking") }) })
|
|
3490
3490
|
]
|
|
@@ -3503,9 +3503,9 @@ function At({
|
|
|
3503
3503
|
headingVariant: "default",
|
|
3504
3504
|
confirmLabelKey: "appointment.continueWithTime",
|
|
3505
3505
|
idleLabelKey: "appointment.selectATime",
|
|
3506
|
-
isPending:
|
|
3507
|
-
error:
|
|
3508
|
-
onConfirm:
|
|
3506
|
+
isPending: b,
|
|
3507
|
+
error: h,
|
|
3508
|
+
onConfirm: l,
|
|
3509
3509
|
className: p,
|
|
3510
3510
|
motionProps: N,
|
|
3511
3511
|
dataStage: "enterable"
|
|
@@ -3521,27 +3521,27 @@ function wa({
|
|
|
3521
3521
|
defaultLocationId: o,
|
|
3522
3522
|
headingLabel: i,
|
|
3523
3523
|
headingVariant: f,
|
|
3524
|
-
confirmLabelKey:
|
|
3524
|
+
confirmLabelKey: l,
|
|
3525
3525
|
idleLabelKey: g,
|
|
3526
3526
|
isPending: d,
|
|
3527
|
-
error:
|
|
3527
|
+
error: b,
|
|
3528
3528
|
onConfirm: m,
|
|
3529
3529
|
className: v,
|
|
3530
|
-
motionProps:
|
|
3531
|
-
dataStage:
|
|
3530
|
+
motionProps: h,
|
|
3531
|
+
dataStage: x,
|
|
3532
3532
|
dataMode: C
|
|
3533
3533
|
}) {
|
|
3534
|
-
const { t:
|
|
3535
|
-
if (!
|
|
3536
|
-
const T =
|
|
3537
|
-
await m(
|
|
3538
|
-
}, [o, m,
|
|
3539
|
-
return /* @__PURE__ */ t(
|
|
3534
|
+
const { t: c } = K(), [w, p] = s.useState(null), D = w ? c(l, { values: { time: Oa(w) } }) : c(g), V = s.useCallback(async () => {
|
|
3535
|
+
if (!w) return;
|
|
3536
|
+
const T = w.locationId ?? o;
|
|
3537
|
+
await m(w.id, T);
|
|
3538
|
+
}, [o, m, w]);
|
|
3539
|
+
return /* @__PURE__ */ t(W.div, { ...h, children: /* @__PURE__ */ u(
|
|
3540
3540
|
Y,
|
|
3541
3541
|
{
|
|
3542
3542
|
className: E("ff:w-full ff:max-w-sm", v),
|
|
3543
3543
|
"data-slot": "appointment-module",
|
|
3544
|
-
"data-stage":
|
|
3544
|
+
"data-stage": x,
|
|
3545
3545
|
"data-mode": C,
|
|
3546
3546
|
children: [
|
|
3547
3547
|
/* @__PURE__ */ t(G, { variant: f, label: i }),
|
|
@@ -3553,7 +3553,7 @@ function wa({
|
|
|
3553
3553
|
bookingWindowCloseAt: r,
|
|
3554
3554
|
timezone: n,
|
|
3555
3555
|
onSlotChange: p,
|
|
3556
|
-
bookError:
|
|
3556
|
+
bookError: b
|
|
3557
3557
|
}
|
|
3558
3558
|
) }),
|
|
3559
3559
|
/* @__PURE__ */ t(H, { children: /* @__PURE__ */ t(
|
|
@@ -3562,7 +3562,7 @@ function wa({
|
|
|
3562
3562
|
size: "sm",
|
|
3563
3563
|
className: "ff:w-full",
|
|
3564
3564
|
onClick: V,
|
|
3565
|
-
disabled: !
|
|
3565
|
+
disabled: !w || d,
|
|
3566
3566
|
loading: d,
|
|
3567
3567
|
children: D
|
|
3568
3568
|
}
|
|
@@ -3571,7 +3571,7 @@ function wa({
|
|
|
3571
3571
|
}
|
|
3572
3572
|
) });
|
|
3573
3573
|
}
|
|
3574
|
-
function
|
|
3574
|
+
function ao(e, a) {
|
|
3575
3575
|
try {
|
|
3576
3576
|
return new Intl.NumberFormat(a, {
|
|
3577
3577
|
style: "currency",
|
|
@@ -3582,7 +3582,7 @@ function to(e, a) {
|
|
|
3582
3582
|
return e;
|
|
3583
3583
|
}
|
|
3584
3584
|
}
|
|
3585
|
-
function
|
|
3585
|
+
function ro(e, a) {
|
|
3586
3586
|
const r = a?.currencyCode, n = a?.minimumFractionDigits ?? 2, o = a?.maximumFractionDigits ?? 2;
|
|
3587
3587
|
if (r)
|
|
3588
3588
|
try {
|
|
@@ -3595,7 +3595,7 @@ function ao(e, a) {
|
|
|
3595
3595
|
}).format(e);
|
|
3596
3596
|
} catch {
|
|
3597
3597
|
}
|
|
3598
|
-
const i = a?.currencySymbol ?? (r ?
|
|
3598
|
+
const i = a?.currencySymbol ?? (r ? ao(r, a?.locale) : "$");
|
|
3599
3599
|
try {
|
|
3600
3600
|
const f = e.toLocaleString(a?.locale, { minimumFractionDigits: n, maximumFractionDigits: o });
|
|
3601
3601
|
return `${i}${f}`;
|
|
@@ -3603,8 +3603,8 @@ function ao(e, a) {
|
|
|
3603
3603
|
return `${i}${e.toFixed(o)}`;
|
|
3604
3604
|
}
|
|
3605
3605
|
}
|
|
3606
|
-
const
|
|
3607
|
-
function
|
|
3606
|
+
const no = qe({});
|
|
3607
|
+
function oo(e, a) {
|
|
3608
3608
|
const r = { ...e }, n = r;
|
|
3609
3609
|
for (const [o, i] of Object.entries(a))
|
|
3610
3610
|
i !== void 0 && (n[o] = i);
|
|
@@ -3618,72 +3618,69 @@ function tt({
|
|
|
3618
3618
|
canLeave: o,
|
|
3619
3619
|
onEnter: i,
|
|
3620
3620
|
onLeave: f,
|
|
3621
|
-
onBid:
|
|
3621
|
+
onBid: l,
|
|
3622
3622
|
isEntering: g,
|
|
3623
3623
|
isLeaving: d,
|
|
3624
|
-
countdownTo:
|
|
3624
|
+
countdownTo: b,
|
|
3625
3625
|
defaultBidAmount: m,
|
|
3626
3626
|
currencyCode: v,
|
|
3627
|
-
locale:
|
|
3628
|
-
grant:
|
|
3627
|
+
locale: h,
|
|
3628
|
+
grant: x,
|
|
3629
3629
|
expiresAt: C,
|
|
3630
|
-
checkoutUrl:
|
|
3631
|
-
onCheckoutClick:
|
|
3630
|
+
checkoutUrl: c,
|
|
3631
|
+
onCheckoutClick: w,
|
|
3632
3632
|
outcomeReason: p,
|
|
3633
3633
|
onReenter: D,
|
|
3634
3634
|
isReentering: V,
|
|
3635
3635
|
className: T
|
|
3636
3636
|
}) {
|
|
3637
|
-
const { t:
|
|
3638
|
-
() =>
|
|
3637
|
+
const { t: y } = K(), N = je(e ?? no), S = s.useMemo(
|
|
3638
|
+
() => oo(a, N),
|
|
3639
3639
|
[a, N]
|
|
3640
|
-
), M = s.useMemo(
|
|
3641
|
-
() => x ?? (S.closeAt ? new Date(S.closeAt) : void 0),
|
|
3642
|
-
[x, S.closeAt]
|
|
3643
|
-
), A = s.useMemo(() => {
|
|
3640
|
+
), M = s.useMemo(() => S.settleAt ? new Date(S.settleAt) : b || (S.closeAt ? new Date(S.closeAt) : void 0), [b, S.settleAt, S.closeAt]), A = s.useMemo(() => {
|
|
3644
3641
|
if (C)
|
|
3645
3642
|
return C instanceof Date ? C : new Date(C);
|
|
3646
3643
|
}, [C]), I = S.currencyCode ?? v, O = s.useCallback(
|
|
3647
3644
|
(L) => {
|
|
3648
3645
|
if (L === void 0) return;
|
|
3649
3646
|
const J = parseFloat(L);
|
|
3650
|
-
return Number.isNaN(J) ? L :
|
|
3647
|
+
return Number.isNaN(J) ? L : ro(
|
|
3651
3648
|
J,
|
|
3652
|
-
I ? { currencyCode: I, locale:
|
|
3649
|
+
I ? { currencyCode: I, locale: h } : { currencySymbol: "$", locale: h }
|
|
3653
3650
|
);
|
|
3654
3651
|
},
|
|
3655
|
-
[I,
|
|
3652
|
+
[I, h]
|
|
3656
3653
|
), $ = we(), fe = () => {
|
|
3657
|
-
|
|
3654
|
+
w ? w() : c && window.open(c, "_blank", "noopener,noreferrer");
|
|
3658
3655
|
}, ce = async () => {
|
|
3659
|
-
if (!
|
|
3656
|
+
if (!l) return;
|
|
3660
3657
|
const L = S.minNextBid ?? m;
|
|
3661
|
-
L && await
|
|
3658
|
+
L && await l(L);
|
|
3662
3659
|
};
|
|
3663
3660
|
if (r === "enterable")
|
|
3664
|
-
return /* @__PURE__ */ t(
|
|
3661
|
+
return /* @__PURE__ */ t(W.div, { ...$, children: /* @__PURE__ */ u(
|
|
3665
3662
|
Y,
|
|
3666
3663
|
{
|
|
3667
3664
|
className: E("ff:w-full ff:max-w-sm", T),
|
|
3668
3665
|
"data-slot": "auction-module",
|
|
3669
3666
|
"data-stage": "enterable",
|
|
3670
3667
|
children: [
|
|
3671
|
-
/* @__PURE__ */ t(G, { variant: "default", label:
|
|
3668
|
+
/* @__PURE__ */ t(G, { variant: "default", label: y("auction.title") }),
|
|
3672
3669
|
/* @__PURE__ */ u(Z, { children: [
|
|
3673
3670
|
M && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
3674
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children:
|
|
3671
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: y("auction.endsIn") }),
|
|
3675
3672
|
/* @__PURE__ */ t(pe, { targetDate: M, showDays: !1 })
|
|
3676
3673
|
] }),
|
|
3677
|
-
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children:
|
|
3678
|
-
|
|
3674
|
+
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: y("auction.description") }) }),
|
|
3675
|
+
l ? /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: ce, children: y("auction.bidAction") }) : n && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: i, disabled: g, loading: g, children: y("auction.enter") })
|
|
3679
3676
|
] }),
|
|
3680
3677
|
/* @__PURE__ */ t(H, {})
|
|
3681
3678
|
]
|
|
3682
3679
|
}
|
|
3683
3680
|
) });
|
|
3684
3681
|
if (r === "participating") {
|
|
3685
|
-
const L = S.status === "winning", J = L ? "default" : "success", ne =
|
|
3686
|
-
return /* @__PURE__ */ t(
|
|
3682
|
+
const L = S.status === "winning", J = L ? "default" : "success", ne = y(L ? "auction.winning.title" : "auction.title"), se = O(S.highestBid), de = O(S.currentBid);
|
|
3683
|
+
return /* @__PURE__ */ t(W.div, { ...$, children: /* @__PURE__ */ u(
|
|
3687
3684
|
Y,
|
|
3688
3685
|
{
|
|
3689
3686
|
className: E("ff:w-full ff:max-w-sm", T),
|
|
@@ -3693,21 +3690,21 @@ function tt({
|
|
|
3693
3690
|
/* @__PURE__ */ t(G, { variant: J, label: ne }),
|
|
3694
3691
|
/* @__PURE__ */ u(Z, { children: [
|
|
3695
3692
|
M && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
3696
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children:
|
|
3693
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: y("auction.endsIn") }),
|
|
3697
3694
|
/* @__PURE__ */ t(pe, { targetDate: M, showDays: !1 })
|
|
3698
3695
|
] }),
|
|
3699
3696
|
/* @__PURE__ */ u(ie, { children: [
|
|
3700
3697
|
se !== void 0 && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-center ff:justify-between", children: [
|
|
3701
|
-
/* @__PURE__ */ t("span", { className: "ff:text-muted", children:
|
|
3698
|
+
/* @__PURE__ */ t("span", { className: "ff:text-muted", children: y("auction.currentBid") }),
|
|
3702
3699
|
/* @__PURE__ */ t("span", { className: "ff:font-medium ff:tabular-nums", children: se })
|
|
3703
3700
|
] }),
|
|
3704
3701
|
de !== void 0 && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-center ff:justify-between", children: [
|
|
3705
|
-
/* @__PURE__ */ t("span", { className: "ff:text-muted", children:
|
|
3702
|
+
/* @__PURE__ */ t("span", { className: "ff:text-muted", children: y(L ? "auction.yourWinningBid" : "auction.yourBidLabel") }),
|
|
3706
3703
|
/* @__PURE__ */ t("span", { className: "ff:font-medium ff:tabular-nums", children: de })
|
|
3707
3704
|
] })
|
|
3708
3705
|
] }),
|
|
3709
3706
|
/* @__PURE__ */ u("div", { className: "ff:mt-auto ff:flex ff:flex-col ff:gap-2", children: [
|
|
3710
|
-
|
|
3707
|
+
l && /* @__PURE__ */ t(j, { className: "ff:w-full", onClick: ce, children: y("auction.bidAction") }),
|
|
3711
3708
|
o && /* @__PURE__ */ t(
|
|
3712
3709
|
j,
|
|
3713
3710
|
{
|
|
@@ -3716,7 +3713,7 @@ function tt({
|
|
|
3716
3713
|
onClick: f,
|
|
3717
3714
|
disabled: d,
|
|
3718
3715
|
loading: d,
|
|
3719
|
-
children:
|
|
3716
|
+
children: y("action.leave")
|
|
3720
3717
|
}
|
|
3721
3718
|
)
|
|
3722
3719
|
] })
|
|
@@ -3728,18 +3725,18 @@ function tt({
|
|
|
3728
3725
|
}
|
|
3729
3726
|
if (r === "settling") {
|
|
3730
3727
|
const L = O(S.highestBid);
|
|
3731
|
-
return /* @__PURE__ */ t(
|
|
3728
|
+
return /* @__PURE__ */ t(W.div, { ...$, children: /* @__PURE__ */ u(
|
|
3732
3729
|
Y,
|
|
3733
3730
|
{
|
|
3734
3731
|
className: E("ff:w-full ff:max-w-sm", T),
|
|
3735
3732
|
"data-slot": "auction-module",
|
|
3736
3733
|
"data-stage": "settling",
|
|
3737
3734
|
children: [
|
|
3738
|
-
/* @__PURE__ */ t(G, { variant: "default", label:
|
|
3735
|
+
/* @__PURE__ */ t(G, { variant: "default", label: y("auction.settling.title") }),
|
|
3739
3736
|
/* @__PURE__ */ t(Z, { children: /* @__PURE__ */ u(ie, { children: [
|
|
3740
|
-
/* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children:
|
|
3737
|
+
/* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: y("auction.settling.description") }),
|
|
3741
3738
|
L !== void 0 && /* @__PURE__ */ u("div", { className: "ff:mt-3 ff:flex ff:items-center ff:justify-between", children: [
|
|
3742
|
-
/* @__PURE__ */ t("span", { className: "ff:text-muted", children:
|
|
3739
|
+
/* @__PURE__ */ t("span", { className: "ff:text-muted", children: y("auction.currentBid") }),
|
|
3743
3740
|
/* @__PURE__ */ t("span", { className: "ff:font-medium ff:tabular-nums", children: L })
|
|
3744
3741
|
] })
|
|
3745
3742
|
] }) }),
|
|
@@ -3751,15 +3748,15 @@ function tt({
|
|
|
3751
3748
|
return r === "granted" ? /* @__PURE__ */ t(
|
|
3752
3749
|
it,
|
|
3753
3750
|
{
|
|
3754
|
-
label:
|
|
3755
|
-
fallbackMessage:
|
|
3756
|
-
ctaLabel:
|
|
3751
|
+
label: y("auction.won.title"),
|
|
3752
|
+
fallbackMessage: y("auction.won.description"),
|
|
3753
|
+
ctaLabel: y("action.proceedToCheckout"),
|
|
3757
3754
|
expiresAt: A,
|
|
3758
3755
|
onCtaClick: fe,
|
|
3759
3756
|
className: T
|
|
3760
3757
|
}
|
|
3761
3758
|
) : r === "ended" ? /* @__PURE__ */ t(
|
|
3762
|
-
|
|
3759
|
+
Ue,
|
|
3763
3760
|
{
|
|
3764
3761
|
outcomeReason: p ?? "ended",
|
|
3765
3762
|
participationType: "auction",
|
|
@@ -3770,7 +3767,7 @@ function tt({
|
|
|
3770
3767
|
) : null;
|
|
3771
3768
|
}
|
|
3772
3769
|
tt.displayName = "AuctionModule";
|
|
3773
|
-
const
|
|
3770
|
+
const fo = qe({});
|
|
3774
3771
|
function at({
|
|
3775
3772
|
display$: e,
|
|
3776
3773
|
sequencePhase: a,
|
|
@@ -3779,93 +3776,93 @@ function at({
|
|
|
3779
3776
|
onEnter: o,
|
|
3780
3777
|
onLeave: i,
|
|
3781
3778
|
isEntering: f,
|
|
3782
|
-
isLeaving:
|
|
3779
|
+
isLeaving: l,
|
|
3783
3780
|
countdownTo: g,
|
|
3784
3781
|
grant: d,
|
|
3785
|
-
expiresAt:
|
|
3782
|
+
expiresAt: b,
|
|
3786
3783
|
checkoutUrl: m,
|
|
3787
3784
|
onCheckoutClick: v,
|
|
3788
|
-
outcomeReason:
|
|
3789
|
-
onReenter:
|
|
3785
|
+
outcomeReason: h,
|
|
3786
|
+
onReenter: x,
|
|
3790
3787
|
isReentering: C,
|
|
3791
|
-
className:
|
|
3788
|
+
className: c
|
|
3792
3789
|
}) {
|
|
3793
|
-
const { t:
|
|
3790
|
+
const { t: w } = K(), p = je(e ?? fo), D = s.useMemo(
|
|
3794
3791
|
() => g ?? (p.drawTime ? new Date(p.drawTime) : void 0),
|
|
3795
3792
|
[g, p.drawTime]
|
|
3796
3793
|
), V = s.useMemo(() => {
|
|
3797
|
-
if (
|
|
3798
|
-
return
|
|
3799
|
-
}, [
|
|
3794
|
+
if (b)
|
|
3795
|
+
return b instanceof Date ? b : new Date(b);
|
|
3796
|
+
}, [b]), T = we(), y = () => {
|
|
3800
3797
|
v ? v() : m && window.open(m, "_blank", "noopener,noreferrer");
|
|
3801
3798
|
};
|
|
3802
|
-
return a === "enterable" ? /* @__PURE__ */ t(
|
|
3803
|
-
/* @__PURE__ */ t(G, { variant: "default", label:
|
|
3799
|
+
return a === "enterable" ? /* @__PURE__ */ t(W.div, { ...T, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", c), "data-slot": "draw-module", "data-stage": "enterable", children: [
|
|
3800
|
+
/* @__PURE__ */ t(G, { variant: "default", label: w("draw.title") }),
|
|
3804
3801
|
/* @__PURE__ */ u(Z, { children: [
|
|
3805
3802
|
D && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
3806
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children:
|
|
3803
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: w("draw.drawClosesIn") }),
|
|
3807
3804
|
/* @__PURE__ */ t(pe, { targetDate: D, showDays: !1 })
|
|
3808
3805
|
] }),
|
|
3809
|
-
r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children:
|
|
3806
|
+
r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children: w("draw.enter") })
|
|
3810
3807
|
] }),
|
|
3811
3808
|
/* @__PURE__ */ t(H, {})
|
|
3812
|
-
] }) }) : a === "participating" ? /* @__PURE__ */ t(
|
|
3809
|
+
] }) }) : a === "participating" ? /* @__PURE__ */ t(W.div, { ...T, children: /* @__PURE__ */ u(
|
|
3813
3810
|
Y,
|
|
3814
3811
|
{
|
|
3815
|
-
className: E("ff:w-full ff:max-w-sm",
|
|
3812
|
+
className: E("ff:w-full ff:max-w-sm", c),
|
|
3816
3813
|
"data-slot": "draw-module",
|
|
3817
3814
|
"data-stage": "participating",
|
|
3818
3815
|
children: [
|
|
3819
|
-
/* @__PURE__ */ t(G, { variant: "success", label:
|
|
3816
|
+
/* @__PURE__ */ t(G, { variant: "success", label: w("draw.entered.title") }),
|
|
3820
3817
|
/* @__PURE__ */ u(Z, { children: [
|
|
3821
3818
|
p.entryNumber && /* @__PURE__ */ t("span", { className: "ff:text-xs ff:text-muted ff:font-mono", children: p.entryNumber }),
|
|
3822
3819
|
D ? /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
3823
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children:
|
|
3820
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: w("draw.drawHappensIn") }),
|
|
3824
3821
|
/* @__PURE__ */ t(pe, { targetDate: D, showDays: !1 })
|
|
3825
3822
|
] }) : null,
|
|
3826
|
-
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children:
|
|
3823
|
+
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: w(D ? "draw.entered.description" : "draw.stayTuned") }) }),
|
|
3827
3824
|
n && /* @__PURE__ */ t(
|
|
3828
3825
|
j,
|
|
3829
3826
|
{
|
|
3830
3827
|
className: "ff:mt-auto ff:w-full",
|
|
3831
3828
|
variant: "outline",
|
|
3832
3829
|
onClick: i,
|
|
3833
|
-
disabled:
|
|
3834
|
-
loading:
|
|
3835
|
-
children:
|
|
3830
|
+
disabled: l,
|
|
3831
|
+
loading: l,
|
|
3832
|
+
children: w("draw.withdraw")
|
|
3836
3833
|
}
|
|
3837
3834
|
)
|
|
3838
3835
|
] }),
|
|
3839
3836
|
/* @__PURE__ */ t(H, {})
|
|
3840
3837
|
]
|
|
3841
3838
|
}
|
|
3842
|
-
) }) : a === "settling" ? /* @__PURE__ */ t(
|
|
3843
|
-
/* @__PURE__ */ t(G, { variant: "default", label:
|
|
3844
|
-
/* @__PURE__ */ t(Z, { children: /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children:
|
|
3839
|
+
) }) : a === "settling" ? /* @__PURE__ */ t(W.div, { ...T, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", c), "data-slot": "draw-module", "data-stage": "settling", children: [
|
|
3840
|
+
/* @__PURE__ */ t(G, { variant: "default", label: w("draw.settling.title") }),
|
|
3841
|
+
/* @__PURE__ */ t(Z, { children: /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: w("draw.settling.description") }) }) }),
|
|
3845
3842
|
/* @__PURE__ */ t(H, {})
|
|
3846
3843
|
] }) }) : a === "granted" ? /* @__PURE__ */ t(
|
|
3847
3844
|
it,
|
|
3848
3845
|
{
|
|
3849
|
-
label:
|
|
3850
|
-
fallbackMessage:
|
|
3851
|
-
ctaLabel:
|
|
3846
|
+
label: w("draw.won.title"),
|
|
3847
|
+
fallbackMessage: w("granted.description"),
|
|
3848
|
+
ctaLabel: w("granted.cta"),
|
|
3852
3849
|
expiresAt: V,
|
|
3853
|
-
onCtaClick:
|
|
3854
|
-
className:
|
|
3850
|
+
onCtaClick: y,
|
|
3851
|
+
className: c
|
|
3855
3852
|
}
|
|
3856
3853
|
) : a === "ended" ? /* @__PURE__ */ t(
|
|
3857
|
-
|
|
3854
|
+
Ue,
|
|
3858
3855
|
{
|
|
3859
|
-
outcomeReason:
|
|
3856
|
+
outcomeReason: h ?? "ended",
|
|
3860
3857
|
participationType: "draw",
|
|
3861
|
-
onReenter:
|
|
3858
|
+
onReenter: x,
|
|
3862
3859
|
isReentering: C,
|
|
3863
|
-
className:
|
|
3860
|
+
className: c
|
|
3864
3861
|
}
|
|
3865
3862
|
) : null;
|
|
3866
3863
|
}
|
|
3867
3864
|
at.displayName = "DrawModule";
|
|
3868
|
-
const
|
|
3865
|
+
const io = qe({});
|
|
3869
3866
|
function wt({
|
|
3870
3867
|
display$: e,
|
|
3871
3868
|
sequencePhase: a,
|
|
@@ -3874,61 +3871,61 @@ function wt({
|
|
|
3874
3871
|
onEnter: o,
|
|
3875
3872
|
onLeave: i,
|
|
3876
3873
|
isEntering: f,
|
|
3877
|
-
isLeaving:
|
|
3874
|
+
isLeaving: l,
|
|
3878
3875
|
closeAt: g,
|
|
3879
3876
|
grant: d,
|
|
3880
|
-
expiresAt:
|
|
3877
|
+
expiresAt: b,
|
|
3881
3878
|
checkoutUrl: m,
|
|
3882
3879
|
onCheckoutClick: v,
|
|
3883
|
-
outcomeReason:
|
|
3884
|
-
onReenter:
|
|
3880
|
+
outcomeReason: h,
|
|
3881
|
+
onReenter: x,
|
|
3885
3882
|
isReentering: C,
|
|
3886
|
-
className:
|
|
3883
|
+
className: c
|
|
3887
3884
|
}) {
|
|
3888
|
-
const { t:
|
|
3889
|
-
if (
|
|
3890
|
-
return
|
|
3891
|
-
}, [
|
|
3885
|
+
const { t: w } = K(), p = je(e ?? io), D = s.useMemo(() => {
|
|
3886
|
+
if (b)
|
|
3887
|
+
return b instanceof Date ? b : new Date(b);
|
|
3888
|
+
}, [b]), V = we(), T = () => {
|
|
3892
3889
|
v ? v() : m && window.open(m, "_blank", "noopener,noreferrer");
|
|
3893
3890
|
};
|
|
3894
3891
|
if (a === "enterable")
|
|
3895
|
-
return /* @__PURE__ */ t(
|
|
3896
|
-
/* @__PURE__ */ t(G, { variant: "default", label:
|
|
3892
|
+
return /* @__PURE__ */ t(W.div, { ...V, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", c), "data-slot": "queue-module", "data-stage": "enterable", children: [
|
|
3893
|
+
/* @__PURE__ */ t(G, { variant: "default", label: w("queue.openingSoon") }),
|
|
3897
3894
|
/* @__PURE__ */ u(Z, { children: [
|
|
3898
3895
|
g && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
3899
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children:
|
|
3896
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: w("queue.queueClosesIn") }),
|
|
3900
3897
|
/* @__PURE__ */ t(pe, { targetDate: g, showDays: !1 })
|
|
3901
3898
|
] }),
|
|
3902
|
-
r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children:
|
|
3899
|
+
r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children: w("queue.enter") })
|
|
3903
3900
|
] }),
|
|
3904
3901
|
/* @__PURE__ */ t(H, {})
|
|
3905
3902
|
] }) });
|
|
3906
3903
|
if (a === "participating") {
|
|
3907
|
-
const
|
|
3908
|
-
return /* @__PURE__ */ t(
|
|
3904
|
+
const y = p.estimatedWaitTime, N = y != null ? Math.ceil(y / 60) : null, S = (O) => O < 1 ? w("queue.waitLessThanMinute") : O === 1 ? w("queue.waitOneMinute") : w("queue.waitMinutes", { values: { count: O } }), M = y != null ? Vr(y) : null, A = M ? w(Er(M)) : null, I = N !== null ? S(N) : "...";
|
|
3905
|
+
return /* @__PURE__ */ t(W.div, { ...V, children: /* @__PURE__ */ u(
|
|
3909
3906
|
Y,
|
|
3910
3907
|
{
|
|
3911
|
-
className: E("ff:w-full ff:max-w-sm",
|
|
3908
|
+
className: E("ff:w-full ff:max-w-sm", c),
|
|
3912
3909
|
"data-slot": "queue-module",
|
|
3913
3910
|
"data-stage": "participating",
|
|
3914
3911
|
children: [
|
|
3915
|
-
/* @__PURE__ */ t(G, { variant: "success", label:
|
|
3912
|
+
/* @__PURE__ */ t(G, { variant: "success", label: w("queue.title") }),
|
|
3916
3913
|
/* @__PURE__ */ u(Z, { children: [
|
|
3917
3914
|
/* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
3918
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children:
|
|
3915
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: w("queue.estimatedWaitLabel") }),
|
|
3919
3916
|
/* @__PURE__ */ t("span", { className: "ff:text-4xl ff:font-bold ff:tabular-nums ff:font-heading", children: I }),
|
|
3920
3917
|
A && /* @__PURE__ */ t("span", { className: "ff:text-xs ff:text-muted", children: A })
|
|
3921
3918
|
] }),
|
|
3922
|
-
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-muted ff:text-xs", children:
|
|
3919
|
+
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-muted ff:text-xs", children: w("queue.qualitativeReassurance") }) }),
|
|
3923
3920
|
n && /* @__PURE__ */ t(
|
|
3924
3921
|
j,
|
|
3925
3922
|
{
|
|
3926
3923
|
className: "ff:mt-auto ff:w-full",
|
|
3927
3924
|
variant: "outline",
|
|
3928
3925
|
onClick: i,
|
|
3929
|
-
disabled:
|
|
3930
|
-
loading:
|
|
3931
|
-
children:
|
|
3926
|
+
disabled: l,
|
|
3927
|
+
loading: l,
|
|
3928
|
+
children: w("queue.leave")
|
|
3932
3929
|
}
|
|
3933
3930
|
)
|
|
3934
3931
|
] }),
|
|
@@ -3940,26 +3937,26 @@ function wt({
|
|
|
3940
3937
|
return a === "granted" ? /* @__PURE__ */ t(
|
|
3941
3938
|
it,
|
|
3942
3939
|
{
|
|
3943
|
-
label:
|
|
3944
|
-
fallbackMessage:
|
|
3945
|
-
ctaLabel:
|
|
3940
|
+
label: w("queue.granted.title"),
|
|
3941
|
+
fallbackMessage: w("queue.granted.message"),
|
|
3942
|
+
ctaLabel: w("granted.cta"),
|
|
3946
3943
|
expiresAt: D,
|
|
3947
3944
|
onCtaClick: T,
|
|
3948
|
-
className:
|
|
3945
|
+
className: c
|
|
3949
3946
|
}
|
|
3950
3947
|
) : a === "ended" ? /* @__PURE__ */ t(
|
|
3951
|
-
|
|
3948
|
+
Ue,
|
|
3952
3949
|
{
|
|
3953
|
-
outcomeReason:
|
|
3950
|
+
outcomeReason: h ?? "ended",
|
|
3954
3951
|
participationType: "queue",
|
|
3955
|
-
onReenter:
|
|
3952
|
+
onReenter: x,
|
|
3956
3953
|
isReentering: C,
|
|
3957
|
-
className:
|
|
3954
|
+
className: c
|
|
3958
3955
|
}
|
|
3959
3956
|
) : null;
|
|
3960
3957
|
}
|
|
3961
3958
|
wt.displayName = "QueueModule";
|
|
3962
|
-
const
|
|
3959
|
+
const so = qe({});
|
|
3963
3960
|
function vt({
|
|
3964
3961
|
display$: e,
|
|
3965
3962
|
sequencePhase: a,
|
|
@@ -3968,28 +3965,28 @@ function vt({
|
|
|
3968
3965
|
onEnter: o,
|
|
3969
3966
|
onLeave: i,
|
|
3970
3967
|
onComplete: f,
|
|
3971
|
-
isEntering:
|
|
3968
|
+
isEntering: l,
|
|
3972
3969
|
isLeaving: g,
|
|
3973
3970
|
countdownTo: d,
|
|
3974
|
-
checkoutUrl:
|
|
3971
|
+
checkoutUrl: b,
|
|
3975
3972
|
onCheckoutClick: m,
|
|
3976
3973
|
grant: v,
|
|
3977
|
-
expiresAt:
|
|
3978
|
-
outcomeReason:
|
|
3974
|
+
expiresAt: h,
|
|
3975
|
+
outcomeReason: x,
|
|
3979
3976
|
onReenter: C,
|
|
3980
|
-
isReentering:
|
|
3981
|
-
className:
|
|
3977
|
+
isReentering: c,
|
|
3978
|
+
className: w
|
|
3982
3979
|
}) {
|
|
3983
|
-
const { t: p } = K(), D =
|
|
3984
|
-
if (
|
|
3985
|
-
return
|
|
3986
|
-
}, [
|
|
3980
|
+
const { t: p } = K(), D = je(e ?? so), V = s.useMemo(() => {
|
|
3981
|
+
if (h)
|
|
3982
|
+
return h instanceof Date ? h : new Date(h);
|
|
3983
|
+
}, [h]), T = b ?? D.checkoutUrl, y = we(), N = () => {
|
|
3987
3984
|
m ? m() : T && window.open(T, "_blank", "noopener,noreferrer");
|
|
3988
3985
|
};
|
|
3989
|
-
return a === "enterable" ? /* @__PURE__ */ t(
|
|
3986
|
+
return a === "enterable" ? /* @__PURE__ */ t(W.div, { ...y, children: /* @__PURE__ */ u(
|
|
3990
3987
|
Y,
|
|
3991
3988
|
{
|
|
3992
|
-
className: E("ff:w-full ff:max-w-sm",
|
|
3989
|
+
className: E("ff:w-full ff:max-w-sm", w),
|
|
3993
3990
|
"data-slot": "timed-release-module",
|
|
3994
3991
|
"data-stage": "enterable",
|
|
3995
3992
|
children: [
|
|
@@ -4000,15 +3997,15 @@ function vt({
|
|
|
4000
3997
|
/* @__PURE__ */ t(pe, { targetDate: d, showDays: !1 })
|
|
4001
3998
|
] }),
|
|
4002
3999
|
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: p("timedRelease.description") }) }),
|
|
4003
|
-
r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled:
|
|
4000
|
+
r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: l, loading: l, children: p("timedRelease.enter") })
|
|
4004
4001
|
] }),
|
|
4005
4002
|
/* @__PURE__ */ t(H, {})
|
|
4006
4003
|
]
|
|
4007
4004
|
}
|
|
4008
|
-
) }) : a === "participating" ? /* @__PURE__ */ t(
|
|
4005
|
+
) }) : a === "participating" ? /* @__PURE__ */ t(W.div, { ...y, children: /* @__PURE__ */ u(
|
|
4009
4006
|
Y,
|
|
4010
4007
|
{
|
|
4011
|
-
className: E("ff:w-full ff:max-w-sm",
|
|
4008
|
+
className: E("ff:w-full ff:max-w-sm", w),
|
|
4012
4009
|
"data-slot": "timed-release-module",
|
|
4013
4010
|
"data-stage": "participating",
|
|
4014
4011
|
children: [
|
|
@@ -4054,16 +4051,16 @@ function vt({
|
|
|
4054
4051
|
ctaLabel: p("granted.cta"),
|
|
4055
4052
|
expiresAt: V,
|
|
4056
4053
|
onCtaClick: N,
|
|
4057
|
-
className:
|
|
4054
|
+
className: w
|
|
4058
4055
|
}
|
|
4059
4056
|
) : a === "ended" ? /* @__PURE__ */ t(
|
|
4060
|
-
|
|
4057
|
+
Ue,
|
|
4061
4058
|
{
|
|
4062
|
-
outcomeReason:
|
|
4059
|
+
outcomeReason: x ?? "ended",
|
|
4063
4060
|
participationType: "timed_release",
|
|
4064
4061
|
onReenter: C,
|
|
4065
|
-
isReentering:
|
|
4066
|
-
className:
|
|
4062
|
+
isReentering: c,
|
|
4063
|
+
className: w
|
|
4067
4064
|
}
|
|
4068
4065
|
) : null;
|
|
4069
4066
|
}
|
|
@@ -4076,36 +4073,36 @@ function Ga({
|
|
|
4076
4073
|
canEnter: o = !1,
|
|
4077
4074
|
onEnter: i,
|
|
4078
4075
|
enterLabel: f,
|
|
4079
|
-
isEntering:
|
|
4076
|
+
isEntering: l = !1,
|
|
4080
4077
|
className: g
|
|
4081
4078
|
}) {
|
|
4082
|
-
const { t: d } = K(),
|
|
4083
|
-
return /* @__PURE__ */ t(
|
|
4084
|
-
/* @__PURE__ */ t(G, { variant: "secondary", label:
|
|
4079
|
+
const { t: d } = K(), b = e ?? d("upcoming.title"), m = a ?? d("upcoming.description"), v = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), h = we();
|
|
4080
|
+
return /* @__PURE__ */ t(W.div, { ...h, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", g), "data-slot": "upcoming-module", children: [
|
|
4081
|
+
/* @__PURE__ */ t(G, { variant: "secondary", label: b }),
|
|
4085
4082
|
/* @__PURE__ */ u(Z, { children: [
|
|
4086
4083
|
v && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
4087
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: d("
|
|
4084
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: d("duration.startingSoon") }),
|
|
4088
4085
|
/* @__PURE__ */ t(
|
|
4089
4086
|
pe,
|
|
4090
4087
|
{
|
|
4091
4088
|
targetDate: v,
|
|
4092
4089
|
onComplete: n,
|
|
4093
|
-
expiredLabel: d("
|
|
4090
|
+
expiredLabel: d("duration.startingSoon")
|
|
4094
4091
|
}
|
|
4095
4092
|
)
|
|
4096
4093
|
] }),
|
|
4097
4094
|
/* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: m }) }),
|
|
4098
|
-
o && i && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: i, disabled:
|
|
4095
|
+
o && i && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: i, disabled: l, loading: l, children: f ?? d("waitlist.enter") })
|
|
4099
4096
|
] }),
|
|
4100
4097
|
/* @__PURE__ */ t(H, {})
|
|
4101
4098
|
] }) });
|
|
4102
4099
|
}
|
|
4103
4100
|
Ga.displayName = "UpcomingModule";
|
|
4104
|
-
const
|
|
4101
|
+
const lo = {
|
|
4105
4102
|
initial: { opacity: 1 },
|
|
4106
4103
|
animate: { opacity: 1 },
|
|
4107
4104
|
transition: { duration: 0 }
|
|
4108
|
-
},
|
|
4105
|
+
}, co = {
|
|
4109
4106
|
default: {
|
|
4110
4107
|
initial: { opacity: 0, scale: 0.95 },
|
|
4111
4108
|
animate: { opacity: 1, scale: 1 },
|
|
@@ -4126,7 +4123,7 @@ const so = {
|
|
|
4126
4123
|
animate: { opacity: 1 },
|
|
4127
4124
|
transition: { duration: 0.4, ease: "easeInOut" }
|
|
4128
4125
|
}
|
|
4129
|
-
},
|
|
4126
|
+
}, uo = ae("ff:flex ff:items-center ff:justify-center", {
|
|
4130
4127
|
variants: {
|
|
4131
4128
|
styleVariant: {
|
|
4132
4129
|
default: "ff:w-16 ff:h-16 ff:rounded-full ff:bg-primary/5",
|
|
@@ -4140,7 +4137,7 @@ const so = {
|
|
|
4140
4137
|
}
|
|
4141
4138
|
},
|
|
4142
4139
|
defaultVariants: { styleVariant: "default" }
|
|
4143
|
-
}),
|
|
4140
|
+
}), po = ae("ff:mt-4 ff:text-sm", {
|
|
4144
4141
|
variants: {
|
|
4145
4142
|
styleVariant: {
|
|
4146
4143
|
default: "ff:text-muted",
|
|
@@ -4152,9 +4149,9 @@ const so = {
|
|
|
4152
4149
|
defaultVariants: { styleVariant: "default" }
|
|
4153
4150
|
});
|
|
4154
4151
|
function It({ message: e, className: a }) {
|
|
4155
|
-
const r = ge(), n = ot() ?
|
|
4152
|
+
const r = ge(), n = ot() ? lo : co[r], o = r === "clean" ? "md" : "lg";
|
|
4156
4153
|
return /* @__PURE__ */ u(
|
|
4157
|
-
|
|
4154
|
+
W.div,
|
|
4158
4155
|
{
|
|
4159
4156
|
...n,
|
|
4160
4157
|
"data-slot": "loading-view",
|
|
@@ -4163,8 +4160,8 @@ function It({ message: e, className: a }) {
|
|
|
4163
4160
|
"aria-busy": "true",
|
|
4164
4161
|
className: E("ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12", a),
|
|
4165
4162
|
children: [
|
|
4166
|
-
/* @__PURE__ */ t("div", { className: E(
|
|
4167
|
-
e && /* @__PURE__ */ t("p", { className: E(
|
|
4163
|
+
/* @__PURE__ */ t("div", { className: E(uo({ styleVariant: r })), children: /* @__PURE__ */ t(Te, { size: o }) }),
|
|
4164
|
+
e && /* @__PURE__ */ t("p", { className: E(po({ styleVariant: r })), children: e })
|
|
4168
4165
|
]
|
|
4169
4166
|
}
|
|
4170
4167
|
);
|
|
@@ -4178,28 +4175,28 @@ function Ja({
|
|
|
4178
4175
|
countdownTo: o,
|
|
4179
4176
|
info: i,
|
|
4180
4177
|
ctaLabel: f,
|
|
4181
|
-
onStart:
|
|
4178
|
+
onStart: l,
|
|
4182
4179
|
isLoading: g = !1,
|
|
4183
4180
|
className: d
|
|
4184
4181
|
}) {
|
|
4185
|
-
const { t:
|
|
4186
|
-
return /* @__PURE__ */ t(
|
|
4182
|
+
const { t: b } = K(), m = we();
|
|
4183
|
+
return /* @__PURE__ */ t(W.div, { ...m, children: /* @__PURE__ */ u(Y, { className: E("fanfare-start-view", d), "data-slot": "start-view", children: [
|
|
4187
4184
|
/* @__PURE__ */ t(
|
|
4188
4185
|
G,
|
|
4189
4186
|
{
|
|
4190
4187
|
variant: e,
|
|
4191
4188
|
label: a,
|
|
4192
|
-
title: r ??
|
|
4193
|
-
description: n ??
|
|
4189
|
+
title: r ?? b("start.title"),
|
|
4190
|
+
description: n ?? b("start.description")
|
|
4194
4191
|
}
|
|
4195
4192
|
),
|
|
4196
4193
|
/* @__PURE__ */ u(Z, { children: [
|
|
4197
4194
|
o ? /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
|
|
4198
|
-
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children:
|
|
4195
|
+
/* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: b("duration.opensIn") }),
|
|
4199
4196
|
/* @__PURE__ */ t(pe, { targetDate: o, showDays: !1 })
|
|
4200
4197
|
] }) : null,
|
|
4201
4198
|
i ? /* @__PURE__ */ t(ie, { children: i }) : null,
|
|
4202
|
-
/* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick:
|
|
4199
|
+
/* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: l, disabled: g, loading: g, children: f ?? b("start.cta") })
|
|
4203
4200
|
] }),
|
|
4204
4201
|
/* @__PURE__ */ t(H, {})
|
|
4205
4202
|
] }) });
|
|
@@ -4214,18 +4211,18 @@ function Qa({
|
|
|
4214
4211
|
isLeaving: i = !1,
|
|
4215
4212
|
className: f
|
|
4216
4213
|
}) {
|
|
4217
|
-
const { t:
|
|
4218
|
-
return /* @__PURE__ */ t(
|
|
4214
|
+
const { t: l } = K(), g = e ?? l("waitlist.entered.title"), d = a ?? l("waitlist.entered.description"), b = l("duration.opensIn"), m = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), v = we();
|
|
4215
|
+
return /* @__PURE__ */ t(W.div, { ...v, children: /* @__PURE__ */ u(Y, { className: E("fanfare-waitlist-view", f), "data-slot": "waitlist-view", children: [
|
|
4219
4216
|
/* @__PURE__ */ t(G, { variant: "success", title: g, description: d }),
|
|
4220
4217
|
/* @__PURE__ */ u(Z, { children: [
|
|
4221
4218
|
m && /* @__PURE__ */ u(ie, { children: [
|
|
4222
|
-
/* @__PURE__ */ t("p", { className: "ff:text-muted ff:text-xxs ff:font-heading ff:uppercase ff:tracking-widest", children:
|
|
4219
|
+
/* @__PURE__ */ t("p", { className: "ff:text-muted ff:text-xxs ff:font-heading ff:uppercase ff:tracking-widest", children: b }),
|
|
4223
4220
|
/* @__PURE__ */ t(
|
|
4224
4221
|
pe,
|
|
4225
4222
|
{
|
|
4226
4223
|
targetDate: m,
|
|
4227
4224
|
onComplete: n,
|
|
4228
|
-
expiredLabel:
|
|
4225
|
+
expiredLabel: l("duration.startingSoon")
|
|
4229
4226
|
}
|
|
4230
4227
|
)
|
|
4231
4228
|
] }),
|
|
@@ -4237,7 +4234,7 @@ function Qa({
|
|
|
4237
4234
|
onClick: o,
|
|
4238
4235
|
disabled: i,
|
|
4239
4236
|
loading: i,
|
|
4240
|
-
children:
|
|
4237
|
+
children: l("waitlist.leave")
|
|
4241
4238
|
}
|
|
4242
4239
|
)
|
|
4243
4240
|
] }),
|
|
@@ -4246,34 +4243,34 @@ function Qa({
|
|
|
4246
4243
|
}
|
|
4247
4244
|
Qa.displayName = "WaitlistView";
|
|
4248
4245
|
function Xa({ open: e, invalid: a, submitting: r, onOpen: n, onClose: o, onSubmit: i }) {
|
|
4249
|
-
const { t: f } = K(), [
|
|
4246
|
+
const { t: f } = K(), [l, g] = ve(""), d = () => {
|
|
4250
4247
|
g(""), n();
|
|
4251
4248
|
};
|
|
4252
4249
|
return e ? /* @__PURE__ */ u("div", { className: "fanfare-upgrade-offer", "data-slot": "upgrade-offer", children: [
|
|
4253
4250
|
/* @__PURE__ */ u("form", { className: "fanfare-upgrade-offer__form", onSubmit: (m) => {
|
|
4254
|
-
m.preventDefault(), !(!
|
|
4251
|
+
m.preventDefault(), !(!l.trim() || r) && i(l.trim());
|
|
4255
4252
|
}, children: [
|
|
4256
4253
|
/* @__PURE__ */ t(
|
|
4257
4254
|
"input",
|
|
4258
4255
|
{
|
|
4259
4256
|
className: "fanfare-upgrade-offer__input",
|
|
4260
4257
|
type: "text",
|
|
4261
|
-
value:
|
|
4258
|
+
value: l,
|
|
4262
4259
|
onChange: (m) => g(m.target.value),
|
|
4263
4260
|
placeholder: f("upgradeOffer.placeholder"),
|
|
4264
4261
|
autoFocus: !0,
|
|
4265
4262
|
disabled: r
|
|
4266
4263
|
}
|
|
4267
4264
|
),
|
|
4268
|
-
/* @__PURE__ */ t("button", { type: "submit", className: "fanfare-upgrade-offer__submit", disabled: r || !
|
|
4269
|
-
/* @__PURE__ */ t("button", { type: "button", className: "fanfare-upgrade-offer__cancel", onClick: o, disabled: r, children: f("
|
|
4265
|
+
/* @__PURE__ */ t("button", { type: "submit", className: "fanfare-upgrade-offer__submit", disabled: r || !l.trim(), children: f(r ? "upgradeOffer.submitting" : "upgradeOffer.submit") }),
|
|
4266
|
+
/* @__PURE__ */ t("button", { type: "button", className: "fanfare-upgrade-offer__cancel", onClick: o, disabled: r, children: f("action.cancel") })
|
|
4270
4267
|
] }),
|
|
4271
4268
|
a && !r ? /* @__PURE__ */ t("p", { className: "fanfare-upgrade-offer__error", children: f("upgradeOffer.invalid") }) : null
|
|
4272
4269
|
] }) : /* @__PURE__ */ t("div", { className: "fanfare-upgrade-offer", "data-slot": "upgrade-offer", children: /* @__PURE__ */ t("button", { type: "button", className: "fanfare-upgrade-offer__link", onClick: d, children: f("upgradeOffer.prompt") }) });
|
|
4273
4270
|
}
|
|
4274
4271
|
Xa.displayName = "UpgradeOffer";
|
|
4275
|
-
const
|
|
4276
|
-
function
|
|
4272
|
+
const go = qe({});
|
|
4273
|
+
function mo(e) {
|
|
4277
4274
|
return "mechanism" in e && e.mechanism === "auction" && "bid" in e;
|
|
4278
4275
|
}
|
|
4279
4276
|
function Ee(e) {
|
|
@@ -4282,36 +4279,36 @@ function Ee(e) {
|
|
|
4282
4279
|
function va(e) {
|
|
4283
4280
|
return Ee(e);
|
|
4284
4281
|
}
|
|
4285
|
-
function
|
|
4282
|
+
function ho(e) {
|
|
4286
4283
|
return e?.phase === "enterable" && Ee(e.mechanism);
|
|
4287
4284
|
}
|
|
4288
|
-
function
|
|
4285
|
+
function wo(e) {
|
|
4289
4286
|
return e?.phase === "participating" && Ee(e.mechanism);
|
|
4290
4287
|
}
|
|
4291
|
-
function
|
|
4288
|
+
function vo(e) {
|
|
4292
4289
|
return e?.phase === "granted";
|
|
4293
4290
|
}
|
|
4294
4291
|
function St(e) {
|
|
4295
4292
|
return e?.journeyStage === "routed" ? e.sequence : void 0;
|
|
4296
4293
|
}
|
|
4297
|
-
function
|
|
4294
|
+
function bo(e, a) {
|
|
4298
4295
|
const r = St(e);
|
|
4299
4296
|
return r && "mechanism" in r && va(r.mechanism) ? r.mechanism : a?.phase === "participating" && "consumer" in a && "mechanism" in a.consumer && va(a.consumer.mechanism) ? a.consumer.mechanism : null;
|
|
4300
4297
|
}
|
|
4301
|
-
function
|
|
4298
|
+
function xo(e) {
|
|
4302
4299
|
const a = St(e);
|
|
4303
4300
|
if (!(!a || !("distribution" in a)))
|
|
4304
4301
|
return a.distribution;
|
|
4305
4302
|
}
|
|
4306
|
-
function
|
|
4303
|
+
function yo(e) {
|
|
4307
4304
|
const a = St(e);
|
|
4308
4305
|
if (!(!a || !("consumer" in a)))
|
|
4309
4306
|
return a.consumer;
|
|
4310
4307
|
}
|
|
4311
|
-
function
|
|
4308
|
+
function ko(e, a) {
|
|
4312
4309
|
return e ? "distributionId" in e && typeof e.distributionId == "string" && e.distributionId ? e.distributionId : e.id ?? a ?? null : a ?? null;
|
|
4313
4310
|
}
|
|
4314
|
-
function
|
|
4311
|
+
function _o({
|
|
4315
4312
|
experienceId: e,
|
|
4316
4313
|
autoStart: a = !1,
|
|
4317
4314
|
accessCode: r,
|
|
@@ -4319,34 +4316,39 @@ function ko({
|
|
|
4319
4316
|
theme: o,
|
|
4320
4317
|
variant: i,
|
|
4321
4318
|
slots: f,
|
|
4322
|
-
children:
|
|
4319
|
+
children: l,
|
|
4323
4320
|
checkoutUrl: g,
|
|
4324
4321
|
onJourneyChange: d,
|
|
4325
|
-
onGranted:
|
|
4322
|
+
onGranted: b,
|
|
4326
4323
|
onError: m,
|
|
4327
4324
|
className: v
|
|
4328
4325
|
}) {
|
|
4329
|
-
const
|
|
4326
|
+
const h = Nt(), { t: x } = K(), C = B((k, _) => x(k, _), [x]), { journey: c, view: w, snapshot: p, fanfareError: D, start: V } = Sa(e, {
|
|
4330
4327
|
autoStart: a,
|
|
4331
4328
|
accessCode: r,
|
|
4332
4329
|
autoEnterWaitlist: n
|
|
4333
|
-
}), [T,
|
|
4330
|
+
}), [T, y] = s.useState(!1), [N, S] = s.useState(!1), [M, A] = s.useState(!1), [I, O] = s.useState(!1), [$, fe] = s.useState(!1), [ce, L] = s.useState(null), [J, ne] = s.useState(!1), [se, de] = s.useState(!1), [ee, P] = s.useState(!1), te = w?.journeyStage ?? null, me = w?.journeyStage === "routed" ? w : void 0, _e = me?.offers.some((k) => k.gates.some((_) => _.type === "access_code")) ?? !1, Re = w?.journeyStage === "routed" ? _e || J : w?.journeyStage === "routing" && J, ue = St(p), q = ue?.phase ?? me?.sequence.phase ?? null, Ne = ce, xe = Ne ? ra(Ne, C) : null, st = p?.experience?.experience?.theme, We = o ?? st, lt = i ?? o?.variant ?? st?.variant, ye = X(() => p ? xa(p) : [], [p]);
|
|
4334
4331
|
s.useEffect(() => {
|
|
4335
4332
|
p && d && d(p);
|
|
4336
4333
|
}, [p, d]), s.useEffect(() => {
|
|
4337
|
-
|
|
4338
|
-
}, [
|
|
4334
|
+
Ne && m && m(Ne);
|
|
4335
|
+
}, [Ne, m]);
|
|
4339
4336
|
const F = B(
|
|
4340
4337
|
(k) => {
|
|
4341
|
-
const _ = mt(k)
|
|
4342
|
-
if (
|
|
4343
|
-
|
|
4338
|
+
const _ = mt(k);
|
|
4339
|
+
if (_.quietable) {
|
|
4340
|
+
L(null), m?.(_);
|
|
4341
|
+
return;
|
|
4342
|
+
}
|
|
4343
|
+
const { disposition: R } = vr(_.code, _.status, _.action), ke = c?.view$.get();
|
|
4344
|
+
if (R === "RESTART" && (ke?.journeyStage === "gated" || ke?.journeyStage === "routed")) {
|
|
4345
|
+
m?.(_), ke.reroute().catch((he) => L(mt(he)));
|
|
4344
4346
|
return;
|
|
4345
4347
|
}
|
|
4346
4348
|
L(_);
|
|
4347
4349
|
},
|
|
4348
|
-
[
|
|
4349
|
-
),
|
|
4350
|
+
[c, m]
|
|
4351
|
+
), ze = B(
|
|
4350
4352
|
(k) => {
|
|
4351
4353
|
const _ = mt(k), R = ra(_, C);
|
|
4352
4354
|
throw R.disposition === "INLINE" || R.disposition === "STEP_RESET" ? m?.(_) : F(_), new Error(R.description);
|
|
@@ -4361,34 +4363,34 @@ function ko({
|
|
|
4361
4363
|
D !== Fe.current && (Fe.current = D, F(D));
|
|
4362
4364
|
}, [D, F]);
|
|
4363
4365
|
const Le = B(async () => {
|
|
4364
|
-
|
|
4366
|
+
y(!0), L(null);
|
|
4365
4367
|
try {
|
|
4366
4368
|
await V();
|
|
4367
4369
|
} catch {
|
|
4368
4370
|
} finally {
|
|
4369
|
-
|
|
4371
|
+
y(!1);
|
|
4370
4372
|
}
|
|
4371
4373
|
}, [V]), [Ae, He] = s.useState(null), ct = B(
|
|
4372
4374
|
async (k, _) => {
|
|
4373
4375
|
L(null);
|
|
4374
4376
|
try {
|
|
4375
|
-
_ === "email" ? await
|
|
4377
|
+
_ === "email" ? await h.auth.requestOtp({ email: k }) : await h.auth.requestOtp({ phone: k }), He({ value: k, type: _ });
|
|
4376
4378
|
} catch (R) {
|
|
4377
|
-
|
|
4379
|
+
ze(R);
|
|
4378
4380
|
}
|
|
4379
4381
|
},
|
|
4380
|
-
[
|
|
4382
|
+
[ze, h]
|
|
4381
4383
|
), dt = B(
|
|
4382
4384
|
async (k) => {
|
|
4383
|
-
if (!
|
|
4385
|
+
if (!c || !Ae) return;
|
|
4384
4386
|
L(null);
|
|
4385
4387
|
try {
|
|
4386
|
-
Ae.type === "email" ? await
|
|
4388
|
+
Ae.type === "email" ? await h.auth.verifyOtp({ email: Ae.value, code: k }) : await h.auth.verifyOtp({ phone: Ae.value, code: k });
|
|
4387
4389
|
} catch (R) {
|
|
4388
|
-
|
|
4390
|
+
ze(R);
|
|
4389
4391
|
}
|
|
4390
4392
|
He(null);
|
|
4391
|
-
const _ =
|
|
4393
|
+
const _ = c.view$.get();
|
|
4392
4394
|
if (_.journeyStage === "gated")
|
|
4393
4395
|
try {
|
|
4394
4396
|
await _.reroute();
|
|
@@ -4396,26 +4398,26 @@ function ko({
|
|
|
4396
4398
|
F(R);
|
|
4397
4399
|
}
|
|
4398
4400
|
},
|
|
4399
|
-
[
|
|
4401
|
+
[ze, F, h, c, Ae]
|
|
4400
4402
|
), Ke = B(
|
|
4401
4403
|
async (k) => {
|
|
4402
|
-
if (
|
|
4404
|
+
if (c) {
|
|
4403
4405
|
L(null);
|
|
4404
4406
|
try {
|
|
4405
|
-
const _ =
|
|
4407
|
+
const _ = c.view$.get();
|
|
4406
4408
|
_.journeyStage === "gated" && await _.reroute({ accessCode: k });
|
|
4407
4409
|
} catch (_) {
|
|
4408
4410
|
F(_);
|
|
4409
4411
|
}
|
|
4410
4412
|
}
|
|
4411
4413
|
},
|
|
4412
|
-
[F,
|
|
4413
|
-
),
|
|
4414
|
+
[F, c]
|
|
4415
|
+
), U = B(
|
|
4414
4416
|
async (k) => {
|
|
4415
|
-
if (
|
|
4417
|
+
if (c) {
|
|
4416
4418
|
P(!0), de(!1);
|
|
4417
4419
|
try {
|
|
4418
|
-
const _ =
|
|
4420
|
+
const _ = c.view$.get();
|
|
4419
4421
|
if (_.journeyStage !== "routed") return;
|
|
4420
4422
|
switch ((await _.submitAccessCode(k)).outcome) {
|
|
4421
4423
|
case "advanced":
|
|
@@ -4435,36 +4437,36 @@ function ko({
|
|
|
4435
4437
|
}
|
|
4436
4438
|
}
|
|
4437
4439
|
},
|
|
4438
|
-
[F,
|
|
4440
|
+
[F, c]
|
|
4439
4441
|
), Se = B(async () => {
|
|
4440
|
-
if (
|
|
4442
|
+
if (c) {
|
|
4441
4443
|
S(!0), L(null);
|
|
4442
4444
|
try {
|
|
4443
|
-
const k =
|
|
4444
|
-
k.journeyStage === "routed" && k.sequence.phase === "scheduled" && await k.
|
|
4445
|
+
const k = c.view$.get();
|
|
4446
|
+
k.journeyStage === "routed" && k.sequence.phase === "scheduled" && await k.waitlist?.join();
|
|
4445
4447
|
} catch (k) {
|
|
4446
4448
|
F(k);
|
|
4447
4449
|
} finally {
|
|
4448
4450
|
S(!1);
|
|
4449
4451
|
}
|
|
4450
4452
|
}
|
|
4451
|
-
}, [F,
|
|
4452
|
-
if (
|
|
4453
|
+
}, [F, c]), Pe = B(async () => {
|
|
4454
|
+
if (c) {
|
|
4453
4455
|
A(!0), L(null);
|
|
4454
4456
|
try {
|
|
4455
|
-
const k =
|
|
4456
|
-
k.journeyStage === "routed" && k.sequence.phase === "scheduled" && await k.
|
|
4457
|
+
const k = c.view$.get();
|
|
4458
|
+
k.journeyStage === "routed" && k.sequence.phase === "scheduled" && await k.waitlist?.leave();
|
|
4457
4459
|
} catch (k) {
|
|
4458
4460
|
F(k);
|
|
4459
4461
|
} finally {
|
|
4460
4462
|
A(!1);
|
|
4461
4463
|
}
|
|
4462
4464
|
}
|
|
4463
|
-
}, [F,
|
|
4464
|
-
if (!
|
|
4465
|
-
const k =
|
|
4465
|
+
}, [F, c]), Ze = B(async () => {
|
|
4466
|
+
if (!c) return;
|
|
4467
|
+
const k = c.view$.get();
|
|
4466
4468
|
k.journeyStage === "routed" && k.sequence.phase === "enterable" && "enter" in k.sequence && await k.sequence.enter();
|
|
4467
|
-
}, [
|
|
4469
|
+
}, [c]), De = B(async () => {
|
|
4468
4470
|
O(!0), L(null);
|
|
4469
4471
|
try {
|
|
4470
4472
|
await Ze();
|
|
@@ -4474,10 +4476,10 @@ function ko({
|
|
|
4474
4476
|
O(!1);
|
|
4475
4477
|
}
|
|
4476
4478
|
}, [Ze, F]), Ve = B(async () => {
|
|
4477
|
-
if (
|
|
4479
|
+
if (c) {
|
|
4478
4480
|
fe(!0), L(null);
|
|
4479
4481
|
try {
|
|
4480
|
-
const k =
|
|
4482
|
+
const k = c.view$.get();
|
|
4481
4483
|
k.journeyStage === "routed" && k.sequence.phase === "participating" && "leave" in k.sequence && await k.sequence.leave();
|
|
4482
4484
|
} catch (k) {
|
|
4483
4485
|
F(k);
|
|
@@ -4485,35 +4487,35 @@ function ko({
|
|
|
4485
4487
|
fe(!1);
|
|
4486
4488
|
}
|
|
4487
4489
|
}
|
|
4488
|
-
}, [F,
|
|
4489
|
-
if (
|
|
4490
|
+
}, [F, c]), er = B(async () => {
|
|
4491
|
+
if (c) {
|
|
4490
4492
|
L(null);
|
|
4491
4493
|
try {
|
|
4492
|
-
const k =
|
|
4494
|
+
const k = c.view$.get();
|
|
4493
4495
|
k.journeyStage === "routed" && k.sequence.phase === "participating" && "complete" in k.sequence && await k.sequence.complete();
|
|
4494
4496
|
} catch (k) {
|
|
4495
4497
|
F(k);
|
|
4496
4498
|
}
|
|
4497
4499
|
}
|
|
4498
|
-
}, [F,
|
|
4500
|
+
}, [F, c]), $t = B(
|
|
4499
4501
|
async (k) => {
|
|
4500
|
-
if (
|
|
4502
|
+
if (c) {
|
|
4501
4503
|
L(null);
|
|
4502
4504
|
try {
|
|
4503
|
-
const _ =
|
|
4504
|
-
_.journeyStage === "routed" &&
|
|
4505
|
+
const _ = c.view$.get();
|
|
4506
|
+
_.journeyStage === "routed" && mo(_.sequence) && await _.sequence.bid(k);
|
|
4505
4507
|
} catch (_) {
|
|
4506
4508
|
F(_);
|
|
4507
4509
|
}
|
|
4508
4510
|
}
|
|
4509
4511
|
},
|
|
4510
|
-
[F,
|
|
4511
|
-
), [tr, qt] = s.useState(!1), [ar,
|
|
4512
|
+
[F, c]
|
|
4513
|
+
), [tr, qt] = s.useState(!1), [ar, Ut] = s.useState(!1), [rr, Wt] = s.useState(!1), Ht = B(
|
|
4512
4514
|
async (k, _) => {
|
|
4513
|
-
if (
|
|
4515
|
+
if (c) {
|
|
4514
4516
|
L(null), qt(!0);
|
|
4515
4517
|
try {
|
|
4516
|
-
const R =
|
|
4518
|
+
const R = c.view$.get();
|
|
4517
4519
|
R.journeyStage === "routed" && R.sequence.phase === "enterable" && "book" in R.sequence && await R.sequence.book(k, _);
|
|
4518
4520
|
} catch (R) {
|
|
4519
4521
|
F(R);
|
|
@@ -4522,77 +4524,77 @@ function ko({
|
|
|
4522
4524
|
}
|
|
4523
4525
|
}
|
|
4524
4526
|
},
|
|
4525
|
-
[F,
|
|
4527
|
+
[F, c]
|
|
4526
4528
|
), Kt = B(
|
|
4527
4529
|
async (k) => {
|
|
4528
|
-
if (
|
|
4529
|
-
L(null),
|
|
4530
|
+
if (c) {
|
|
4531
|
+
L(null), Ut(!0);
|
|
4530
4532
|
try {
|
|
4531
|
-
const _ =
|
|
4533
|
+
const _ = c.view$.get();
|
|
4532
4534
|
_.journeyStage === "routed" && _.sequence.phase === "participating" && "cancel" in _.sequence && await _.sequence.cancel(k);
|
|
4533
4535
|
} catch (_) {
|
|
4534
4536
|
F(_);
|
|
4535
4537
|
} finally {
|
|
4536
|
-
|
|
4538
|
+
Ut(!1);
|
|
4537
4539
|
}
|
|
4538
4540
|
}
|
|
4539
4541
|
},
|
|
4540
|
-
[F,
|
|
4542
|
+
[F, c]
|
|
4541
4543
|
), Zt = B(
|
|
4542
4544
|
async (k, _) => {
|
|
4543
|
-
if (
|
|
4544
|
-
L(null),
|
|
4545
|
+
if (c) {
|
|
4546
|
+
L(null), Wt(!0);
|
|
4545
4547
|
try {
|
|
4546
|
-
const R =
|
|
4548
|
+
const R = c.view$.get();
|
|
4547
4549
|
R.journeyStage === "routed" && R.sequence.phase === "participating" && "reschedule" in R.sequence && await R.sequence.reschedule(k, _);
|
|
4548
4550
|
} catch (R) {
|
|
4549
4551
|
F(R);
|
|
4550
4552
|
} finally {
|
|
4551
|
-
|
|
4553
|
+
Wt(!1);
|
|
4552
4554
|
}
|
|
4553
4555
|
}
|
|
4554
4556
|
},
|
|
4555
|
-
[F,
|
|
4557
|
+
[F, c]
|
|
4556
4558
|
), Ye = B(async () => {
|
|
4557
4559
|
await Le();
|
|
4558
4560
|
}, [Le]), Yt = B(
|
|
4559
4561
|
async (k) => {
|
|
4560
|
-
if (
|
|
4562
|
+
if (c) {
|
|
4561
4563
|
L(null);
|
|
4562
4564
|
try {
|
|
4563
|
-
const _ =
|
|
4564
|
-
_?.type === "bot_check" && _.challenge && await
|
|
4565
|
-
const R =
|
|
4565
|
+
const _ = ye.find((ke) => ke.type === "bot_check");
|
|
4566
|
+
_?.type === "bot_check" && _.challenge && await h.challenges.verify({ challengeId: _.challenge.id, token: k });
|
|
4567
|
+
const R = c.view$.get();
|
|
4566
4568
|
R.journeyStage === "gated" && await R.reroute();
|
|
4567
4569
|
} catch (_) {
|
|
4568
4570
|
F(_);
|
|
4569
4571
|
}
|
|
4570
4572
|
}
|
|
4571
4573
|
},
|
|
4572
|
-
[F,
|
|
4574
|
+
[F, h, c, ye]
|
|
4573
4575
|
), Gt = B(() => {
|
|
4574
|
-
if (!
|
|
4576
|
+
if (!c) return;
|
|
4575
4577
|
L(null);
|
|
4576
|
-
const k =
|
|
4578
|
+
const k = c.view$.get();
|
|
4577
4579
|
k.journeyStage === "gated" && k.retry().catch(F);
|
|
4578
|
-
}, [F,
|
|
4580
|
+
}, [F, c]), z = X(() => w?.journeyStage === "routed" && "sequence" in w ? w.sequence : void 0, [w]), Ge = X(() => z?.phase === "scheduled" && w?.journeyStage === "routed" ? w.waitlist : void 0, [z, w]), Ce = bo(p, z), oe = xo(p), nr = yo(p), Jt = ko(nr, oe?.id), Ie = ue && "grant" in ue && ue.grant ? ue.grant : void 0, Je = ue && "outcome" in ue && ue.outcome ? ue.outcome : void 0;
|
|
4579
4581
|
s.useEffect(() => {
|
|
4580
|
-
Ie?.token &&
|
|
4581
|
-
}, [Ie?.token,
|
|
4582
|
+
Ie?.token && b && b(Ie.token);
|
|
4583
|
+
}, [Ie?.token, b]);
|
|
4582
4584
|
const or = X(() => Ee(Ce) ? Ce : Ee(oe?.type) ? oe.type : null, [oe?.type, Ce]), Ct = X(() => Ee(Ce) ? Ce : null, [Ce]), Qt = X(() => Ee(Ce) ? Ce : Ee(oe?.type) ? oe.type : null, [oe?.type, Ce]), Xt = X(() => Ge?.status === "not_waitlisted" && typeof Ge.join == "function", [Ge]), Qe = X(() => {
|
|
4583
|
-
if (
|
|
4584
|
-
if (
|
|
4585
|
-
const k =
|
|
4585
|
+
if (te === "routing") return "loading";
|
|
4586
|
+
if (te === "gated" && ye.length > 0) {
|
|
4587
|
+
const k = ye[0];
|
|
4586
4588
|
if (k.type === "authentication") return "auth";
|
|
4587
4589
|
if (k.type === "access_code") return "access_code";
|
|
4588
4590
|
}
|
|
4589
4591
|
return "none";
|
|
4590
|
-
}, [
|
|
4591
|
-
if (
|
|
4592
|
-
}, [
|
|
4593
|
-
if (!(!
|
|
4592
|
+
}, [te, ye]), ut = X(() => {
|
|
4593
|
+
if (te === "routing") return x("loading.findingPlace");
|
|
4594
|
+
}, [te, x]), Be = X(() => {
|
|
4595
|
+
if (!(!c || q !== "participating" || !z || z.phase !== "participating" || !("display$" in z)))
|
|
4594
4596
|
return z.display$;
|
|
4595
|
-
}, [
|
|
4597
|
+
}, [c, q, z]), pt = je(Be ?? go), fr = p?.degraded === !0 && te === "routed" && !xe, ea = X(() => {
|
|
4596
4598
|
const k = oe?.details?.type === "auction" ? oe.details : void 0, _ = z?.phase === "participating" && z.mechanism === "auction" ? z.consumer : void 0, R = pt;
|
|
4597
4599
|
if (!(!k && !_ && !R))
|
|
4598
4600
|
return {
|
|
@@ -4605,23 +4607,23 @@ function ko({
|
|
|
4605
4607
|
minNextBid: R?.minNextBid ?? k?.minNextBid,
|
|
4606
4608
|
bidIncrement: R?.bidIncrement ?? k?.bidIncrement
|
|
4607
4609
|
};
|
|
4608
|
-
}, [pt, z, oe?.details]), Oe = X(() => z?.phase === "scheduled" && z.startsAt ? new Date(z.startsAt) : oe?.opensAt ? new Date(oe.opensAt) : void 0, [z, oe?.opensAt]),
|
|
4610
|
+
}, [pt, z, oe?.details]), Oe = X(() => z?.phase === "scheduled" && z.startsAt ? new Date(z.startsAt) : oe?.opensAt ? new Date(oe.opensAt) : void 0, [z, oe?.opensAt]), ir = X(() => {
|
|
4609
4611
|
if (!(q !== "participating" || Ct !== "queue"))
|
|
4610
4612
|
return pt?.position;
|
|
4611
4613
|
}, [pt, Ct, q]);
|
|
4612
|
-
if (
|
|
4613
|
-
return /* @__PURE__ */ t(Rt, { theme:
|
|
4614
|
-
journey:
|
|
4615
|
-
view:
|
|
4614
|
+
if (l)
|
|
4615
|
+
return /* @__PURE__ */ t(Rt, { theme: We, variant: lt, children: /* @__PURE__ */ t("div", { className: E("fanfare-experience-widget", v), "data-slot": "experience-widget", children: l({
|
|
4616
|
+
journey: c,
|
|
4617
|
+
view: w,
|
|
4616
4618
|
snapshot: p,
|
|
4617
|
-
error:
|
|
4619
|
+
error: xe?.description ?? null,
|
|
4618
4620
|
start: Le,
|
|
4619
4621
|
isStarting: T
|
|
4620
4622
|
}) }) });
|
|
4621
|
-
const le = { snapshot: p, view:
|
|
4622
|
-
if (
|
|
4623
|
-
return f?.error ? f.error({ ...le, error:
|
|
4624
|
-
if (
|
|
4623
|
+
const le = { snapshot: p, view: w, error: xe?.description ?? null }, sr = () => {
|
|
4624
|
+
if (xe)
|
|
4625
|
+
return f?.error ? f.error({ ...le, error: xe.description, onRetry: Ye }) : /* @__PURE__ */ t(et, { error: xe.description, title: xe.title, onRetry: Ye });
|
|
4626
|
+
if (te === "ready")
|
|
4625
4627
|
return f?.start ? f.start({ ...le, onStart: Le, isStarting: T }) : /* @__PURE__ */ t(Ja, { onStart: Le, isLoading: T });
|
|
4626
4628
|
if (Qe !== "none")
|
|
4627
4629
|
return Qe === "auth" && f?.auth ? f.auth({
|
|
@@ -4641,8 +4643,8 @@ function ko({
|
|
|
4641
4643
|
onAccessCodeSubmit: Ke
|
|
4642
4644
|
}
|
|
4643
4645
|
);
|
|
4644
|
-
if (
|
|
4645
|
-
const k =
|
|
4646
|
+
if (te === "gated" && ye[0]?.type === "bot_check") {
|
|
4647
|
+
const k = ye[0], _ = k.challenge ?? null, R = k.mitigation;
|
|
4646
4648
|
return f?.challenge ? f.challenge({
|
|
4647
4649
|
...le,
|
|
4648
4650
|
challenge: _,
|
|
@@ -4650,7 +4652,7 @@ function ko({
|
|
|
4650
4652
|
onVerifyToken: Yt,
|
|
4651
4653
|
onRetry: Gt
|
|
4652
4654
|
}) : /* @__PURE__ */ t(
|
|
4653
|
-
|
|
4655
|
+
za,
|
|
4654
4656
|
{
|
|
4655
4657
|
challenge: _,
|
|
4656
4658
|
botMitigation: R,
|
|
@@ -4660,12 +4662,12 @@ function ko({
|
|
|
4660
4662
|
}
|
|
4661
4663
|
);
|
|
4662
4664
|
}
|
|
4663
|
-
if (
|
|
4665
|
+
if (te === "routed") {
|
|
4664
4666
|
if (q === "unavailable")
|
|
4665
4667
|
return f?.ended ? f.ended({
|
|
4666
4668
|
...le,
|
|
4667
4669
|
reason: z?.phase === "unavailable" ? z.reason ?? "unavailable" : "unavailable"
|
|
4668
|
-
}) : /* @__PURE__ */ t(Fa, { title:
|
|
4670
|
+
}) : /* @__PURE__ */ t(Fa, { title: x("widget.noSequence.title"), message: x("widget.noSequence.message") });
|
|
4669
4671
|
if (q === "scheduled")
|
|
4670
4672
|
return Ge && Ge.status !== "not_waitlisted" ? f?.waitlist ? f.waitlist({
|
|
4671
4673
|
...le,
|
|
@@ -4688,19 +4690,19 @@ function ko({
|
|
|
4688
4690
|
}
|
|
4689
4691
|
);
|
|
4690
4692
|
if (q === "enterable" || q === "participating") {
|
|
4691
|
-
const k = q === "enterable" ? or : Ct, _ = q === "participating" ? Jt : oe?.id, R = z?.phase === "enterable" && "enter" in z && typeof z.enter == "function",
|
|
4692
|
-
if (q === "enterable" && f?.enterable &&
|
|
4693
|
+
const k = q === "enterable" ? or : Ct, _ = q === "participating" ? Jt : oe?.id, R = z?.phase === "enterable" && "enter" in z && typeof z.enter == "function", ke = z?.phase === "participating" && "leave" in z;
|
|
4694
|
+
if (q === "enterable" && f?.enterable && ho(z))
|
|
4693
4695
|
return f.enterable({
|
|
4694
4696
|
...le,
|
|
4695
4697
|
sequence: z,
|
|
4696
4698
|
participationType: z.mechanism
|
|
4697
4699
|
});
|
|
4698
|
-
if (q === "participating" && f?.participating &&
|
|
4700
|
+
if (q === "participating" && f?.participating && wo(z))
|
|
4699
4701
|
return f.participating({
|
|
4700
4702
|
...le,
|
|
4701
4703
|
sequence: z,
|
|
4702
4704
|
participationType: z.mechanism,
|
|
4703
|
-
position:
|
|
4705
|
+
position: ir
|
|
4704
4706
|
});
|
|
4705
4707
|
const he = oe?.details;
|
|
4706
4708
|
if (_)
|
|
@@ -4713,7 +4715,7 @@ function ko({
|
|
|
4713
4715
|
display$: Be,
|
|
4714
4716
|
sequencePhase: q,
|
|
4715
4717
|
canEnter: R,
|
|
4716
|
-
canLeave:
|
|
4718
|
+
canLeave: ke,
|
|
4717
4719
|
onEnter: De,
|
|
4718
4720
|
onLeave: Ve,
|
|
4719
4721
|
isEntering: I,
|
|
@@ -4730,7 +4732,7 @@ function ko({
|
|
|
4730
4732
|
display$: Be,
|
|
4731
4733
|
sequencePhase: q,
|
|
4732
4734
|
canEnter: R,
|
|
4733
|
-
canLeave:
|
|
4735
|
+
canLeave: ke,
|
|
4734
4736
|
onEnter: De,
|
|
4735
4737
|
onLeave: Ve,
|
|
4736
4738
|
isEntering: I,
|
|
@@ -4748,7 +4750,7 @@ function ko({
|
|
|
4748
4750
|
fallbackState: ea,
|
|
4749
4751
|
sequencePhase: q,
|
|
4750
4752
|
canEnter: R,
|
|
4751
|
-
canLeave:
|
|
4753
|
+
canLeave: ke,
|
|
4752
4754
|
onEnter: De,
|
|
4753
4755
|
onLeave: Ve,
|
|
4754
4756
|
onBid: $t,
|
|
@@ -4768,7 +4770,7 @@ function ko({
|
|
|
4768
4770
|
display$: Be,
|
|
4769
4771
|
sequencePhase: q,
|
|
4770
4772
|
canEnter: R,
|
|
4771
|
-
canLeave:
|
|
4773
|
+
canLeave: ke,
|
|
4772
4774
|
onEnter: De,
|
|
4773
4775
|
onLeave: Ve,
|
|
4774
4776
|
onComplete: er,
|
|
@@ -4803,7 +4805,7 @@ function ko({
|
|
|
4803
4805
|
);
|
|
4804
4806
|
}
|
|
4805
4807
|
}
|
|
4806
|
-
return /* @__PURE__ */ t(et, { error:
|
|
4808
|
+
return /* @__PURE__ */ t(et, { error: x("widget.unsupportedDistribution"), onRetry: Ye });
|
|
4807
4809
|
}
|
|
4808
4810
|
if (q === "settling") {
|
|
4809
4811
|
if (z?.phase !== "settling")
|
|
@@ -4852,7 +4854,7 @@ function ko({
|
|
|
4852
4854
|
}
|
|
4853
4855
|
if (q === "granted") {
|
|
4854
4856
|
const k = Ie?.expiresAt ? new Date(Ie.expiresAt).getTime() : void 0;
|
|
4855
|
-
if (f?.granted &&
|
|
4857
|
+
if (f?.granted && vo(z))
|
|
4856
4858
|
return f.granted({
|
|
4857
4859
|
...le,
|
|
4858
4860
|
sequence: z,
|
|
@@ -4881,7 +4883,7 @@ function ko({
|
|
|
4881
4883
|
case "timed_release":
|
|
4882
4884
|
return /* @__PURE__ */ t(vt, { ..._ });
|
|
4883
4885
|
}
|
|
4884
|
-
return /* @__PURE__ */ t(et, { error:
|
|
4886
|
+
return /* @__PURE__ */ t(et, { error: x("widget.unsupportedDistribution"), onRetry: Ye });
|
|
4885
4887
|
}
|
|
4886
4888
|
if (q === "ended") {
|
|
4887
4889
|
const k = Je?.type ?? (z?.phase === "ended" ? z.outcome.reason : void 0) ?? "unknown";
|
|
@@ -4934,13 +4936,22 @@ function ko({
|
|
|
4934
4936
|
}
|
|
4935
4937
|
);
|
|
4936
4938
|
}
|
|
4937
|
-
return /* @__PURE__ */ t(et, { error:
|
|
4939
|
+
return /* @__PURE__ */ t(et, { error: x("widget.unsupportedDistribution"), onRetry: Ye });
|
|
4938
4940
|
}
|
|
4939
4941
|
}
|
|
4940
4942
|
return f?.loading ? f.loading({ ...le, message: ut }) : /* @__PURE__ */ t(It, { message: ut });
|
|
4941
|
-
},
|
|
4942
|
-
return /* @__PURE__ */ t(Rt, { theme:
|
|
4943
|
-
/* @__PURE__ */ t(rt, { transitionKey:
|
|
4943
|
+
}, lr = `${te ?? "loading"}-${q ?? "unavailable"}`;
|
|
4944
|
+
return /* @__PURE__ */ t(Rt, { theme: We, variant: lt, children: /* @__PURE__ */ u("div", { className: E("fanfare-experience-widget", v), "data-slot": "experience-widget", children: [
|
|
4945
|
+
/* @__PURE__ */ t(rt, { transitionKey: lr, children: sr() }),
|
|
4946
|
+
fr ? /* @__PURE__ */ t(
|
|
4947
|
+
"div",
|
|
4948
|
+
{
|
|
4949
|
+
className: "fanfare-degraded-indicator ff:mt-3 ff:text-center ff:text-xs ff:text-muted",
|
|
4950
|
+
"data-slot": "degraded-indicator",
|
|
4951
|
+
role: "status",
|
|
4952
|
+
children: x("status.liveUpdatesPaused")
|
|
4953
|
+
}
|
|
4954
|
+
) : null,
|
|
4944
4955
|
Re ? /* @__PURE__ */ t(
|
|
4945
4956
|
Xa,
|
|
4946
4957
|
{
|
|
@@ -4953,14 +4964,14 @@ function ko({
|
|
|
4953
4964
|
onClose: () => {
|
|
4954
4965
|
de(!1), ne(!1);
|
|
4955
4966
|
},
|
|
4956
|
-
onSubmit:
|
|
4967
|
+
onSubmit: U
|
|
4957
4968
|
}
|
|
4958
4969
|
) : null
|
|
4959
4970
|
] }) });
|
|
4960
4971
|
}
|
|
4961
|
-
|
|
4962
|
-
const _o = '@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-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\\.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-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\\: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}}}';
|
|
4963
|
-
function
|
|
4972
|
+
_o.displayName = "ExperienceWidget";
|
|
4973
|
+
const No = '@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-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\\.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-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\\: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}}', So = '@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}}}';
|
|
4974
|
+
function Co({
|
|
4964
4975
|
children: e,
|
|
4965
4976
|
theme: a,
|
|
4966
4977
|
variant: r,
|
|
@@ -4969,61 +4980,61 @@ function So({
|
|
|
4969
4980
|
className: i,
|
|
4970
4981
|
style: f
|
|
4971
4982
|
}) {
|
|
4972
|
-
const
|
|
4973
|
-
|
|
4974
|
-
if (
|
|
4975
|
-
const m =
|
|
4983
|
+
const l = bt(null), [g, d] = ve(null);
|
|
4984
|
+
ur(() => {
|
|
4985
|
+
if (l.current && !l.current.shadowRoot) {
|
|
4986
|
+
const m = l.current.attachShadow({ mode: "open" });
|
|
4976
4987
|
d(m);
|
|
4977
4988
|
}
|
|
4978
4989
|
}, []);
|
|
4979
|
-
const
|
|
4980
|
-
return /* @__PURE__ */ t("div", { ref:
|
|
4990
|
+
const b = X(() => a ? Da(a) : {}, [a]);
|
|
4991
|
+
return /* @__PURE__ */ t("div", { ref: l, className: i, style: f, children: g && Mr(
|
|
4981
4992
|
/* @__PURE__ */ u(Me, { children: [
|
|
4982
4993
|
/* @__PURE__ */ u("style", { "data-fanfare-styles": !0, children: [
|
|
4983
|
-
|
|
4984
|
-
|
|
4994
|
+
No,
|
|
4995
|
+
So
|
|
4985
4996
|
] }),
|
|
4986
|
-
/* @__PURE__ */ t(Na, { locale: n, translations: o, children: /* @__PURE__ */ t(Rt, { 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:
|
|
4997
|
+
/* @__PURE__ */ t(Na, { locale: n, translations: o, children: /* @__PURE__ */ t(Rt, { 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: b, children: e }) }) })
|
|
4987
4998
|
] }),
|
|
4988
4999
|
g
|
|
4989
5000
|
) });
|
|
4990
5001
|
}
|
|
4991
|
-
|
|
5002
|
+
Co.displayName = "ShadowDOMPreview";
|
|
4992
5003
|
export {
|
|
4993
|
-
|
|
5004
|
+
ja as AccessCodeForm,
|
|
4994
5005
|
tt as AuctionModule,
|
|
4995
5006
|
Aa as AuthForm,
|
|
4996
5007
|
Ea as AuthInput,
|
|
4997
5008
|
j as Button,
|
|
4998
5009
|
Ta as Card,
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
5010
|
+
un as CardContent,
|
|
5011
|
+
dn as CardDescription,
|
|
5012
|
+
pn as CardFooter,
|
|
5013
|
+
ln as CardHeader,
|
|
5014
|
+
cn as CardTitle,
|
|
5015
|
+
za as ChallengeGate,
|
|
5005
5016
|
at as DrawModule,
|
|
5006
5017
|
Fa as EndedModule,
|
|
5007
5018
|
et as ErrorView,
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5019
|
+
Ar as ExperienceJourneyController,
|
|
5020
|
+
Ho as ExperienceJourneySkeleton,
|
|
5021
|
+
_o as ExperienceWidget,
|
|
5011
5022
|
ya as FanfareContext,
|
|
5012
|
-
|
|
5023
|
+
qo as FanfareProvider,
|
|
5013
5024
|
it as GrantedPanel,
|
|
5014
5025
|
Na as I18nProvider,
|
|
5015
5026
|
ie as InfoPanel,
|
|
5016
5027
|
yt as Input,
|
|
5017
5028
|
It as LoadingView,
|
|
5018
5029
|
Ma as OTPInput,
|
|
5019
|
-
|
|
5030
|
+
Ue as OutcomePanel,
|
|
5020
5031
|
Z as PanelBody,
|
|
5021
5032
|
H as PanelFooter,
|
|
5022
5033
|
G as PanelHeading,
|
|
5023
5034
|
Y as PanelLayout,
|
|
5024
5035
|
wt as QueueModule,
|
|
5025
|
-
|
|
5026
|
-
|
|
5036
|
+
Yo as RTL_LOCALES,
|
|
5037
|
+
Co as ShadowDOMPreview,
|
|
5027
5038
|
Ja as StartView,
|
|
5028
5039
|
re as THEME_CSS_VARS,
|
|
5029
5040
|
Rt as ThemeProvider,
|
|
@@ -5031,13 +5042,13 @@ export {
|
|
|
5031
5042
|
Ga as UpcomingModule,
|
|
5032
5043
|
Qa as WaitlistView,
|
|
5033
5044
|
Da as buildThemeCssVars,
|
|
5034
|
-
|
|
5035
|
-
|
|
5045
|
+
rn as buttonVariants,
|
|
5046
|
+
Go as isRTLLocale,
|
|
5036
5047
|
da as normalizeOutcomeReason,
|
|
5037
5048
|
Sa as useExperienceJourney,
|
|
5038
5049
|
Nt as useFanfare,
|
|
5039
|
-
|
|
5050
|
+
Uo as useFanfareAuth,
|
|
5040
5051
|
Wo as useJourneySnapshot,
|
|
5041
|
-
|
|
5052
|
+
je as useNanostore,
|
|
5042
5053
|
K as useTranslations
|
|
5043
5054
|
};
|