@fanfare-io/fanfare-sdk-react 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,46 +1,46 @@
1
1
  "use client";
2
2
  import { jsx as t, Fragment as Me, jsxs as u } from "react/jsx-runtime";
3
- import lr from "@fanfare-io/fanfare-sdk-core";
3
+ import cr from "@fanfare-io/fanfare-sdk-core";
4
4
  import * as s from "react";
5
- import { createContext as zt, useMemo as X, useContext as jt, useState as ve, useRef as bt, useEffect as $e, useCallback as B, useSyncExternalStore as cr, forwardRef as kt, useLayoutEffect as dr } from "react";
6
- import { getLocaleMessages as ur, mergeTranslations as aa, createTranslateFunction as ba, isRTLLocale as pr, en as gr, resolveLocaleMapValue as mr, normalizeLocale as hr } from "@fanfare-io/fanfare-sdk-i18n";
7
- import { RTL_LOCALES as Zo, isRTLLocale as Yo } from "@fanfare-io/fanfare-sdk-i18n";
8
- import { ensureFanfareError as mt, toDisplay as ra, classify as wr } from "@fanfare-io/fanfare-sdk-core/errors";
9
- import { getGates as xa, getParticipation as vr, getDistribution as br, getSequenceId as xr, getSequencePhase as yr } from "@fanfare-io/fanfare-sdk-core/internals";
5
+ import { createContext as jt, useMemo as X, useContext as zt, useState as ve, useRef as bt, useEffect as $e, useCallback as B, useSyncExternalStore as dr, forwardRef as kt, useLayoutEffect as ur } from "react";
6
+ import { getLocaleMessages as pr, mergeTranslations as aa, createTranslateFunction as ba, isRTLLocale as gr, en as mr, resolveLocaleMapValue as hr, normalizeLocale as wr } from "@fanfare-io/fanfare-sdk-i18n";
7
+ import { RTL_LOCALES as Yo, isRTLLocale as Go } from "@fanfare-io/fanfare-sdk-i18n";
8
+ import { ensureFanfareError as mt, toDisplay as ra, classify as vr } from "@fanfare-io/fanfare-sdk-core/errors";
9
+ import { getGates as xa, getParticipation as br, getDistribution as xr, getSequenceId as yr, getSequencePhase as kr } from "@fanfare-io/fanfare-sdk-core/internals";
10
10
  import * as ht from "valibot";
11
- import { clsx as kr } from "clsx";
12
- import { extendTailwindMerge as _r } from "tailwind-merge";
13
- import { cva as te } from "class-variance-authority";
14
- import { AnimatePresence as _t, motion as U } from "motion/react";
15
- import { mergeBrandTheme as Nr, DefaultBrandTheme as Sr } from "@fanfare-io/fanfare-sdk-core/theme";
16
- import Cr from "canvas-confetti";
11
+ import { clsx as _r } from "clsx";
12
+ import { extendTailwindMerge as Nr } from "tailwind-merge";
13
+ import { cva as ae } from "class-variance-authority";
14
+ import { AnimatePresence as _t, motion as W } from "motion/react";
15
+ import { mergeBrandTheme as Sr, DefaultBrandTheme as Cr } from "@fanfare-io/fanfare-sdk-core/theme";
16
+ import Dr from "canvas-confetti";
17
17
  import { atom as qe } from "nanostores";
18
- import { bucketFromEtaSeconds as Dr, bucketI18nKey as Vr } from "@fanfare-io/fanfare-sdk-core/queues";
19
- import { createPortal as Er } from "react-dom";
20
- const ya = zt(null), ka = gr, Mr = ba(ka, "en"), Tr = {
18
+ import { bucketFromEtaSeconds as Vr, bucketI18nKey as Er } from "@fanfare-io/fanfare-sdk-core/queues";
19
+ import { createPortal as Mr } from "react-dom";
20
+ const ya = jt(null), ka = mr, Tr = ba(ka, "en"), Rr = {
21
21
  locale: "en",
22
22
  messages: ka,
23
23
  isRoot: !0,
24
- t: Mr,
24
+ t: Tr,
25
25
  dir: "ltr",
26
26
  experienceTranslations: null,
27
27
  setExperienceTranslations: () => {
28
28
  }
29
- }, _a = zt(Tr);
29
+ }, _a = jt(Rr);
30
30
  function Ft() {
31
- return jt(_a);
31
+ return zt(_a);
32
32
  }
33
33
  function K() {
34
34
  const { t: e, locale: a, dir: r } = Ft();
35
35
  return { t: e, locale: a, dir: r };
36
36
  }
