@fanfare-io/fanfare-sdk-react 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,45 +1,45 @@
1
1
  "use client";
2
2
  import { jsx as t, Fragment as Ce, jsxs as c } from "react/jsx-runtime";
3
- import Ua from "@fanfare-io/fanfare-sdk-core";
3
+ import Ka from "@fanfare-io/fanfare-sdk-core";
4
4
  import * as s from "react";
5
- import { createContext as Lt, useContext as At, useMemo as re, useState as _e, useRef as gt, useEffect as Ie, useCallback as O, useSyncExternalStore as Ha, forwardRef as wt, useLayoutEffect as Ka } from "react";
6
- import { getLocaleMessages as Za, mergeTranslations as Kt, createTranslateFunction as fa, isRTLLocale as Ga, en as Ya, resolveLocaleMapValue as Ja, normalizeLocale as Qa } from "@fanfare-io/fanfare-sdk-i18n";
7
- import { RTL_LOCALES as Do, isRTLLocale as Vo } from "@fanfare-io/fanfare-sdk-i18n";
8
- import { getGates as ia, getParticipation as Xa, getDistribution as er, getSequenceId as tr, getSequencePhase as ar } from "@fanfare-io/fanfare-sdk-core/internals";
5
+ import { createContext as Lt, useContext as At, useMemo as re, useState as _e, useRef as gt, useEffect as Ie, useCallback as O, useSyncExternalStore as Za, forwardRef as wt, useLayoutEffect as Ya } from "react";
6
+ import { getLocaleMessages as Ga, mergeTranslations as Kt, createTranslateFunction as sa, isRTLLocale as Ja, en as Qa, resolveLocaleMapValue as Xa, normalizeLocale as er } from "@fanfare-io/fanfare-sdk-i18n";
7
+ import { RTL_LOCALES as Mo, isRTLLocale as To } from "@fanfare-io/fanfare-sdk-i18n";
8
+ import { getGates as la, getParticipation as tr, getDistribution as ar, getSequenceId as rr, getSequencePhase as nr } from "@fanfare-io/fanfare-sdk-core/internals";
9
9
  import * as dt from "valibot";
10
- import { clsx as rr } from "clsx";
11
- import { extendTailwindMerge as nr } from "tailwind-merge";
10
+ import { clsx as or } from "clsx";
11
+ import { extendTailwindMerge as fr } from "tailwind-merge";
12
12
  import { cva as ne } from "class-variance-authority";
13
13
  import { AnimatePresence as vt, motion as W } from "motion/react";
14
- import { mergeBrandTheme as or, DefaultBrandTheme as fr } from "@fanfare-io/fanfare-sdk-core/theme";
15
- import ir from "canvas-confetti";
14
+ import { mergeBrandTheme as ir, DefaultBrandTheme as sr } from "@fanfare-io/fanfare-sdk-core/theme";
15
+ import lr from "canvas-confetti";
16
16
  import { atom as ze } from "nanostores";
17
- import { bucketFromEtaSeconds as sr, bucketI18nKey as lr } from "@fanfare-io/fanfare-sdk-core/queues";
18
- import { createPortal as cr } from "react-dom";
19
- const sa = Lt(null), la = Ya, dr = fa(la, "en"), ur = {
17
+ import { bucketFromEtaSeconds as cr, bucketI18nKey as dr } from "@fanfare-io/fanfare-sdk-core/queues";
18
+ import { createPortal as ur } from "react-dom";
19
+ const ca = Lt(null), da = Qa, pr = sa(da, "en"), gr = {
20
20
  locale: "en",
21
- messages: la,
21
+ messages: da,
22
22
  isRoot: !0,
23
- t: dr,
23
+ t: pr,
24
24
  dir: "ltr",
25
25
  experienceTranslations: null,
26
26
  setExperienceTranslations: () => {
27
27
  }
28
- }, ca = Lt(ur);
28
+ }, ua = Lt(gr);
29
29
  function It() {
30
- return At(ca);
30
+ return At(ua);
31
31
  }