37
- function Rr(e, a, r, n) {
37
+ function Lr(e, a, r, n) {
38
38
  const o = Ft();
39
39
  return X(() => {
40
- const i = e ?? o.locale, f = e && e !== o.locale ? ur(e) : o.messages, c = aa(
40
+ const i = e ?? o.locale, f = e && e !== o.locale ? pr(e) : o.messages, l = aa(
41
41
  f,
42
42
  r ?? o.experienceTranslations ?? void 0
43
- ), g = aa(c, a), d = ba(g, i), b = pr(i) ? "rtl" : "ltr";
43
+ ), g = aa(l, a), d = ba(g, i), b = gr(i) ? "rtl" : "ltr";
44
44
  return {
45
45
  locale: i,
46
46
  messages: g,
@@ -53,7 +53,7 @@ function Rr(e, a, r, n) {
53
53
  }, [o, e, a, r, n]);
54
54
  }
55
55
  function Na({ locale: e, translations: a, children: r }) {
56
- const [n, o] = ve(null), i = Rr(e, a, n, o);
56
+ const [n, o] = ve(null), i = Lr(e, a, n, o);
57
57
  return /* @__PURE__ */ t(_a.Provider, { value: i, children: r });
58
58
  }
59
59
  let na = Promise.resolve();
@@ -66,7 +66,7 @@ function oa(e) {
66
66
  }
67
67
  ), a;
68
68
  }
69
- function $o({
69
+ function qo({
70
70
  children: e,
71
71
  autoRestore: a = !0,
72
72
  autoResume: r = !0,
@@ -74,32 +74,32 @@ function $o({
74
74
  locale: o,
75
75
  translations: i,
76
76
  organizationId: f,
77
- publishableKey: c,
77
+ publishableKey: l,
78
78
  environment: g,
79
79
  apiUrl: d,
80
80
  credentials: b,
81
81
  debug: m,
82
82
  auth: v,
83
- logging: w,
84
- sync: y,
83
+ logging: h,
84
+ sync: x,
85
85
  features: C,
86
- beacon: l
86
+ beacon: c
87
87
  }) {
88
- const [h, p] = ve(null), [D, V] = ve(!0), T = bt(null), x = X(
88
+ const [w, p] = ve(null), [D, V] = ve(!0), T = bt(null), y = X(
89
89
  () => ({
90
90
  organizationId: f,
91
- publishableKey: c,
91
+ publishableKey: l,
92
92
  environment: g,
93
93
  apiUrl: d,
94
94
  credentials: b,
95
95
  debug: m,
96
96
  auth: v,
97
- logging: w,
98
- sync: y,
97
+ logging: h,
98
+ sync: x,
99
99
  features: C,
100
- beacon: l
100
+ beacon: c
101
101
  }),
102
- [f, c, g, d, b, m, v, w, y, C, l]
102
+ [f, l, g, d, b, m, v, h, x, C, c]
103
103
  );
104
104
  return $e(() => {
105
105
  let N = !0;
@@ -107,7 +107,7 @@ function $o({
107
107
  async function S() {
108
108
  if (N)
109
109
  try {
110
- const M = await lr({ ...x, autoResume: a && r });
110
+ const M = await cr({ ...y, autoResume: a && r });
111
111
  if (!N) {
112
112
  await M.destroy();
113
113
  return;
@@ -122,34 +122,34 @@ function $o({
122
122
  const M = T.current;
123
123
  T.current = null, M && oa(() => M.destroy());
124
124
  };
125
- }, [x, a, r]), D ? /* @__PURE__ */ t(Me, { children: n }) : h ? /* @__PURE__ */ t(ya.Provider, { value: h, children: /* @__PURE__ */ t(Na, { locale: o, translations: i, children: e }) }) : (console.error("Fanfare SDK failed to initialize"), null);
125
+ }, [y, a, r]), D ? /* @__PURE__ */ t(Me, { children: n }) : w ? /* @__PURE__ */ t(ya.Provider, { value: w, children: /* @__PURE__ */ t(Na, { locale: o, translations: i, children: e }) }) : (console.error("Fanfare SDK failed to initialize"), null);
126
126
  }
127
127
  function Nt() {
128
- const e = jt(ya);
128
+ const e = zt(ya);
129
129
  if (!e)
130
130
  throw new Error(
131
131
  "useFanfare must be used within a FanfareProvider. Make sure your component is wrapped with <FanfareProvider>"
132
132
  );
133
133
  return e;
134
134
  }
135
- function qo() {
135
+ function Uo() {
136
136
  const e = Nt(), [a, r] = ve(e.auth.check());
137
137
  $e(() => {
138
- const c = e.on("auth:authenticated", () => {
138
+ const l = e.on("auth:authenticated", () => {
139
139
  r(e.auth.check());
140
140
  }), g = e.on("auth:logout", () => {
141
141
  r(e.auth.check());
142
142
  });
143
143
  return () => {
144
- c(), g();
144
+ l(), g();
145
145
  };
146
146
  }, [e]);
147
147
  const n = B(async () => {
148
- const c = await e.auth.guest();
149
- return r(e.auth.check()), c;
150
- }, [e]), o = B((c) => e.auth.requestOtp(c), [e]), i = B(
151
- async (c) => {
152
- const g = await e.auth.verifyOtp(c);
148
+ const l = await e.auth.guest();
149
+ return r(e.auth.check()), l;
150
+ }, [e]), o = B((l) => e.auth.requestOtp(l), [e]), i = B(
151
+ async (l) => {
152
+ const g = await e.auth.verifyOtp(l);
153
153
  return r(e.auth.check()), g;
154
154
  },
155
155
  [e]
@@ -165,12 +165,12 @@ function qo() {
165
165
  };
166
166
  }
167
167
  function Sa(e, a) {
168
- const r = Nt(), { locale: n, setExperienceTranslations: o } = Ft(), i = bt(null), f = bt(a), [c, g] = ve(null), [d, b] = ve(null), [m, v] = ve(null), [w, y] = ve(null), [C, l] = ve(null);
168
+ const r = Nt(), { locale: n, setExperienceTranslations: o } = Ft(), i = bt(null), f = bt(a), [l, g] = ve(null), [d, b] = ve(null), [m, v] = ve(null), [h, x] = ve(null), [C, c] = ve(null);
169
169
  $e(() => {
170
170
  f.current = a;
171
171
  }, [a]), $e(() => {
172
172
  if (!e) {
173
- i.current = null, g(null), b(null), v(null), y(null), l(null);
173
+ i.current = null, g(null), b(null), v(null), x(null), c(null);
174
174
  return;
175
175
  }
176
176
  const p = r.journeys.get(e);
@@ -191,138 +191,138 @@ function Sa(e, a) {
191
191
  let p = !1;
192
192
  const D = d?.experience?.experience?.i18n;
193
193
  if (D) {
194
- const V = mr(D, n);
194
+ const V = hr(D, n);
195
195
  o(V ?? null);
196
196
  } else p || o(null);
197
197
  return () => {
198
198
  p = !0, o(null);
199
199
  };
200
200
  }, [e, d?.experience?.experience?.i18n, n, o]);
201
- const h = B(
201
+ const w = B(
202
202
  async (p) => {
203
203
  if (!e)
204
204
  throw new Error("experienceId is required to start an experience journey");
205
205
  const D = i.current ?? r.journeys.get(e);
206
- i.current = D, g(D), y(null), l(null);
206
+ i.current = D, g(D), x(null), c(null);
207
207
  const V = f.current, T = {
208
208
  accessCode: p?.accessCode ?? V?.accessCode,
209
209
  autoEnterWaitlist: p?.autoEnterWaitlist ?? V?.autoEnterWaitlist
210
210
  };
211
211
  try {
212
- const x = D.view$.get();
213
- if (x.journeyStage === "ready") {
212
+ const y = D.view$.get();
213
+ if (y.journeyStage === "ready") {
214
214
  const N = T.accessCode ? { accessCode: T.accessCode } : void 0;
215
- await x.start(N);
215
+ await y.start(N);
216
216
  }
217
217
  if (T.autoEnterWaitlist) {
218
218
  const N = D.view$.get();
219
- N.journeyStage === "routed" && N.sequence.phase === "scheduled" && N.sequence.waitlist?.status === "not_waitlisted" && await N.sequence.waitlist.join();
219
+ N.journeyStage === "routed" && N.sequence.phase === "scheduled" && N.waitlist?.status === "not_waitlisted" && await N.waitlist.join();
220
220
  }
221
221
  return D.view$.get();
222
- } catch (x) {
223
- throw y(x instanceof Error ? x.message : "Unknown error"), l(mt(x)), x;
222
+ } catch (y) {
223
+ throw x(y instanceof Error ? y.message : "Unknown error"), c(mt(y)), y;
224
224
  }
225
225
  },
226
226
  [e, r]
227
227
  );
228
228
  return $e(() => {
229
- a?.autoStart && e && h();
230
- }, [a?.autoStart, e, h]), {
231
- journey: c,
229
+ a?.autoStart && e && w();
230
+ }, [a?.autoStart, e, w]), {
231
+ journey: l,
232
232
  view: m,
233
233
  snapshot: d,
234
- error: w,
234
+ error: h,
235
235
  fanfareError: C,
236
- start: h
236
+ start: w
237
237
  };
238
238
  }
239
- function ze(e) {
239
+ function je(e) {
240
240
  const a = B((n) => e.listen(n), [e]), r = B(() => e.get(), [e]);
241
- return cr(a, r, r);
241
+ return dr(a, r, r);
242
242
  }
243
243
  function Wo(e) {
244
- return ze(e.snapshot$);
244
+ return je(e.snapshot$);
245
245
  }
246
- function Lr({ experienceId: e, autoStart: a, children: r }) {
246
+ function Ar({ experienceId: e, autoStart: a, children: r }) {
247
247
  const n = Sa(e, {
248
248
  autoStart: a
249
249
  });
250
250
  return /* @__PURE__ */ t(Me, { children: r(n) });
251
251
  }
252
- function Uo({ experienceId: e, autoStart: a, renderHeader: r }) {
253
- return /* @__PURE__ */ t(Lr, { experienceId: e, autoStart: a, children: ({ journey: n, view: o, snapshot: i, error: f, start: c }) => {
252
+ function Ho({ experienceId: e, autoStart: a, renderHeader: r }) {
253
+ return /* @__PURE__ */ t(Ar, { experienceId: e, autoStart: a, children: ({ journey: n, view: o, snapshot: i, error: f, start: l }) => {
254
254
  const g = [], d = [];
255
255
  if (o?.journeyStage === "ready" && g.push("start"), o?.journeyStage === "gated" && g.push("reroute", "retry"), o?.journeyStage === "routed") {
256
256
  g.push("reroute", "retry");
257
257
  const v = o.sequence;
258
- v.phase === "scheduled" && v.waitlist?.status === "not_waitlisted" && d.push("joinAttachment"), v.phase === "scheduled" && v.waitlist && v.waitlist.status !== "not_waitlisted" && d.push("leaveAttachment"), v.phase === "enterable" && d.push("enter"), v.phase === "participating" && "leave" in v && d.push("leave"), v.phase === "participating" && "complete" in v && d.push("complete"), "bid" in v && d.push("bid"), "book" in v && d.push("book"), "cancel" in v && d.push("cancel"), "reschedule" in v && d.push("reschedule"), "claim" in v && d.push("claim");
258
+ v.phase === "scheduled" && o.waitlist?.status === "not_waitlisted" && d.push("joinAttachment"), v.phase === "scheduled" && o.waitlist && o.waitlist.status !== "not_waitlisted" && d.push("leaveAttachment"), v.phase === "enterable" && d.push("enter"), v.phase === "participating" && "leave" in v && d.push("leave"), v.phase === "participating" && "complete" in v && d.push("complete"), "bid" in v && d.push("bid"), "book" in v && d.push("book"), "cancel" in v && d.push("cancel"), "reschedule" in v && d.push("reschedule"), "claim" in v && d.push("claim");
259
259
  }
260
260
  const b = i ? {
261
261
  experienceId: i.experienceId,
262
262
  accessCode: i.accessCode,
263
- sequenceId: xr(i),
264
- distribution: br(i),
265
- participation: vr(i),
263
+ sequenceId: yr(i),
264
+ distribution: xr(i),
265
+ participation: br(i),
266
266
  gates: xa(i)
267
267
  } : null, m = (v) => {
268
268
  if (!n) return;
269
- const w = n.view$.get(), y = {};
270
- if (w.journeyStage === "ready" && (y.start = () => w.start()), w.journeyStage === "gated" && (y.reroute = () => w.reroute(), y.retry = () => w.retry()), w.journeyStage === "routed") {
271
- y.reroute = () => w.reroute(), y.retry = () => w.retry();
272
- const l = w.sequence;
273
- if (l.phase === "scheduled" && l.waitlist?.status === "not_waitlisted") {
274
- const h = l.waitlist.join;
275
- y.joinAttachment = () => h();
269
+ const h = n.view$.get(), x = {};
270
+ if (h.journeyStage === "ready" && (x.start = () => h.start()), h.journeyStage === "gated" && (x.reroute = () => h.reroute(), x.retry = () => h.retry()), h.journeyStage === "routed") {
271
+ x.reroute = () => h.reroute(), x.retry = () => h.retry();
272
+ const c = h.sequence;
273
+ if (c.phase === "scheduled" && h.waitlist?.status === "not_waitlisted") {
274
+ const w = h.waitlist.join;
275
+ x.joinAttachment = () => w();
276
276
  }
277
- if (l.phase === "scheduled" && l.waitlist && l.waitlist.status !== "not_waitlisted") {
278
- const h = l.waitlist.leave;
279
- y.leaveAttachment = () => h();
277
+ if (c.phase === "scheduled" && h.waitlist && h.waitlist.status !== "not_waitlisted") {
278
+ const w = h.waitlist.leave;
279
+ x.leaveAttachment = () => w();
280
280
  }
281
- if (l.phase === "enterable" && "enter" in l) {
282
- const h = l.enter;
283
- y.enter = () => h();
281
+ if (c.phase === "enterable" && "enter" in c) {
282
+ const w = c.enter;
283
+ x.enter = () => w();
284
284
  }
285
- if (l.phase === "participating" && "leave" in l) {
286
- const h = l.leave;
287
- y.leave = () => h();
285
+ if (c.phase === "participating" && "leave" in c) {
286
+ const w = c.leave;
287
+ x.leave = () => w();
288
288
  }
289
- if (l.phase === "participating" && "complete" in l) {
290
- const h = l.complete;
291
- y.complete = () => h();
289
+ if (c.phase === "participating" && "complete" in c) {
290
+ const w = c.complete;
291
+ x.complete = () => w();
292
292
  }
293
- if ("bid" in l) {
294
- const h = l.bid;
295
- y.bid = async () => {
293
+ if ("bid" in c) {
294
+ const w = c.bid;
295
+ x.bid = async () => {
296
296
  const p = globalThis.window?.prompt?.("Bid amount");
297
- p && await h(p);
297
+ p && await w(p);
298
298
  };
299
299
  }
300
- if ("book" in l) {
301
- const h = l.book;
302
- y.book = async () => {
300
+ if ("book" in c) {
301
+ const w = c.book;
302
+ x.book = async () => {
303
303
  const p = globalThis.window?.prompt?.("Slot ID");
304
- p && await h(p);
304
+ p && await w(p);
305
305
  };
306
306
  }
307
- if ("cancel" in l) {
308
- const h = l.cancel;
309
- y.cancel = () => h();
307
+ if ("cancel" in c) {
308
+ const w = c.cancel;
309
+ x.cancel = () => w();
310
310
  }
311
- if ("reschedule" in l) {
312
- const h = l.reschedule;
313
- y.reschedule = async () => {
311
+ if ("reschedule" in c) {
312
+ const w = c.reschedule;
313
+ x.reschedule = async () => {
314
314
  const p = globalThis.window?.prompt?.("New slot ID");
315
- p && await h(p);
315
+ p && await w(p);
316
316
  };
317
317
  }
318
- if ("claim" in l) {
319
- const h = l.claim;
320
- y.claim = async () => {
321
- h();
318
+ if ("claim" in c) {
319
+ const w = c.claim;
320
+ x.claim = async () => {
321
+ w();
322
322
  };
323
323
  }
324
324
  }
325
- const C = y[v];
325
+ const C = x[v];
326
326
  C && C();
327
327
  };
328
328
  return /* @__PURE__ */ u("div", { children: [
@@ -341,7 +341,7 @@ function Uo({ experienceId: e, autoStart: a, renderHeader: r }) {
341
341
  ] }),
342
342
  /* @__PURE__ */ u("div", { children: [
343
343
  "Sequence phase: ",
344
- yr(i)
344
+ kr(i)
345
345
  ] }),
346
346
  /* @__PURE__ */ u("div", { children: [
347
347
  "Journey actions: ",
@@ -358,7 +358,7 @@ function Uo({ experienceId: e, autoStart: a, renderHeader: r }) {
358
358
  type: "button",
359
359
  disabled: !n,
360
360
  onClick: () => {
361
- c();
361
+ l();
362
362
  },
363
363
  children: "Start"
364
364
  }
@@ -404,16 +404,16 @@ function Dt(e) {
404
404
  const r = a.replace(/\D/g, "").slice(0, 10);
405
405
  return r.length === 0 ? "" : r.length <= 3 ? `(${r}` : r.length <= 6 ? `(${r.slice(0, 3)}) ${r.slice(3)}` : `(${r.slice(0, 3)}) ${r.slice(3, 6)}-${r.slice(6, 10)}`;
406
406
  }
407
- function Ar(e) {
407
+ function Ir(e) {
408
408
  if (!e) return null;
409
409
  const a = Pt(e), r = a.replace(/\D/g, "");
410
410
  return a.startsWith("+") ? r.length < 10 || r.length > 15 ? null : `+${r}` : r.length === 10 ? `+1${r}` : null;
411
411
  }
412
- function Ir(e) {
412
+ function jr(e) {
413
413
  const a = e.replace(/\D/g, "");
414
414
  return e.startsWith("+") ? a.length >= 10 && a.length <= 15 : a.length === 10;
415
415
  }
416
- const zr = _r({
416
+ const zr = Nr({
417
417
  extend: {
418
418
  classGroups: {
419
419
  "font-size": ["text-xxs"]
@@ -421,14 +421,14 @@ const zr = _r({
421
421
  }
422
422
  });
423
423
  function E(...e) {
424
- return zr(kr(e));
424
+ return zr(_r(e));
425
425
  }
426
426
  function fa(e, a) {
427
427
  if (typeof e == "function")
428
428
  return e(a);
429
429
  e != null && (e.current = a);
430
430
  }
431
- function jr(...e) {
431
+ function Fr(...e) {
432
432
  return (a) => {
433
433
  let r = !1;
434
434
  const n = e.map((o) => {
@@ -444,56 +444,56 @@ function jr(...e) {
444
444
  };
445
445
  };
446
446
  }
447
- var Fr = /* @__PURE__ */ Symbol.for("react.lazy"), xt = s[" use ".trim().toString()];
448
- function Pr(e) {
447
+ var Pr = /* @__PURE__ */ Symbol.for("react.lazy"), xt = s[" use ".trim().toString()];
448
+ function Br(e) {
449
449
  return typeof e == "object" && e !== null && "then" in e;
450
450
  }
451
451
  function Ca(e) {
452
- return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof === Fr && "_payload" in e && Pr(e._payload);
452
+ return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof === Pr && "_payload" in e && Br(e._payload);
453
453
  }
454
454
  // @__NO_SIDE_EFFECTS__
455
- function Br(e) {
456
- const a = /* @__PURE__ */ $r(e), r = s.forwardRef((n, o) => {
455
+ function Or(e) {
456
+ const a = /* @__PURE__ */ qr(e), r = s.forwardRef((n, o) => {
457
457
  let { children: i, ...f } = n;
458
458
  Ca(i) && typeof xt == "function" && (i = xt(i._payload));
459
- const c = s.Children.toArray(i), g = c.find(Wr);
459
+ const l = s.Children.toArray(i), g = l.find(Wr);
460
460
  if (g) {
461
- const d = g.props.children, b = c.map((m) => m === g ? s.Children.count(d) > 1 ? s.Children.only(null) : s.isValidElement(d) ? d.props.children : null : m);
461
+ const d = g.props.children, b = l.map((m) => m === g ? s.Children.count(d) > 1 ? s.Children.only(null) : s.isValidElement(d) ? d.props.children : null : m);
462
462
  return /* @__PURE__ */ t(a, { ...f, ref: o, children: s.isValidElement(d) ? s.cloneElement(d, void 0, b) : null });
463
463
  }
464
464
  return /* @__PURE__ */ t(a, { ...f, ref: o, children: i });
465
465
  });
466
466
  return r.displayName = `${e}.Slot`, r;
467
467
  }
468
- var Or = /* @__PURE__ */ Br("Slot");
468
+ var $r = /* @__PURE__ */ Or("Slot");
469
469
  // @__NO_SIDE_EFFECTS__
470
- function $r(e) {
470
+ function qr(e) {
471
471
  const a = s.forwardRef((r, n) => {
472
472
  let { children: o, ...i } = r;
473
473
  if (Ca(o) && typeof xt == "function" && (o = xt(o._payload)), s.isValidElement(o)) {
474
- const f = Hr(o), c = Ur(i, o.props);
475
- return o.type !== s.Fragment && (c.ref = n ? jr(n, f) : f), s.cloneElement(o, c);
474
+ const f = Kr(o), l = Hr(i, o.props);
475
+ return o.type !== s.Fragment && (l.ref = n ? Fr(n, f) : f), s.cloneElement(o, l);
476
476
  }
477
477
  return s.Children.count(o) > 1 ? s.Children.only(null) : null;
478
478
  });
479
479
  return a.displayName = `${e}.SlotClone`, a;
480
480
  }
481
- var qr = /* @__PURE__ */ Symbol("radix.slottable");
481
+ var Ur = /* @__PURE__ */ Symbol("radix.slottable");
482
482
  function Wr(e) {
483
- return s.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === qr;
483
+ return s.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === Ur;
484
484
  }
485
- function Ur(e, a) {
485
+ function Hr(e, a) {
486
486
  const r = { ...a };
487
487
  for (const n in a) {
488
488
  const o = e[n], i = a[n];
489
- /^on[A-Z]/.test(n) ? o && i ? r[n] = (...c) => {
490
- const g = i(...c);
491
- return o(...c), g;
489
+ /^on[A-Z]/.test(n) ? o && i ? r[n] = (...l) => {
490
+ const g = i(...l);
491
+ return o(...l), g;
492
492
  } : o && (r[n] = o) : n === "style" ? r[n] = { ...o, ...i } : n === "className" && (r[n] = [o, i].filter(Boolean).join(" "));
493
493
  }
494
494
  return { ...e, ...r };
495
495
  }
496
- function Hr(e) {
496
+ function Kr(e) {
497
497
  let a = Object.getOwnPropertyDescriptor(e.props, "ref")?.get, r = a && "isReactWarning" in a && a.isReactWarning;
498
498
  return r ? e.ref : (a = Object.getOwnPropertyDescriptor(e, "ref")?.get, r = a && "isReactWarning" in a && a.isReactWarning, r ? e.props.ref : e.props.ref || e.ref);
499
499
  }
@@ -502,15 +502,15 @@ const ot = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-
502
502
  animate: { opacity: 1 },
503
503
  exit: { opacity: 0 },
504
504
  transition: { duration: 0.2 }
505
- }, Kr = {
505
+ }, Zr = {
506
506
  initial: { opacity: 0 },
507
507
  animate: { opacity: 1 },
508
508
  transition: { duration: 0.25, ease: "easeOut" }
509
- }, Zr = {
509
+ }, Yr = {
510
510
  initial: { opacity: 1 },
511
511
  animate: { opacity: 1 },
512
512
  transition: { duration: 0 }
513
- }, we = () => ot() ? Zr : Kr, re = {
513
+ }, we = () => ot() ? Yr : Zr, re = {
514
514
  // Core colors
515
515
  primary: "--ff-color-primary",
516
516
  primaryForeground: "--ff-color-primary-foreground",
@@ -532,18 +532,18 @@ const ot = () => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-
532
532
  // Typography
533
533
  fontFamily: "--ff-font-sans",
534
534
  fontHeading: "--ff-font-heading"
535
- }, Yr = {
536
- theme: Sr,
535
+ }, Gr = {
536
+ theme: Cr,
537
537
  variant: "default",
538
538
  isRoot: !0
539
- }, Tt = zt(Yr);
539
+ }, Tt = jt(Gr);
540
540
  function ft() {
541
- return jt(Tt);
541
+ return zt(Tt);
542
542
  }
543
- function Gr(e, a) {
543
+ function Jr(e, a) {
544
544
  const r = ft();
545
545
  return X(() => ({
546
- theme: e ? Nr({ ...r.theme, ...e }) : r.theme,
546
+ theme: e ? Sr({ ...r.theme, ...e }) : r.theme,
547
547
  variant: a ?? r.variant,
548
548
  isRoot: !1
549
549
  }), [r, e, a]);
@@ -586,12 +586,12 @@ function Da(e) {
586
586
  return e.fontFamily !== void 0 && (a[re.fontFamily] = e.fontFamily, e.fontHeading === void 0 && (a[re.fontHeading] = e.fontFamily)), e.fontHeading !== void 0 && (a[re.fontHeading] = e.fontHeading), a;
587
587
  }
588
588
  function Rt({ theme: e, variant: a, as: r = "div", className: n, children: o }) {
589
- const i = ft(), f = Gr(e, a), c = X(() => Da(e ?? {}), [e]);
589
+ const i = ft(), f = Jr(e, a), l = X(() => Da(e ?? {}), [e]);
590
590
  return e !== void 0 || a !== void 0 || i.isRoot ? /* @__PURE__ */ t(Tt.Provider, { value: f, children: /* @__PURE__ */ t(
591
591
  r,
592
592
  {
593
593
  className: E("fanfare-themed", n),
594
- style: c,
594
+ style: l,
595
595
  "data-fanfare-themed": !0,
596
596
  "data-fanfare-variant": f.variant,
597
597
  children: o
@@ -601,7 +601,7 @@ function Rt({ theme: e, variant: a, as: r = "div", className: n, children: o })
601
601
  function ge() {
602
602
  return ft().variant;
603
603
  }
604
- const Jr = (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" }) }), Qr = kt(Jr), Xr = (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" }) }), en = kt(Xr), tn = te("ff:animate-spin ff:text-current", {
604
+ const Qr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "m4.5 12.75l6 6l9-13.5" }) }), Xr = kt(Qr), en = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M6 18L18 6M6 6l12 12" }) }), tn = kt(en), an = ae("ff:animate-spin ff:text-current", {
605
605
  variants: {
606
606
  size: {
607
607
  sm: "ff:size-4",
@@ -627,7 +627,7 @@ const Jr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.
627
627
  ref: n,
628
628
  viewBox: "0 0 24 24",
629
629
  xmlns: "http://www.w3.org/2000/svg",
630
- className: E(tn({ size: a, styleVariant: o }), e),
630
+ className: E(an({ size: a, styleVariant: o }), e),
631
631
  "data-slot": "spinner",
632
632
  "data-size": a,
633
633
  "aria-hidden": "true",
@@ -668,7 +668,7 @@ const Jr = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.
668
668
  );
669
669
  });
670
670
  Te.displayName = "Spinner";
671
- const an = te(
671
+ const rn = ae(
672
672
  [
673
673
  "ff:relative ff:inline-flex ff:items-center ff:justify-center",
674
674
  "ff:whitespace-nowrap ff:font-medium",
@@ -799,21 +799,21 @@ const an = te(
799
799
  asChild: o = !1,
800
800
  statusRef: i,
801
801
  contentClassName: f,
802
- disabled: c,
802
+ disabled: l,
803
803
  children: g,
804
804
  ...d
805
805
  }, b) => {
806
- const m = o ? Or : "button", v = ge(), [w, y] = s.useState(void 0);
806
+ const m = o ? $r : "button", v = ge(), [h, x] = s.useState(void 0);
807
807
  s.useImperativeHandle(i, () => ({
808
- success: () => y("success"),
809
- failure: () => y("failure")
808
+ success: () => x("success"),
809
+ failure: () => x("failure")
810
810
  })), s.useEffect(() => {
811
- if (w === "success" || w === "failure") {
812
- const l = setTimeout(() => y(void 0), 1500);
813
- return () => clearTimeout(l);
811
+ if (h === "success" || h === "failure") {
812
+ const c = setTimeout(() => x(void 0), 1500);
813
+ return () => clearTimeout(c);
814
814
  }
815
- }, [w]);
816
- const C = c || n || !!w;
815
+ }, [h]);
816
+ const C = l || n || !!h;
817
817
  return /* @__PURE__ */ u(
818
818
  m,
819
819
  {
@@ -822,20 +822,20 @@ const an = te(
822
822
  "data-variant": a,
823
823
  "data-size": r,
824
824
  "data-loading": n || void 0,
825
- "data-status": w || void 0,
825
+ "data-status": h || void 0,
826
826
  "aria-busy": n || void 0,
827
827
  "aria-disabled": C || void 0,
828
- className: E(an({ variant: a, size: r, styleVariant: v, className: e })),
828
+ className: E(rn({ variant: a, size: r, styleVariant: v, className: e })),
829
829
  disabled: C,
830
830
  ...d,
831
831
  children: [
832
- n && !w && /* @__PURE__ */ t(Te, { size: "sm", className: "ff:absolute", "data-slot": "button-spinner" }),
833
- w && /* @__PURE__ */ t(
832
+ n && !h && /* @__PURE__ */ t(Te, { size: "sm", className: "ff:absolute", "data-slot": "button-spinner" }),
833
+ h && /* @__PURE__ */ t(
834
834
  "span",
835
835
  {
836
836
  "data-slot": "button-status",
837
837
  className: "ff:pointer-events-none ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center",
838
- children: /* @__PURE__ */ t(_t, { children: w === "success" ? /* @__PURE__ */ t(U.span, { ...ia, className: "ff:flex", children: /* @__PURE__ */ t(Qr, { className: "ff:size-5" }) }, "success") : /* @__PURE__ */ t(U.span, { ...ia, className: "ff:flex", children: /* @__PURE__ */ t(en, { className: "ff:size-5" }) }, "failure") })
838
+ children: /* @__PURE__ */ t(_t, { children: h === "success" ? /* @__PURE__ */ t(W.span, { ...ia, className: "ff:flex", children: /* @__PURE__ */ t(Xr, { className: "ff:size-5" }) }, "success") : /* @__PURE__ */ t(W.span, { ...ia, className: "ff:flex", children: /* @__PURE__ */ t(tn, { className: "ff:size-5" }) }, "failure") })
839
839
  }
840
840
  ),
841
841
  /* @__PURE__ */ t(
@@ -844,7 +844,7 @@ const an = te(
844
844
  "data-slot": "button-content",
845
845
  className: E(
846
846
  "ff:gap-inherit ff:flex ff:items-center",
847
- (n || w) && "ff:opacity-0",
847
+ (n || h) && "ff:opacity-0",
848
848
  f
849
849
  ),
850
850
  children: g
@@ -856,7 +856,7 @@ const an = te(
856
856
  }
857
857
  );
858
858
  j.displayName = "Button";
859
- const sa = ["default", "rounded"], rn = te(
859
+ const sa = ["default", "rounded"], nn = ae(
860
860
  [
861
861
  "ff:flex ff:w-full ff:rounded-md ff:px-3 ff:py-2",
862
862
  "ff:text-foreground ff:text-sm",
@@ -906,7 +906,7 @@ const sa = ["default", "rounded"], rn = te(
906
906
  styleVariant: "default"
907
907
  }
908
908
  }
909
- ), la = te([], {
909
+ ), la = ae([], {
910
910
  variants: {
911
911
  styleVariant: {
912
912
  default: "",
@@ -919,19 +919,19 @@ const sa = ["default", "rounded"], rn = te(
919
919
  styleVariant: "default"
920
920
  }
921
921
  }), yt = s.forwardRef(
922
- ({ className: e, type: a = "text", label: r, error: n, hasError: o, inlineLabel: i, inlineError: f, ...c }, g) => {
923
- const { variant: d } = ft(), b = ge(), m = c.id || c.name, v = i ?? sa.includes(d), w = f ?? sa.includes(d), y = o || !!n, C = !!n && !o, l = v && r, h = !v && r, p = w && C, D = !w && C, V = E(
924
- rn({ styleVariant: b }),
925
- y && "ff:border-danger ff:focus:border-danger ff:focus:ring-danger",
922
+ ({ className: e, type: a = "text", label: r, error: n, hasError: o, inlineLabel: i, inlineError: f, ...l }, g) => {
923
+ const { variant: d } = ft(), b = ge(), m = l.id || l.name, v = i ?? sa.includes(d), h = f ?? sa.includes(d), x = o || !!n, C = !!n && !o, c = v && r, w = !v && r, p = h && C, D = !h && C, V = E(
924
+ nn({ styleVariant: b }),
925
+ x && "ff:border-danger ff:focus:border-danger ff:focus:ring-danger",
926
926
  // Extra padding for floating label
927
- l && "ff:pt-5 ff:pb-1",
927
+ c && "ff:pt-5 ff:pb-1",
928
928
  e
929
929
  );
930
- return l ? /* @__PURE__ */ u(
930
+ return c ? /* @__PURE__ */ u(
931
931
  "div",
932
932
  {
933
933
  "data-slot": "input-wrapper",
934
- "data-error": y || void 0,
934
+ "data-error": x || void 0,
935
935
  "data-inline-label": "true",
936
936
  className: "ff:group ff:relative",
937
937
  children: [
@@ -942,16 +942,16 @@ const sa = ["default", "rounded"], rn = te(
942
942
  type: a,
943
943
  id: m,
944
944
  "data-slot": "input-field",
945
- "aria-invalid": y,
945
+ "aria-invalid": x,
946
946
  "aria-describedby": C ? `${m}-error` : void 0,
947
- placeholder: c.placeholder || " ",
947
+ placeholder: l.placeholder || " ",
948
948
  className: E(
949
949
  V,
950
950
  // Placeholder shown state for label positioning
951
951
  "ff:peer ff:placeholder:opacity-0 ff:placeholder:transition-opacity ff:placeholder:duration-200",
952
952
  "ff:focus:placeholder:opacity-100"
953
953
  ),
954
- ...c
954
+ ...l
955
955
  }
956
956
  ),
957
957
  /* @__PURE__ */ t(
@@ -972,7 +972,7 @@ const sa = ["default", "rounded"], rn = te(
972
972
  // Disabled state
973
973
  "ff:peer-disabled:text-muted ff:peer-disabled:opacity-50",
974
974
  // Error state
975
- y && "ff:text-danger ff:peer-focus:text-danger",
975
+ x && "ff:text-danger ff:peer-focus:text-danger",
976
976
  // Style variant
977
977
  la({ styleVariant: b })
978
978
  ),
@@ -1002,7 +1002,7 @@ const sa = ["default", "rounded"], rn = te(
1002
1002
  ]
1003
1003
  }
1004
1004
  ) : /* @__PURE__ */ u("div", { "data-slot": "input-wrapper", "data-error": !!n || void 0, className: "ff:relative", children: [
1005
- h && /* @__PURE__ */ t(
1005
+ w && /* @__PURE__ */ t(
1006
1006
  "label",
1007
1007
  {
1008
1008
  htmlFor: m,
@@ -1022,10 +1022,10 @@ const sa = ["default", "rounded"], rn = te(
1022
1022
  type: a,
1023
1023
  id: m,
1024
1024
  "data-slot": "input-field",
1025
- "aria-invalid": y,
1025
+ "aria-invalid": x,
1026
1026
  "aria-describedby": C ? `${m}-error` : void 0,
1027
1027
  className: V,
1028
- ...c
1028
+ ...l
1029
1029
  }
1030
1030
  ),
1031
1031
  p && /* @__PURE__ */ t(
@@ -1044,7 +1044,7 @@ const sa = ["default", "rounded"], rn = te(
1044
1044
  }
1045
1045
  );
1046
1046
  yt.displayName = "Input";
1047
- const nn = ht.pipe(ht.string(), ht.email());
1047
+ const on = ht.pipe(ht.string(), ht.email());
1048
1048
  function Va(e) {
1049
1049
  if (!e) return "email";
1050
1050
  const r = Pt(e).replace(/\D/g, "");
@@ -1059,49 +1059,49 @@ const Ea = s.forwardRef(
1059
1059
  onSubmit: o,
1060
1060
  type: i = "auto",
1061
1061
  error: f,
1062
- hasError: c,
1062
+ hasError: l,
1063
1063
  label: g,
1064
1064
  disabled: d,
1065
1065
  ...b
1066
1066
  }, m) => {
1067
- const { t: v } = K(), [w, y] = s.useState(() => i === "auto" ? Va(a) : i), [C, l] = s.useState(!1), [h, p] = s.useState(null), [D, V] = s.useState(!1), [T, x] = s.useState(
1068
- () => w === "phone" ? Dt(a) : a
1067
+ const { t: v } = K(), [h, x] = s.useState(() => i === "auto" ? Va(a) : i), [C, c] = s.useState(!1), [w, p] = s.useState(null), [D, V] = s.useState(!1), [T, y] = s.useState(
1068
+ () => h === "phone" ? Dt(a) : a
1069
1069
  ), N = i === "auto";
1070
1070
  s.useEffect(() => {
1071
- N || y(i);
1071
+ N || x(i);
1072
1072
  }, [i, N]), s.useEffect(() => {
1073
- x(w === "phone" ? Dt(a) : a);
1074
- }, [a, w]);
1073
+ y(h === "phone" ? Dt(a) : a);
1074
+ }, [a, h]);
1075
1075
  const S = s.useCallback(
1076
1076
  (L, J) => {
1077
1077
  if (!L) {
1078
1078
  p(null), V(!1), n?.(!1);
1079
1079
  return;
1080
1080
  }
1081
- J === "email" ? ht.safeParse(nn, L).success ? (p(null), V(!0), n?.(!0)) : (p(v("auth.invalidEmail")), V(!1), n?.(!1)) : Ir(L) ? (p(null), V(!0), n?.(!0)) : (p(v("auth.invalidPhone")), V(!1), n?.(!1));
1081
+ J === "email" ? ht.safeParse(on, L).success ? (p(null), V(!0), n?.(!0)) : (p(v("auth.invalidEmail")), V(!1), n?.(!1)) : jr(L) ? (p(null), V(!0), n?.(!0)) : (p(v("auth.invalidPhone")), V(!1), n?.(!1));
1082
1082
  },
1083
1083
  [n]
1084
1084
  );
1085
1085
  s.useEffect(() => {
1086
- S(a, w);
1087
- }, [a, w, S]);
1086
+ S(a, h);
1087
+ }, [a, h, S]);
1088
1088
  const M = (L) => {
1089
1089
  const J = L.target.value;
1090
- if (w === "phone") {
1090
+ if (h === "phone") {
1091
1091
  const ne = Dt(J);
1092
- x(ne);
1093
- const se = Ar(J);
1094
- r(se || J, w);
1092
+ y(ne);
1093
+ const se = Ir(J);
1094
+ r(se || J, h);
1095
1095
  } else
1096
- x(J), r(J, w);
1096
+ y(J), r(J, h);
1097
1097
  }, A = (L) => {
1098
- l(!0), b.onBlur?.(L);
1098
+ c(!0), b.onBlur?.(L);
1099
1099
  }, I = (L) => {
1100
1100
  L.key === "Enter" && o && (L.preventDefault(), o()), b.onKeyDown?.(L);
1101
1101
  }, O = () => {
1102
- const L = w === "email" ? "phone" : "email";
1103
- y(L), x(""), p(null), l(!1), V(!1), r("", L), n?.(!1);
1104
- }, $ = f || (C && !D ? h : null), fe = b.placeholder || v(w === "email" ? "auth.emailPlaceholder" : "auth.phonePlaceholder"), ce = N && /* @__PURE__ */ t(
1102
+ const L = h === "email" ? "phone" : "email";
1103
+ x(L), y(""), p(null), c(!1), V(!1), r("", L), n?.(!1);
1104
+ }, $ = f || (C && !D ? w : null), fe = b.placeholder || v(h === "email" ? "auth.emailPlaceholder" : "auth.phonePlaceholder"), ce = N && /* @__PURE__ */ t(
1105
1105
  j,
1106
1106
  {
1107
1107
  type: "button",
@@ -1110,7 +1110,7 @@ const Ea = s.forwardRef(
1110
1110
  "data-slot": "auth-input-toggle",
1111
1111
  onClick: O,
1112
1112
  disabled: d,
1113
- children: v(w === "email" ? "auth.usePhone" : "auth.useEmail")
1113
+ children: v(h === "email" ? "auth.usePhone" : "auth.useEmail")
1114
1114
  }
1115
1115
  );
1116
1116
  return N ? /* @__PURE__ */ u(
@@ -1118,7 +1118,7 @@ const Ea = s.forwardRef(
1118
1118
  {
1119
1119
  className: E("fanfare-auth-input", e),
1120
1120
  "data-slot": "auth-input",
1121
- "data-mode": w,
1121
+ "data-mode": h,
1122
1122
  "data-valid": D || void 0,
1123
1123
  children: [
1124
1124
  /* @__PURE__ */ u("div", { "data-slot": "auth-input-header", className: "ff:mb-1.5 ff:flex ff:items-center ff:justify-between", children: [
@@ -1129,9 +1129,9 @@ const Ea = s.forwardRef(
1129
1129
  yt,
1130
1130
  {
1131
1131
  ref: m,
1132
- type: w === "email" ? "email" : "tel",
1133
- inputMode: w === "email" ? "email" : "tel",
1134
- autoComplete: w === "email" ? "email" : "tel",
1132
+ type: h === "email" ? "email" : "tel",
1133
+ inputMode: h === "email" ? "email" : "tel",
1134
+ autoComplete: h === "email" ? "email" : "tel",
1135
1135
  value: T,
1136
1136
  onChange: M,
1137
1137
  onBlur: A,
@@ -1139,7 +1139,7 @@ const Ea = s.forwardRef(
1139
1139
  placeholder: fe,
1140
1140
  disabled: d,
1141
1141
  error: $ || void 0,
1142
- hasError: c,
1142
+ hasError: l,
1143
1143
  inlineLabel: !1,
1144
1144
  inlineError: !1,
1145
1145
  "data-slot": "auth-input-field",
@@ -1152,9 +1152,9 @@ const Ea = s.forwardRef(
1152
1152
  yt,
1153
1153
  {
1154
1154
  ref: m,
1155
- type: w === "email" ? "email" : "tel",
1156
- inputMode: w === "email" ? "email" : "tel",
1157
- autoComplete: w === "email" ? "email" : "tel",
1155
+ type: h === "email" ? "email" : "tel",
1156
+ inputMode: h === "email" ? "email" : "tel",
1157
+ autoComplete: h === "email" ? "email" : "tel",
1158
1158
  value: T,
1159
1159
  onChange: M,
1160
1160
  onBlur: A,
@@ -1163,10 +1163,10 @@ const Ea = s.forwardRef(
1163
1163
  disabled: d,
1164
1164
  label: g,
1165
1165
  error: $ || void 0,
1166
- hasError: c,
1166
+ hasError: l,
1167
1167
  className: E("fanfare-auth-input", e),
1168
1168
  "data-slot": "auth-input",
1169
- "data-mode": w,
1169
+ "data-mode": h,
1170
1170
  "data-valid": D || void 0,
1171
1171
  ...b
1172
1172
  }
@@ -1174,7 +1174,7 @@ const Ea = s.forwardRef(
1174
1174
  }
1175
1175
  );
1176
1176
  Ea.displayName = "AuthInput";
1177
- const on = te(
1177
+ const fn = ae(
1178
1178
  [
1179
1179
  "ff:h-12 ff:w-full ff:min-w-0 ff:text-center ff:text-lg ff:font-semibold",
1180
1180
  "ff:text-foreground",
@@ -1243,56 +1243,56 @@ const on = te(
1243
1243
  }
1244
1244
  }
1245
1245
  ), Ma = s.forwardRef(
1246
- ({ value: e = "", onChange: a, onComplete: r, length: n = 6, error: o, hasError: i, disabled: f, autoFocus: c, ariaDescribedBy: g, className: d }, b) => {
1247
- const m = ge(), v = s.useRef([]), [w, y] = s.useState(() => {
1248
- const x = e.split("").slice(0, n);
1249
- return [...x, ...Array(n - x.length).fill("")];
1246
+ ({ value: e = "", onChange: a, onComplete: r, length: n = 6, error: o, hasError: i, disabled: f, autoFocus: l, ariaDescribedBy: g, className: d }, b) => {
1247
+ const m = ge(), v = s.useRef([]), [h, x] = s.useState(() => {
1248
+ const y = e.split("").slice(0, n);
1249
+ return [...y, ...Array(n - y.length).fill("")];
1250
1250
  });
1251
1251
  s.useEffect(() => {
1252
- const x = e.split("").slice(0, n);
1253
- y([...x, ...Array(n - x.length).fill("")]);
1252
+ const y = e.split("").slice(0, n);
1253
+ x([...y, ...Array(n - y.length).fill("")]);
1254
1254
  }, [e, n]);
1255
- const C = (x) => {
1256
- x >= 0 && x < n && v.current[x]?.focus();
1257
- }, l = (x, N) => {
1255
+ const C = (y) => {
1256
+ y >= 0 && y < n && v.current[y]?.focus();
1257
+ }, c = (y, N) => {
1258
1258
  const S = N.replace(/\D/g, "");
1259
1259
  if (S.length > 1) {
1260
1260
  const O = S.slice(0, n).split(""), $ = [...O, ...Array(n - O.length).fill("")];
1261
- y($);
1261
+ x($);
1262
1262
  const fe = $.join("");
1263
1263
  a?.(fe), fe.length === n ? (r?.(fe), C(n - 1)) : C(O.length);
1264
1264
  return;
1265
1265
  }
1266
- const M = S.slice(-1), A = [...w];
1267
- A[x] = M, y(A);
1266
+ const M = S.slice(-1), A = [...h];
1267
+ A[y] = M, x(A);
1268
1268
  const I = A.join("");
1269
- a?.(I), M && x < n - 1 && C(x + 1), I.length === n && !I.includes("") && r?.(I);
1270
- }, h = (x, N) => {
1269
+ a?.(I), M && y < n - 1 && C(y + 1), I.length === n && !I.includes("") && r?.(I);
1270
+ }, w = (y, N) => {
1271
1271
  switch (N.key) {
1272
1272
  case "Backspace":
1273
- N.preventDefault(), w[x] ? l(x, "") : x > 0 && (C(x - 1), l(x - 1, ""));
1273
+ N.preventDefault(), h[y] ? c(y, "") : y > 0 && (C(y - 1), c(y - 1, ""));
1274
1274
  break;
1275
1275
  case "ArrowLeft":
1276
- N.preventDefault(), C(x - 1);
1276
+ N.preventDefault(), C(y - 1);
1277
1277
  break;
1278
1278
  case "ArrowRight":
1279
- N.preventDefault(), C(x + 1);
1279
+ N.preventDefault(), C(y + 1);
1280
1280
  break;
1281
1281
  case "Delete":
1282
- N.preventDefault(), l(x, "");
1282
+ N.preventDefault(), c(y, "");
1283
1283
  break;
1284
1284
  }
1285
- }, p = (x) => {
1286
- x.preventDefault();
1287
- const N = x.clipboardData.getData("text").replace(/\D/g, "").slice(0, n);
1285
+ }, p = (y) => {
1286
+ y.preventDefault();
1287
+ const N = y.clipboardData.getData("text").replace(/\D/g, "").slice(0, n);
1288
1288
  if (N) {
1289
1289
  const S = N.split(""), M = [...S, ...Array(n - S.length).fill("")];
1290
- y(M);
1290
+ x(M);
1291
1291
  const A = M.join("");
1292
1292
  a?.(A), A.length === n ? (r?.(A), C(n - 1)) : C(S.length);
1293
1293
  }
1294
- }, D = (x) => {
1295
- x.target.select();
1294
+ }, D = (y) => {
1295
+ y.target.select();
1296
1296
  }, V = i || !!o, T = !!o && !i;
1297
1297
  return /* @__PURE__ */ u(
1298
1298
  "div",
@@ -1309,7 +1309,7 @@ const on = te(
1309
1309
  className: "ff:grid ff:gap-2",
1310
1310
  style: { gridTemplateColumns: `repeat(${n}, minmax(0, 1fr))` },
1311
1311
  onPaste: p,
1312
- children: Array.from({ length: n }).map((x, N) => /* @__PURE__ */ t(
1312
+ children: Array.from({ length: n }).map((y, N) => /* @__PURE__ */ t(
1313
1313
  "input",
1314
1314
  {
1315
1315
  ref: (S) => {
@@ -1320,16 +1320,16 @@ const on = te(
1320
1320
  autoComplete: N === 0 ? "one-time-code" : "off",
1321
1321
  maxLength: 1,
1322
1322
  "data-slot": "otp-input-digit",
1323
- value: w[N],
1324
- onChange: (S) => l(N, S.target.value),
1325
- onKeyDown: (S) => h(N, S),
1323
+ value: h[N],
1324
+ onChange: (S) => c(N, S.target.value),
1325
+ onKeyDown: (S) => w(N, S),
1326
1326
  onFocus: D,
1327
1327
  disabled: f,
1328
- autoFocus: c && N === 0,
1328
+ autoFocus: l && N === 0,
1329
1329
  "aria-label": `Digit ${N + 1} of ${n}`,
1330
1330
  "aria-invalid": V,
1331
1331
  "aria-describedby": V ? g : void 0,
1332
- className: on({ styleVariant: m, hasError: V })
1332
+ className: fn({ styleVariant: m, hasError: V })
1333
1333
  },
1334
1334
  N
1335
1335
  ))
@@ -1342,7 +1342,7 @@ const on = te(
1342
1342
  }
1343
1343
  );
1344
1344
  Ma.displayName = "OTPInput";
1345
- const fn = te(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"], {
1345
+ const sn = ae(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"], {
1346
1346
  variants: {
1347
1347
  variant: {
1348
1348
  default: "ff:border ff:border-border",
@@ -1380,15 +1380,15 @@ const fn = te(["ff:rounded-lg ff:p-6", "ff:bg-background", "ff:text-foreground"]
1380
1380
  ref: n,
1381
1381
  "data-slot": "card",
1382
1382
  "data-variant": a,
1383
- className: E(fn({ variant: a, styleVariant: o, className: e })),
1383
+ className: E(sn({ variant: a, styleVariant: o, className: e })),
1384
1384
  ...r
1385
1385
  }
1386
1386
  );
1387
1387
  });
1388
1388
  Ta.displayName = "Card";
1389
- const sn = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-header", className: E("fanfare-card-header ff:mb-4", e), ...a }));
1390
- sn.displayName = "CardHeader";
1391
- const ln = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1389
+ const ln = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-header", className: E("fanfare-card-header ff:mb-4", e), ...a }));
1390
+ ln.displayName = "CardHeader";
1391
+ const cn = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1392
1392
  "h3",
1393
1393
  {
1394
1394
  ref: r,
@@ -1397,8 +1397,8 @@ const ln = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1397
1397
  ...a
1398
1398
  }
1399
1399
  ));
1400
- ln.displayName = "CardTitle";
1401
- const cn = s.forwardRef(
1400
+ cn.displayName = "CardTitle";
1401
+ const dn = s.forwardRef(
1402
1402
  ({ className: e, ...a }, r) => /* @__PURE__ */ t(
1403
1403
  "p",
1404
1404
  {
@@ -1409,10 +1409,10 @@ const cn = s.forwardRef(
1409
1409
  }
1410
1410
  )
1411
1411
  );
1412
- cn.displayName = "CardDescription";
1413
- const dn = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-content", className: E(e), ...a }));
1414
- dn.displayName = "CardContent";
1415
- const un = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1412
+ dn.displayName = "CardDescription";
1413
+ const un = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, "data-slot": "card-content", className: E(e), ...a }));
1414
+ un.displayName = "CardContent";
1415
+ const pn = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1416
1416
  "div",
1417
1417
  {
1418
1418
  ref: r,
@@ -1421,7 +1421,7 @@ const un = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
1421
1421
  ...a
1422
1422
  }
1423
1423
  ));
1424
- un.displayName = "CardFooter";
1424
+ pn.displayName = "CardFooter";
1425
1425
  const Ra = s.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ u(
1426
1426
  "svg",
1427
1427
  {
@@ -1595,7 +1595,7 @@ function Lt(e) {
1595
1595
  }
1596
1596
  const Y = s.forwardRef(
1597
1597
  ({ className: e, children: a, ...r }, n) => {
1598
- const o = s.Children.toArray(a), i = o.filter(Lt), f = o.filter((c) => !Lt(c));
1598
+ const o = s.Children.toArray(a), i = o.filter(Lt), f = o.filter((l) => !Lt(l));
1599
1599
  return /* @__PURE__ */ u(
1600
1600
  Ta,
1601
1601
  {
@@ -1612,7 +1612,7 @@ const Y = s.forwardRef(
1612
1612
  }
1613
1613
  );
1614
1614
  Y.displayName = "PanelLayout";
1615
- const pn = ["clean"], gn = te(["ff:inline-flex ff:items-center", "ff:text-xs ff:font-medium"], {
1615
+ const gn = ["clean"], mn = ae(["ff:inline-flex ff:items-center", "ff:text-xs ff:font-medium"], {
1616
1616
  variants: {
1617
1617
  variant: {
1618
1618
  default: "",
@@ -1734,7 +1734,7 @@ const pn = ["clean"], gn = te(["ff:inline-flex ff:items-center", "ff:text-xs ff:
1734
1734
  outline: "ff:bg-foreground/40"
1735
1735
  }, La = s.forwardRef(
1736
1736
  ({ className: e, variant: a = "default", solidBackground: r, children: n, ...o }, i) => {
1737
- const { variant: f } = ft(), c = ge(), g = a ?? "default", d = r ?? !pn.includes(f), b = !d && ca[g];
1737
+ const { variant: f } = ft(), l = ge(), g = a ?? "default", d = r ?? !gn.includes(f), b = !d && ca[g];
1738
1738
  return /* @__PURE__ */ u(
1739
1739
  "span",
1740
1740
  {
@@ -1742,7 +1742,7 @@ const pn = ["clean"], gn = te(["ff:inline-flex ff:items-center", "ff:text-xs ff:
1742
1742
  "data-slot": "badge",
1743
1743
  "data-variant": g,
1744
1744
  "data-solid-background": d,
1745
- className: E(gn({ variant: g, solid: d, styleVariant: c, className: e })),
1745
+ className: E(mn({ variant: g, solid: d, styleVariant: l, className: e })),
1746
1746
  ...o,
1747
1747
  children: [
1748
1748
  b && /* @__PURE__ */ t(
@@ -1769,7 +1769,7 @@ const G = s.forwardRef(
1769
1769
  ] })
1770
1770
  );
1771
1771
  G.displayName = "PanelHeading";
1772
- const mn = te(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-foreground"], {
1772
+ const hn = ae(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-foreground"], {
1773
1773
  variants: {
1774
1774
  styleVariant: {
1775
1775
  default: ["ff:rounded-md ff:border ff:border-border/50 ff:bg-muted/5"],
@@ -1783,10 +1783,10 @@ const mn = te(["ff:flex ff:flex-col ff:gap-2", "ff:p-4", "ff:text-xs ff:text-for
1783
1783
  }
1784
1784
  }), ie = s.forwardRef(({ className: e, children: a, ...r }, n) => {
1785
1785
  const o = ge();
1786
- return /* @__PURE__ */ t("div", { ref: n, "data-slot": "info-panel", className: E(mn({ styleVariant: o }), e), ...r, children: a });
1786
+ return /* @__PURE__ */ t("div", { ref: n, "data-slot": "info-panel", className: E(hn({ styleVariant: o }), e), ...r, children: a });
1787
1787
  });
1788
1788
  ie.displayName = "InfoPanel";
1789
- const hn = te(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1789
+ const wn = ae(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1790
1790
  variants: {
1791
1791
  tone: {
1792
1792
  danger: "ff:bg-danger/10",
@@ -1796,7 +1796,7 @@ const hn = te(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1796
1796
  defaultVariants: {
1797
1797
  tone: "danger"
1798
1798
  }
1799
- }), wn = te(["ff:flex ff:size-5 ff:shrink-0 ff:items-center ff:justify-center ff:rounded-full"], {
1799
+ }), vn = ae(["ff:flex ff:size-5 ff:shrink-0 ff:items-center ff:justify-center ff:rounded-full"], {
1800
1800
  variants: {
1801
1801
  tone: {
1802
1802
  danger: "ff:bg-danger ff:text-danger-foreground",
@@ -1806,7 +1806,7 @@ const hn = te(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1806
1806
  defaultVariants: {
1807
1807
  tone: "danger"
1808
1808
  }
1809
- }), vn = te(["ff:text-xs ff:font-semibold ff:leading-tight"], {
1809
+ }), bn = ae(["ff:text-xs ff:font-semibold ff:leading-tight"], {
1810
1810
  variants: {
1811
1811
  tone: {
1812
1812
  danger: "ff:text-danger",
@@ -1817,7 +1817,7 @@ const hn = te(["ff:flex ff:items-start ff:gap-3", "ff:rounded-lg ff:p-4"], {
1817
1817
  tone: "danger"
1818
1818
  }
1819
1819
  });
1820
- function bn() {
1820
+ function xn() {
1821
1821
  return /* @__PURE__ */ u(
1822
1822
  "svg",
1823
1823
  {
@@ -1836,7 +1836,7 @@ function bn() {
1836
1836
  }
1837
1837
  );
1838
1838
  }
1839
- function xn() {
1839
+ function yn() {
1840
1840
  return /* @__PURE__ */ t(
1841
1841
  "svg",
1842
1842
  {
@@ -1854,7 +1854,7 @@ function xn() {
1854
1854
  }
1855
1855
  const be = s.forwardRef(
1856
1856
  ({ tone: e = "danger", icon: a, title: r, description: n, className: o, ...i }, f) => {
1857
- const c = e === "success" ? /* @__PURE__ */ t(xn, {}) : /* @__PURE__ */ t(bn, {});
1857
+ const l = e === "success" ? /* @__PURE__ */ t(yn, {}) : /* @__PURE__ */ t(xn, {});
1858
1858
  return /* @__PURE__ */ u(
1859
1859
  "div",
1860
1860
  {
@@ -1862,12 +1862,12 @@ const be = s.forwardRef(
1862
1862
  "data-slot": "alert-panel",
1863
1863
  "data-tone": e,
1864
1864
  role: e === "success" ? "status" : "alert",
1865
- className: E(hn({ tone: e }), o),
1865
+ className: E(wn({ tone: e }), o),
1866
1866
  ...i,
1867
1867
  children: [
1868
- /* @__PURE__ */ t("div", { className: E(wn({ tone: e })), "aria-hidden": "true", children: a ?? c }),
1868
+ /* @__PURE__ */ t("div", { className: E(vn({ tone: e })), "aria-hidden": "true", children: a ?? l }),
1869
1869
  /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-1", children: [
1870
- r ? /* @__PURE__ */ t("p", { className: E(vn({ tone: e })), children: r }) : null,
1870
+ r ? /* @__PURE__ */ t("p", { className: E(bn({ tone: e })), children: r }) : null,
1871
1871
  n ? /* @__PURE__ */ t("p", { className: "ff:text-xs ff:text-foreground/80", children: n }) : null
1872
1872
  ] })
1873
1873
  ]
@@ -1876,7 +1876,7 @@ const be = s.forwardRef(
1876
1876
  }
1877
1877
  );
1878
1878
  be.displayName = "AlertPanel";
1879
- const yn = {
1879
+ const kn = {
1880
1880
  expired: "expired",
1881
1881
  queue_denied: "not_selected",
1882
1882
  draw_denied: "not_selected",
@@ -1893,9 +1893,9 @@ const yn = {
1893
1893
  unknown: "ended"
1894
1894
  };
1895
1895
  function da(e) {
1896
- return e ? yn[e] ?? "ended" : "ended";
1896
+ return e ? kn[e] ?? "ended" : "ended";
1897
1897
  }
1898
- const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"], {
1898
+ const _n = ae(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"], {
1899
1899
  variants: {
1900
1900
  styleVariant: {
1901
1901
  default: "",
@@ -1916,7 +1916,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
1916
1916
  styleVariant: "default",
1917
1917
  size: "default"
1918
1918
  }
1919
- }), _n = te(
1919
+ }), Nn = ae(
1920
1920
  ["ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:font-heading ff:tabular-nums"],
1921
1921
  {
1922
1922
  variants: {
@@ -1946,7 +1946,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
1946
1946
  tone: "calm"
1947
1947
  }
1948
1948
  }
1949
- ), Nn = te(["ff:flex ff:flex-col ff:items-center"], {
1949
+ ), Sn = ae(["ff:flex ff:flex-col ff:items-center"], {
1950
1950
  variants: {
1951
1951
  styleVariant: {
1952
1952
  default: "",
@@ -1988,7 +1988,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
1988
1988
  styleVariant: "default",
1989
1989
  tone: "calm"
1990
1990
  }
1991
- }), Sn = te(
1991
+ }), Cn = ae(
1992
1992
  ["ff:text-xxs ff:font-heading ff:font-medium ff:uppercase ff:tracking-widest ff:text-neutral-500 ff:leading-none"],
1993
1993
  {
1994
1994
  variants: {
@@ -2018,7 +2018,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
2018
2018
  tone: "calm"
2019
2019
  }
2020
2020
  }
2021
- ), Cn = te(["ff:mx-2 ff:self-end ff:pb-2 ff:text-2xl ff:font-light ff:text-neutral-300"], {
2021
+ ), Dn = ae(["ff:mx-2 ff:self-end ff:pb-2 ff:text-2xl ff:font-light ff:text-neutral-300"], {
2022
2022
  variants: {
2023
2023
  styleVariant: {
2024
2024
  default: "",
@@ -2035,7 +2035,7 @@ const kn = te(["ff:relative ff:inline-block ff:overflow-hidden ff:font-heading"]
2035
2035
  styleVariant: "default",
2036
2036
  size: "default"
2037
2037
  }
2038
- }), Dn = te(["ff:flex ff:items-center ff:justify-center ff:font-heading"], {
2038
+ }), Vn = ae(["ff:flex ff:items-center ff:justify-center ff:font-heading"], {
2039
2039
  variants: {
2040
2040
  styleVariant: {
2041
2041
  default: "",
@@ -2063,9 +2063,9 @@ function ua(e) {
2063
2063
  total: n
2064
2064
  };
2065
2065
  }
2066
- function Vn({ value: e, styleVariant: a, size: r, tone: n }) {
2067
- return /* @__PURE__ */ t("div", { "data-slot": "countdown-digit", className: kn({ styleVariant: a, size: r }), children: /* @__PURE__ */ t(_t, { mode: "popLayout", children: /* @__PURE__ */ t(
2068
- U.span,
2066
+ function En({ value: e, styleVariant: a, size: r, tone: n }) {
2067
+ return /* @__PURE__ */ t("div", { "data-slot": "countdown-digit", className: _n({ styleVariant: a, size: r }), children: /* @__PURE__ */ t(_t, { mode: "popLayout", children: /* @__PURE__ */ t(
2068
+ W.span,
2069
2069
  {
2070
2070
  initial: { y: "100%", filter: "blur(2px)" },
2071
2071
  animate: { y: "0%", filter: "blur(0px)" },
@@ -2076,31 +2076,31 @@ function Vn({ value: e, styleVariant: a, size: r, tone: n }) {
2076
2076
  damping: 30,
2077
2077
  mass: 1
2078
2078
  },
2079
- className: _n({ styleVariant: a, size: r, tone: n }),
2079
+ className: Nn({ styleVariant: a, size: r, tone: n }),
2080
2080
  children: e
2081
2081
  },
2082
2082
  e
2083
2083
  ) }) });
2084
2084
  }
2085
- function En({ value: e, label: a, styleVariant: r, size: n, tone: o }) {
2085
+ function Mn({ value: e, label: a, styleVariant: r, size: n, tone: o }) {
2086
2086
  const f = e.toString().padStart(2, "0").split("").map(Number);
2087
- return /* @__PURE__ */ u("div", { "data-slot": "countdown-unit", "data-tone": o, className: Nn({ styleVariant: r, tone: o }), children: [
2088
- /* @__PURE__ */ t("div", { "data-slot": "countdown-unit-digits", className: "ff:flex", children: f.map((c, g) => /* @__PURE__ */ t(Vn, { value: c, styleVariant: r, size: n, tone: o }, g)) }),
2089
- /* @__PURE__ */ t("span", { "data-slot": "countdown-unit-label", className: Sn({ styleVariant: r, size: n, tone: o }), children: a })
2087
+ return /* @__PURE__ */ u("div", { "data-slot": "countdown-unit", "data-tone": o, className: Sn({ styleVariant: r, tone: o }), children: [
2088
+ /* @__PURE__ */ t("div", { "data-slot": "countdown-unit-digits", className: "ff:flex", children: f.map((l, g) => /* @__PURE__ */ t(En, { value: l, styleVariant: r, size: n, tone: o }, g)) }),
2089
+ /* @__PURE__ */ t("span", { "data-slot": "countdown-unit-label", className: Cn({ styleVariant: r, size: n, tone: o }), children: a })
2090
2090
  ] });
2091
2091
  }
2092
- function Mn({ styleVariant: e, size: a }) {
2093
- return e === "rounded" || e === "retro" ? null : /* @__PURE__ */ t("span", { "data-slot": "countdown-separator", className: Cn({ styleVariant: e, size: a }), children: "/" });
2092
+ function Tn({ styleVariant: e, size: a }) {
2093
+ return e === "rounded" || e === "retro" ? null : /* @__PURE__ */ t("span", { "data-slot": "countdown-separator", className: Dn({ styleVariant: e, size: a }), children: "/" });
2094
2094
  }
2095
- function Tn(e, a) {
2095
+ function Rn(e, a) {
2096
2096
  const [r, n] = s.useState(() => ua(e)), [o, i] = s.useState(!1), f = s.useRef(!1);
2097
2097
  return s.useEffect(() => {
2098
2098
  i(!0), f.current = !1;
2099
- const c = setInterval(() => {
2099
+ const l = setInterval(() => {
2100
2100
  const g = ua(e);
2101
- n(g), g.total <= 0 && !f.current && (f.current = !0, a?.(), clearInterval(c));
2101
+ n(g), g.total <= 0 && !f.current && (f.current = !0, a?.(), clearInterval(l));
2102
2102
  }, 1e3);
2103
- return () => clearInterval(c);
2103
+ return () => clearInterval(l);
2104
2104
  }, [e, a]), { timeRemaining: r, isClient: o, isPast: r.total <= 0 };
2105
2105
  }
2106
2106
  function pe({
@@ -2111,35 +2111,35 @@ function pe({
2111
2111
  showDays: o = !0,
2112
2112
  showHours: i = !0,
2113
2113
  showMinutes: f = !0,
2114
- showSeconds: c = !0,
2114
+ showSeconds: l = !0,
2115
2115
  layout: g = "swiss",
2116
2116
  size: d = "default",
2117
2117
  tone: b = "calm"
2118
2118
  }) {
2119
- const { t: m } = K(), { timeRemaining: v, isClient: w, isPast: y } = Tn(e, a), C = ge();
2120
- if (!w)
2119
+ const { t: m } = K(), { timeRemaining: v, isClient: h, isPast: x } = Rn(e, a), C = ge();
2120
+ if (!h)
2121
2121
  return null;
2122
- if (y && r)
2122
+ if (x && r)
2123
2123
  return /* @__PURE__ */ t("span", { className: E("ff:text-muted ff:font-heading", n), "data-slot": "countdown", "data-past": "", children: r });
2124
- const l = y ? "ff:opacity-50" : void 0, p = [
2124
+ const c = x ? "ff:opacity-50" : void 0, p = [
2125
2125
  {
2126
2126
  value: v.days,
2127
- label: m("countdown.days"),
2128
- shortLabel: m("countdown.daysShort"),
2127
+ label: m("duration.days"),
2128
+ shortLabel: m("duration.daysShort"),
2129
2129
  show: o && v.days > 0
2130
2130
  },
2131
- { value: v.hours, label: m("countdown.hours"), shortLabel: m("countdown.hoursShort"), show: i },
2131
+ { value: v.hours, label: m("duration.hours"), shortLabel: m("duration.hoursShort"), show: i },
2132
2132
  {
2133
2133
  value: v.minutes,
2134
- label: m("countdown.minutes"),
2135
- shortLabel: m("countdown.minutesShort"),
2134
+ label: m("duration.minutes"),
2135
+ shortLabel: m("duration.minutesShort"),
2136
2136
  show: f
2137
2137
  },
2138
2138
  {
2139
2139
  value: v.seconds,
2140
- label: m("countdown.seconds"),
2141
- shortLabel: m("countdown.secondsShort"),
2142
- show: c
2140
+ label: m("duration.seconds"),
2141
+ shortLabel: m("duration.secondsShort"),
2142
+ show: l
2143
2143
  }
2144
2144
  ].filter((V) => V.show), D = g === "swiss" ? p.slice(0, 3) : p;
2145
2145
  if (g === "compact") {
@@ -2147,16 +2147,16 @@ function pe({
2147
2147
  return /* @__PURE__ */ t(
2148
2148
  "span",
2149
2149
  {
2150
- className: E("ff:tabular-nums ff:font-heading", l, n),
2150
+ className: E("ff:tabular-nums ff:font-heading", c, n),
2151
2151
  "data-slot": "countdown",
2152
2152
  "data-layout": "compact",
2153
- "data-past": y || void 0,
2153
+ "data-past": x || void 0,
2154
2154
  role: "timer",
2155
- "aria-live": y ? "off" : "polite",
2156
- children: D.map((T, x) => /* @__PURE__ */ u(s.Fragment, { children: [
2155
+ "aria-live": x ? "off" : "polite",
2156
+ children: D.map((T, y) => /* @__PURE__ */ u(s.Fragment, { children: [
2157
2157
  V(T.value),
2158
2158
  T.shortLabel,
2159
- x < D.length - 1 && " "
2159
+ y < D.length - 1 && " "
2160
2160
  ] }, T.label))
2161
2161
  }
2162
2162
  );
@@ -2164,17 +2164,17 @@ function pe({
2164
2164
  return /* @__PURE__ */ t(
2165
2165
  "div",
2166
2166
  {
2167
- className: E(Dn({ styleVariant: C, size: d }), l, n),
2167
+ className: E(Vn({ styleVariant: C, size: d }), c, n),
2168
2168
  "data-slot": "countdown",
2169
2169
  "data-layout": "swiss",
2170
2170
  "data-size": d,
2171
2171
  "data-tone": b,
2172
- "data-past": y || void 0,
2172
+ "data-past": x || void 0,
2173
2173
  role: "timer",
2174
- "aria-live": y ? "off" : "polite",
2174
+ "aria-live": x ? "off" : "polite",
2175
2175
  children: D.map((V, T) => /* @__PURE__ */ u(s.Fragment, { children: [
2176
- /* @__PURE__ */ t(En, { value: V.value, label: V.label, styleVariant: C, size: d, tone: b }),
2177
- T < D.length - 1 && /* @__PURE__ */ t(Mn, { styleVariant: C, size: d })
2176
+ /* @__PURE__ */ t(Mn, { value: V.value, label: V.label, styleVariant: C, size: d, tone: b }),
2177
+ T < D.length - 1 && /* @__PURE__ */ t(Tn, { styleVariant: C, size: d })
2178
2178
  ] }, V.label))
2179
2179
  }
2180
2180
  );
@@ -2182,7 +2182,7 @@ function pe({
2182
2182
  function nt({ show: e, presenceKey: a, children: r, className: n }) {
2183
2183
  const o = ot();
2184
2184
  return /* @__PURE__ */ t(_t, { initial: !1, children: e ? /* @__PURE__ */ t(
2185
- U.div,
2185
+ W.div,
2186
2186
  {
2187
2187
  "data-slot": "fade-presence",
2188
2188
  initial: o ? !1 : { opacity: 0, y: -4 },
@@ -2196,7 +2196,7 @@ function nt({ show: e, presenceKey: a, children: r, className: n }) {
2196
2196
  ) : null });
2197
2197
  }
2198
2198
  nt.displayName = "FadePresence";
2199
- const Rn = {
2199
+ const Ln = {
2200
2200
  default: {
2201
2201
  initial: { opacity: 0, scale: 0.98 },
2202
2202
  animate: { opacity: 1, scale: 1 },
@@ -2228,7 +2228,7 @@ const Rn = {
2228
2228
  transition: { duration: 0 }
2229
2229
  };
2230
2230
  function rt({ children: e, transitionKey: a, mode: r, layout: n = !0, className: o }) {
2231
- const i = ge(), f = ot(), c = f ? Vt : Rn[i], d = (!r || r === "none" ? r === "none" ? Vt : null : f ? Vt : {
2231
+ const i = ge(), f = ot(), l = f ? Vt : Ln[i], d = (!r || r === "none" ? r === "none" ? Vt : null : f ? Vt : {
2232
2232
  fade: {
2233
2233
  initial: { opacity: 0 },
2234
2234
  animate: { opacity: 1 },
@@ -2247,9 +2247,9 @@ function rt({ children: e, transitionKey: a, mode: r, layout: n = !0, className:
2247
2247
  exit: { opacity: 0, scale: 0.95 },
2248
2248
  transition: { duration: 0.2, ease: "easeOut" }
2249
2249
  }
2250
- }[r]) ?? c;
2250
+ }[r]) ?? l;
2251
2251
  return /* @__PURE__ */ t(_t, { mode: "wait", initial: !1, children: /* @__PURE__ */ t(
2252
- U.div,
2252
+ W.div,
2253
2253
  {
2254
2254
  initial: d.initial,
2255
2255
  animate: d.animate,
@@ -2264,8 +2264,8 @@ function rt({ children: e, transitionKey: a, mode: r, layout: n = !0, className:
2264
2264
  ) });
2265
2265
  }
2266
2266
  rt.displayName = "Transition";
2267
- const Et = 3e4, Ln = 3e3;
2268
- function An(e) {
2267
+ const Et = 3e4, An = 3e3;
2268
+ function In(e) {
2269
2269
  const a = Math.ceil(e / 1e3), r = Math.floor(a / 60), n = a % 60;
2270
2270
  return `${r.toString().padStart(2, "0")}:${n.toString().padStart(2, "0")}`;
2271
2271
  }
@@ -2277,38 +2277,38 @@ function Aa({
2277
2277
  variant: o = "default",
2278
2278
  label: i,
2279
2279
  title: f,
2280
- description: c,
2280
+ description: l,
2281
2281
  countdownTo: g,
2282
2282
  submitLabel: d,
2283
2283
  verifyLabel: b,
2284
2284
  allowSkip: m = !1,
2285
2285
  showBranding: v = !0,
2286
- defaultStep: w = "credential",
2287
- defaultCredential: y,
2286
+ defaultStep: h = "credential",
2287
+ defaultCredential: x,
2288
2288
  defaultCredentialType: C,
2289
- defaultError: l,
2290
- className: h
2289
+ defaultError: c,
2290
+ className: w
2291
2291
  }) {
2292
- const { t: p } = K(), D = s.useId(), V = i ?? p("auth.badgeLabel"), T = f ?? p("auth.title"), x = c ?? p("auth.description"), N = d ?? p("auth.submit"), S = b ?? p("auth.verify"), [M, A] = s.useState(w), [I, O] = s.useState(y ?? ""), [$, fe] = s.useState(
2293
- C ?? Va(y ?? "")
2294
- ), [ce, L] = s.useState(!1), [J, ne] = s.useState(""), [se, de] = s.useState(!1), [ee, P] = s.useState(l ?? null), [ae, me] = s.useState(
2295
- w === "verify" && (y ?? "").length > 0 ? Date.now() + Et : null
2296
- ), [ke, Re] = s.useState(() => Date.now()), [ue, q] = s.useState(!1), [_e, Ne] = s.useState(!1), st = p($ === "email" ? "auth.email" : "auth.phone");
2292
+ const { t: p } = K(), D = s.useId(), V = i ?? p("auth.badgeLabel"), T = f ?? p("auth.title"), y = l ?? p("auth.description"), N = d ?? p("auth.submit"), S = b ?? p("auth.verify"), [M, A] = s.useState(h), [I, O] = s.useState(x ?? ""), [$, fe] = s.useState(
2293
+ C ?? Va(x ?? "")
2294
+ ), [ce, L] = s.useState(!1), [J, ne] = s.useState(""), [se, de] = s.useState(!1), [ee, P] = s.useState(c ?? null), [te, me] = s.useState(
2295
+ h === "verify" && (x ?? "").length > 0 ? Date.now() + Et : null
2296
+ ), [_e, Re] = s.useState(() => Date.now()), [ue, q] = s.useState(!1), [Ne, xe] = s.useState(!1), st = p($ === "email" ? "auth.email" : "auth.phone");
2297
2297
  s.useEffect(() => {
2298
2298
  if (M !== "verify") return;
2299
- const W = setInterval(() => Re(Date.now()), 1e3);
2300
- return () => clearInterval(W);
2299
+ const U = setInterval(() => Re(Date.now()), 1e3);
2300
+ return () => clearInterval(U);
2301
2301
  }, [M]), s.useEffect(() => {
2302
2302
  if (!ue) return;
2303
- const W = setTimeout(() => q(!1), Ln);
2304
- return () => clearTimeout(W);
2303
+ const U = setTimeout(() => q(!1), An);
2304
+ return () => clearTimeout(U);
2305
2305
  }, [ue]);
2306
- const Ue = ae ? Math.max(0, ae - ke) : 0, lt = Ue > 0, xe = s.useRef(null);
2307
- ee && (xe.current = ee);
2308
- const F = ee ?? xe.current ?? "", je = (W, Se) => {
2309
- O(W), fe(Se), P(null);
2310
- }, Fe = async (W) => {
2311
- if (W?.preventDefault(), !(!ce || !I)) {
2306
+ const We = te ? Math.max(0, te - _e) : 0, lt = We > 0, ye = s.useRef(null);
2307
+ ee && (ye.current = ee);
2308
+ const F = ee ?? ye.current ?? "", ze = (U, Se) => {
2309
+ O(U), fe(Se), P(null);
2310
+ }, Fe = async (U) => {
2311
+ if (U?.preventDefault(), !(!ce || !I)) {
2312
2312
  de(!0), P(null);
2313
2313
  try {
2314
2314
  await e?.(I, $), A("verify"), me(Date.now() + Et);
@@ -2318,12 +2318,12 @@ function Aa({
2318
2318
  de(!1);
2319
2319
  }
2320
2320
  }
2321
- }, Le = (W) => {
2322
- ne(W), P(null);
2323
- }, Ae = async (W) => {
2324
- ne(W), await He(void 0, W);
2325
- }, He = async (W, Se) => {
2326
- W?.preventDefault();
2321
+ }, Le = (U) => {
2322
+ ne(U), P(null);
2323
+ }, Ae = async (U) => {
2324
+ ne(U), await He(void 0, U);
2325
+ }, He = async (U, Se) => {
2326
+ U?.preventDefault();
2327
2327
  const Pe = Se || J;
2328
2328
  if (!(!Pe || Pe.length < 6)) {
2329
2329
  de(!0), P(null);
@@ -2338,19 +2338,19 @@ function Aa({
2338
2338
  }, ct = () => {
2339
2339
  A("credential"), ne(""), P(null), me(null), q(!1);
2340
2340
  }, dt = async () => {
2341
- if (!(!I || _e)) {
2342
- Ne(!0), P(null), ne("");
2341
+ if (!(!I || Ne)) {
2342
+ xe(!0), P(null), ne("");
2343
2343
  try {
2344
2344
  await e?.(I, $), me(Date.now() + Et), Re(Date.now()), q(!0);
2345
- } catch (W) {
2346
- P(W instanceof Error ? W.message : p("auth.sendFailed"));
2345
+ } catch (U) {
2346
+ P(U instanceof Error ? U.message : p("auth.sendFailed"));
2347
2347
  } finally {
2348
- Ne(!1);
2348
+ xe(!1);
2349
2349
  }
2350
2350
  }
2351
2351
  };
2352
2352
  if (M === "success")
2353
- return /* @__PURE__ */ u(Y, { className: E("fanfare-auth-form", h), "data-slot": "auth-form", "data-step": "success", children: [
2353
+ return /* @__PURE__ */ u(Y, { className: E("fanfare-auth-form", w), "data-slot": "auth-form", "data-step": "success", children: [
2354
2354
  /* @__PURE__ */ t(Z, { children: /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-center ff:gap-3 ff:py-4", children: [
2355
2355
  /* @__PURE__ */ t(
2356
2356
  "div",
@@ -2367,17 +2367,17 @@ function Aa({
2367
2367
  ] }) }),
2368
2368
  v && /* @__PURE__ */ t(H, {})
2369
2369
  ] });
2370
- const Ke = M === "credential" ? T : p("auth.verifyTitle");
2371
- return /* @__PURE__ */ u(Y, { className: E("fanfare-auth-form", h), "data-slot": "auth-form", "data-step": M, children: [
2370
+ const Ke = M === "credential" ? T : p("auth.verify.title");
2371
+ return /* @__PURE__ */ u(Y, { className: E("fanfare-auth-form", w), "data-slot": "auth-form", "data-step": M, children: [
2372
2372
  /* @__PURE__ */ t(G, { variant: o, label: V }),
2373
2373
  /* @__PURE__ */ u(Z, { children: [
2374
2374
  g ? /* @__PURE__ */ u("div", { "data-slot": "auth-form-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
2375
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: p("time.opensIn") }),
2375
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: p("duration.opensIn") }),
2376
2376
  /* @__PURE__ */ t(pe, { targetDate: g, showDays: !1 })
2377
2377
  ] }) : null,
2378
2378
  /* @__PURE__ */ t("div", { "data-slot": "auth-form-heading", children: /* @__PURE__ */ t(rt, { transitionKey: M, mode: "fade", children: M === "credential" ? /* @__PURE__ */ u(Me, { children: [
2379
2379
  /* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: Ke }),
2380
- /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: x })
2380
+ /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: y })
2381
2381
  ] }) : /* @__PURE__ */ u(Me, { children: [
2382
2382
  /* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: Ke }),
2383
2383
  I ? /* @__PURE__ */ u("p", { className: "ff:text-muted-foreground ff:text-xxs", children: [
@@ -2386,21 +2386,21 @@ function Aa({
2386
2386
  /* @__PURE__ */ t("strong", { className: "ff:text-foreground ff:font-semibold", children: I }),
2387
2387
  " · ",
2388
2388
  /* @__PURE__ */ t(j, { type: "button", variant: "link", size: "xs", onClick: ct, disabled: se, children: p("auth.change") })
2389
- ] }) : /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: p("auth.verifyDescription", { values: { type: st } }) })
2389
+ ] }) : /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: p("auth.verify.description", { values: { type: st } }) })
2390
2390
  ] }) }) }),
2391
2391
  /* @__PURE__ */ u(
2392
2392
  "form",
2393
2393
  {
2394
2394
  className: "ff:flex ff:flex-1 ff:flex-col ff:gap-5",
2395
- onSubmit: (W) => {
2396
- W.preventDefault(), M === "credential" ? Fe(W) : He(W);
2395
+ onSubmit: (U) => {
2396
+ U.preventDefault(), M === "credential" ? Fe(U) : He(U);
2397
2397
  },
2398
2398
  children: [
2399
2399
  /* @__PURE__ */ t(rt, { transitionKey: M, children: M === "credential" ? /* @__PURE__ */ t(
2400
2400
  Ea,
2401
2401
  {
2402
2402
  value: I,
2403
- onValueChange: je,
2403
+ onValueChange: ze,
2404
2404
  onValidChange: L,
2405
2405
  onSubmit: () => {
2406
2406
  Fe();
@@ -2414,8 +2414,8 @@ function Aa({
2414
2414
  {
2415
2415
  value: J,
2416
2416
  onChange: Le,
2417
- onComplete: (W) => {
2418
- Ae(W);
2417
+ onComplete: (U) => {
2418
+ Ae(U);
2419
2419
  },
2420
2420
  hasError: !!ee,
2421
2421
  ariaDescribedBy: ee ? D : void 0,
@@ -2425,7 +2425,7 @@ function Aa({
2425
2425
  ) }),
2426
2426
  /* @__PURE__ */ t(nt, { show: M === "verify", presenceKey: "resend-area", children: /* @__PURE__ */ t(rt, { transitionKey: ue ? "success" : "cooldown", mode: "fade", layout: !1, children: ue ? /* @__PURE__ */ t(be, { tone: "success", title: p("auth.newCodeSent") }) : /* @__PURE__ */ u("div", { "data-slot": "auth-form-resend", className: "ff:flex ff:items-center ff:justify-between", children: [
2427
2427
  /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs", children: p("auth.didntGetIt") }),
2428
- lt ? /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs ff:tabular-nums", children: An(Ue) }) : /* @__PURE__ */ t(
2428
+ lt ? /* @__PURE__ */ t("span", { className: "ff:text-muted-foreground ff:text-xxs ff:tabular-nums", children: In(We) }) : /* @__PURE__ */ t(
2429
2429
  j,
2430
2430
  {
2431
2431
  type: "button",
@@ -2434,7 +2434,7 @@ function Aa({
2434
2434
  onClick: () => {
2435
2435
  dt();
2436
2436
  },
2437
- disabled: _e || !I,
2437
+ disabled: Ne || !I,
2438
2438
  children: p("auth.resendCode")
2439
2439
  }
2440
2440
  )
@@ -2446,11 +2446,11 @@ function Aa({
2446
2446
  {
2447
2447
  type: "submit",
2448
2448
  className: "ff:w-full",
2449
- disabled: se || _e || (M === "credential" ? !ce : J.length < 6),
2449
+ disabled: se || Ne || (M === "credential" ? !ce : J.length < 6),
2450
2450
  children: se ? /* @__PURE__ */ t(Te, { size: "sm" }) : M === "credential" ? N : S
2451
2451
  }
2452
2452
  ),
2453
- m && M === "credential" && /* @__PURE__ */ t(j, { type: "button", variant: "outline", className: "ff:w-full", onClick: r, disabled: se, children: p("common.skip") })
2453
+ m && M === "credential" && /* @__PURE__ */ t(j, { type: "button", variant: "outline", className: "ff:w-full", onClick: r, disabled: se, children: p("action.skip") })
2454
2454
  ] })
2455
2455
  ]
2456
2456
  }
@@ -2469,7 +2469,7 @@ const Ia = s.forwardRef(
2469
2469
  error: o,
2470
2470
  hasError: i,
2471
2471
  placeholder: f = "Enter your access code",
2472
- autoUppercase: c = !1,
2472
+ autoUppercase: l = !1,
2473
2473
  ...g
2474
2474
  }, d) => /* @__PURE__ */ t(
2475
2475
  yt,
@@ -2480,8 +2480,8 @@ const Ia = s.forwardRef(
2480
2480
  spellCheck: !1,
2481
2481
  value: a,
2482
2482
  onChange: (v) => {
2483
- let w = v.target.value;
2484
- c && (w = w.toUpperCase()), r(w);
2483
+ let h = v.target.value;
2484
+ l && (h = h.toUpperCase()), r(h);
2485
2485
  },
2486
2486
  onKeyDown: (v) => {
2487
2487
  v.key === "Enter" && n && (v.preventDefault(), n()), g.onKeyDown?.(v);
@@ -2496,7 +2496,7 @@ const Ia = s.forwardRef(
2496
2496
  )
2497
2497
  );
2498
2498
  Ia.displayName = "AccessCodeInput";
2499
- function za({
2499
+ function ja({
2500
2500
  onSubmit: e,
2501
2501
  onSkip: a,
2502
2502
  variant: r = "secondary",
@@ -2504,33 +2504,33 @@ function za({
2504
2504
  title: o,
2505
2505
  description: i,
2506
2506
  countdownTo: f,
2507
- submitLabel: c,
2507
+ submitLabel: l,
2508
2508
  allowSkip: g = !1,
2509
2509
  autoUppercase: d = !0,
2510
2510
  defaultError: b,
2511
2511
  className: m
2512
2512
  }) {
2513
- const { t: v } = K(), w = n ?? v("accessCode.badgeLabel"), y = o ?? v("accessCode.title"), C = i ?? v("accessCode.description"), l = c ?? v("accessCode.submit"), [h, p] = s.useState(""), [D, V] = s.useState(!1), [T, x] = s.useState(b ?? null), N = async (S) => {
2514
- if (S?.preventDefault(), !!h.trim()) {
2515
- V(!0), x(null);
2513
+ const { t: v } = K(), h = n ?? v("accessCode.badgeLabel"), x = o ?? v("accessCode.title"), C = i ?? v("accessCode.description"), c = l ?? v("accessCode.submit"), [w, p] = s.useState(""), [D, V] = s.useState(!1), [T, y] = s.useState(b ?? null), N = async (S) => {
2514
+ if (S?.preventDefault(), !!w.trim()) {
2515
+ V(!0), y(null);
2516
2516
  try {
2517
- await e?.(h.trim());
2517
+ await e?.(w.trim());
2518
2518
  } catch (M) {
2519
- x(M instanceof Error ? M.message : v("accessCode.invalid"));
2519
+ y(M instanceof Error ? M.message : v("accessCode.invalid"));
2520
2520
  } finally {
2521
2521
  V(!1);
2522
2522
  }
2523
2523
  }
2524
2524
  };
2525
2525
  return /* @__PURE__ */ u(Y, { className: E("fanfare-access-code-form", m), "data-slot": "access-code-form", children: [
2526
- /* @__PURE__ */ t(G, { variant: r, label: w }),
2526
+ /* @__PURE__ */ t(G, { variant: r, label: h }),
2527
2527
  /* @__PURE__ */ u(Z, { children: [
2528
2528
  f ? /* @__PURE__ */ u("div", { "data-slot": "access-code-form-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
2529
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: v("time.opensIn") }),
2529
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: v("duration.opensIn") }),
2530
2530
  /* @__PURE__ */ t(pe, { targetDate: f, showDays: !1 })
2531
2531
  ] }) : null,
2532
2532
  /* @__PURE__ */ u("div", { "data-slot": "access-code-form-heading", children: [
2533
- /* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: y }),
2533
+ /* @__PURE__ */ t("h2", { className: "ff:text-foreground ff:text-xl ff:font-semibold", children: x }),
2534
2534
  /* @__PURE__ */ t("p", { className: "ff:text-muted-foreground ff:text-xs", children: C })
2535
2535
  ] }),
2536
2536
  /* @__PURE__ */ u("form", { className: "ff:flex ff:flex-1 ff:flex-col ff:gap-5", onSubmit: (S) => {
@@ -2539,9 +2539,9 @@ function za({
2539
2539
  /* @__PURE__ */ t(
2540
2540
  Ia,
2541
2541
  {
2542
- value: h,
2542
+ value: w,
2543
2543
  onValueChange: (S) => {
2544
- p(S), x(null);
2544
+ p(S), y(null);
2545
2545
  },
2546
2546
  onSubmit: () => {
2547
2547
  N();
@@ -2555,16 +2555,16 @@ function za({
2555
2555
  ),
2556
2556
  T ? /* @__PURE__ */ t(be, { tone: "danger", title: T }) : null,
2557
2557
  /* @__PURE__ */ u("div", { className: "ff:mt-auto ff:flex ff:flex-col ff:gap-2", children: [
2558
- /* @__PURE__ */ t(j, { type: "submit", className: "ff:w-full", disabled: D || !h.trim(), children: D ? /* @__PURE__ */ t(Te, { size: "sm" }) : l }),
2559
- g && /* @__PURE__ */ t(j, { type: "button", variant: "outline", className: "ff:w-full", onClick: a, disabled: D, children: v("common.skip") })
2558
+ /* @__PURE__ */ t(j, { type: "submit", className: "ff:w-full", disabled: D || !w.trim(), children: D ? /* @__PURE__ */ t(Te, { size: "sm" }) : c }),
2559
+ g && /* @__PURE__ */ t(j, { type: "button", variant: "outline", className: "ff:w-full", onClick: a, disabled: D, children: v("action.skip") })
2560
2560
  ] })
2561
2561
  ] })
2562
2562
  ] }),
2563
2563
  /* @__PURE__ */ t(H, {})
2564
2564
  ] });
2565
2565
  }
2566
- za.displayName = "AccessCodeForm";
2567
- function In(e) {
2566
+ ja.displayName = "AccessCodeForm";
2567
+ function jn(e) {
2568
2568
  if (!e || typeof e != "object") return !1;
2569
2569
  const a = e;
2570
2570
  return typeof a.kind != "string" || typeof a.challengeId != "string" ? !1 : a.kind === "fanfare:challenge:turnstile" ? typeof a.token == "string" && a.token.length > 0 : a.kind === "fanfare:challenge:turnstile_error" || a.kind === "fanfare:challenge:turnstile_expired";
@@ -2575,15 +2575,15 @@ function zn(e, a) {
2575
2575
  const n = Date.parse(r);
2576
2576
  return Number.isFinite(n) ? { blocked: a < n, blockedUntil: r } : { blocked: !1 };
2577
2577
  }
2578
- function jn(e, a) {
2578
+ function Fn(e, a) {
2579
2579
  const r = new Date(e);
2580
2580
  try {
2581
- return r.toLocaleString(hr(a));
2581
+ return r.toLocaleString(wr(a));
2582
2582
  } catch {
2583
2583
  return r.toLocaleString();
2584
2584
  }
2585
2585
  }
2586
- function ja({
2586
+ function za({
2587
2587
  challenge: e,
2588
2588
  botMitigation: a,
2589
2589
  onVerifyToken: r,
@@ -2591,12 +2591,12 @@ function ja({
2591
2591
  variant: o = "default",
2592
2592
  label: i,
2593
2593
  title: f,
2594
- description: c,
2594
+ description: l,
2595
2595
  countdownTo: g,
2596
2596
  retryLabel: d,
2597
2597
  className: b
2598
2598
  }) {
2599
- const { t: m, locale: v } = K(), [w, y] = s.useState(0), [C, l] = s.useState(!1), [h, p] = s.useState(!1), [D, V] = s.useState(null), [T, x] = s.useState(!1), [N, S] = s.useState("reload"), [M, A] = s.useState(() => Date.now()), I = X(() => {
2599
+ const { t: m, locale: v } = K(), [h, x] = s.useState(0), [C, c] = s.useState(!1), [w, p] = s.useState(!1), [D, V] = s.useState(null), [T, y] = s.useState(!1), [N, S] = s.useState("reload"), [M, A] = s.useState(() => Date.now()), I = X(() => {
2600
2600
  if (!e?.iframeUrl) return null;
2601
2601
  try {
2602
2602
  return new URL(e.iframeUrl).origin;
@@ -2607,17 +2607,17 @@ function ja({
2607
2607
  if (!e?.iframeUrl) return null;
2608
2608
  try {
2609
2609
  const ee = new URL(e.iframeUrl);
2610
- return ee.searchParams.set("_t", String(w)), ee.toString();
2610
+ return ee.searchParams.set("_t", String(h)), ee.toString();
2611
2611
  } catch {
2612
2612
  return null;
2613
2613
  }
2614
- }, [e?.iframeUrl, w]);
2614
+ }, [e?.iframeUrl, h]);
2615
2615
  s.useEffect(() => {
2616
2616
  const ee = a?.blockedUntil, P = Date.now();
2617
2617
  if (A(P), !ee) return;
2618
- const ae = Date.parse(ee);
2619
- if (!Number.isFinite(ae) || ae <= P) return;
2620
- const me = window.setTimeout(() => A(Date.now()), Math.min(ae - P + 1, 2147483647));
2618
+ const te = Date.parse(ee);
2619
+ if (!Number.isFinite(te) || te <= P) return;
2620
+ const me = window.setTimeout(() => A(Date.now()), Math.min(te - P + 1, 2147483647));
2621
2621
  return () => {
2622
2622
  window.clearTimeout(me);
2623
2623
  };
@@ -2627,18 +2627,18 @@ function ja({
2627
2627
  [a, M]
2628
2628
  ), ce = typeof a?.attemptsRemaining == "number" ? a.attemptsRemaining : void 0;
2629
2629
  s.useEffect(() => {
2630
- y(0), l(!1), p(!1), V(null), x(!1), S("reload");
2630
+ x(0), c(!1), p(!1), V(null), y(!1), S("reload");
2631
2631
  }, [e?.id]), s.useEffect(() => {
2632
2632
  T && a?.message && V(a.message);
2633
2633
  }, [T, a?.message]), s.useEffect(() => {
2634
2634
  if (!e?.id || !I) return;
2635
2635
  const ee = (P) => {
2636
- if (P.origin !== I || !In(P.data) || P.data.challengeId !== e.id) return;
2636
+ if (P.origin !== I || !jn(P.data) || P.data.challengeId !== e.id) return;
2637
2637
  if (P.data.kind === "fanfare:challenge:turnstile") {
2638
- const ke = P.data.token;
2639
- x(!0), p(!0), V(null), (async () => {
2638
+ const _e = P.data.token;
2639
+ y(!0), p(!0), V(null), (async () => {
2640
2640
  try {
2641
- await r(ke);
2641
+ await r(_e);
2642
2642
  } catch (Re) {
2643
2643
  V(Re instanceof Error ? Re.message : m("challenge.verificationFailed"));
2644
2644
  } finally {
@@ -2647,37 +2647,37 @@ function ja({
2647
2647
  })();
2648
2648
  return;
2649
2649
  }
2650
- x(!0);
2651
- const ae = typeof P.data.reason == "string" ? P.data.reason : void 0, me = typeof P.data.message == "string" ? P.data.message : void 0;
2652
- if (ae === "challenge_expired" || ae === "challenge_not_found") {
2650
+ y(!0);
2651
+ const te = typeof P.data.reason == "string" ? P.data.reason : void 0, me = typeof P.data.message == "string" ? P.data.message : void 0;
2652
+ if (te === "challenge_expired" || te === "challenge_not_found") {
2653
2653
  S("reroute"), V(
2654
2654
  me ?? (P.data.kind === "fanfare:challenge:turnstile_expired" ? m("challenge.expiredRefresh") : m("challenge.errorRefresh"))
2655
2655
  );
2656
2656
  return;
2657
2657
  }
2658
2658
  if (S("reload"), P.data.kind === "fanfare:challenge:turnstile_expired") {
2659
- V(me ?? m("challenge.expiredRetry")), y((ke) => ke + 1), l(!1);
2659
+ V(me ?? m("challenge.expiredRetry")), x((_e) => _e + 1), c(!1);
2660
2660
  return;
2661
2661
  }
2662
- V(me ?? m("challenge.errorRetry")), y((ke) => ke + 1), l(!1);
2662
+ V(me ?? m("challenge.errorRetry")), x((_e) => _e + 1), c(!1);
2663
2663
  };
2664
2664
  return window.addEventListener("message", ee), () => {
2665
2665
  window.removeEventListener("message", ee);
2666
2666
  };
2667
2667
  }, [e?.id, I, r, m]);
2668
- const L = f ?? m("challenge.title"), J = c ?? m("challenge.description"), ne = d ?? m("challenge.retry"), se = i ?? m("challenge.badgeLabel"), de = () => {
2668
+ const L = f ?? m("challenge.title"), J = l ?? m("challenge.description"), ne = d ?? m("challenge.retry"), se = i ?? m("challenge.badgeLabel"), de = () => {
2669
2669
  const ee = N;
2670
- if (V(null), x(!1), n && (ee === "reroute" || !O || typeof ce == "number" && ce <= 0)) {
2670
+ if (V(null), y(!1), n && (ee === "reroute" || !O || typeof ce == "number" && ce <= 0)) {
2671
2671
  S("reload"), n();
2672
2672
  return;
2673
2673
  }
2674
- S("reload"), y((P) => P + 1), l(!1);
2674
+ S("reload"), x((P) => P + 1), c(!1);
2675
2675
  };
2676
2676
  return /* @__PURE__ */ u(Y, { className: E("fanfare-challenge-gate", b), "data-slot": "challenge-gate", children: [
2677
2677
  /* @__PURE__ */ t(G, { variant: o, label: se }),
2678
2678
  /* @__PURE__ */ u(Z, { children: [
2679
2679
  g ? /* @__PURE__ */ u("div", { "data-slot": "challenge-gate-countdown", className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
2680
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: m("time.opensIn") }),
2680
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: m("duration.opensIn") }),
2681
2681
  /* @__PURE__ */ t(pe, { targetDate: g, showDays: !1 })
2682
2682
  ] }) : null,
2683
2683
  /* @__PURE__ */ u("div", { "data-slot": "challenge-gate-heading", children: [
@@ -2689,11 +2689,11 @@ function ja({
2689
2689
  {
2690
2690
  tone: "danger",
2691
2691
  title: a?.message ?? m("challenge.blockedDefault"),
2692
- description: fe ? m("challenge.blockedUntil", { values: { date: jn(fe, v) } }) : void 0
2692
+ description: fe ? m("challenge.blockedUntil", { values: { date: Fn(fe, v) } }) : void 0
2693
2693
  }
2694
2694
  ) : O ? /* @__PURE__ */ u("div", { className: "ff:relative ff:w-full ff:rounded-md ff:border ff:border-border ff:bg-background ff:overflow-hidden", children: [
2695
2695
  !C && /* @__PURE__ */ t("div", { className: "ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:bg-background/60", children: /* @__PURE__ */ t(Te, { size: "lg" }) }),
2696
- h && /* @__PURE__ */ t("div", { className: "ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:bg-background/70", children: /* @__PURE__ */ t(Te, { size: "lg" }) }),
2696
+ w && /* @__PURE__ */ t("div", { className: "ff:absolute ff:inset-0 ff:flex ff:items-center ff:justify-center ff:bg-background/70", children: /* @__PURE__ */ t(Te, { size: "lg" }) }),
2697
2697
  /* @__PURE__ */ t(
2698
2698
  "iframe",
2699
2699
  {
@@ -2703,9 +2703,9 @@ function ja({
2703
2703
  style: { height: 120, border: 0 },
2704
2704
  sandbox: "allow-scripts allow-forms allow-same-origin",
2705
2705
  referrerPolicy: "no-referrer",
2706
- onLoad: () => l(!0)
2706
+ onLoad: () => c(!0)
2707
2707
  },
2708
- `${e?.id ?? "challenge"}-${w}`
2708
+ `${e?.id ?? "challenge"}-${h}`
2709
2709
  )
2710
2710
  ] }) : /* @__PURE__ */ t(be, { tone: "danger", title: m("challenge.unableToLoad") }),
2711
2711
  D && /* @__PURE__ */ t(
@@ -2716,19 +2716,19 @@ function ja({
2716
2716
  description: ce !== void 0 ? m("challenge.attemptsRemaining", { values: { count: ce } }) : void 0
2717
2717
  }
2718
2718
  ),
2719
- !$ && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", variant: "secondary", onClick: de, disabled: h, children: ne })
2719
+ !$ && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", variant: "secondary", onClick: de, disabled: w, children: ne })
2720
2720
  ] }),
2721
2721
  /* @__PURE__ */ t(H, {})
2722
2722
  ] });
2723
2723
  }
2724
- ja.displayName = "ChallengeGate";
2724
+ za.displayName = "ChallengeGate";
2725
2725
  function Fa({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, className: i }) {
2726
- const { t: f, locale: c } = K(), g = e ?? f("ended.title"), d = a ?? f("ended.message"), b = s.useMemo(() => r ? (r instanceof Date ? r : new Date(r)).toLocaleDateString(c, {
2726
+ const { t: f, locale: l } = K(), g = e ?? f("ended.title"), d = a ?? f("ended.message"), b = s.useMemo(() => r ? (r instanceof Date ? r : new Date(r)).toLocaleDateString(l, {
2727
2727
  month: "long",
2728
2728
  day: "numeric",
2729
2729
  year: "numeric"
2730
- }) : null, [r, c]), m = we();
2731
- return /* @__PURE__ */ t(U.div, { ...m, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", i), "data-slot": "ended-module", role: "status", children: [
2730
+ }) : null, [r, l]), m = we();
2731
+ return /* @__PURE__ */ t(W.div, { ...m, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", i), "data-slot": "ended-module", role: "status", children: [
2732
2732
  /* @__PURE__ */ t(G, { variant: "outline", label: g }),
2733
2733
  /* @__PURE__ */ u(Z, { children: [
2734
2734
  /* @__PURE__ */ u(ie, { children: [
@@ -2742,7 +2742,7 @@ function Fa({ title: e, message: a, endedAt: r, ctaLabel: n, onCtaClick: o, clas
2742
2742
  }
2743
2743
  Fa.displayName = "EndedModule";
2744
2744
  function et({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, className: f }) {
2745
- const { t: c } = K(), [g, d] = s.useState(!1), b = r ?? c("error.label"), m = a ?? c("error.title"), w = (e instanceof Error ? e.message : e) ?? c("error.description"), y = o ?? c("error.retry"), C = async () => {
2745
+ const { t: l } = K(), [g, d] = s.useState(!1), b = r ?? l("error.label"), m = a ?? l("error.title"), h = (e instanceof Error ? e.message : e) ?? l("error.description"), x = o ?? l("error.retry"), C = async () => {
2746
2746
  if (i) {
2747
2747
  d(!0);
2748
2748
  try {
@@ -2751,11 +2751,11 @@ function et({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
2751
2751
  d(!1);
2752
2752
  }
2753
2753
  }
2754
- }, l = we();
2755
- return /* @__PURE__ */ t(U.div, { ...l, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", f), "data-slot": "error-view", role: "alert", children: [
2754
+ }, c = we();
2755
+ return /* @__PURE__ */ t(W.div, { ...c, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", f), "data-slot": "error-view", role: "alert", children: [
2756
2756
  /* @__PURE__ */ t(G, { variant: "danger", label: b }),
2757
2757
  /* @__PURE__ */ u(Z, { children: [
2758
- /* @__PURE__ */ t(be, { tone: "danger", title: m, description: w }),
2758
+ /* @__PURE__ */ t(be, { tone: "danger", title: m, description: h }),
2759
2759
  n ? /* @__PURE__ */ t(ie, { children: n }) : null,
2760
2760
  i ? /* @__PURE__ */ t(
2761
2761
  j,
@@ -2766,7 +2766,7 @@ function et({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
2766
2766
  },
2767
2767
  disabled: g,
2768
2768
  loading: g,
2769
- children: y
2769
+ children: x
2770
2770
  }
2771
2771
  ) : null
2772
2772
  ] }),
@@ -2774,7 +2774,7 @@ function et({ error: e, title: a, label: r, info: n, ctaLabel: o, onRetry: i, cl
2774
2774
  ] }) });
2775
2775
  }
2776
2776
  et.displayName = "ErrorView";
2777
- const Fn = {
2777
+ const Pn = {
2778
2778
  default: {
2779
2779
  particleCount: 60,
2780
2780
  spread: 70,
@@ -2806,22 +2806,22 @@ const Fn = {
2806
2806
  clean: null
2807
2807
  // No confetti for clean variant - too busy
2808
2808
  };
2809
- function Pn(e, a) {
2809
+ function Bn(e, a) {
2810
2810
  if (ot())
2811
2811
  return;
2812
- const r = Fn[a];
2812
+ const r = Pn[a];
2813
2813
  if (!r)
2814
2814
  return;
2815
2815
  const n = e.getBoundingClientRect(), o = (n.left + n.width / 2) / window.innerWidth, i = (n.top + n.height / 2) / window.innerHeight;
2816
- Cr({
2816
+ Dr({
2817
2817
  ...r,
2818
2818
  origin: { x: o, y: i }
2819
2819
  });
2820
2820
  }
2821
- function Bn(e) {
2821
+ function On(e) {
2822
2822
  const a = ge(), r = s.useRef(!1);
2823
2823
  s.useEffect(() => {
2824
- r.current || e.current && (r.current = !0, Pn(e.current, a));
2824
+ r.current || e.current && (r.current = !0, Bn(e.current, a));
2825
2825
  }, [e, a]);
2826
2826
  }
2827
2827
  function it({
@@ -2832,10 +2832,10 @@ function it({
2832
2832
  onCtaClick: o,
2833
2833
  className: i
2834
2834
  }) {
2835
- const { t: f } = K(), c = s.useRef(null);
2836
- Bn(c);
2835
+ const { t: f } = K(), l = s.useRef(null);
2836
+ On(l);
2837
2837
  const g = we();
2838
- return /* @__PURE__ */ t(U.div, { ...g, children: /* @__PURE__ */ u(
2838
+ return /* @__PURE__ */ t(W.div, { ...g, children: /* @__PURE__ */ u(
2839
2839
  Y,
2840
2840
  {
2841
2841
  className: E("ff:w-full ff:max-w-sm", i),
@@ -2845,8 +2845,8 @@ function it({
2845
2845
  children: [
2846
2846
  /* @__PURE__ */ t(G, { variant: "default", label: e }),
2847
2847
  /* @__PURE__ */ u(Z, { children: [
2848
- /* @__PURE__ */ t("div", { ref: c, className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: n ? /* @__PURE__ */ u(Me, { children: [
2849
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: f("granted.timeRemaining") }),
2848
+ /* @__PURE__ */ t("div", { ref: l, className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: n ? /* @__PURE__ */ u(Me, { children: [
2849
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: f("duration.timeRemaining") }),
2850
2850
  /* @__PURE__ */ t(pe, { targetDate: n, showDays: !1 })
2851
2851
  ] }) : /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: a }) }),
2852
2852
  /* @__PURE__ */ t(j, { className: "ff:mt-auto", onClick: o, children: r })
@@ -2857,30 +2857,30 @@ function it({
2857
2857
  ) });
2858
2858
  }
2859
2859
  it.displayName = "GrantedPanel";
2860
- const On = {
2861
- queue: "expired.reenter.queue",
2862
- draw: "expired.reenter.draw",
2863
- auction: "expired.reenter.auction",
2864
- timed_release: "expired.reenter.timedRelease",
2865
- appointment: "expired.reenter.appointment"
2860
+ const $n = {
2861
+ queue: "outcome.reenter.queue",
2862
+ draw: "outcome.reenter.draw",
2863
+ auction: "outcome.reenter.auction",
2864
+ timed_release: "outcome.reenter.timedRelease",
2865
+ appointment: "outcome.reenter.appointment"
2866
2866
  }, pa = {
2867
- expired: { title: "expired.title", body: "expired.description", variant: "outline" },
2868
- not_selected: { title: "draw.notSelected", body: "common.betterLuck", variant: "outline" },
2869
- sold_out: { title: "ended.title", body: "ended.message", variant: "outline" },
2870
- outbid: { title: "auction.outbid", body: "auction.outbidMessage", variant: "outline" },
2871
- reserve_not_met: { title: "ended.title", body: "ended.message", variant: "outline" },
2867
+ expired: { title: "outcome.expired.title", body: "outcome.expired.description", variant: "outline" },
2868
+ not_selected: { title: "outcome.notSelected.title", body: "outcome.notSelected.description", variant: "outline" },
2869
+ sold_out: { title: "outcome.soldOut.title", body: "outcome.soldOut.description", variant: "outline" },
2870
+ outbid: { title: "auction.outbid.title", body: "auction.outbid.message", variant: "outline" },
2871
+ reserve_not_met: { title: "outcome.closed.title", body: "outcome.closed.description", variant: "outline" },
2872
2872
  completed: { title: "common.purchaseComplete", body: "common.thankYou", variant: "success" },
2873
- ended: { title: "ended.title", body: "ended.message", variant: "outline" }
2873
+ ended: { title: "outcome.closed.title", body: "outcome.closed.description", variant: "outline" }
2874
2874
  };
2875
- function We({
2875
+ function Ue({
2876
2876
  outcomeReason: e,
2877
2877
  participationType: a,
2878
2878
  onReenter: r,
2879
2879
  isReentering: n,
2880
2880
  className: o
2881
2881
  }) {
2882
- const { t: i } = K(), f = e === "expired", c = pa[e] ?? pa.ended, g = f && typeof r == "function", d = i(a ? On[a] : "expired.reenter"), b = we();
2883
- return /* @__PURE__ */ t(U.div, { ...b, children: /* @__PURE__ */ u(
2882
+ const { t: i } = K(), f = e === "expired", l = pa[e] ?? pa.ended, g = f && typeof r == "function", d = i(a ? $n[a] : "outcome.reenter"), b = we();
2883
+ return /* @__PURE__ */ t(W.div, { ...b, children: /* @__PURE__ */ u(
2884
2884
  Y,
2885
2885
  {
2886
2886
  className: E("ff:w-full ff:max-w-sm", o),
@@ -2888,9 +2888,9 @@ function We({
2888
2888
  "data-stage": "ended",
2889
2889
  "data-reason": e,
2890
2890
  children: [
2891
- /* @__PURE__ */ t(G, { variant: c.variant, label: i(c.title) }),
2891
+ /* @__PURE__ */ t(G, { variant: l.variant, label: i(l.title) }),
2892
2892
  /* @__PURE__ */ u(Z, { children: [
2893
- /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: i(c.body) }) }),
2893
+ /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: i(l.body) }) }),
2894
2894
  g && /* @__PURE__ */ t(j, { className: "ff:mt-auto", onClick: r, disabled: n, loading: n, children: d })
2895
2895
  ] }),
2896
2896
  /* @__PURE__ */ t(H, {})
@@ -2898,7 +2898,7 @@ function We({
2898
2898
  }
2899
2899
  ) });
2900
2900
  }
2901
- We.displayName = "OutcomePanel";
2901
+ Ue.displayName = "OutcomePanel";
2902
2902
  function Pa({
2903
2903
  stage: e,
2904
2904
  onAuthSubmit: a,
@@ -2907,14 +2907,14 @@ function Pa({
2907
2907
  onAuthSuccess: o,
2908
2908
  onAccessCodeSubmit: i,
2909
2909
  onAccessCodeSkip: f,
2910
- allowAuthSkip: c = !1,
2910
+ allowAuthSkip: l = !1,
2911
2911
  allowAccessCodeSkip: g = !1,
2912
2912
  authTitle: d,
2913
2913
  authDescription: b,
2914
2914
  accessCodeTitle: m,
2915
2915
  accessCodeDescription: v,
2916
- startsAt: w,
2917
- className: y,
2916
+ startsAt: h,
2917
+ className: x,
2918
2918
  children: C
2919
2919
  }) {
2920
2920
  return e === "none" ? /* @__PURE__ */ t(Me, { children: C }) : e === "loading" ? /* @__PURE__ */ t(
@@ -2923,7 +2923,7 @@ function Pa({
2923
2923
  className: E(
2924
2924
  "fanfare-journey-gate",
2925
2925
  "ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12",
2926
- y
2926
+ x
2927
2927
  ),
2928
2928
  "data-slot": "journey-gate",
2929
2929
  role: "status",
@@ -2931,24 +2931,24 @@ function Pa({
2931
2931
  "aria-busy": "true",
2932
2932
  children: /* @__PURE__ */ t(Te, { size: "lg", className: "ff:text-primary" })
2933
2933
  }
2934
- ) : e === "auth" ? /* @__PURE__ */ t("div", { className: E("fanfare-journey-gate", y), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
2934
+ ) : e === "auth" ? /* @__PURE__ */ t("div", { className: E("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
2935
2935
  Aa,
2936
2936
  {
2937
2937
  title: d,
2938
2938
  description: b,
2939
- countdownTo: w,
2939
+ countdownTo: h,
2940
2940
  onSubmit: a,
2941
2941
  onVerify: r,
2942
2942
  onSkip: n,
2943
2943
  onSuccess: o,
2944
- allowSkip: c
2944
+ allowSkip: l
2945
2945
  }
2946
- ) }) : e === "access_code" ? /* @__PURE__ */ t("div", { className: E("fanfare-journey-gate", y), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
2947
- za,
2946
+ ) }) : e === "access_code" ? /* @__PURE__ */ t("div", { className: E("fanfare-journey-gate", x), "data-slot": "journey-gate", children: /* @__PURE__ */ t(
2947
+ ja,
2948
2948
  {
2949
2949
  title: m,
2950
2950
  description: v,
2951
- countdownTo: w,
2951
+ countdownTo: h,
2952
2952
  onSubmit: i,
2953
2953
  onSkip: f,
2954
2954
  allowSkip: g
@@ -2956,10 +2956,10 @@ function Pa({
2956
2956
  ) }) : null;
2957
2957
  }
2958
2958
  Pa.displayName = "JourneyGate";
2959
- function $n(e, a) {
2959
+ function qn(e, a) {
2960
2960
  return Ot(e, { weekday: "long", timeZone: a });
2961
2961
  }
2962
- function qn(e, a) {
2962
+ function Un(e, a) {
2963
2963
  return Ot(e, { month: "long", day: "numeric", timeZone: a });
2964
2964
  }
2965
2965
  function Bt(e, a) {
@@ -3010,7 +3010,7 @@ function ga(e, a) {
3010
3010
  const [r, n, o] = e.split("-").map(Number);
3011
3011
  return !r || !n || !o ? e : new Date(Date.UTC(r, n - 1, o + a)).toISOString().slice(0, 10);
3012
3012
  }
3013
- function Un(e) {
3013
+ function Hn(e) {
3014
3014
  const [a, r, n] = e.split("-").map(Number);
3015
3015
  if (!a || !r || !n) return "";
3016
3016
  const o = new Date(Date.UTC(a, r - 1, n, 12, 0, 0));
@@ -3020,11 +3020,11 @@ function Un(e) {
3020
3020
  return "";
3021
3021
  }
3022
3022
  }
3023
- function Hn(e) {
3023
+ function Kn(e) {
3024
3024
  const [, , a] = e.split("-").map(Number);
3025
3025
  return a ?? 0;
3026
3026
  }
3027
- const Kn = te(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
3027
+ const Zn = ae(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
3028
3028
  variants: {
3029
3029
  styleVariant: {
3030
3030
  default: "",
@@ -3051,11 +3051,11 @@ const Kn = te(["ff:animate-pulse ff:rounded-md", "ff:bg-secondary"], {
3051
3051
  }
3052
3052
  }), $a = s.forwardRef(({ className: e, ...a }, r) => {
3053
3053
  const n = ge();
3054
- return /* @__PURE__ */ t("div", { ref: r, "data-slot": "skeleton", className: E(Kn({ styleVariant: n }), e), ...a });
3054
+ return /* @__PURE__ */ t("div", { ref: r, "data-slot": "skeleton", className: E(Zn({ styleVariant: n }), e), ...a });
3055
3055
  });
3056
3056
  $a.displayName = "Skeleton";
3057
- const Zn = (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" }) }), Yn = kt(Zn), Gn = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "m15.75 10.5l4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25" }) }), qa = kt(Gn);
3058
- function Wa({
3057
+ const Yn = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5m-9-6h.008v.008H12zM12 15h.008v.008H12zm0 2.25h.008v.008H12zM9.75 15h.008v.008H9.75zm0 2.25h.008v.008H9.75zM7.5 15h.008v.008H7.5zm0 2.25h.008v.008H7.5zm6.75-4.5h.008v.008h-.008zm0 2.25h.008v.008h-.008zm0 2.25h.008v.008h-.008zm2.25-4.5h.008v.008H16.5zm0 2.25h.008v.008H16.5z" }) }), Gn = kt(Yn), Jn = (e, a) => /* @__PURE__ */ t("svg", { viewBox: "0 0 24 24", width: "1.2em", height: "1.2em", ref: a, ...e, children: /* @__PURE__ */ t("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "m15.75 10.5l4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25" }) }), qa = kt(Jn);
3058
+ function Ua({
3059
3059
  booking: e,
3060
3060
  timezone: a,
3061
3061
  readOnly: r = !1,
@@ -3063,10 +3063,10 @@ function Wa({
3063
3063
  onStartReschedule: o,
3064
3064
  onAddToCalendar: i,
3065
3065
  onJoinCall: f,
3066
- isCancelling: c,
3066
+ isCancelling: l,
3067
3067
  cancelError: g
3068
3068
  }) {
3069
- const { t: d } = K(), [b, m] = s.useState(!1), v = $n(e.startTime, a), w = qn(e.startTime, a), y = Bt(e.startTime, a), C = Ba(e.startTime, e.endTime), l = !e.locationName, h = l ? d("appointment.online") : e.locationName, p = l ? {
3069
+ const { t: d } = K(), [b, m] = s.useState(!1), v = qn(e.startTime, a), h = Un(e.startTime, a), x = Bt(e.startTime, a), C = Ba(e.startTime, e.endTime), c = !e.locationName, w = c ? d("appointment.online") : e.locationName, p = c ? {
3070
3070
  label: d("appointment.joinCall"),
3071
3071
  onClick: () => {
3072
3072
  f ? f() : e.joinUrl && window.open(e.joinUrl, "_blank", "noopener,noreferrer");
@@ -3076,19 +3076,19 @@ function Wa({
3076
3076
  } : {
3077
3077
  label: d("appointment.addToCalendar"),
3078
3078
  onClick: () => i?.(),
3079
- icon: /* @__PURE__ */ t(Yn, { className: "ff:size-4" }),
3079
+ icon: /* @__PURE__ */ t(Gn, { className: "ff:size-4" }),
3080
3080
  disabled: !i
3081
3081
  };
3082
3082
  return /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-4", "data-slot": "appointment-booking-details", children: [
3083
3083
  /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-1", children: [
3084
3084
  /* @__PURE__ */ t("span", { className: "ff:text-3xl ff:font-bold ff:leading-tight ff:font-heading ff:text-foreground", children: v }),
3085
- /* @__PURE__ */ t("span", { className: "ff:text-3xl ff:font-bold ff:leading-tight ff:font-heading ff:text-foreground", children: w }),
3086
- /* @__PURE__ */ t("span", { className: "ff:mt-1 ff:text-3xl ff:font-bold ff:tabular-nums ff:font-heading ff:text-foreground", children: y })
3085
+ /* @__PURE__ */ t("span", { className: "ff:text-3xl ff:font-bold ff:leading-tight ff:font-heading ff:text-foreground", children: h }),
3086
+ /* @__PURE__ */ t("span", { className: "ff:mt-1 ff:text-3xl ff:font-bold ff:tabular-nums ff:font-heading ff:text-foreground", children: x })
3087
3087
  ] }),
3088
3088
  /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-1.5 ff:border-t ff:border-border/40 ff:pt-3 ff:text-sm", children: [
3089
- h && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
3089
+ w && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
3090
3090
  /* @__PURE__ */ t("span", { className: "ff:text-muted", children: d("appointment.location") }),
3091
- /* @__PURE__ */ t("span", { className: "ff:text-right ff:font-semibold ff:text-foreground", children: h })
3091
+ /* @__PURE__ */ t("span", { className: "ff:text-right ff:font-semibold ff:text-foreground", children: w })
3092
3092
  ] }),
3093
3093
  C && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
3094
3094
  /* @__PURE__ */ t("span", { className: "ff:text-muted", children: d("appointment.duration") }),
@@ -3114,8 +3114,8 @@ function Wa({
3114
3114
  variant: "destructive",
3115
3115
  className: "ff:flex-1",
3116
3116
  onClick: n,
3117
- disabled: c,
3118
- loading: c,
3117
+ disabled: l,
3118
+ loading: l,
3119
3119
  children: d("appointment.cancelConfirmYes")
3120
3120
  }
3121
3121
  ),
@@ -3126,7 +3126,7 @@ function Wa({
3126
3126
  variant: "outline",
3127
3127
  className: "ff:flex-1",
3128
3128
  onClick: () => m(!1),
3129
- disabled: c,
3129
+ disabled: l,
3130
3130
  children: d("appointment.cancelConfirmNo")
3131
3131
  }
3132
3132
  )
@@ -3135,13 +3135,13 @@ function Wa({
3135
3135
  !r && !b && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-center ff:justify-center ff:gap-3 ff:text-xs", children: [
3136
3136
  /* @__PURE__ */ t(j, { variant: "link", size: "xs", onClick: o, children: d("appointment.reschedule") }),
3137
3137
  /* @__PURE__ */ t("span", { "aria-hidden": "true", className: "ff:text-muted", children: "·" }),
3138
- /* @__PURE__ */ t(j, { variant: "link", size: "xs", onClick: () => m(!0), disabled: c, children: d("appointment.cancel") })
3138
+ /* @__PURE__ */ t(j, { variant: "link", size: "xs", onClick: () => m(!0), disabled: l, children: d("appointment.cancel") })
3139
3139
  ] })
3140
3140
  ] });
3141
3141
  }
3142
- Wa.displayName = "AppointmentBookingDetails";
3143
- function Ua({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
3144
- const { t: o } = K(), i = !e.locationName, f = Bt(e.startTime, a), c = Ba(e.startTime, e.endTime), g = o("appointment.youreUpAt", { values: { time: f } }), d = i ? o("appointment.youreUpOnlineHint") : o("appointment.youreUpIrlHint", { values: { location: e.locationName ?? "" } });
3142
+ Ua.displayName = "AppointmentBookingDetails";
3143
+ function Wa({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
3144
+ const { t: o } = K(), i = !e.locationName, f = Bt(e.startTime, a), l = Ba(e.startTime, e.endTime), g = o("appointment.youreUpAt", { values: { time: f } }), d = i ? o("appointment.youreUpOnlineHint") : o("appointment.youreUpIrlHint", { values: { location: e.locationName ?? "" } });
3145
3145
  return /* @__PURE__ */ u(
3146
3146
  "div",
3147
3147
  {
@@ -3156,9 +3156,9 @@ function Ua({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
3156
3156
  /* @__PURE__ */ t("span", { className: "ff:text-muted", children: o("appointment.time") }),
3157
3157
  /* @__PURE__ */ t("span", { className: "ff:font-semibold ff:tabular-nums ff:text-foreground", children: f })
3158
3158
  ] }),
3159
- c && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
3159
+ l && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
3160
3160
  /* @__PURE__ */ t("span", { className: "ff:text-muted", children: o("appointment.duration") }),
3161
- /* @__PURE__ */ t("span", { className: "ff:font-semibold ff:tabular-nums ff:text-foreground", children: o("appointment.minutes", { values: { count: c } }) })
3161
+ /* @__PURE__ */ t("span", { className: "ff:font-semibold ff:tabular-nums ff:text-foreground", children: o("appointment.minutes", { values: { count: l } }) })
3162
3162
  ] }),
3163
3163
  !i && e.locationName && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-baseline ff:justify-between ff:gap-3", children: [
3164
3164
  /* @__PURE__ */ t("span", { className: "ff:text-muted", children: o("appointment.location") }),
@@ -3188,38 +3188,38 @@ function Ua({ booking: e, timezone: a, onJoinCall: r, onShowPass: n }) {
3188
3188
  }
3189
3189
  );
3190
3190
  }
3191
- Ua.displayName = "AppointmentCheckedInView";
3192
- const Jn = 3e4, Mt = /* @__PURE__ */ new Map();
3191
+ Wa.displayName = "AppointmentCheckedInView";
3192
+ const Qn = 3e4, Mt = /* @__PURE__ */ new Map();
3193
3193
  function ma(e, a, r, n) {
3194
3194
  return `${e}:${a}:${r}:${n ?? ""}`;
3195
3195
  }
3196
- function Qn(e, a) {
3197
- const r = Nt(), [n, o] = s.useState([]), [i, f] = s.useState(!1), [c, g] = s.useState(null), [d, b] = s.useState(0), { startDate: m, endDate: v, timezone: w } = a;
3196
+ function Xn(e, a) {
3197
+ const r = Nt(), [n, o] = s.useState([]), [i, f] = s.useState(!1), [l, g] = s.useState(null), [d, b] = s.useState(0), { startDate: m, endDate: v, timezone: h } = a;
3198
3198
  s.useEffect(() => {
3199
3199
  if (!e || !m || !v) {
3200
3200
  o([]), g(null), f(!1);
3201
3201
  return;
3202
3202
  }
3203
- const C = ma(e, m, v, w), l = Mt.get(C);
3204
- if (l && Date.now() - l.fetchedAt < Jn) {
3205
- o(l.slots), g(null);
3203
+ const C = ma(e, m, v, h), c = Mt.get(C);
3204
+ if (c && Date.now() - c.fetchedAt < Qn) {
3205
+ o(c.slots), g(null);
3206
3206
  return;
3207
3207
  }
3208
- let h = !1;
3209
- return f(!0), g(null), r.appointments.getSlots(e, { startDate: m, endDate: v, timezone: w }).then((p) => {
3210
- h || (Mt.set(C, { fetchedAt: Date.now(), slots: p }), o(p));
3208
+ let w = !1;
3209
+ return f(!0), g(null), r.appointments.getSlots(e, { startDate: m, endDate: v, timezone: h }).then((p) => {
3210
+ w || (Mt.set(C, { fetchedAt: Date.now(), slots: p }), o(p));
3211
3211
  }).catch((p) => {
3212
- h || g(p instanceof Error ? p : new Error(String(p)));
3212
+ w || g(p instanceof Error ? p : new Error(String(p)));
3213
3213
  }).finally(() => {
3214
- h || f(!1);
3214
+ w || f(!1);
3215
3215
  }), () => {
3216
- h = !0;
3216
+ w = !0;
3217
3217
  };
3218
- }, [r, e, m, v, w, d]);
3219
- const y = s.useCallback(() => {
3220
- e && m && v && Mt.delete(ma(e, m, v, w)), b((C) => C + 1);
3221
- }, [e, m, v, w]);
3222
- return { slots: n, isLoading: i, error: c, refresh: y };
3218
+ }, [r, e, m, v, h, d]);
3219
+ const x = s.useCallback(() => {
3220
+ e && m && v && Mt.delete(ma(e, m, v, h)), b((C) => C + 1);
3221
+ }, [e, m, v, h]);
3222
+ return { slots: n, isLoading: i, error: l, refresh: x };
3223
3223
  }
3224
3224
  function Ha({ days: e, selectedDate: a, onSelect: r }) {
3225
3225
  return /* @__PURE__ */ t(
@@ -3297,7 +3297,7 @@ function Ka({
3297
3297
  );
3298
3298
  }
3299
3299
  Ka.displayName = "AppointmentSlotItem";
3300
- const Xn = 9;
3300
+ const eo = 9;
3301
3301
  function Za({
3302
3302
  slots: e,
3303
3303
  isLoading: a,
@@ -3315,7 +3315,7 @@ function Za({
3315
3315
  className: "ff:grid ff:grid-cols-3 ff:gap-1 ff:max-h-44",
3316
3316
  "data-slot": "appointment-slot-grid",
3317
3317
  "data-state": "loading",
3318
- children: Array.from({ length: Xn }).map((f, c) => /* @__PURE__ */ t($a, { className: "ff:h-8 ff:w-full" }, c))
3318
+ children: Array.from({ length: eo }).map((f, l) => /* @__PURE__ */ t($a, { className: "ff:h-8 ff:w-full" }, l))
3319
3319
  }
3320
3320
  ) : e.length === 0 ? /* @__PURE__ */ t(ie, { "data-slot": "appointment-slot-grid", "data-state": "empty", children: /* @__PURE__ */ t("span", { className: "ff:text-muted", children: o ?? i("appointment.noSlotsAvailable") }) }) : /* @__PURE__ */ t(
3321
3321
  "div",
@@ -3325,14 +3325,14 @@ function Za({
3325
3325
  className: "ff:grid ff:grid-cols-3 ff:gap-1 ff:overflow-y-auto ff:max-h-44",
3326
3326
  "data-slot": "appointment-slot-grid",
3327
3327
  children: e.map((f) => {
3328
- const c = f.available <= 0, g = r === f.id, d = Oa(f), b = c ? i("appointment.slotFullAriaLabel", { values: { time: d } }) : d;
3328
+ const l = f.available <= 0, g = r === f.id, d = Oa(f), b = l ? i("appointment.slotFullAriaLabel", { values: { time: d } }) : d;
3329
3329
  return /* @__PURE__ */ t(
3330
3330
  Ka,
3331
3331
  {
3332
3332
  slotId: f.id,
3333
3333
  timeLabel: d,
3334
3334
  ariaLabel: b,
3335
- isFull: c,
3335
+ isFull: l,
3336
3336
  isSelected: g,
3337
3337
  onSelect: n
3338
3338
  },
@@ -3352,16 +3352,16 @@ function Ya({
3352
3352
  onSlotChange: o,
3353
3353
  bookError: i
3354
3354
  }) {
3355
- const { t: f } = K(), c = s.useMemo(
3355
+ const { t: f } = K(), l = s.useMemo(
3356
3356
  () => a ? gt(new Date(a), n) : void 0,
3357
3357
  [a, n]
3358
3358
  ), g = s.useMemo(
3359
3359
  () => r ? gt(new Date(r), n) : void 0,
3360
3360
  [r, n]
3361
3361
  ), { startDate: d, endDate: b } = s.useMemo(() => {
3362
- const N = gt(/* @__PURE__ */ new Date(), n), S = c && c > N ? c : N, M = ga(S, ha - 1), A = g && g < M ? g : M;
3362
+ const N = gt(/* @__PURE__ */ new Date(), n), S = l && l > N ? l : N, M = ga(S, ha - 1), A = g && g < M ? g : M;
3363
3363
  return { startDate: S, endDate: A };
3364
- }, [c, g, n]), { slots: m, isLoading: v, error: w } = Qn(e, { startDate: d, endDate: b, timezone: n }), y = s.useMemo(() => {
3364
+ }, [l, g, n]), { slots: m, isLoading: v, error: h } = Xn(e, { startDate: d, endDate: b, timezone: n }), x = s.useMemo(() => {
3365
3365
  const N = /* @__PURE__ */ new Map();
3366
3366
  for (const S of m) {
3367
3367
  const M = S.startTime ? gt(new Date(S.startTime), S.timezone ?? n) : S.id.slice(0, 10), A = N.get(M);
@@ -3373,49 +3373,49 @@ function Ya({
3373
3373
  for (let S = 0; S < ha; S += 1) {
3374
3374
  const M = ga(d, S);
3375
3375
  if (g && M > g) break;
3376
- const A = y.get(M) ?? [], I = A.some(($) => $.available > 0), O = !v && A.length === 0;
3376
+ const A = x.get(M) ?? [], I = A.some(($) => $.available > 0), O = !v && A.length === 0;
3377
3377
  N.push({
3378
3378
  date: M,
3379
- weekdayLabel: Un(M),
3380
- dayNumber: Hn(M),
3379
+ weekdayLabel: Hn(M),
3380
+ dayNumber: Kn(M),
3381
3381
  hasAvailability: I,
3382
3382
  isClosed: O
3383
3383
  });
3384
3384
  }
3385
3385
  return N;
3386
- }, [d, g, y, v]), [l, h] = s.useState(null), [p, D] = s.useState(null);
3386
+ }, [d, g, x, v]), [c, w] = s.useState(null), [p, D] = s.useState(null);
3387
3387
  s.useEffect(() => {
3388
- if (l && C.some((S) => S.date === l && !S.isClosed)) return;
3388
+ if (c && C.some((S) => S.date === c && !S.isClosed)) return;
3389
3389
  const N = C.find((S) => !S.isClosed);
3390
- N && (h(N.date), D(null));
3391
- }, [C, l]);
3392
- const V = s.useMemo(() => l ? y.get(l) ?? [] : [], [l, y]);
3390
+ N && (w(N.date), D(null));
3391
+ }, [C, c]);
3392
+ const V = s.useMemo(() => c ? x.get(c) ?? [] : [], [c, x]);
3393
3393
  s.useEffect(() => {
3394
3394
  if (!o) return;
3395
3395
  const N = V.find((S) => S.id === p) ?? null;
3396
3396
  o(N);
3397
3397
  }, [V, p, o]);
3398
3398
  const T = s.useCallback((N) => {
3399
- h(N), D(null);
3400
- }, []), x = s.useCallback((N) => {
3399
+ w(N), D(null);
3400
+ }, []), y = s.useCallback((N) => {
3401
3401
  D((S) => S === N ? null : N);
3402
3402
  }, []);
3403
3403
  return /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:gap-2", children: [
3404
- /* @__PURE__ */ t(Ha, { days: C, selectedDate: l, onSelect: T }),
3404
+ /* @__PURE__ */ t(Ha, { days: C, selectedDate: c, onSelect: T }),
3405
3405
  /* @__PURE__ */ t(
3406
3406
  Za,
3407
3407
  {
3408
3408
  slots: V,
3409
3409
  isLoading: v,
3410
3410
  selectedSlotId: p,
3411
- onSelect: x
3411
+ onSelect: y
3412
3412
  }
3413
3413
  ),
3414
- (i || w) && /* @__PURE__ */ t(be, { tone: "danger", description: i ?? w?.message ?? f("appointment.bookingFailed") })
3414
+ (i || h) && /* @__PURE__ */ t(be, { tone: "danger", description: i ?? h?.message ?? f("appointment.bookingFailed") })
3415
3415
  ] });
3416
3416
  }
3417
3417
  Ya.displayName = "AppointmentSlotPicker";
3418
- const eo = qe({});
3418
+ const to = qe({});
3419
3419
  function At({
3420
3420
  appointmentId: e,
3421
3421
  display$: a,
@@ -3424,22 +3424,22 @@ function At({
3424
3424
  bookingWindowCloseAt: o,
3425
3425
  timezone: i,
3426
3426
  defaultLocationId: f,
3427
- onBook: c,
3427
+ onBook: l,
3428
3428
  onCancel: g,
3429
3429
  onReschedule: d,
3430
3430
  isBooking: b,
3431
3431
  isCancelling: m,
3432
3432
  isRescheduling: v,
3433
- bookError: w,
3434
- cancelError: y,
3433
+ bookError: h,
3434
+ cancelError: x,
3435
3435
  outcomeReason: C,
3436
- onReenter: l,
3437
- isReentering: h,
3436
+ onReenter: c,
3437
+ isReentering: w,
3438
3438
  className: p
3439
3439
  }) {
3440
- const { t: D } = K(), V = ze(a ?? eo), [T, x] = s.useState(!1), N = we();
3440
+ const { t: D } = K(), V = je(a ?? to), [T, y] = s.useState(!1), N = we();
3441
3441
  if (r === "ended")
3442
- return /* @__PURE__ */ t(We, { outcomeReason: C ?? "ended", participationType: "appointment", className: p });
3442
+ return /* @__PURE__ */ t(Ue, { outcomeReason: C ?? "ended", participationType: "appointment", className: p });
3443
3443
  if (r === "participating" && T)
3444
3444
  return /* @__PURE__ */ t(
3445
3445
  wa,
@@ -3449,14 +3449,14 @@ function At({
3449
3449
  bookingWindowCloseAt: o,
3450
3450
  timezone: i,
3451
3451
  defaultLocationId: f,
3452
- headingLabel: D("appointment.rescheduleTitle"),
3452
+ headingLabel: D("appointment.reschedule.title"),
3453
3453
  headingVariant: "default",
3454
3454
  confirmLabelKey: "appointment.continueWithTime",
3455
3455
  idleLabelKey: "appointment.selectATime",
3456
3456
  isPending: v,
3457
- error: w,
3457
+ error: h,
3458
3458
  onConfirm: async (S, M) => {
3459
- await d(S, M), x(!1);
3459
+ await d(S, M), y(!1);
3460
3460
  },
3461
3461
  className: p,
3462
3462
  motionProps: N,
@@ -3465,8 +3465,8 @@ function At({
3465
3465
  }
3466
3466
  );
3467
3467
  if (r === "participating") {
3468
- const S = V.booking, M = S?.consumerStatus, A = M === "checked_in", I = M === "completed", O = I ? "completed" : A ? "checked_in" : "booked", $ = D(I ? "appointment.completedTitle" : A ? "appointment.checkedIn" : "appointment.bookedTitle");
3469
- return /* @__PURE__ */ t(U.div, { ...N, children: /* @__PURE__ */ u(
3468
+ const S = V.booking, M = S?.consumerStatus, A = M === "checked_in", I = M === "completed", O = I ? "completed" : A ? "checked_in" : "booked", $ = D(I ? "appointment.completed.title" : A ? "appointment.checkedIn" : "appointment.booked.title");
3469
+ return /* @__PURE__ */ t(W.div, { ...N, children: /* @__PURE__ */ u(
3470
3470
  Y,
3471
3471
  {
3472
3472
  className: E("ff:w-full ff:max-w-sm", p),
@@ -3475,16 +3475,16 @@ function At({
3475
3475
  "data-substage": O,
3476
3476
  children: [
3477
3477
  /* @__PURE__ */ t(G, { variant: "success", label: $ }),
3478
- /* @__PURE__ */ t(Z, { children: S ? A ? /* @__PURE__ */ t(Ua, { booking: S, timezone: i }) : /* @__PURE__ */ t(
3479
- Wa,
3478
+ /* @__PURE__ */ t(Z, { children: S ? A ? /* @__PURE__ */ t(Wa, { booking: S, timezone: i }) : /* @__PURE__ */ t(
3479
+ Ua,
3480
3480
  {
3481
3481
  booking: S,
3482
3482
  timezone: i,
3483
3483
  readOnly: I,
3484
3484
  onCancel: () => g(),
3485
- onStartReschedule: () => x(!0),
3485
+ onStartReschedule: () => y(!0),
3486
3486
  isCancelling: m,
3487
- cancelError: y
3487
+ cancelError: x
3488
3488
  }
3489
3489
  ) : /* @__PURE__ */ t("span", { className: "ff:text-muted", children: D("appointment.loadingBooking") }) })
3490
3490
  ]
@@ -3504,8 +3504,8 @@ function At({
3504
3504
  confirmLabelKey: "appointment.continueWithTime",
3505
3505
  idleLabelKey: "appointment.selectATime",
3506
3506
  isPending: b,
3507
- error: w,
3508
- onConfirm: c,
3507
+ error: h,
3508
+ onConfirm: l,
3509
3509
  className: p,
3510
3510
  motionProps: N,
3511
3511
  dataStage: "enterable"
@@ -3521,27 +3521,27 @@ function wa({
3521
3521
  defaultLocationId: o,
3522
3522
  headingLabel: i,
3523
3523
  headingVariant: f,
3524
- confirmLabelKey: c,
3524
+ confirmLabelKey: l,
3525
3525
  idleLabelKey: g,
3526
3526
  isPending: d,
3527
3527
  error: b,
3528
3528
  onConfirm: m,
3529
3529
  className: v,
3530
- motionProps: w,
3531
- dataStage: y,
3530
+ motionProps: h,
3531
+ dataStage: x,
3532
3532
  dataMode: C
3533
3533
  }) {
3534
- const { t: l } = K(), [h, p] = s.useState(null), D = h ? l(c, { values: { time: Oa(h) } }) : l(g), V = s.useCallback(async () => {
3535
- if (!h) return;
3536
- const T = h.locationId ?? o;
3537
- await m(h.id, T);
3538
- }, [o, m, h]);
3539
- return /* @__PURE__ */ t(U.div, { ...w, children: /* @__PURE__ */ u(
3534
+ const { t: c } = K(), [w, p] = s.useState(null), D = w ? c(l, { values: { time: Oa(w) } }) : c(g), V = s.useCallback(async () => {
3535
+ if (!w) return;
3536
+ const T = w.locationId ?? o;
3537
+ await m(w.id, T);
3538
+ }, [o, m, w]);
3539
+ return /* @__PURE__ */ t(W.div, { ...h, children: /* @__PURE__ */ u(
3540
3540
  Y,
3541
3541
  {
3542
3542
  className: E("ff:w-full ff:max-w-sm", v),
3543
3543
  "data-slot": "appointment-module",
3544
- "data-stage": y,
3544
+ "data-stage": x,
3545
3545
  "data-mode": C,
3546
3546
  children: [
3547
3547
  /* @__PURE__ */ t(G, { variant: f, label: i }),
@@ -3562,7 +3562,7 @@ function wa({
3562
3562
  size: "sm",
3563
3563
  className: "ff:w-full",
3564
3564
  onClick: V,
3565
- disabled: !h || d,
3565
+ disabled: !w || d,
3566
3566
  loading: d,
3567
3567
  children: D
3568
3568
  }
@@ -3571,7 +3571,7 @@ function wa({
3571
3571
  }
3572
3572
  ) });
3573
3573
  }
3574
- function to(e, a) {
3574
+ function ao(e, a) {
3575
3575
  try {
3576
3576
  return new Intl.NumberFormat(a, {
3577
3577
  style: "currency",
@@ -3582,7 +3582,7 @@ function to(e, a) {
3582
3582
  return e;
3583
3583
  }
3584
3584
  }
3585
- function ao(e, a) {
3585
+ function ro(e, a) {
3586
3586
  const r = a?.currencyCode, n = a?.minimumFractionDigits ?? 2, o = a?.maximumFractionDigits ?? 2;
3587
3587
  if (r)
3588
3588
  try {
@@ -3595,7 +3595,7 @@ function ao(e, a) {
3595
3595
  }).format(e);
3596
3596
  } catch {
3597
3597
  }
3598
- const i = a?.currencySymbol ?? (r ? to(r, a?.locale) : "$");
3598
+ const i = a?.currencySymbol ?? (r ? ao(r, a?.locale) : "$");
3599
3599
  try {
3600
3600
  const f = e.toLocaleString(a?.locale, { minimumFractionDigits: n, maximumFractionDigits: o });
3601
3601
  return `${i}${f}`;
@@ -3603,8 +3603,8 @@ function ao(e, a) {
3603
3603
  return `${i}${e.toFixed(o)}`;
3604
3604
  }
3605
3605
  }
3606
- const ro = qe({});
3607
- function no(e, a) {
3606
+ const no = qe({});
3607
+ function oo(e, a) {
3608
3608
  const r = { ...e }, n = r;
3609
3609
  for (const [o, i] of Object.entries(a))
3610
3610
  i !== void 0 && (n[o] = i);
@@ -3618,24 +3618,24 @@ function tt({
3618
3618
  canLeave: o,
3619
3619
  onEnter: i,
3620
3620
  onLeave: f,
3621
- onBid: c,
3621
+ onBid: l,
3622
3622
  isEntering: g,
3623
3623
  isLeaving: d,
3624
3624
  countdownTo: b,
3625
3625
  defaultBidAmount: m,
3626
3626
  currencyCode: v,
3627
- locale: w,
3628
- grant: y,
3627
+ locale: h,
3628
+ grant: x,
3629
3629
  expiresAt: C,
3630
- checkoutUrl: l,
3631
- onCheckoutClick: h,
3630
+ checkoutUrl: c,
3631
+ onCheckoutClick: w,
3632
3632
  outcomeReason: p,
3633
3633
  onReenter: D,
3634
3634
  isReentering: V,
3635
3635
  className: T
3636
3636
  }) {
3637
- const { t: x } = K(), N = ze(e ?? ro), S = s.useMemo(
3638
- () => no(a, N),
3637
+ const { t: y } = K(), N = je(e ?? no), S = s.useMemo(
3638
+ () => oo(a, N),
3639
3639
  [a, N]
3640
3640
  ), M = s.useMemo(() => S.settleAt ? new Date(S.settleAt) : b || (S.closeAt ? new Date(S.closeAt) : void 0), [b, S.settleAt, S.closeAt]), A = s.useMemo(() => {
3641
3641
  if (C)
@@ -3644,43 +3644,43 @@ function tt({
3644
3644
  (L) => {
3645
3645
  if (L === void 0) return;
3646
3646
  const J = parseFloat(L);
3647
- return Number.isNaN(J) ? L : ao(
3647
+ return Number.isNaN(J) ? L : ro(
3648
3648
  J,
3649
- I ? { currencyCode: I, locale: w } : { currencySymbol: "$", locale: w }
3649
+ I ? { currencyCode: I, locale: h } : { currencySymbol: "$", locale: h }
3650
3650
  );
3651
3651
  },
3652
- [I, w]
3652
+ [I, h]
3653
3653
  ), $ = we(), fe = () => {
3654
- h ? h() : l && window.open(l, "_blank", "noopener,noreferrer");
3654
+ w ? w() : c && window.open(c, "_blank", "noopener,noreferrer");
3655
3655
  }, ce = async () => {
3656
- if (!c) return;
3656
+ if (!l) return;
3657
3657
  const L = S.minNextBid ?? m;
3658
- L && await c(L);
3658
+ L && await l(L);
3659
3659
  };
3660
3660
  if (r === "enterable")
3661
- return /* @__PURE__ */ t(U.div, { ...$, children: /* @__PURE__ */ u(
3661
+ return /* @__PURE__ */ t(W.div, { ...$, children: /* @__PURE__ */ u(
3662
3662
  Y,
3663
3663
  {
3664
3664
  className: E("ff:w-full ff:max-w-sm", T),
3665
3665
  "data-slot": "auction-module",
3666
3666
  "data-stage": "enterable",
3667
3667
  children: [
3668
- /* @__PURE__ */ t(G, { variant: "default", label: x("auction.title") }),
3668
+ /* @__PURE__ */ t(G, { variant: "default", label: y("auction.title") }),
3669
3669
  /* @__PURE__ */ u(Z, { children: [
3670
3670
  M && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3671
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: x("auction.endsIn") }),
3671
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: y("auction.endsIn") }),
3672
3672
  /* @__PURE__ */ t(pe, { targetDate: M, showDays: !1 })
3673
3673
  ] }),
3674
- /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: x("auction.description") }) }),
3675
- c ? /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: ce, children: x("auction.bidAction") }) : n && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: i, disabled: g, loading: g, children: x("auction.enter") })
3674
+ /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: y("auction.description") }) }),
3675
+ l ? /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: ce, children: y("auction.bidAction") }) : n && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: i, disabled: g, loading: g, children: y("auction.enter") })
3676
3676
  ] }),
3677
3677
  /* @__PURE__ */ t(H, {})
3678
3678
  ]
3679
3679
  }
3680
3680
  ) });
3681
3681
  if (r === "participating") {
3682
- const L = S.status === "winning", J = L ? "default" : "success", ne = x(L ? "auction.winningTitle" : "auction.title"), se = O(S.highestBid), de = O(S.currentBid);
3683
- return /* @__PURE__ */ t(U.div, { ...$, children: /* @__PURE__ */ u(
3682
+ const L = S.status === "winning", J = L ? "default" : "success", ne = y(L ? "auction.winning.title" : "auction.title"), se = O(S.highestBid), de = O(S.currentBid);
3683
+ return /* @__PURE__ */ t(W.div, { ...$, children: /* @__PURE__ */ u(
3684
3684
  Y,
3685
3685
  {
3686
3686
  className: E("ff:w-full ff:max-w-sm", T),
@@ -3690,21 +3690,21 @@ function tt({
3690
3690
  /* @__PURE__ */ t(G, { variant: J, label: ne }),
3691
3691
  /* @__PURE__ */ u(Z, { children: [
3692
3692
  M && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3693
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: x("auction.endsIn") }),
3693
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: y("auction.endsIn") }),
3694
3694
  /* @__PURE__ */ t(pe, { targetDate: M, showDays: !1 })
3695
3695
  ] }),
3696
3696
  /* @__PURE__ */ u(ie, { children: [
3697
3697
  se !== void 0 && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-center ff:justify-between", children: [
3698
- /* @__PURE__ */ t("span", { className: "ff:text-muted", children: x("auction.currentBid") }),
3698
+ /* @__PURE__ */ t("span", { className: "ff:text-muted", children: y("auction.currentBid") }),
3699
3699
  /* @__PURE__ */ t("span", { className: "ff:font-medium ff:tabular-nums", children: se })
3700
3700
  ] }),
3701
3701
  de !== void 0 && /* @__PURE__ */ u("div", { className: "ff:flex ff:items-center ff:justify-between", children: [
3702
- /* @__PURE__ */ t("span", { className: "ff:text-muted", children: x(L ? "auction.yourWinningBid" : "auction.yourBidLabel") }),
3702
+ /* @__PURE__ */ t("span", { className: "ff:text-muted", children: y(L ? "auction.yourWinningBid" : "auction.yourBidLabel") }),
3703
3703
  /* @__PURE__ */ t("span", { className: "ff:font-medium ff:tabular-nums", children: de })
3704
3704
  ] })
3705
3705
  ] }),
3706
3706
  /* @__PURE__ */ u("div", { className: "ff:mt-auto ff:flex ff:flex-col ff:gap-2", children: [
3707
- c && /* @__PURE__ */ t(j, { className: "ff:w-full", onClick: ce, children: x("auction.bidAction") }),
3707
+ l && /* @__PURE__ */ t(j, { className: "ff:w-full", onClick: ce, children: y("auction.bidAction") }),
3708
3708
  o && /* @__PURE__ */ t(
3709
3709
  j,
3710
3710
  {
@@ -3713,7 +3713,7 @@ function tt({
3713
3713
  onClick: f,
3714
3714
  disabled: d,
3715
3715
  loading: d,
3716
- children: x("common.leave")
3716
+ children: y("action.leave")
3717
3717
  }
3718
3718
  )
3719
3719
  ] })
@@ -3725,18 +3725,18 @@ function tt({
3725
3725
  }
3726
3726
  if (r === "settling") {
3727
3727
  const L = O(S.highestBid);
3728
- return /* @__PURE__ */ t(U.div, { ...$, children: /* @__PURE__ */ u(
3728
+ return /* @__PURE__ */ t(W.div, { ...$, children: /* @__PURE__ */ u(
3729
3729
  Y,
3730
3730
  {
3731
3731
  className: E("ff:w-full ff:max-w-sm", T),
3732
3732
  "data-slot": "auction-module",
3733
3733
  "data-stage": "settling",
3734
3734
  children: [
3735
- /* @__PURE__ */ t(G, { variant: "default", label: x("auction.settlingTitle") }),
3735
+ /* @__PURE__ */ t(G, { variant: "default", label: y("auction.settling.title") }),
3736
3736
  /* @__PURE__ */ t(Z, { children: /* @__PURE__ */ u(ie, { children: [
3737
- /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: x("auction.settlingDescription") }),
3737
+ /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: y("auction.settling.description") }),
3738
3738
  L !== void 0 && /* @__PURE__ */ u("div", { className: "ff:mt-3 ff:flex ff:items-center ff:justify-between", children: [
3739
- /* @__PURE__ */ t("span", { className: "ff:text-muted", children: x("auction.currentBid") }),
3739
+ /* @__PURE__ */ t("span", { className: "ff:text-muted", children: y("auction.currentBid") }),
3740
3740
  /* @__PURE__ */ t("span", { className: "ff:font-medium ff:tabular-nums", children: L })
3741
3741
  ] })
3742
3742
  ] }) }),
@@ -3748,15 +3748,15 @@ function tt({
3748
3748
  return r === "granted" ? /* @__PURE__ */ t(
3749
3749
  it,
3750
3750
  {
3751
- label: x("auction.wonTitle"),
3752
- fallbackMessage: x("auction.wonDescription"),
3753
- ctaLabel: x("auction.proceedToCheckout"),
3751
+ label: y("auction.won.title"),
3752
+ fallbackMessage: y("auction.won.description"),
3753
+ ctaLabel: y("action.proceedToCheckout"),
3754
3754
  expiresAt: A,
3755
3755
  onCtaClick: fe,
3756
3756
  className: T
3757
3757
  }
3758
3758
  ) : r === "ended" ? /* @__PURE__ */ t(
3759
- We,
3759
+ Ue,
3760
3760
  {
3761
3761
  outcomeReason: p ?? "ended",
3762
3762
  participationType: "auction",
@@ -3767,7 +3767,7 @@ function tt({
3767
3767
  ) : null;
3768
3768
  }
3769
3769
  tt.displayName = "AuctionModule";
3770
- const oo = qe({});
3770
+ const fo = qe({});
3771
3771
  function at({
3772
3772
  display$: e,
3773
3773
  sequencePhase: a,
@@ -3776,93 +3776,93 @@ function at({
3776
3776
  onEnter: o,
3777
3777
  onLeave: i,
3778
3778
  isEntering: f,
3779
- isLeaving: c,
3779
+ isLeaving: l,
3780
3780
  countdownTo: g,
3781
3781
  grant: d,
3782
3782
  expiresAt: b,
3783
3783
  checkoutUrl: m,
3784
3784
  onCheckoutClick: v,
3785
- outcomeReason: w,
3786
- onReenter: y,
3785
+ outcomeReason: h,
3786
+ onReenter: x,
3787
3787
  isReentering: C,
3788
- className: l
3788
+ className: c
3789
3789
  }) {
3790
- const { t: h } = K(), p = ze(e ?? oo), D = s.useMemo(
3790
+ const { t: w } = K(), p = je(e ?? fo), D = s.useMemo(
3791
3791
  () => g ?? (p.drawTime ? new Date(p.drawTime) : void 0),
3792
3792
  [g, p.drawTime]
3793
3793
  ), V = s.useMemo(() => {
3794
3794
  if (b)
3795
3795
  return b instanceof Date ? b : new Date(b);
3796
- }, [b]), T = we(), x = () => {
3796
+ }, [b]), T = we(), y = () => {
3797
3797
  v ? v() : m && window.open(m, "_blank", "noopener,noreferrer");
3798
3798
  };
3799
- return a === "enterable" ? /* @__PURE__ */ t(U.div, { ...T, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", l), "data-slot": "draw-module", "data-stage": "enterable", children: [
3800
- /* @__PURE__ */ t(G, { variant: "default", label: h("draw.title") }),
3799
+ return a === "enterable" ? /* @__PURE__ */ t(W.div, { ...T, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", c), "data-slot": "draw-module", "data-stage": "enterable", children: [
3800
+ /* @__PURE__ */ t(G, { variant: "default", label: w("draw.title") }),
3801
3801
  /* @__PURE__ */ u(Z, { children: [
3802
3802
  D && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3803
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: h("draw.drawClosesIn") }),
3803
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: w("draw.drawClosesIn") }),
3804
3804
  /* @__PURE__ */ t(pe, { targetDate: D, showDays: !1 })
3805
3805
  ] }),
3806
- r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children: h("draw.enter") })
3806
+ r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children: w("draw.enter") })
3807
3807
  ] }),
3808
3808
  /* @__PURE__ */ t(H, {})
3809
- ] }) }) : a === "participating" ? /* @__PURE__ */ t(U.div, { ...T, children: /* @__PURE__ */ u(
3809
+ ] }) }) : a === "participating" ? /* @__PURE__ */ t(W.div, { ...T, children: /* @__PURE__ */ u(
3810
3810
  Y,
3811
3811
  {
3812
- className: E("ff:w-full ff:max-w-sm", l),
3812
+ className: E("ff:w-full ff:max-w-sm", c),
3813
3813
  "data-slot": "draw-module",
3814
3814
  "data-stage": "participating",
3815
3815
  children: [
3816
- /* @__PURE__ */ t(G, { variant: "success", label: h("draw.entered") }),
3816
+ /* @__PURE__ */ t(G, { variant: "success", label: w("draw.entered.title") }),
3817
3817
  /* @__PURE__ */ u(Z, { children: [
3818
3818
  p.entryNumber && /* @__PURE__ */ t("span", { className: "ff:text-xs ff:text-muted ff:font-mono", children: p.entryNumber }),
3819
3819
  D ? /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3820
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: h("draw.drawHappensIn") }),
3820
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: w("draw.drawHappensIn") }),
3821
3821
  /* @__PURE__ */ t(pe, { targetDate: D, showDays: !1 })
3822
3822
  ] }) : null,
3823
- /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: h(D ? "draw.goodLuck" : "draw.stayTuned") }) }),
3823
+ /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: w(D ? "draw.entered.description" : "draw.stayTuned") }) }),
3824
3824
  n && /* @__PURE__ */ t(
3825
3825
  j,
3826
3826
  {
3827
3827
  className: "ff:mt-auto ff:w-full",
3828
3828
  variant: "outline",
3829
3829
  onClick: i,
3830
- disabled: c,
3831
- loading: c,
3832
- children: h("draw.withdraw")
3830
+ disabled: l,
3831
+ loading: l,
3832
+ children: w("draw.withdraw")
3833
3833
  }
3834
3834
  )
3835
3835
  ] }),
3836
3836
  /* @__PURE__ */ t(H, {})
3837
3837
  ]
3838
3838
  }
3839
- ) }) : a === "settling" ? /* @__PURE__ */ t(U.div, { ...T, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", l), "data-slot": "draw-module", "data-stage": "settling", children: [
3840
- /* @__PURE__ */ t(G, { variant: "default", label: h("draw.settlingTitle") }),
3841
- /* @__PURE__ */ t(Z, { children: /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: h("draw.settlingDescription") }) }) }),
3839
+ ) }) : a === "settling" ? /* @__PURE__ */ t(W.div, { ...T, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", c), "data-slot": "draw-module", "data-stage": "settling", children: [
3840
+ /* @__PURE__ */ t(G, { variant: "default", label: w("draw.settling.title") }),
3841
+ /* @__PURE__ */ t(Z, { children: /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: w("draw.settling.description") }) }) }),
3842
3842
  /* @__PURE__ */ t(H, {})
3843
3843
  ] }) }) : a === "granted" ? /* @__PURE__ */ t(
3844
3844
  it,
3845
3845
  {
3846
- label: h("draw.wonTitle"),
3847
- fallbackMessage: h("granted.description"),
3848
- ctaLabel: h("granted.cta"),
3846
+ label: w("draw.won.title"),
3847
+ fallbackMessage: w("granted.description"),
3848
+ ctaLabel: w("granted.cta"),
3849
3849
  expiresAt: V,
3850
- onCtaClick: x,
3851
- className: l
3850
+ onCtaClick: y,
3851
+ className: c
3852
3852
  }
3853
3853
  ) : a === "ended" ? /* @__PURE__ */ t(
3854
- We,
3854
+ Ue,
3855
3855
  {
3856
- outcomeReason: w ?? "ended",
3856
+ outcomeReason: h ?? "ended",
3857
3857
  participationType: "draw",
3858
- onReenter: y,
3858
+ onReenter: x,
3859
3859
  isReentering: C,
3860
- className: l
3860
+ className: c
3861
3861
  }
3862
3862
  ) : null;
3863
3863
  }
3864
3864
  at.displayName = "DrawModule";
3865
- const fo = qe({});
3865
+ const io = qe({});
3866
3866
  function wt({
3867
3867
  display$: e,
3868
3868
  sequencePhase: a,
@@ -3871,61 +3871,61 @@ function wt({
3871
3871
  onEnter: o,
3872
3872
  onLeave: i,
3873
3873
  isEntering: f,
3874
- isLeaving: c,
3874
+ isLeaving: l,
3875
3875
  closeAt: g,
3876
3876
  grant: d,
3877
3877
  expiresAt: b,
3878
3878
  checkoutUrl: m,
3879
3879
  onCheckoutClick: v,
3880
- outcomeReason: w,
3881
- onReenter: y,
3880
+ outcomeReason: h,
3881
+ onReenter: x,
3882
3882
  isReentering: C,
3883
- className: l
3883
+ className: c
3884
3884
  }) {
3885
- const { t: h } = K(), p = ze(e ?? fo), D = s.useMemo(() => {
3885
+ const { t: w } = K(), p = je(e ?? io), D = s.useMemo(() => {
3886
3886
  if (b)
3887
3887
  return b instanceof Date ? b : new Date(b);
3888
3888
  }, [b]), V = we(), T = () => {
3889
3889
  v ? v() : m && window.open(m, "_blank", "noopener,noreferrer");
3890
3890
  };
3891
3891
  if (a === "enterable")
3892
- return /* @__PURE__ */ t(U.div, { ...V, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", l), "data-slot": "queue-module", "data-stage": "enterable", children: [
3893
- /* @__PURE__ */ t(G, { variant: "default", label: h("queue.openingSoon") }),
3892
+ return /* @__PURE__ */ t(W.div, { ...V, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", c), "data-slot": "queue-module", "data-stage": "enterable", children: [
3893
+ /* @__PURE__ */ t(G, { variant: "default", label: w("queue.openingSoon") }),
3894
3894
  /* @__PURE__ */ u(Z, { children: [
3895
3895
  g && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3896
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: h("queue.queueClosesIn") }),
3896
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: w("queue.queueClosesIn") }),
3897
3897
  /* @__PURE__ */ t(pe, { targetDate: g, showDays: !1 })
3898
3898
  ] }),
3899
- r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children: h("queue.enter") })
3899
+ r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: f, loading: f, children: w("queue.enter") })
3900
3900
  ] }),
3901
3901
  /* @__PURE__ */ t(H, {})
3902
3902
  ] }) });
3903
3903
  if (a === "participating") {
3904
- const x = p.estimatedWaitTime, N = x != null ? Math.ceil(x / 60) : null, S = (O) => O < 1 ? h("queue.waitLessThanMinute") : O === 1 ? h("queue.waitOneMinute") : h("queue.waitMinutes", { values: { count: O } }), M = x != null ? Dr(x) : null, A = M ? h(Vr(M)) : null, I = N !== null ? S(N) : "...";
3905
- return /* @__PURE__ */ t(U.div, { ...V, children: /* @__PURE__ */ u(
3904
+ const y = p.estimatedWaitTime, N = y != null ? Math.ceil(y / 60) : null, S = (O) => O < 1 ? w("queue.waitLessThanMinute") : O === 1 ? w("queue.waitOneMinute") : w("queue.waitMinutes", { values: { count: O } }), M = y != null ? Vr(y) : null, A = M ? w(Er(M)) : null, I = N !== null ? S(N) : "...";
3905
+ return /* @__PURE__ */ t(W.div, { ...V, children: /* @__PURE__ */ u(
3906
3906
  Y,
3907
3907
  {
3908
- className: E("ff:w-full ff:max-w-sm", l),
3908
+ className: E("ff:w-full ff:max-w-sm", c),
3909
3909
  "data-slot": "queue-module",
3910
3910
  "data-stage": "participating",
3911
3911
  children: [
3912
- /* @__PURE__ */ t(G, { variant: "success", label: h("queue.title") }),
3912
+ /* @__PURE__ */ t(G, { variant: "success", label: w("queue.title") }),
3913
3913
  /* @__PURE__ */ u(Z, { children: [
3914
3914
  /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
3915
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: h("queue.estimatedWaitLabel") }),
3915
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: w("queue.estimatedWaitLabel") }),
3916
3916
  /* @__PURE__ */ t("span", { className: "ff:text-4xl ff:font-bold ff:tabular-nums ff:font-heading", children: I }),
3917
3917
  A && /* @__PURE__ */ t("span", { className: "ff:text-xs ff:text-muted", children: A })
3918
3918
  ] }),
3919
- /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-muted ff:text-xs", children: h("queue.qualitativeReassurance") }) }),
3919
+ /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-muted ff:text-xs", children: w("queue.qualitativeReassurance") }) }),
3920
3920
  n && /* @__PURE__ */ t(
3921
3921
  j,
3922
3922
  {
3923
3923
  className: "ff:mt-auto ff:w-full",
3924
3924
  variant: "outline",
3925
3925
  onClick: i,
3926
- disabled: c,
3927
- loading: c,
3928
- children: h("queue.leave")
3926
+ disabled: l,
3927
+ loading: l,
3928
+ children: w("queue.leave")
3929
3929
  }
3930
3930
  )
3931
3931
  ] }),
@@ -3937,26 +3937,26 @@ function wt({
3937
3937
  return a === "granted" ? /* @__PURE__ */ t(
3938
3938
  it,
3939
3939
  {
3940
- label: h("queue.granted"),
3941
- fallbackMessage: h("queue.grantedMessage"),
3942
- ctaLabel: h("granted.cta"),
3940
+ label: w("queue.granted.title"),
3941
+ fallbackMessage: w("queue.granted.message"),
3942
+ ctaLabel: w("granted.cta"),
3943
3943
  expiresAt: D,
3944
3944
  onCtaClick: T,
3945
- className: l
3945
+ className: c
3946
3946
  }
3947
3947
  ) : a === "ended" ? /* @__PURE__ */ t(
3948
- We,
3948
+ Ue,
3949
3949
  {
3950
- outcomeReason: w ?? "ended",
3950
+ outcomeReason: h ?? "ended",
3951
3951
  participationType: "queue",
3952
- onReenter: y,
3952
+ onReenter: x,
3953
3953
  isReentering: C,
3954
- className: l
3954
+ className: c
3955
3955
  }
3956
3956
  ) : null;
3957
3957
  }
3958
3958
  wt.displayName = "QueueModule";
3959
- const io = qe({});
3959
+ const so = qe({});
3960
3960
  function vt({
3961
3961
  display$: e,
3962
3962
  sequencePhase: a,
@@ -3965,28 +3965,28 @@ function vt({
3965
3965
  onEnter: o,
3966
3966
  onLeave: i,
3967
3967
  onComplete: f,
3968
- isEntering: c,
3968
+ isEntering: l,
3969
3969
  isLeaving: g,
3970
3970
  countdownTo: d,
3971
3971
  checkoutUrl: b,
3972
3972
  onCheckoutClick: m,
3973
3973
  grant: v,
3974
- expiresAt: w,
3975
- outcomeReason: y,
3974
+ expiresAt: h,
3975
+ outcomeReason: x,
3976
3976
  onReenter: C,
3977
- isReentering: l,
3978
- className: h
3977
+ isReentering: c,
3978
+ className: w
3979
3979
  }) {
3980
- const { t: p } = K(), D = ze(e ?? io), V = s.useMemo(() => {
3981
- if (w)
3982
- return w instanceof Date ? w : new Date(w);
3983
- }, [w]), T = b ?? D.checkoutUrl, x = we(), N = () => {
3980
+ const { t: p } = K(), D = je(e ?? so), V = s.useMemo(() => {
3981
+ if (h)
3982
+ return h instanceof Date ? h : new Date(h);
3983
+ }, [h]), T = b ?? D.checkoutUrl, y = we(), N = () => {
3984
3984
  m ? m() : T && window.open(T, "_blank", "noopener,noreferrer");
3985
3985
  };
3986
- return a === "enterable" ? /* @__PURE__ */ t(U.div, { ...x, children: /* @__PURE__ */ u(
3986
+ return a === "enterable" ? /* @__PURE__ */ t(W.div, { ...y, children: /* @__PURE__ */ u(
3987
3987
  Y,
3988
3988
  {
3989
- className: E("ff:w-full ff:max-w-sm", h),
3989
+ className: E("ff:w-full ff:max-w-sm", w),
3990
3990
  "data-slot": "timed-release-module",
3991
3991
  "data-stage": "enterable",
3992
3992
  children: [
@@ -3997,15 +3997,15 @@ function vt({
3997
3997
  /* @__PURE__ */ t(pe, { targetDate: d, showDays: !1 })
3998
3998
  ] }),
3999
3999
  /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: p("timedRelease.description") }) }),
4000
- r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: c, loading: c, children: p("timedRelease.enter") })
4000
+ r && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: o, disabled: l, loading: l, children: p("timedRelease.enter") })
4001
4001
  ] }),
4002
4002
  /* @__PURE__ */ t(H, {})
4003
4003
  ]
4004
4004
  }
4005
- ) }) : a === "participating" ? /* @__PURE__ */ t(U.div, { ...x, children: /* @__PURE__ */ u(
4005
+ ) }) : a === "participating" ? /* @__PURE__ */ t(W.div, { ...y, children: /* @__PURE__ */ u(
4006
4006
  Y,
4007
4007
  {
4008
- className: E("ff:w-full ff:max-w-sm", h),
4008
+ className: E("ff:w-full ff:max-w-sm", w),
4009
4009
  "data-slot": "timed-release-module",
4010
4010
  "data-stage": "participating",
4011
4011
  children: [
@@ -4051,16 +4051,16 @@ function vt({
4051
4051
  ctaLabel: p("granted.cta"),
4052
4052
  expiresAt: V,
4053
4053
  onCtaClick: N,
4054
- className: h
4054
+ className: w
4055
4055
  }
4056
4056
  ) : a === "ended" ? /* @__PURE__ */ t(
4057
- We,
4057
+ Ue,
4058
4058
  {
4059
- outcomeReason: y ?? "ended",
4059
+ outcomeReason: x ?? "ended",
4060
4060
  participationType: "timed_release",
4061
4061
  onReenter: C,
4062
- isReentering: l,
4063
- className: h
4062
+ isReentering: c,
4063
+ className: w
4064
4064
  }
4065
4065
  ) : null;
4066
4066
  }
@@ -4073,36 +4073,36 @@ function Ga({
4073
4073
  canEnter: o = !1,
4074
4074
  onEnter: i,
4075
4075
  enterLabel: f,
4076
- isEntering: c = !1,
4076
+ isEntering: l = !1,
4077
4077
  className: g
4078
4078
  }) {
4079
- const { t: d } = K(), b = e ?? d("upcoming.title"), m = a ?? d("upcoming.description"), v = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), w = we();
4080
- return /* @__PURE__ */ t(U.div, { ...w, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", g), "data-slot": "upcoming-module", children: [
4079
+ const { t: d } = K(), b = e ?? d("upcoming.title"), m = a ?? d("upcoming.description"), v = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), h = we();
4080
+ return /* @__PURE__ */ t(W.div, { ...h, children: /* @__PURE__ */ u(Y, { className: E("ff:w-full ff:max-w-sm", g), "data-slot": "upcoming-module", children: [
4081
4081
  /* @__PURE__ */ t(G, { variant: "secondary", label: b }),
4082
4082
  /* @__PURE__ */ u(Z, { children: [
4083
4083
  v && /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
4084
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: d("countdown.startingSoon") }),
4084
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: d("duration.startingSoon") }),
4085
4085
  /* @__PURE__ */ t(
4086
4086
  pe,
4087
4087
  {
4088
4088
  targetDate: v,
4089
4089
  onComplete: n,
4090
- expiredLabel: d("countdown.startingSoon")
4090
+ expiredLabel: d("duration.startingSoon")
4091
4091
  }
4092
4092
  )
4093
4093
  ] }),
4094
4094
  /* @__PURE__ */ t(ie, { children: /* @__PURE__ */ t("p", { className: "ff:text-foreground/80", children: m }) }),
4095
- o && i && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: i, disabled: c, loading: c, children: f ?? d("waitlist.enter") })
4095
+ o && i && /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: i, disabled: l, loading: l, children: f ?? d("waitlist.enter") })
4096
4096
  ] }),
4097
4097
  /* @__PURE__ */ t(H, {})
4098
4098
  ] }) });
4099
4099
  }
4100
4100
  Ga.displayName = "UpcomingModule";
4101
- const so = {
4101
+ const lo = {
4102
4102
  initial: { opacity: 1 },
4103
4103
  animate: { opacity: 1 },
4104
4104
  transition: { duration: 0 }
4105
- }, lo = {
4105
+ }, co = {
4106
4106
  default: {
4107
4107
  initial: { opacity: 0, scale: 0.95 },
4108
4108
  animate: { opacity: 1, scale: 1 },
@@ -4123,7 +4123,7 @@ const so = {
4123
4123
  animate: { opacity: 1 },
4124
4124
  transition: { duration: 0.4, ease: "easeInOut" }
4125
4125
  }
4126
- }, co = te("ff:flex ff:items-center ff:justify-center", {
4126
+ }, uo = ae("ff:flex ff:items-center ff:justify-center", {
4127
4127
  variants: {
4128
4128
  styleVariant: {
4129
4129
  default: "ff:w-16 ff:h-16 ff:rounded-full ff:bg-primary/5",
@@ -4137,7 +4137,7 @@ const so = {
4137
4137
  }
4138
4138
  },
4139
4139
  defaultVariants: { styleVariant: "default" }
4140
- }), uo = te("ff:mt-4 ff:text-sm", {
4140
+ }), po = ae("ff:mt-4 ff:text-sm", {
4141
4141
  variants: {
4142
4142
  styleVariant: {
4143
4143
  default: "ff:text-muted",
@@ -4149,9 +4149,9 @@ const so = {
4149
4149
  defaultVariants: { styleVariant: "default" }
4150
4150
  });
4151
4151
  function It({ message: e, className: a }) {
4152
- const r = ge(), n = ot() ? so : lo[r], o = r === "clean" ? "md" : "lg";
4152
+ const r = ge(), n = ot() ? lo : co[r], o = r === "clean" ? "md" : "lg";
4153
4153
  return /* @__PURE__ */ u(
4154
- U.div,
4154
+ W.div,
4155
4155
  {
4156
4156
  ...n,
4157
4157
  "data-slot": "loading-view",
@@ -4160,8 +4160,8 @@ function It({ message: e, className: a }) {
4160
4160
  "aria-busy": "true",
4161
4161
  className: E("ff:flex ff:flex-col ff:items-center ff:justify-center ff:py-12", a),
4162
4162
  children: [
4163
- /* @__PURE__ */ t("div", { className: E(co({ styleVariant: r })), children: /* @__PURE__ */ t(Te, { size: o }) }),
4164
- e && /* @__PURE__ */ t("p", { className: E(uo({ styleVariant: r })), children: e })
4163
+ /* @__PURE__ */ t("div", { className: E(uo({ styleVariant: r })), children: /* @__PURE__ */ t(Te, { size: o }) }),
4164
+ e && /* @__PURE__ */ t("p", { className: E(po({ styleVariant: r })), children: e })
4165
4165
  ]
4166
4166
  }
4167
4167
  );
@@ -4175,12 +4175,12 @@ function Ja({
4175
4175
  countdownTo: o,
4176
4176
  info: i,
4177
4177
  ctaLabel: f,
4178
- onStart: c,
4178
+ onStart: l,
4179
4179
  isLoading: g = !1,
4180
4180
  className: d
4181
4181
  }) {
4182
4182
  const { t: b } = K(), m = we();
4183
- return /* @__PURE__ */ t(U.div, { ...m, children: /* @__PURE__ */ u(Y, { className: E("fanfare-start-view", d), "data-slot": "start-view", children: [
4183
+ return /* @__PURE__ */ t(W.div, { ...m, children: /* @__PURE__ */ u(Y, { className: E("fanfare-start-view", d), "data-slot": "start-view", children: [
4184
4184
  /* @__PURE__ */ t(
4185
4185
  G,
4186
4186
  {
@@ -4192,11 +4192,11 @@ function Ja({
4192
4192
  ),
4193
4193
  /* @__PURE__ */ u(Z, { children: [
4194
4194
  o ? /* @__PURE__ */ u("div", { className: "ff:flex ff:flex-col ff:items-start ff:gap-1", children: [
4195
- /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: b("time.opensIn") }),
4195
+ /* @__PURE__ */ t("span", { className: "ff:text-xxs ff:font-medium ff:uppercase ff:tracking-widest ff:text-muted", children: b("duration.opensIn") }),
4196
4196
  /* @__PURE__ */ t(pe, { targetDate: o, showDays: !1 })
4197
4197
  ] }) : null,
4198
4198
  i ? /* @__PURE__ */ t(ie, { children: i }) : null,
4199
- /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: c, disabled: g, loading: g, children: f ?? b("start.cta") })
4199
+ /* @__PURE__ */ t(j, { className: "ff:mt-auto ff:w-full", onClick: l, disabled: g, loading: g, children: f ?? b("start.cta") })
4200
4200
  ] }),
4201
4201
  /* @__PURE__ */ t(H, {})
4202
4202
  ] }) });
@@ -4211,8 +4211,8 @@ function Qa({
4211
4211
  isLeaving: i = !1,
4212
4212
  className: f
4213
4213
  }) {
4214
- const { t: c } = K(), g = e ?? c("waitlist.enteredTitle"), d = a ?? c("waitlist.enteredDescription"), b = c("time.opensIn"), m = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), v = we();
4215
- return /* @__PURE__ */ t(U.div, { ...v, children: /* @__PURE__ */ u(Y, { className: E("fanfare-waitlist-view", f), "data-slot": "waitlist-view", children: [
4214
+ const { t: l } = K(), g = e ?? l("waitlist.entered.title"), d = a ?? l("waitlist.entered.description"), b = l("duration.opensIn"), m = s.useMemo(() => r ? r instanceof Date ? r : new Date(r) : null, [r]), v = we();
4215
+ return /* @__PURE__ */ t(W.div, { ...v, children: /* @__PURE__ */ u(Y, { className: E("fanfare-waitlist-view", f), "data-slot": "waitlist-view", children: [
4216
4216
  /* @__PURE__ */ t(G, { variant: "success", title: g, description: d }),
4217
4217
  /* @__PURE__ */ u(Z, { children: [
4218
4218
  m && /* @__PURE__ */ u(ie, { children: [
@@ -4222,7 +4222,7 @@ function Qa({
4222
4222
  {
4223
4223
  targetDate: m,
4224
4224
  onComplete: n,
4225
- expiredLabel: c("countdown.startingSoon")
4225
+ expiredLabel: l("duration.startingSoon")
4226
4226
  }
4227
4227
  )
4228
4228
  ] }),
@@ -4234,7 +4234,7 @@ function Qa({
4234
4234
  onClick: o,
4235
4235
  disabled: i,
4236
4236
  loading: i,
4237
- children: c("waitlist.leave")
4237
+ children: l("waitlist.leave")
4238
4238
  }
4239
4239
  )
4240
4240
  ] }),
@@ -4243,34 +4243,34 @@ function Qa({
4243
4243
  }
4244
4244
  Qa.displayName = "WaitlistView";
4245
4245
  function Xa({ open: e, invalid: a, submitting: r, onOpen: n, onClose: o, onSubmit: i }) {
4246
- const { t: f } = K(), [c, g] = ve(""), d = () => {
4246
+ const { t: f } = K(), [l, g] = ve(""), d = () => {
4247
4247
  g(""), n();
4248
4248
  };
4249
4249
  return e ? /* @__PURE__ */ u("div", { className: "fanfare-upgrade-offer", "data-slot": "upgrade-offer", children: [
4250
4250
  /* @__PURE__ */ u("form", { className: "fanfare-upgrade-offer__form", onSubmit: (m) => {
4251
- m.preventDefault(), !(!c.trim() || r) && i(c.trim());
4251
+ m.preventDefault(), !(!l.trim() || r) && i(l.trim());
4252
4252
  }, children: [
4253
4253
  /* @__PURE__ */ t(
4254
4254
  "input",
4255
4255
  {
4256
4256
  className: "fanfare-upgrade-offer__input",
4257
4257
  type: "text",
4258
- value: c,
4258
+ value: l,
4259
4259
  onChange: (m) => g(m.target.value),
4260
4260
  placeholder: f("upgradeOffer.placeholder"),
4261
4261
  autoFocus: !0,
4262
4262
  disabled: r
4263
4263
  }
4264
4264
  ),
4265
- /* @__PURE__ */ t("button", { type: "submit", className: "fanfare-upgrade-offer__submit", disabled: r || !c.trim(), children: f(r ? "upgradeOffer.submitting" : "upgradeOffer.submit") }),
4266
- /* @__PURE__ */ t("button", { type: "button", className: "fanfare-upgrade-offer__cancel", onClick: o, disabled: r, children: f("common.cancel") })
4265
+ /* @__PURE__ */ t("button", { type: "submit", className: "fanfare-upgrade-offer__submit", disabled: r || !l.trim(), children: f(r ? "upgradeOffer.submitting" : "upgradeOffer.submit") }),
4266
+ /* @__PURE__ */ t("button", { type: "button", className: "fanfare-upgrade-offer__cancel", onClick: o, disabled: r, children: f("action.cancel") })
4267
4267
  ] }),
4268
4268
  a && !r ? /* @__PURE__ */ t("p", { className: "fanfare-upgrade-offer__error", children: f("upgradeOffer.invalid") }) : null
4269
4269
  ] }) : /* @__PURE__ */ t("div", { className: "fanfare-upgrade-offer", "data-slot": "upgrade-offer", children: /* @__PURE__ */ t("button", { type: "button", className: "fanfare-upgrade-offer__link", onClick: d, children: f("upgradeOffer.prompt") }) });
4270
4270
  }
4271
4271
  Xa.displayName = "UpgradeOffer";
4272
- const po = qe({});
4273
- function go(e) {
4272
+ const go = qe({});
4273
+ function mo(e) {
4274
4274
  return "mechanism" in e && e.mechanism === "auction" && "bid" in e;
4275
4275
  }
4276
4276
  function Ee(e) {
@@ -4279,36 +4279,36 @@ function Ee(e) {
4279
4279
  function va(e) {
4280
4280
  return Ee(e);
4281
4281
  }
4282
- function mo(e) {
4282
+ function ho(e) {
4283
4283
  return e?.phase === "enterable" && Ee(e.mechanism);
4284
4284
  }
4285
- function ho(e) {
4285
+ function wo(e) {
4286
4286
  return e?.phase === "participating" && Ee(e.mechanism);
4287
4287
  }
4288
- function wo(e) {
4288
+ function vo(e) {
4289
4289
  return e?.phase === "granted";
4290
4290
  }
4291
4291
  function St(e) {
4292
4292
  return e?.journeyStage === "routed" ? e.sequence : void 0;
4293
4293
  }
4294
- function vo(e, a) {
4294
+ function bo(e, a) {
4295
4295
  const r = St(e);
4296
4296
  return r && "mechanism" in r && va(r.mechanism) ? r.mechanism : a?.phase === "participating" && "consumer" in a && "mechanism" in a.consumer && va(a.consumer.mechanism) ? a.consumer.mechanism : null;
4297
4297
  }
4298
- function bo(e) {
4298
+ function xo(e) {
4299
4299
  const a = St(e);
4300
4300
  if (!(!a || !("distribution" in a)))
4301
4301
  return a.distribution;
4302
4302
  }
4303
- function xo(e) {
4303
+ function yo(e) {
4304
4304
  const a = St(e);
4305
4305
  if (!(!a || !("consumer" in a)))
4306
4306
  return a.consumer;
4307
4307
  }
4308
- function yo(e, a) {
4308
+ function ko(e, a) {
4309
4309
  return e ? "distributionId" in e && typeof e.distributionId == "string" && e.distributionId ? e.distributionId : e.id ?? a ?? null : a ?? null;
4310
4310
  }
4311
- function ko({
4311
+ function _o({
4312
4312
  experienceId: e,
4313
4313
  autoStart: a = !1,
4314
4314
  accessCode: r,
@@ -4316,34 +4316,39 @@ function ko({
4316
4316
  theme: o,
4317
4317
  variant: i,
4318
4318
  slots: f,
4319
- children: c,
4319
+ children: l,
4320
4320
  checkoutUrl: g,
4321
4321
  onJourneyChange: d,
4322
4322
  onGranted: b,
4323
4323
  onError: m,
4324
4324
  className: v
4325
4325
  }) {
4326
- const w = Nt(), { t: y } = K(), C = B((k, _) => y(k, _), [y]), { journey: l, view: h, snapshot: p, fanfareError: D, start: V } = Sa(e, {
4326
+ const h = Nt(), { t: x } = K(), C = B((k, _) => x(k, _), [x]), { journey: c, view: w, snapshot: p, fanfareError: D, start: V } = Sa(e, {
4327
4327
  autoStart: a,
4328
4328
  accessCode: r,
4329
4329
  autoEnterWaitlist: n
4330
- }), [T, x] = s.useState(!1), [N, S] = s.useState(!1), [M, A] = s.useState(!1), [I, O] = s.useState(!1), [$, fe] = s.useState(!1), [ce, L] = s.useState(null), [J, ne] = s.useState(!1), [se, de] = s.useState(!1), [ee, P] = s.useState(!1), ae = h?.journeyStage ?? null, me = h?.journeyStage === "routed" ? h : void 0, ke = me?.offers.some((k) => k.gates.some((_) => _.type === "access_code")) ?? !1, Re = h?.journeyStage === "routed" ? ke || J : h?.journeyStage === "routing" && J, ue = St(p), q = ue?.phase ?? me?.sequence.phase ?? null, _e = ce, Ne = _e ? ra(_e, C) : null, st = p?.experience?.experience?.theme, Ue = o ?? st, lt = i ?? o?.variant ?? st?.variant, xe = X(() => p ? xa(p) : [], [p]);
4330
+ }), [T, y] = s.useState(!1), [N, S] = s.useState(!1), [M, A] = s.useState(!1), [I, O] = s.useState(!1), [$, fe] = s.useState(!1), [ce, L] = s.useState(null), [J, ne] = s.useState(!1), [se, de] = s.useState(!1), [ee, P] = s.useState(!1), te = w?.journeyStage ?? null, me = w?.journeyStage === "routed" ? w : void 0, _e = me?.offers.some((k) => k.gates.some((_) => _.type === "access_code")) ?? !1, Re = w?.journeyStage === "routed" ? _e || J : w?.journeyStage === "routing" && J, ue = St(p), q = ue?.phase ?? me?.sequence.phase ?? null, Ne = ce, xe = Ne ? ra(Ne, C) : null, st = p?.experience?.experience?.theme, We = o ?? st, lt = i ?? o?.variant ?? st?.variant, ye = X(() => p ? xa(p) : [], [p]);
4331
4331
  s.useEffect(() => {
4332
4332
  p && d && d(p);
4333
4333
  }, [p, d]), s.useEffect(() => {
4334
- _e && m && m(_e);
4335
- }, [_e, m]);
4334
+ Ne && m && m(Ne);
4335
+ }, [Ne, m]);
4336
4336
  const F = B(
4337
4337
  (k) => {
4338
- const _ = mt(k), { disposition: R } = wr(_.code, _.status, _.action), ye = l?.view$.get();
4339
- if (R === "RESTART" && (ye?.journeyStage === "gated" || ye?.journeyStage === "routed")) {
4340
- m?.(_), ye.reroute().catch((he) => L(mt(he)));
4338
+ const _ = mt(k);
4339
+ if (_.quietable) {
4340
+ L(null), m?.(_);
4341
+ return;
4342
+ }
4343
+ const { disposition: R } = vr(_.code, _.status, _.action), ke = c?.view$.get();
4344
+ if (R === "RESTART" && (ke?.journeyStage === "gated" || ke?.journeyStage === "routed")) {
4345
+ m?.(_), ke.reroute().catch((he) => L(mt(he)));
4341
4346
  return;
4342
4347
  }
4343
4348
  L(_);
4344
4349
  },
4345
- [l, m]
4346
- ), je = B(
4350
+ [c, m]
4351
+ ), ze = B(
4347
4352
  (k) => {
4348
4353
  const _ = mt(k), R = ra(_, C);
4349
4354
  throw R.disposition === "INLINE" || R.disposition === "STEP_RESET" ? m?.(_) : F(_), new Error(R.description);
@@ -4358,34 +4363,34 @@ function ko({
4358
4363
  D !== Fe.current && (Fe.current = D, F(D));
4359
4364
  }, [D, F]);
4360
4365
  const Le = B(async () => {
4361
- x(!0), L(null);
4366
+ y(!0), L(null);
4362
4367
  try {
4363
4368
  await V();
4364
4369
  } catch {
4365
4370
  } finally {
4366
- x(!1);
4371
+ y(!1);
4367
4372
  }
4368
4373
  }, [V]), [Ae, He] = s.useState(null), ct = B(
4369
4374
  async (k, _) => {
4370
4375
  L(null);
4371
4376
  try {
4372
- _ === "email" ? await w.auth.requestOtp({ email: k }) : await w.auth.requestOtp({ phone: k }), He({ value: k, type: _ });
4377
+ _ === "email" ? await h.auth.requestOtp({ email: k }) : await h.auth.requestOtp({ phone: k }), He({ value: k, type: _ });
4373
4378
  } catch (R) {
4374
- je(R);
4379
+ ze(R);
4375
4380
  }
4376
4381
  },
4377
- [je, w]
4382
+ [ze, h]
4378
4383
  ), dt = B(
4379
4384
  async (k) => {
4380
- if (!l || !Ae) return;
4385
+ if (!c || !Ae) return;
4381
4386
  L(null);
4382
4387
  try {
4383
- Ae.type === "email" ? await w.auth.verifyOtp({ email: Ae.value, code: k }) : await w.auth.verifyOtp({ phone: Ae.value, code: k });
4388
+ Ae.type === "email" ? await h.auth.verifyOtp({ email: Ae.value, code: k }) : await h.auth.verifyOtp({ phone: Ae.value, code: k });
4384
4389
  } catch (R) {
4385
- je(R);
4390
+ ze(R);
4386
4391
  }
4387
4392
  He(null);
4388
- const _ = l.view$.get();
4393
+ const _ = c.view$.get();
4389
4394
  if (_.journeyStage === "gated")
4390
4395
  try {
4391
4396
  await _.reroute();
@@ -4393,26 +4398,26 @@ function ko({
4393
4398
  F(R);
4394
4399
  }
4395
4400
  },
4396
- [je, F, w, l, Ae]
4401
+ [ze, F, h, c, Ae]
4397
4402
  ), Ke = B(
4398
4403
  async (k) => {
4399
- if (l) {
4404
+ if (c) {
4400
4405
  L(null);
4401
4406
  try {
4402
- const _ = l.view$.get();
4407
+ const _ = c.view$.get();
4403
4408
  _.journeyStage === "gated" && await _.reroute({ accessCode: k });
4404
4409
  } catch (_) {
4405
4410
  F(_);
4406
4411
  }
4407
4412
  }
4408
4413
  },
4409
- [F, l]
4410
- ), W = B(
4414
+ [F, c]
4415
+ ), U = B(
4411
4416
  async (k) => {
4412
- if (l) {
4417
+ if (c) {
4413
4418
  P(!0), de(!1);
4414
4419
  try {
4415
- const _ = l.view$.get();
4420
+ const _ = c.view$.get();
4416
4421
  if (_.journeyStage !== "routed") return;
4417
4422
  switch ((await _.submitAccessCode(k)).outcome) {
4418
4423
  case "advanced":
@@ -4432,36 +4437,36 @@ function ko({
4432
4437
  }
4433
4438
  }
4434
4439
  },
4435
- [F, l]
4440
+ [F, c]
4436
4441
  ), Se = B(async () => {
4437
- if (l) {
4442
+ if (c) {
4438
4443
  S(!0), L(null);
4439
4444
  try {
4440
- const k = l.view$.get();
4441
- k.journeyStage === "routed" && k.sequence.phase === "scheduled" && await k.sequence.waitlist?.join();
4445
+ const k = c.view$.get();
4446
+ k.journeyStage === "routed" && k.sequence.phase === "scheduled" && await k.waitlist?.join();
4442
4447
  } catch (k) {
4443
4448
  F(k);
4444
4449
  } finally {
4445
4450
  S(!1);
4446
4451
  }
4447
4452
  }
4448
- }, [F, l]), Pe = B(async () => {
4449
- if (l) {
4453
+ }, [F, c]), Pe = B(async () => {
4454
+ if (c) {
4450
4455
  A(!0), L(null);
4451
4456
  try {
4452
- const k = l.view$.get();
4453
- k.journeyStage === "routed" && k.sequence.phase === "scheduled" && await k.sequence.waitlist?.leave();
4457
+ const k = c.view$.get();
4458
+ k.journeyStage === "routed" && k.sequence.phase === "scheduled" && await k.waitlist?.leave();
4454
4459
  } catch (k) {
4455
4460
  F(k);
4456
4461
  } finally {
4457
4462
  A(!1);
4458
4463
  }
4459
4464
  }
4460
- }, [F, l]), Ze = B(async () => {
4461
- if (!l) return;
4462
- const k = l.view$.get();
4465
+ }, [F, c]), Ze = B(async () => {
4466
+ if (!c) return;
4467
+ const k = c.view$.get();
4463
4468
  k.journeyStage === "routed" && k.sequence.phase === "enterable" && "enter" in k.sequence && await k.sequence.enter();
4464
- }, [l]), De = B(async () => {
4469
+ }, [c]), De = B(async () => {
4465
4470
  O(!0), L(null);
4466
4471
  try {
4467
4472
  await Ze();
@@ -4471,10 +4476,10 @@ function ko({
4471
4476
  O(!1);
4472
4477
  }
4473
4478
  }, [Ze, F]), Ve = B(async () => {
4474
- if (l) {
4479
+ if (c) {
4475
4480
  fe(!0), L(null);
4476
4481
  try {
4477
- const k = l.view$.get();
4482
+ const k = c.view$.get();
4478
4483
  k.journeyStage === "routed" && k.sequence.phase === "participating" && "leave" in k.sequence && await k.sequence.leave();
4479
4484
  } catch (k) {
4480
4485
  F(k);
@@ -4482,35 +4487,35 @@ function ko({
4482
4487
  fe(!1);
4483
4488
  }
4484
4489
  }
4485
- }, [F, l]), er = B(async () => {
4486
- if (l) {
4490
+ }, [F, c]), er = B(async () => {
4491
+ if (c) {
4487
4492
  L(null);
4488
4493
  try {
4489
- const k = l.view$.get();
4494
+ const k = c.view$.get();
4490
4495
  k.journeyStage === "routed" && k.sequence.phase === "participating" && "complete" in k.sequence && await k.sequence.complete();
4491
4496
  } catch (k) {
4492
4497
  F(k);
4493
4498
  }
4494
4499
  }
4495
- }, [F, l]), $t = B(
4500
+ }, [F, c]), $t = B(
4496
4501
  async (k) => {
4497
- if (l) {
4502
+ if (c) {
4498
4503
  L(null);
4499
4504
  try {
4500
- const _ = l.view$.get();
4501
- _.journeyStage === "routed" && go(_.sequence) && await _.sequence.bid(k);
4505
+ const _ = c.view$.get();
4506
+ _.journeyStage === "routed" && mo(_.sequence) && await _.sequence.bid(k);
4502
4507
  } catch (_) {
4503
4508
  F(_);
4504
4509
  }
4505
4510
  }
4506
4511
  },
4507
- [F, l]
4508
- ), [tr, qt] = s.useState(!1), [ar, Wt] = s.useState(!1), [rr, Ut] = s.useState(!1), Ht = B(
4512
+ [F, c]
4513
+ ), [tr, qt] = s.useState(!1), [ar, Ut] = s.useState(!1), [rr, Wt] = s.useState(!1), Ht = B(
4509
4514
  async (k, _) => {
4510
- if (l) {
4515
+ if (c) {
4511
4516
  L(null), qt(!0);
4512
4517
  try {
4513
- const R = l.view$.get();
4518
+ const R = c.view$.get();
4514
4519
  R.journeyStage === "routed" && R.sequence.phase === "enterable" && "book" in R.sequence && await R.sequence.book(k, _);
4515
4520
  } catch (R) {
4516
4521
  F(R);
@@ -4519,77 +4524,77 @@ function ko({
4519
4524
  }
4520
4525
  }
4521
4526
  },
4522
- [F, l]
4527
+ [F, c]
4523
4528
  ), Kt = B(
4524
4529
  async (k) => {
4525
- if (l) {
4526
- L(null), Wt(!0);
4530
+ if (c) {
4531
+ L(null), Ut(!0);
4527
4532
  try {
4528
- const _ = l.view$.get();
4533
+ const _ = c.view$.get();
4529
4534
  _.journeyStage === "routed" && _.sequence.phase === "participating" && "cancel" in _.sequence && await _.sequence.cancel(k);
4530
4535
  } catch (_) {
4531
4536
  F(_);
4532
4537
  } finally {
4533
- Wt(!1);
4538
+ Ut(!1);
4534
4539
  }
4535
4540
  }
4536
4541
  },
4537
- [F, l]
4542
+ [F, c]
4538
4543
  ), Zt = B(
4539
4544
  async (k, _) => {
4540
- if (l) {
4541
- L(null), Ut(!0);
4545
+ if (c) {
4546
+ L(null), Wt(!0);
4542
4547
  try {
4543
- const R = l.view$.get();
4548
+ const R = c.view$.get();
4544
4549
  R.journeyStage === "routed" && R.sequence.phase === "participating" && "reschedule" in R.sequence && await R.sequence.reschedule(k, _);
4545
4550
  } catch (R) {
4546
4551
  F(R);
4547
4552
  } finally {
4548
- Ut(!1);
4553
+ Wt(!1);
4549
4554
  }
4550
4555
  }
4551
4556
  },
4552
- [F, l]
4557
+ [F, c]
4553
4558
  ), Ye = B(async () => {
4554
4559
  await Le();
4555
4560
  }, [Le]), Yt = B(
4556
4561
  async (k) => {
4557
- if (l) {
4562
+ if (c) {
4558
4563
  L(null);
4559
4564
  try {
4560
- const _ = xe.find((ye) => ye.type === "bot_check");
4561
- _?.type === "bot_check" && _.challenge && await w.challenges.verify({ challengeId: _.challenge.id, token: k });
4562
- const R = l.view$.get();
4565
+ const _ = ye.find((ke) => ke.type === "bot_check");
4566
+ _?.type === "bot_check" && _.challenge && await h.challenges.verify({ challengeId: _.challenge.id, token: k });
4567
+ const R = c.view$.get();
4563
4568
  R.journeyStage === "gated" && await R.reroute();
4564
4569
  } catch (_) {
4565
4570
  F(_);
4566
4571
  }
4567
4572
  }
4568
4573
  },
4569
- [F, w, l, xe]
4574
+ [F, h, c, ye]
4570
4575
  ), Gt = B(() => {
4571
- if (!l) return;
4576
+ if (!c) return;
4572
4577
  L(null);
4573
- const k = l.view$.get();
4578
+ const k = c.view$.get();
4574
4579
  k.journeyStage === "gated" && k.retry().catch(F);
4575
- }, [F, l]), z = X(() => h?.journeyStage === "routed" && "sequence" in h ? h.sequence : void 0, [h]), Ge = X(() => z?.phase === "scheduled" ? z.waitlist : void 0, [z]), Ce = vo(p, z), oe = bo(p), nr = xo(p), Jt = yo(nr, oe?.id), Ie = ue && "grant" in ue && ue.grant ? ue.grant : void 0, Je = ue && "outcome" in ue && ue.outcome ? ue.outcome : void 0;
4580
+ }, [F, c]), z = X(() => w?.journeyStage === "routed" && "sequence" in w ? w.sequence : void 0, [w]), Ge = X(() => z?.phase === "scheduled" && w?.journeyStage === "routed" ? w.waitlist : void 0, [z, w]), Ce = bo(p, z), oe = xo(p), nr = yo(p), Jt = ko(nr, oe?.id), Ie = ue && "grant" in ue && ue.grant ? ue.grant : void 0, Je = ue && "outcome" in ue && ue.outcome ? ue.outcome : void 0;
4576
4581
  s.useEffect(() => {
4577
4582
  Ie?.token && b && b(Ie.token);
4578
4583
  }, [Ie?.token, b]);
4579
4584
  const or = X(() => Ee(Ce) ? Ce : Ee(oe?.type) ? oe.type : null, [oe?.type, Ce]), Ct = X(() => Ee(Ce) ? Ce : null, [Ce]), Qt = X(() => Ee(Ce) ? Ce : Ee(oe?.type) ? oe.type : null, [oe?.type, Ce]), Xt = X(() => Ge?.status === "not_waitlisted" && typeof Ge.join == "function", [Ge]), Qe = X(() => {
4580
- if (ae === "routing") return "loading";
4581
- if (ae === "gated" && xe.length > 0) {
4582
- const k = xe[0];
4585
+ if (te === "routing") return "loading";
4586
+ if (te === "gated" && ye.length > 0) {
4587
+ const k = ye[0];
4583
4588
  if (k.type === "authentication") return "auth";
4584
4589
  if (k.type === "access_code") return "access_code";
4585
4590
  }
4586
4591
  return "none";
4587
- }, [ae, xe]), ut = X(() => {
4588
- if (ae === "routing") return y("experience.findingPlace");
4589
- }, [ae, y]), Be = X(() => {
4590
- if (!(!l || q !== "participating" || !z || z.phase !== "participating" || !("display$" in z)))
4592
+ }, [te, ye]), ut = X(() => {
4593
+ if (te === "routing") return x("loading.findingPlace");
4594
+ }, [te, x]), Be = X(() => {
4595
+ if (!(!c || q !== "participating" || !z || z.phase !== "participating" || !("display$" in z)))
4591
4596
  return z.display$;
4592
- }, [l, q, z]), pt = ze(Be ?? po), ea = X(() => {
4597
+ }, [c, q, z]), pt = je(Be ?? go), fr = p?.degraded === !0 && te === "routed" && !xe, ea = X(() => {
4593
4598
  const k = oe?.details?.type === "auction" ? oe.details : void 0, _ = z?.phase === "participating" && z.mechanism === "auction" ? z.consumer : void 0, R = pt;
4594
4599
  if (!(!k && !_ && !R))
4595
4600
  return {
@@ -4602,23 +4607,23 @@ function ko({
4602
4607
  minNextBid: R?.minNextBid ?? k?.minNextBid,
4603
4608
  bidIncrement: R?.bidIncrement ?? k?.bidIncrement
4604
4609
  };
4605
- }, [pt, z, oe?.details]), Oe = X(() => z?.phase === "scheduled" && z.startsAt ? new Date(z.startsAt) : oe?.opensAt ? new Date(oe.opensAt) : void 0, [z, oe?.opensAt]), fr = X(() => {
4610
+ }, [pt, z, oe?.details]), Oe = X(() => z?.phase === "scheduled" && z.startsAt ? new Date(z.startsAt) : oe?.opensAt ? new Date(oe.opensAt) : void 0, [z, oe?.opensAt]), ir = X(() => {
4606
4611
  if (!(q !== "participating" || Ct !== "queue"))
4607
4612
  return pt?.position;
4608
4613
  }, [pt, Ct, q]);
4609
- if (c)
4610
- return /* @__PURE__ */ t(Rt, { theme: Ue, variant: lt, children: /* @__PURE__ */ t("div", { className: E("fanfare-experience-widget", v), "data-slot": "experience-widget", children: c({
4611
- journey: l,
4612
- view: h,
4614
+ if (l)
4615
+ return /* @__PURE__ */ t(Rt, { theme: We, variant: lt, children: /* @__PURE__ */ t("div", { className: E("fanfare-experience-widget", v), "data-slot": "experience-widget", children: l({
4616
+ journey: c,
4617
+ view: w,
4613
4618
  snapshot: p,
4614
- error: Ne?.description ?? null,
4619
+ error: xe?.description ?? null,
4615
4620
  start: Le,
4616
4621
  isStarting: T
4617
4622
  }) }) });
4618
- const le = { snapshot: p, view: h, error: Ne?.description ?? null }, ir = () => {
4619
- if (Ne)
4620
- return f?.error ? f.error({ ...le, error: Ne.description, onRetry: Ye }) : /* @__PURE__ */ t(et, { error: Ne.description, title: Ne.title, onRetry: Ye });
4621
- if (ae === "ready")
4623
+ const le = { snapshot: p, view: w, error: xe?.description ?? null }, sr = () => {
4624
+ if (xe)
4625
+ return f?.error ? f.error({ ...le, error: xe.description, onRetry: Ye }) : /* @__PURE__ */ t(et, { error: xe.description, title: xe.title, onRetry: Ye });
4626
+ if (te === "ready")
4622
4627
  return f?.start ? f.start({ ...le, onStart: Le, isStarting: T }) : /* @__PURE__ */ t(Ja, { onStart: Le, isLoading: T });
4623
4628
  if (Qe !== "none")
4624
4629
  return Qe === "auth" && f?.auth ? f.auth({
@@ -4638,8 +4643,8 @@ function ko({
4638
4643
  onAccessCodeSubmit: Ke
4639
4644
  }
4640
4645
  );
4641
- if (ae === "gated" && xe[0]?.type === "bot_check") {
4642
- const k = xe[0], _ = k.challenge ?? null, R = k.mitigation;
4646
+ if (te === "gated" && ye[0]?.type === "bot_check") {
4647
+ const k = ye[0], _ = k.challenge ?? null, R = k.mitigation;
4643
4648
  return f?.challenge ? f.challenge({
4644
4649
  ...le,
4645
4650
  challenge: _,
@@ -4647,7 +4652,7 @@ function ko({
4647
4652
  onVerifyToken: Yt,
4648
4653
  onRetry: Gt
4649
4654
  }) : /* @__PURE__ */ t(
4650
- ja,
4655
+ za,
4651
4656
  {
4652
4657
  challenge: _,
4653
4658
  botMitigation: R,
@@ -4657,12 +4662,12 @@ function ko({
4657
4662
  }
4658
4663
  );
4659
4664
  }
4660
- if (ae === "routed") {
4665
+ if (te === "routed") {
4661
4666
  if (q === "unavailable")
4662
4667
  return f?.ended ? f.ended({
4663
4668
  ...le,
4664
4669
  reason: z?.phase === "unavailable" ? z.reason ?? "unavailable" : "unavailable"
4665
- }) : /* @__PURE__ */ t(Fa, { title: y("experience.noSequenceTitle"), message: y("experience.noSequenceMessage") });
4670
+ }) : /* @__PURE__ */ t(Fa, { title: x("widget.noSequence.title"), message: x("widget.noSequence.message") });
4666
4671
  if (q === "scheduled")
4667
4672
  return Ge && Ge.status !== "not_waitlisted" ? f?.waitlist ? f.waitlist({
4668
4673
  ...le,
@@ -4685,19 +4690,19 @@ function ko({
4685
4690
  }
4686
4691
  );
4687
4692
  if (q === "enterable" || q === "participating") {
4688
- const k = q === "enterable" ? or : Ct, _ = q === "participating" ? Jt : oe?.id, R = z?.phase === "enterable" && "enter" in z && typeof z.enter == "function", ye = z?.phase === "participating" && "leave" in z;
4689
- if (q === "enterable" && f?.enterable && mo(z))
4693
+ const k = q === "enterable" ? or : Ct, _ = q === "participating" ? Jt : oe?.id, R = z?.phase === "enterable" && "enter" in z && typeof z.enter == "function", ke = z?.phase === "participating" && "leave" in z;
4694
+ if (q === "enterable" && f?.enterable && ho(z))
4690
4695
  return f.enterable({
4691
4696
  ...le,
4692
4697
  sequence: z,
4693
4698
  participationType: z.mechanism
4694
4699
  });
4695
- if (q === "participating" && f?.participating && ho(z))
4700
+ if (q === "participating" && f?.participating && wo(z))
4696
4701
  return f.participating({
4697
4702
  ...le,
4698
4703
  sequence: z,
4699
4704
  participationType: z.mechanism,
4700
- position: fr
4705
+ position: ir
4701
4706
  });
4702
4707
  const he = oe?.details;
4703
4708
  if (_)
@@ -4710,7 +4715,7 @@ function ko({
4710
4715
  display$: Be,
4711
4716
  sequencePhase: q,
4712
4717
  canEnter: R,
4713
- canLeave: ye,
4718
+ canLeave: ke,
4714
4719
  onEnter: De,
4715
4720
  onLeave: Ve,
4716
4721
  isEntering: I,
@@ -4727,7 +4732,7 @@ function ko({
4727
4732
  display$: Be,
4728
4733
  sequencePhase: q,
4729
4734
  canEnter: R,
4730
- canLeave: ye,
4735
+ canLeave: ke,
4731
4736
  onEnter: De,
4732
4737
  onLeave: Ve,
4733
4738
  isEntering: I,
@@ -4745,7 +4750,7 @@ function ko({
4745
4750
  fallbackState: ea,
4746
4751
  sequencePhase: q,
4747
4752
  canEnter: R,
4748
- canLeave: ye,
4753
+ canLeave: ke,
4749
4754
  onEnter: De,
4750
4755
  onLeave: Ve,
4751
4756
  onBid: $t,
@@ -4765,7 +4770,7 @@ function ko({
4765
4770
  display$: Be,
4766
4771
  sequencePhase: q,
4767
4772
  canEnter: R,
4768
- canLeave: ye,
4773
+ canLeave: ke,
4769
4774
  onEnter: De,
4770
4775
  onLeave: Ve,
4771
4776
  onComplete: er,
@@ -4800,7 +4805,7 @@ function ko({
4800
4805
  );
4801
4806
  }
4802
4807
  }
4803
- return /* @__PURE__ */ t(et, { error: y("experience.unsupportedDistribution"), onRetry: Ye });
4808
+ return /* @__PURE__ */ t(et, { error: x("widget.unsupportedDistribution"), onRetry: Ye });
4804
4809
  }
4805
4810
  if (q === "settling") {
4806
4811
  if (z?.phase !== "settling")
@@ -4849,7 +4854,7 @@ function ko({
4849
4854
  }
4850
4855
  if (q === "granted") {
4851
4856
  const k = Ie?.expiresAt ? new Date(Ie.expiresAt).getTime() : void 0;
4852
- if (f?.granted && wo(z))
4857
+ if (f?.granted && vo(z))
4853
4858
  return f.granted({
4854
4859
  ...le,
4855
4860
  sequence: z,
@@ -4878,7 +4883,7 @@ function ko({
4878
4883
  case "timed_release":
4879
4884
  return /* @__PURE__ */ t(vt, { ..._ });
4880
4885
  }
4881
- return /* @__PURE__ */ t(et, { error: y("experience.unsupportedDistribution"), onRetry: Ye });
4886
+ return /* @__PURE__ */ t(et, { error: x("widget.unsupportedDistribution"), onRetry: Ye });
4882
4887
  }
4883
4888
  if (q === "ended") {
4884
4889
  const k = Je?.type ?? (z?.phase === "ended" ? z.outcome.reason : void 0) ?? "unknown";
@@ -4931,13 +4936,22 @@ function ko({
4931
4936
  }
4932
4937
  );
4933
4938
  }
4934
- return /* @__PURE__ */ t(et, { error: y("experience.unsupportedDistribution"), onRetry: Ye });
4939
+ return /* @__PURE__ */ t(et, { error: x("widget.unsupportedDistribution"), onRetry: Ye });
4935
4940
  }
4936
4941
  }
4937
4942
  return f?.loading ? f.loading({ ...le, message: ut }) : /* @__PURE__ */ t(It, { message: ut });
4938
- }, sr = `${ae ?? "loading"}-${q ?? "unavailable"}`;
4939
- return /* @__PURE__ */ t(Rt, { theme: Ue, variant: lt, children: /* @__PURE__ */ u("div", { className: E("fanfare-experience-widget", v), "data-slot": "experience-widget", children: [
4940
- /* @__PURE__ */ t(rt, { transitionKey: sr, children: ir() }),
4943
+ }, lr = `${te ?? "loading"}-${q ?? "unavailable"}`;
4944
+ return /* @__PURE__ */ t(Rt, { theme: We, variant: lt, children: /* @__PURE__ */ u("div", { className: E("fanfare-experience-widget", v), "data-slot": "experience-widget", children: [
4945
+ /* @__PURE__ */ t(rt, { transitionKey: lr, children: sr() }),
4946
+ fr ? /* @__PURE__ */ t(
4947
+ "div",
4948
+ {
4949
+ className: "fanfare-degraded-indicator ff:mt-3 ff:text-center ff:text-xs ff:text-muted",
4950
+ "data-slot": "degraded-indicator",
4951
+ role: "status",
4952
+ children: x("status.liveUpdatesPaused")
4953
+ }
4954
+ ) : null,
4941
4955
  Re ? /* @__PURE__ */ t(
4942
4956
  Xa,
4943
4957
  {
@@ -4950,14 +4964,14 @@ function ko({
4950
4964
  onClose: () => {
4951
4965
  de(!1), ne(!1);
4952
4966
  },
4953
- onSubmit: W
4967
+ onSubmit: U
4954
4968
  }
4955
4969
  ) : null
4956
4970
  ] }) });
4957
4971
  }
4958
- ko.displayName = "ExperienceWidget";
4959
- const _o = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ff-font-sans:"Inter",system-ui,sans-serif;--ff-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ff-color-neutral-50:oklch(98.5% 0 0);--ff-color-neutral-200:oklch(92.2% 0 0);--ff-color-neutral-300:oklch(87% 0 0);--ff-color-neutral-500:oklch(55.6% 0 0);--ff-color-white:#fff;--ff-spacing:.25rem;--ff-container-sm:24rem;--ff-text-xs:.75rem;--ff-text-xs--line-height:calc(1/.75);--ff-text-sm:.875rem;--ff-text-sm--line-height:calc(1.25/.875);--ff-text-base:1rem;--ff-text-base--line-height: 1.5 ;--ff-text-lg:1.125rem;--ff-text-lg--line-height:calc(1.75/1.125);--ff-text-xl:1.25rem;--ff-text-xl--line-height:calc(1.75/1.25);--ff-text-2xl:1.5rem;--ff-text-2xl--line-height:calc(2/1.5);--ff-text-3xl:1.875rem;--ff-text-3xl--line-height: 1.2 ;--ff-text-4xl:2.25rem;--ff-text-4xl--line-height:calc(2.5/2.25);--ff-font-weight-extralight:200;--ff-font-weight-light:300;--ff-font-weight-normal:400;--ff-font-weight-medium:500;--ff-font-weight-semibold:600;--ff-font-weight-bold:700;--ff-font-weight-extrabold:800;--ff-font-weight-black:900;--ff-tracking-tight:-.025em;--ff-tracking-normal:0em;--ff-tracking-wide:.025em;--ff-tracking-wider:.05em;--ff-tracking-widest:.1em;--ff-leading-tight:1.25;--ff-radius-md:.375rem;--ff-radius-lg:.5rem;--ff-radius-xl:.75rem;--ff-radius-2xl:1rem;--ff-radius-3xl:1.5rem;--ff-ease-out:cubic-bezier(0,0,.2,1);--ff-animate-spin:spin 1s linear infinite;--ff-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ff-default-transition-duration:.15s;--ff-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ff-default-font-family:var(--ff-font-sans);--ff-default-mono-font-family:var(--ff-font-mono);--ff-color-primary:#1d1f27;--ff-color-primary-foreground:#fff;--ff-color-secondary:#f4f4f5;--ff-color-background:#fff;--ff-color-surface:transparent;--ff-color-surface-foreground:#1d1f27;--ff-color-foreground:#1d1f27;--ff-color-muted:#4b4e56cc;--ff-color-muted-foreground:#4b4e5699;--ff-color-border:#4b4e5666;--ff-color-success:oklch(77% .18 130);--ff-color-success-foreground:#111;--ff-color-warning:oklch(72% .18 65);--ff-color-warning-foreground:#111;--ff-color-danger:oklch(63% .24 25);--ff-color-danger-foreground:#fff;--ff-font-heading:"Inter",system-ui,sans-serif;--ff-text-xxs:.625rem;--ff-text-xxs--line-height:.875rem;--ff-animate-fade-in:fade-in .2s ease-out;--ff-animate-fade-out:fade-out .2s ease-out;--ff-animate-slide-in:slide-in .2s ease-out;--ff-animate-slide-out:slide-out .2s ease-out;--ff-animate-scale-in:scale-in .2s ease-out;--ff-animate-scale-out:scale-out .2s ease-out;--ff-animate-accordion-down:accordion-down .2s ease-out;--ff-animate-accordion-up:accordion-up .2s ease-out;--ff-animate-celebration:celebration-bounce .6s ease-out;--ff-animate-shake:shake .5s ease-out;--ff-animate-pulse-success:pulse-success 1s ease-out}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ff-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ff-default-font-feature-settings,normal);font-variation-settings:var(--ff-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ff-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ff-default-mono-font-feature-settings,normal);font-variation-settings:var(--ff-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fanfare-root{color:var(--ff-color-foreground);background-color:var(--ff-color-surface);font-family:var(--ff-font-sans)}.fanfare-root *,.fanfare-root :after,.fanfare-root :before,.fanfare-root ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root button:not(:disabled),.fanfare-root [role=button]:not(:disabled){cursor:pointer}@media(prefers-reduced-motion:reduce){.fanfare-root *,.fanfare-root :before,.fanfare-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.ff\\:pointer-events-none{pointer-events:none}.ff\\:absolute{position:absolute}.ff\\:relative{position:relative}.ff\\:inset-0{inset:calc(var(--ff-spacing)*0)}.ff\\:top-1\\/2{top:50%}.ff\\:top-3{top:calc(var(--ff-spacing)*3)}.ff\\:right-2{right:calc(var(--ff-spacing)*2)}.ff\\:left-3{left:calc(var(--ff-spacing)*3)}.ff\\:z-10{z-index:10}.ff\\:-mx-1{margin-inline:calc(var(--ff-spacing)*-1)}.ff\\:mx-2{margin-inline:calc(var(--ff-spacing)*2)}.ff\\:-mt-0\\.5{margin-top:calc(var(--ff-spacing)*-.5)}.ff\\:mt-0\\.5{margin-top:calc(var(--ff-spacing)*.5)}.ff\\:mt-1{margin-top:calc(var(--ff-spacing)*1)}.ff\\:mt-3{margin-top:calc(var(--ff-spacing)*3)}.ff\\:mt-4{margin-top:calc(var(--ff-spacing)*4)}.ff\\:mt-auto{margin-top:auto}.ff\\:mb-1\\.5{margin-bottom:calc(var(--ff-spacing)*1.5)}.ff\\:mb-2{margin-bottom:calc(var(--ff-spacing)*2)}.ff\\:mb-4{margin-bottom:calc(var(--ff-spacing)*4)}.ff\\:mb-6{margin-bottom:calc(var(--ff-spacing)*6)}.ff\\:block{display:block}.ff\\:flex{display:flex}.ff\\:grid{display:grid}.ff\\:inline-block{display:inline-block}.ff\\:inline-flex{display:inline-flex}.ff\\:size-1{width:calc(var(--ff-spacing)*1);height:calc(var(--ff-spacing)*1)}.ff\\:size-1\\.5{width:calc(var(--ff-spacing)*1.5);height:calc(var(--ff-spacing)*1.5)}.ff\\:size-4{width:calc(var(--ff-spacing)*4);height:calc(var(--ff-spacing)*4)}.ff\\:size-5{width:calc(var(--ff-spacing)*5);height:calc(var(--ff-spacing)*5)}.ff\\:size-6{width:calc(var(--ff-spacing)*6);height:calc(var(--ff-spacing)*6)}.ff\\:size-8{width:calc(var(--ff-spacing)*8);height:calc(var(--ff-spacing)*8)}.ff\\:size-10{width:calc(var(--ff-spacing)*10);height:calc(var(--ff-spacing)*10)}.ff\\:h-0\\.5{height:calc(var(--ff-spacing)*.5)}.ff\\:h-1{height:calc(var(--ff-spacing)*1)}.ff\\:h-2{height:calc(var(--ff-spacing)*2)}.ff\\:h-2\\.5{height:calc(var(--ff-spacing)*2.5)}.ff\\:h-3{height:calc(var(--ff-spacing)*3)}.ff\\:h-4{height:calc(var(--ff-spacing)*4)}.ff\\:h-4\\.5{height:calc(var(--ff-spacing)*4.5)}.ff\\:h-5{height:calc(var(--ff-spacing)*5)}.ff\\:h-6{height:calc(var(--ff-spacing)*6)}.ff\\:h-8{height:calc(var(--ff-spacing)*8)}.ff\\:h-10{height:calc(var(--ff-spacing)*10)}.ff\\:h-12{height:calc(var(--ff-spacing)*12)}.ff\\:h-14{height:calc(var(--ff-spacing)*14)}.ff\\:h-16{height:calc(var(--ff-spacing)*16)}.ff\\:h-20{height:calc(var(--ff-spacing)*20)}.ff\\:h-32{height:calc(var(--ff-spacing)*32)}.ff\\:h-\\[480px\\]{height:480px}.ff\\:h-auto{height:auto}.ff\\:h-full{height:100%}.ff\\:max-h-44{max-height:calc(var(--ff-spacing)*44)}.ff\\:max-h-\\[24rem\\]{max-height:24rem}.ff\\:w-1\\/2{width:50%}.ff\\:w-1\\/3{width:33.3333%}.ff\\:w-2\\/3{width:66.6667%}.ff\\:w-3\\/4{width:75%}.ff\\:w-5\\/6{width:83.3333%}.ff\\:w-6{width:calc(var(--ff-spacing)*6)}.ff\\:w-9{width:calc(var(--ff-spacing)*9)}.ff\\:w-10{width:calc(var(--ff-spacing)*10)}.ff\\:w-12{width:calc(var(--ff-spacing)*12)}.ff\\:w-14{width:calc(var(--ff-spacing)*14)}.ff\\:w-16{width:calc(var(--ff-spacing)*16)}.ff\\:w-20{width:calc(var(--ff-spacing)*20)}.ff\\:w-40{width:calc(var(--ff-spacing)*40)}.ff\\:w-72{width:calc(var(--ff-spacing)*72)}.ff\\:w-80{width:calc(var(--ff-spacing)*80)}.ff\\:w-auto{width:auto}.ff\\:w-full{width:100%}.ff\\:max-w-sm{max-width:var(--ff-container-sm)}.ff\\:min-w-0{min-width:calc(var(--ff-spacing)*0)}.ff\\:flex-1{flex:1}.ff\\:shrink-0{flex-shrink:0}.ff\\:origin-center{transform-origin:50%}.ff\\:origin-top-left{transform-origin:0 0}.ff\\:-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:-translate-y-2{--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:animate-\\[skeleton-shimmer_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-shimmer}.ff\\:animate-\\[skeleton-slide_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-slide}.ff\\:animate-\\[spin_1\\.2s_cubic-bezier\\(0\\.4\\,0\\,0\\.6\\,1\\)_infinite\\]{animation:1.2s cubic-bezier(.4,0,.6,1) infinite spin}.ff\\:animate-\\[spin_1\\.8s_linear_infinite\\]{animation:1.8s linear infinite spin}.ff\\:animate-accordion-down{animation:var(--ff-animate-accordion-down)}.ff\\:animate-accordion-up{animation:var(--ff-animate-accordion-up)}.ff\\:animate-celebration{animation:var(--ff-animate-celebration)}.ff\\:animate-fade-in{animation:var(--ff-animate-fade-in)}.ff\\:animate-fade-out{animation:var(--ff-animate-fade-out)}.ff\\:animate-none{animation:none}.ff\\:animate-pulse{animation:var(--ff-animate-pulse)}.ff\\:animate-pulse-success{animation:var(--ff-animate-pulse-success)}.ff\\:animate-scale-in{animation:var(--ff-animate-scale-in)}.ff\\:animate-scale-out{animation:var(--ff-animate-scale-out)}.ff\\:animate-shake{animation:var(--ff-animate-shake)}.ff\\:animate-slide-in{animation:var(--ff-animate-slide-in)}.ff\\:animate-slide-out{animation:var(--ff-animate-slide-out)}.ff\\:animate-spin{animation:var(--ff-animate-spin)}.ff\\:cursor-not-allowed{cursor:not-allowed}.ff\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff\\:flex-col{flex-direction:column}.ff\\:flex-row{flex-direction:row}.ff\\:flex-wrap{flex-wrap:wrap}.ff\\:items-baseline{align-items:baseline}.ff\\:items-center{align-items:center}.ff\\:items-start{align-items:flex-start}.ff\\:justify-between{justify-content:space-between}.ff\\:justify-center{justify-content:center}.ff\\:gap-0\\.5{gap:calc(var(--ff-spacing)*.5)}.ff\\:gap-1{gap:calc(var(--ff-spacing)*1)}.ff\\:gap-1\\.5{gap:calc(var(--ff-spacing)*1.5)}.ff\\:gap-2{gap:calc(var(--ff-spacing)*2)}.ff\\:gap-3{gap:calc(var(--ff-spacing)*3)}.ff\\:gap-4{gap:calc(var(--ff-spacing)*4)}.ff\\:gap-5{gap:calc(var(--ff-spacing)*5)}.ff\\:gap-6{gap:calc(var(--ff-spacing)*6)}.ff\\:gap-10{gap:calc(var(--ff-spacing)*10)}.ff\\:gap-12{gap:calc(var(--ff-spacing)*12)}:where(.ff\\:space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.ff\\:self-end{align-self:flex-end}.ff\\:overflow-hidden{overflow:hidden}.ff\\:overflow-visible{overflow:visible}.ff\\:overflow-x-auto{overflow-x:auto}.ff\\:overflow-y-auto{overflow-y:auto}.ff\\:rounded{border-radius:.25rem}.ff\\:rounded-2xl{border-radius:var(--ff-radius-2xl)}.ff\\:rounded-3xl{border-radius:var(--ff-radius-3xl)}.ff\\:rounded-\\[8px\\]{border-radius:8px}.ff\\:rounded-\\[10px\\]{border-radius:10px}.ff\\:rounded-\\[14px\\]{border-radius:14px}.ff\\:rounded-full{border-radius:3.40282e38px}.ff\\:rounded-lg{border-radius:var(--ff-radius-lg)}.ff\\:rounded-md{border-radius:var(--ff-radius-md)}.ff\\:rounded-none{border-radius:0}.ff\\:rounded-xl{border-radius:var(--ff-radius-xl)}.ff\\:border{border-style:var(--tw-border-style);border-width:1px}.ff\\:border-0{border-style:var(--tw-border-style);border-width:0}.ff\\:border-2{border-style:var(--tw-border-style);border-width:2px}.ff\\:border-3{border-style:var(--tw-border-style);border-width:3px}.ff\\:border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.ff\\:border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.ff\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ff\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ff\\:border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.ff\\:border-none{--tw-border-style:none;border-style:none}.ff\\:border-border,.ff\\:border-border\\/40{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/40{border-color:color-mix(in oklab,var(--ff-color-border)40%,transparent)}}.ff\\:border-border\\/50{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/50{border-color:color-mix(in oklab,var(--ff-color-border)50%,transparent)}}.ff\\:border-danger,.ff\\:border-danger\\/50{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-danger\\/50{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:border-foreground,.ff\\:border-foreground\\/8{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/8{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-foreground\\/12{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/12{border-color:color-mix(in oklab,var(--ff-color-foreground)12%,transparent)}}.ff\\:border-foreground\\/20{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/20{border-color:color-mix(in oklab,var(--ff-color-foreground)20%,transparent)}}.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-neutral-200{border-color:var(--ff-color-neutral-200)}.ff\\:border-primary{border-color:var(--ff-color-primary)}.ff\\:border-transparent{border-color:#0000}.ff\\:border-b-danger{border-bottom-color:var(--ff-color-danger)}.ff\\:bg-\\[\\#ff3a00\\]{background-color:#ff3a00}.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:color-mix(in oklch,var(--ff-color-foreground)3%,var(--ff-color-background))}}.ff\\:bg-background,.ff\\:bg-background\\/60{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/60{background-color:color-mix(in oklab,var(--ff-color-background)60%,transparent)}}.ff\\:bg-background\\/70{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/70{background-color:color-mix(in oklab,var(--ff-color-background)70%,transparent)}}.ff\\:bg-danger,.ff\\:bg-danger\\/10{background-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-danger\\/10{background-color:color-mix(in oklab,var(--ff-color-danger)10%,transparent)}}.ff\\:bg-foreground\\/5{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ff-color-foreground)5%,transparent)}}.ff\\:bg-foreground\\/40{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/40{background-color:color-mix(in oklab,var(--ff-color-foreground)40%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)10%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:bg-muted\\/5{background-color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-muted\\/5{background-color:color-mix(in oklab,var(--ff-color-muted)5%,transparent)}}.ff\\:bg-neutral-50{background-color:var(--ff-color-neutral-50)}.ff\\:bg-primary{background-color:var(--ff-color-primary)}.ff\\:bg-primary-foreground{background-color:var(--ff-color-primary-foreground)}.ff\\:bg-primary\\/5{background-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-primary\\/5{background-color:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:bg-secondary{background-color:var(--ff-color-secondary)}.ff\\:bg-success,.ff\\:bg-success\\/10{background-color:var(--ff-color-success)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-success\\/10{background-color:color-mix(in oklab,var(--ff-color-success)10%,transparent)}}.ff\\:bg-transparent{background-color:#0000}.ff\\:bg-warning,.ff\\:bg-warning\\/10{background-color:var(--ff-color-warning)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-warning\\/10{background-color:color-mix(in oklab,var(--ff-color-warning)10%,transparent)}}.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.ff\\:bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.ff\\:from-primary\\/10{--tw-gradient-from:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:from-primary\\/10{--tw-gradient-from:color-mix(in oklab,var(--ff-color-primary)10%,transparent)}}.ff\\:from-primary\\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:to-primary\\/5{--tw-gradient-to:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:to-primary\\/5{--tw-gradient-to:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:to-primary\\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:\\[background-size\\:200\\%_100\\%\\]{background-size:200% 100%}.ff\\:p-0{padding:calc(var(--ff-spacing)*0)}.ff\\:p-4{padding:calc(var(--ff-spacing)*4)}.ff\\:p-5{padding:calc(var(--ff-spacing)*5)}.ff\\:p-6{padding:calc(var(--ff-spacing)*6)}.ff\\:p-8{padding:calc(var(--ff-spacing)*8)}.ff\\:px-0{padding-inline:calc(var(--ff-spacing)*0)}.ff\\:px-2{padding-inline:calc(var(--ff-spacing)*2)}.ff\\:px-2\\.5{padding-inline:calc(var(--ff-spacing)*2.5)}.ff\\:px-3{padding-inline:calc(var(--ff-spacing)*3)}.ff\\:px-4{padding-inline:calc(var(--ff-spacing)*4)}.ff\\:px-5{padding-inline:calc(var(--ff-spacing)*5)}.ff\\:px-6{padding-inline:calc(var(--ff-spacing)*6)}.ff\\:py-0\\.5{padding-block:calc(var(--ff-spacing)*.5)}.ff\\:py-1{padding-block:calc(var(--ff-spacing)*1)}.ff\\:py-1\\.5{padding-block:calc(var(--ff-spacing)*1.5)}.ff\\:py-2{padding-block:calc(var(--ff-spacing)*2)}.ff\\:py-2\\.5{padding-block:calc(var(--ff-spacing)*2.5)}.ff\\:py-3{padding-block:calc(var(--ff-spacing)*3)}.ff\\:py-4{padding-block:calc(var(--ff-spacing)*4)}.ff\\:py-12{padding-block:calc(var(--ff-spacing)*12)}.ff\\:pt-2{padding-top:calc(var(--ff-spacing)*2)}.ff\\:pt-3{padding-top:calc(var(--ff-spacing)*3)}.ff\\:pt-5{padding-top:calc(var(--ff-spacing)*5)}.ff\\:pb-0\\.5{padding-bottom:calc(var(--ff-spacing)*.5)}.ff\\:pb-1{padding-bottom:calc(var(--ff-spacing)*1)}.ff\\:pb-2{padding-bottom:calc(var(--ff-spacing)*2)}.ff\\:pb-8{padding-bottom:calc(var(--ff-spacing)*8)}.ff\\:text-center{text-align:center}.ff\\:text-right{text-align:right}.ff\\:font-heading{font-family:var(--ff-font-heading)}.ff\\:font-mono{font-family:var(--ff-font-mono)}.ff\\:text-2xl{font-size:var(--ff-text-2xl);line-height:var(--tw-leading,var(--ff-text-2xl--line-height))}.ff\\:text-3xl{font-size:var(--ff-text-3xl);line-height:var(--tw-leading,var(--ff-text-3xl--line-height))}.ff\\:text-4xl{font-size:var(--ff-text-4xl);line-height:var(--tw-leading,var(--ff-text-4xl--line-height))}.ff\\:text-base{font-size:var(--ff-text-base);line-height:var(--tw-leading,var(--ff-text-base--line-height))}.ff\\:text-lg{font-size:var(--ff-text-lg);line-height:var(--tw-leading,var(--ff-text-lg--line-height))}.ff\\:text-sm{font-size:var(--ff-text-sm);line-height:var(--tw-leading,var(--ff-text-sm--line-height))}.ff\\:text-xl{font-size:var(--ff-text-xl);line-height:var(--tw-leading,var(--ff-text-xl--line-height))}.ff\\:text-xs{font-size:var(--ff-text-xs);line-height:var(--tw-leading,var(--ff-text-xs--line-height))}.ff\\:text-xxs{font-size:var(--ff-text-xxs);line-height:var(--tw-leading,var(--ff-text-xxs--line-height))}.ff\\:text-\\[2rem\\]{font-size:2rem}.ff\\:text-\\[10\\.5px\\]{font-size:10.5px}.ff\\:text-\\[52px\\]{font-size:52px}.ff\\:leading-none{--tw-leading:1;line-height:1}.ff\\:leading-tight{--tw-leading:var(--ff-leading-tight);line-height:var(--ff-leading-tight)}.ff\\:font-black{--tw-font-weight:var(--ff-font-weight-black);font-weight:var(--ff-font-weight-black)}.ff\\:font-bold{--tw-font-weight:var(--ff-font-weight-bold);font-weight:var(--ff-font-weight-bold)}.ff\\:font-extrabold{--tw-font-weight:var(--ff-font-weight-extrabold);font-weight:var(--ff-font-weight-extrabold)}.ff\\:font-extralight{--tw-font-weight:var(--ff-font-weight-extralight);font-weight:var(--ff-font-weight-extralight)}.ff\\:font-light{--tw-font-weight:var(--ff-font-weight-light);font-weight:var(--ff-font-weight-light)}.ff\\:font-medium{--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:font-normal{--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:font-semibold{--tw-font-weight:var(--ff-font-weight-semibold);font-weight:var(--ff-font-weight-semibold)}.ff\\:tracking-\\[-0\\.025em\\]{--tw-tracking:-.025em;letter-spacing:-.025em}.ff\\:tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.ff\\:tracking-\\[0\\.08em\\]{--tw-tracking:.08em;letter-spacing:.08em}.ff\\:tracking-\\[0\\.15em\\]{--tw-tracking:.15em;letter-spacing:.15em}.ff\\:tracking-normal{--tw-tracking:var(--ff-tracking-normal);letter-spacing:var(--ff-tracking-normal)}.ff\\:tracking-tight{--tw-tracking:var(--ff-tracking-tight);letter-spacing:var(--ff-tracking-tight)}.ff\\:tracking-wide{--tw-tracking:var(--ff-tracking-wide);letter-spacing:var(--ff-tracking-wide)}.ff\\:tracking-wider{--tw-tracking:var(--ff-tracking-wider);letter-spacing:var(--ff-tracking-wider)}.ff\\:tracking-widest{--tw-tracking:var(--ff-tracking-widest);letter-spacing:var(--ff-tracking-widest)}.ff\\:whitespace-nowrap{white-space:nowrap}.ff\\:text-current{color:currentColor}.ff\\:text-danger{color:var(--ff-color-danger)}.ff\\:text-danger-foreground{color:var(--ff-color-danger-foreground)}.ff\\:text-foreground,.ff\\:text-foreground\\/80{color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-foreground\\/80{color:color-mix(in oklab,var(--ff-color-foreground)80%,transparent)}}.ff\\:text-muted{color:var(--ff-color-muted)}.ff\\:text-muted-foreground{color:var(--ff-color-muted-foreground)}.ff\\:text-muted\\/60{color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-muted\\/60{color:color-mix(in oklab,var(--ff-color-muted)60%,transparent)}}.ff\\:text-neutral-300{color:var(--ff-color-neutral-300)}.ff\\:text-neutral-500{color:var(--ff-color-neutral-500)}.ff\\:text-primary{color:var(--ff-color-primary)}.ff\\:text-primary-foreground{color:var(--ff-color-primary-foreground)}.ff\\:text-success{color:var(--ff-color-success)}.ff\\:text-success-foreground{color:var(--ff-color-success-foreground)}.ff\\:text-warning{color:var(--ff-color-warning)}.ff\\:text-warning-foreground{color:var(--ff-color-warning-foreground)}.ff\\:text-white{color:var(--ff-color-white)}.ff\\:uppercase{text-transform:uppercase}.ff\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.ff\\:accent-foreground{accent-color:var(--ff-color-foreground)}.ff\\:opacity-0{opacity:0}.ff\\:opacity-25{opacity:.25}.ff\\:opacity-40{opacity:.4}.ff\\:opacity-50{opacity:.5}.ff\\:opacity-60{opacity:.6}.ff\\:opacity-80{opacity:.8}.ff\\:shadow-\\[0_0_10px_-2px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 0 10px -2px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\,0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0000000a),0 8px 24px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0_0_12px_-6px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014),0 0 12px -6px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[3px_3px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:3px 3px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_-3px_0_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--tw-shadow:inset 0 -3px 0 var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.ff\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ff\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ff\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ff\\:ease-out{--tw-ease:var(--ff-ease-out);transition-timing-function:var(--ff-ease-out)}.ff\\:outline-none{--tw-outline-style:none;outline-style:none}.ff\\:select-none{-webkit-user-select:none;user-select:none}.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,var(--ff-color-foreground)0%,var(--ff-color-foreground)50%,var(--ff-color-foreground)100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,color-mix(in oklch,var(--ff-color-foreground)6%,transparent),color-mix(in oklch,var(--ff-color-foreground)10%,transparent),color-mix(in oklch,var(--ff-color-foreground)6%,transparent))}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,var(--ff-color-foreground)20%,var(--ff-color-foreground)80%,transparent 100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)20%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)80%,transparent 100%)}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),var(--ff-color-primary))}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),color-mix(in oklch,var(--ff-color-primary)80%,white))}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,var(--ff-color-primary)8px,var(--ff-color-primary)16px)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)16px)}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-secondary\\)\\,var\\(--ff-color-secondary\\)_4px\\,var\\(--ff-color-surface\\)_4px\\,var\\(--ff-color-surface\\)_8px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-secondary),var(--ff-color-secondary)4px,var(--ff-color-surface)4px,var(--ff-color-surface)8px)}.ff\\:\\[scrollbar-width\\:none\\]{scrollbar-width:none}.ff\\:duration-100{animation-duration:.1s}.ff\\:duration-150{animation-duration:.15s}.ff\\:duration-200{animation-duration:.2s}.ff\\:duration-300{animation-duration:.3s}.ff\\:ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.ff\\:peer-placeholder-shown\\:translate-y-0:is(:where(.ff\\:peer):placeholder-shown~*){--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-placeholder-shown\\:scale-100:is(:where(.ff\\:peer):placeholder-shown~*){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-placeholder-shown\\:font-normal:is(:where(.ff\\:peer):placeholder-shown~*){--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:peer-placeholder-shown\\:text-muted:is(:where(.ff\\:peer):placeholder-shown~*){color:var(--ff-color-muted)}.ff\\:peer-focus\\:-translate-y-2:is(:where(.ff\\:peer):focus~*){--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-focus\\:scale-75:is(:where(.ff\\:peer):focus~*){--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-focus\\:font-medium:is(:where(.ff\\:peer):focus~*){--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:peer-focus\\:text-danger:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-danger)}.ff\\:peer-focus\\:text-primary:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-primary)}.ff\\:peer-disabled\\:text-muted:is(:where(.ff\\:peer):disabled~*){color:var(--ff-color-muted)}.ff\\:peer-disabled\\:opacity-50:is(:where(.ff\\:peer):disabled~*){opacity:.5}.ff\\:placeholder\\:text-muted::placeholder{color:var(--ff-color-muted)}.ff\\:placeholder\\:opacity-0::placeholder{opacity:0}.ff\\:placeholder\\:transition-opacity::placeholder{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:placeholder\\:duration-200::placeholder{--tw-duration:.2s;transition-duration:.2s;animation-duration:.2s}.ff\\:last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.ff\\:last\\:pb-0:last-child{padding-bottom:calc(var(--ff-spacing)*0)}@media(hover:hover){.ff\\:hover\\:-translate-x-0\\.5:hover{--tw-translate-x:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-x-0:hover{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-y-0:hover{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:border-foreground:hover{border-color:var(--ff-color-foreground)}.ff\\:hover\\:bg-secondary:hover{background-color:var(--ff-color-secondary)}.ff\\:hover\\:underline:hover{text-decoration-line:underline}.ff\\:hover\\:opacity-90:hover{opacity:.9}.ff\\:hover\\:shadow-\\[0_4px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]:hover{--tw-shadow:0 4px 16px -4px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-none:hover{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.ff\\:focus\\:border-danger:focus,.ff\\:focus\\:border-danger\\/50:focus{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-danger\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:focus\\:border-primary:focus,.ff\\:focus\\:border-primary\\/50:focus{border-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-primary\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-primary)50%,transparent)}}.ff\\:focus\\:border-b-danger:focus{border-bottom-color:var(--ff-color-danger)}.ff\\:focus\\:border-b-primary:focus{border-bottom-color:var(--ff-color-primary)}.ff\\:focus\\:bg-background:focus{background-color:var(--ff-color-background)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-danger-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-danger-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-primary-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-primary-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-none:focus{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-danger:focus,.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-danger)20%,transparent)}}.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-primary)20%,transparent)}}.ff\\:focus\\:placeholder\\:opacity-100:focus::placeholder{opacity:1}.ff\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus-visible\\:ring-border:focus-visible{--tw-ring-color:var(--ff-color-border)}.ff\\:focus-visible\\:ring-danger:focus-visible{--tw-ring-color:var(--ff-color-danger)}.ff\\:focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--ff-color-primary)}.ff\\:focus-visible\\:ring-secondary:focus-visible{--tw-ring-color:var(--ff-color-secondary)}.ff\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ff\\:active\\:translate-x-0:active{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-x-0\\.5:active{--tw-translate-x:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0\\.5:active{--tw-translate-y:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]:active{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]:active{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-none:active{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ff\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.ff\\:disabled\\:opacity-35:disabled{opacity:.35}.ff\\:disabled\\:opacity-50:disabled{opacity:.5}.ff\\:\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden::-webkit-scrollbar{display:none}.ff\\:\\[\\&\\>\\*\\]\\:min-h-0>*{min-height:calc(var(--ff-spacing)*0)}.ff\\:\\[\\&\\>\\*\\]\\:flex-1>*{flex:1}.fanfare-text-balance{text-wrap:balance}.fanfare-text-pretty{text-wrap:pretty}}[data-fanfare-variant=default]{--ff-variant:"default"}[data-fanfare-variant=retro]{--ff-variant:"retro";--ff-color-background:#f4f1ea;--ff-color-foreground:#000;--ff-color-muted:#444;--ff-color-muted-foreground:#444;--ff-color-border:#000;--ff-font-sans:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-heading:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}[data-fanfare-variant=rounded]{--ff-variant:"rounded"}[data-fanfare-variant=clean]{--ff-variant:"clean";--ff-color-background:#fff;--ff-color-foreground:#0a0a0a;--ff-color-muted:#737373;--ff-color-muted-foreground:#737373;--ff-color-border:#e8e8e8;--ff-font-sans:"Figtree",system-ui,sans-serif;--ff-font-heading:"Figtree",system-ui,sans-serif;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.5rem)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes celebration-bounce{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}75%{transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes pulse-success{0%{box-shadow:0 0 0 0 var(--ff-color-success,#22c55e)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-slide{0%{background-position:-100% 0}to{background-position:200% 0}}', No = '@theme{ --color-primary: #1d1f27; --color-primary-foreground: #ffffff; --color-secondary: #f4f4f5; --color-background: #ffffff; --color-surface: transparent; --color-surface-foreground: #1d1f27; --color-foreground: #1d1f27; --color-muted: #4b4e56cc; --color-muted-foreground: #4b4e5699; --color-border: #4b4e5666; --color-success: oklch(.77 .18 130); --color-success-foreground: #111111; --color-warning: oklch(.72 .18 65); --color-warning-foreground: #111111; --color-danger: oklch(.63 .24 25); --color-danger-foreground: #ffffff; --font-sans: "Inter", system-ui, sans-serif; --font-heading: "Inter", system-ui, sans-serif; --text-xxs: .625rem; --text-xxs--line-height: .875rem; }[data-fanfare-variant=default]{--ff-variant: "default"}[data-fanfare-variant=retro]{--ff-variant: "retro";--ff-color-background: #f4f1ea;--ff-color-foreground: #000000;--ff-color-muted: #444444;--ff-color-muted-foreground: #444444;--ff-color-border: #000000;--ff-font-sans: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-heading: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}[data-fanfare-variant=rounded]{--ff-variant: "rounded"}[data-fanfare-variant=clean]{--ff-variant: "clean";--ff-color-background: #ffffff;--ff-color-foreground: #0a0a0a;--ff-color-muted: #737373;--ff-color-muted-foreground: #737373;--ff-color-border: #e8e8e8;--ff-font-sans: "Figtree", system-ui, sans-serif;--ff-font-heading: "Figtree", system-ui, sans-serif;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@layer base{.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop,.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}}';
4960
- function So({
4972
+ _o.displayName = "ExperienceWidget";
4973
+ const No = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ff-font-sans:"Inter",system-ui,sans-serif;--ff-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ff-color-neutral-50:oklch(98.5% 0 0);--ff-color-neutral-200:oklch(92.2% 0 0);--ff-color-neutral-300:oklch(87% 0 0);--ff-color-neutral-500:oklch(55.6% 0 0);--ff-color-white:#fff;--ff-spacing:.25rem;--ff-container-sm:24rem;--ff-text-xs:.75rem;--ff-text-xs--line-height:calc(1/.75);--ff-text-sm:.875rem;--ff-text-sm--line-height:calc(1.25/.875);--ff-text-base:1rem;--ff-text-base--line-height: 1.5 ;--ff-text-lg:1.125rem;--ff-text-lg--line-height:calc(1.75/1.125);--ff-text-xl:1.25rem;--ff-text-xl--line-height:calc(1.75/1.25);--ff-text-2xl:1.5rem;--ff-text-2xl--line-height:calc(2/1.5);--ff-text-3xl:1.875rem;--ff-text-3xl--line-height: 1.2 ;--ff-text-4xl:2.25rem;--ff-text-4xl--line-height:calc(2.5/2.25);--ff-font-weight-extralight:200;--ff-font-weight-light:300;--ff-font-weight-normal:400;--ff-font-weight-medium:500;--ff-font-weight-semibold:600;--ff-font-weight-bold:700;--ff-font-weight-extrabold:800;--ff-font-weight-black:900;--ff-tracking-tight:-.025em;--ff-tracking-normal:0em;--ff-tracking-wide:.025em;--ff-tracking-wider:.05em;--ff-tracking-widest:.1em;--ff-leading-tight:1.25;--ff-radius-md:.375rem;--ff-radius-lg:.5rem;--ff-radius-xl:.75rem;--ff-radius-2xl:1rem;--ff-radius-3xl:1.5rem;--ff-ease-out:cubic-bezier(0,0,.2,1);--ff-animate-spin:spin 1s linear infinite;--ff-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ff-default-transition-duration:.15s;--ff-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ff-default-font-family:var(--ff-font-sans);--ff-default-mono-font-family:var(--ff-font-mono);--ff-color-primary:#1d1f27;--ff-color-primary-foreground:#fff;--ff-color-secondary:#f4f4f5;--ff-color-background:#fff;--ff-color-surface:transparent;--ff-color-surface-foreground:#1d1f27;--ff-color-foreground:#1d1f27;--ff-color-muted:#4b4e56cc;--ff-color-muted-foreground:#4b4e5699;--ff-color-border:#4b4e5666;--ff-color-success:oklch(77% .18 130);--ff-color-success-foreground:#111;--ff-color-warning:oklch(72% .18 65);--ff-color-warning-foreground:#111;--ff-color-danger:oklch(63% .24 25);--ff-color-danger-foreground:#fff;--ff-font-heading:"Inter",system-ui,sans-serif;--ff-text-xxs:.625rem;--ff-text-xxs--line-height:.875rem;--ff-animate-fade-in:fade-in .2s ease-out;--ff-animate-fade-out:fade-out .2s ease-out;--ff-animate-slide-in:slide-in .2s ease-out;--ff-animate-slide-out:slide-out .2s ease-out;--ff-animate-scale-in:scale-in .2s ease-out;--ff-animate-scale-out:scale-out .2s ease-out;--ff-animate-accordion-down:accordion-down .2s ease-out;--ff-animate-accordion-up:accordion-up .2s ease-out;--ff-animate-celebration:celebration-bounce .6s ease-out;--ff-animate-shake:shake .5s ease-out;--ff-animate-pulse-success:pulse-success 1s ease-out}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ff-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ff-default-font-feature-settings,normal);font-variation-settings:var(--ff-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ff-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ff-default-mono-font-feature-settings,normal);font-variation-settings:var(--ff-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fanfare-root{color:var(--ff-color-foreground);background-color:var(--ff-color-surface);font-family:var(--ff-font-sans)}.fanfare-root *,.fanfare-root :after,.fanfare-root :before,.fanfare-root ::backdrop{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-root button:not(:disabled),.fanfare-root [role=button]:not(:disabled){cursor:pointer}@media(prefers-reduced-motion:reduce){.fanfare-root *,.fanfare-root :before,.fanfare-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.ff\\:pointer-events-none{pointer-events:none}.ff\\:absolute{position:absolute}.ff\\:relative{position:relative}.ff\\:inset-0{inset:calc(var(--ff-spacing)*0)}.ff\\:top-1\\/2{top:50%}.ff\\:top-3{top:calc(var(--ff-spacing)*3)}.ff\\:right-2{right:calc(var(--ff-spacing)*2)}.ff\\:left-3{left:calc(var(--ff-spacing)*3)}.ff\\:z-10{z-index:10}.ff\\:-mx-1{margin-inline:calc(var(--ff-spacing)*-1)}.ff\\:mx-2{margin-inline:calc(var(--ff-spacing)*2)}.ff\\:-mt-0\\.5{margin-top:calc(var(--ff-spacing)*-.5)}.ff\\:mt-0\\.5{margin-top:calc(var(--ff-spacing)*.5)}.ff\\:mt-1{margin-top:calc(var(--ff-spacing)*1)}.ff\\:mt-3{margin-top:calc(var(--ff-spacing)*3)}.ff\\:mt-4{margin-top:calc(var(--ff-spacing)*4)}.ff\\:mt-auto{margin-top:auto}.ff\\:mb-1\\.5{margin-bottom:calc(var(--ff-spacing)*1.5)}.ff\\:mb-2{margin-bottom:calc(var(--ff-spacing)*2)}.ff\\:mb-4{margin-bottom:calc(var(--ff-spacing)*4)}.ff\\:mb-6{margin-bottom:calc(var(--ff-spacing)*6)}.ff\\:block{display:block}.ff\\:flex{display:flex}.ff\\:grid{display:grid}.ff\\:inline-block{display:inline-block}.ff\\:inline-flex{display:inline-flex}.ff\\:size-1{width:calc(var(--ff-spacing)*1);height:calc(var(--ff-spacing)*1)}.ff\\:size-1\\.5{width:calc(var(--ff-spacing)*1.5);height:calc(var(--ff-spacing)*1.5)}.ff\\:size-4{width:calc(var(--ff-spacing)*4);height:calc(var(--ff-spacing)*4)}.ff\\:size-5{width:calc(var(--ff-spacing)*5);height:calc(var(--ff-spacing)*5)}.ff\\:size-6{width:calc(var(--ff-spacing)*6);height:calc(var(--ff-spacing)*6)}.ff\\:size-8{width:calc(var(--ff-spacing)*8);height:calc(var(--ff-spacing)*8)}.ff\\:size-10{width:calc(var(--ff-spacing)*10);height:calc(var(--ff-spacing)*10)}.ff\\:h-0\\.5{height:calc(var(--ff-spacing)*.5)}.ff\\:h-1{height:calc(var(--ff-spacing)*1)}.ff\\:h-2{height:calc(var(--ff-spacing)*2)}.ff\\:h-2\\.5{height:calc(var(--ff-spacing)*2.5)}.ff\\:h-3{height:calc(var(--ff-spacing)*3)}.ff\\:h-4{height:calc(var(--ff-spacing)*4)}.ff\\:h-4\\.5{height:calc(var(--ff-spacing)*4.5)}.ff\\:h-5{height:calc(var(--ff-spacing)*5)}.ff\\:h-6{height:calc(var(--ff-spacing)*6)}.ff\\:h-8{height:calc(var(--ff-spacing)*8)}.ff\\:h-10{height:calc(var(--ff-spacing)*10)}.ff\\:h-12{height:calc(var(--ff-spacing)*12)}.ff\\:h-14{height:calc(var(--ff-spacing)*14)}.ff\\:h-16{height:calc(var(--ff-spacing)*16)}.ff\\:h-20{height:calc(var(--ff-spacing)*20)}.ff\\:h-32{height:calc(var(--ff-spacing)*32)}.ff\\:h-\\[480px\\]{height:480px}.ff\\:h-auto{height:auto}.ff\\:h-full{height:100%}.ff\\:max-h-44{max-height:calc(var(--ff-spacing)*44)}.ff\\:max-h-\\[24rem\\]{max-height:24rem}.ff\\:w-1\\/2{width:50%}.ff\\:w-1\\/3{width:33.3333%}.ff\\:w-2\\/3{width:66.6667%}.ff\\:w-3\\/4{width:75%}.ff\\:w-5\\/6{width:83.3333%}.ff\\:w-6{width:calc(var(--ff-spacing)*6)}.ff\\:w-9{width:calc(var(--ff-spacing)*9)}.ff\\:w-10{width:calc(var(--ff-spacing)*10)}.ff\\:w-12{width:calc(var(--ff-spacing)*12)}.ff\\:w-14{width:calc(var(--ff-spacing)*14)}.ff\\:w-16{width:calc(var(--ff-spacing)*16)}.ff\\:w-20{width:calc(var(--ff-spacing)*20)}.ff\\:w-40{width:calc(var(--ff-spacing)*40)}.ff\\:w-72{width:calc(var(--ff-spacing)*72)}.ff\\:w-80{width:calc(var(--ff-spacing)*80)}.ff\\:w-auto{width:auto}.ff\\:w-full{width:100%}.ff\\:max-w-sm{max-width:var(--ff-container-sm)}.ff\\:min-w-0{min-width:calc(var(--ff-spacing)*0)}.ff\\:flex-1{flex:1}.ff\\:shrink-0{flex-shrink:0}.ff\\:origin-center{transform-origin:50%}.ff\\:origin-top-left{transform-origin:0 0}.ff\\:-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:-translate-y-2{--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:animate-\\[skeleton-shimmer_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-shimmer}.ff\\:animate-\\[skeleton-slide_2s_ease-in-out_infinite\\]{animation:2s ease-in-out infinite skeleton-slide}.ff\\:animate-\\[spin_1\\.2s_cubic-bezier\\(0\\.4\\,0\\,0\\.6\\,1\\)_infinite\\]{animation:1.2s cubic-bezier(.4,0,.6,1) infinite spin}.ff\\:animate-\\[spin_1\\.8s_linear_infinite\\]{animation:1.8s linear infinite spin}.ff\\:animate-accordion-down{animation:var(--ff-animate-accordion-down)}.ff\\:animate-accordion-up{animation:var(--ff-animate-accordion-up)}.ff\\:animate-celebration{animation:var(--ff-animate-celebration)}.ff\\:animate-fade-in{animation:var(--ff-animate-fade-in)}.ff\\:animate-fade-out{animation:var(--ff-animate-fade-out)}.ff\\:animate-none{animation:none}.ff\\:animate-pulse{animation:var(--ff-animate-pulse)}.ff\\:animate-pulse-success{animation:var(--ff-animate-pulse-success)}.ff\\:animate-scale-in{animation:var(--ff-animate-scale-in)}.ff\\:animate-scale-out{animation:var(--ff-animate-scale-out)}.ff\\:animate-shake{animation:var(--ff-animate-shake)}.ff\\:animate-slide-in{animation:var(--ff-animate-slide-in)}.ff\\:animate-slide-out{animation:var(--ff-animate-slide-out)}.ff\\:animate-spin{animation:var(--ff-animate-spin)}.ff\\:cursor-not-allowed{cursor:not-allowed}.ff\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff\\:flex-col{flex-direction:column}.ff\\:flex-row{flex-direction:row}.ff\\:flex-wrap{flex-wrap:wrap}.ff\\:items-baseline{align-items:baseline}.ff\\:items-center{align-items:center}.ff\\:items-start{align-items:flex-start}.ff\\:justify-between{justify-content:space-between}.ff\\:justify-center{justify-content:center}.ff\\:gap-0\\.5{gap:calc(var(--ff-spacing)*.5)}.ff\\:gap-1{gap:calc(var(--ff-spacing)*1)}.ff\\:gap-1\\.5{gap:calc(var(--ff-spacing)*1.5)}.ff\\:gap-2{gap:calc(var(--ff-spacing)*2)}.ff\\:gap-3{gap:calc(var(--ff-spacing)*3)}.ff\\:gap-4{gap:calc(var(--ff-spacing)*4)}.ff\\:gap-5{gap:calc(var(--ff-spacing)*5)}.ff\\:gap-6{gap:calc(var(--ff-spacing)*6)}.ff\\:gap-10{gap:calc(var(--ff-spacing)*10)}.ff\\:gap-12{gap:calc(var(--ff-spacing)*12)}:where(.ff\\:space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.ff\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ff-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ff-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.ff\\:self-end{align-self:flex-end}.ff\\:overflow-hidden{overflow:hidden}.ff\\:overflow-visible{overflow:visible}.ff\\:overflow-x-auto{overflow-x:auto}.ff\\:overflow-y-auto{overflow-y:auto}.ff\\:rounded{border-radius:.25rem}.ff\\:rounded-2xl{border-radius:var(--ff-radius-2xl)}.ff\\:rounded-3xl{border-radius:var(--ff-radius-3xl)}.ff\\:rounded-\\[8px\\]{border-radius:8px}.ff\\:rounded-\\[10px\\]{border-radius:10px}.ff\\:rounded-\\[14px\\]{border-radius:14px}.ff\\:rounded-full{border-radius:3.40282e38px}.ff\\:rounded-lg{border-radius:var(--ff-radius-lg)}.ff\\:rounded-md{border-radius:var(--ff-radius-md)}.ff\\:rounded-none{border-radius:0}.ff\\:rounded-xl{border-radius:var(--ff-radius-xl)}.ff\\:border{border-style:var(--tw-border-style);border-width:1px}.ff\\:border-0{border-style:var(--tw-border-style);border-width:0}.ff\\:border-2{border-style:var(--tw-border-style);border-width:2px}.ff\\:border-3{border-style:var(--tw-border-style);border-width:3px}.ff\\:border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.ff\\:border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.ff\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ff\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ff\\:border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.ff\\:border-none{--tw-border-style:none;border-style:none}.ff\\:border-border,.ff\\:border-border\\/40{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/40{border-color:color-mix(in oklab,var(--ff-color-border)40%,transparent)}}.ff\\:border-border\\/50{border-color:var(--ff-color-border)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-border\\/50{border-color:color-mix(in oklab,var(--ff-color-border)50%,transparent)}}.ff\\:border-danger,.ff\\:border-danger\\/50{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-danger\\/50{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:border-foreground,.ff\\:border-foreground\\/8{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/8{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-foreground\\/12{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/12{border-color:color-mix(in oklab,var(--ff-color-foreground)12%,transparent)}}.ff\\:border-foreground\\/20{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/20{border-color:color-mix(in oklab,var(--ff-color-foreground)20%,transparent)}}.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:border-foreground\\/\\[0\\.08\\]{border-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:border-neutral-200{border-color:var(--ff-color-neutral-200)}.ff\\:border-primary{border-color:var(--ff-color-primary)}.ff\\:border-transparent{border-color:#0000}.ff\\:border-b-danger{border-bottom-color:var(--ff-color-danger)}.ff\\:bg-\\[\\#ff3a00\\]{background-color:#ff3a00}.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-\\[color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_3\\%\\,var\\(--ff-color-background\\)\\)\\]{background-color:color-mix(in oklch,var(--ff-color-foreground)3%,var(--ff-color-background))}}.ff\\:bg-background,.ff\\:bg-background\\/60{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/60{background-color:color-mix(in oklab,var(--ff-color-background)60%,transparent)}}.ff\\:bg-background\\/70{background-color:var(--ff-color-background)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-background\\/70{background-color:color-mix(in oklab,var(--ff-color-background)70%,transparent)}}.ff\\:bg-danger,.ff\\:bg-danger\\/10{background-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-danger\\/10{background-color:color-mix(in oklab,var(--ff-color-danger)10%,transparent)}}.ff\\:bg-foreground\\/5{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ff-color-foreground)5%,transparent)}}.ff\\:bg-foreground\\/40{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/40{background-color:color-mix(in oklab,var(--ff-color-foreground)40%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.1\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)10%,transparent)}}.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-foreground\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--ff-color-foreground)8%,transparent)}}.ff\\:bg-muted\\/5{background-color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-muted\\/5{background-color:color-mix(in oklab,var(--ff-color-muted)5%,transparent)}}.ff\\:bg-neutral-50{background-color:var(--ff-color-neutral-50)}.ff\\:bg-primary{background-color:var(--ff-color-primary)}.ff\\:bg-primary-foreground{background-color:var(--ff-color-primary-foreground)}.ff\\:bg-primary\\/5{background-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-primary\\/5{background-color:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:bg-secondary{background-color:var(--ff-color-secondary)}.ff\\:bg-success,.ff\\:bg-success\\/10{background-color:var(--ff-color-success)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-success\\/10{background-color:color-mix(in oklab,var(--ff-color-success)10%,transparent)}}.ff\\:bg-transparent{background-color:#0000}.ff\\:bg-warning,.ff\\:bg-warning\\/10{background-color:var(--ff-color-warning)}@supports (color:color-mix(in lab,red,red)){.ff\\:bg-warning\\/10{background-color:color-mix(in oklab,var(--ff-color-warning)10%,transparent)}}.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.ff\\:bg-linear-to-b{--tw-gradient-position:to bottom in oklab}}.ff\\:bg-linear-to-b{background-image:linear-gradient(var(--tw-gradient-stops))}.ff\\:from-primary\\/10{--tw-gradient-from:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:from-primary\\/10{--tw-gradient-from:color-mix(in oklab,var(--ff-color-primary)10%,transparent)}}.ff\\:from-primary\\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:to-primary\\/5{--tw-gradient-to:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:to-primary\\/5{--tw-gradient-to:color-mix(in oklab,var(--ff-color-primary)5%,transparent)}}.ff\\:to-primary\\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.ff\\:\\[background-size\\:200\\%_100\\%\\]{background-size:200% 100%}.ff\\:p-0{padding:calc(var(--ff-spacing)*0)}.ff\\:p-4{padding:calc(var(--ff-spacing)*4)}.ff\\:p-5{padding:calc(var(--ff-spacing)*5)}.ff\\:p-6{padding:calc(var(--ff-spacing)*6)}.ff\\:p-8{padding:calc(var(--ff-spacing)*8)}.ff\\:px-0{padding-inline:calc(var(--ff-spacing)*0)}.ff\\:px-2{padding-inline:calc(var(--ff-spacing)*2)}.ff\\:px-2\\.5{padding-inline:calc(var(--ff-spacing)*2.5)}.ff\\:px-3{padding-inline:calc(var(--ff-spacing)*3)}.ff\\:px-4{padding-inline:calc(var(--ff-spacing)*4)}.ff\\:px-5{padding-inline:calc(var(--ff-spacing)*5)}.ff\\:px-6{padding-inline:calc(var(--ff-spacing)*6)}.ff\\:py-0\\.5{padding-block:calc(var(--ff-spacing)*.5)}.ff\\:py-1{padding-block:calc(var(--ff-spacing)*1)}.ff\\:py-1\\.5{padding-block:calc(var(--ff-spacing)*1.5)}.ff\\:py-2{padding-block:calc(var(--ff-spacing)*2)}.ff\\:py-2\\.5{padding-block:calc(var(--ff-spacing)*2.5)}.ff\\:py-3{padding-block:calc(var(--ff-spacing)*3)}.ff\\:py-4{padding-block:calc(var(--ff-spacing)*4)}.ff\\:py-12{padding-block:calc(var(--ff-spacing)*12)}.ff\\:pt-2{padding-top:calc(var(--ff-spacing)*2)}.ff\\:pt-3{padding-top:calc(var(--ff-spacing)*3)}.ff\\:pt-5{padding-top:calc(var(--ff-spacing)*5)}.ff\\:pb-0\\.5{padding-bottom:calc(var(--ff-spacing)*.5)}.ff\\:pb-1{padding-bottom:calc(var(--ff-spacing)*1)}.ff\\:pb-2{padding-bottom:calc(var(--ff-spacing)*2)}.ff\\:pb-8{padding-bottom:calc(var(--ff-spacing)*8)}.ff\\:text-center{text-align:center}.ff\\:text-right{text-align:right}.ff\\:font-heading{font-family:var(--ff-font-heading)}.ff\\:font-mono{font-family:var(--ff-font-mono)}.ff\\:text-2xl{font-size:var(--ff-text-2xl);line-height:var(--tw-leading,var(--ff-text-2xl--line-height))}.ff\\:text-3xl{font-size:var(--ff-text-3xl);line-height:var(--tw-leading,var(--ff-text-3xl--line-height))}.ff\\:text-4xl{font-size:var(--ff-text-4xl);line-height:var(--tw-leading,var(--ff-text-4xl--line-height))}.ff\\:text-base{font-size:var(--ff-text-base);line-height:var(--tw-leading,var(--ff-text-base--line-height))}.ff\\:text-lg{font-size:var(--ff-text-lg);line-height:var(--tw-leading,var(--ff-text-lg--line-height))}.ff\\:text-sm{font-size:var(--ff-text-sm);line-height:var(--tw-leading,var(--ff-text-sm--line-height))}.ff\\:text-xl{font-size:var(--ff-text-xl);line-height:var(--tw-leading,var(--ff-text-xl--line-height))}.ff\\:text-xs{font-size:var(--ff-text-xs);line-height:var(--tw-leading,var(--ff-text-xs--line-height))}.ff\\:text-xxs{font-size:var(--ff-text-xxs);line-height:var(--tw-leading,var(--ff-text-xxs--line-height))}.ff\\:text-\\[2rem\\]{font-size:2rem}.ff\\:text-\\[10\\.5px\\]{font-size:10.5px}.ff\\:text-\\[52px\\]{font-size:52px}.ff\\:leading-none{--tw-leading:1;line-height:1}.ff\\:leading-tight{--tw-leading:var(--ff-leading-tight);line-height:var(--ff-leading-tight)}.ff\\:font-black{--tw-font-weight:var(--ff-font-weight-black);font-weight:var(--ff-font-weight-black)}.ff\\:font-bold{--tw-font-weight:var(--ff-font-weight-bold);font-weight:var(--ff-font-weight-bold)}.ff\\:font-extrabold{--tw-font-weight:var(--ff-font-weight-extrabold);font-weight:var(--ff-font-weight-extrabold)}.ff\\:font-extralight{--tw-font-weight:var(--ff-font-weight-extralight);font-weight:var(--ff-font-weight-extralight)}.ff\\:font-light{--tw-font-weight:var(--ff-font-weight-light);font-weight:var(--ff-font-weight-light)}.ff\\:font-medium{--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:font-normal{--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:font-semibold{--tw-font-weight:var(--ff-font-weight-semibold);font-weight:var(--ff-font-weight-semibold)}.ff\\:tracking-\\[-0\\.025em\\]{--tw-tracking:-.025em;letter-spacing:-.025em}.ff\\:tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.ff\\:tracking-\\[0\\.08em\\]{--tw-tracking:.08em;letter-spacing:.08em}.ff\\:tracking-\\[0\\.15em\\]{--tw-tracking:.15em;letter-spacing:.15em}.ff\\:tracking-normal{--tw-tracking:var(--ff-tracking-normal);letter-spacing:var(--ff-tracking-normal)}.ff\\:tracking-tight{--tw-tracking:var(--ff-tracking-tight);letter-spacing:var(--ff-tracking-tight)}.ff\\:tracking-wide{--tw-tracking:var(--ff-tracking-wide);letter-spacing:var(--ff-tracking-wide)}.ff\\:tracking-wider{--tw-tracking:var(--ff-tracking-wider);letter-spacing:var(--ff-tracking-wider)}.ff\\:tracking-widest{--tw-tracking:var(--ff-tracking-widest);letter-spacing:var(--ff-tracking-widest)}.ff\\:whitespace-nowrap{white-space:nowrap}.ff\\:text-current{color:currentColor}.ff\\:text-danger{color:var(--ff-color-danger)}.ff\\:text-danger-foreground{color:var(--ff-color-danger-foreground)}.ff\\:text-foreground,.ff\\:text-foreground\\/80{color:var(--ff-color-foreground)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-foreground\\/80{color:color-mix(in oklab,var(--ff-color-foreground)80%,transparent)}}.ff\\:text-muted{color:var(--ff-color-muted)}.ff\\:text-muted-foreground{color:var(--ff-color-muted-foreground)}.ff\\:text-muted\\/60{color:var(--ff-color-muted)}@supports (color:color-mix(in lab,red,red)){.ff\\:text-muted\\/60{color:color-mix(in oklab,var(--ff-color-muted)60%,transparent)}}.ff\\:text-neutral-300{color:var(--ff-color-neutral-300)}.ff\\:text-neutral-500{color:var(--ff-color-neutral-500)}.ff\\:text-primary{color:var(--ff-color-primary)}.ff\\:text-primary-foreground{color:var(--ff-color-primary-foreground)}.ff\\:text-success{color:var(--ff-color-success)}.ff\\:text-success-foreground{color:var(--ff-color-success-foreground)}.ff\\:text-warning{color:var(--ff-color-warning)}.ff\\:text-warning-foreground{color:var(--ff-color-warning-foreground)}.ff\\:text-white{color:var(--ff-color-white)}.ff\\:uppercase{text-transform:uppercase}.ff\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.ff\\:accent-foreground{accent-color:var(--ff-color-foreground)}.ff\\:opacity-0{opacity:0}.ff\\:opacity-25{opacity:.25}.ff\\:opacity-40{opacity:.4}.ff\\:opacity-50{opacity:.5}.ff\\:opacity-60{opacity:.6}.ff\\:opacity-80{opacity:.8}.ff\\:shadow-\\[0_0_10px_-2px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 0 10px -2px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\,0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#0000000a),0 8px 24px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0_0_12px_-6px_var\\(--ff-color-primary\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014),0 0 12px -6px var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[0_2px_12px_-3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 2px 12px -3px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[3px_3px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:3px 3px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_-3px_0_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--tw-shadow:inset 0 -3px 0 var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\]{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-secondary\\)\\]{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-secondary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.ff\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ff\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ff\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ff\\:ease-out{--tw-ease:var(--ff-ease-out);transition-timing-function:var(--ff-ease-out)}.ff\\:outline-none{--tw-outline-style:none;outline-style:none}.ff\\:select-none{-webkit-user-select:none;user-select:none}.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,var(--ff-color-foreground)0%,var(--ff-color-foreground)50%,var(--ff-color-foreground)100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_10\\%\\,transparent\\)_50\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_100\\%\\)\\]{background:linear-gradient(90deg,color-mix(in oklch,var(--ff-color-foreground)6%,transparent),color-mix(in oklch,var(--ff-color-foreground)10%,transparent),color-mix(in oklch,var(--ff-color-foreground)6%,transparent))}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,var(--ff-color-foreground)20%,var(--ff-color-foreground)80%,transparent 100%)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,transparent_0\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_20\\%\\,color-mix\\(in_oklch\\,var\\(--ff-color-foreground\\)_6\\%\\,transparent\\)_80\\%\\,transparent_100\\%\\)\\]{background:linear-gradient(90deg,transparent 0%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)20%,color-mix(in oklch,var(--ff-color-foreground)6%,transparent)80%,transparent 100%)}}.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),var(--ff-color-primary))}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:linear-gradient\\(90deg\\,var\\(--ff-color-primary\\)\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,white\\)\\)\\]{background:linear-gradient(90deg,var(--ff-color-primary),color-mix(in oklch,var(--ff-color-primary)80%,white))}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,var(--ff-color-primary)8px,var(--ff-color-primary)16px)}@supports (color:color-mix(in lab,red,red)){.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-primary\\)\\,var\\(--ff-color-primary\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_8px\\,color-mix\\(in_oklch\\,var\\(--ff-color-primary\\)_80\\%\\,black\\)_16px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-primary),var(--ff-color-primary)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)8px,color-mix(in oklch,var(--ff-color-primary)80%,black)16px)}}.ff\\:\\[background\\:repeating-linear-gradient\\(-45deg\\,var\\(--ff-color-secondary\\)\\,var\\(--ff-color-secondary\\)_4px\\,var\\(--ff-color-surface\\)_4px\\,var\\(--ff-color-surface\\)_8px\\)\\]{background:repeating-linear-gradient(-45deg,var(--ff-color-secondary),var(--ff-color-secondary)4px,var(--ff-color-surface)4px,var(--ff-color-surface)8px)}.ff\\:\\[scrollbar-width\\:none\\]{scrollbar-width:none}.ff\\:duration-100{animation-duration:.1s}.ff\\:duration-150{animation-duration:.15s}.ff\\:duration-200{animation-duration:.2s}.ff\\:duration-300{animation-duration:.3s}.ff\\:ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.ff\\:peer-placeholder-shown\\:translate-y-0:is(:where(.ff\\:peer):placeholder-shown~*){--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-placeholder-shown\\:scale-100:is(:where(.ff\\:peer):placeholder-shown~*){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-placeholder-shown\\:font-normal:is(:where(.ff\\:peer):placeholder-shown~*){--tw-font-weight:var(--ff-font-weight-normal);font-weight:var(--ff-font-weight-normal)}.ff\\:peer-placeholder-shown\\:text-muted:is(:where(.ff\\:peer):placeholder-shown~*){color:var(--ff-color-muted)}.ff\\:peer-focus\\:-translate-y-2:is(:where(.ff\\:peer):focus~*){--tw-translate-y:calc(var(--ff-spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:peer-focus\\:scale-75:is(:where(.ff\\:peer):focus~*){--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.ff\\:peer-focus\\:font-medium:is(:where(.ff\\:peer):focus~*){--tw-font-weight:var(--ff-font-weight-medium);font-weight:var(--ff-font-weight-medium)}.ff\\:peer-focus\\:text-danger:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-danger)}.ff\\:peer-focus\\:text-primary:is(:where(.ff\\:peer):focus~*){color:var(--ff-color-primary)}.ff\\:peer-disabled\\:text-muted:is(:where(.ff\\:peer):disabled~*){color:var(--ff-color-muted)}.ff\\:peer-disabled\\:opacity-50:is(:where(.ff\\:peer):disabled~*){opacity:.5}.ff\\:placeholder\\:text-muted::placeholder{color:var(--ff-color-muted)}.ff\\:placeholder\\:opacity-0::placeholder{opacity:0}.ff\\:placeholder\\:transition-opacity::placeholder{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ff-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ff-default-transition-duration))}.ff\\:placeholder\\:duration-200::placeholder{--tw-duration:.2s;transition-duration:.2s;animation-duration:.2s}.ff\\:last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.ff\\:last\\:pb-0:last-child{padding-bottom:calc(var(--ff-spacing)*0)}@media(hover:hover){.ff\\:hover\\:-translate-x-0\\.5:hover{--tw-translate-x:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-x-0:hover{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--ff-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:translate-y-0:hover{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:hover\\:border-foreground:hover{border-color:var(--ff-color-foreground)}.ff\\:hover\\:bg-secondary:hover{background-color:var(--ff-color-secondary)}.ff\\:hover\\:underline:hover{text-decoration-line:underline}.ff\\:hover\\:opacity-90:hover{opacity:.9}.ff\\:hover\\:shadow-\\[0_4px_16px_-4px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]:hover{--tw-shadow:0 4px 16px -4px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[4px_4px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:4px 4px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-\\[6px_6px_0_var\\(--ff-color-foreground\\)\\]:hover{--tw-shadow:6px 6px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:hover\\:shadow-none:hover{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.ff\\:focus\\:border-danger:focus,.ff\\:focus\\:border-danger\\/50:focus{border-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-danger\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-danger)50%,transparent)}}.ff\\:focus\\:border-primary:focus,.ff\\:focus\\:border-primary\\/50:focus{border-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:border-primary\\/50:focus{border-color:color-mix(in oklab,var(--ff-color-primary)50%,transparent)}}.ff\\:focus\\:border-b-danger:focus{border-bottom-color:var(--ff-color-danger)}.ff\\:focus\\:border-b-primary:focus{border-bottom-color:var(--ff-color-primary)}.ff\\:focus\\:bg-background:focus{background-color:var(--ff-color-background)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-danger-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-danger-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_0_1px_4px_-1px_rgba\\(0\\,0\\,0\\,0\\.06\\)\\,0_0_0_3px_rgba\\(var\\(--ff-color-primary-rgb\\)\\,0\\.12\\)\\]:focus{--tw-shadow:inset 0 1px 4px -1px var(--tw-shadow-color,#0000000f),0 0 0 3px var(--tw-shadow-color,rgba(var(--ff-color-primary-rgb),.12));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_2px_2px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 2px 2px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-\\[inset_3px_3px_0_var\\(--ff-color-primary\\)\\]:focus{--tw-shadow:inset 3px 3px 0 var(--tw-shadow-color,var(--ff-color-primary));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:shadow-none:focus{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus\\:ring-danger:focus,.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:var(--ff-color-danger)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-danger\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-danger)20%,transparent)}}.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:var(--ff-color-primary)}@supports (color:color-mix(in lab,red,red)){.ff\\:focus\\:ring-primary\\/20:focus{--tw-ring-color:color-mix(in oklab,var(--ff-color-primary)20%,transparent)}}.ff\\:focus\\:placeholder\\:opacity-100:focus::placeholder{opacity:1}.ff\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:focus-visible\\:ring-border:focus-visible{--tw-ring-color:var(--ff-color-border)}.ff\\:focus-visible\\:ring-danger:focus-visible{--tw-ring-color:var(--ff-color-danger)}.ff\\:focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--ff-color-primary)}.ff\\:focus-visible\\:ring-secondary:focus-visible{--tw-ring-color:var(--ff-color-secondary)}.ff\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ff\\:active\\:translate-x-0:active{--tw-translate-x:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-x-0\\.5:active{--tw-translate-x:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--ff-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:translate-y-0\\.5:active{--tw-translate-y:calc(var(--ff-spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.ff\\:active\\:shadow-\\[2px_2px_0_var\\(--ff-color-foreground\\)\\]:active{--tw-shadow:2px 2px 0 var(--tw-shadow-color,var(--ff-color-foreground));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-\\[inset_0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]:active{--tw-shadow:inset 0 2px 4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:active\\:shadow-none:active{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ff\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ff\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.ff\\:disabled\\:opacity-35:disabled{opacity:.35}.ff\\:disabled\\:opacity-50:disabled{opacity:.5}.ff\\:\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden::-webkit-scrollbar{display:none}.ff\\:\\[\\&\\>\\*\\]\\:min-h-0>*{min-height:calc(var(--ff-spacing)*0)}.ff\\:\\[\\&\\>\\*\\]\\:flex-1>*{flex:1}.fanfare-text-balance{text-wrap:balance}.fanfare-text-pretty{text-wrap:pretty}}[data-fanfare-variant=default]{--ff-variant:"default"}[data-fanfare-variant=retro]{--ff-variant:"retro";--ff-color-background:#f4f1ea;--ff-color-foreground:#000;--ff-color-muted:#444;--ff-color-muted-foreground:#444;--ff-color-border:#000;--ff-font-sans:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-heading:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}[data-fanfare-variant=rounded]{--ff-variant:"rounded"}[data-fanfare-variant=clean]{--ff-variant:"clean";--ff-color-background:#fff;--ff-color-foreground:#0a0a0a;--ff-color-muted:#737373;--ff-color-muted-foreground:#737373;--ff-color-border:#e8e8e8;--ff-font-sans:"Figtree",system-ui,sans-serif;--ff-font-heading:"Figtree",system-ui,sans-serif;--ff-font-mono:"Inconsolata","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.5rem)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes celebration-bounce{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}75%{transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes pulse-success{0%{box-shadow:0 0 0 0 var(--ff-color-success,#22c55e)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes skeleton-slide{0%{background-position:-100% 0}to{background-position:200% 0}}', So = '@theme{ --color-primary: #1d1f27; --color-primary-foreground: #ffffff; --color-secondary: #f4f4f5; --color-background: #ffffff; --color-surface: transparent; --color-surface-foreground: #1d1f27; --color-foreground: #1d1f27; --color-muted: #4b4e56cc; --color-muted-foreground: #4b4e5699; --color-border: #4b4e5666; --color-success: oklch(.77 .18 130); --color-success-foreground: #111111; --color-warning: oklch(.72 .18 65); --color-warning-foreground: #111111; --color-danger: oklch(.63 .24 25); --color-danger-foreground: #ffffff; --font-sans: "Inter", system-ui, sans-serif; --font-heading: "Inter", system-ui, sans-serif; --text-xxs: .625rem; --text-xxs--line-height: .875rem; }[data-fanfare-variant=default]{--ff-variant: "default"}[data-fanfare-variant=retro]{--ff-variant: "retro";--ff-color-background: #f4f1ea;--ff-color-foreground: #000000;--ff-color-muted: #444444;--ff-color-muted-foreground: #444444;--ff-color-border: #000000;--ff-font-sans: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-heading: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}[data-fanfare-variant=rounded]{--ff-variant: "rounded"}[data-fanfare-variant=clean]{--ff-variant: "clean";--ff-color-background: #ffffff;--ff-color-foreground: #0a0a0a;--ff-color-muted: #737373;--ff-color-muted-foreground: #737373;--ff-color-border: #e8e8e8;--ff-font-sans: "Figtree", system-ui, sans-serif;--ff-font-heading: "Figtree", system-ui, sans-serif;--ff-font-mono: "Inconsolata", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@layer base{.fanfare-themed{font-family:var(--ff-font-sans);color:var(--ff-color-foreground);background-color:var(--ff-color-surface)}.fanfare-themed *,.fanfare-themed :after,.fanfare-themed :before,.fanfare-themed ::backdrop,.fanfare-themed ::file-selector-button{border-color:var(--ff-color-border);outline-color:var(--ff-color-border)}.fanfare-themed button:not(:disabled),.fanfare-themed [role=button]:not(:disabled){cursor:pointer}.fanfare-themed :focus-visible{outline:2px solid var(--ff-color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.fanfare-themed *,.fanfare-themed :before,.fanfare-themed :after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}}';
4974
+ function Co({
4961
4975
  children: e,
4962
4976
  theme: a,
4963
4977
  variant: r,
@@ -4966,61 +4980,61 @@ function So({
4966
4980
  className: i,
4967
4981
  style: f
4968
4982
  }) {
4969
- const c = bt(null), [g, d] = ve(null);
4970
- dr(() => {
4971
- if (c.current && !c.current.shadowRoot) {
4972
- const m = c.current.attachShadow({ mode: "open" });
4983
+ const l = bt(null), [g, d] = ve(null);
4984
+ ur(() => {
4985
+ if (l.current && !l.current.shadowRoot) {
4986
+ const m = l.current.attachShadow({ mode: "open" });
4973
4987
  d(m);
4974
4988
  }
4975
4989
  }, []);
4976
4990
  const b = X(() => a ? Da(a) : {}, [a]);
4977
- return /* @__PURE__ */ t("div", { ref: c, className: i, style: f, children: g && Er(
4991
+ return /* @__PURE__ */ t("div", { ref: l, className: i, style: f, children: g && Mr(
4978
4992
  /* @__PURE__ */ u(Me, { children: [
4979
4993
  /* @__PURE__ */ u("style", { "data-fanfare-styles": !0, children: [
4980
- _o,
4981
- No
4994
+ No,
4995
+ So
4982
4996
  ] }),
4983
4997
  /* @__PURE__ */ t(Na, { locale: n, translations: o, children: /* @__PURE__ */ t(Rt, { theme: a, variant: r, className: "ff:h-full ff:w-full", children: /* @__PURE__ */ t("div", { className: "fanfare-root ff:h-full ff:w-full", style: b, children: e }) }) })
4984
4998
  ] }),
4985
4999
  g
4986
5000
  ) });
4987
5001
  }
4988
- So.displayName = "ShadowDOMPreview";
5002
+ Co.displayName = "ShadowDOMPreview";
4989
5003
  export {
4990
- za as AccessCodeForm,
5004
+ ja as AccessCodeForm,
4991
5005
  tt as AuctionModule,
4992
5006
  Aa as AuthForm,
4993
5007
  Ea as AuthInput,
4994
5008
  j as Button,
4995
5009
  Ta as Card,
4996
- dn as CardContent,
4997
- cn as CardDescription,
4998
- un as CardFooter,
4999
- sn as CardHeader,
5000
- ln as CardTitle,
5001
- ja as ChallengeGate,
5010
+ un as CardContent,
5011
+ dn as CardDescription,
5012
+ pn as CardFooter,
5013
+ ln as CardHeader,
5014
+ cn as CardTitle,
5015
+ za as ChallengeGate,
5002
5016
  at as DrawModule,
5003
5017
  Fa as EndedModule,
5004
5018
  et as ErrorView,
5005
- Lr as ExperienceJourneyController,
5006
- Uo as ExperienceJourneySkeleton,
5007
- ko as ExperienceWidget,
5019
+ Ar as ExperienceJourneyController,
5020
+ Ho as ExperienceJourneySkeleton,
5021
+ _o as ExperienceWidget,
5008
5022
  ya as FanfareContext,
5009
- $o as FanfareProvider,
5023
+ qo as FanfareProvider,
5010
5024
  it as GrantedPanel,
5011
5025
  Na as I18nProvider,
5012
5026
  ie as InfoPanel,
5013
5027
  yt as Input,
5014
5028
  It as LoadingView,
5015
5029
  Ma as OTPInput,
5016
- We as OutcomePanel,
5030
+ Ue as OutcomePanel,
5017
5031
  Z as PanelBody,
5018
5032
  H as PanelFooter,
5019
5033
  G as PanelHeading,
5020
5034
  Y as PanelLayout,
5021
5035
  wt as QueueModule,
5022
- Zo as RTL_LOCALES,
5023
- So as ShadowDOMPreview,
5036
+ Yo as RTL_LOCALES,
5037
+ Co as ShadowDOMPreview,
5024
5038
  Ja as StartView,
5025
5039
  re as THEME_CSS_VARS,
5026
5040
  Rt as ThemeProvider,
@@ -5028,13 +5042,13 @@ export {
5028
5042
  Ga as UpcomingModule,
5029
5043
  Qa as WaitlistView,
5030
5044
  Da as buildThemeCssVars,
5031
- an as buttonVariants,
5032
- Yo as isRTLLocale,
5045
+ rn as buttonVariants,
5046
+ Go as isRTLLocale,
5033
5047
  da as normalizeOutcomeReason,
5034
5048
  Sa as useExperienceJourney,
5035
5049
  Nt as useFanfare,
5036
- qo as useFanfareAuth,
5050
+ Uo as useFanfareAuth,
5037
5051
  Wo as useJourneySnapshot,
5038
- ze as useNanostore,
5052
+ je as useNanostore,
5039
5053
  K as useTranslations
5040
5054
  };