32
- function G() {
32
+ function Y() {
33
33
  const { t: e, locale: a, dir: r } = It();
34
34
  return { t: e, locale: a, dir: r };
35
35
  }
36
- function pr(e, a, r, n) {
36
+ function mr(e, a, r, n) {
37
37
  const o = It();
38
38
  return re(() => {
39
- const i = e ?? o.locale, f = e && e !== o.locale ? Za(e) : o.messages, l = Kt(
39
+ const i = e ?? o.locale, f = e && e !== o.locale ? Ga(e) : o.messages, l = Kt(
40
40
  f,
41
41
  r ?? o.experienceTranslations ?? void 0
42
- ), d = Kt(l, a), u = fa(d, i), y = Ga(i) ? "rtl" : "ltr";
42
+ ), d = Kt(l, a), u = sa(d, i), y = Ja(i) ? "rtl" : "ltr";
43
43
  return {
44
44
  locale: i,
45
45
  messages: d,
@@ -51,11 +51,21 @@ function pr(e, a, r, n) {
51
51
  };
52
52
  }, [o, e, a, r, n]);
53
53
  }
54
- function da({ locale: e, translations: a, children: r }) {
55
- const [n, o] = _e(null), i = pr(e, a, n, o);
56
- return /* @__PURE__ */ t(ca.Provider, { value: i, children: r });
54
+ function pa({ locale: e, translations: a, children: r }) {
55
+ const [n, o] = _e(null), i = mr(e, a, n, o);
56
+ return /* @__PURE__ */ t(ua.Provider, { value: i, children: r });
57
57
  }
58
- function yo({
58
+ let Zt = Promise.resolve();
59
+ function Yt(e) {
60
+ const a = Zt.then(e, e);
61
+ return Zt = a.then(
62
+ () => {
63
+ },
64
+ () => {
65
+ }
66
+ ), a;
67
+ }
68
+ function No({
59
69
  children: e,
60
70
  autoRestore: a = !0,
61
71
  autoResume: r = !0,
@@ -74,7 +84,7 @@ function yo({
74
84
  features: h,
75
85
  beacon: w
76
86
  }) {
77
- const [p, v] = _e(null), [E, M] = _e(!0), _ = gt(null), S = re(
87
+ const [p, v] = _e(null), [M, E] = _e(!0), _ = gt(null), S = re(
78
88
  () => ({
79
89
  organizationId: f,
80
90
  publishableKey: l,
@@ -91,36 +101,37 @@ function yo({
91
101
  [f, l, d, u, y, g, b, m, x, h, w]
92
102
  );
93
103
  return Ie(() => {
94
- let V = !0;
95
- v(null), M(!0);
104
+ let D = !0;
105
+ v(null), E(!0);
96
106
  async function N() {
97
- try {
98
- const T = await Ua(S);
99
- if (!V) {
100
- T.destroy();
101
- return;
107
+ if (D)
108
+ try {
109
+ const T = await Ka(S);
110
+ if (!D) {
111
+ await T.destroy();
112
+ return;
113
+ }
114
+ _.current = T, a && T.auth.getSession() && r && await T.journeys.resumeAll(), D && (v(T), E(!1));
115
+ } catch (T) {
116
+ console.error("Failed to initialize Fanfare SDK:", T), D && E(!1);
102
117
  }
103
- _.current = T, a && T.auth.getSession() && r && await T.journeys.resumeAll(), V && (v(T), M(!1));
104
- } catch (T) {
105
- console.error("Failed to initialize Fanfare SDK:", T), V && M(!1);
106
- }
107
118
  }
108
- return N(), () => {
109
- V = !1;
119
+ return Yt(N), () => {
120
+ D = !1;
110
121
  const T = _.current;
111
- _.current = null, T?.destroy();
122
+ _.current = null, T && Yt(() => T.destroy());
112
123
  };
113
- }, [S, a, r]), E ? /* @__PURE__ */ t(Ce, { children: n }) : p ? /* @__PURE__ */ t(sa.Provider, { value: p, children: /* @__PURE__ */ t(da, { locale: o, translations: i, children: e }) }) : (console.error("Fanfare SDK failed to initialize"), null);
124
+ }, [S, a, r]), M ? /* @__PURE__ */ t(Ce, { children: n }) : p ? /* @__PURE__ */ t(ca.Provider, { value: p, children: /* @__PURE__ */ t(pa, { locale: o, translations: i, children: e }) }) : (console.error("Fanfare SDK failed to initialize"), null);
114
125
  }
115
126
  function bt() {
116
- const e = At(sa);
127
+ const e = At(ca);
117
128
  if (!e)
118
129
  throw new Error(
119
130
  "useFanfare must be used within a FanfareProvider. Make sure your component is wrapped with <FanfareProvider>"
120
131
  );
121
132
  return e;
122
133
  }
123
- function ko() {
134
+ function So() {
124
135
  const e = bt(), [a, r] = _e(e.auth.check());
125
136
  Ie(() => {
126
137
  const l = e.on("auth:authenticated", () => {
@@ -152,7 +163,7 @@ function ko() {
152
163
  logout: f
153
164
  };
154
165
  }
155
- function ua(e, a) {
166
+ function ga(e, a) {
156
167
  const r = bt(), { locale: n, setExperienceTranslations: o } = It(), i = gt(null), f = gt(a), [l, d] = _e(null), [u, y] = _e(null), [g, b] = _e(null), [m, x] = _e(null);
157
168
  Ie(() => {
158
169
  f.current = a;
@@ -163,10 +174,10 @@ function ua(e, a) {
163
174
  }
164
175
  const w = r.journeys.get(e);
165
176
  i.current = w, d(w), y(w.snapshot$.get()), b(w.view$.get());
166
- const p = w.snapshot$.listen((E) => {
167
- y(E);
168
- }), v = w.view$.listen((E) => {
169
- b(E);
177
+ const p = w.snapshot$.listen((M) => {
178
+ y(M);
179
+ }), v = w.view$.listen((M) => {
180
+ b(M);
170
181
  });
171
182
  return () => {
172
183
  p(), v();
@@ -179,7 +190,7 @@ function ua(e, a) {
179
190
  let w = !1;
180
191
  const p = u?.experience?.experience?.i18n;
181
192
  if (p) {
182
- const v = Ja(p, n);
193
+ const v = Xa(p, n);
183
194
  o(v ?? null);
184
195
  } else w || o(null);
185
196
  return () => {
@@ -192,23 +203,23 @@ function ua(e, a) {
192
203
  throw new Error("experienceId is required to start an experience journey");
193
204
  const p = i.current ?? r.journeys.get(e);
194
205
  i.current = p, d(p), x(null);
195
- const v = f.current, E = {
206
+ const v = f.current, M = {
196
207
  accessCode: w?.accessCode ?? v?.accessCode,
197
208
  autoEnterWaitlist: w?.autoEnterWaitlist ?? v?.autoEnterWaitlist
198
209
  };
199
210
  try {
200
- const M = p.view$.get();
201
- if (M.journeyStage === "ready") {
202
- const _ = E.accessCode ? { accessCode: E.accessCode } : void 0;
203
- await M.start(_);
211
+ const E = p.view$.get();
212
+ if (E.journeyStage === "ready") {
213
+ const _ = M.accessCode ? { accessCode: M.accessCode } : void 0;
214
+ await E.start(_);
204
215
  }
205
- if (E.autoEnterWaitlist) {
216
+ if (M.autoEnterWaitlist) {
206
217
  const _ = p.view$.get();
207
218
  _.journeyStage === "routed" && _.sequence.phase === "enterable" && _.sequence.mechanism === "waitlist" && await _.sequence.enter();
208
219
  }
209
220
  return p.view$.get();
210
- } catch (M) {
211
- throw x(M instanceof Error ? M.message : "Unknown error"), M;
221
+ } catch (E) {
222
+ throw x(E instanceof Error ? E.message : "Unknown error"), E;
212
223
  }
213
224
  },
214
225
  [e, r]
@@ -223,21 +234,21 @@ function ua(e, a) {
223
234
  start: h
224
235
  };
225
236
  }
226
- function Me(e) {
237
+ function Ee(e) {
227
238
  const a = O((n) => e.listen(n), [e]), r = O(() => e.get(), [e]);
228
- return Ha(a, r, r);
239
+ return Za(a, r, r);
229
240
  }
230
- function _o(e) {
231
- return Me(e.snapshot$);
241
+ function Co(e) {
242
+ return Ee(e.snapshot$);
232
243
  }
233
- function gr({ experienceId: e, autoStart: a, children: r }) {
234
- const n = ua(e, {
244
+ function hr({ experienceId: e, autoStart: a, children: r }) {
245
+ const n = ga(e, {
235
246
  autoStart: a
236
247
  });
237
248
  return /* @__PURE__ */ t(Ce, { children: r(n) });
238
249
  }
239
- function No({ experienceId: e, autoStart: a, renderHeader: r }) {
240
- return /* @__PURE__ */ t(gr, { experienceId: e, autoStart: a, children: ({ journey: n, view: o, snapshot: i, error: f, start: l }) => {
250
+ function Do({ experienceId: e, autoStart: a, renderHeader: r }) {
251
+ return /* @__PURE__ */ t(hr, { experienceId: e, autoStart: a, children: ({ journey: n, view: o, snapshot: i, error: f, start: l }) => {
241
252
  const d = [], u = [];
242
253
  if (o?.journeyStage === "ready" && d.push("start"), o?.journeyStage === "gated" && d.push("reroute", "retry"), o?.journeyStage === "routed") {
243
254
  d.push("reroute", "retry");
@@ -247,10 +258,10 @@ function No({ experienceId: e, autoStart: a, renderHeader: r }) {
247
258
  const y = i ? {
248
259
  experienceId: i.experienceId,
249
260
  accessCode: i.accessCode,
250
- sequenceId: tr(i),
251
- distribution: er(i),
252
- participation: Xa(i),
253
- gates: ia(i)
261
+ sequenceId: rr(i),
262
+ distribution: ar(i),
263
+ participation: tr(i),
264
+ gates: la(i)
254
265
  } : null, g = (b) => {
255
266
  if (!n) return;
256
267
  const m = n.view$.get(), x = {};
@@ -324,7 +335,7 @@ function No({ experienceId: e, autoStart: a, renderHeader: r }) {
324
335
  ] }),
325
336
  /* @__PURE__ */ c("div", { children: [
326
337
  "Sequence phase: ",
327
- ar(i)
338
+ nr(i)
328
339
  ] }),
329
340
  /* @__PURE__ */ c("div", { children: [
330
341
  "Journey actions: ",
@@ -387,59 +398,59 @@ function _t(e) {
387
398
  const r = a.replace(/\D/g, "").slice(0, 10);
388
399
  return r.length === 0 ? "" : r.length <= 3 ? `(${r}` : r.length <= 6 ? `(${r.slice(0, 3)}) ${r.slice(3)}` : `(${r.slice(0, 3)}) ${r.slice(3, 6)}-${r.slice(6, 10)}`;
389
400
  }
390
- function mr(e) {
401
+ function wr(e) {
391
402
  if (!e) return null;
392
403
  const a = zt(e), r = a.replace(/\D/g, "");
393
404
  return a.startsWith("+") ? r.length < 10 || r.length > 15 ? null : `+${r}` : r.length === 10 ? `+1${r}` : null;
394
405
  }
395
- function hr(e) {
406
+ function vr(e) {
396
407
  const a = e.replace(/\D/g, "");
397
408
  return e.startsWith("+") ? a.length >= 10 && a.length <= 15 : a.length === 10;
398
409
  }
399
- const wr = nr({
410
+ const br = fr({
400
411
  extend: {
401
412
  classGroups: {
402
413
  "font-size": ["text-xxs"]
403
414
  }
404
415
  }
405
416
  });
406
- function D(...e) {
407
- return wr(rr(e));
417
+ function V(...e) {
418
+ return br(or(e));
408
419
  }
409
- function Zt(e, a) {
420
+ function Gt(e, a) {
410
421
  if (typeof e == "function")
411
422
  return e(a);
412
423
  e != null && (e.current = a);
413
424
  }
414
- function vr(...e) {
425
+ function xr(...e) {
415
426
  return (a) => {
416
427
  let r = !1;
417
428
  const n = e.map((o) => {
418
- const i = Zt(o, a);
429
+ const i = Gt(o, a);
419
430
  return !r && typeof i == "function" && (r = !0), i;
420
431
  });
421
432
  if (r)
422
433
  return () => {
423
434
  for (let o = 0; o < n.length; o++) {
424
435
  const i = n[o];
425
- typeof i == "function" ? i() : Zt(e[o], null);
436
+ typeof i == "function" ? i() : Gt(e[o], null);
426
437
  }
427
438
  };
428
439
  };
429
440
  }
430
- var br = /* @__PURE__ */ Symbol.for("react.lazy"), mt = s[" use ".trim().toString()];
431
- function xr(e) {
441
+ var yr = /* @__PURE__ */ Symbol.for("react.lazy"), mt = s[" use ".trim().toString()];
442
+ function kr(e) {
432
443
  return typeof e == "object" && e !== null && "then" in e;
433
444
  }
434
- function pa(e) {
435
- return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof === br && "_payload" in e && xr(e._payload);
445
+ function ma(e) {
446
+ return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof === yr && "_payload" in e && kr(e._payload);
436
447
  }
437
448
  // @__NO_SIDE_EFFECTS__
438
- function yr(e) {
439
- const a = /* @__PURE__ */ _r(e), r = s.forwardRef((n, o) => {
449
+ function _r(e) {
450
+ const a = /* @__PURE__ */ Sr(e), r = s.forwardRef((n, o) => {
440
451
  let { children: i, ...f } = n;
441
- pa(i) && typeof mt == "function" && (i = mt(i._payload));
442
- const l = s.Children.toArray(i), d = l.find(Sr);
452
+ ma(i) && typeof mt == "function" && (i = mt(i._payload));
453
+ const l = s.Children.toArray(i), d = l.find(Dr);
443
454
  if (d) {
444
455
  const u = d.props.children, y = l.map((g) => g === d ? s.Children.count(u) > 1 ? s.Children.only(null) : s.isValidElement(u) ? u.props.children : null : g);
445
456
  return /* @__PURE__ */ t(a, { ...f, ref: o, children: s.isValidElement(u) ? s.cloneElement(u, void 0, y) : null });
@@ -448,24 +459,24 @@ function yr(e) {
448
459
  });
449
460
  return r.displayName = `${e}.Slot`, r;
450
461
  }
451
- var kr = /* @__PURE__ */ yr("Slot");
462
+ var Nr = /* @__PURE__ */ _r("Slot");
452
463
  // @__NO_SIDE_EFFECTS__
453
- function _r(e) {
464
+ function Sr(e) {
454
465
  const a = s.forwardRef((r, n) => {
455
466
  let { children: o, ...i } = r;
456
- if (pa(o) && typeof mt == "function" && (o = mt(o._payload)), s.isValidElement(o)) {
457
- const f = Dr(o), l = Cr(i, o.props);
458
- return o.type !== s.Fragment && (l.ref = n ? vr(n, f) : f), s.cloneElement(o, l);
467
+ if (ma(o) && typeof mt == "function" && (o = mt(o._payload)), s.isValidElement(o)) {
468
+ const f = Er(o), l = Vr(i, o.props);
469
+ return o.type !== s.Fragment && (l.ref = n ? xr(n, f) : f), s.cloneElement(o, l);
459
470
  }
460
471
  return s.Children.count(o) > 1 ? s.Children.only(null) : null;
461
472
  });
462
473
  return a.displayName = `${e}.SlotClone`, a;
463
474
  }
464
- var Nr = /* @__PURE__ */ Symbol("radix.slottable");
465
- function Sr(e) {
466
- return s.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === Nr;
475
+ var Cr = /* @__PURE__ */ Symbol("radix.slottable");
476
+ function Dr(e) {
477
+ return s.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === Cr;
467
478
  }
468
- function Cr(e, a) {
479
+ function Vr(e, a) {
469
480
  const r = { ...a };
470
481
  for (const n in a) {
471
482
  const o = e[n], i = a[n];
@@ -476,24 +487,24 @@ function Cr(e, a) {
476
487
  }
477
488
  return { ...e, ...r };
478
489
  }
479
- function Dr(e) {
490
+ function Er(e) {
480
491
  let a = Object.getOwnPropertyDescriptor(e.props, "ref")?.get, r = a && "isReactWarning" in a && a.isReactWarning;
481
492
  return r ? e.ref : (a = Object.getOwnPropertyDescriptor(e, "ref")?.get, r = a && "isReactWarning" in a && a.isReactWarning, r ? e.props.ref : e.props.ref || e.ref);
482
493
  }
483
- const Qe = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches, Gt = {
494
+ const Qe = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches, Jt = {
484
495
  initial: { opacity: 0 },
485
496
  animate: { opacity: 1 },
486
497
  exit: { opacity: 0 },
487
498
  transition: { duration: 0.2 }
488
- }, Vr = {
499
+ }, Mr = {
489
500
  initial: { opacity: 0 },
490
501
  animate: { opacity: 1 },
491
502
  transition: { duration: 0.25, ease: "easeOut" }
492
- }, Mr = {
503
+ }, Tr = {
493
504
  initial: { opacity: 1 },
494
505
  animate: { opacity: 1 },
495
506
  transition: { duration: 0 }
496
- }, he = () => Qe() ? Mr : Vr, oe = {
507
+ }, he = () => Qe() ? Tr : Mr, oe = {
497
508
  // Core colors
498
509
  primary: "--ff-color-primary",
499
510
  primaryForeground: "--ff-color-primary-foreground",
@@ -515,18 +526,18 @@ const Qe = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-
515
526
  // Typography
516
527
  fontFamily: "--ff-font-sans",
517
528
  fontHeading: "--ff-font-heading"
518
- }, Er = {
519
- theme: fr,
529
+ }, Rr = {
530
+ theme: sr,
520
531
  variant: "default",
521
532
  isRoot: !0
522
- }, Dt = Lt(Er);
533
+ }, Dt = Lt(Rr);
523
534
  function Xe() {
524
535
  return At(Dt);
525
536
  }
526
- function Tr(e, a) {
537
+ function Lr(e, a) {
527
538
  const r = Xe();
528
539
  return re(() => ({
529
- theme: e ? or({ ...r.theme, ...e }) : r.theme,
540
+ theme: e ? ir({ ...r.theme, ...e }) : r.theme,
530
541
  variant: a ?? r.variant,
531
542
  isRoot: !1
532
543
  }), [r, e, a]);
@@ -539,7 +550,7 @@ function He(e) {
539
550
  const n = parseInt(r.slice(0, 2), 16) / 255, o = parseInt(r.slice(2, 4), 16) / 255, i = parseInt(r.slice(4, 6), 16) / 255;
540
551
  return 0.2126 * n + 0.7152 * o + 0.0722 * i > 0.5 ? "#111111" : "#ffffff";
541
552
  }
542
- function ga(e) {
553
+ function ha(e) {
543
554
  const a = {};
544
555
  if (e.primary !== void 0) {
545
556
  a[oe.primary] = e.primary;
@@ -569,11 +580,11 @@ function ga(e) {
569
580
  return e.fontFamily !== void 0 && (a[oe.fontFamily] = e.fontFamily, e.fontHeading === void 0 && (a[oe.fontHeading] = e.fontFamily)), e.fontHeading !== void 0 && (a[oe.fontHeading] = e.fontHeading), a;
570
581
  }
571
582
  function Vt({ theme: e, variant: a, as: r = "div", className: n, children: o }) {
572
- const i = Xe(), f = Tr(e, a), l = re(() => ga(e ?? {}), [e]);
583
+ const i = Xe(), f = Lr(e, a), l = re(() => ha(e ?? {}), [e]);
573
584
  return e !== void 0 || a !== void 0 || i.isRoot ? /* @__PURE__ */ t(Dt.Provider, { value: f, children: /* @__PURE__ */ t(
574
585
  r,
575
586
  {
576
- className: D("fanfare-themed", n),
587
+ className: V("fanfare-themed", n),
577
588
  style: l,
578
589
  "data-fanfare-themed": !0,
579
590
  "data-fanfare-variant": f.variant,
@@ -584,7 +595,7 @@ function Vt({ theme: e, variant: a, as: r = "div", className: n, children: o })
584
595
  function me() {
585
596
  return Xe().variant;
586
597
  }
587
- const Rr = (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" }) }), Lr = wt(Rr), Ar = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M6 18L18 6M6 6l12 12" }) }), Ir = wt(Ar), zr = ne("ff:animate-spin ff:text-current", {
598
+ const Ar = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "m4.5 12.75l6 6l9-13.5" }) }), Ir = wt(Ar), zr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M6 18L18 6M6 6l12 12" }) }), Fr = wt(zr), jr = ne("ff:animate-spin ff:text-current", {
588
599
  variants: {
589
600
  size: {
590
601
  sm: "ff:size-4",
@@ -610,7 +621,7 @@ const Rr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.
610
621
  ref: n,
611
622
  viewBox: "0 0 24 24",
612
623
  xmlns: "http://www.w3.org/2000/svg",
613
- className: D(zr({ size: a, styleVariant: o }), e),
624
+ className: V(jr({ size: a, styleVariant: o }), e),
614
625
  "data-slot": "spinner",
615
626
  "data-size": a,
616
627
  "aria-hidden": "true",
@@ -651,7 +662,7 @@ const Rr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.
651
662
  );
652
663
  });
653
664
  De.displayName = "Spinner";
654
- const Fr = ne(
665
+ const Pr = ne(
655
666
  [
656
667
  "ff:relative ff:inline-flex ff:items-center ff:justify-center",
657
668
  "ff:whitespace-nowrap ff:font-medium",
@@ -786,7 +797,7 @@ const Fr = ne(
786
797
  children: d,
787
798
  ...u
788
799
  }, y) => {
789
- const g = o ? kr : "button", b = me(), [m, x] = s.useState(void 0);
800
+ const g = o ? Nr : "button", b = me(), [m, x] = s.useState(void 0);
790
801
  s.useImperativeHandle(i, () => ({
791
802
  success: () => x("success"),
792
803
  failure: () => x("failure")
@@ -808,7 +819,7 @@ const Fr = ne(
808
819
  "data-status": m || void 0,
809
820
  "aria-busy": n || void 0,
810
821
  "aria-disabled": h || void 0,
811
- className: D(Fr({ variant: a, size: r, styleVariant: b, className: e })),
822
+ className: V(Pr({ variant: a, size: r, styleVariant: b, className: e })),
812
823
  disabled: h,
813
824
  ...u,
814
825
  children: [
@@ -818,14 +829,14 @@ const Fr = ne(
818
829
  {
819
830
  "data-slot": "button-status",
820
831
  className: "ff:pointer-events-none ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center",
821
- children: /* @__PURE__ */ t(vt, { children: m === "success" ? /* @__PURE__ */ t(W.span, { ...Gt, className: "ff:flex", children: /* @__PURE__ */ t(Lr, { className: "ff:size-5" }) }, "success") : /* @__PURE__ */ t(W.span, { ...Gt, className: "ff:flex", children: /* @__PURE__ */ t(Ir, { className: "ff:size-5" }) }, "failure") })
832
+ children: /* @__PURE__ */ t(vt, { children: m === "success" ? /* @__PURE__ */ t(W.span, { ...Jt, className: "ff:flex", children: /* @__PURE__ */ t(Ir, { className: "ff:size-5" }) }, "success") : /* @__PURE__ */ t(W.span, { ...Jt, className: "ff:flex", children: /* @__PURE__ */ t(Fr, { className: "ff:size-5" }) }, "failure") })
822
833
  }
823
834
  ),
824
835
  /* @__PURE__ */ t(
825
836
  "span",
826
837
  {
827
838
  "data-slot": "button-content",
828
- className: D(
839
+ className: V(
829
840
  "ff:gap-inherit ff:flex ff:items-center",
830
841
  (n || m) && "ff:opacity-0",
831
842
  f
@@ -839,7 +850,7 @@ const Fr = ne(
839
850
  }
840
851
  );
841
852
  F.displayName = "Button";
842
- const Yt = ["default", "rounded"], jr = ne(
853
+ const Qt = ["default", "rounded"], Br = ne(
843
854
  [
844
855
  "ff:flex ff:w-full ff:rounded-md ff:px-3 ff:py-2",
845
856
  "ff:text-foreground ff:text-sm",
@@ -889,7 +900,7 @@ const Yt = ["default", "rounded"], jr = ne(
889
900
  styleVariant: "default"
890
901
  }
891
902
  }
892
- ), Jt = ne([], {
903
+ ), Xt = ne([], {
893
904
  variants: {
894
905
  styleVariant: {
895
906
  default: "",
@@ -903,8 +914,8 @@ const Yt = ["default", "rounded"], jr = ne(
903
914
  }
904
915
  }), ht = s.forwardRef(
905
916
  ({ className: e, type: a = "text", label: r, error: n, hasError: o, inlineLabel: i, inlineError: f, ...l }, d) => {
906
- const { variant: u } = Xe(), y = me(), g = l.id || l.name, b = i ?? Yt.includes(u), m = f ?? Yt.includes(u), x = o || !!n, h = !!n && !o, w = b && r, p = !b && r, v = m && h, E = !m && h, M = D(
907
- jr({ styleVariant: y }),
917
+ const { variant: u } = Xe(), y = me(), g = l.id || l.name, b = i ?? Qt.includes(u), m = f ?? Qt.includes(u), x = o || !!n, h = !!n && !o, w = b && r, p = !b && r, v = m && h, M = !m && h, E = V(
918
+ Br({ styleVariant: y }),
908
919
  x && "ff:border-danger ff:focus:border-danger ff:focus:ring-danger",
909
920
  // Extra padding for floating label
910
921
  w && "ff:pt-5 ff:pb-1",
@@ -928,8 +939,8 @@ const Yt = ["default", "rounded"], jr = ne(
928
939
  "aria-invalid": x,
929
940
  "aria-describedby": h ? `${g}-error` : void 0,
930
941
  placeholder: l.placeholder || " ",
931
- className: D(
932
- M,
942
+ className: V(
943
+ E,
933
944
  // Placeholder shown state for label positioning
934
945
  "ff:peer ff:placeholder:opacity-0 ff:placeholder:transition-opacity ff:placeholder:duration-200",
935
946
  "ff:focus:placeholder:opacity-100"
@@ -942,7 +953,7 @@ const Yt = ["default", "rounded"], jr = ne(
942
953
  {
943
954
  htmlFor: g,
944
955
  "data-slot": "input-label",
945
- className: D(
956
+ className: V(
946
957
  "ff:absolute ff:left-3 ff:top-3 ff:z-10 ff:origin-top-left ff:select-none",
947
958
  "ff:text-sm ff:font-medium ff:transition-all ff:duration-150 ff:ease-out",
948
959
  "ff:pointer-events-none",
@@ -957,7 +968,7 @@ const Yt = ["default", "rounded"], jr = ne(
957
968
  // Error state
958
969
  x && "ff:text-danger ff:peer-focus:text-danger",
959
970
  // Style variant
960
- Jt({ styleVariant: y })
971
+ Xt({ styleVariant: y })
961
972
  ),
962
973
  children: r
963
974
  }
@@ -972,7 +983,7 @@ const Yt = ["default", "rounded"], jr = ne(
972
983
  children: n
973
984
  }
974
985
  ),
975
- E && /* @__PURE__ */ t(
986
+ M && /* @__PURE__ */ t(
976
987
  "p",
977
988
  {
978
989
  id: `${g}-error`,
@@ -990,9 +1001,9 @@ const Yt = ["default", "rounded"], jr = ne(
990
1001
  {
991
1002
  htmlFor: g,
992
1003
  "data-slot": "input-label",
993
- className: D(
1004
+ className: V(
994
1005
  "ff:text-foreground ff:mb-1.5 ff:block ff:text-sm ff:font-medium",
995
- Jt({ styleVariant: y })
1006
+ Xt({ styleVariant: y })
996
1007
  ),
997
1008
  children: r
998
1009
  }
@@ -1007,7 +1018,7 @@ const Yt = ["default", "rounded"], jr = ne(
1007
1018
  "data-slot": "input-field",
1008
1019
  "aria-invalid": x,
1009
1020
  "aria-describedby": h ? `${g}-error` : void 0,
1010
- className: M,
1021
+ className: E,
1011
1022
  ...l
1012
1023
  }
1013
1024
  ),
@@ -1022,18 +1033,18 @@ const Yt = ["default", "rounded"], jr = ne(
1022
1033
  }
1023
1034
  )
1024
1035
  ] }),
1025
- E && /* @__PURE__ */ t("p", { id: `${g}-error`, "data-slot": "input-error", className: "ff:text-danger ff:mt-1 ff:text-xs", role: "alert", children: n })
1036
+ M && /* @__PURE__ */ t("p", { id: `${g}-error`, "data-slot": "input-error", className: "ff:text-danger ff:mt-1 ff:text-xs", role: "alert", children: n })
1026
1037
  ] });
1027
1038
  }
1028
1039
  );
1029
1040
  ht.displayName = "Input";
1030
- const Pr = dt.pipe(dt.string(), dt.email());
1031
- function ma(e) {
1041
+ const $r = dt.pipe(dt.string(), dt.email());
1042
+ function wa(e) {
1032
1043
  if (!e) return "email";
1033
1044
  const r = zt(e).replace(/\D/g, "");
1034
1045
  return e.startsWith("+") || r.length > 0 && r.length === e.replace(/[^\d\s()-]/g, "").length ? "phone" : (e.includes("@") || /^[a-zA-Z]/.test(e), "email");
1035
1046
  }
1036
- const ha = s.forwardRef(
1047
+ const va = s.forwardRef(
1037
1048
  ({
1038
1049
  className: e,
1039
1050
  value: a,
@@ -1047,21 +1058,21 @@ const ha = s.forwardRef(
1047
1058
  disabled: u,
1048
1059
  ...y
1049
1060
  }, g) => {
1050
- const { t: b } = G(), [m, x] = s.useState(() => i === "auto" ? ma(a) : i), [h, w] = s.useState(!1), [p, v] = s.useState(null), [E, M] = s.useState(!1), [_, S] = s.useState(
1061
+ const { t: b } = Y(), [m, x] = s.useState(() => i === "auto" ? wa(a) : i), [h, w] = s.useState(!1), [p, v] = s.useState(null), [M, E] = s.useState(!1), [_, S] = s.useState(
1051
1062
  () => m === "phone" ? _t(a) : a
1052
- ), V = i === "auto";
1063
+ ), D = i === "auto";
1053
1064
  s.useEffect(() => {
1054
- V || x(i);
1055
- }, [i, V]), s.useEffect(() => {
1065
+ D || x(i);
1066
+ }, [i, D]), s.useEffect(() => {
1056
1067
  S(m === "phone" ? _t(a) : a);
1057
1068
  }, [a, m]);
1058
1069
  const N = s.useCallback(
1059
1070
  (R, te) => {
1060
1071
  if (!R) {
1061
- v(null), M(!1), n?.(!1);
1072
+ v(null), E(!1), n?.(!1);
1062
1073
  return;
1063
1074
  }
1064
- te === "email" ? dt.safeParse(Pr, R).success ? (v(null), M(!0), n?.(!0)) : (v(b("auth.invalidEmail")), M(!1), n?.(!1)) : hr(R) ? (v(null), M(!0), n?.(!0)) : (v(b("auth.invalidPhone")), M(!1), n?.(!1));
1075
+ te === "email" ? dt.safeParse($r, R).success ? (v(null), E(!0), n?.(!0)) : (v(b("auth.invalidEmail")), E(!1), n?.(!1)) : vr(R) ? (v(null), E(!0), n?.(!0)) : (v(b("auth.invalidPhone")), E(!1), n?.(!1));
1065
1076
  },
1066
1077
  [n]
1067
1078
  );
@@ -1073,7 +1084,7 @@ const ha = s.forwardRef(
1073
1084
  if (m === "phone") {
1074
1085
  const H = _t(te);
1075
1086
  S(H);
1076
- const j = mr(te);
1087
+ const j = wr(te);
1077
1088
  r(j || te, m);
1078
1089
  } else
1079
1090
  S(te), r(te, m);
@@ -1083,8 +1094,8 @@ const ha = s.forwardRef(
1083
1094
  R.key === "Enter" && o && (R.preventDefault(), o()), y.onKeyDown?.(R);
1084
1095
  }, P = () => {
1085
1096
  const R = m === "email" ? "phone" : "email";
1086
- x(R), S(""), v(null), w(!1), M(!1), r("", R), n?.(!1);
1087
- }, X = f || (h && !E ? p : null), ce = y.placeholder || b(m === "email" ? "auth.emailPlaceholder" : "auth.phonePlaceholder"), B = V && /* @__PURE__ */ t(
1097
+ x(R), S(""), v(null), w(!1), E(!1), r("", R), n?.(!1);
1098
+ }, X = f || (h && !M ? p : null), ce = y.placeholder || b(m === "email" ? "auth.emailPlaceholder" : "auth.phonePlaceholder"), B = D && /* @__PURE__ */ t(
1088
1099
  F,
1089
1100
  {
1090
1101
  type: "button",
@@ -1096,13 +1107,13 @@ const ha = s.forwardRef(
1096
1107
  children: b(m === "email" ? "auth.usePhone" : "auth.useEmail")
1097
1108
  }
1098
1109
  );
1099
- return V ? /* @__PURE__ */ c(
1110
+ return D ? /* @__PURE__ */ c(
1100
1111
  "div",
1101
1112
  {
1102
- className: D("fanfare-auth-input", e),
1113
+ className: V("fanfare-auth-input", e),
1103
1114
  "data-slot": "auth-input",
1104
1115
  "data-mode": m,
1105
- "data-valid": E || void 0,
1116
+ "data-valid": M || void 0,
1106
1117
  children: [
1107
1118
  /* @__PURE__ */ c("div", { "data-slot": "auth-input-header", className: "ff:mb-1.5 ff:flex ff:items-center ff:justify-between", children: [
1108
1119
  d && /* @__PURE__ */ t("label", { "data-slot": "auth-input-label", className: "ff:text-foreground ff:block ff:text-sm ff:font-medium", children: d }),
@@ -1147,17 +1158,17 @@ const ha = s.forwardRef(
1147
1158
  label: d,
1148
1159
  error: X || void 0,
1149
1160
  hasError: l,
1150
- className: D("fanfare-auth-input", e),
1161
+ className: V("fanfare-auth-input", e),
1151
1162
  "data-slot": "auth-input",
1152
1163
  "data-mode": m,
1153
- "data-valid": E || void 0,
1164
+ "data-valid": M || void 0,
1154
1165
  ...y
1155
1166
  }
1156
1167
  );
1157
1168
  }
1158
1169
  );
1159
- ha.displayName = "AuthInput";
1160
- const Br = ne(
1170
+ va.displayName = "AuthInput";
1171
+ const qr = ne(
1161
1172
  [
1162
1173
  "ff:h-12 ff:w-full ff:min-w-0 ff:text-center ff:text-lg ff:font-semibold",
1163
1174
  "ff:text-foreground",
@@ -1225,7 +1236,7 @@ const Br = ne(
1225
1236
  hasError: !1
1226
1237
  }
1227
1238
  }
1228
- ), wa = s.forwardRef(
1239
+ ), ba = s.forwardRef(
1229
1240
  ({ value: e = "", onChange: a, onComplete: r, length: n = 6, error: o, hasError: i, disabled: f, autoFocus: l, className: d }, u) => {
1230
1241
  const y = me(), g = s.useRef([]), [b, m] = s.useState(() => {
1231
1242
  const _ = e.split("").slice(0, n);
@@ -1238,15 +1249,15 @@ const Br = ne(
1238
1249
  const x = (_) => {
1239
1250
  _ >= 0 && _ < n && g.current[_]?.focus();
1240
1251
  }, h = (_, S) => {
1241
- const V = S.replace(/\D/g, "");
1242
- if (V.length > 1) {
1243
- const $ = V.slice(0, n).split(""), P = [...$, ...Array(n - $.length).fill("")];
1252
+ const D = S.replace(/\D/g, "");
1253
+ if (D.length > 1) {
1254
+ const $ = D.slice(0, n).split(""), P = [...$, ...Array(n - $.length).fill("")];
1244
1255
  m(P);
1245
1256
  const X = P.join("");
1246
1257
  a?.(X), X.length === n ? (r?.(X), x(n - 1)) : x($.length);
1247
1258
  return;
1248
1259
  }
1249
- const N = V.slice(-1), T = [...b];
1260
+ const N = D.slice(-1), T = [...b];
1250
1261
  T[_] = N, m(T);
1251
1262
  const L = T.join("");
1252
1263
  a?.(L), N && _ < n - 1 && x(_ + 1), L.length === n && !L.includes("") && r?.(L);
@@ -1269,21 +1280,21 @@ const Br = ne(
1269
1280
  _.preventDefault();
1270
1281
  const S = _.clipboardData.getData("text").replace(/\D/g, "").slice(0, n);
1271
1282
  if (S) {
1272
- const V = S.split(""), N = [...V, ...Array(n - V.length).fill("")];
1283
+ const D = S.split(""), N = [...D, ...Array(n - D.length).fill("")];
1273
1284
  m(N);
1274
1285
  const T = N.join("");
1275
- a?.(T), T.length === n ? (r?.(T), x(n - 1)) : x(V.length);
1286
+ a?.(T), T.length === n ? (r?.(T), x(n - 1)) : x(D.length);
1276
1287
  }
1277
1288
  }, v = (_) => {
1278
1289
  _.target.select();
1279
- }, E = i || !!o, M = !!o && !i;
1290
+ }, M = i || !!o, E = !!o && !i;
1280
1291
  return /* @__PURE__ */ c(
1281
1292
  "div",
1282
1293
  {
1283
1294
  ref: u,
1284
- className: D("fanfare-otp-input", "ff:space-y-1.5", d),
1295
+ className: V("fanfare-otp-input", "ff:space-y-1.5", d),
1285
1296
  "data-slot": "otp-input",
1286
- "data-error": E || void 0,
1297
+ "data-error": M || void 0,
1287
1298
  children: [
1288
1299
  /* @__PURE__ */ t(
1289
1300
  "div",
@@ -1295,8 +1306,8 @@ const Br = ne(
1295
1306
  children: Array.from({ length: n }).map((_, S) => /* @__PURE__ */ t(
1296
1307
  "input",
1297
1308
  {
1298
- ref: (V) => {
1299
- g.current[S] = V;
1309
+ ref: (D) => {
1310
+ g.current[S] = D;
1300
1311
  },
1301
1312
  type: "text",
1302
1313
  inputMode: "numeric",
@@ -1304,27 +1315,27 @@ const Br = ne(
1304
1315
  maxLength: 1,
1305
1316
  "data-slot": "otp-input-digit",
1306
1317
  value: b[S],
1307
- onChange: (V) => h(S, V.target.value),
1308
- onKeyDown: (V) => w(S, V),
1318
+ onChange: (D) => h(S, D.target.value),
1319
+ onKeyDown: (D) => w(S, D),
1309
1320
  onFocus: v,
1310
1321
  disabled: f,
1311
1322
  autoFocus: l && S === 0,
1312
1323
  "aria-label": `Digit ${S + 1} of ${n}`,
1313
- "aria-invalid": E,
1314
- className: Br({ styleVariant: y, hasError: E })
1324
+ "aria-invalid": M,
1325
+ className: qr({ styleVariant: y, hasError: M })
1315
1326
  },
1316
1327
  S
1317
1328
  ))
1318
1329
  }
1319
1330
  ),
1320
- M && /* @__PURE__ */ t("p", { "data-slot": "otp-input-error", className: "ff:text-danger ff:text-xs", role: "alert", children: o })
1331
+ E && /* @__PURE__ */ t("p", { "data-slot": "otp-input-error", className: "ff:text-danger ff:text-xs", role: "alert", children: o })
1321
1332
  ]
1322
1333
  }
1323
1334
  );
1324
1335
  }
1325
1336
  );
1326
- wa.displayName = "OTPInput";
1327
- const $r = ne(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"], {
1337
+ ba.displayName = "OTPInput";
1338
+ const Or = ne(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"], {
1328
1339
  variants: {
1329
1340
  variant: {
1330
1341
  default: "ff:border ff:border-border",
@@ -1354,7 +1365,7 @@ const $r = ne(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"]
1354
1365
  variant: "default",
1355
1366
  styleVariant: "default"
1356
1367
  }
1357
- }), va = s.forwardRef(({ className: e, variant: a, ...r }, n) => {
1368
+ }), xa = s.forwardRef(({ className: e, variant: a, ...r }, n) => {
1358
1369
  const o = me();
1359
1370
  return /* @__PURE__ */ t(
1360
1371
  "div",
@@ -1362,55 +1373,55 @@ const $r = ne(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"]
1362
1373
  ref: n,
1363
1374
  "data-slot": "card",
1364
1375
  "data-variant": a,
1365
- className: D($r({ variant: a, styleVariant: o, className: e })),
1376
+ className: V(Or({ variant: a, styleVariant: o, className: e })),
1366
1377
  ...r
1367
1378
  }
1368
1379
  );
1369
1380
  });
1370
- va.displayName = "Card";
1371
- const qr = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-header", className: D("fanfare-card-header ff:mb-4", e), ...a }));
1372
- qr.displayName = "CardHeader";
1373
- const Or = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1381
+ xa.displayName = "Card";
1382
+ const Wr = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-header", className: V("fanfare-card-header ff:mb-4", e), ...a }));
1383
+ Wr.displayName = "CardHeader";
1384
+ const Ur = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1374
1385
  "h3",
1375
1386
  {
1376
1387
  ref: r,
1377
1388
  "data-slot": "card-title",
1378
- className: D("ff:text-lg ff:font-heading ff:font-semibold ff:leading-none", "ff:text-foreground", e),
1389
+ className: V("ff:text-lg ff:font-heading ff:font-semibold ff:leading-none", "ff:text-foreground", e),
1379
1390
  ...a
1380
1391
  }
1381
1392
  ));
1382
- Or.displayName = "CardTitle";
1383
- const Wr = s.forwardRef(
1393
+ Ur.displayName = "CardTitle";
1394
+ const Hr = s.forwardRef(
1384
1395
  ({ className: e, ...a }, r) => /* @__PURE__ */ t(
1385
1396
  "p",
1386
1397
  {
1387
1398
  ref: r,
1388
1399
  "data-slot": "card-description",
1389
- className: D("ff:mt-1 ff:text-sm", "ff:text-muted", e),
1400
+ className: V("ff:mt-1 ff:text-sm", "ff:text-muted", e),
1390
1401
  ...a
1391
1402
  }
1392
1403
  )
1393
1404
  );
1394
- Wr.displayName = "CardDescription";
1395
- const Ur = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-content", className: D(e), ...a }));
1396
- Ur.displayName = "CardContent";
1397
- const Hr = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1405
+ Hr.displayName = "CardDescription";
1406
+ const Kr = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-content", className: V(e), ...a }));
1407
+ Kr.displayName = "CardContent";
1408
+ const Zr = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1398
1409
  "div",
1399
1410
  {
1400
1411
  ref: r,
1401
1412
  "data-slot": "card-footer",
1402
- className: D("ff:mt-4 ff:flex ff:items-center ff:gap-2", e),
1413
+ className: V("ff:mt-4 ff:flex ff:items-center ff:gap-2", e),
1403
1414
  ...a
1404
1415
  }
1405
1416
  ));
1406
- Hr.displayName = "CardFooter";
1407
- const ba = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ c(
1417
+ Zr.displayName = "CardFooter";
1418
+ const ya = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ c(
1408
1419
  "svg",
1409
1420
  {
1410
1421
  ref: r,
1411
1422
  xmlns: "http://www.w3.org/2000/svg",
1412
1423
  viewBox: "0 0 5647 2166",
1413
- className: D("ff:h-5 ff:w-auto", e),
1424
+ className: V("ff:h-5 ff:w-auto", e),
1414
1425
  "data-slot": "fanfare-logo",
1415
1426
  ...a,
1416
1427
  children: [
@@ -1534,13 +1545,13 @@ const ba = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ c(
1534
1545
  ]
1535
1546
  }
1536
1547
  ));
1537
- ba.displayName = "FanfareLogo";
1548
+ ya.displayName = "FanfareLogo";
1538
1549
  const K = s.forwardRef(({ className: e, children: a, ...r }, n) => /* @__PURE__ */ t(
1539
1550
  "div",
1540
1551
  {
1541
1552
  ref: n,
1542
1553
  "data-slot": "panel-body",
1543
- className: D("ff:flex ff:flex-1 ff:flex-col ff:gap-5", e),
1554
+ className: V("ff:flex ff:flex-1 ff:flex-col ff:gap-5", e),
1544
1555
  ...r,
1545
1556
  children: a
1546
1557
  }
@@ -1548,13 +1559,13 @@ const K = s.forwardRef(({ className: e, children: a, ...r }, n) => /* @__PURE__
1548
1559
  K.displayName = "PanelBody";
1549
1560
  const U = s.forwardRef(
1550
1561
  ({ className: e, children: a, ...r }, n) => {
1551
- const { t: o } = G(), i = me();
1562
+ const { t: o } = Y(), i = me();
1552
1563
  return /* @__PURE__ */ t(
1553
1564
  "div",
1554
1565
  {
1555
1566
  ref: n,
1556
1567
  "data-slot": "panel-footer",
1557
- className: D(
1568
+ className: V(
1558
1569
  "ff:flex ff:items-center ff:justify-between ff:gap-2 ff:border-t ff:border-border-light ff:px-5 ff:py-2.5 ff:text-xxs ff:text-muted-foreground",
1559
1570
  (i === "clean" || i === "retro") && "ff:font-mono",
1560
1571
  e
@@ -1562,28 +1573,28 @@ const U = s.forwardRef(
1562
1573
  ...r,
1563
1574
  children: a ?? /* @__PURE__ */ c("span", { className: "ff:inline-flex ff:items-center", children: [
1564
1575
  o("common.poweredBy"),
1565
- /* @__PURE__ */ t(ba, { className: "ff:h-4.5 ff:w-auto", "aria-label": "Fanfare" })
1576
+ /* @__PURE__ */ t(ya, { className: "ff:h-4.5 ff:w-auto", "aria-label": "Fanfare" })
1566
1577
  ] })
1567
1578
  }
1568
1579
  );
1569
1580
  }
1570
1581
  );
1571
1582
  U.displayName = "PanelFooter";
1572
- function Mt(e) {
1583
+ function Et(e) {
1573
1584
  if (!s.isValidElement(e)) return !1;
1574
1585
  if (e.type === U) return !0;
1575
1586
  const a = e.props;
1576
- return a["data-slot"] === "panel-footer" ? !0 : e.type === s.Fragment ? s.Children.toArray(a.children).some(Mt) : !1;
1587
+ return a["data-slot"] === "panel-footer" ? !0 : e.type === s.Fragment ? s.Children.toArray(a.children).some(Et) : !1;
1577
1588
  }
1578
1589
  const Z = s.forwardRef(
1579
1590
  ({ className: e, children: a, ...r }, n) => {
1580
- const o = s.Children.toArray(a), i = o.filter(Mt), f = o.filter((l) => !Mt(l));
1591
+ const o = s.Children.toArray(a), i = o.filter(Et), f = o.filter((l) => !Et(l));
1581
1592
  return /* @__PURE__ */ c(
1582
- va,
1593
+ xa,
1583
1594
  {
1584
1595
  ref: n,
1585
1596
  "data-slot": "panel-layout",
1586
- className: D("ff:flex ff:flex-col ff:overflow-hidden ff:p-0 ff:max-h-[24rem]", e),
1597
+ className: V("ff:flex ff:flex-col ff:overflow-hidden ff:p-0 ff:max-h-[24rem]", e),
1587
1598
  ...r,
1588
1599
  children: [
1589
1600
  /* @__PURE__ */ t("div", { className: "ff:flex ff:flex-1 ff:flex-col ff:gap-5 ff:p-5", children: f }),
@@ -1594,7 +1605,7 @@ const Z = s.forwardRef(
1594
1605
  }
1595
1606
  );
1596
1607
  Z.displayName = "PanelLayout";
1597
- const Kr = ["clean"], Zr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:font-medium"], {
1608
+ const Yr = ["clean"], Gr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:font-medium"], {
1598
1609
  variants: {
1599
1610
  variant: {
1600
1611
  default: "",
@@ -1707,16 +1718,16 @@ const Kr = ["clean"], Zr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:
1707
1718
  solid: !0,
1708
1719
  styleVariant: "rounded"
1709
1720
  }
1710
- }), Qt = {
1721
+ }), ea = {
1711
1722
  default: "ff:bg-primary",
1712
1723
  secondary: "ff:bg-foreground/40",
1713
1724
  success: "ff:bg-success",
1714
1725
  warning: "ff:bg-warning",
1715
1726
  danger: "ff:bg-danger",
1716
1727
  outline: "ff:bg-foreground/40"
1717
- }, xa = s.forwardRef(
1728
+ }, ka = s.forwardRef(
1718
1729
  ({ className: e, variant: a = "default", solidBackground: r, children: n, ...o }, i) => {
1719
- const { variant: f } = Xe(), l = me(), d = a ?? "default", u = r ?? !Kr.includes(f), y = !u && Qt[d];
1730
+ const { variant: f } = Xe(), l = me(), d = a ?? "default", u = r ?? !Yr.includes(f), y = !u && ea[d];
1720
1731
  return /* @__PURE__ */ c(
1721
1732
  "span",
1722
1733
  {
@@ -1724,13 +1735,13 @@ const Kr = ["clean"], Zr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:
1724
1735
  "data-slot": "badge",
1725
1736
  "data-variant": d,
1726
1737
  "data-solid-background": u,
1727
- className: D(Zr({ variant: d, solid: u, styleVariant: l, className: e })),
1738
+ className: V(Gr({ variant: d, solid: u, styleVariant: l, className: e })),
1728
1739
  ...o,
1729
1740
  children: [
1730
1741
  y && /* @__PURE__ */ t(
1731
1742
  "span",
1732
1743
  {
1733
- className: D("ff:size-1.5 ff:shrink-0 ff:rounded-full", Qt[d]),
1744
+ className: V("ff:size-1.5 ff:shrink-0 ff:rounded-full", ea[d]),
1734
1745
  "aria-hidden": "true"
1735
1746
  }
1736
1747
  ),
@@ -1740,10 +1751,10 @@ const Kr = ["clean"], Zr = ne(["ff:inline-flex ff:items-center", "ff:text-xs ff:
1740
1751
  );
1741
1752
  }
1742
1753
  );
1743
- xa.displayName = "Badge";
1754
+ ka.displayName = "Badge";
1744
1755
  const Q = s.forwardRef(
1745
- ({ variant: e = "default", label: a, title: r, description: n, className: o, ...i }, f) => /* @__PURE__ */ c("div", { ref: f, "data-slot": "panel-header", className: D("ff:flex ff:flex-col ff:gap-4", o), ...i, children: [
1746
- a ? /* @__PURE__ */ t("div", { className: "ff:flex", children: /* @__PURE__ */ t(xa, { variant: e, solidBackground: !1, children: a }) }) : null,
1756
+ ({ variant: e = "default", label: a, title: r, description: n, className: o, ...i }, f) => /* @__PURE__ */ c("div", { ref: f, "data-slot": "panel-header", className: V("ff:flex ff:flex-col ff:gap-4", o), ...i, children: [
1757
+ a ? /* @__PURE__ */ t("div", { className: "ff:flex", children: /* @__PURE__ */ t(ka, { variant: e, solidBackground: !1, children: a }) }) : null,
1747
1758
  r || n ? /* @__PURE__ */ c("div", { children: [
1748
1759
  r ? /* @__PURE__ */ t("h2", { className: "ff:text-xl ff:font-semibold ff:text-foreground", children: r }) : null,
1749
1760
  n ? /* @__PURE__ */ t("p", { className: "ff:text-xs ff:text-muted-foreground", children: n }) : null
@@ -1751,7 +1762,7 @@ const Q = s.forwardRef(
1751
1762
  ] })
1752
1763
  );
1753
1764
  Q.displayName = "PanelHeading";
1754
- const Gr = ne(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-foreground"], {
1765
+ const Jr = ne(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-foreground"], {
1755
1766
  variants: {
1756
1767
  styleVariant: {
1757
1768
  default: ["ff:rounded-md ff:border ff:border-border/50 ff:bg-muted/5"],
@@ -1765,10 +1776,10 @@ const Gr = ne(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-for
1765
1776
  }
1766
1777
  }), se = s.forwardRef(({ className: e, children: a, ...r }, n) => {
1767
1778
  const o = me();
1768
- return /* @__PURE__ */ t("div", { ref: n, "data-slot": "info-panel", className: D(Gr({ styleVariant: o }), e), ...r, children: a });
1779
+ return /* @__PURE__ */ t("div", { ref: n, "data-slot": "info-panel", className: V(Jr({ styleVariant: o }), e), ...r, children: a });
1769
1780
  });
1770
1781
  se.displayName = "InfoPanel";
1771
- const Yr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1782
+ const Qr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1772
1783
  variants: {
1773
1784
  tone: {
1774
1785
  danger: "ff:bg-danger/10",
@@ -1778,7 +1789,7 @@ const Yr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1778
1789
  defaultVariants: {
1779
1790
  tone: "danger"
1780
1791
  }
1781
- }), Jr = ne(["ff:flex ff:size-5 ff:shrink-0 ff:items-center ff:justify-center ff:rounded-full"], {
1792
+ }), Xr = ne(["ff:flex ff:size-5 ff:shrink-0 ff:items-center ff:justify-center ff:rounded-full"], {
1782
1793
  variants: {
1783
1794
  tone: {
1784
1795
  danger: "ff:bg-danger ff:text-danger-foreground",
@@ -1788,7 +1799,7 @@ const Yr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1788
1799
  defaultVariants: {
1789
1800
  tone: "danger"
1790
1801
  }
1791
- }), Qr = ne(["ff:text-xs ff:font-semibold ff:leading-tight"], {
1802
+ }), en = ne(["ff:text-xs ff:font-semibold ff:leading-tight"], {
1792
1803
  variants: {
1793
1804
  tone: {
1794
1805
  danger: "ff:text-danger",
@@ -1799,7 +1810,7 @@ const Yr = ne(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1799
1810
  tone: "danger"
1800
1811
  }
1801
1812
  });
1802
- function Xr() {
1813
+ function tn() {
1803
1814
  return /* @__PURE__ */ c(
1804
1815
  "svg",
1805
1816
  {
@@ -1818,7 +1829,7 @@ function Xr() {
1818
1829
  }
1819
1830
  );
1820
1831
  }
1821
- function en() {
1832
+ function an() {
1822
1833
  return /* @__PURE__ */ t(
1823
1834
  "svg",
1824
1835
  {
@@ -1836,7 +1847,7 @@ function en() {
1836
1847
  }
1837
1848
  const ve = s.forwardRef(
1838
1849
  ({ tone: e = "danger", icon: a, title: r, description: n, className: o, ...i }, f) => {
1839
- const l = e === "success" ? /* @__PURE__ */ t(en, {}) : /* @__PURE__ */ t(Xr, {});
1850
+ const l = e === "success" ? /* @__PURE__ */ t(an, {}) : /* @__PURE__ */ t(tn, {});
1840
1851
  return /* @__PURE__ */ c(
1841
1852
  "div",
1842
1853
  {
@@ -1844,12 +1855,12 @@ const ve = s.forwardRef(
1844
1855
  "data-slot": "alert-panel",
1845
1856
  "data-tone": e,
1846
1857
  role: e === "success" ? "status" : "alert",
1847
- className: D(Yr({ tone: e }), o),
1858
+ className: V(Qr({ tone: e }), o),
1848
1859
  ...i,
1849
1860
  children: [
1850
- /* @__PURE__ */ t("div", { className: D(Jr({ tone: e })), "aria-hidden": "true", children: a ?? l }),
1861
+ /* @__PURE__ */ t("div", { className: V(Xr({ tone: e })), "aria-hidden": "true", children: a ?? l }),
1851
1862
  /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:gap-1", children: [
1852
- r ? /* @__PURE__ */ t("p", { className: D(Qr({ tone: e })), children: r }) : null,
1863
+ r ? /* @__PURE__ */ t("p", { className: V(en({ tone: e })), children: r }) : null,
1853
1864
  n ? /* @__PURE__ */ t("p", { className: "ff:text-xs ff:text-foreground/80", children: n }) : null
1854
1865
  ] })
1855
1866
  ]
@@ -1858,7 +1869,7 @@ const ve = s.forwardRef(
1858
1869
  }
1859
1870
  );
1860
1871
  ve.displayName = "AlertPanel";
1861
- const tn = {
1872
+ const rn = {
1862
1873
  expired: "expired",
1863
1874
  queue_denied: "not_selected",
1864
1875
  draw_denied: "not_selected",
@@ -1871,10 +1882,10 @@ const tn = {
1871
1882
  closed: "ended",
1872
1883
  unknown: "ended"
1873
1884
  };
1874
- function Xt(e) {
1875
- return e ? tn[e] ?? "ended" : "ended";
1885
+ function ta(e) {
1886
+ return e ? rn[e] ?? "ended" : "ended";
1876
1887
  }
1877
- const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"], {
1888
+ const nn = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"], {
1878
1889
  variants: {
1879
1890
  styleVariant: {
1880
1891
  default: "",
@@ -1895,7 +1906,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
1895
1906
  styleVariant: "default",
1896
1907
  size: "default"
1897
1908
  }
1898
- }), rn = ne(
1909
+ }), on = ne(
1899
1910
  ["ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:font-heading ff:tabular-nums"],
1900
1911
  {
1901
1912
  variants: {
@@ -1925,7 +1936,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
1925
1936
  tone: "calm"
1926
1937
  }
1927
1938
  }
1928
- ), nn = ne(["ff:flex ff:flex-col ff:items-center"], {
1939
+ ), fn = ne(["ff:flex ff:flex-col ff:items-center"], {
1929
1940
  variants: {
1930
1941
  styleVariant: {
1931
1942
  default: "",
@@ -1967,7 +1978,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
1967
1978
  styleVariant: "default",
1968
1979
  tone: "calm"
1969
1980
  }
1970
- }), on = ne(
1981
+ }), sn = ne(
1971
1982
  ["ff:text-xxs ff:font-heading ff:font-medium ff:uppercase ff:tracking-widest ff:text-neutral-500 ff:leading-none"],
1972
1983
  {
1973
1984
  variants: {
@@ -1997,7 +2008,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
1997
2008
  tone: "calm"
1998
2009
  }
1999
2010
  }
2000
- ), fn = ne(["ff:mx-2 ff:self-end ff:pb-2 ff:text-2xl ff:font-light ff:text-neutral-300"], {
2011
+ ), ln = ne(["ff:mx-2 ff:self-end ff:pb-2 ff:text-2xl ff:font-light ff:text-neutral-300"], {
2001
2012
  variants: {
2002
2013
  styleVariant: {
2003
2014
  default: "",
@@ -2014,7 +2025,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
2014
2025
  styleVariant: "default",
2015
2026
  size: "default"
2016
2027
  }
2017
- }), sn = ne(["ff:flex ff:items-center ff:justify-center ff:font-heading"], {
2028
+ }), cn = ne(["ff:flex ff:items-center ff:justify-center ff:font-heading"], {
2018
2029
  variants: {
2019
2030
  styleVariant: {
2020
2031
  default: "",
@@ -2032,7 +2043,7 @@ const an = ne(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
2032
2043
  size: "default"
2033
2044
  }
2034
2045
  });
2035
- function ea(e) {
2046
+ function aa(e) {
2036
2047
  const a = typeof e == "object" ? e : new Date(e), r = /* @__PURE__ */ new Date(), n = a.getTime() - r.getTime(), o = Math.max(0, n);
2037
2048
  return {
2038
2049
  days: Math.floor(o / (1e3 * 60 * 60 * 24)),
@@ -2042,8 +2053,8 @@ function ea(e) {
2042
2053
  total: n
2043
2054
  };
2044
2055
  }
2045
- function ln({ value: e, styleVariant: a, size: r, tone: n }) {
2046
- return /* @__PURE__ */ t("div", { "data-slot": "countdown-digit", className: an({ styleVariant: a, size: r }), children: /* @__PURE__ */ t(vt, { mode: "popLayout", children: /* @__PURE__ */ t(
2056
+ function dn({ value: e, styleVariant: a, size: r, tone: n }) {
2057
+ return /* @__PURE__ */ t("div", { "data-slot": "countdown-digit", className: nn({ styleVariant: a, size: r }), children: /* @__PURE__ */ t(vt, { mode: "popLayout", children: /* @__PURE__ */ t(
2047
2058
  W.span,
2048
2059
  {
2049
2060
  initial: { y: "100%", filter: "blur(2px)" },
@@ -2055,28 +2066,28 @@ function ln({ value: e, styleVariant: a, size: r, tone: n }) {
2055
2066
  damping: 30,
2056
2067
  mass: 1
2057
2068
  },
2058
- className: rn({ styleVariant: a, size: r, tone: n }),
2069
+ className: on({ styleVariant: a, size: r, tone: n }),
2059
2070
  children: e
2060
2071
  },
2061
2072
  e
2062
2073
  ) }) });
2063
2074
  }
2064
- function cn({ value: e, label: a, styleVariant: r, size: n, tone: o }) {
2075
+ function un({ value: e, label: a, styleVariant: r, size: n, tone: o }) {
2065
2076
  const f = e.toString().padStart(2, "0").split("").map(Number);
2066
- return /* @__PURE__ */ c("div", { "data-slot": "countdown-unit", "data-tone": o, className: nn({ styleVariant: r, tone: o }), children: [
2067
- /* @__PURE__ */ t("div", { "data-slot": "countdown-unit-digits", className: "ff:flex", children: f.map((l, d) => /* @__PURE__ */ t(ln, { value: l, styleVariant: r, size: n, tone: o }, d)) }),
2068
- /* @__PURE__ */ t("span", { "data-slot": "countdown-unit-label", className: on({ styleVariant: r, size: n, tone: o }), children: a })
2077
+ return /* @__PURE__ */ c("div", { "data-slot": "countdown-unit", "data-tone": o, className: fn({ styleVariant: r, tone: o }), children: [
2078
+ /* @__PURE__ */ t("div", { "data-slot": "countdown-unit-digits", className: "ff:flex", children: f.map((l, d) => /* @__PURE__ */ t(dn, { value: l, styleVariant: r, size: n, tone: o }, d)) }),
2079
+ /* @__PURE__ */ t("span", { "data-slot": "countdown-unit-label", className: sn({ styleVariant: r, size: n, tone: o }), children: a })
2069
2080
  ] });
2070
2081
  }
2071
- function dn({ styleVariant: e, size: a }) {
2072
- return e === "rounded" || e === "retro" ? null : /* @__PURE__ */ t("span", { "data-slot": "countdown-separator", className: fn({ styleVariant: e, size: a }), children: "/" });
2082
+ function pn({ styleVariant: e, size: a }) {
2083
+ return e === "rounded" || e === "retro" ? null : /* @__PURE__ */ t("span", { "data-slot": "countdown-separator", className: ln({ styleVariant: e, size: a }), children: "/" });
2073
2084
  }
2074
- function un(e, a) {
2075
- const [r, n] = s.useState(() => ea(e)), [o, i] = s.useState(!1), f = s.useRef(!1);
2085
+ function gn(e, a) {
2086
+ const [r, n] = s.useState(() => aa(e)), [o, i] = s.useState(!1), f = s.useRef(!1);
2076
2087
  return s.useEffect(() => {
2077
2088
  i(!0), f.current = !1;
2078
2089
  const l = setInterval(() => {
2079
- const d = ea(e);
2090
+ const d = aa(e);
2080
2091
  n(d), d.total <= 0 && !f.current && (f.current = !0, a?.(), clearInterval(l));
2081
2092
  }, 1e3);
2082
2093
  return () => clearInterval(l);
@@ -2095,11 +2106,11 @@ function de({
2095
2106
  size: u = "default",
2096
2107
  tone: y = "calm"
2097
2108
  }) {
2098
- const { t: g } = G(), { timeRemaining: b, isClient: m, isPast: x } = un(e, a), h = me();
2109
+ const { t: g } = Y(), { timeRemaining: b, isClient: m, isPast: x } = gn(e, a), h = me();
2099
2110
  if (!m)
2100
2111
  return null;
2101
2112
  if (x && r)
2102
- return /* @__PURE__ */ t("span", { className: D("ff:text-muted ff:font-heading", n), "data-slot": "countdown", "data-past": "", children: r });
2113
+ return /* @__PURE__ */ t("span", { className: V("ff:text-muted ff:font-heading", n), "data-slot": "countdown", "data-past": "", children: r });
2103
2114
  const w = x ? "ff:opacity-50" : void 0, v = [
2104
2115
  {
2105
2116
  value: b.days,
@@ -2120,22 +2131,22 @@ function de({
2120
2131
  shortLabel: g("countdown.secondsShort"),
2121
2132
  show: l
2122
2133
  }
2123
- ].filter((M) => M.show), E = d === "swiss" ? v.slice(0, 3) : v;
2134
+ ].filter((E) => E.show), M = d === "swiss" ? v.slice(0, 3) : v;
2124
2135
  if (d === "compact") {
2125
- const M = (_) => _.toString().padStart(2, "0");
2136
+ const E = (_) => _.toString().padStart(2, "0");
2126
2137
  return /* @__PURE__ */ t(
2127
2138
  "span",
2128
2139
  {
2129
- className: D("ff:tabular-nums ff:font-heading", w, n),
2140
+ className: V("ff:tabular-nums ff:font-heading", w, n),
2130
2141
  "data-slot": "countdown",
2131
2142
  "data-layout": "compact",
2132
2143
  "data-past": x || void 0,
2133
2144
  role: "timer",
2134
2145
  "aria-live": x ? "off" : "polite",
2135
- children: E.map((_, S) => /* @__PURE__ */ c(s.Fragment, { children: [
2136
- M(_.value),
2146
+ children: M.map((_, S) => /* @__PURE__ */ c(s.Fragment, { children: [
2147
+ E(_.value),
2137
2148
  _.shortLabel,
2138
- S < E.length - 1 && " "
2149
+ S < M.length - 1 && " "
2139
2150
  ] }, _.label))
2140
2151
  }
2141
2152
  );
@@ -2143,7 +2154,7 @@ function de({
2143
2154
  return /* @__PURE__ */ t(
2144
2155
  "div",
2145
2156
  {
2146
- className: D(sn({ styleVariant: h, size: u }), w, n),
2157
+ className: V(cn({ styleVariant: h, size: u }), w, n),
2147
2158
  "data-slot": "countdown",
2148
2159
  "data-layout": "swiss",
2149
2160
  "data-size": u,
@@ -2151,10 +2162,10 @@ function de({
2151
2162
  "data-past": x || void 0,
2152
2163
  role: "timer",
2153
2164
  "aria-live": x ? "off" : "polite",
2154
- children: E.map((M, _) => /* @__PURE__ */ c(s.Fragment, { children: [
2155
- /* @__PURE__ */ t(cn, { value: M.value, label: M.label, styleVariant: h, size: u, tone: y }),
2156
- _ < E.length - 1 && /* @__PURE__ */ t(dn, { styleVariant: h, size: u })
2157
- ] }, M.label))
2165
+ children: M.map((E, _) => /* @__PURE__ */ c(s.Fragment, { children: [
2166
+ /* @__PURE__ */ t(un, { value: E.value, label: E.label, styleVariant: h, size: u, tone: y }),
2167
+ _ < M.length - 1 && /* @__PURE__ */ t(pn, { styleVariant: h, size: u })
2168
+ ] }, E.label))
2158
2169
  }
2159
2170
  );
2160
2171
  }
@@ -2168,14 +2179,14 @@ function Je({ show: e, presenceKey: a, children: r, className: n }) {
2168
2179
  animate: { opacity: 1, y: 0 },
2169
2180
  exit: o ? { opacity: 0 } : { opacity: 0, y: -4 },
2170
2181
  transition: { duration: 0.18, ease: "easeOut" },
2171
- className: D(n),
2182
+ className: V(n),
2172
2183
  children: r
2173
2184
  },
2174
2185
  a ?? "fade-presence"
2175
2186
  ) : null });
2176
2187
  }
2177
2188
  Je.displayName = "FadePresence";
2178
- const pn = {
2189
+ const mn = {
2179
2190
  default: {
2180
2191
  initial: { opacity: 0, scale: 0.98 },
2181
2192
  animate: { opacity: 1, scale: 1 },
@@ -2206,8 +2217,8 @@ const pn = {
2206
2217
  exit: { opacity: 1 },
2207
2218
  transition: { duration: 0 }
2208
2219
  };
2209
- function Ye({ children: e, transitionKey: a, mode: r, layout: n = !0, className: o }) {
2210
- const i = me(), f = Qe(), l = f ? Nt : pn[i], u = (!r || r === "none" ? r === "none" ? Nt : null : f ? Nt : {
2220
+ function Ge({ children: e, transitionKey: a, mode: r, layout: n = !0, className: o }) {
2221
+ const i = me(), f = Qe(), l = f ? Nt : mn[i], u = (!r || r === "none" ? r === "none" ? Nt : null : f ? Nt : {
2211
2222
  fade: {
2212
2223
  initial: { opacity: 0 },
2213
2224
  animate: { opacity: 1 },
@@ -2236,19 +2247,19 @@ function Ye({ children: e, transitionKey: a, mode: r, layout: n = !0, className:
2236
2247
  transition: u.transition,
2237
2248
  layout: n && !f,
2238
2249
  "data-slot": "transition",
2239
- className: D(o),
2250
+ className: V(o),
2240
2251
  children: e
2241
2252
  },
2242
2253
  a
2243
2254
  ) });
2244
2255
  }
2245
- Ye.displayName = "Transition";
2246
- const St = 3e4, gn = 3e3;
2247
- function mn(e) {
2256
+ Ge.displayName = "Transition";
2257
+ const St = 3e4, hn = 3e3;
2258
+ function wn(e) {
2248
2259
  const a = Math.ceil(e / 1e3), r = Math.floor(a / 60), n = a % 60;
2249
2260
  return `${r.toString().padStart(2, "0")}:${n.toString().padStart(2, "0")}`;
2250
2261
  }
2251
- function ya({
2262
+ function _a({
2252
2263
  onSubmit: e,
2253
2264
  onVerify: a,
2254
2265
  onSkip: r,
@@ -2268,74 +2279,74 @@ function ya({
2268
2279
  defaultError: w,
2269
2280
  className: p
2270
2281
  }) {
2271
- const { t: v } = G(), E = i ?? v("auth.badgeLabel"), M = f ?? v("auth.title"), _ = l ?? v("auth.description"), S = u ?? v("auth.submit"), V = y ?? v("auth.verify"), [N, T] = s.useState(m), [L, $] = s.useState(x ?? ""), [P, X] = s.useState(
2272
- h ?? ma(x ?? "")
2273
- ), [ce, B] = s.useState(!1), [R, te] = s.useState(""), [H, j] = s.useState(!1), [ae, Y] = s.useState(w ?? null), [J, ue] = s.useState(
2282
+ const { t: v } = Y(), M = i ?? v("auth.badgeLabel"), E = f ?? v("auth.title"), _ = l ?? v("auth.description"), S = u ?? v("auth.submit"), D = y ?? v("auth.verify"), [N, T] = s.useState(m), [L, $] = s.useState(x ?? ""), [P, X] = s.useState(
2283
+ h ?? wa(x ?? "")
2284
+ ), [ce, B] = s.useState(!1), [R, te] = s.useState(""), [H, j] = s.useState(!1), [ae, G] = s.useState(w ?? null), [J, ue] = s.useState(
2274
2285
  m === "verify" && (x ?? "").length > 0 ? Date.now() + St : null
2275
- ), [le, I] = s.useState(() => Date.now()), [pe, ye] = s.useState(!1), [Ee, je] = s.useState(!1), at = v(P === "email" ? "auth.email" : "auth.phone");
2286
+ ), [le, I] = s.useState(() => Date.now()), [pe, ye] = s.useState(!1), [Me, je] = s.useState(!1), at = v(P === "email" ? "auth.email" : "auth.phone");
2276
2287
  s.useEffect(() => {
2277
2288
  if (N !== "verify") return;
2278
2289
  const q = setInterval(() => I(Date.now()), 1e3);
2279
2290
  return () => clearInterval(q);
2280
2291
  }, [N]), s.useEffect(() => {
2281
2292
  if (!pe) return;
2282
- const q = setTimeout(() => ye(!1), gn);
2293
+ const q = setTimeout(() => ye(!1), hn);
2283
2294
  return () => clearTimeout(q);
2284
2295
  }, [pe]);
2285
2296
  const Pe = J ? Math.max(0, J - le) : 0, Te = Pe > 0, Be = s.useRef(null);
2286
2297
  ae && (Be.current = ae);
2287
2298
  const rt = ae ?? Be.current ?? "", be = (q, ke) => {
2288
- $(q), X(ke), Y(null);
2299
+ $(q), X(ke), G(null);
2289
2300
  }, we = async (q) => {
2290
2301
  if (q?.preventDefault(), !(!ce || !L)) {
2291
- j(!0), Y(null);
2302
+ j(!0), G(null);
2292
2303
  try {
2293
2304
  await e?.(L, P), T("verify"), ue(Date.now() + St);
2294
2305
  } catch (ke) {
2295
- Y(ke instanceof Error ? ke.message : v("auth.sendFailed"));
2306
+ G(ke instanceof Error ? ke.message : v("auth.sendFailed"));
2296
2307
  } finally {
2297
2308
  j(!1);
2298
2309
  }
2299
2310
  }
2300
2311
  }, xt = (q) => {
2301
- te(q), Y(null);
2312
+ te(q), G(null);
2302
2313
  }, nt = async (q) => {
2303
2314
  te(q), await ot(void 0, q);
2304
2315
  }, ot = async (q, ke) => {
2305
2316
  q?.preventDefault();
2306
2317
  const Re = ke || R;
2307
2318
  if (!(!Re || Re.length < 6)) {
2308
- j(!0), Y(null);
2319
+ j(!0), G(null);
2309
2320
  try {
2310
2321
  await a?.(Re), T("success"), n?.();
2311
2322
  } catch (qe) {
2312
- Y(qe instanceof Error ? qe.message : v("auth.invalidCode"));
2323
+ G(qe instanceof Error ? qe.message : v("auth.invalidCode"));
2313
2324
  } finally {
2314
2325
  j(!1);
2315
2326
  }
2316
2327
  }
2317
2328
  }, ft = () => {
2318
- T("credential"), te(""), Y(null), ue(null), ye(!1);
2329
+ T("credential"), te(""), G(null), ue(null), ye(!1);
2319
2330
  }, yt = async () => {
2320
- if (!(!L || Ee)) {
2321
- je(!0), Y(null), te("");
2331
+ if (!(!L || Me)) {
2332
+ je(!0), G(null), te("");
2322
2333
  try {
2323
2334
  await e?.(L, P), ue(Date.now() + St), I(Date.now()), ye(!0);
2324
2335
  } catch (q) {
2325
- Y(q instanceof Error ? q.message : v("auth.sendFailed"));
2336
+ G(q instanceof Error ? q.message : v("auth.sendFailed"));
2326
2337
  } finally {
2327
2338
  je(!1);
2328
2339
  }
2329
2340
  }
2330
2341
  };
2331
2342
  if (N === "success")
2332
- return /* @__PURE__ */ c(Z, { className: D("fanfare-auth-form", p), "data-slot": "auth-form", "data-step": "success", children: [
2343
+ return /* @__PURE__ */ c(Z, { className: V("fanfare-auth-form", p), "data-slot": "auth-form", "data-step": "success", children: [
2333
2344
  /* @__PURE__ */ t(K, { children: /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-center ff:gap-3 ff:py-4", children: [
2334
2345
  /* @__PURE__ */ t(
2335
2346
  "div",
2336
2347
  {
2337
2348
  "data-slot": "auth-form-success-icon",
2338
- className: D(
2349
+ className: V(
2339
2350
  "ff:flex ff:h-12 ff:w-12 ff:items-center ff:justify-center ff:rounded-full",
2340
2351
  "ff:bg-success/10 ff:text-success"
2341
2352
  ),
@@ -2346,15 +2357,15 @@ function ya({
2346
2357
  ] }) }),
2347
2358
  b && /* @__PURE__ */ t(U, {})
2348
2359
  ] });
2349
- const $e = N === "credential" ? M : v("auth.verifyTitle");
2350
- return /* @__PURE__ */ c(Z, { className: D("fanfare-auth-form", p), "data-slot": "auth-form", "data-step": N, children: [
2351
- /* @__PURE__ */ t(Q, { variant: o, label: E }),
2360
+ const $e = N === "credential" ? E : v("auth.verifyTitle");
2361
+ return /* @__PURE__ */ c(Z, { className: V("fanfare-auth-form", p), "data-slot": "auth-form", "data-step": N, children: [
2362
+ /* @__PURE__ */ t(Q, { variant: o, label: M }),
2352
2363
  /* @__PURE__ */ c(K, { children: [
2353
2364
  d ? /* @__PURE__ */ c("div", { "data-slot": "auth-form-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
2354
2365
  /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: v("time.opensIn") }),
2355
2366
  /* @__PURE__ */ t(de, { targetDate: d, showDays: !1 })
2356
2367
  ] }) : null,
2357
- /* @__PURE__ */ t("div", { "data-slot": "auth-form-heading", children: /* @__PURE__ */ t(Ye, { transitionKey: N, mode: "fade", children: N === "credential" ? /* @__PURE__ */ c(Ce, { children: [
2368
+ /* @__PURE__ */ t("div", { "data-slot": "auth-form-heading", children: /* @__PURE__ */ t(Ge, { transitionKey: N, mode: "fade", children: N === "credential" ? /* @__PURE__ */ c(Ce, { children: [
2358
2369
  /* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: $e }),
2359
2370
  /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: _ })
2360
2371
  ] }) : /* @__PURE__ */ c(Ce, { children: [
@@ -2375,8 +2386,8 @@ function ya({
2375
2386
  q.preventDefault(), N === "credential" ? we(q) : ot(q);
2376
2387
  },
2377
2388
  children: [
2378
- /* @__PURE__ */ t(Ye, { transitionKey: N, children: N === "credential" ? /* @__PURE__ */ t(
2379
- ha,
2389
+ /* @__PURE__ */ t(Ge, { transitionKey: N, children: N === "credential" ? /* @__PURE__ */ t(
2390
+ va,
2380
2391
  {
2381
2392
  value: L,
2382
2393
  onValueChange: be,
@@ -2389,7 +2400,7 @@ function ya({
2389
2400
  disabled: H
2390
2401
  }
2391
2402
  ) : /* @__PURE__ */ t(
2392
- wa,
2403
+ ba,
2393
2404
  {
2394
2405
  value: R,
2395
2406
  onChange: xt,
@@ -2401,9 +2412,9 @@ function ya({
2401
2412
  disabled: H
2402
2413
  }
2403
2414
  ) }),
2404
- /* @__PURE__ */ t(Je, { show: N === "verify", presenceKey: "resend-area", children: /* @__PURE__ */ t(Ye, { transitionKey: pe ? "success" : "cooldown", mode: "fade", layout: !1, children: pe ? /* @__PURE__ */ t(ve, { tone: "success", title: v("auth.newCodeSent") }) : /* @__PURE__ */ c("div", { "data-slot": "auth-form-resend", className: "ff:flex ff:items-center ff:justify-between", children: [
2415
+ /* @__PURE__ */ t(Je, { show: N === "verify", presenceKey: "resend-area", children: /* @__PURE__ */ t(Ge, { transitionKey: pe ? "success" : "cooldown", mode: "fade", layout: !1, children: pe ? /* @__PURE__ */ t(ve, { tone: "success", title: v("auth.newCodeSent") }) : /* @__PURE__ */ c("div", { "data-slot": "auth-form-resend", className: "ff:flex ff:items-center ff:justify-between", children: [
2405
2416
  /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs", children: v("auth.didntGetIt") }),
2406
- Te ? /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs ff:tabular-nums", children: mn(Pe) }) : /* @__PURE__ */ t(
2417
+ Te ? /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs ff:tabular-nums", children: wn(Pe) }) : /* @__PURE__ */ t(
2407
2418
  F,
2408
2419
  {
2409
2420
  type: "button",
@@ -2412,7 +2423,7 @@ function ya({
2412
2423
  onClick: () => {
2413
2424
  yt();
2414
2425
  },
2415
- disabled: Ee || !L,
2426
+ disabled: Me || !L,
2416
2427
  children: v("auth.resendCode")
2417
2428
  }
2418
2429
  )
@@ -2424,8 +2435,8 @@ function ya({
2424
2435
  {
2425
2436
  type: "submit",
2426
2437
  className: "ff:w-full",
2427
- disabled: H || Ee || (N === "credential" ? !ce : R.length < 6),
2428
- children: H ? /* @__PURE__ */ t(De, { size: "sm" }) : N === "credential" ? S : V
2438
+ disabled: H || Me || (N === "credential" ? !ce : R.length < 6),
2439
+ children: H ? /* @__PURE__ */ t(De, { size: "sm" }) : N === "credential" ? S : D
2429
2440
  }
2430
2441
  ),
2431
2442
  g && N === "credential" && /* @__PURE__ */ t(F, { type: "button", variant: "outline", className: "ff:w-full", onClick: r, disabled: H, children: v("common.skip") })
@@ -2437,8 +2448,8 @@ function ya({
2437
2448
  b && /* @__PURE__ */ t(U, {})
2438
2449
  ] });
2439
2450
  }
2440
- ya.displayName = "AuthForm";
2441
- const ka = s.forwardRef(
2451
+ _a.displayName = "AuthForm";
2452
+ const Na = s.forwardRef(
2442
2453
  ({
2443
2454
  className: e,
2444
2455
  value: a,
@@ -2467,14 +2478,14 @@ const ka = s.forwardRef(
2467
2478
  placeholder: f,
2468
2479
  error: o,
2469
2480
  hasError: i,
2470
- className: D("fanfare-access-code-input", e),
2481
+ className: V("fanfare-access-code-input", e),
2471
2482
  "data-slot": "access-code-input",
2472
2483
  ...d
2473
2484
  }
2474
2485
  )
2475
2486
  );
2476
- ka.displayName = "AccessCodeInput";
2477
- function _a({
2487
+ Na.displayName = "AccessCodeInput";
2488
+ function Sa({
2478
2489
  onSubmit: e,
2479
2490
  onSkip: a,
2480
2491
  variant: r = "secondary",
@@ -2488,19 +2499,19 @@ function _a({
2488
2499
  defaultError: y,
2489
2500
  className: g
2490
2501
  }) {
2491
- const { t: b } = G(), m = n ?? b("accessCode.badgeLabel"), x = o ?? b("accessCode.title"), h = i ?? b("accessCode.description"), w = l ?? b("accessCode.submit"), [p, v] = s.useState(""), [E, M] = s.useState(!1), [_, S] = s.useState(y ?? null), V = async (N) => {
2502
+ const { t: b } = Y(), m = n ?? b("accessCode.badgeLabel"), x = o ?? b("accessCode.title"), h = i ?? b("accessCode.description"), w = l ?? b("accessCode.submit"), [p, v] = s.useState(""), [M, E] = s.useState(!1), [_, S] = s.useState(y ?? null), D = async (N) => {
2492
2503
  if (N?.preventDefault(), !!p.trim()) {
2493
- M(!0), S(null);
2504
+ E(!0), S(null);
2494
2505
  try {
2495
2506
  await e?.(p.trim());
2496
2507
  } catch (T) {
2497
2508
  S(T instanceof Error ? T.message : b("accessCode.invalid"));
2498
2509
  } finally {
2499
- M(!1);
2510
+ E(!1);
2500
2511
  }
2501
2512
  }
2502
2513
  };
2503
- return /* @__PURE__ */ c(Z, { className: D("fanfare-access-code-form", g), "data-slot": "access-code-form", children: [
2514
+ return /* @__PURE__ */ c(Z, { className: V("fanfare-access-code-form", g), "data-slot": "access-code-form", children: [
2504
2515
  /* @__PURE__ */ t(Q, { variant: r, label: m }),
2505
2516
  /* @__PURE__ */ c(K, { children: [
2506
2517
  f ? /* @__PURE__ */ c("div", { "data-slot": "access-code-form-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
@@ -2512,56 +2523,56 @@ function _a({
2512
2523
  /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: h })
2513
2524
  ] }),
2514
2525
  /* @__PURE__ */ c("form", { className: "ff:flex ff:flex-1 ff:flex-col ff:gap-5", onSubmit: (N) => {
2515
- V(N);
2526
+ D(N);
2516
2527
  }, children: [
2517
2528
  /* @__PURE__ */ t(
2518
- ka,
2529
+ Na,
2519
2530
  {
2520
2531
  value: p,
2521
2532
  onValueChange: (N) => {
2522
2533
  v(N), S(null);
2523
2534
  },
2524
2535
  onSubmit: () => {
2525
- V();
2536
+ D();
2526
2537
  },
2527
2538
  hasError: !!_,
2528
2539
  placeholder: b("accessCode.placeholder"),
2529
2540
  autoUppercase: u,
2530
2541
  autoFocus: !0,
2531
- disabled: E
2542
+ disabled: M
2532
2543
  }
2533
2544
  ),
2534
2545
  _ ? /* @__PURE__ */ t(ve, { tone: "danger", title: _ }) : null,
2535
2546
  /* @__PURE__ */ c("div", { className: "ff:mt-auto ff:flex ff:flex-col ff:gap-2", children: [
2536
- /* @__PURE__ */ t(F, { type: "submit", className: "ff:w-full", disabled: E || !p.trim(), children: E ? /* @__PURE__ */ t(De, { size: "sm" }) : w }),
2537
- d && /* @__PURE__ */ t(F, { type: "button", variant: "outline", className: "ff:w-full", onClick: a, disabled: E, children: b("common.skip") })
2547
+ /* @__PURE__ */ t(F, { type: "submit", className: "ff:w-full", disabled: M || !p.trim(), children: M ? /* @__PURE__ */ t(De, { size: "sm" }) : w }),
2548
+ d && /* @__PURE__ */ t(F, { type: "button", variant: "outline", className: "ff:w-full", onClick: a, disabled: M, children: b("common.skip") })
2538
2549
  ] })
2539
2550
  ] })
2540
2551
  ] }),
2541
2552
  /* @__PURE__ */ t(U, {})
2542
2553
  ] });
2543
2554
  }
2544
- _a.displayName = "AccessCodeForm";
2545
- function hn(e) {
2555
+ Sa.displayName = "AccessCodeForm";
2556
+ function vn(e) {
2546
2557
  if (!e || typeof e != "object") return !1;
2547
2558
  const a = e;
2548
2559
  return typeof a.kind != "string" || typeof a.challengeId != "string" ? !1 : a.kind === "fanfare:challenge:turnstile" ? typeof a.token == "string" && a.token.length > 0 : a.kind === "fanfare:challenge:turnstile_error" || a.kind === "fanfare:challenge:turnstile_expired";
2549
2560
  }
2550
- function wn(e, a) {
2561
+ function bn(e, a) {
2551
2562
  const r = e?.blockedUntil;
2552
2563
  if (!r) return { blocked: !1 };
2553
2564
  const n = Date.parse(r);
2554
2565
  return Number.isFinite(n) ? { blocked: a < n, blockedUntil: r } : { blocked: !1 };
2555
2566
  }
2556
- function vn(e, a) {
2567
+ function xn(e, a) {
2557
2568
  const r = new Date(e);
2558
2569
  try {
2559
- return r.toLocaleString(Qa(a));
2570
+ return r.toLocaleString(er(a));
2560
2571
  } catch {
2561
2572
  return r.toLocaleString();
2562
2573
  }
2563
2574
  }
2564
- function Na({
2575
+ function Ca({
2565
2576
  challenge: e,
2566
2577
  botMitigation: a,
2567
2578
  onVerifyToken: r,
@@ -2574,7 +2585,7 @@ function Na({
2574
2585
  retryLabel: u,
2575
2586
  className: y
2576
2587
  }) {
2577
- const { t: g, locale: b } = G(), [m, x] = s.useState(0), [h, w] = s.useState(!1), [p, v] = s.useState(!1), [E, M] = s.useState(null), [_, S] = s.useState(!1), [V, N] = s.useState("reload"), [T, L] = s.useState(() => Date.now()), $ = re(() => {
2588
+ const { t: g, locale: b } = Y(), [m, x] = s.useState(0), [h, w] = s.useState(!1), [p, v] = s.useState(!1), [M, E] = s.useState(null), [_, S] = s.useState(!1), [D, N] = s.useState("reload"), [T, L] = s.useState(() => Date.now()), $ = re(() => {
2578
2589
  if (!e?.iframeUrl) return null;
2579
2590
  try {
2580
2591
  return new URL(e.iframeUrl).origin;
@@ -2584,16 +2595,16 @@ function Na({
2584
2595
  }, [e?.iframeUrl]), P = re(() => {
2585
2596
  if (!e?.iframeUrl) return null;
2586
2597
  try {
2587
- const Y = new URL(e.iframeUrl);
2588
- return Y.searchParams.set("_t", String(m)), Y.toString();
2598
+ const G = new URL(e.iframeUrl);
2599
+ return G.searchParams.set("_t", String(m)), G.toString();
2589
2600
  } catch {
2590
2601
  return null;
2591
2602
  }
2592
2603
  }, [e?.iframeUrl, m]);
2593
2604
  s.useEffect(() => {
2594
- const Y = a?.blockedUntil, J = Date.now();
2595
- if (L(J), !Y) return;
2596
- const ue = Date.parse(Y);
2605
+ const G = a?.blockedUntil, J = Date.now();
2606
+ if (L(J), !G) return;
2607
+ const ue = Date.parse(G);
2597
2608
  if (!Number.isFinite(ue) || ue <= J) return;
2598
2609
  const le = window.setTimeout(() => L(Date.now()), Math.min(ue - J + 1, 2147483647));
2599
2610
  return () => {
@@ -2601,24 +2612,24 @@ function Na({
2601
2612
  };
2602
2613
  }, [a?.blockedUntil]);
2603
2614
  const { blocked: X, blockedUntil: ce } = re(
2604
- () => wn(a, T),
2615
+ () => bn(a, T),
2605
2616
  [a, T]
2606
2617
  ), B = typeof a?.attemptsRemaining == "number" ? a.attemptsRemaining : void 0;
2607
2618
  s.useEffect(() => {
2608
- x(0), w(!1), v(!1), M(null), S(!1), N("reload");
2619
+ x(0), w(!1), v(!1), E(null), S(!1), N("reload");
2609
2620
  }, [e?.id]), s.useEffect(() => {
2610
- _ && a?.message && M(a.message);
2621
+ _ && a?.message && E(a.message);
2611
2622
  }, [_, a?.message]), s.useEffect(() => {
2612
2623
  if (!e?.id || !$) return;
2613
- const Y = (J) => {
2614
- if (J.origin !== $ || !hn(J.data) || J.data.challengeId !== e.id) return;
2624
+ const G = (J) => {
2625
+ if (J.origin !== $ || !vn(J.data) || J.data.challengeId !== e.id) return;
2615
2626
  if (J.data.kind === "fanfare:challenge:turnstile") {
2616
2627
  const I = J.data.token;
2617
- S(!0), v(!0), M(null), (async () => {
2628
+ S(!0), v(!0), E(null), (async () => {
2618
2629
  try {
2619
2630
  await r(I);
2620
2631
  } catch (pe) {
2621
- M(pe instanceof Error ? pe.message : g("challenge.verificationFailed"));
2632
+ E(pe instanceof Error ? pe.message : g("challenge.verificationFailed"));
2622
2633
  } finally {
2623
2634
  v(!1);
2624
2635
  }
@@ -2628,30 +2639,30 @@ function Na({
2628
2639
  S(!0);
2629
2640
  const ue = typeof J.data.reason == "string" ? J.data.reason : void 0, le = typeof J.data.message == "string" ? J.data.message : void 0;
2630
2641
  if (ue === "challenge_expired" || ue === "challenge_not_found") {
2631
- N("reroute"), M(
2642
+ N("reroute"), E(
2632
2643
  le ?? (J.data.kind === "fanfare:challenge:turnstile_expired" ? g("challenge.expiredRefresh") : g("challenge.errorRefresh"))
2633
2644
  );
2634
2645
  return;
2635
2646
  }
2636
2647
  if (N("reload"), J.data.kind === "fanfare:challenge:turnstile_expired") {
2637
- M(le ?? g("challenge.expiredRetry")), x((I) => I + 1), w(!1);
2648
+ E(le ?? g("challenge.expiredRetry")), x((I) => I + 1), w(!1);
2638
2649
  return;
2639
2650
  }
2640
- M(le ?? g("challenge.errorRetry")), x((I) => I + 1), w(!1);
2651
+ E(le ?? g("challenge.errorRetry")), x((I) => I + 1), w(!1);
2641
2652
  };
2642
- return window.addEventListener("message", Y), () => {
2643
- window.removeEventListener("message", Y);
2653
+ return window.addEventListener("message", G), () => {
2654
+ window.removeEventListener("message", G);
2644
2655
  };
2645
2656
  }, [e?.id, $, r, g]);
2646
2657
  const R = f ?? g("challenge.title"), te = l ?? g("challenge.description"), H = u ?? g("challenge.retry"), j = i ?? g("challenge.badgeLabel"), ae = () => {
2647
- const Y = V;
2648
- if (M(null), S(!1), n && (Y === "reroute" || !P || typeof B == "number" && B <= 0)) {
2658
+ const G = D;
2659
+ if (E(null), S(!1), n && (G === "reroute" || !P || typeof B == "number" && B <= 0)) {
2649
2660
  N("reload"), n();
2650
2661
  return;
2651
2662
  }
2652
2663
  N("reload"), x((J) => J + 1), w(!1);
2653
2664
  };
2654
- return /* @__PURE__ */ c(Z, { className: D("fanfare-challenge-gate", y), "data-slot": "challenge-gate", children: [
2665
+ return /* @__PURE__ */ c(Z, { className: V("fanfare-challenge-gate", y), "data-slot": "challenge-gate", children: [
2655
2666
  /* @__PURE__ */ t(Q, { variant: o, label: j }),
2656
2667
  /* @__PURE__ */ c(K, { children: [
2657
2668
  d ? /* @__PURE__ */ c("div", { "data-slot": "challenge-gate-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
@@ -2667,7 +2678,7 @@ function Na({
2667
2678
  {
2668
2679
  tone: "danger",
2669
2680
  title: a?.message ?? g("challenge.blockedDefault"),
2670
- description: ce ? g("challenge.blockedUntil", { values: { date: vn(ce, b) } }) : void 0
2681
+ description: ce ? g("challenge.blockedUntil", { values: { date: xn(ce, b) } }) : void 0
2671
2682
  }
2672
2683
  ) : P ? /* @__PURE__ */ c("div", { className: "ff:relative ff:w-full ff:rounded-md ff:border ff:border-border ff:bg-background ff:overflow-hidden", children: [
2673
2684
  !h && /* @__PURE__ */ t("div", { className: "ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:bg-background/60", children: /* @__PURE__ */ t(De, { size: "lg" }) }),
@@ -2686,11 +2697,11 @@ function Na({
2686
2697
  `${e?.id ?? "challenge"}-${m}`
2687
2698
  )
2688
2699
  ] }) : /* @__PURE__ */ t(ve, { tone: "danger", title: g("challenge.unableToLoad") }),
2689
- E && /* @__PURE__ */ t(
2700
+ M && /* @__PURE__ */ t(
2690
2701
  ve,
2691
2702
  {
2692
2703
  tone: "danger",
2693
- title: E,
2704
+ title: M,
2694
2705
  description: B !== void 0 ? g("challenge.attemptsRemaining", { values: { count: B } }) : void 0
2695
2706
  }
2696
2707
  ),
@@ -2699,14 +2710,14 @@ function Na({
2699
2710
  /* @__PURE__ */ t(U, {})
2700
2711
  ] });
2701
2712
  }
2702
- Na.displayName = "ChallengeGate";
2703
- function Sa({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, className: i }) {
2704
- const { t: f, locale: l } = G(), d = e ?? f("ended.title"), u = a ?? f("ended.message"), y = s.useMemo(() => r ? (r instanceof Date ? r : new Date(r)).toLocaleDateString(l, {
2713
+ Ca.displayName = "ChallengeGate";
2714
+ function Da({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, className: i }) {
2715
+ const { t: f, locale: l } = Y(), d = e ?? f("ended.title"), u = a ?? f("ended.message"), y = s.useMemo(() => r ? (r instanceof Date ? r : new Date(r)).toLocaleDateString(l, {
2705
2716
  month: "long",
2706
2717
  day: "numeric",
2707
2718
  year: "numeric"
2708
2719
  }) : null, [r, l]), g = he();
2709
- return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ c(Z, { className: D("ff:w-full ff:max-w-sm", i), "data-slot": "ended-module", role: "status", children: [
2720
+ return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", i), "data-slot": "ended-module", role: "status", children: [
2710
2721
  /* @__PURE__ */ t(Q, { variant: "outline", label: d }),
2711
2722
  /* @__PURE__ */ c(K, { children: [
2712
2723
  /* @__PURE__ */ c(se, { children: [
@@ -2718,9 +2729,9 @@ function Sa({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, clas
2718
2729
  /* @__PURE__ */ t(U, {})
2719
2730
  ] }) });
2720
2731
  }
2721
- Sa.displayName = "EndedModule";
2732
+ Da.displayName = "EndedModule";
2722
2733
  function Ke({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, className: f }) {
2723
- const { t: l } = G(), [d, u] = s.useState(!1), y = r ?? l("error.label"), g = a ?? l("error.title"), m = (e instanceof Error ? e.message : e) ?? l("error.description"), x = o ?? l("error.retry"), h = async () => {
2734
+ const { t: l } = Y(), [d, u] = s.useState(!1), y = r ?? l("error.label"), g = a ?? l("error.title"), m = (e instanceof Error ? e.message : e) ?? l("error.description"), x = o ?? l("error.retry"), h = async () => {
2724
2735
  if (i) {
2725
2736
  u(!0);
2726
2737
  try {
@@ -2730,7 +2741,7 @@ function Ke({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
2730
2741
  }
2731
2742
  }
2732
2743
  }, w = he();
2733
- return /* @__PURE__ */ t(W.div, { ...w, children: /* @__PURE__ */ c(Z, { className: D("ff:w-full ff:max-w-sm", f), "data-slot": "error-view", role: "alert", children: [
2744
+ return /* @__PURE__ */ t(W.div, { ...w, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", f), "data-slot": "error-view", role: "alert", children: [
2734
2745
  /* @__PURE__ */ t(Q, { variant: "danger", label: y }),
2735
2746
  /* @__PURE__ */ c(K, { children: [
2736
2747
  /* @__PURE__ */ t(ve, { tone: "danger", title: g, description: m }),
@@ -2752,7 +2763,7 @@ function Ke({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
2752
2763
  ] }) });
2753
2764
  }
2754
2765
  Ke.displayName = "ErrorView";
2755
- const bn = {
2766
+ const yn = {
2756
2767
  default: {
2757
2768
  particleCount: 60,
2758
2769
  spread: 70,
@@ -2784,22 +2795,22 @@ const bn = {
2784
2795
  clean: null
2785
2796
  // No confetti for clean variant - too busy
2786
2797
  };
2787
- function xn(e, a) {
2798
+ function kn(e, a) {
2788
2799
  if (Qe())
2789
2800
  return;
2790
- const r = bn[a];
2801
+ const r = yn[a];
2791
2802
  if (!r)
2792
2803
  return;
2793
2804
  const n = e.getBoundingClientRect(), o = (n.left + n.width / 2) / window.innerWidth, i = (n.top + n.height / 2) / window.innerHeight;
2794
- ir({
2805
+ lr({
2795
2806
  ...r,
2796
2807
  origin: { x: o, y: i }
2797
2808
  });
2798
2809
  }
2799
- function yn(e) {
2810
+ function _n(e) {
2800
2811
  const a = me(), r = s.useRef(!1);
2801
2812
  s.useEffect(() => {
2802
- r.current || e.current && (r.current = !0, xn(e.current, a));
2813
+ r.current || e.current && (r.current = !0, kn(e.current, a));
2803
2814
  }, [e, a]);
2804
2815
  }
2805
2816
  function et({
@@ -2810,13 +2821,13 @@ function et({
2810
2821
  onCtaClick: o,
2811
2822
  className: i
2812
2823
  }) {
2813
- const { t: f } = G(), l = s.useRef(null);
2814
- yn(l);
2824
+ const { t: f } = Y(), l = s.useRef(null);
2825
+ _n(l);
2815
2826
  const d = he();
2816
2827
  return /* @__PURE__ */ t(W.div, { ...d, children: /* @__PURE__ */ c(
2817
2828
  Z,
2818
2829
  {
2819
- className: D("ff:w-full ff:max-w-sm", i),
2830
+ className: V("ff:w-full ff:max-w-sm", i),
2820
2831
  "data-slot": "granted-panel",
2821
2832
  "data-stage": "granted",
2822
2833
  role: "status",
@@ -2835,20 +2846,33 @@ function et({
2835
2846
  ) });
2836
2847
  }
2837
2848
  et.displayName = "GrantedPanel";
2838
- function Fe({ outcomeReason: e, onReenter: a, isReentering: r, className: n }) {
2839
- const { t: o } = G(), i = e === "expired", f = i && typeof a == "function", l = he();
2840
- return /* @__PURE__ */ t(W.div, { ...l, children: /* @__PURE__ */ c(
2849
+ const Nn = {
2850
+ queue: "expired.reenter.queue",
2851
+ draw: "expired.reenter.draw",
2852
+ auction: "expired.reenter.auction",
2853
+ timed_release: "expired.reenter.timedRelease",
2854
+ appointment: "expired.reenter.appointment"
2855
+ };
2856
+ function Fe({
2857
+ outcomeReason: e,
2858
+ participationType: a,
2859
+ onReenter: r,
2860
+ isReentering: n,
2861
+ className: o
2862
+ }) {
2863
+ const { t: i } = Y(), f = e === "expired", l = f && typeof r == "function", d = i(a ? Nn[a] : "expired.reenter"), u = he();
2864
+ return /* @__PURE__ */ t(W.div, { ...u, children: /* @__PURE__ */ c(
2841
2865
  Z,
2842
2866
  {
2843
- className: D("ff:w-full ff:max-w-sm", n),
2867
+ className: V("ff:w-full ff:max-w-sm", o),
2844
2868
  "data-slot": "outcome-panel",
2845
2869
  "data-stage": "ended",
2846
2870
  "data-reason": e,
2847
2871
  children: [
2848
- /* @__PURE__ */ t(Q, { variant: "outline", label: o(i ? "expired.title" : "ended.title") }),
2872
+ /* @__PURE__ */ t(Q, { variant: "outline", label: i(f ? "expired.title" : "ended.title") }),
2849
2873
  /* @__PURE__ */ c(K, { children: [
2850
- /* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: o(i ? "expired.description" : "ended.message") }) }),
2851
- f && /* @__PURE__ */ t(F, { className: "ff:mt-auto", onClick: a, disabled: r, loading: r, children: o("expired.reenter") })
2874
+ /* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: i(f ? "expired.description" : "ended.message") }) }),
2875
+ l && /* @__PURE__ */ t(F, { className: "ff:mt-auto", onClick: r, disabled: n, loading: n, children: d })
2852
2876
  ] }),
2853
2877
  /* @__PURE__ */ t(U, {})
2854
2878
  ]
@@ -2856,7 +2880,7 @@ function Fe({ outcomeReason: e, onReenter: a, isReentering: r, className: n }) {
2856
2880
  ) });
2857
2881
  }
2858
2882
  Fe.displayName = "OutcomePanel";
2859
- function Ca({
2883
+ function Va({
2860
2884
  stage: e,
2861
2885
  onAuthSubmit: a,
2862
2886
  onAuthVerify: r,
@@ -2877,7 +2901,7 @@ function Ca({
2877
2901
  return e === "none" ? /* @__PURE__ */ t(Ce, { children: h }) : e === "loading" ? /* @__PURE__ */ t(
2878
2902
  "div",
2879
2903
  {
2880
- className: D(
2904
+ className: V(
2881
2905
  "fanfare-journey-gate",
2882
2906
  "ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12",
2883
2907
  x
@@ -2888,8 +2912,8 @@ function Ca({
2888
2912
  "aria-busy": "true",
2889
2913
  children: /* @__PURE__ */ t(De, { size: "lg", className: "ff:text-primary" })
2890
2914
  }
2891
- ) : e === "auth" ? /* @__PURE__ */ t("div", { className: D("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
2892
- ya,
2915
+ ) : e === "auth" ? /* @__PURE__ */ t("div", { className: V("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
2916
+ _a,
2893
2917
  {
2894
2918
  title: u,
2895
2919
  description: y,
@@ -2900,8 +2924,8 @@ function Ca({
2900
2924
  onSuccess: o,
2901
2925
  allowSkip: l
2902
2926
  }
2903
- ) }) : e === "access_code" ? /* @__PURE__ */ t("div", { className: D("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
2904
- _a,
2927
+ ) }) : e === "access_code" ? /* @__PURE__ */ t("div", { className: V("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
2928
+ Sa,
2905
2929
  {
2906
2930
  title: g,
2907
2931
  description: b,
@@ -2912,29 +2936,29 @@ function Ca({
2912
2936
  }
2913
2937
  ) }) : null;
2914
2938
  }
2915
- Ca.displayName = "JourneyGate";
2916
- function kn(e, a) {
2939
+ Va.displayName = "JourneyGate";
2940
+ function Sn(e, a) {
2917
2941
  return jt(e, { weekday: "long", timeZone: a });
2918
2942
  }
2919
- function _n(e, a) {
2943
+ function Cn(e, a) {
2920
2944
  return jt(e, { month: "long", day: "numeric", timeZone: a });
2921
2945
  }
2922
2946
  function Ft(e, a) {
2923
2947
  return jt(e, { hour: "numeric", minute: "2-digit", timeZone: a });
2924
2948
  }
2925
- function Da(e, a) {
2949
+ function Ea(e, a) {
2926
2950
  const r = Date.parse(e), n = Date.parse(a);
2927
2951
  if (!Number.isFinite(r) || !Number.isFinite(n)) return null;
2928
2952
  const o = Math.round((n - r) / 6e4);
2929
2953
  return o > 0 ? o : null;
2930
2954
  }
2931
- function Va(e) {
2955
+ function Ma(e) {
2932
2956
  if (!e.startTime) return e.id;
2933
2957
  const a = Ft(e.startTime, e.timezone);
2934
2958
  return a === e.startTime ? e.id : a;
2935
2959
  }
2936
2960
  function jt(e, a) {
2937
- const r = Nn(e);
2961
+ const r = Dn(e);
2938
2962
  if (!r) return e;
2939
2963
  try {
2940
2964
  return new Intl.DateTimeFormat(void 0, a).format(r);
@@ -2942,7 +2966,7 @@ function jt(e, a) {
2942
2966
  return e;
2943
2967
  }
2944
2968
  }
2945
- function Nn(e) {
2969
+ function Dn(e) {
2946
2970
  try {
2947
2971
  const a = new Date(e);
2948
2972
  return Number.isNaN(a.getTime()) ? null : a;
@@ -2963,11 +2987,11 @@ function ct(e, a) {
2963
2987
  return e.toISOString().slice(0, 10);
2964
2988
  }
2965
2989
  }
2966
- function ta(e, a) {
2990
+ function ra(e, a) {
2967
2991
  const [r, n, o] = e.split("-").map(Number);
2968
2992
  return !r || !n || !o ? e : new Date(Date.UTC(r, n - 1, o + a)).toISOString().slice(0, 10);
2969
2993
  }
2970
- function Sn(e) {
2994
+ function Vn(e) {
2971
2995
  const [a, r, n] = e.split("-").map(Number);
2972
2996
  if (!a || !r || !n) return "";
2973
2997
  const o = new Date(Date.UTC(a, r - 1, n, 12, 0, 0));
@@ -2977,11 +3001,11 @@ function Sn(e) {
2977
3001
  return "";
2978
3002
  }
2979
3003
  }
2980
- function Cn(e) {
3004
+ function En(e) {
2981
3005
  const [, , a] = e.split("-").map(Number);
2982
3006
  return a ?? 0;
2983
3007
  }
2984
- const Dn = ne(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
3008
+ const Mn = ne(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
2985
3009
  variants: {
2986
3010
  styleVariant: {
2987
3011
  default: "",
@@ -3006,13 +3030,13 @@ const Dn = ne(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
3006
3030
  defaultVariants: {
3007
3031
  styleVariant: "default"
3008
3032
  }
3009
- }), Ma = s.forwardRef(({ className: e, ...a }, r) => {
3033
+ }), Ta = s.forwardRef(({ className: e, ...a }, r) => {
3010
3034
  const n = me();
3011
- return /* @__PURE__ */ t("div", { ref: r, "data-slot": "skeleton", className: D(Dn({ styleVariant: n }), e), ...a });
3035
+ return /* @__PURE__ */ t("div", { ref: r, "data-slot": "skeleton", className: V(Mn({ styleVariant: n }), e), ...a });
3012
3036
  });
3013
- Ma.displayName = "Skeleton";
3014
- const Vn = (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" }) }), Mn = wt(Vn), 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: "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" }) }), Ea = wt(En);
3015
- function Ta({
3037
+ Ta.displayName = "Skeleton";
3038
+ const Tn = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5m-9-6h.008v.008H12zM12 15h.008v.008H12zm0 2.25h.008v.008H12zM9.75 15h.008v.008H9.75zm0 2.25h.008v.008H9.75zM7.5 15h.008v.008H7.5zm0 2.25h.008v.008H7.5zm6.75-4.5h.008v.008h-.008zm0 2.25h.008v.008h-.008zm0 2.25h.008v.008h-.008zm2.25-4.5h.008v.008H16.5zm0 2.25h.008v.008H16.5z" }) }), Rn = wt(Tn), Ln = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "m15.75 10.5l4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25" }) }), Ra = wt(Ln);
3039
+ function La({
3016
3040
  booking: e,
3017
3041
  timezone: a,
3018
3042
  readOnly: r = !1,
@@ -3023,17 +3047,17 @@ function Ta({
3023
3047
  isCancelling: l,
3024
3048
  cancelError: d
3025
3049
  }) {
3026
- const { t: u } = G(), [y, g] = s.useState(!1), b = kn(e.startTime, a), m = _n(e.startTime, a), x = Ft(e.startTime, a), h = Da(e.startTime, e.endTime), w = !e.locationName, p = w ? u("appointment.online") : e.locationName, v = w ? {
3050
+ const { t: u } = Y(), [y, g] = s.useState(!1), b = Sn(e.startTime, a), m = Cn(e.startTime, a), x = Ft(e.startTime, a), h = Ea(e.startTime, e.endTime), w = !e.locationName, p = w ? u("appointment.online") : e.locationName, v = w ? {
3027
3051
  label: u("appointment.joinCall"),
3028
3052
  onClick: () => {
3029
3053
  f ? f() : e.joinUrl && window.open(e.joinUrl, "_blank", "noopener,noreferrer");
3030
3054
  },
3031
- icon: /* @__PURE__ */ t(Ea, { className: "ff:size-4" }),
3055
+ icon: /* @__PURE__ */ t(Ra, { className: "ff:size-4" }),
3032
3056
  disabled: !e.joinUrl && !f
3033
3057
  } : {
3034
3058
  label: u("appointment.addToCalendar"),
3035
3059
  onClick: () => i?.(),
3036
- icon: /* @__PURE__ */ t(Mn, { className: "ff:size-4" }),
3060
+ icon: /* @__PURE__ */ t(Rn, { className: "ff:size-4" }),
3037
3061
  disabled: !i
3038
3062
  };
3039
3063
  return /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:gap-4", "data-slot": "appointment-booking-details", children: [
@@ -3096,9 +3120,9 @@ function Ta({
3096
3120
  ] })
3097
3121
  ] });
3098
3122
  }
3099
- Ta.displayName = "AppointmentBookingDetails";
3100
- function Ra({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
3101
- const { t: o } = G(), i = !e.locationName, f = Ft(e.startTime, a), l = Da(e.startTime, e.endTime), d = o("appointment.youreUpAt", { values: { time: f } }), u = i ? o("appointment.youreUpOnlineHint") : o("appointment.youreUpIrlHint", { values: { location: e.locationName ?? "" } });
3123
+ La.displayName = "AppointmentBookingDetails";
3124
+ function Aa({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
3125
+ const { t: o } = Y(), i = !e.locationName, f = Ft(e.startTime, a), l = Ea(e.startTime, e.endTime), d = o("appointment.youreUpAt", { values: { time: f } }), u = i ? o("appointment.youreUpOnlineHint") : o("appointment.youreUpIrlHint", { values: { location: e.locationName ?? "" } });
3102
3126
  return /* @__PURE__ */ c(
3103
3127
  "div",
3104
3128
  {
@@ -3136,7 +3160,7 @@ function Ra({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
3136
3160
  r ? r() : e.joinUrl && window.open(e.joinUrl, "_blank", "noopener,noreferrer");
3137
3161
  },
3138
3162
  children: /* @__PURE__ */ c("span", { className: "ff:flex ff:items-center ff:gap-1.5", children: [
3139
- /* @__PURE__ */ t(Ea, { className: "ff:size-4" }),
3163
+ /* @__PURE__ */ t(Ra, { className: "ff:size-4" }),
3140
3164
  o("appointment.joinCall")
3141
3165
  ] })
3142
3166
  }
@@ -3145,20 +3169,20 @@ function Ra({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
3145
3169
  }
3146
3170
  );
3147
3171
  }
3148
- Ra.displayName = "AppointmentCheckedInView";
3149
- const Tn = 3e4, Ct = /* @__PURE__ */ new Map();
3150
- function aa(e, a, r, n) {
3172
+ Aa.displayName = "AppointmentCheckedInView";
3173
+ const An = 3e4, Ct = /* @__PURE__ */ new Map();
3174
+ function na(e, a, r, n) {
3151
3175
  return `${e}:${a}:${r}:${n ?? ""}`;
3152
3176
  }
3153
- function Rn(e, a) {
3177
+ function In(e, a) {
3154
3178
  const r = bt(), [n, o] = s.useState([]), [i, f] = s.useState(!1), [l, d] = s.useState(null), [u, y] = s.useState(0), { startDate: g, endDate: b, timezone: m } = a;
3155
3179
  s.useEffect(() => {
3156
3180
  if (!e || !g || !b) {
3157
3181
  o([]), d(null), f(!1);
3158
3182
  return;
3159
3183
  }
3160
- const h = aa(e, g, b, m), w = Ct.get(h);
3161
- if (w && Date.now() - w.fetchedAt < Tn) {
3184
+ const h = na(e, g, b, m), w = Ct.get(h);
3185
+ if (w && Date.now() - w.fetchedAt < An) {
3162
3186
  o(w.slots), d(null);
3163
3187
  return;
3164
3188
  }
@@ -3174,11 +3198,11 @@ function Rn(e, a) {
3174
3198
  };
3175
3199
  }, [r, e, g, b, m, u]);
3176
3200
  const x = s.useCallback(() => {
3177
- e && g && b && Ct.delete(aa(e, g, b, m)), y((h) => h + 1);
3201
+ e && g && b && Ct.delete(na(e, g, b, m)), y((h) => h + 1);
3178
3202
  }, [e, g, b, m]);
3179
3203
  return { slots: n, isLoading: i, error: l, refresh: x };
3180
3204
  }
3181
- function La({ days: e, selectedDate: a, onSelect: r }) {
3205
+ function Ia({ days: e, selectedDate: a, onSelect: r }) {
3182
3206
  return /* @__PURE__ */ t(
3183
3207
  "div",
3184
3208
  {
@@ -3224,8 +3248,8 @@ function La({ days: e, selectedDate: a, onSelect: r }) {
3224
3248
  }
3225
3249
  );
3226
3250
  }
3227
- La.displayName = "AppointmentDayTabs";
3228
- function Aa({
3251
+ Ia.displayName = "AppointmentDayTabs";
3252
+ function za({
3229
3253
  slotId: e,
3230
3254
  timeLabel: a,
3231
3255
  ariaLabel: r,
@@ -3253,16 +3277,16 @@ function Aa({
3253
3277
  }
3254
3278
  );
3255
3279
  }
3256
- Aa.displayName = "AppointmentSlotItem";
3257
- const Ln = 9;
3258
- function Ia({
3280
+ za.displayName = "AppointmentSlotItem";
3281
+ const zn = 9;
3282
+ function Fa({
3259
3283
  slots: e,
3260
3284
  isLoading: a,
3261
3285
  selectedSlotId: r,
3262
3286
  onSelect: n,
3263
3287
  emptyMessage: o
3264
3288
  }) {
3265
- const { t: i } = G();
3289
+ const { t: i } = Y();
3266
3290
  return a ? /* @__PURE__ */ t(
3267
3291
  "div",
3268
3292
  {
@@ -3272,7 +3296,7 @@ function Ia({
3272
3296
  className: "ff:grid ff:grid-cols-3 ff:gap-1 ff:max-h-44",
3273
3297
  "data-slot": "appointment-slot-grid",
3274
3298
  "data-state": "loading",
3275
- children: Array.from({ length: Ln }).map((f, l) => /* @__PURE__ */ t(Ma, { className: "ff:h-8 ff:w-full" }, l))
3299
+ children: Array.from({ length: zn }).map((f, l) => /* @__PURE__ */ t(Ta, { className: "ff:h-8 ff:w-full" }, l))
3276
3300
  }
3277
3301
  ) : e.length === 0 ? /* @__PURE__ */ t(se, { "data-slot": "appointment-slot-grid", "data-state": "empty", children: /* @__PURE__ */ t("span", { className: "ff:text-muted", children: o ?? i("appointment.noSlotsAvailable") }) }) : /* @__PURE__ */ t(
3278
3302
  "div",
@@ -3282,9 +3306,9 @@ function Ia({
3282
3306
  className: "ff:grid ff:grid-cols-3 ff:gap-1 ff:overflow-y-auto ff:max-h-44",
3283
3307
  "data-slot": "appointment-slot-grid",
3284
3308
  children: e.map((f) => {
3285
- const l = f.available <= 0, d = r === f.id, u = Va(f), y = l ? i("appointment.slotFullAriaLabel", { values: { time: u } }) : u;
3309
+ const l = f.available <= 0, d = r === f.id, u = Ma(f), y = l ? i("appointment.slotFullAriaLabel", { values: { time: u } }) : u;
3286
3310
  return /* @__PURE__ */ t(
3287
- Aa,
3311
+ za,
3288
3312
  {
3289
3313
  slotId: f.id,
3290
3314
  timeLabel: u,
@@ -3299,9 +3323,9 @@ function Ia({
3299
3323
  }
3300
3324
  );
3301
3325
  }
3302
- Ia.displayName = "AppointmentSlotGrid";
3303
- const ra = 7;
3304
- function za({
3326
+ Fa.displayName = "AppointmentSlotGrid";
3327
+ const oa = 7;
3328
+ function ja({
3305
3329
  appointmentId: e,
3306
3330
  bookingWindowOpenAt: a,
3307
3331
  bookingWindowCloseAt: r,
@@ -3309,60 +3333,60 @@ function za({
3309
3333
  onSlotChange: o,
3310
3334
  bookError: i
3311
3335
  }) {
3312
- const { t: f } = G(), l = s.useMemo(
3336
+ const { t: f } = Y(), l = s.useMemo(
3313
3337
  () => a ? ct(new Date(a), n) : void 0,
3314
3338
  [a, n]
3315
3339
  ), d = s.useMemo(
3316
3340
  () => r ? ct(new Date(r), n) : void 0,
3317
3341
  [r, n]
3318
3342
  ), { startDate: u, endDate: y } = s.useMemo(() => {
3319
- const V = ct(/* @__PURE__ */ new Date(), n), N = l && l > V ? l : V, T = ta(N, ra - 1), L = d && d < T ? d : T;
3343
+ const D = ct(/* @__PURE__ */ new Date(), n), N = l && l > D ? l : D, T = ra(N, oa - 1), L = d && d < T ? d : T;
3320
3344
  return { startDate: N, endDate: L };
3321
- }, [l, d, n]), { slots: g, isLoading: b, error: m } = Rn(e, { startDate: u, endDate: y, timezone: n }), x = s.useMemo(() => {
3322
- const V = /* @__PURE__ */ new Map();
3345
+ }, [l, d, n]), { slots: g, isLoading: b, error: m } = In(e, { startDate: u, endDate: y, timezone: n }), x = s.useMemo(() => {
3346
+ const D = /* @__PURE__ */ new Map();
3323
3347
  for (const N of g) {
3324
- const T = N.startTime ? ct(new Date(N.startTime), N.timezone ?? n) : N.id.slice(0, 10), L = V.get(T);
3325
- L ? L.push(N) : V.set(T, [N]);
3348
+ const T = N.startTime ? ct(new Date(N.startTime), N.timezone ?? n) : N.id.slice(0, 10), L = D.get(T);
3349
+ L ? L.push(N) : D.set(T, [N]);
3326
3350
  }
3327
- return V;
3351
+ return D;
3328
3352
  }, [g, n]), h = s.useMemo(() => {
3329
- const V = [];
3330
- for (let N = 0; N < ra; N += 1) {
3331
- const T = ta(u, N);
3353
+ const D = [];
3354
+ for (let N = 0; N < oa; N += 1) {
3355
+ const T = ra(u, N);
3332
3356
  if (d && T > d) break;
3333
3357
  const L = x.get(T) ?? [], $ = L.some((X) => X.available > 0), P = !b && L.length === 0;
3334
- V.push({
3358
+ D.push({
3335
3359
  date: T,
3336
- weekdayLabel: Sn(T),
3337
- dayNumber: Cn(T),
3360
+ weekdayLabel: Vn(T),
3361
+ dayNumber: En(T),
3338
3362
  hasAvailability: $,
3339
3363
  isClosed: P
3340
3364
  });
3341
3365
  }
3342
- return V;
3343
- }, [u, d, x, b]), [w, p] = s.useState(null), [v, E] = s.useState(null);
3366
+ return D;
3367
+ }, [u, d, x, b]), [w, p] = s.useState(null), [v, M] = s.useState(null);
3344
3368
  s.useEffect(() => {
3345
3369
  if (w && h.some((N) => N.date === w && !N.isClosed)) return;
3346
- const V = h.find((N) => !N.isClosed);
3347
- V && (p(V.date), E(null));
3370
+ const D = h.find((N) => !N.isClosed);
3371
+ D && (p(D.date), M(null));
3348
3372
  }, [h, w]);
3349
- const M = s.useMemo(() => w ? x.get(w) ?? [] : [], [w, x]);
3373
+ const E = s.useMemo(() => w ? x.get(w) ?? [] : [], [w, x]);
3350
3374
  s.useEffect(() => {
3351
3375
  if (!o) return;
3352
- const V = M.find((N) => N.id === v) ?? null;
3353
- o(V);
3354
- }, [M, v, o]);
3355
- const _ = s.useCallback((V) => {
3356
- p(V), E(null);
3357
- }, []), S = s.useCallback((V) => {
3358
- E((N) => N === V ? null : V);
3376
+ const D = E.find((N) => N.id === v) ?? null;
3377
+ o(D);
3378
+ }, [E, v, o]);
3379
+ const _ = s.useCallback((D) => {
3380
+ p(D), M(null);
3381
+ }, []), S = s.useCallback((D) => {
3382
+ M((N) => N === D ? null : D);
3359
3383
  }, []);
3360
3384
  return /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:gap-2", children: [
3361
- /* @__PURE__ */ t(La, { days: h, selectedDate: w, onSelect: _ }),
3385
+ /* @__PURE__ */ t(Ia, { days: h, selectedDate: w, onSelect: _ }),
3362
3386
  /* @__PURE__ */ t(
3363
- Ia,
3387
+ Fa,
3364
3388
  {
3365
- slots: M,
3389
+ slots: E,
3366
3390
  isLoading: b,
3367
3391
  selectedSlotId: v,
3368
3392
  onSelect: S
@@ -3371,9 +3395,9 @@ function za({
3371
3395
  (i || m) && /* @__PURE__ */ t(ve, { tone: "danger", description: i ?? m?.message ?? f("appointment.bookingFailed") })
3372
3396
  ] });
3373
3397
  }
3374
- za.displayName = "AppointmentSlotPicker";
3375
- const An = ze({});
3376
- function Et({
3398
+ ja.displayName = "AppointmentSlotPicker";
3399
+ const Fn = ze({});
3400
+ function Mt({
3377
3401
  appointmentId: e,
3378
3402
  state$: a,
3379
3403
  sequencePhase: r,
@@ -3394,19 +3418,19 @@ function Et({
3394
3418
  isReentering: p,
3395
3419
  className: v
3396
3420
  }) {
3397
- const { t: E } = G(), M = Me(a ?? An), [_, S] = s.useState(!1), V = he();
3421
+ const { t: M } = Y(), E = Ee(a ?? Fn), [_, S] = s.useState(!1), D = he();
3398
3422
  if (r === "ended")
3399
- return /* @__PURE__ */ t(Fe, { outcomeReason: h ?? "ended", className: v });
3423
+ return /* @__PURE__ */ t(Fe, { outcomeReason: h ?? "ended", participationType: "appointment", className: v });
3400
3424
  if (r === "participating" && _)
3401
3425
  return /* @__PURE__ */ t(
3402
- na,
3426
+ fa,
3403
3427
  {
3404
3428
  appointmentId: e,
3405
3429
  bookingWindowOpenAt: n,
3406
3430
  bookingWindowCloseAt: o,
3407
3431
  timezone: i,
3408
3432
  defaultLocationId: f,
3409
- headingLabel: E("appointment.rescheduleTitle"),
3433
+ headingLabel: M("appointment.rescheduleTitle"),
3410
3434
  headingVariant: "default",
3411
3435
  confirmLabelKey: "appointment.continueWithTime",
3412
3436
  idleLabelKey: "appointment.selectATime",
@@ -3416,24 +3440,24 @@ function Et({
3416
3440
  await u(N, T), S(!1);
3417
3441
  },
3418
3442
  className: v,
3419
- motionProps: V,
3443
+ motionProps: D,
3420
3444
  dataStage: "participating",
3421
3445
  dataMode: "reschedule"
3422
3446
  }
3423
3447
  );
3424
3448
  if (r === "participating") {
3425
- const N = M.booking, T = N?.consumerStatus, L = T === "checked_in", $ = T === "completed", P = $ ? "completed" : L ? "checked_in" : "booked", X = E($ ? "appointment.completedTitle" : L ? "appointment.checkedIn" : "appointment.bookedTitle");
3426
- return /* @__PURE__ */ t(W.div, { ...V, children: /* @__PURE__ */ c(
3449
+ const N = E.booking, T = N?.consumerStatus, L = T === "checked_in", $ = T === "completed", P = $ ? "completed" : L ? "checked_in" : "booked", X = M($ ? "appointment.completedTitle" : L ? "appointment.checkedIn" : "appointment.bookedTitle");
3450
+ return /* @__PURE__ */ t(W.div, { ...D, children: /* @__PURE__ */ c(
3427
3451
  Z,
3428
3452
  {
3429
- className: D("ff:w-full ff:max-w-sm", v),
3453
+ className: V("ff:w-full ff:max-w-sm", v),
3430
3454
  "data-slot": "appointment-module",
3431
3455
  "data-stage": "participating",
3432
3456
  "data-substage": P,
3433
3457
  children: [
3434
3458
  /* @__PURE__ */ t(Q, { variant: "success", label: X }),
3435
- /* @__PURE__ */ t(K, { children: N ? L ? /* @__PURE__ */ t(Ra, { booking: N, timezone: i }) : /* @__PURE__ */ t(
3436
- Ta,
3459
+ /* @__PURE__ */ t(K, { children: N ? L ? /* @__PURE__ */ t(Aa, { booking: N, timezone: i }) : /* @__PURE__ */ t(
3460
+ La,
3437
3461
  {
3438
3462
  booking: N,
3439
3463
  timezone: i,
@@ -3443,20 +3467,20 @@ function Et({
3443
3467
  isCancelling: g,
3444
3468
  cancelError: x
3445
3469
  }
3446
- ) : /* @__PURE__ */ t("span", { className: "ff:text-muted", children: E("appointment.loadingBooking") }) })
3470
+ ) : /* @__PURE__ */ t("span", { className: "ff:text-muted", children: M("appointment.loadingBooking") }) })
3447
3471
  ]
3448
3472
  }
3449
3473
  ) });
3450
3474
  }
3451
3475
  return /* @__PURE__ */ t(
3452
- na,
3476
+ fa,
3453
3477
  {
3454
3478
  appointmentId: e,
3455
3479
  bookingWindowOpenAt: n,
3456
3480
  bookingWindowCloseAt: o,
3457
3481
  timezone: i,
3458
3482
  defaultLocationId: f,
3459
- headingLabel: E("appointment.title"),
3483
+ headingLabel: M("appointment.title"),
3460
3484
  headingVariant: "default",
3461
3485
  confirmLabelKey: "appointment.continueWithTime",
3462
3486
  idleLabelKey: "appointment.selectATime",
@@ -3464,13 +3488,13 @@ function Et({
3464
3488
  error: m,
3465
3489
  onConfirm: l,
3466
3490
  className: v,
3467
- motionProps: V,
3491
+ motionProps: D,
3468
3492
  dataStage: "enterable"
3469
3493
  }
3470
3494
  );
3471
3495
  }
3472
- Et.displayName = "AppointmentModule";
3473
- function na({
3496
+ Mt.displayName = "AppointmentModule";
3497
+ function fa({
3474
3498
  appointmentId: e,
3475
3499
  bookingWindowOpenAt: a,
3476
3500
  bookingWindowCloseAt: r,
@@ -3488,7 +3512,7 @@ function na({
3488
3512
  dataStage: x,
3489
3513
  dataMode: h
3490
3514
  }) {
3491
- const { t: w } = G(), [p, v] = s.useState(null), E = p ? w(l, { values: { time: Va(p) } }) : w(d), M = s.useCallback(async () => {
3515
+ const { t: w } = Y(), [p, v] = s.useState(null), M = p ? w(l, { values: { time: Ma(p) } }) : w(d), E = s.useCallback(async () => {
3492
3516
  if (!p) return;
3493
3517
  const _ = p.locationId ?? o;
3494
3518
  await g(p.id, _);
@@ -3496,14 +3520,14 @@ function na({
3496
3520
  return /* @__PURE__ */ t(W.div, { ...m, children: /* @__PURE__ */ c(
3497
3521
  Z,
3498
3522
  {
3499
- className: D("ff:w-full ff:max-w-sm", b),
3523
+ className: V("ff:w-full ff:max-w-sm", b),
3500
3524
  "data-slot": "appointment-module",
3501
3525
  "data-stage": x,
3502
3526
  "data-mode": h,
3503
3527
  children: [
3504
3528
  /* @__PURE__ */ t(Q, { variant: f, label: i }),
3505
3529
  /* @__PURE__ */ t(K, { className: "ff:gap-2", children: /* @__PURE__ */ t(
3506
- za,
3530
+ ja,
3507
3531
  {
3508
3532
  appointmentId: e,
3509
3533
  bookingWindowOpenAt: a,
@@ -3518,17 +3542,17 @@ function na({
3518
3542
  {
3519
3543
  size: "sm",
3520
3544
  className: "ff:w-full",
3521
- onClick: M,
3545
+ onClick: E,
3522
3546
  disabled: !p || u,
3523
3547
  loading: u,
3524
- children: E
3548
+ children: M
3525
3549
  }
3526
3550
  ) })
3527
3551
  ]
3528
3552
  }
3529
3553
  ) });
3530
3554
  }
3531
- function In(e, a) {
3555
+ function jn(e, a) {
3532
3556
  try {
3533
3557
  return new Intl.NumberFormat(a, {
3534
3558
  style: "currency",
@@ -3539,7 +3563,7 @@ function In(e, a) {
3539
3563
  return e;
3540
3564
  }
3541
3565
  }
3542
- function zn(e, a) {
3566
+ function Pn(e, a) {
3543
3567
  const r = a?.currencyCode, n = a?.minimumFractionDigits ?? 2, o = a?.maximumFractionDigits ?? 2;
3544
3568
  if (r)
3545
3569
  try {
@@ -3552,7 +3576,7 @@ function zn(e, a) {
3552
3576
  }).format(e);
3553
3577
  } catch {
3554
3578
  }
3555
- const i = a?.currencySymbol ?? (r ? In(r, a?.locale) : "$");
3579
+ const i = a?.currencySymbol ?? (r ? jn(r, a?.locale) : "$");
3556
3580
  try {
3557
3581
  const f = e.toLocaleString(a?.locale, { minimumFractionDigits: n, maximumFractionDigits: o });
3558
3582
  return `${i}${f}`;
@@ -3560,8 +3584,8 @@ function zn(e, a) {
3560
3584
  return `${i}${e.toFixed(o)}`;
3561
3585
  }
3562
3586
  }
3563
- const Fn = ze({});
3564
- function jn(e, a) {
3587
+ const Bn = ze({});
3588
+ function $n(e, a) {
3565
3589
  const r = { ...e }, n = r;
3566
3590
  for (const [o, i] of Object.entries(a))
3567
3591
  i !== void 0 && (n[o] = i);
@@ -3587,13 +3611,13 @@ function Ze({
3587
3611
  checkoutUrl: w,
3588
3612
  onCheckoutClick: p,
3589
3613
  outcomeReason: v,
3590
- onReenter: E,
3591
- isReentering: M,
3614
+ onReenter: M,
3615
+ isReentering: E,
3592
3616
  className: _
3593
3617
  }) {
3594
- const { t: S } = G(), V = Me(e ?? Fn), N = s.useMemo(
3595
- () => jn(a, V),
3596
- [a, V]
3618
+ const { t: S } = Y(), D = Ee(e ?? Bn), N = s.useMemo(
3619
+ () => $n(a, D),
3620
+ [a, D]
3597
3621
  ), T = s.useMemo(
3598
3622
  () => y ?? (N.closeAt ? new Date(N.closeAt) : void 0),
3599
3623
  [y, N.closeAt]
@@ -3604,7 +3628,7 @@ function Ze({
3604
3628
  (R) => {
3605
3629
  if (R === void 0) return;
3606
3630
  const te = parseFloat(R);
3607
- return Number.isNaN(te) ? R : zn(
3631
+ return Number.isNaN(te) ? R : Pn(
3608
3632
  te,
3609
3633
  $ ? { currencyCode: $, locale: m } : { currencySymbol: "$", locale: m }
3610
3634
  );
@@ -3621,7 +3645,7 @@ function Ze({
3621
3645
  return /* @__PURE__ */ t(W.div, { ...X, children: /* @__PURE__ */ c(
3622
3646
  Z,
3623
3647
  {
3624
- className: D("ff:w-full ff:max-w-sm", _),
3648
+ className: V("ff:w-full ff:max-w-sm", _),
3625
3649
  "data-slot": "auction-module",
3626
3650
  "data-stage": "enterable",
3627
3651
  children: [
@@ -3643,7 +3667,7 @@ function Ze({
3643
3667
  return /* @__PURE__ */ t(W.div, { ...X, children: /* @__PURE__ */ c(
3644
3668
  Z,
3645
3669
  {
3646
- className: D("ff:w-full ff:max-w-sm", _),
3670
+ className: V("ff:w-full ff:max-w-sm", _),
3647
3671
  "data-slot": "auction-module",
3648
3672
  "data-stage": "participating",
3649
3673
  children: [
@@ -3688,7 +3712,7 @@ function Ze({
3688
3712
  return /* @__PURE__ */ t(W.div, { ...X, children: /* @__PURE__ */ c(
3689
3713
  Z,
3690
3714
  {
3691
- className: D("ff:w-full ff:max-w-sm", _),
3715
+ className: V("ff:w-full ff:max-w-sm", _),
3692
3716
  "data-slot": "auction-module",
3693
3717
  "data-stage": "settling",
3694
3718
  children: [
@@ -3719,15 +3743,16 @@ function Ze({
3719
3743
  Fe,
3720
3744
  {
3721
3745
  outcomeReason: v ?? "ended",
3722
- onReenter: E,
3723
- isReentering: M,
3746
+ participationType: "auction",
3747
+ onReenter: M,
3748
+ isReentering: E,
3724
3749
  className: _
3725
3750
  }
3726
3751
  ) : null;
3727
3752
  }
3728
3753
  Ze.displayName = "AuctionModule";
3729
- const Pn = ze({});
3730
- function Ge({
3754
+ const qn = ze({});
3755
+ function Ye({
3731
3756
  state$: e,
3732
3757
  sequencePhase: a,
3733
3758
  canEnter: r,
@@ -3746,21 +3771,21 @@ function Ge({
3746
3771
  isReentering: h,
3747
3772
  className: w
3748
3773
  }) {
3749
- const { t: p } = G(), v = Me(e ?? Pn), E = s.useMemo(
3774
+ const { t: p } = Y(), v = Ee(e ?? qn), M = s.useMemo(
3750
3775
  () => d ?? (v.drawTime ? new Date(v.drawTime) : void 0),
3751
3776
  [d, v.drawTime]
3752
- ), M = s.useMemo(() => {
3777
+ ), E = s.useMemo(() => {
3753
3778
  if (y)
3754
3779
  return y instanceof Date ? y : new Date(y);
3755
3780
  }, [y]), _ = he(), S = () => {
3756
3781
  b ? b() : g && window.open(g, "_blank", "noopener,noreferrer");
3757
3782
  };
3758
- return a === "enterable" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(Z, { className: D("ff:w-full ff:max-w-sm", w), "data-slot": "draw-module", "data-stage": "enterable", children: [
3783
+ return a === "enterable" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", w), "data-slot": "draw-module", "data-stage": "enterable", children: [
3759
3784
  /* @__PURE__ */ t(Q, { variant: "default", label: p("draw.title") }),
3760
3785
  /* @__PURE__ */ c(K, { children: [
3761
- E && /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3786
+ M && /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3762
3787
  /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: p("draw.drawClosesIn") }),
3763
- /* @__PURE__ */ t(de, { targetDate: E, showDays: !1 })
3788
+ /* @__PURE__ */ t(de, { targetDate: M, showDays: !1 })
3764
3789
  ] }),
3765
3790
  r && /* @__PURE__ */ t(F, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children: p("draw.enter") })
3766
3791
  ] }),
@@ -3768,18 +3793,18 @@ function Ge({
3768
3793
  ] }) }) : a === "participating" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(
3769
3794
  Z,
3770
3795
  {
3771
- className: D("ff:w-full ff:max-w-sm", w),
3796
+ className: V("ff:w-full ff:max-w-sm", w),
3772
3797
  "data-slot": "draw-module",
3773
3798
  "data-stage": "participating",
3774
3799
  children: [
3775
3800
  /* @__PURE__ */ t(Q, { variant: "success", label: p("draw.entered") }),
3776
3801
  /* @__PURE__ */ c(K, { children: [
3777
3802
  v.entryNumber && /* @__PURE__ */ t("span", { className: "ff:text-xs ff:text-muted ff:font-mono", children: v.entryNumber }),
3778
- E ? /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3803
+ M ? /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3779
3804
  /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: p("draw.drawHappensIn") }),
3780
- /* @__PURE__ */ t(de, { targetDate: E, showDays: !1 })
3805
+ /* @__PURE__ */ t(de, { targetDate: M, showDays: !1 })
3781
3806
  ] }) : null,
3782
- /* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: p(E ? "draw.goodLuck" : "draw.stayTuned") }) }),
3807
+ /* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: p(M ? "draw.goodLuck" : "draw.stayTuned") }) }),
3783
3808
  n && /* @__PURE__ */ t(
3784
3809
  F,
3785
3810
  {
@@ -3795,7 +3820,7 @@ function Ge({
3795
3820
  /* @__PURE__ */ t(U, {})
3796
3821
  ]
3797
3822
  }
3798
- ) }) : a === "settling" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(Z, { className: D("ff:w-full ff:max-w-sm", w), "data-slot": "draw-module", "data-stage": "settling", children: [
3823
+ ) }) : a === "settling" ? /* @__PURE__ */ t(W.div, { ..._, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", w), "data-slot": "draw-module", "data-stage": "settling", children: [
3799
3824
  /* @__PURE__ */ t(Q, { variant: "default", label: p("draw.settlingTitle") }),
3800
3825
  /* @__PURE__ */ t(K, { children: /* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: p("draw.settlingDescription") }) }) }),
3801
3826
  /* @__PURE__ */ t(U, {})
@@ -3805,7 +3830,7 @@ function Ge({
3805
3830
  label: p("draw.wonTitle"),
3806
3831
  fallbackMessage: p("granted.description"),
3807
3832
  ctaLabel: p("granted.cta"),
3808
- expiresAt: M,
3833
+ expiresAt: E,
3809
3834
  onCtaClick: S,
3810
3835
  className: w
3811
3836
  }
@@ -3813,14 +3838,15 @@ function Ge({
3813
3838
  Fe,
3814
3839
  {
3815
3840
  outcomeReason: m ?? "ended",
3841
+ participationType: "draw",
3816
3842
  onReenter: x,
3817
3843
  isReentering: h,
3818
3844
  className: w
3819
3845
  }
3820
3846
  ) : null;
3821
3847
  }
3822
- Ge.displayName = "DrawModule";
3823
- const Bn = ze({});
3848
+ Ye.displayName = "DrawModule";
3849
+ const On = ze({});
3824
3850
  function ut({
3825
3851
  state$: e,
3826
3852
  sequencePhase: a,
@@ -3840,14 +3866,14 @@ function ut({
3840
3866
  isReentering: h,
3841
3867
  className: w
3842
3868
  }) {
3843
- const { t: p } = G(), v = Me(e ?? Bn), E = s.useMemo(() => {
3869
+ const { t: p } = Y(), v = Ee(e ?? On), M = s.useMemo(() => {
3844
3870
  if (y)
3845
3871
  return y instanceof Date ? y : new Date(y);
3846
- }, [y]), M = he(), _ = () => {
3872
+ }, [y]), E = he(), _ = () => {
3847
3873
  b ? b() : g && window.open(g, "_blank", "noopener,noreferrer");
3848
3874
  };
3849
3875
  if (a === "enterable")
3850
- return /* @__PURE__ */ t(W.div, { ...M, children: /* @__PURE__ */ c(Z, { className: D("ff:w-full ff:max-w-sm", w), "data-slot": "queue-module", "data-stage": "enterable", children: [
3876
+ return /* @__PURE__ */ t(W.div, { ...E, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", w), "data-slot": "queue-module", "data-stage": "enterable", children: [
3851
3877
  /* @__PURE__ */ t(Q, { variant: "default", label: p("queue.openingSoon") }),
3852
3878
  /* @__PURE__ */ c(K, { children: [
3853
3879
  d && /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
@@ -3859,11 +3885,11 @@ function ut({
3859
3885
  /* @__PURE__ */ t(U, {})
3860
3886
  ] }) });
3861
3887
  if (a === "participating") {
3862
- const S = v.estimatedWaitTime, V = S != null ? Math.ceil(S / 60) : null, N = (P) => P < 1 ? p("queue.waitLessThanMinute") : P === 1 ? p("queue.waitOneMinute") : p("queue.waitMinutes", { values: { count: P } }), T = S != null ? sr(S) : null, L = T ? p(lr(T)) : null, $ = V !== null ? N(V) : "...";
3863
- return /* @__PURE__ */ t(W.div, { ...M, children: /* @__PURE__ */ c(
3888
+ const S = v.estimatedWaitTime, D = S != null ? Math.ceil(S / 60) : null, N = (P) => P < 1 ? p("queue.waitLessThanMinute") : P === 1 ? p("queue.waitOneMinute") : p("queue.waitMinutes", { values: { count: P } }), T = S != null ? cr(S) : null, L = T ? p(dr(T)) : null, $ = D !== null ? N(D) : "...";
3889
+ return /* @__PURE__ */ t(W.div, { ...E, children: /* @__PURE__ */ c(
3864
3890
  Z,
3865
3891
  {
3866
- className: D("ff:w-full ff:max-w-sm", w),
3892
+ className: V("ff:w-full ff:max-w-sm", w),
3867
3893
  "data-slot": "queue-module",
3868
3894
  "data-stage": "participating",
3869
3895
  children: [
@@ -3898,7 +3924,7 @@ function ut({
3898
3924
  label: p("queue.granted"),
3899
3925
  fallbackMessage: p("queue.grantedMessage"),
3900
3926
  ctaLabel: p("granted.cta"),
3901
- expiresAt: E,
3927
+ expiresAt: M,
3902
3928
  onCtaClick: _,
3903
3929
  className: w
3904
3930
  }
@@ -3906,6 +3932,7 @@ function ut({
3906
3932
  Fe,
3907
3933
  {
3908
3934
  outcomeReason: m ?? "ended",
3935
+ participationType: "queue",
3909
3936
  onReenter: x,
3910
3937
  isReentering: h,
3911
3938
  className: w
@@ -3913,7 +3940,7 @@ function ut({
3913
3940
  ) : null;
3914
3941
  }
3915
3942
  ut.displayName = "QueueModule";
3916
- const $n = ze({});
3943
+ const Wn = ze({});
3917
3944
  function pt({
3918
3945
  state$: e,
3919
3946
  sequencePhase: a,
@@ -3934,16 +3961,16 @@ function pt({
3934
3961
  isReentering: w,
3935
3962
  className: p
3936
3963
  }) {
3937
- const { t: v } = G(), E = Me(e ?? $n), M = s.useMemo(() => {
3964
+ const { t: v } = Y(), M = Ee(e ?? Wn), E = s.useMemo(() => {
3938
3965
  if (m)
3939
3966
  return m instanceof Date ? m : new Date(m);
3940
- }, [m]), _ = y ?? E.checkoutUrl, S = he(), V = () => {
3967
+ }, [m]), _ = y ?? M.checkoutUrl, S = he(), D = () => {
3941
3968
  g ? g() : _ && window.open(_, "_blank", "noopener,noreferrer");
3942
3969
  };
3943
3970
  return a === "enterable" ? /* @__PURE__ */ t(W.div, { ...S, children: /* @__PURE__ */ c(
3944
3971
  Z,
3945
3972
  {
3946
- className: D("ff:w-full ff:max-w-sm", p),
3973
+ className: V("ff:w-full ff:max-w-sm", p),
3947
3974
  "data-slot": "timed-release-module",
3948
3975
  "data-stage": "enterable",
3949
3976
  children: [
@@ -3962,7 +3989,7 @@ function pt({
3962
3989
  ) }) : a === "participating" ? /* @__PURE__ */ t(W.div, { ...S, children: /* @__PURE__ */ c(
3963
3990
  Z,
3964
3991
  {
3965
- className: D("ff:w-full ff:max-w-sm", p),
3992
+ className: V("ff:w-full ff:max-w-sm", p),
3966
3993
  "data-slot": "timed-release-module",
3967
3994
  "data-stage": "participating",
3968
3995
  children: [
@@ -3974,7 +4001,7 @@ function pt({
3974
4001
  ] }),
3975
4002
  /* @__PURE__ */ t(se, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: v("timedRelease.browseAndComplete") }) }),
3976
4003
  /* @__PURE__ */ c("div", { className: "ff:mt-auto ff:flex ff:flex-col ff:gap-2", children: [
3977
- _ && /* @__PURE__ */ t(F, { className: "ff:w-full", onClick: V, children: v("timedRelease.shop") }),
4004
+ _ && /* @__PURE__ */ t(F, { className: "ff:w-full", onClick: D, children: v("timedRelease.shop") }),
3978
4005
  f && /* @__PURE__ */ t(
3979
4006
  F,
3980
4007
  {
@@ -4006,14 +4033,15 @@ function pt({
4006
4033
  label: v("timedRelease.granted"),
4007
4034
  fallbackMessage: v("granted.description"),
4008
4035
  ctaLabel: v("granted.cta"),
4009
- expiresAt: M,
4010
- onCtaClick: V,
4036
+ expiresAt: E,
4037
+ onCtaClick: D,
4011
4038
  className: p
4012
4039
  }
4013
4040
  ) : a === "ended" ? /* @__PURE__ */ t(
4014
4041
  Fe,
4015
4042
  {
4016
4043
  outcomeReason: x ?? "ended",
4044
+ participationType: "timed_release",
4017
4045
  onReenter: h,
4018
4046
  isReentering: w,
4019
4047
  className: p
@@ -4031,8 +4059,8 @@ function Tt({
4031
4059
  isEntering: f = !1,
4032
4060
  className: l
4033
4061
  }) {
4034
- const { t: d } = G(), u = e ?? d("upcoming.title"), y = a ?? d("upcoming.description"), g = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), b = he();
4035
- return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ c(Z, { className: D("ff:w-full ff:max-w-sm", l), "data-slot": "upcoming-module", children: [
4062
+ const { t: d } = Y(), u = e ?? d("upcoming.title"), y = a ?? d("upcoming.description"), g = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), b = he();
4063
+ return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ c(Z, { className: V("ff:w-full ff:max-w-sm", l), "data-slot": "upcoming-module", children: [
4036
4064
  /* @__PURE__ */ t(Q, { variant: "secondary", label: u }),
4037
4065
  /* @__PURE__ */ c(K, { children: [
4038
4066
  g && /* @__PURE__ */ c("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
@@ -4053,11 +4081,11 @@ function Tt({
4053
4081
  ] }) });
4054
4082
  }
4055
4083
  Tt.displayName = "UpcomingModule";
4056
- const qn = {
4084
+ const Un = {
4057
4085
  initial: { opacity: 1 },
4058
4086
  animate: { opacity: 1 },
4059
4087
  transition: { duration: 0 }
4060
- }, On = {
4088
+ }, Hn = {
4061
4089
  default: {
4062
4090
  initial: { opacity: 0, scale: 0.95 },
4063
4091
  animate: { opacity: 1, scale: 1 },
@@ -4078,7 +4106,7 @@ const qn = {
4078
4106
  animate: { opacity: 1 },
4079
4107
  transition: { duration: 0.4, ease: "easeInOut" }
4080
4108
  }
4081
- }, Wn = ne("ff:flex ff:items-center ff:justify-center", {
4109
+ }, Kn = ne("ff:flex ff:items-center ff:justify-center", {
4082
4110
  variants: {
4083
4111
  styleVariant: {
4084
4112
  default: "ff:w-16 ff:h-16 ff:rounded-full ff:bg-primary/5",
@@ -4092,7 +4120,7 @@ const qn = {
4092
4120
  }
4093
4121
  },
4094
4122
  defaultVariants: { styleVariant: "default" }
4095
- }), Un = ne("ff:mt-4 ff:text-sm", {
4123
+ }), Zn = ne("ff:mt-4 ff:text-sm", {
4096
4124
  variants: {
4097
4125
  styleVariant: {
4098
4126
  default: "ff:text-muted",
@@ -4104,7 +4132,7 @@ const qn = {
4104
4132
  defaultVariants: { styleVariant: "default" }
4105
4133
  });
4106
4134
  function Rt({ message: e, className: a }) {
4107
- const r = me(), n = Qe() ? qn : On[r], o = r === "clean" ? "md" : "lg";
4135
+ const r = me(), n = Qe() ? Un : Hn[r], o = r === "clean" ? "md" : "lg";
4108
4136
  return /* @__PURE__ */ c(
4109
4137
  W.div,
4110
4138
  {
@@ -4113,16 +4141,16 @@ function Rt({ message: e, className: a }) {
4113
4141
  role: "status",
4114
4142
  "aria-live": "polite",
4115
4143
  "aria-busy": "true",
4116
- className: D("ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12", a),
4144
+ className: V("ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12", a),
4117
4145
  children: [
4118
- /* @__PURE__ */ t("div", { className: D(Wn({ styleVariant: r })), children: /* @__PURE__ */ t(De, { size: o }) }),
4119
- e && /* @__PURE__ */ t("p", { className: D(Un({ styleVariant: r })), children: e })
4146
+ /* @__PURE__ */ t("div", { className: V(Kn({ styleVariant: r })), children: /* @__PURE__ */ t(De, { size: o }) }),
4147
+ e && /* @__PURE__ */ t("p", { className: V(Zn({ styleVariant: r })), children: e })
4120
4148
  ]
4121
4149
  }
4122
4150
  );
4123
4151
  }
4124
4152
  Rt.displayName = "LoadingView";
4125
- function Fa({
4153
+ function Pa({
4126
4154
  variant: e,
4127
4155
  label: a,
4128
4156
  title: r,
@@ -4134,8 +4162,8 @@ function Fa({
4134
4162
  isLoading: d = !1,
4135
4163
  className: u
4136
4164
  }) {
4137
- const { t: y } = G(), g = he();
4138
- return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ c(Z, { className: D("fanfare-start-view", u), "data-slot": "start-view", children: [
4165
+ const { t: y } = Y(), g = he();
4166
+ return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ c(Z, { className: V("fanfare-start-view", u), "data-slot": "start-view", children: [
4139
4167
  /* @__PURE__ */ t(
4140
4168
  Q,
4141
4169
  {
@@ -4156,8 +4184,8 @@ function Fa({
4156
4184
  /* @__PURE__ */ t(U, {})
4157
4185
  ] }) });
4158
4186
  }
4159
- Fa.displayName = "StartView";
4160
- function ja({
4187
+ Pa.displayName = "StartView";
4188
+ function Ba({
4161
4189
  title: e,
4162
4190
  description: a,
4163
4191
  startsAt: r,
@@ -4166,8 +4194,8 @@ function ja({
4166
4194
  isLeaving: i = !1,
4167
4195
  className: f
4168
4196
  }) {
4169
- const { t: l } = G(), d = e ?? l("waitlist.enteredTitle"), u = a ?? l("waitlist.enteredDescription"), y = l("time.opensIn"), g = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), b = he();
4170
- return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ c(Z, { className: D("fanfare-waitlist-view", f), "data-slot": "waitlist-view", children: [
4197
+ const { t: l } = Y(), d = e ?? l("waitlist.enteredTitle"), u = a ?? l("waitlist.enteredDescription"), y = l("time.opensIn"), g = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), b = he();
4198
+ return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ c(Z, { className: V("fanfare-waitlist-view", f), "data-slot": "waitlist-view", children: [
4171
4199
  /* @__PURE__ */ t(Q, { variant: "success", title: d, description: u }),
4172
4200
  /* @__PURE__ */ c(K, { children: [
4173
4201
  g && /* @__PURE__ */ c(se, { children: [
@@ -4196,52 +4224,52 @@ function ja({
4196
4224
  /* @__PURE__ */ t(U, {})
4197
4225
  ] }) });
4198
4226
  }
4199
- ja.displayName = "WaitlistView";
4200
- const Hn = ze({});
4201
- function Kn(e) {
4227
+ Ba.displayName = "WaitlistView";
4228
+ const Yn = ze({});
4229
+ function Gn(e) {
4202
4230
  return "mechanism" in e && e.mechanism === "auction" && "bid" in e;
4203
4231
  }
4204
4232
  function Se(e) {
4205
4233
  return e === "queue" || e === "draw" || e === "auction" || e === "timed_release" || e === "appointment";
4206
4234
  }
4207
- function oa(e) {
4235
+ function ia(e) {
4208
4236
  return Se(e) || e === "waitlist";
4209
4237
  }
4210
- function Zn(e) {
4238
+ function Jn(e) {
4211
4239
  return e?.phase === "enterable" && Se(e.mechanism);
4212
4240
  }
4213
- function Gn(e) {
4241
+ function Qn(e) {
4214
4242
  return e?.phase === "participating" && Se(e.mechanism);
4215
4243
  }
4216
- function Yn(e) {
4244
+ function Xn(e) {
4217
4245
  return e?.phase === "granted";
4218
4246
  }
4219
4247
  function tt(e) {
4220
4248
  return e?.journeyStage === "routed" ? e.sequence : void 0;
4221
4249
  }
4222
- function Jn(e, a) {
4250
+ function eo(e, a) {
4223
4251
  const r = tt(e);
4224
- return r && "mechanism" in r && oa(r.mechanism) ? r.mechanism : a?.phase === "participating" && "consumer" in a && "mechanism" in a.consumer && oa(a.consumer.mechanism) ? a.consumer.mechanism : null;
4252
+ return r && "mechanism" in r && ia(r.mechanism) ? r.mechanism : a?.phase === "participating" && "consumer" in a && "mechanism" in a.consumer && ia(a.consumer.mechanism) ? a.consumer.mechanism : null;
4225
4253
  }
4226
- function Qn(e) {
4254
+ function to(e) {
4227
4255
  const a = tt(e);
4228
4256
  if (!(!a || !("distribution" in a)))
4229
4257
  return a.distribution;
4230
4258
  }
4231
- function Xn(e) {
4259
+ function ao(e) {
4232
4260
  const a = tt(e);
4233
4261
  if (!(!a || !("target" in a)))
4234
4262
  return a.target;
4235
4263
  }
4236
- function eo(e) {
4264
+ function ro(e) {
4237
4265
  const a = tt(e);
4238
4266
  if (!(!a || !("consumer" in a)))
4239
4267
  return a.consumer;
4240
4268
  }
4241
- function to(e, a) {
4269
+ function no(e, a) {
4242
4270
  return e ? "distributionId" in e && typeof e.distributionId == "string" && e.distributionId ? e.distributionId : "waitlistId" in e && typeof e.waitlistId == "string" && e.waitlistId ? e.waitlistId : e.id ?? a ?? null : a ?? null;
4243
4271
  }
4244
- function ao({
4272
+ function oo({
4245
4273
  experienceId: e,
4246
4274
  autoStart: a = !1,
4247
4275
  accessCode: r,
@@ -4256,11 +4284,11 @@ function ao({
4256
4284
  onError: g,
4257
4285
  className: b
4258
4286
  }) {
4259
- const m = bt(), { t: x } = G(), { journey: h, view: w, snapshot: p, error: v, start: E } = ua(e, {
4287
+ const m = bt(), { t: x } = Y(), { journey: h, view: w, snapshot: p, error: v, start: M } = ga(e, {
4260
4288
  autoStart: a,
4261
4289
  accessCode: r,
4262
4290
  autoEnterWaitlist: n
4263
- }), [M, _] = s.useState(!1), [S, V] = s.useState(!1), [N, T] = s.useState(!1), [L, $] = s.useState(!1), [P, X] = s.useState(!1), [ce, B] = s.useState(null), R = w?.journeyStage ?? null, te = w?.journeyStage === "routed" ? w : void 0, H = tt(p), j = H?.phase ?? te?.sequence.phase ?? null, ae = ce ?? v, Y = p?.experience?.experience?.theme, J = o ?? Y, ue = i ?? o?.variant ?? Y?.variant, le = re(() => p ? ia(p) : [], [p]);
4291
+ }), [E, _] = s.useState(!1), [S, D] = s.useState(!1), [N, T] = s.useState(!1), [L, $] = s.useState(!1), [P, X] = s.useState(!1), [ce, B] = s.useState(null), R = w?.journeyStage ?? null, te = w?.journeyStage === "routed" ? w : void 0, H = tt(p), j = H?.phase ?? te?.sequence.phase ?? null, ae = ce ?? v, G = p?.experience?.experience?.theme, J = o ?? G, ue = i ?? o?.variant ?? G?.variant, le = re(() => p ? la(p) : [], [p]);
4264
4292
  s.useEffect(() => {
4265
4293
  p && u && u(p);
4266
4294
  }, [p, u]), s.useEffect(() => {
@@ -4275,17 +4303,17 @@ function ao({
4275
4303
  ), pe = O(async () => {
4276
4304
  _(!0), B(null);
4277
4305
  try {
4278
- await E();
4306
+ await M();
4279
4307
  } catch (k) {
4280
4308
  I(k);
4281
4309
  } finally {
4282
4310
  _(!1);
4283
4311
  }
4284
- }, [I, E]), [ye, Ee] = s.useState(null), je = O(
4312
+ }, [I, M]), [ye, Me] = s.useState(null), je = O(
4285
4313
  async (k, C) => {
4286
4314
  B(null);
4287
4315
  try {
4288
- C === "email" ? await m.auth.requestOtp({ email: k }) : await m.auth.requestOtp({ phone: k }), Ee({ value: k, type: C });
4316
+ C === "email" ? await m.auth.requestOtp({ email: k }) : await m.auth.requestOtp({ phone: k }), Me({ value: k, type: C });
4289
4317
  } catch (A) {
4290
4318
  I(A);
4291
4319
  }
@@ -4296,7 +4324,7 @@ function ao({
4296
4324
  if (!(!h || !ye)) {
4297
4325
  B(null);
4298
4326
  try {
4299
- ye.type === "email" ? await m.auth.verifyOtp({ email: ye.value, code: k }) : await m.auth.verifyOtp({ phone: ye.value, code: k }), Ee(null);
4327
+ ye.type === "email" ? await m.auth.verifyOtp({ email: ye.value, code: k }) : await m.auth.verifyOtp({ phone: ye.value, code: k }), Me(null);
4300
4328
  const C = h.view$.get();
4301
4329
  C.journeyStage === "gated" && await C.reroute();
4302
4330
  } catch (C) {
@@ -4320,14 +4348,14 @@ function ao({
4320
4348
  [I, h]
4321
4349
  ), Te = O(async () => {
4322
4350
  if (h) {
4323
- V(!0), B(null);
4351
+ D(!0), B(null);
4324
4352
  try {
4325
4353
  const k = h.view$.get();
4326
4354
  k.journeyStage === "routed" && k.sequence.phase === "enterable" && k.sequence.mechanism === "waitlist" && await k.sequence.enter();
4327
4355
  } catch (k) {
4328
4356
  I(k);
4329
4357
  } finally {
4330
- V(!1);
4358
+ D(!1);
4331
4359
  }
4332
4360
  }
4333
4361
  }, [I, h]), Be = O(async () => {
@@ -4383,7 +4411,7 @@ function ao({
4383
4411
  B(null);
4384
4412
  try {
4385
4413
  const C = h.view$.get();
4386
- C.journeyStage === "routed" && Kn(C.sequence) && await C.sequence.bid(k);
4414
+ C.journeyStage === "routed" && Gn(C.sequence) && await C.sequence.bid(k);
4387
4415
  } catch (C) {
4388
4416
  I(C);
4389
4417
  }
@@ -4457,11 +4485,11 @@ function ao({
4457
4485
  B(null);
4458
4486
  const k = h.view$.get();
4459
4487
  k.journeyStage === "gated" && k.retry().catch(I);
4460
- }, [I, h]), z = re(() => w?.journeyStage === "routed" && "sequence" in w ? w.sequence : void 0, [w]), ge = Jn(p, z), Pa = Qn(p), it = Xn(p), fe = Pa, Ba = eo(p), qt = to(Ba, it?.id ?? fe?.id), Ve = H && "grant" in H && H.grant ? H.grant : void 0, We = H && "outcome" in H && H.outcome ? H.outcome : void 0;
4488
+ }, [I, h]), z = re(() => w?.journeyStage === "routed" && "sequence" in w ? w.sequence : void 0, [w]), ge = eo(p, z), $a = to(p), it = ao(p), fe = $a, qa = ro(p), qt = no(qa, it?.id ?? fe?.id), Ve = H && "grant" in H && H.grant ? H.grant : void 0, We = H && "outcome" in H && H.outcome ? H.outcome : void 0;
4461
4489
  s.useEffect(() => {
4462
4490
  Ve?.token && y && y(Ve.token);
4463
4491
  }, [Ve?.token, y]);
4464
- const $a = re(() => Se(ge) ? ge : Se(fe?.type) ? fe.type : null, [fe?.type, ge]), kt = re(() => Se(ge) ? ge : null, [ge]), Ot = re(() => Se(ge) ? ge : Se(fe?.type) ? fe.type : null, [fe?.type, ge]), Wt = re(() => z?.phase === "enterable" && z.mechanism === "waitlist" && typeof z.enter == "function", [z]), Ue = re(() => {
4492
+ const Oa = re(() => Se(ge) ? ge : Se(fe?.type) ? fe.type : null, [fe?.type, ge]), kt = re(() => Se(ge) ? ge : null, [ge]), Ot = re(() => Se(ge) ? ge : Se(fe?.type) ? fe.type : null, [fe?.type, ge]), Wt = re(() => z?.phase === "enterable" && z.mechanism === "waitlist" && typeof z.enter == "function", [z]), Ue = re(() => {
4465
4493
  if (R === "routing") return "loading";
4466
4494
  if (R === "gated" && le.length > 0) {
4467
4495
  const k = le[0];
@@ -4474,7 +4502,7 @@ function ao({
4474
4502
  }, [R, x]), Le = re(() => {
4475
4503
  if (!(!h || j !== "participating" || !z || z.phase !== "participating" || !("state$" in z)))
4476
4504
  return z.state$;
4477
- }, [h, j, z]), lt = Me(Le ?? Hn), Ut = re(() => {
4505
+ }, [h, j, z]), lt = Ee(Le ?? Yn), Ut = re(() => {
4478
4506
  const k = fe?.details?.type === "auction" ? fe.details : void 0, C = z?.phase === "participating" && z.mechanism === "auction" ? z.consumer : void 0, A = lt;
4479
4507
  if (!(!k && !C && !A))
4480
4508
  return {
@@ -4487,24 +4515,24 @@ function ao({
4487
4515
  minNextBid: A?.minNextBid ?? k?.minNextBid,
4488
4516
  bidIncrement: A?.bidIncrement ?? k?.bidIncrement
4489
4517
  };
4490
- }, [lt, z, fe?.details]), Ne = re(() => z?.phase === "scheduled" && z.startsAt ? new Date(z.startsAt) : ge === "waitlist" && it?.opensAt ? new Date(it.opensAt) : fe?.opensAt ? new Date(fe.opensAt) : void 0, [it?.opensAt, z, fe?.opensAt, ge]), qa = re(() => {
4518
+ }, [lt, z, fe?.details]), Ne = re(() => z?.phase === "scheduled" && z.startsAt ? new Date(z.startsAt) : ge === "waitlist" && it?.opensAt ? new Date(it.opensAt) : fe?.opensAt ? new Date(fe.opensAt) : void 0, [it?.opensAt, z, fe?.opensAt, ge]), Wa = re(() => {
4491
4519
  if (!(j !== "participating" || kt !== "queue"))
4492
4520
  return lt?.position;
4493
4521
  }, [lt, kt, j]);
4494
4522
  if (l)
4495
- return /* @__PURE__ */ t(Vt, { theme: J, variant: ue, children: /* @__PURE__ */ t("div", { className: D("fanfare-experience-widget", b), "data-slot": "experience-widget", children: l({
4523
+ return /* @__PURE__ */ t(Vt, { theme: J, variant: ue, children: /* @__PURE__ */ t("div", { className: V("fanfare-experience-widget", b), "data-slot": "experience-widget", children: l({
4496
4524
  journey: h,
4497
4525
  view: w,
4498
4526
  snapshot: p,
4499
4527
  error: ae,
4500
4528
  start: pe,
4501
- isStarting: M
4529
+ isStarting: E
4502
4530
  }) }) });
4503
- const ie = { snapshot: p, view: w, error: ae }, Oa = () => {
4531
+ const ie = { snapshot: p, view: w, error: ae }, Ua = () => {
4504
4532
  if (ae)
4505
4533
  return f?.error ? f.error({ ...ie, error: ae, onRetry: Oe }) : /* @__PURE__ */ t(Ke, { error: ae, onRetry: Oe });
4506
4534
  if (R === "ready")
4507
- return f?.start ? f.start({ ...ie, onStart: pe, isStarting: M }) : /* @__PURE__ */ t(Fa, { onStart: pe, isLoading: M });
4535
+ return f?.start ? f.start({ ...ie, onStart: pe, isStarting: E }) : /* @__PURE__ */ t(Pa, { onStart: pe, isLoading: E });
4508
4536
  if (Ue !== "none")
4509
4537
  return Ue === "auth" && f?.auth ? f.auth({
4510
4538
  ...ie,
@@ -4514,7 +4542,7 @@ function ao({
4514
4542
  ...ie,
4515
4543
  onSubmit: Pe
4516
4544
  }) : Ue === "loading" && f?.loading ? f.loading({ ...ie, message: st }) : /* @__PURE__ */ t(
4517
- Ca,
4545
+ Va,
4518
4546
  {
4519
4547
  stage: Ue,
4520
4548
  startsAt: Ne,
@@ -4532,7 +4560,7 @@ function ao({
4532
4560
  onVerifyToken: Bt,
4533
4561
  onRetry: $t
4534
4562
  }) : /* @__PURE__ */ t(
4535
- Na,
4563
+ Ca,
4536
4564
  {
4537
4565
  challenge: C,
4538
4566
  botMitigation: A,
@@ -4547,7 +4575,7 @@ function ao({
4547
4575
  return f?.ended ? f.ended({
4548
4576
  ...ie,
4549
4577
  reason: z?.phase === "unavailable" ? z.reason ?? "unavailable" : "unavailable"
4550
- }) : /* @__PURE__ */ t(Sa, { title: x("experience.noSequenceTitle"), message: x("experience.noSequenceMessage") });
4578
+ }) : /* @__PURE__ */ t(Da, { title: x("experience.noSequenceTitle"), message: x("experience.noSequenceMessage") });
4551
4579
  if (j === "scheduled")
4552
4580
  return f?.upcoming ? f.upcoming({
4553
4581
  ...ie,
@@ -4578,21 +4606,21 @@ function ao({
4578
4606
  startsAt: Ne,
4579
4607
  onLeave: Be,
4580
4608
  isLeaving: N
4581
- }) : /* @__PURE__ */ t(ja, { startsAt: Ne, onLeave: Be, isLeaving: N });
4609
+ }) : /* @__PURE__ */ t(Ba, { startsAt: Ne, onLeave: Be, isLeaving: N });
4582
4610
  if (j === "enterable" || j === "participating") {
4583
- const k = j === "enterable" ? $a : kt, C = j === "participating" ? qt : fe?.id, A = z?.phase === "enterable" && "enter" in z && typeof z.enter == "function", Ae = z?.phase === "participating" && "leave" in z;
4584
- if (j === "enterable" && f?.enterable && Zn(z))
4611
+ const k = j === "enterable" ? Oa : kt, C = j === "participating" ? qt : fe?.id, A = z?.phase === "enterable" && "enter" in z && typeof z.enter == "function", Ae = z?.phase === "participating" && "leave" in z;
4612
+ if (j === "enterable" && f?.enterable && Jn(z))
4585
4613
  return f.enterable({
4586
4614
  ...ie,
4587
4615
  sequence: z,
4588
4616
  participationType: z.mechanism
4589
4617
  });
4590
- if (j === "participating" && f?.participating && Gn(z))
4618
+ if (j === "participating" && f?.participating && Qn(z))
4591
4619
  return f.participating({
4592
4620
  ...ie,
4593
4621
  sequence: z,
4594
4622
  participationType: z.mechanism,
4595
- position: qa
4623
+ position: Wa
4596
4624
  });
4597
4625
  const xe = fe?.details;
4598
4626
  if (C)
@@ -4617,7 +4645,7 @@ function ao({
4617
4645
  case "draw": {
4618
4646
  const ee = xe?.type === "draw" ? xe : void 0;
4619
4647
  return /* @__PURE__ */ t(
4620
- Ge,
4648
+ Ye,
4621
4649
  {
4622
4650
  state$: Le,
4623
4651
  sequencePhase: j,
@@ -4674,7 +4702,7 @@ function ao({
4674
4702
  case "appointment": {
4675
4703
  const ee = xe?.type === "appointment" ? xe : void 0;
4676
4704
  return /* @__PURE__ */ t(
4677
- Et,
4705
+ Mt,
4678
4706
  {
4679
4707
  appointmentId: C,
4680
4708
  state$: Le,
@@ -4705,7 +4733,7 @@ function ao({
4705
4733
  case "draw": {
4706
4734
  const C = k?.type === "draw" ? k : void 0;
4707
4735
  return /* @__PURE__ */ t(
4708
- Ge,
4736
+ Ye,
4709
4737
  {
4710
4738
  state$: void 0,
4711
4739
  sequencePhase: "settling",
@@ -4744,7 +4772,7 @@ function ao({
4744
4772
  }
4745
4773
  if (j === "granted") {
4746
4774
  const k = Ve?.expiresAt ? new Date(Ve.expiresAt).getTime() : void 0;
4747
- if (f?.granted && Yn(z))
4775
+ if (f?.granted && Xn(z))
4748
4776
  return f.granted({
4749
4777
  ...ie,
4750
4778
  sequence: z,
@@ -4767,7 +4795,7 @@ function ao({
4767
4795
  case "queue":
4768
4796
  return /* @__PURE__ */ t(ut, { ...C });
4769
4797
  case "draw":
4770
- return /* @__PURE__ */ t(Ge, { ...C });
4798
+ return /* @__PURE__ */ t(Ye, { ...C });
4771
4799
  case "auction":
4772
4800
  return /* @__PURE__ */ t(Ze, { ...C });
4773
4801
  case "timed_release":
@@ -4799,20 +4827,20 @@ function ao({
4799
4827
  onLeave: we,
4800
4828
  isEntering: !1,
4801
4829
  isLeaving: !1,
4802
- outcomeReason: Xt(k)
4830
+ outcomeReason: ta(k)
4803
4831
  };
4804
4832
  switch (Ot) {
4805
4833
  case "queue":
4806
4834
  return /* @__PURE__ */ t(ut, { ...C });
4807
4835
  case "draw":
4808
- return /* @__PURE__ */ t(Ge, { ...C });
4836
+ return /* @__PURE__ */ t(Ye, { ...C });
4809
4837
  case "auction":
4810
4838
  return /* @__PURE__ */ t(Ze, { ...C });
4811
4839
  case "timed_release":
4812
4840
  return /* @__PURE__ */ t(pt, { ...C });
4813
4841
  case "appointment":
4814
4842
  return /* @__PURE__ */ t(
4815
- Et,
4843
+ Mt,
4816
4844
  {
4817
4845
  appointmentId: qt ?? fe?.id ?? "",
4818
4846
  sequencePhase: "ended",
@@ -4822,7 +4850,7 @@ function ao({
4822
4850
  isBooking: !1,
4823
4851
  isCancelling: !1,
4824
4852
  isRescheduling: !1,
4825
- outcomeReason: Xt(k)
4853
+ outcomeReason: ta(k)
4826
4854
  }
4827
4855
  );
4828
4856
  }
@@ -4830,12 +4858,12 @@ function ao({
4830
4858
  }
4831
4859
  }
4832
4860
  return f?.loading ? f.loading({ ...ie, message: st }) : /* @__PURE__ */ t(Rt, { message: st });
4833
- }, Wa = `${R ?? "loading"}-${j ?? "unavailable"}`;
4834
- return /* @__PURE__ */ t(Vt, { theme: J, variant: ue, children: /* @__PURE__ */ t("div", { className: D("fanfare-experience-widget", b), "data-slot": "experience-widget", children: /* @__PURE__ */ t(Ye, { transitionKey: Wa, children: Oa() }) }) });
4861
+ }, Ha = `${R ?? "loading"}-${j ?? "unavailable"}`;
4862
+ return /* @__PURE__ */ t(Vt, { theme: J, variant: ue, children: /* @__PURE__ */ t("div", { className: V("fanfare-experience-widget", b), "data-slot": "experience-widget", children: /* @__PURE__ */ t(Ge, { transitionKey: Ha, children: Ua() }) }) });
4835
4863
  }
4836
- ao.displayName = "ExperienceWidget";
4837
- const ro = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ff-font-sans:"Inter",system-ui,sans-serif;--ff-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ff-color-neutral-50:oklch(98.5% 0 0);--ff-color-neutral-200:oklch(92.2% 0 0);--ff-color-neutral-300:oklch(87% 0 0);--ff-color-neutral-500:oklch(55.6% 0 0);--ff-color-white:#fff;--ff-spacing:.25rem;--ff-container-sm:24rem;--ff-text-xs:.75rem;--ff-text-xs--line-height:calc(1/.75);--ff-text-sm:.875rem;--ff-text-sm--line-height:calc(1.25/.875);--ff-text-base:1rem;--ff-text-base--line-height: 1.5 ;--ff-text-lg:1.125rem;--ff-text-lg--line-height:calc(1.75/1.125);--ff-text-xl:1.25rem;--ff-text-xl--line-height:calc(1.75/1.25);--ff-text-2xl:1.5rem;--ff-text-2xl--line-height:calc(2/1.5);--ff-text-3xl:1.875rem;--ff-text-3xl--line-height: 1.2 ;--ff-text-4xl:2.25rem;--ff-text-4xl--line-height:calc(2.5/2.25);--ff-font-weight-extralight:200;--ff-font-weight-light:300;--ff-font-weight-normal:400;--ff-font-weight-medium:500;--ff-font-weight-semibold:600;--ff-font-weight-bold:700;--ff-font-weight-extrabold:800;--ff-font-weight-black:900;--ff-tracking-tight:-.025em;--ff-tracking-normal:0em;--ff-tracking-wide:.025em;--ff-tracking-wider:.05em;--ff-tracking-widest:.1em;--ff-leading-tight:1.25;--ff-radius-md:.375rem;--ff-radius-lg:.5rem;--ff-radius-xl:.75rem;--ff-radius-2xl:1rem;--ff-radius-3xl:1.5rem;--ff-ease-out:cubic-bezier(0,0,.2,1);--ff-animate-spin:spin 1s linear infinite;--ff-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ff-default-transition-duration:.15s;--ff-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ff-default-font-family:var(--ff-font-sans);--ff-default-mono-font-family:var(--ff-font-mono);--ff-color-primary:#1d1f27;--ff-color-primary-foreground:#fff;--ff-color-secondary:#f4f4f5;--ff-color-background:#fff;--ff-color-surface:transparent;--ff-color-surface-foreground:#1d1f27;--ff-color-foreground:#1d1f27;--ff-color-muted:#4b4e56cc;--ff-color-muted-foreground:#4b4e5699;--ff-color-border:#4b4e5666;--ff-color-success:oklch(77% .18 130);--ff-color-success-foreground:#111;--ff-color-warning:oklch(72% .18 65);--ff-color-warning-foreground:#111;--ff-color-danger:oklch(63% .24 25);--ff-color-danger-foreground:#fff;--ff-font-heading:"Inter",system-ui,sans-serif;--ff-text-xxs:.625rem;--ff-text-xxs--line-height:.875rem;--ff-animate-fade-in:fade-in .2s ease-out;--ff-animate-fade-out:fade-out .2s ease-out;--ff-animate-slide-in:slide-in .2s ease-out;--ff-animate-slide-out:slide-out .2s ease-out;--ff-animate-scale-in:scale-in .2s ease-out;--ff-animate-scale-out:scale-out .2s ease-out;--ff-animate-accordion-down:accordion-down .2s ease-out;--ff-animate-accordion-up:accordion-up .2s ease-out;--ff-animate-celebration:celebration-bounce .6s ease-out;--ff-animate-shake:shake .5s ease-out;--ff-animate-pulse-success:pulse-success 1s ease-out}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ff-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ff-default-font-feature-settings,normal);font-variation-settings:var(--ff-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ff-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ff-default-mono-font-feature-settings,normal);font-variation-settings:var(--ff-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fanfare-root{color:var(--ff-color-foreground);background-color:var(--ff-color-surface);font-family:var(--ff-font-sans)}.fanfare-root *,.fanfare-root :after,.fanfare-root :before,.fanfare-root ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root button:not(:disabled),.fanfare-root [role=button]:not(:disabled){cursor:pointer}@media(prefers-reduced-motion:reduce){.fanfare-root *,.fanfare-root :before,.fanfare-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.ff\\:pointer-events-none{pointer-events:none}.ff\\:absolute{position:absolute}.ff\\:relative{position:relative}.ff\\:inset-0{inset:calc(var(--ff-spacing)*0)}.ff\\:top-1\\/2{top:50%}.ff\\:top-3{top:calc(var(--ff-spacing)*3)}.ff\\:right-2{right:calc(var(--ff-spacing)*2)}.ff\\:left-3{left:calc(var(--ff-spacing)*3)}.ff\\:z-10{z-index:10}.ff\\:-mx-1{margin-inline:calc(var(--ff-spacing)*-1)}.ff\\:mx-2{margin-inline:calc(var(--ff-spacing)*2)}.ff\\:-mt-0\\.5{margin-top:calc(var(--ff-spacing)*-.5)}.ff\\:mt-0\\.5{margin-top:calc(var(--ff-spacing)*.5)}.ff\\:mt-1{margin-top:calc(var(--ff-spacing)*1)}.ff\\:mt-2{margin-top:calc(var(--ff-spacing)*2)}.ff\\:mt-3{margin-top:calc(var(--ff-spacing)*3)}.ff\\:mt-4{margin-top:calc(var(--ff-spacing)*4)}.ff\\:mt-auto{margin-top:auto}.ff\\:mb-1\\.5{margin-bottom:calc(var(--ff-spacing)*1.5)}.ff\\:mb-2{margin-bottom:calc(var(--ff-spacing)*2)}.ff\\:mb-4{margin-bottom:calc(var(--ff-spacing)*4)}.ff\\:mb-6{margin-bottom:calc(var(--ff-spacing)*6)}.ff\\:block{display:block}.ff\\:flex{display:flex}.ff\\:grid{display:grid}.ff\\:inline-block{display:inline-block}.ff\\:inline-flex{display:inline-flex}.ff\\:size-1{width:calc(var(--ff-spacing)*1);height:calc(var(--ff-spacing)*1)}.ff\\:size-1\\.5{width:calc(var(--ff-spacing)*1.5);height:calc(var(--ff-spacing)*1.5)}.ff\\:size-4{width:calc(var(--ff-spacing)*4);height:calc(var(--ff-spacing)*4)}.ff\\:size-5{width:calc(var(--ff-spacing)*5);height:calc(var(--ff-spacing)*5)}.ff\\:size-6{width:calc(var(--ff-spacing)*6);height:calc(var(--ff-spacing)*6)}.ff\\:size-8{width:calc(var(--ff-spacing)*8);height:calc(var(--ff-spacing)*8)}.ff\\:size-10{width:calc(var(--ff-spacing)*10);height:calc(var(--ff-spacing)*10)}.ff\\:h-0\\.5{height:calc(var(--ff-spacing)*.5)}.ff\\:h-1{height:calc(var(--ff-spacing)*1)}.ff\\:h-2{height:calc(var(--ff-spacing)*2)}.ff\\:h-2\\.5{height:calc(var(--ff-spacing)*2.5)}.ff\\:h-3{height:calc(var(--ff-spacing)*3)}.ff\\:h-4{height:calc(var(--ff-spacing)*4)}.ff\\:h-4\\.5{height:calc(var(--ff-spacing)*4.5)}.ff\\:h-5{height:calc(var(--ff-spacing)*5)}.ff\\:h-6{height:calc(var(--ff-spacing)*6)}.ff\\:h-8{height:calc(var(--ff-spacing)*8)}.ff\\:h-10{height:calc(var(--ff-spacing)*10)}.ff\\:h-12{height:calc(var(--ff-spacing)*12)}.ff\\:h-14{height:calc(var(--ff-spacing)*14)}.ff\\:h-16{height:calc(var(--ff-spacing)*16)}.ff\\:h-20{height:calc(var(--ff-spacing)*20)}.ff\\:h-32{height:calc(var(--ff-spacing)*32)}.ff\\:h-\\[480px\\]{height:480px}.ff\\:h-auto{height:auto}.ff\\:h-full{height:100%}.ff\\:max-h-44{max-height:calc(var(--ff-spacing)*44)}.ff\\:max-h-\\[24rem\\]{max-height:24rem}.ff\\:w-1\\/2{width:50%}.ff\\:w-1\\/3{width:33.3333%}.ff\\:w-2\\/3{width:66.6667%}.ff\\:w-3\\/4{width:75%}.ff\\:w-5\\/6{width:83.3333%}.ff\\:w-6{width:calc(var(--ff-spacing)*6)}.ff\\:w-9{width:calc(var(--ff-spacing)*9)}.ff\\:w-10{width:calc(var(--ff-spacing)*10)}.ff\\:w-12{width:calc(var(--ff-spacing)*12)}.ff\\:w-14{width:calc(var(--ff-spacing)*14)}.ff\\:w-16{width:calc(var(--ff-spacing)*16)}.ff\\:w-20{width:calc(var(--ff-spacing)*20)}.ff\\:w-40{width:calc(var(--ff-spacing)*40)}.ff\\:w-72{width:calc(var(--ff-spacing)*72)}.ff\\:w-80{width:calc(var(--ff-spacing)*80)}.ff\\:w-auto{width:auto}.ff\\:w-full{width:100%}.ff\\:max-w-sm{max-width:var(--ff-container-sm)}.ff\\:min-w-0{min-width:calc(var(--ff-spacing)*0)}.ff\\:flex-1{flex:1}.ff\\:shrink-0{flex-shrink:0}.ff\\:origin-center{transform-origin:50%}.ff\\:origin-top-left{transform-origin:0 0}.ff\\:-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:-translate-y-2{--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:animate-\\[skeleton-shimmer_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-shimmer}.ff\\:animate-\\[skeleton-slide_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-slide}.ff\\:animate-\\[spin_1\\.2s_cubic-bezier\\(0\\.4\\,0\\,0\\.6\\,1\\)_infinite\\]{animation:1.2s cubic-bezier(.4,0,.6,1) infinite spin}.ff\\:animate-\\[spin_1\\.8s_linear_infinite\\]{animation:1.8s linear infinite spin}.ff\\:animate-accordion-down{animation:var(--ff-animate-accordion-down)}.ff\\:animate-accordion-up{animation:var(--ff-animate-accordion-up)}.ff\\:animate-celebration{animation:var(--ff-animate-celebration)}.ff\\:animate-fade-in{animation:var(--ff-animate-fade-in)}.ff\\:animate-fade-out{animation:var(--ff-animate-fade-out)}.ff\\:animate-none{animation:none}.ff\\:animate-pulse{animation:var(--ff-animate-pulse)}.ff\\:animate-pulse-success{animation:var(--ff-animate-pulse-success)}.ff\\:animate-scale-in{animation:var(--ff-animate-scale-in)}.ff\\:animate-scale-out{animation:var(--ff-animate-scale-out)}.ff\\:animate-shake{animation:var(--ff-animate-shake)}.ff\\:animate-slide-in{animation:var(--ff-animate-slide-in)}.ff\\:animate-slide-out{animation:var(--ff-animate-slide-out)}.ff\\:animate-spin{animation:var(--ff-animate-spin)}.ff\\:cursor-not-allowed{cursor:not-allowed}.ff\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff\\:flex-col{flex-direction:column}.ff\\:flex-row{flex-direction:row}.ff\\:flex-wrap{flex-wrap:wrap}.ff\\:items-baseline{align-items:baseline}.ff\\:items-center{align-items:center}.ff\\:items-start{align-items:flex-start}.ff\\:justify-between{justify-content:space-between}.ff\\:justify-center{justify-content:center}.ff\\:gap-0\\.5{gap:calc(var(--ff-spacing)*.5)}.ff\\:gap-1{gap:calc(var(--ff-spacing)*1)}.ff\\:gap-1\\.5{gap:calc(var(--ff-spacing)*1.5)}.ff\\:gap-2{gap:calc(var(--ff-spacing)*2)}.ff\\:gap-3{gap:calc(var(--ff-spacing)*3)}.ff\\:gap-4{gap:calc(var(--ff-spacing)*4)}.ff\\:gap-5{gap:calc(var(--ff-spacing)*5)}.ff\\:gap-6{gap:calc(var(--ff-spacing)*6)}.ff\\:gap-10{gap:calc(var(--ff-spacing)*10)}.ff\\:gap-12{gap:calc(var(--ff-spacing)*12)}:where(.ff\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.ff\\:self-end{align-self:flex-end}.ff\\:overflow-hidden{overflow:hidden}.ff\\:overflow-visible{overflow:visible}.ff\\:overflow-x-auto{overflow-x:auto}.ff\\:overflow-y-auto{overflow-y:auto}.ff\\:rounded{border-radius:.25rem}.ff\\:rounded-2xl{border-radius:var(--ff-radius-2xl)}.ff\\:rounded-3xl{border-radius:var(--ff-radius-3xl)}.ff\\:rounded-\\[8px\\]{border-radius:8px}.ff\\:rounded-\\[10px\\]{border-radius:10px}.ff\\:rounded-\\[14px\\]{border-radius:14px}.ff\\:rounded-full{border-radius:3.40282e38px}.ff\\:rounded-lg{border-radius:var(--ff-radius-lg)}.ff\\:rounded-md{border-radius:var(--ff-radius-md)}.ff\\:rounded-none{border-radius:0}.ff\\:rounded-xl{border-radius:var(--ff-radius-xl)}.ff\\:border{border-style:var(--tw-border-style);border-width:1px}.ff\\:border-0{border-style:var(--tw-border-style);border-width:0}.ff\\:border-2{border-style:var(--tw-border-style);border-width:2px}.ff\\:border-3{border-style:var(--tw-border-style);border-width:3px}.ff\\:border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.ff\\:border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.ff\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ff\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ff\\:border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.ff\\:border-none{--tw-border-style:none;border-style:none}.ff\\:border-border,.ff\\:border-border\\/40{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/40{border-color:color-mix(in oklab,var(--ff-color-border)40%,transparent)}}.ff\\:border-border\\/50{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/50{border-color:color-mix(in oklab,var(--ff-color-border)50%,transparent)}}.ff\\:border-danger,.ff\\:border-danger\\/50{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-danger\\/50{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:border-foreground,.ff\\:border-foreground\\/8{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/8{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-foreground\\/12{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/12{border-color:color-mix(in oklab,var(--ff-color-foreground)12%,transparent)}}.ff\\:border-foreground\\/20{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/20{border-color:color-mix(in oklab,var(--ff-color-foreground)20%,transparent)}}.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-neutral-200{border-color:var(--ff-color-neutral-200)}.ff\\:border-primary{border-color:var(--ff-color-primary)}.ff\\:border-transparent{border-color:#0000}.ff\\:border-b-danger{border-bottom-color:var(--ff-color-danger)}.ff\\:bg-\\[\\#ff3a00\\]{background-color:#ff3a00}.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:color-mix(in oklch,var(--ff-color-foreground)3%,var(--ff-color-background))}}.ff\\:bg-background,.ff\\:bg-background\\/60{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/60{background-color:color-mix(in oklab,var(--ff-color-background)60%,transparent)}}.ff\\:bg-background\\/70{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/70{background-color:color-mix(in oklab,var(--ff-color-background)70%,transparent)}}.ff\\:bg-danger,.ff\\:bg-danger\\/10{background-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-danger\\/10{background-color:color-mix(in oklab,var(--ff-color-danger)10%,transparent)}}.ff\\:bg-foreground\\/5{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ff-color-foreground)5%,transparent)}}.ff\\:bg-foreground\\/40{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/40{background-color:color-mix(in oklab,var(--ff-color-foreground)40%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)10%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:bg-muted\\/5{background-color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-muted\\/5{background-color:color-mix(in oklab,var(--ff-color-muted)5%,transparent)}}.ff\\:bg-neutral-50{background-color:var(--ff-color-neutral-50)}.ff\\:bg-primary{background-color:var(--ff-color-primary)}.ff\\:bg-primary-foreground{background-color:var(--ff-color-primary-foreground)}.ff\\:bg-primary\\/5{background-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-primary\\/5{background-color:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:bg-secondary{background-color:var(--ff-color-secondary)}.ff\\:bg-success,.ff\\:bg-success\\/10{background-color:var(--ff-color-success)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-success\\/10{background-color:color-mix(in oklab,var(--ff-color-success)10%,transparent)}}.ff\\:bg-transparent{background-color:#0000}.ff\\:bg-warning,.ff\\:bg-warning\\/10{background-color:var(--ff-color-warning)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-warning\\/10{background-color:color-mix(in oklab,var(--ff-color-warning)10%,transparent)}}.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.ff\\:bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.ff\\:from-primary\\/10{--tw-gradient-from:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:from-primary\\/10{--tw-gradient-from:color-mix(in oklab,var(--ff-color-primary)10%,transparent)}}.ff\\:from-primary\\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:to-primary\\/5{--tw-gradient-to:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:to-primary\\/5{--tw-gradient-to:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:to-primary\\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:\\[background-size\\:200\\%_100\\%\\]{background-size:200% 100%}.ff\\:p-0{padding:calc(var(--ff-spacing)*0)}.ff\\:p-3{padding:calc(var(--ff-spacing)*3)}.ff\\:p-4{padding:calc(var(--ff-spacing)*4)}.ff\\:p-5{padding:calc(var(--ff-spacing)*5)}.ff\\:p-6{padding:calc(var(--ff-spacing)*6)}.ff\\:p-8{padding:calc(var(--ff-spacing)*8)}.ff\\:px-0{padding-inline:calc(var(--ff-spacing)*0)}.ff\\:px-2{padding-inline:calc(var(--ff-spacing)*2)}.ff\\:px-2\\.5{padding-inline:calc(var(--ff-spacing)*2.5)}.ff\\:px-3{padding-inline:calc(var(--ff-spacing)*3)}.ff\\:px-4{padding-inline:calc(var(--ff-spacing)*4)}.ff\\:px-5{padding-inline:calc(var(--ff-spacing)*5)}.ff\\:px-6{padding-inline:calc(var(--ff-spacing)*6)}.ff\\:py-0\\.5{padding-block:calc(var(--ff-spacing)*.5)}.ff\\:py-1{padding-block:calc(var(--ff-spacing)*1)}.ff\\:py-1\\.5{padding-block:calc(var(--ff-spacing)*1.5)}.ff\\:py-2{padding-block:calc(var(--ff-spacing)*2)}.ff\\:py-2\\.5{padding-block:calc(var(--ff-spacing)*2.5)}.ff\\:py-3{padding-block:calc(var(--ff-spacing)*3)}.ff\\:py-4{padding-block:calc(var(--ff-spacing)*4)}.ff\\:py-12{padding-block:calc(var(--ff-spacing)*12)}.ff\\:pt-2{padding-top:calc(var(--ff-spacing)*2)}.ff\\:pt-3{padding-top:calc(var(--ff-spacing)*3)}.ff\\:pt-5{padding-top:calc(var(--ff-spacing)*5)}.ff\\:pb-0\\.5{padding-bottom:calc(var(--ff-spacing)*.5)}.ff\\:pb-1{padding-bottom:calc(var(--ff-spacing)*1)}.ff\\:pb-2{padding-bottom:calc(var(--ff-spacing)*2)}.ff\\:pb-8{padding-bottom:calc(var(--ff-spacing)*8)}.ff\\:pl-7{padding-left:calc(var(--ff-spacing)*7)}.ff\\:text-center{text-align:center}.ff\\:text-right{text-align:right}.ff\\:font-heading{font-family:var(--ff-font-heading)}.ff\\:font-mono{font-family:var(--ff-font-mono)}.ff\\:text-2xl{font-size:var(--ff-text-2xl);line-height:var(--tw-leading,var(--ff-text-2xl--line-height))}.ff\\:text-3xl{font-size:var(--ff-text-3xl);line-height:var(--tw-leading,var(--ff-text-3xl--line-height))}.ff\\:text-4xl{font-size:var(--ff-text-4xl);line-height:var(--tw-leading,var(--ff-text-4xl--line-height))}.ff\\:text-base{font-size:var(--ff-text-base);line-height:var(--tw-leading,var(--ff-text-base--line-height))}.ff\\:text-lg{font-size:var(--ff-text-lg);line-height:var(--tw-leading,var(--ff-text-lg--line-height))}.ff\\:text-sm{font-size:var(--ff-text-sm);line-height:var(--tw-leading,var(--ff-text-sm--line-height))}.ff\\:text-xl{font-size:var(--ff-text-xl);line-height:var(--tw-leading,var(--ff-text-xl--line-height))}.ff\\:text-xs{font-size:var(--ff-text-xs);line-height:var(--tw-leading,var(--ff-text-xs--line-height))}.ff\\:text-xxs{font-size:var(--ff-text-xxs);line-height:var(--tw-leading,var(--ff-text-xxs--line-height))}.ff\\:text-\\[2rem\\]{font-size:2rem}.ff\\:text-\\[10\\.5px\\]{font-size:10.5px}.ff\\:text-\\[52px\\]{font-size:52px}.ff\\:leading-none{--tw-leading:1;line-height:1}.ff\\:leading-tight{--tw-leading:var(--ff-leading-tight);line-height:var(--ff-leading-tight)}.ff\\:font-black{--tw-font-weight:var(--ff-font-weight-black);font-weight:var(--ff-font-weight-black)}.ff\\:font-bold{--tw-font-weight:var(--ff-font-weight-bold);font-weight:var(--ff-font-weight-bold)}.ff\\:font-extrabold{--tw-font-weight:var(--ff-font-weight-extrabold);font-weight:var(--ff-font-weight-extrabold)}.ff\\:font-extralight{--tw-font-weight:var(--ff-font-weight-extralight);font-weight:var(--ff-font-weight-extralight)}.ff\\:font-light{--tw-font-weight:var(--ff-font-weight-light);font-weight:var(--ff-font-weight-light)}.ff\\:font-medium{--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:font-normal{--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:font-semibold{--tw-font-weight:var(--ff-font-weight-semibold);font-weight:var(--ff-font-weight-semibold)}.ff\\:tracking-\\[-0\\.025em\\]{--tw-tracking:-.025em;letter-spacing:-.025em}.ff\\:tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.ff\\:tracking-\\[0\\.08em\\]{--tw-tracking:.08em;letter-spacing:.08em}.ff\\:tracking-\\[0\\.15em\\]{--tw-tracking:.15em;letter-spacing:.15em}.ff\\:tracking-normal{--tw-tracking:var(--ff-tracking-normal);letter-spacing:var(--ff-tracking-normal)}.ff\\:tracking-tight{--tw-tracking:var(--ff-tracking-tight);letter-spacing:var(--ff-tracking-tight)}.ff\\:tracking-wide{--tw-tracking:var(--ff-tracking-wide);letter-spacing:var(--ff-tracking-wide)}.ff\\:tracking-wider{--tw-tracking:var(--ff-tracking-wider);letter-spacing:var(--ff-tracking-wider)}.ff\\:tracking-widest{--tw-tracking:var(--ff-tracking-widest);letter-spacing:var(--ff-tracking-widest)}.ff\\:whitespace-nowrap{white-space:nowrap}.ff\\:text-current{color:currentColor}.ff\\:text-danger{color:var(--ff-color-danger)}.ff\\:text-danger-foreground{color:var(--ff-color-danger-foreground)}.ff\\:text-foreground,.ff\\:text-foreground\\/80{color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-foreground\\/80{color:color-mix(in oklab,var(--ff-color-foreground)80%,transparent)}}.ff\\:text-muted{color:var(--ff-color-muted)}.ff\\:text-muted-foreground{color:var(--ff-color-muted-foreground)}.ff\\:text-muted\\/60{color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-muted\\/60{color:color-mix(in oklab,var(--ff-color-muted)60%,transparent)}}.ff\\:text-neutral-300{color:var(--ff-color-neutral-300)}.ff\\:text-neutral-500{color:var(--ff-color-neutral-500)}.ff\\:text-primary{color:var(--ff-color-primary)}.ff\\:text-primary-foreground{color:var(--ff-color-primary-foreground)}.ff\\:text-success{color:var(--ff-color-success)}.ff\\:text-success-foreground{color:var(--ff-color-success-foreground)}.ff\\:text-warning{color:var(--ff-color-warning)}.ff\\:text-warning-foreground{color:var(--ff-color-warning-foreground)}.ff\\:text-white{color:var(--ff-color-white)}.ff\\:uppercase{text-transform:uppercase}.ff\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.ff\\:accent-foreground{accent-color:var(--ff-color-foreground)}.ff\\:opacity-0{opacity:0}.ff\\:opacity-25{opacity:.25}.ff\\:opacity-40{opacity:.4}.ff\\:opacity-50{opacity:.5}.ff\\:opacity-60{opacity:.6}.ff\\:opacity-80{opacity:.8}.ff\\:shadow-\\[0_0_10px_-2px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 0 10px -2px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\,0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0000000a),0 8px 24px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0_0_12px_-6px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014),0 0 12px -6px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[3px_3px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:3px 3px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_-3px_0_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--tw-shadow:inset 0 -3px 0 var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.ff\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ff\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ff\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ff\\:ease-out{--tw-ease:var(--ff-ease-out);transition-timing-function:var(--ff-ease-out)}.ff\\:outline-none{--tw-outline-style:none;outline-style:none}.ff\\:select-none{-webkit-user-select:none;user-select:none}.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,var(--ff-color-foreground)0%,var(--ff-color-foreground)50%,var(--ff-color-foreground)100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,color-mix(in oklch,var(--ff-color-foreground)6%,transparent),color-mix(in oklch,var(--ff-color-foreground)10%,transparent),color-mix(in oklch,var(--ff-color-foreground)6%,transparent))}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,var(--ff-color-foreground)20%,var(--ff-color-foreground)80%,transparent 100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)20%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)80%,transparent 100%)}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),var(--ff-color-primary))}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),color-mix(in oklch,var(--ff-color-primary)80%,white))}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,var(--ff-color-primary)8px,var(--ff-color-primary)16px)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)16px)}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-secondary\\)\\,var\\(--ff-color-secondary\\)_4px\\,var\\(--ff-color-surface\\)_4px\\,var\\(--ff-color-surface\\)_8px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-secondary),var(--ff-color-secondary)4px,var(--ff-color-surface)4px,var(--ff-color-surface)8px)}.ff\\:\\[scrollbar-width\\:none\\]{scrollbar-width:none}.ff\\:duration-100{animation-duration:.1s}.ff\\:duration-150{animation-duration:.15s}.ff\\:duration-200{animation-duration:.2s}.ff\\:duration-300{animation-duration:.3s}.ff\\:ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.ff\\:peer-placeholder-shown\\:translate-y-0:is(:where(.ff\\:peer):placeholder-shown~*){--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-placeholder-shown\\:scale-100:is(:where(.ff\\:peer):placeholder-shown~*){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-placeholder-shown\\:font-normal:is(:where(.ff\\:peer):placeholder-shown~*){--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:peer-placeholder-shown\\:text-muted:is(:where(.ff\\:peer):placeholder-shown~*){color:var(--ff-color-muted)}.ff\\:peer-focus\\:-translate-y-2:is(:where(.ff\\:peer):focus~*){--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-focus\\:scale-75:is(:where(.ff\\:peer):focus~*){--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-focus\\:font-medium:is(:where(.ff\\:peer):focus~*){--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:peer-focus\\:text-danger:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-danger)}.ff\\:peer-focus\\:text-primary:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-primary)}.ff\\:peer-disabled\\:text-muted:is(:where(.ff\\:peer):disabled~*){color:var(--ff-color-muted)}.ff\\:peer-disabled\\:opacity-50:is(:where(.ff\\:peer):disabled~*){opacity:.5}.ff\\:placeholder\\:text-muted::placeholder{color:var(--ff-color-muted)}.ff\\:placeholder\\:opacity-0::placeholder{opacity:0}.ff\\:placeholder\\:transition-opacity::placeholder{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:placeholder\\:duration-200::placeholder{--tw-duration:.2s;transition-duration:.2s;animation-duration:.2s}.ff\\:last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.ff\\:last\\:pb-0:last-child{padding-bottom:calc(var(--ff-spacing)*0)}@media(hover:hover){.ff\\:hover\\:-translate-x-0\\.5:hover{--tw-translate-x:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-x-0:hover{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-y-0:hover{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:border-foreground:hover{border-color:var(--ff-color-foreground)}.ff\\:hover\\:bg-secondary:hover{background-color:var(--ff-color-secondary)}.ff\\:hover\\:underline:hover{text-decoration-line:underline}.ff\\:hover\\:opacity-90:hover{opacity:.9}.ff\\:hover\\:shadow-\\[0_4px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]:hover{--tw-shadow:0 4px 16px -4px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-none:hover{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.ff\\:focus\\:border-danger:focus,.ff\\:focus\\:border-danger\\/50:focus{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-danger\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:focus\\:border-primary:focus,.ff\\:focus\\:border-primary\\/50:focus{border-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-primary\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-primary)50%,transparent)}}.ff\\:focus\\:border-b-danger:focus{border-bottom-color:var(--ff-color-danger)}.ff\\:focus\\:border-b-primary:focus{border-bottom-color:var(--ff-color-primary)}.ff\\:focus\\:bg-background:focus{background-color:var(--ff-color-background)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-danger-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-danger-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-primary-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-primary-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-none:focus{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-danger:focus,.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-danger)20%,transparent)}}.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-primary)20%,transparent)}}.ff\\:focus\\:placeholder\\:opacity-100:focus::placeholder{opacity:1}.ff\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus-visible\\:ring-border:focus-visible{--tw-ring-color:var(--ff-color-border)}.ff\\:focus-visible\\:ring-danger:focus-visible{--tw-ring-color:var(--ff-color-danger)}.ff\\:focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--ff-color-primary)}.ff\\:focus-visible\\:ring-secondary:focus-visible{--tw-ring-color:var(--ff-color-secondary)}.ff\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ff\\:active\\:translate-x-0:active{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-x-0\\.5:active{--tw-translate-x:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0\\.5:active{--tw-translate-y:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]:active{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]:active{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-none:active{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ff\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.ff\\:disabled\\:opacity-35:disabled{opacity:.35}.ff\\:disabled\\:opacity-50:disabled{opacity:.5}.ff\\:\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden::-webkit-scrollbar{display:none}.ff\\:\\[\\&\\>\\*\\]\\:min-h-0>*{min-height:calc(var(--ff-spacing)*0)}.ff\\:\\[\\&\\>\\*\\]\\:flex-1>*{flex:1}.fanfare-text-balance{text-wrap:balance}.fanfare-text-pretty{text-wrap:pretty}}[data-fanfare-variant=default]{--ff-variant:"default"}[data-fanfare-variant=retro]{--ff-variant:"retro";--ff-color-background:#f4f1ea;--ff-color-foreground:#000;--ff-color-muted:#444;--ff-color-muted-foreground:#444;--ff-color-border:#000;--ff-font-sans:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-heading:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}[data-fanfare-variant=rounded]{--ff-variant:"rounded"}[data-fanfare-variant=clean]{--ff-variant:"clean";--ff-color-background:#fff;--ff-color-foreground:#0a0a0a;--ff-color-muted:#737373;--ff-color-muted-foreground:#737373;--ff-color-border:#e8e8e8;--ff-font-sans:"Figtree",system-ui,sans-serif;--ff-font-heading:"Figtree",system-ui,sans-serif;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.5rem)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes celebration-bounce{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}75%{transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes pulse-success{0%{box-shadow:0 0 0 0 var(--ff-color-success,#22c55e)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-slide{0%{background-position:-100% 0}to{background-position:200% 0}}', no = '@theme{ --color-primary: #1d1f27; --color-primary-foreground: #ffffff; --color-secondary: #f4f4f5; --color-background: #ffffff; --color-surface: transparent; --color-surface-foreground: #1d1f27; --color-foreground: #1d1f27; --color-muted: #4b4e56cc; --color-muted-foreground: #4b4e5699; --color-border: #4b4e5666; --color-success: oklch(.77 .18 130); --color-success-foreground: #111111; --color-warning: oklch(.72 .18 65); --color-warning-foreground: #111111; --color-danger: oklch(.63 .24 25); --color-danger-foreground: #ffffff; --font-sans: "Inter", system-ui, sans-serif; --font-heading: "Inter", system-ui, sans-serif; --text-xxs: .625rem; --text-xxs--line-height: .875rem; }[data-fanfare-variant=default]{--ff-variant: "default"}[data-fanfare-variant=retro]{--ff-variant: "retro";--ff-color-background: #f4f1ea;--ff-color-foreground: #000000;--ff-color-muted: #444444;--ff-color-muted-foreground: #444444;--ff-color-border: #000000;--ff-font-sans: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-heading: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}[data-fanfare-variant=rounded]{--ff-variant: "rounded"}[data-fanfare-variant=clean]{--ff-variant: "clean";--ff-color-background: #ffffff;--ff-color-foreground: #0a0a0a;--ff-color-muted: #737373;--ff-color-muted-foreground: #737373;--ff-color-border: #e8e8e8;--ff-font-sans: "Figtree", system-ui, sans-serif;--ff-font-heading: "Figtree", system-ui, sans-serif;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@layer base{.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop,.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}}';
4838
- function oo({
4864
+ oo.displayName = "ExperienceWidget";
4865
+ const fo = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ff-font-sans:"Inter",system-ui,sans-serif;--ff-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ff-color-neutral-50:oklch(98.5% 0 0);--ff-color-neutral-200:oklch(92.2% 0 0);--ff-color-neutral-300:oklch(87% 0 0);--ff-color-neutral-500:oklch(55.6% 0 0);--ff-color-white:#fff;--ff-spacing:.25rem;--ff-container-sm:24rem;--ff-text-xs:.75rem;--ff-text-xs--line-height:calc(1/.75);--ff-text-sm:.875rem;--ff-text-sm--line-height:calc(1.25/.875);--ff-text-base:1rem;--ff-text-base--line-height: 1.5 ;--ff-text-lg:1.125rem;--ff-text-lg--line-height:calc(1.75/1.125);--ff-text-xl:1.25rem;--ff-text-xl--line-height:calc(1.75/1.25);--ff-text-2xl:1.5rem;--ff-text-2xl--line-height:calc(2/1.5);--ff-text-3xl:1.875rem;--ff-text-3xl--line-height: 1.2 ;--ff-text-4xl:2.25rem;--ff-text-4xl--line-height:calc(2.5/2.25);--ff-font-weight-extralight:200;--ff-font-weight-light:300;--ff-font-weight-normal:400;--ff-font-weight-medium:500;--ff-font-weight-semibold:600;--ff-font-weight-bold:700;--ff-font-weight-extrabold:800;--ff-font-weight-black:900;--ff-tracking-tight:-.025em;--ff-tracking-normal:0em;--ff-tracking-wide:.025em;--ff-tracking-wider:.05em;--ff-tracking-widest:.1em;--ff-leading-tight:1.25;--ff-radius-md:.375rem;--ff-radius-lg:.5rem;--ff-radius-xl:.75rem;--ff-radius-2xl:1rem;--ff-radius-3xl:1.5rem;--ff-ease-out:cubic-bezier(0,0,.2,1);--ff-animate-spin:spin 1s linear infinite;--ff-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ff-default-transition-duration:.15s;--ff-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ff-default-font-family:var(--ff-font-sans);--ff-default-mono-font-family:var(--ff-font-mono);--ff-color-primary:#1d1f27;--ff-color-primary-foreground:#fff;--ff-color-secondary:#f4f4f5;--ff-color-background:#fff;--ff-color-surface:transparent;--ff-color-surface-foreground:#1d1f27;--ff-color-foreground:#1d1f27;--ff-color-muted:#4b4e56cc;--ff-color-muted-foreground:#4b4e5699;--ff-color-border:#4b4e5666;--ff-color-success:oklch(77% .18 130);--ff-color-success-foreground:#111;--ff-color-warning:oklch(72% .18 65);--ff-color-warning-foreground:#111;--ff-color-danger:oklch(63% .24 25);--ff-color-danger-foreground:#fff;--ff-font-heading:"Inter",system-ui,sans-serif;--ff-text-xxs:.625rem;--ff-text-xxs--line-height:.875rem;--ff-animate-fade-in:fade-in .2s ease-out;--ff-animate-fade-out:fade-out .2s ease-out;--ff-animate-slide-in:slide-in .2s ease-out;--ff-animate-slide-out:slide-out .2s ease-out;--ff-animate-scale-in:scale-in .2s ease-out;--ff-animate-scale-out:scale-out .2s ease-out;--ff-animate-accordion-down:accordion-down .2s ease-out;--ff-animate-accordion-up:accordion-up .2s ease-out;--ff-animate-celebration:celebration-bounce .6s ease-out;--ff-animate-shake:shake .5s ease-out;--ff-animate-pulse-success:pulse-success 1s ease-out}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ff-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ff-default-font-feature-settings,normal);font-variation-settings:var(--ff-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ff-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ff-default-mono-font-feature-settings,normal);font-variation-settings:var(--ff-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fanfare-root{color:var(--ff-color-foreground);background-color:var(--ff-color-surface);font-family:var(--ff-font-sans)}.fanfare-root *,.fanfare-root :after,.fanfare-root :before,.fanfare-root ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root button:not(:disabled),.fanfare-root [role=button]:not(:disabled){cursor:pointer}@media(prefers-reduced-motion:reduce){.fanfare-root *,.fanfare-root :before,.fanfare-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.ff\\:pointer-events-none{pointer-events:none}.ff\\:absolute{position:absolute}.ff\\:relative{position:relative}.ff\\:inset-0{inset:calc(var(--ff-spacing)*0)}.ff\\:top-1\\/2{top:50%}.ff\\:top-3{top:calc(var(--ff-spacing)*3)}.ff\\:right-2{right:calc(var(--ff-spacing)*2)}.ff\\:left-3{left:calc(var(--ff-spacing)*3)}.ff\\:z-10{z-index:10}.ff\\:-mx-1{margin-inline:calc(var(--ff-spacing)*-1)}.ff\\:mx-2{margin-inline:calc(var(--ff-spacing)*2)}.ff\\:-mt-0\\.5{margin-top:calc(var(--ff-spacing)*-.5)}.ff\\:mt-0\\.5{margin-top:calc(var(--ff-spacing)*.5)}.ff\\:mt-1{margin-top:calc(var(--ff-spacing)*1)}.ff\\:mt-2{margin-top:calc(var(--ff-spacing)*2)}.ff\\:mt-3{margin-top:calc(var(--ff-spacing)*3)}.ff\\:mt-4{margin-top:calc(var(--ff-spacing)*4)}.ff\\:mt-auto{margin-top:auto}.ff\\:mb-1\\.5{margin-bottom:calc(var(--ff-spacing)*1.5)}.ff\\:mb-2{margin-bottom:calc(var(--ff-spacing)*2)}.ff\\:mb-4{margin-bottom:calc(var(--ff-spacing)*4)}.ff\\:mb-6{margin-bottom:calc(var(--ff-spacing)*6)}.ff\\:block{display:block}.ff\\:flex{display:flex}.ff\\:grid{display:grid}.ff\\:inline-block{display:inline-block}.ff\\:inline-flex{display:inline-flex}.ff\\:size-1{width:calc(var(--ff-spacing)*1);height:calc(var(--ff-spacing)*1)}.ff\\:size-1\\.5{width:calc(var(--ff-spacing)*1.5);height:calc(var(--ff-spacing)*1.5)}.ff\\:size-4{width:calc(var(--ff-spacing)*4);height:calc(var(--ff-spacing)*4)}.ff\\:size-5{width:calc(var(--ff-spacing)*5);height:calc(var(--ff-spacing)*5)}.ff\\:size-6{width:calc(var(--ff-spacing)*6);height:calc(var(--ff-spacing)*6)}.ff\\:size-8{width:calc(var(--ff-spacing)*8);height:calc(var(--ff-spacing)*8)}.ff\\:size-10{width:calc(var(--ff-spacing)*10);height:calc(var(--ff-spacing)*10)}.ff\\:h-0\\.5{height:calc(var(--ff-spacing)*.5)}.ff\\:h-1{height:calc(var(--ff-spacing)*1)}.ff\\:h-2{height:calc(var(--ff-spacing)*2)}.ff\\:h-2\\.5{height:calc(var(--ff-spacing)*2.5)}.ff\\:h-3{height:calc(var(--ff-spacing)*3)}.ff\\:h-4{height:calc(var(--ff-spacing)*4)}.ff\\:h-4\\.5{height:calc(var(--ff-spacing)*4.5)}.ff\\:h-5{height:calc(var(--ff-spacing)*5)}.ff\\:h-6{height:calc(var(--ff-spacing)*6)}.ff\\:h-8{height:calc(var(--ff-spacing)*8)}.ff\\:h-10{height:calc(var(--ff-spacing)*10)}.ff\\:h-12{height:calc(var(--ff-spacing)*12)}.ff\\:h-14{height:calc(var(--ff-spacing)*14)}.ff\\:h-16{height:calc(var(--ff-spacing)*16)}.ff\\:h-20{height:calc(var(--ff-spacing)*20)}.ff\\:h-32{height:calc(var(--ff-spacing)*32)}.ff\\:h-\\[480px\\]{height:480px}.ff\\:h-auto{height:auto}.ff\\:h-full{height:100%}.ff\\:max-h-44{max-height:calc(var(--ff-spacing)*44)}.ff\\:max-h-\\[24rem\\]{max-height:24rem}.ff\\:w-1\\/2{width:50%}.ff\\:w-1\\/3{width:33.3333%}.ff\\:w-2\\/3{width:66.6667%}.ff\\:w-3\\/4{width:75%}.ff\\:w-5\\/6{width:83.3333%}.ff\\:w-6{width:calc(var(--ff-spacing)*6)}.ff\\:w-9{width:calc(var(--ff-spacing)*9)}.ff\\:w-10{width:calc(var(--ff-spacing)*10)}.ff\\:w-12{width:calc(var(--ff-spacing)*12)}.ff\\:w-14{width:calc(var(--ff-spacing)*14)}.ff\\:w-16{width:calc(var(--ff-spacing)*16)}.ff\\:w-20{width:calc(var(--ff-spacing)*20)}.ff\\:w-40{width:calc(var(--ff-spacing)*40)}.ff\\:w-72{width:calc(var(--ff-spacing)*72)}.ff\\:w-80{width:calc(var(--ff-spacing)*80)}.ff\\:w-auto{width:auto}.ff\\:w-full{width:100%}.ff\\:max-w-sm{max-width:var(--ff-container-sm)}.ff\\:min-w-0{min-width:calc(var(--ff-spacing)*0)}.ff\\:flex-1{flex:1}.ff\\:shrink-0{flex-shrink:0}.ff\\:origin-center{transform-origin:50%}.ff\\:origin-top-left{transform-origin:0 0}.ff\\:-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:-translate-y-2{--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:animate-\\[skeleton-shimmer_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-shimmer}.ff\\:animate-\\[skeleton-slide_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-slide}.ff\\:animate-\\[spin_1\\.2s_cubic-bezier\\(0\\.4\\,0\\,0\\.6\\,1\\)_infinite\\]{animation:1.2s cubic-bezier(.4,0,.6,1) infinite spin}.ff\\:animate-\\[spin_1\\.8s_linear_infinite\\]{animation:1.8s linear infinite spin}.ff\\:animate-accordion-down{animation:var(--ff-animate-accordion-down)}.ff\\:animate-accordion-up{animation:var(--ff-animate-accordion-up)}.ff\\:animate-celebration{animation:var(--ff-animate-celebration)}.ff\\:animate-fade-in{animation:var(--ff-animate-fade-in)}.ff\\:animate-fade-out{animation:var(--ff-animate-fade-out)}.ff\\:animate-none{animation:none}.ff\\:animate-pulse{animation:var(--ff-animate-pulse)}.ff\\:animate-pulse-success{animation:var(--ff-animate-pulse-success)}.ff\\:animate-scale-in{animation:var(--ff-animate-scale-in)}.ff\\:animate-scale-out{animation:var(--ff-animate-scale-out)}.ff\\:animate-shake{animation:var(--ff-animate-shake)}.ff\\:animate-slide-in{animation:var(--ff-animate-slide-in)}.ff\\:animate-slide-out{animation:var(--ff-animate-slide-out)}.ff\\:animate-spin{animation:var(--ff-animate-spin)}.ff\\:cursor-not-allowed{cursor:not-allowed}.ff\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff\\:flex-col{flex-direction:column}.ff\\:flex-row{flex-direction:row}.ff\\:flex-wrap{flex-wrap:wrap}.ff\\:items-baseline{align-items:baseline}.ff\\:items-center{align-items:center}.ff\\:items-start{align-items:flex-start}.ff\\:justify-between{justify-content:space-between}.ff\\:justify-center{justify-content:center}.ff\\:gap-0\\.5{gap:calc(var(--ff-spacing)*.5)}.ff\\:gap-1{gap:calc(var(--ff-spacing)*1)}.ff\\:gap-1\\.5{gap:calc(var(--ff-spacing)*1.5)}.ff\\:gap-2{gap:calc(var(--ff-spacing)*2)}.ff\\:gap-3{gap:calc(var(--ff-spacing)*3)}.ff\\:gap-4{gap:calc(var(--ff-spacing)*4)}.ff\\:gap-5{gap:calc(var(--ff-spacing)*5)}.ff\\:gap-6{gap:calc(var(--ff-spacing)*6)}.ff\\:gap-10{gap:calc(var(--ff-spacing)*10)}.ff\\:gap-12{gap:calc(var(--ff-spacing)*12)}:where(.ff\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.ff\\:self-end{align-self:flex-end}.ff\\:overflow-hidden{overflow:hidden}.ff\\:overflow-visible{overflow:visible}.ff\\:overflow-x-auto{overflow-x:auto}.ff\\:overflow-y-auto{overflow-y:auto}.ff\\:rounded{border-radius:.25rem}.ff\\:rounded-2xl{border-radius:var(--ff-radius-2xl)}.ff\\:rounded-3xl{border-radius:var(--ff-radius-3xl)}.ff\\:rounded-\\[8px\\]{border-radius:8px}.ff\\:rounded-\\[10px\\]{border-radius:10px}.ff\\:rounded-\\[14px\\]{border-radius:14px}.ff\\:rounded-full{border-radius:3.40282e38px}.ff\\:rounded-lg{border-radius:var(--ff-radius-lg)}.ff\\:rounded-md{border-radius:var(--ff-radius-md)}.ff\\:rounded-none{border-radius:0}.ff\\:rounded-xl{border-radius:var(--ff-radius-xl)}.ff\\:border{border-style:var(--tw-border-style);border-width:1px}.ff\\:border-0{border-style:var(--tw-border-style);border-width:0}.ff\\:border-2{border-style:var(--tw-border-style);border-width:2px}.ff\\:border-3{border-style:var(--tw-border-style);border-width:3px}.ff\\:border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.ff\\:border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.ff\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ff\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ff\\:border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.ff\\:border-none{--tw-border-style:none;border-style:none}.ff\\:border-border,.ff\\:border-border\\/40{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/40{border-color:color-mix(in oklab,var(--ff-color-border)40%,transparent)}}.ff\\:border-border\\/50{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/50{border-color:color-mix(in oklab,var(--ff-color-border)50%,transparent)}}.ff\\:border-danger,.ff\\:border-danger\\/50{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-danger\\/50{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:border-foreground,.ff\\:border-foreground\\/8{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/8{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-foreground\\/12{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/12{border-color:color-mix(in oklab,var(--ff-color-foreground)12%,transparent)}}.ff\\:border-foreground\\/20{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/20{border-color:color-mix(in oklab,var(--ff-color-foreground)20%,transparent)}}.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-neutral-200{border-color:var(--ff-color-neutral-200)}.ff\\:border-primary{border-color:var(--ff-color-primary)}.ff\\:border-transparent{border-color:#0000}.ff\\:border-b-danger{border-bottom-color:var(--ff-color-danger)}.ff\\:bg-\\[\\#ff3a00\\]{background-color:#ff3a00}.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:color-mix(in oklch,var(--ff-color-foreground)3%,var(--ff-color-background))}}.ff\\:bg-background,.ff\\:bg-background\\/60{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/60{background-color:color-mix(in oklab,var(--ff-color-background)60%,transparent)}}.ff\\:bg-background\\/70{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/70{background-color:color-mix(in oklab,var(--ff-color-background)70%,transparent)}}.ff\\:bg-danger,.ff\\:bg-danger\\/10{background-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-danger\\/10{background-color:color-mix(in oklab,var(--ff-color-danger)10%,transparent)}}.ff\\:bg-foreground\\/5{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ff-color-foreground)5%,transparent)}}.ff\\:bg-foreground\\/40{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/40{background-color:color-mix(in oklab,var(--ff-color-foreground)40%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)10%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:bg-muted\\/5{background-color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-muted\\/5{background-color:color-mix(in oklab,var(--ff-color-muted)5%,transparent)}}.ff\\:bg-neutral-50{background-color:var(--ff-color-neutral-50)}.ff\\:bg-primary{background-color:var(--ff-color-primary)}.ff\\:bg-primary-foreground{background-color:var(--ff-color-primary-foreground)}.ff\\:bg-primary\\/5{background-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-primary\\/5{background-color:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:bg-secondary{background-color:var(--ff-color-secondary)}.ff\\:bg-success,.ff\\:bg-success\\/10{background-color:var(--ff-color-success)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-success\\/10{background-color:color-mix(in oklab,var(--ff-color-success)10%,transparent)}}.ff\\:bg-transparent{background-color:#0000}.ff\\:bg-warning,.ff\\:bg-warning\\/10{background-color:var(--ff-color-warning)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-warning\\/10{background-color:color-mix(in oklab,var(--ff-color-warning)10%,transparent)}}.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.ff\\:bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.ff\\:from-primary\\/10{--tw-gradient-from:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:from-primary\\/10{--tw-gradient-from:color-mix(in oklab,var(--ff-color-primary)10%,transparent)}}.ff\\:from-primary\\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:to-primary\\/5{--tw-gradient-to:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:to-primary\\/5{--tw-gradient-to:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:to-primary\\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:\\[background-size\\:200\\%_100\\%\\]{background-size:200% 100%}.ff\\:p-0{padding:calc(var(--ff-spacing)*0)}.ff\\:p-3{padding:calc(var(--ff-spacing)*3)}.ff\\:p-4{padding:calc(var(--ff-spacing)*4)}.ff\\:p-5{padding:calc(var(--ff-spacing)*5)}.ff\\:p-6{padding:calc(var(--ff-spacing)*6)}.ff\\:p-8{padding:calc(var(--ff-spacing)*8)}.ff\\:px-0{padding-inline:calc(var(--ff-spacing)*0)}.ff\\:px-2{padding-inline:calc(var(--ff-spacing)*2)}.ff\\:px-2\\.5{padding-inline:calc(var(--ff-spacing)*2.5)}.ff\\:px-3{padding-inline:calc(var(--ff-spacing)*3)}.ff\\:px-4{padding-inline:calc(var(--ff-spacing)*4)}.ff\\:px-5{padding-inline:calc(var(--ff-spacing)*5)}.ff\\:px-6{padding-inline:calc(var(--ff-spacing)*6)}.ff\\:py-0\\.5{padding-block:calc(var(--ff-spacing)*.5)}.ff\\:py-1{padding-block:calc(var(--ff-spacing)*1)}.ff\\:py-1\\.5{padding-block:calc(var(--ff-spacing)*1.5)}.ff\\:py-2{padding-block:calc(var(--ff-spacing)*2)}.ff\\:py-2\\.5{padding-block:calc(var(--ff-spacing)*2.5)}.ff\\:py-3{padding-block:calc(var(--ff-spacing)*3)}.ff\\:py-4{padding-block:calc(var(--ff-spacing)*4)}.ff\\:py-12{padding-block:calc(var(--ff-spacing)*12)}.ff\\:pt-2{padding-top:calc(var(--ff-spacing)*2)}.ff\\:pt-3{padding-top:calc(var(--ff-spacing)*3)}.ff\\:pt-5{padding-top:calc(var(--ff-spacing)*5)}.ff\\:pb-0\\.5{padding-bottom:calc(var(--ff-spacing)*.5)}.ff\\:pb-1{padding-bottom:calc(var(--ff-spacing)*1)}.ff\\:pb-2{padding-bottom:calc(var(--ff-spacing)*2)}.ff\\:pb-8{padding-bottom:calc(var(--ff-spacing)*8)}.ff\\:pl-7{padding-left:calc(var(--ff-spacing)*7)}.ff\\:text-center{text-align:center}.ff\\:text-right{text-align:right}.ff\\:font-heading{font-family:var(--ff-font-heading)}.ff\\:font-mono{font-family:var(--ff-font-mono)}.ff\\:text-2xl{font-size:var(--ff-text-2xl);line-height:var(--tw-leading,var(--ff-text-2xl--line-height))}.ff\\:text-3xl{font-size:var(--ff-text-3xl);line-height:var(--tw-leading,var(--ff-text-3xl--line-height))}.ff\\:text-4xl{font-size:var(--ff-text-4xl);line-height:var(--tw-leading,var(--ff-text-4xl--line-height))}.ff\\:text-base{font-size:var(--ff-text-base);line-height:var(--tw-leading,var(--ff-text-base--line-height))}.ff\\:text-lg{font-size:var(--ff-text-lg);line-height:var(--tw-leading,var(--ff-text-lg--line-height))}.ff\\:text-sm{font-size:var(--ff-text-sm);line-height:var(--tw-leading,var(--ff-text-sm--line-height))}.ff\\:text-xl{font-size:var(--ff-text-xl);line-height:var(--tw-leading,var(--ff-text-xl--line-height))}.ff\\:text-xs{font-size:var(--ff-text-xs);line-height:var(--tw-leading,var(--ff-text-xs--line-height))}.ff\\:text-xxs{font-size:var(--ff-text-xxs);line-height:var(--tw-leading,var(--ff-text-xxs--line-height))}.ff\\:text-\\[2rem\\]{font-size:2rem}.ff\\:text-\\[10\\.5px\\]{font-size:10.5px}.ff\\:text-\\[52px\\]{font-size:52px}.ff\\:leading-none{--tw-leading:1;line-height:1}.ff\\:leading-tight{--tw-leading:var(--ff-leading-tight);line-height:var(--ff-leading-tight)}.ff\\:font-black{--tw-font-weight:var(--ff-font-weight-black);font-weight:var(--ff-font-weight-black)}.ff\\:font-bold{--tw-font-weight:var(--ff-font-weight-bold);font-weight:var(--ff-font-weight-bold)}.ff\\:font-extrabold{--tw-font-weight:var(--ff-font-weight-extrabold);font-weight:var(--ff-font-weight-extrabold)}.ff\\:font-extralight{--tw-font-weight:var(--ff-font-weight-extralight);font-weight:var(--ff-font-weight-extralight)}.ff\\:font-light{--tw-font-weight:var(--ff-font-weight-light);font-weight:var(--ff-font-weight-light)}.ff\\:font-medium{--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:font-normal{--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:font-semibold{--tw-font-weight:var(--ff-font-weight-semibold);font-weight:var(--ff-font-weight-semibold)}.ff\\:tracking-\\[-0\\.025em\\]{--tw-tracking:-.025em;letter-spacing:-.025em}.ff\\:tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.ff\\:tracking-\\[0\\.08em\\]{--tw-tracking:.08em;letter-spacing:.08em}.ff\\:tracking-\\[0\\.15em\\]{--tw-tracking:.15em;letter-spacing:.15em}.ff\\:tracking-normal{--tw-tracking:var(--ff-tracking-normal);letter-spacing:var(--ff-tracking-normal)}.ff\\:tracking-tight{--tw-tracking:var(--ff-tracking-tight);letter-spacing:var(--ff-tracking-tight)}.ff\\:tracking-wide{--tw-tracking:var(--ff-tracking-wide);letter-spacing:var(--ff-tracking-wide)}.ff\\:tracking-wider{--tw-tracking:var(--ff-tracking-wider);letter-spacing:var(--ff-tracking-wider)}.ff\\:tracking-widest{--tw-tracking:var(--ff-tracking-widest);letter-spacing:var(--ff-tracking-widest)}.ff\\:whitespace-nowrap{white-space:nowrap}.ff\\:text-current{color:currentColor}.ff\\:text-danger{color:var(--ff-color-danger)}.ff\\:text-danger-foreground{color:var(--ff-color-danger-foreground)}.ff\\:text-foreground,.ff\\:text-foreground\\/80{color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-foreground\\/80{color:color-mix(in oklab,var(--ff-color-foreground)80%,transparent)}}.ff\\:text-muted{color:var(--ff-color-muted)}.ff\\:text-muted-foreground{color:var(--ff-color-muted-foreground)}.ff\\:text-muted\\/60{color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-muted\\/60{color:color-mix(in oklab,var(--ff-color-muted)60%,transparent)}}.ff\\:text-neutral-300{color:var(--ff-color-neutral-300)}.ff\\:text-neutral-500{color:var(--ff-color-neutral-500)}.ff\\:text-primary{color:var(--ff-color-primary)}.ff\\:text-primary-foreground{color:var(--ff-color-primary-foreground)}.ff\\:text-success{color:var(--ff-color-success)}.ff\\:text-success-foreground{color:var(--ff-color-success-foreground)}.ff\\:text-warning{color:var(--ff-color-warning)}.ff\\:text-warning-foreground{color:var(--ff-color-warning-foreground)}.ff\\:text-white{color:var(--ff-color-white)}.ff\\:uppercase{text-transform:uppercase}.ff\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.ff\\:accent-foreground{accent-color:var(--ff-color-foreground)}.ff\\:opacity-0{opacity:0}.ff\\:opacity-25{opacity:.25}.ff\\:opacity-40{opacity:.4}.ff\\:opacity-50{opacity:.5}.ff\\:opacity-60{opacity:.6}.ff\\:opacity-80{opacity:.8}.ff\\:shadow-\\[0_0_10px_-2px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 0 10px -2px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\,0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0000000a),0 8px 24px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0_0_12px_-6px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014),0 0 12px -6px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[3px_3px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:3px 3px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_-3px_0_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--tw-shadow:inset 0 -3px 0 var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.ff\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ff\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ff\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ff\\:ease-out{--tw-ease:var(--ff-ease-out);transition-timing-function:var(--ff-ease-out)}.ff\\:outline-none{--tw-outline-style:none;outline-style:none}.ff\\:select-none{-webkit-user-select:none;user-select:none}.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,var(--ff-color-foreground)0%,var(--ff-color-foreground)50%,var(--ff-color-foreground)100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,color-mix(in oklch,var(--ff-color-foreground)6%,transparent),color-mix(in oklch,var(--ff-color-foreground)10%,transparent),color-mix(in oklch,var(--ff-color-foreground)6%,transparent))}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,var(--ff-color-foreground)20%,var(--ff-color-foreground)80%,transparent 100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)20%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)80%,transparent 100%)}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),var(--ff-color-primary))}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),color-mix(in oklch,var(--ff-color-primary)80%,white))}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,var(--ff-color-primary)8px,var(--ff-color-primary)16px)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)16px)}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-secondary\\)\\,var\\(--ff-color-secondary\\)_4px\\,var\\(--ff-color-surface\\)_4px\\,var\\(--ff-color-surface\\)_8px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-secondary),var(--ff-color-secondary)4px,var(--ff-color-surface)4px,var(--ff-color-surface)8px)}.ff\\:\\[scrollbar-width\\:none\\]{scrollbar-width:none}.ff\\:duration-100{animation-duration:.1s}.ff\\:duration-150{animation-duration:.15s}.ff\\:duration-200{animation-duration:.2s}.ff\\:duration-300{animation-duration:.3s}.ff\\:ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.ff\\:peer-placeholder-shown\\:translate-y-0:is(:where(.ff\\:peer):placeholder-shown~*){--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-placeholder-shown\\:scale-100:is(:where(.ff\\:peer):placeholder-shown~*){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-placeholder-shown\\:font-normal:is(:where(.ff\\:peer):placeholder-shown~*){--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:peer-placeholder-shown\\:text-muted:is(:where(.ff\\:peer):placeholder-shown~*){color:var(--ff-color-muted)}.ff\\:peer-focus\\:-translate-y-2:is(:where(.ff\\:peer):focus~*){--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-focus\\:scale-75:is(:where(.ff\\:peer):focus~*){--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-focus\\:font-medium:is(:where(.ff\\:peer):focus~*){--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:peer-focus\\:text-danger:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-danger)}.ff\\:peer-focus\\:text-primary:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-primary)}.ff\\:peer-disabled\\:text-muted:is(:where(.ff\\:peer):disabled~*){color:var(--ff-color-muted)}.ff\\:peer-disabled\\:opacity-50:is(:where(.ff\\:peer):disabled~*){opacity:.5}.ff\\:placeholder\\:text-muted::placeholder{color:var(--ff-color-muted)}.ff\\:placeholder\\:opacity-0::placeholder{opacity:0}.ff\\:placeholder\\:transition-opacity::placeholder{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:placeholder\\:duration-200::placeholder{--tw-duration:.2s;transition-duration:.2s;animation-duration:.2s}.ff\\:last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.ff\\:last\\:pb-0:last-child{padding-bottom:calc(var(--ff-spacing)*0)}@media(hover:hover){.ff\\:hover\\:-translate-x-0\\.5:hover{--tw-translate-x:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-x-0:hover{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-y-0:hover{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:border-foreground:hover{border-color:var(--ff-color-foreground)}.ff\\:hover\\:bg-secondary:hover{background-color:var(--ff-color-secondary)}.ff\\:hover\\:underline:hover{text-decoration-line:underline}.ff\\:hover\\:opacity-90:hover{opacity:.9}.ff\\:hover\\:shadow-\\[0_4px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]:hover{--tw-shadow:0 4px 16px -4px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-none:hover{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.ff\\:focus\\:border-danger:focus,.ff\\:focus\\:border-danger\\/50:focus{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-danger\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:focus\\:border-primary:focus,.ff\\:focus\\:border-primary\\/50:focus{border-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-primary\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-primary)50%,transparent)}}.ff\\:focus\\:border-b-danger:focus{border-bottom-color:var(--ff-color-danger)}.ff\\:focus\\:border-b-primary:focus{border-bottom-color:var(--ff-color-primary)}.ff\\:focus\\:bg-background:focus{background-color:var(--ff-color-background)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-danger-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-danger-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-primary-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-primary-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-none:focus{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-danger:focus,.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-danger)20%,transparent)}}.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-primary)20%,transparent)}}.ff\\:focus\\:placeholder\\:opacity-100:focus::placeholder{opacity:1}.ff\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus-visible\\:ring-border:focus-visible{--tw-ring-color:var(--ff-color-border)}.ff\\:focus-visible\\:ring-danger:focus-visible{--tw-ring-color:var(--ff-color-danger)}.ff\\:focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--ff-color-primary)}.ff\\:focus-visible\\:ring-secondary:focus-visible{--tw-ring-color:var(--ff-color-secondary)}.ff\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ff\\:active\\:translate-x-0:active{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-x-0\\.5:active{--tw-translate-x:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0\\.5:active{--tw-translate-y:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]:active{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]:active{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-none:active{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ff\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.ff\\:disabled\\:opacity-35:disabled{opacity:.35}.ff\\:disabled\\:opacity-50:disabled{opacity:.5}.ff\\:\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden::-webkit-scrollbar{display:none}.ff\\:\\[\\&\\>\\*\\]\\:min-h-0>*{min-height:calc(var(--ff-spacing)*0)}.ff\\:\\[\\&\\>\\*\\]\\:flex-1>*{flex:1}.fanfare-text-balance{text-wrap:balance}.fanfare-text-pretty{text-wrap:pretty}}[data-fanfare-variant=default]{--ff-variant:"default"}[data-fanfare-variant=retro]{--ff-variant:"retro";--ff-color-background:#f4f1ea;--ff-color-foreground:#000;--ff-color-muted:#444;--ff-color-muted-foreground:#444;--ff-color-border:#000;--ff-font-sans:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-heading:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}[data-fanfare-variant=rounded]{--ff-variant:"rounded"}[data-fanfare-variant=clean]{--ff-variant:"clean";--ff-color-background:#fff;--ff-color-foreground:#0a0a0a;--ff-color-muted:#737373;--ff-color-muted-foreground:#737373;--ff-color-border:#e8e8e8;--ff-font-sans:"Figtree",system-ui,sans-serif;--ff-font-heading:"Figtree",system-ui,sans-serif;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.5rem)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes celebration-bounce{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}75%{transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes pulse-success{0%{box-shadow:0 0 0 0 var(--ff-color-success,#22c55e)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-slide{0%{background-position:-100% 0}to{background-position:200% 0}}', io = '@theme{ --color-primary: #1d1f27; --color-primary-foreground: #ffffff; --color-secondary: #f4f4f5; --color-background: #ffffff; --color-surface: transparent; --color-surface-foreground: #1d1f27; --color-foreground: #1d1f27; --color-muted: #4b4e56cc; --color-muted-foreground: #4b4e5699; --color-border: #4b4e5666; --color-success: oklch(.77 .18 130); --color-success-foreground: #111111; --color-warning: oklch(.72 .18 65); --color-warning-foreground: #111111; --color-danger: oklch(.63 .24 25); --color-danger-foreground: #ffffff; --font-sans: "Inter", system-ui, sans-serif; --font-heading: "Inter", system-ui, sans-serif; --text-xxs: .625rem; --text-xxs--line-height: .875rem; }[data-fanfare-variant=default]{--ff-variant: "default"}[data-fanfare-variant=retro]{--ff-variant: "retro";--ff-color-background: #f4f1ea;--ff-color-foreground: #000000;--ff-color-muted: #444444;--ff-color-muted-foreground: #444444;--ff-color-border: #000000;--ff-font-sans: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-heading: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}[data-fanfare-variant=rounded]{--ff-variant: "rounded"}[data-fanfare-variant=clean]{--ff-variant: "clean";--ff-color-background: #ffffff;--ff-color-foreground: #0a0a0a;--ff-color-muted: #737373;--ff-color-muted-foreground: #737373;--ff-color-border: #e8e8e8;--ff-font-sans: "Figtree", system-ui, sans-serif;--ff-font-heading: "Figtree", system-ui, sans-serif;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@layer base{.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop,.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}}';
4866
+ function so({
4839
4867
  children: e,
4840
4868
  theme: a,
4841
4869
  variant: r,
@@ -4845,74 +4873,74 @@ function oo({
4845
4873
  style: f
4846
4874
  }) {
4847
4875
  const l = gt(null), [d, u] = _e(null);
4848
- Ka(() => {
4876
+ Ya(() => {
4849
4877
  if (l.current && !l.current.shadowRoot) {
4850
4878
  const g = l.current.attachShadow({ mode: "open" });
4851
4879
  u(g);
4852
4880
  }
4853
4881
  }, []);
4854
- const y = re(() => a ? ga(a) : {}, [a]);
4855
- return /* @__PURE__ */ t("div", { ref: l, className: i, style: f, children: d && cr(
4882
+ const y = re(() => a ? ha(a) : {}, [a]);
4883
+ return /* @__PURE__ */ t("div", { ref: l, className: i, style: f, children: d && ur(
4856
4884
  /* @__PURE__ */ c(Ce, { children: [
4857
4885
  /* @__PURE__ */ c("style", { "data-fanfare-styles": !0, children: [
4858
- ro,
4859
- no
4886
+ fo,
4887
+ io
4860
4888
  ] }),
4861
- /* @__PURE__ */ t(da, { locale: n, translations: o, children: /* @__PURE__ */ t(Vt, { theme: a, variant: r, className: "ff:h-full ff:w-full", children: /* @__PURE__ */ t("div", { className: "fanfare-root ff:h-full ff:w-full", style: y, children: e }) }) })
4889
+ /* @__PURE__ */ t(pa, { locale: n, translations: o, children: /* @__PURE__ */ t(Vt, { theme: a, variant: r, className: "ff:h-full ff:w-full", children: /* @__PURE__ */ t("div", { className: "fanfare-root ff:h-full ff:w-full", style: y, children: e }) }) })
4862
4890
  ] }),
4863
4891
  d
4864
4892
  ) });
4865
4893
  }
4866
- oo.displayName = "ShadowDOMPreview";
4894
+ so.displayName = "ShadowDOMPreview";
4867
4895
  export {
4868
- _a as AccessCodeForm,
4896
+ Sa as AccessCodeForm,
4869
4897
  Ze as AuctionModule,
4870
- ya as AuthForm,
4871
- ha as AuthInput,
4898
+ _a as AuthForm,
4899
+ va as AuthInput,
4872
4900
  F as Button,
4873
- va as Card,
4874
- Ur as CardContent,
4875
- Wr as CardDescription,
4876
- Hr as CardFooter,
4877
- qr as CardHeader,
4878
- Or as CardTitle,
4879
- Na as ChallengeGate,
4880
- Ge as DrawModule,
4881
- Sa as EndedModule,
4901
+ xa as Card,
4902
+ Kr as CardContent,
4903
+ Hr as CardDescription,
4904
+ Zr as CardFooter,
4905
+ Wr as CardHeader,
4906
+ Ur as CardTitle,
4907
+ Ca as ChallengeGate,
4908
+ Ye as DrawModule,
4909
+ Da as EndedModule,
4882
4910
  Ke as ErrorView,
4883
- gr as ExperienceJourneyController,
4884
- No as ExperienceJourneySkeleton,
4885
- ao as ExperienceWidget,
4886
- sa as FanfareContext,
4887
- yo as FanfareProvider,
4911
+ hr as ExperienceJourneyController,
4912
+ Do as ExperienceJourneySkeleton,
4913
+ oo as ExperienceWidget,
4914
+ ca as FanfareContext,
4915
+ No as FanfareProvider,
4888
4916
  et as GrantedPanel,
4889
- da as I18nProvider,
4917
+ pa as I18nProvider,
4890
4918
  se as InfoPanel,
4891
4919
  ht as Input,
4892
4920
  Rt as LoadingView,
4893
- wa as OTPInput,
4921
+ ba as OTPInput,
4894
4922
  Fe as OutcomePanel,
4895
4923
  K as PanelBody,
4896
4924
  U as PanelFooter,
4897
4925
  Q as PanelHeading,
4898
4926
  Z as PanelLayout,
4899
4927
  ut as QueueModule,
4900
- Do as RTL_LOCALES,
4901
- oo as ShadowDOMPreview,
4902
- Fa as StartView,
4928
+ Mo as RTL_LOCALES,
4929
+ so as ShadowDOMPreview,
4930
+ Pa as StartView,
4903
4931
  oe as THEME_CSS_VARS,
4904
4932
  Vt as ThemeProvider,
4905
4933
  pt as TimedReleaseModule,
4906
4934
  Tt as UpcomingModule,
4907
- ja as WaitlistView,
4908
- ga as buildThemeCssVars,
4909
- Fr as buttonVariants,
4910
- Vo as isRTLLocale,
4911
- Xt as normalizeOutcomeReason,
4912
- ua as useExperienceJourney,
4935
+ Ba as WaitlistView,
4936
+ ha as buildThemeCssVars,
4937
+ Pr as buttonVariants,
4938
+ To as isRTLLocale,
4939
+ ta as normalizeOutcomeReason,
4940
+ ga as useExperienceJourney,
4913
4941
  bt as useFanfare,
4914
- ko as useFanfareAuth,
4915
- _o as useJourneySnapshot,
4916
- Me as useNanostore,
4917
- G as useTranslations
4942
+ So as useFanfareAuth,
4943
+ Co as useJourneySnapshot,
4944
+ Ee as useNanostore,
4945
+ Y as useTranslations
4918
4946
  };