From 4e0718272269b2c9e50ea19bfd089adc90a50f01 Mon Sep 17 00:00:00 2001 From: Babayaga Date: Sat, 21 Feb 2026 09:30:31 +0100 Subject: [PATCH] stripe 1/2 --- .../ecommerce/dist-lib/EcommerceBundle.d.ts | 8 + .../dist-lib/checkout/CheckoutFlow.d.ts | 17 +- .../dist-lib/checkout/CheckoutPage.d.ts | 13 +- .../dist-lib/checkout/StripePaymentForm.d.ts | 15 + .../ecommerce/dist-lib/pm-ecommerce.es.js | 4711 ++++++--------- .../ecommerce/dist-lib/pm-ecommerce.es.js.map | 2 +- packages/ecommerce/package-lock.json | 5078 +---------------- packages/ecommerce/package.json | 20 +- packages/ecommerce/readme.md | 4 + packages/ecommerce/src/EcommerceBundle.tsx | 12 + .../ecommerce/src/checkout/CheckoutFlow.tsx | 88 +- .../ecommerce/src/checkout/CheckoutPage.tsx | 462 +- .../src/checkout/StripePaymentForm.tsx | 125 + packages/ecommerce/vite.config.lib.ts | 3 +- 14 files changed, 2588 insertions(+), 7970 deletions(-) create mode 100644 packages/ecommerce/dist-lib/checkout/StripePaymentForm.d.ts create mode 100644 packages/ecommerce/src/checkout/StripePaymentForm.tsx diff --git a/packages/ecommerce/dist-lib/EcommerceBundle.d.ts b/packages/ecommerce/dist-lib/EcommerceBundle.d.ts index cc6cdbde..5e19b5c7 100644 --- a/packages/ecommerce/dist-lib/EcommerceBundle.d.ts +++ b/packages/ecommerce/dist-lib/EcommerceBundle.d.ts @@ -18,5 +18,13 @@ export interface EcommerceBundleDependencies { onNavigate: (path: string) => void; siteName?: string; contactEmail?: string; + /** Stripe publishable key — enables Stripe payment option. */ + stripePublishableKey?: string; + /** API base URL for Stripe endpoints (e.g. "http://localhost:3333"). */ + apiBaseUrl?: string; + /** Stripe return URL for redirect-based payment methods. */ + stripeReturnUrl?: string; + /** Currency code for Stripe (default: "eur"). */ + currency?: string; } export declare const EcommerceBundle: React.FC; diff --git a/packages/ecommerce/dist-lib/checkout/CheckoutFlow.d.ts b/packages/ecommerce/dist-lib/checkout/CheckoutFlow.d.ts index 3c4ddea0..7aea6bc7 100644 --- a/packages/ecommerce/dist-lib/checkout/CheckoutFlow.d.ts +++ b/packages/ecommerce/dist-lib/checkout/CheckoutFlow.d.ts @@ -21,5 +21,20 @@ export interface CheckoutFlowProps { success: (msg: string) => void; error: (msg: string) => void; }; + /** + * Stripe publishable key (pk_test_... or pk_live_...). + * If omitted the Stripe payment option will still render but remain + * in a "loading" state until the key is provided. + */ + stripePublishableKey?: string; + /** + * Base URL for the API server (e.g. "http://localhost:3333"). + * Used to call `/api/stripe/create-payment-intent`. + */ + apiBaseUrl?: string; + /** Stripe return URL for redirect-based payment methods. */ + stripeReturnUrl?: string; + /** Currency code for Stripe payments (default: "eur"). */ + currency?: string; } -export declare function CheckoutFlow({ userId, userDisplayName, userEmail, onFetchAddresses, onSaveAddress, onPlaceOrder, onBackToCart, onOrderSuccess, toast, }: CheckoutFlowProps): import("react/jsx-runtime").JSX.Element; +export declare function CheckoutFlow({ userId, userDisplayName, userEmail, onFetchAddresses, onSaveAddress, onPlaceOrder, onBackToCart, onOrderSuccess, toast, stripePublishableKey, apiBaseUrl, stripeReturnUrl, currency, }: CheckoutFlowProps): import("react/jsx-runtime").JSX.Element; diff --git a/packages/ecommerce/dist-lib/checkout/CheckoutPage.d.ts b/packages/ecommerce/dist-lib/checkout/CheckoutPage.d.ts index a7783f8e..565e20e6 100644 --- a/packages/ecommerce/dist-lib/checkout/CheckoutPage.d.ts +++ b/packages/ecommerce/dist-lib/checkout/CheckoutPage.d.ts @@ -1,3 +1,4 @@ +import { Stripe as StripeJS } from '@stripe/stripe-js'; /** Shipping address fields collected at checkout. */ export interface ShippingAddress { fullName: string; @@ -15,7 +16,7 @@ export interface SavedAddress extends ShippingAddress { phone?: string; note?: string; } -export type PaymentMethod = "shopify" | "crypto"; +export type PaymentMethod = "shopify" | "crypto" | "stripe"; export interface CheckoutPageProps { /** Called when user submits the checkout form. */ onPlaceOrder?: (data: { @@ -34,6 +35,14 @@ export interface CheckoutPageProps { tax?: number; /** Pre-filled shipping cost. */ shipping?: number; + /** Stripe.js promise (from loadStripe). */ + stripePromise?: Promise | null; + /** Stripe PaymentIntent client secret. */ + stripeClientSecret?: string | null; + /** Called after Stripe payment succeeds inline (no redirect). */ + onStripePaymentSuccess?: () => void; + /** Stripe return URL for redirect-based payment methods. */ + stripeReturnUrl?: string; /** Optional extra class names. */ className?: string; } @@ -41,4 +50,4 @@ export interface CheckoutPageProps { * Checkout page — two-column layout with shipping form + payment selector on * the left and an OrderSummary on the right. */ -export declare function CheckoutPage({ onPlaceOrder, onSaveAddress, onBackToCart, initialShipping, savedAddresses, tax, shipping, className, }: CheckoutPageProps): import("react/jsx-runtime").JSX.Element; +export declare function CheckoutPage({ onPlaceOrder, onSaveAddress, onBackToCart, initialShipping, savedAddresses, tax, shipping, stripePromise, stripeClientSecret, onStripePaymentSuccess, stripeReturnUrl, className, }: CheckoutPageProps): import("react/jsx-runtime").JSX.Element; diff --git a/packages/ecommerce/dist-lib/checkout/StripePaymentForm.d.ts b/packages/ecommerce/dist-lib/checkout/StripePaymentForm.d.ts new file mode 100644 index 00000000..622c9e47 --- /dev/null +++ b/packages/ecommerce/dist-lib/checkout/StripePaymentForm.d.ts @@ -0,0 +1,15 @@ +export interface StripePaymentFormProps { + /** Called after Stripe confirms payment successfully. */ + onPaymentSuccess?: () => void; + /** Return URL after redirect-based payment methods (iDEAL, etc.). */ + returnUrl?: string; + /** Pre-fill the email field. */ + defaultEmail?: string; + /** Pre-fill the name field in billing details. */ + defaultName?: string; +} +/** + * Embedded Stripe payment form using PaymentElement. + * Must be rendered inside a Stripe `` provider. + */ +export declare function StripePaymentForm({ onPaymentSuccess, returnUrl, defaultEmail, defaultName, }: StripePaymentFormProps): import("react/jsx-runtime").JSX.Element; diff --git a/packages/ecommerce/dist-lib/pm-ecommerce.es.js b/packages/ecommerce/dist-lib/pm-ecommerce.es.js index 8426e417..c46ebe46 100644 --- a/packages/ecommerce/dist-lib/pm-ecommerce.es.js +++ b/packages/ecommerce/dist-lib/pm-ecommerce.es.js @@ -1,2390 +1,134 @@ -import { jsx as o, jsxs as i } from "react/jsx-runtime"; -import { Minus as Ue, Plus as Ye, Trash2 as $e, ShoppingCart as ve, ShoppingBag as He, MapPin as xe, Save as Qe, CreditCard as Ze, Bitcoin as Je, Truck as Xe, Clock as ue, Globe as Ke, DollarSign as er, RotateCcw as rr, CheckCircle as Te, XCircle as le, RefreshCw as ce, Package as we, ArrowLeft as tr, Store as or, ExternalLink as nr } from "lucide-react"; -import * as v from "react"; -import ar, { useState as V, useEffect as je } from "react"; -import { create as sr } from "zustand"; -import { persist as ir } from "zustand/middleware"; +import { jsx as a, jsxs as c, Fragment as Ur } from "react/jsx-runtime"; +import { Minus as Yr, Plus as zr, Trash2 as gr, ShoppingCart as He, Loader2 as Vr, ShoppingBag as Br, MapPin as Ge, Save as Jr, CreditCard as Xe, Bitcoin as Hr, Truck as Gr, Clock as Ye, Globe as Xr, DollarSign as Kr, RotateCcw as Qr, CheckCircle as br, XCircle as Fe, RefreshCw as qe, Package as Ke, ArrowLeft as Zr, Store as et, ExternalLink as rt } from "lucide-react"; +import * as L from "react"; +import q, { useState as ae, useEffect as Pe } from "react"; +import { twMerge as tt } from "tailwind-merge"; +import { create as nt } from "zustand"; +import { persist as at } from "zustand/middleware"; import "react-dom"; -import { useLocation as lr, matchPath as L } from "react-router-dom"; -function Ne(e, r) { +import { useLocation as ot, matchPath as fe } from "react-router-dom"; +function Qe(e, r) { if (typeof e == "function") return e(r); e != null && (e.current = r); } -function cr(...e) { +function it(...e) { return (r) => { let t = !1; - const n = e.map((a) => { - const s = Ne(a, r); - return !t && typeof s == "function" && (t = !0), s; + const n = e.map((o) => { + const i = Qe(o, r); + return !t && typeof i == "function" && (t = !0), i; }); if (t) return () => { - for (let a = 0; a < n.length; a++) { - const s = n[a]; - typeof s == "function" ? s() : Ne(e[a], null); + for (let o = 0; o < n.length; o++) { + const i = n[o]; + typeof i == "function" ? i() : Qe(e[o], null); } }; }; } -var dr = Symbol.for("react.lazy"), re = v[" use ".trim().toString()]; -function ur(e) { +var st = Symbol.for("react.lazy"), Oe = L[" use ".trim().toString()]; +function ct(e) { return typeof e == "object" && e !== null && "then" in e; } -function Ie(e) { - return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof === dr && "_payload" in e && ur(e._payload); +function xr(e) { + return e != null && typeof e == "object" && "$$typeof" in e && e.$$typeof === st && "_payload" in e && ct(e._payload); } // @__NO_SIDE_EFFECTS__ -function me(e) { - const r = /* @__PURE__ */ pr(e), t = v.forwardRef((n, a) => { - let { children: s, ...c } = n; - Ie(s) && typeof re == "function" && (s = re(s._payload)); - const l = v.Children.toArray(s), d = l.find(fr); - if (d) { - const u = d.props.children, y = l.map((m) => m === d ? v.Children.count(u) > 1 ? v.Children.only(null) : v.isValidElement(u) ? u.props.children : null : m); - return /* @__PURE__ */ o(r, { ...c, ref: a, children: v.isValidElement(u) ? v.cloneElement(u, void 0, y) : null }); +function ze(e) { + const r = /* @__PURE__ */ ut(e), t = L.forwardRef((n, o) => { + let { children: i, ...d } = n; + xr(i) && typeof Oe == "function" && (i = Oe(i._payload)); + const l = L.Children.toArray(i), s = l.find(ft); + if (s) { + const p = s.props.children, v = l.map((f) => f === s ? L.Children.count(p) > 1 ? L.Children.only(null) : L.isValidElement(p) ? p.props.children : null : f); + return /* @__PURE__ */ a(r, { ...d, ref: o, children: L.isValidElement(p) ? L.cloneElement(p, void 0, v) : null }); } - return /* @__PURE__ */ o(r, { ...c, ref: a, children: s }); + return /* @__PURE__ */ a(r, { ...d, ref: o, children: i }); }); return t.displayName = `${e}.Slot`, t; } -var mr = /* @__PURE__ */ me("Slot"); +var lt = /* @__PURE__ */ ze("Slot"); // @__NO_SIDE_EFFECTS__ -function pr(e) { - const r = v.forwardRef((t, n) => { - let { children: a, ...s } = t; - if (Ie(a) && typeof re == "function" && (a = re(a._payload)), v.isValidElement(a)) { - const c = br(a), l = gr(s, a.props); - return a.type !== v.Fragment && (l.ref = n ? cr(n, c) : c), v.cloneElement(a, l); +function ut(e) { + const r = L.forwardRef((t, n) => { + let { children: o, ...i } = t; + if (xr(o) && typeof Oe == "function" && (o = Oe(o._payload)), L.isValidElement(o)) { + const d = pt(o), l = mt(i, o.props); + return o.type !== L.Fragment && (l.ref = n ? it(n, d) : d), L.cloneElement(o, l); } - return v.Children.count(a) > 1 ? v.Children.only(null) : null; + return L.Children.count(o) > 1 ? L.Children.only(null) : null; }); return r.displayName = `${e}.SlotClone`, r; } -var hr = Symbol("radix.slottable"); -function fr(e) { - return v.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === hr; +var dt = Symbol("radix.slottable"); +function ft(e) { + return L.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === dt; } -function gr(e, r) { +function mt(e, r) { const t = { ...r }; for (const n in r) { - const a = e[n], s = r[n]; - /^on[A-Z]/.test(n) ? a && s ? t[n] = (...l) => { - const d = s(...l); - return a(...l), d; - } : a && (t[n] = a) : n === "style" ? t[n] = { ...a, ...s } : n === "className" && (t[n] = [a, s].filter(Boolean).join(" ")); + const o = e[n], i = r[n]; + /^on[A-Z]/.test(n) ? o && i ? t[n] = (...l) => { + const s = i(...l); + return o(...l), s; + } : o && (t[n] = o) : n === "style" ? t[n] = { ...o, ...i } : n === "className" && (t[n] = [o, i].filter(Boolean).join(" ")); } return { ...e, ...t }; } -function br(e) { - var n, a; +function pt(e) { + var n, o; let r = (n = Object.getOwnPropertyDescriptor(e.props, "ref")) == null ? void 0 : n.get, t = r && "isReactWarning" in r && r.isReactWarning; - return t ? e.ref : (r = (a = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : a.get, t = r && "isReactWarning" in r && r.isReactWarning, t ? e.props.ref : e.props.ref || e.ref); + return t ? e.ref : (r = (o = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : o.get, t = r && "isReactWarning" in r && r.isReactWarning, t ? e.props.ref : e.props.ref || e.ref); } -function Ee(e) { +function wr(e) { var r, t, n = ""; if (typeof e == "string" || typeof e == "number") n += e; else if (typeof e == "object") if (Array.isArray(e)) { - var a = e.length; - for (r = 0; r < a; r++) e[r] && (t = Ee(e[r])) && (n && (n += " "), n += t); + var o = e.length; + for (r = 0; r < o; r++) e[r] && (t = wr(e[r])) && (n && (n += " "), n += t); } else for (t in e) e[t] && (n && (n += " "), n += t); return n; } -function Me() { - for (var e, r, t = 0, n = "", a = arguments.length; t < a; t++) (e = arguments[t]) && (r = Ee(e)) && (n && (n += " "), n += r); +function Nr() { + for (var e, r, t = 0, n = "", o = arguments.length; t < o; t++) (e = arguments[t]) && (r = wr(e)) && (n && (n += " "), n += r); return n; } -const Ce = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, ke = Me, pe = (e, r) => (t) => { +const Ze = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, er = Nr, Ve = (e, r) => (t) => { var n; - if ((r == null ? void 0 : r.variants) == null) return ke(e, t == null ? void 0 : t.class, t == null ? void 0 : t.className); - const { variants: a, defaultVariants: s } = r, c = Object.keys(a).map((u) => { - const y = t == null ? void 0 : t[u], m = s == null ? void 0 : s[u]; - if (y === null) return null; - const C = Ce(y) || Ce(m); - return a[u][C]; - }), l = t && Object.entries(t).reduce((u, y) => { - let [m, C] = y; - return C === void 0 || (u[m] = C), u; - }, {}), d = r == null || (n = r.compoundVariants) === null || n === void 0 ? void 0 : n.reduce((u, y) => { - let { class: m, className: C, ...h } = y; - return Object.entries(h).every((S) => { - let [f, b] = S; - return Array.isArray(b) ? b.includes({ - ...s, + if ((r == null ? void 0 : r.variants) == null) return er(e, t == null ? void 0 : t.class, t == null ? void 0 : t.className); + const { variants: o, defaultVariants: i } = r, d = Object.keys(o).map((p) => { + const v = t == null ? void 0 : t[p], f = i == null ? void 0 : i[p]; + if (v === null) return null; + const b = Ze(v) || Ze(f); + return o[p][b]; + }), l = t && Object.entries(t).reduce((p, v) => { + let [f, b] = v; + return b === void 0 || (p[f] = b), p; + }, {}), s = r == null || (n = r.compoundVariants) === null || n === void 0 ? void 0 : n.reduce((p, v) => { + let { class: f, className: b, ...N } = v; + return Object.entries(N).every((j) => { + let [C, A] = j; + return Array.isArray(A) ? A.includes({ + ...i, ...l - }[f]) : { - ...s, + }[C]) : { + ...i, ...l - }[f] === b; + }[C] === A; }) ? [ - ...u, - m, - C - ] : u; + ...p, + f, + b + ] : p; }, []); - return ke(e, c, d, t == null ? void 0 : t.class, t == null ? void 0 : t.className); -}, he = "-", yr = (e) => { - const r = xr(e), { - conflictingClassGroups: t, - conflictingClassGroupModifiers: n - } = e; - return { - getClassGroupId: (c) => { - const l = c.split(he); - return l[0] === "" && l.length !== 1 && l.shift(), Fe(l, r) || vr(c); - }, - getConflictingClassGroupIds: (c, l) => { - const d = t[c] || []; - return l && n[c] ? [...d, ...n[c]] : d; - } - }; -}, Fe = (e, r) => { - var c; - if (e.length === 0) - return r.classGroupId; - const t = e[0], n = r.nextPart.get(t), a = n ? Fe(e.slice(1), n) : void 0; - if (a) - return a; - if (r.validators.length === 0) - return; - const s = e.join(he); - return (c = r.validators.find(({ - validator: l - }) => l(s))) == null ? void 0 : c.classGroupId; -}, Se = /^\[(.+)\]$/, vr = (e) => { - if (Se.test(e)) { - const r = Se.exec(e)[1], t = r == null ? void 0 : r.substring(0, r.indexOf(":")); - if (t) - return "arbitrary.." + t; - } -}, xr = (e) => { - const { - theme: r, - prefix: t - } = e, n = { - nextPart: /* @__PURE__ */ new Map(), - validators: [] - }; - return Nr(Object.entries(e.classGroups), t).forEach(([s, c]) => { - de(c, n, s, r); - }), n; -}, de = (e, r, t, n) => { - e.forEach((a) => { - if (typeof a == "string") { - const s = a === "" ? r : Pe(r, a); - s.classGroupId = t; - return; - } - if (typeof a == "function") { - if (wr(a)) { - de(a(n), r, t, n); - return; - } - r.validators.push({ - validator: a, - classGroupId: t - }); - return; - } - Object.entries(a).forEach(([s, c]) => { - de(c, Pe(r, s), t, n); - }); - }); -}, Pe = (e, r) => { - let t = e; - return r.split(he).forEach((n) => { - t.nextPart.has(n) || t.nextPart.set(n, { - nextPart: /* @__PURE__ */ new Map(), - validators: [] - }), t = t.nextPart.get(n); - }), t; -}, wr = (e) => e.isThemeGetter, Nr = (e, r) => r ? e.map(([t, n]) => { - const a = n.map((s) => typeof s == "string" ? r + s : typeof s == "object" ? Object.fromEntries(Object.entries(s).map(([c, l]) => [r + c, l])) : s); - return [t, a]; -}) : e, Cr = (e) => { - if (e < 1) - return { - get: () => { - }, - set: () => { - } - }; - let r = 0, t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(); - const a = (s, c) => { - t.set(s, c), r++, r > e && (r = 0, n = t, t = /* @__PURE__ */ new Map()); - }; - return { - get(s) { - let c = t.get(s); - if (c !== void 0) - return c; - if ((c = n.get(s)) !== void 0) - return a(s, c), c; - }, - set(s, c) { - t.has(s) ? t.set(s, c) : a(s, c); - } - }; -}, Oe = "!", kr = (e) => { - const { - separator: r, - experimentalParseClassName: t - } = e, n = r.length === 1, a = r[0], s = r.length, c = (l) => { - const d = []; - let u = 0, y = 0, m; - for (let b = 0; b < l.length; b++) { - let k = l[b]; - if (u === 0) { - if (k === a && (n || l.slice(b, b + s) === r)) { - d.push(l.slice(y, b)), y = b + s; - continue; - } - if (k === "/") { - m = b; - continue; - } - } - k === "[" ? u++ : k === "]" && u--; - } - const C = d.length === 0 ? l : l.substring(y), h = C.startsWith(Oe), S = h ? C.substring(1) : C, f = m && m > y ? m - y : void 0; - return { - modifiers: d, - hasImportantModifier: h, - baseClassName: S, - maybePostfixModifierPosition: f - }; - }; - return t ? (l) => t({ - className: l, - parseClassName: c - }) : c; -}, Sr = (e) => { - if (e.length <= 1) - return e; - const r = []; - let t = []; - return e.forEach((n) => { - n[0] === "[" ? (r.push(...t.sort(), n), t = []) : t.push(n); - }), r.push(...t.sort()), r; -}, Pr = (e) => ({ - cache: Cr(e.cacheSize), - parseClassName: kr(e), - ...yr(e) -}), Rr = /\s+/, zr = (e, r) => { - const { - parseClassName: t, - getClassGroupId: n, - getConflictingClassGroupIds: a - } = r, s = [], c = e.trim().split(Rr); - let l = ""; - for (let d = c.length - 1; d >= 0; d -= 1) { - const u = c[d], { - modifiers: y, - hasImportantModifier: m, - baseClassName: C, - maybePostfixModifierPosition: h - } = t(u); - let S = !!h, f = n(S ? C.substring(0, h) : C); - if (!f) { - if (!S) { - l = u + (l.length > 0 ? " " + l : l); - continue; - } - if (f = n(C), !f) { - l = u + (l.length > 0 ? " " + l : l); - continue; - } - S = !1; - } - const b = Sr(y).join(":"), k = m ? b + Oe : b, P = k + f; - if (s.includes(P)) - continue; - s.push(P); - const M = a(f, S); - for (let R = 0; R < M.length; ++R) { - const D = M[R]; - s.push(k + D); - } - l = u + (l.length > 0 ? " " + l : l); - } - return l; + return er(e, d, s, t == null ? void 0 : t.class, t == null ? void 0 : t.className); }; -function $r() { - let e = 0, r, t, n = ""; - for (; e < arguments.length; ) - (r = arguments[e++]) && (t = Ae(r)) && (n && (n += " "), n += t); - return n; +function D(...e) { + return tt(Nr(e)); } -const Ae = (e) => { - if (typeof e == "string") - return e; - let r, t = ""; - for (let n = 0; n < e.length; n++) - e[n] && (r = Ae(e[n])) && (t && (t += " "), t += r); - return t; -}; -function Tr(e, ...r) { - let t, n, a, s = c; - function c(d) { - const u = r.reduce((y, m) => m(y), e()); - return t = Pr(u), n = t.cache.get, a = t.cache.set, s = l, l(d); - } - function l(d) { - const u = n(d); - if (u) - return u; - const y = zr(d, t); - return a(d, y), y; - } - return function() { - return s($r.apply(null, arguments)); - }; -} -const x = (e) => { - const r = (t) => t[e] || []; - return r.isThemeGetter = !0, r; -}, _e = /^\[(?:([a-z-]+):)?(.+)\]$/i, jr = /^\d+\/\d+$/, Ir = /* @__PURE__ */ new Set(["px", "full", "screen"]), Er = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Mr = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, Fr = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, Or = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, Ar = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, j = (e) => U(e) || Ir.has(e) || jr.test(e), F = (e) => H(e, "length", Br), U = (e) => !!e && !Number.isNaN(Number(e)), ie = (e) => H(e, "number", U), Z = (e) => !!e && Number.isInteger(Number(e)), _r = (e) => e.endsWith("%") && U(e.slice(0, -1)), p = (e) => _e.test(e), O = (e) => Er.test(e), Lr = /* @__PURE__ */ new Set(["length", "size", "percentage"]), qr = (e) => H(e, Lr, Le), Vr = (e) => H(e, "position", Le), Gr = /* @__PURE__ */ new Set(["image", "url"]), Wr = (e) => H(e, Gr, Yr), Dr = (e) => H(e, "", Ur), J = () => !0, H = (e, r, t) => { - const n = _e.exec(e); - return n ? n[1] ? typeof r == "string" ? n[1] === r : r.has(n[1]) : t(n[2]) : !1; -}, Br = (e) => ( - // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths. - // For example, `hsl(0 0% 0%)` would be classified as a length without this check. - // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough. - Mr.test(e) && !Fr.test(e) -), Le = () => !1, Ur = (e) => Or.test(e), Yr = (e) => Ar.test(e), Hr = () => { - const e = x("colors"), r = x("spacing"), t = x("blur"), n = x("brightness"), a = x("borderColor"), s = x("borderRadius"), c = x("borderSpacing"), l = x("borderWidth"), d = x("contrast"), u = x("grayscale"), y = x("hueRotate"), m = x("invert"), C = x("gap"), h = x("gradientColorStops"), S = x("gradientColorStopPositions"), f = x("inset"), b = x("margin"), k = x("opacity"), P = x("padding"), M = x("saturate"), R = x("scale"), D = x("sepia"), g = x("skew"), z = x("space"), B = x("translate"), oe = () => ["auto", "contain", "none"], ne = () => ["auto", "hidden", "clip", "visible", "scroll"], ae = () => ["auto", p, r], w = () => [p, r], fe = () => ["", j, F], X = () => ["auto", U, p], ge = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], K = () => ["solid", "dashed", "dotted", "double", "none"], be = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], se = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], Q = () => ["", "0", p], ye = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], T = () => [U, p]; - return { - cacheSize: 500, - separator: ":", - theme: { - colors: [J], - spacing: [j, F], - blur: ["none", "", O, p], - brightness: T(), - borderColor: [e], - borderRadius: ["none", "", "full", O, p], - borderSpacing: w(), - borderWidth: fe(), - contrast: T(), - grayscale: Q(), - hueRotate: T(), - invert: Q(), - gap: w(), - gradientColorStops: [e], - gradientColorStopPositions: [_r, F], - inset: ae(), - margin: ae(), - opacity: T(), - padding: w(), - saturate: T(), - scale: T(), - sepia: Q(), - skew: T(), - space: w(), - translate: w() - }, - classGroups: { - // Layout - /** - * Aspect Ratio - * @see https://tailwindcss.com/docs/aspect-ratio - */ - aspect: [{ - aspect: ["auto", "square", "video", p] - }], - /** - * Container - * @see https://tailwindcss.com/docs/container - */ - container: ["container"], - /** - * Columns - * @see https://tailwindcss.com/docs/columns - */ - columns: [{ - columns: [O] - }], - /** - * Break After - * @see https://tailwindcss.com/docs/break-after - */ - "break-after": [{ - "break-after": ye() - }], - /** - * Break Before - * @see https://tailwindcss.com/docs/break-before - */ - "break-before": [{ - "break-before": ye() - }], - /** - * Break Inside - * @see https://tailwindcss.com/docs/break-inside - */ - "break-inside": [{ - "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"] - }], - /** - * Box Decoration Break - * @see https://tailwindcss.com/docs/box-decoration-break - */ - "box-decoration": [{ - "box-decoration": ["slice", "clone"] - }], - /** - * Box Sizing - * @see https://tailwindcss.com/docs/box-sizing - */ - box: [{ - box: ["border", "content"] - }], - /** - * Display - * @see https://tailwindcss.com/docs/display - */ - display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"], - /** - * Floats - * @see https://tailwindcss.com/docs/float - */ - float: [{ - float: ["right", "left", "none", "start", "end"] - }], - /** - * Clear - * @see https://tailwindcss.com/docs/clear - */ - clear: [{ - clear: ["left", "right", "both", "none", "start", "end"] - }], - /** - * Isolation - * @see https://tailwindcss.com/docs/isolation - */ - isolation: ["isolate", "isolation-auto"], - /** - * Object Fit - * @see https://tailwindcss.com/docs/object-fit - */ - "object-fit": [{ - object: ["contain", "cover", "fill", "none", "scale-down"] - }], - /** - * Object Position - * @see https://tailwindcss.com/docs/object-position - */ - "object-position": [{ - object: [...ge(), p] - }], - /** - * Overflow - * @see https://tailwindcss.com/docs/overflow - */ - overflow: [{ - overflow: ne() - }], - /** - * Overflow X - * @see https://tailwindcss.com/docs/overflow - */ - "overflow-x": [{ - "overflow-x": ne() - }], - /** - * Overflow Y - * @see https://tailwindcss.com/docs/overflow - */ - "overflow-y": [{ - "overflow-y": ne() - }], - /** - * Overscroll Behavior - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - overscroll: [{ - overscroll: oe() - }], - /** - * Overscroll Behavior X - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - "overscroll-x": [{ - "overscroll-x": oe() - }], - /** - * Overscroll Behavior Y - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - "overscroll-y": [{ - "overscroll-y": oe() - }], - /** - * Position - * @see https://tailwindcss.com/docs/position - */ - position: ["static", "fixed", "absolute", "relative", "sticky"], - /** - * Top / Right / Bottom / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - inset: [{ - inset: [f] - }], - /** - * Right / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - "inset-x": [{ - "inset-x": [f] - }], - /** - * Top / Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - "inset-y": [{ - "inset-y": [f] - }], - /** - * Start - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - start: [{ - start: [f] - }], - /** - * End - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - end: [{ - end: [f] - }], - /** - * Top - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - top: [{ - top: [f] - }], - /** - * Right - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - right: [{ - right: [f] - }], - /** - * Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - bottom: [{ - bottom: [f] - }], - /** - * Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - left: [{ - left: [f] - }], - /** - * Visibility - * @see https://tailwindcss.com/docs/visibility - */ - visibility: ["visible", "invisible", "collapse"], - /** - * Z-Index - * @see https://tailwindcss.com/docs/z-index - */ - z: [{ - z: ["auto", Z, p] - }], - // Flexbox and Grid - /** - * Flex Basis - * @see https://tailwindcss.com/docs/flex-basis - */ - basis: [{ - basis: ae() - }], - /** - * Flex Direction - * @see https://tailwindcss.com/docs/flex-direction - */ - "flex-direction": [{ - flex: ["row", "row-reverse", "col", "col-reverse"] - }], - /** - * Flex Wrap - * @see https://tailwindcss.com/docs/flex-wrap - */ - "flex-wrap": [{ - flex: ["wrap", "wrap-reverse", "nowrap"] - }], - /** - * Flex - * @see https://tailwindcss.com/docs/flex - */ - flex: [{ - flex: ["1", "auto", "initial", "none", p] - }], - /** - * Flex Grow - * @see https://tailwindcss.com/docs/flex-grow - */ - grow: [{ - grow: Q() - }], - /** - * Flex Shrink - * @see https://tailwindcss.com/docs/flex-shrink - */ - shrink: [{ - shrink: Q() - }], - /** - * Order - * @see https://tailwindcss.com/docs/order - */ - order: [{ - order: ["first", "last", "none", Z, p] - }], - /** - * Grid Template Columns - * @see https://tailwindcss.com/docs/grid-template-columns - */ - "grid-cols": [{ - "grid-cols": [J] - }], - /** - * Grid Column Start / End - * @see https://tailwindcss.com/docs/grid-column - */ - "col-start-end": [{ - col: ["auto", { - span: ["full", Z, p] - }, p] - }], - /** - * Grid Column Start - * @see https://tailwindcss.com/docs/grid-column - */ - "col-start": [{ - "col-start": X() - }], - /** - * Grid Column End - * @see https://tailwindcss.com/docs/grid-column - */ - "col-end": [{ - "col-end": X() - }], - /** - * Grid Template Rows - * @see https://tailwindcss.com/docs/grid-template-rows - */ - "grid-rows": [{ - "grid-rows": [J] - }], - /** - * Grid Row Start / End - * @see https://tailwindcss.com/docs/grid-row - */ - "row-start-end": [{ - row: ["auto", { - span: [Z, p] - }, p] - }], - /** - * Grid Row Start - * @see https://tailwindcss.com/docs/grid-row - */ - "row-start": [{ - "row-start": X() - }], - /** - * Grid Row End - * @see https://tailwindcss.com/docs/grid-row - */ - "row-end": [{ - "row-end": X() - }], - /** - * Grid Auto Flow - * @see https://tailwindcss.com/docs/grid-auto-flow - */ - "grid-flow": [{ - "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"] - }], - /** - * Grid Auto Columns - * @see https://tailwindcss.com/docs/grid-auto-columns - */ - "auto-cols": [{ - "auto-cols": ["auto", "min", "max", "fr", p] - }], - /** - * Grid Auto Rows - * @see https://tailwindcss.com/docs/grid-auto-rows - */ - "auto-rows": [{ - "auto-rows": ["auto", "min", "max", "fr", p] - }], - /** - * Gap - * @see https://tailwindcss.com/docs/gap - */ - gap: [{ - gap: [C] - }], - /** - * Gap X - * @see https://tailwindcss.com/docs/gap - */ - "gap-x": [{ - "gap-x": [C] - }], - /** - * Gap Y - * @see https://tailwindcss.com/docs/gap - */ - "gap-y": [{ - "gap-y": [C] - }], - /** - * Justify Content - * @see https://tailwindcss.com/docs/justify-content - */ - "justify-content": [{ - justify: ["normal", ...se()] - }], - /** - * Justify Items - * @see https://tailwindcss.com/docs/justify-items - */ - "justify-items": [{ - "justify-items": ["start", "end", "center", "stretch"] - }], - /** - * Justify Self - * @see https://tailwindcss.com/docs/justify-self - */ - "justify-self": [{ - "justify-self": ["auto", "start", "end", "center", "stretch"] - }], - /** - * Align Content - * @see https://tailwindcss.com/docs/align-content - */ - "align-content": [{ - content: ["normal", ...se(), "baseline"] - }], - /** - * Align Items - * @see https://tailwindcss.com/docs/align-items - */ - "align-items": [{ - items: ["start", "end", "center", "baseline", "stretch"] - }], - /** - * Align Self - * @see https://tailwindcss.com/docs/align-self - */ - "align-self": [{ - self: ["auto", "start", "end", "center", "stretch", "baseline"] - }], - /** - * Place Content - * @see https://tailwindcss.com/docs/place-content - */ - "place-content": [{ - "place-content": [...se(), "baseline"] - }], - /** - * Place Items - * @see https://tailwindcss.com/docs/place-items - */ - "place-items": [{ - "place-items": ["start", "end", "center", "baseline", "stretch"] - }], - /** - * Place Self - * @see https://tailwindcss.com/docs/place-self - */ - "place-self": [{ - "place-self": ["auto", "start", "end", "center", "stretch"] - }], - // Spacing - /** - * Padding - * @see https://tailwindcss.com/docs/padding - */ - p: [{ - p: [P] - }], - /** - * Padding X - * @see https://tailwindcss.com/docs/padding - */ - px: [{ - px: [P] - }], - /** - * Padding Y - * @see https://tailwindcss.com/docs/padding - */ - py: [{ - py: [P] - }], - /** - * Padding Start - * @see https://tailwindcss.com/docs/padding - */ - ps: [{ - ps: [P] - }], - /** - * Padding End - * @see https://tailwindcss.com/docs/padding - */ - pe: [{ - pe: [P] - }], - /** - * Padding Top - * @see https://tailwindcss.com/docs/padding - */ - pt: [{ - pt: [P] - }], - /** - * Padding Right - * @see https://tailwindcss.com/docs/padding - */ - pr: [{ - pr: [P] - }], - /** - * Padding Bottom - * @see https://tailwindcss.com/docs/padding - */ - pb: [{ - pb: [P] - }], - /** - * Padding Left - * @see https://tailwindcss.com/docs/padding - */ - pl: [{ - pl: [P] - }], - /** - * Margin - * @see https://tailwindcss.com/docs/margin - */ - m: [{ - m: [b] - }], - /** - * Margin X - * @see https://tailwindcss.com/docs/margin - */ - mx: [{ - mx: [b] - }], - /** - * Margin Y - * @see https://tailwindcss.com/docs/margin - */ - my: [{ - my: [b] - }], - /** - * Margin Start - * @see https://tailwindcss.com/docs/margin - */ - ms: [{ - ms: [b] - }], - /** - * Margin End - * @see https://tailwindcss.com/docs/margin - */ - me: [{ - me: [b] - }], - /** - * Margin Top - * @see https://tailwindcss.com/docs/margin - */ - mt: [{ - mt: [b] - }], - /** - * Margin Right - * @see https://tailwindcss.com/docs/margin - */ - mr: [{ - mr: [b] - }], - /** - * Margin Bottom - * @see https://tailwindcss.com/docs/margin - */ - mb: [{ - mb: [b] - }], - /** - * Margin Left - * @see https://tailwindcss.com/docs/margin - */ - ml: [{ - ml: [b] - }], - /** - * Space Between X - * @see https://tailwindcss.com/docs/space - */ - "space-x": [{ - "space-x": [z] - }], - /** - * Space Between X Reverse - * @see https://tailwindcss.com/docs/space - */ - "space-x-reverse": ["space-x-reverse"], - /** - * Space Between Y - * @see https://tailwindcss.com/docs/space - */ - "space-y": [{ - "space-y": [z] - }], - /** - * Space Between Y Reverse - * @see https://tailwindcss.com/docs/space - */ - "space-y-reverse": ["space-y-reverse"], - // Sizing - /** - * Width - * @see https://tailwindcss.com/docs/width - */ - w: [{ - w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", p, r] - }], - /** - * Min-Width - * @see https://tailwindcss.com/docs/min-width - */ - "min-w": [{ - "min-w": [p, r, "min", "max", "fit"] - }], - /** - * Max-Width - * @see https://tailwindcss.com/docs/max-width - */ - "max-w": [{ - "max-w": [p, r, "none", "full", "min", "max", "fit", "prose", { - screen: [O] - }, O] - }], - /** - * Height - * @see https://tailwindcss.com/docs/height - */ - h: [{ - h: [p, r, "auto", "min", "max", "fit", "svh", "lvh", "dvh"] - }], - /** - * Min-Height - * @see https://tailwindcss.com/docs/min-height - */ - "min-h": [{ - "min-h": [p, r, "min", "max", "fit", "svh", "lvh", "dvh"] - }], - /** - * Max-Height - * @see https://tailwindcss.com/docs/max-height - */ - "max-h": [{ - "max-h": [p, r, "min", "max", "fit", "svh", "lvh", "dvh"] - }], - /** - * Size - * @see https://tailwindcss.com/docs/size - */ - size: [{ - size: [p, r, "auto", "min", "max", "fit"] - }], - // Typography - /** - * Font Size - * @see https://tailwindcss.com/docs/font-size - */ - "font-size": [{ - text: ["base", O, F] - }], - /** - * Font Smoothing - * @see https://tailwindcss.com/docs/font-smoothing - */ - "font-smoothing": ["antialiased", "subpixel-antialiased"], - /** - * Font Style - * @see https://tailwindcss.com/docs/font-style - */ - "font-style": ["italic", "not-italic"], - /** - * Font Weight - * @see https://tailwindcss.com/docs/font-weight - */ - "font-weight": [{ - font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", ie] - }], - /** - * Font Family - * @see https://tailwindcss.com/docs/font-family - */ - "font-family": [{ - font: [J] - }], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - "fvn-normal": ["normal-nums"], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - "fvn-ordinal": ["ordinal"], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - "fvn-slashed-zero": ["slashed-zero"], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - "fvn-figure": ["lining-nums", "oldstyle-nums"], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - "fvn-spacing": ["proportional-nums", "tabular-nums"], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - "fvn-fraction": ["diagonal-fractions", "stacked-fractions"], - /** - * Letter Spacing - * @see https://tailwindcss.com/docs/letter-spacing - */ - tracking: [{ - tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", p] - }], - /** - * Line Clamp - * @see https://tailwindcss.com/docs/line-clamp - */ - "line-clamp": [{ - "line-clamp": ["none", U, ie] - }], - /** - * Line Height - * @see https://tailwindcss.com/docs/line-height - */ - leading: [{ - leading: ["none", "tight", "snug", "normal", "relaxed", "loose", j, p] - }], - /** - * List Style Image - * @see https://tailwindcss.com/docs/list-style-image - */ - "list-image": [{ - "list-image": ["none", p] - }], - /** - * List Style Type - * @see https://tailwindcss.com/docs/list-style-type - */ - "list-style-type": [{ - list: ["none", "disc", "decimal", p] - }], - /** - * List Style Position - * @see https://tailwindcss.com/docs/list-style-position - */ - "list-style-position": [{ - list: ["inside", "outside"] - }], - /** - * Placeholder Color - * @deprecated since Tailwind CSS v3.0.0 - * @see https://tailwindcss.com/docs/placeholder-color - */ - "placeholder-color": [{ - placeholder: [e] - }], - /** - * Placeholder Opacity - * @see https://tailwindcss.com/docs/placeholder-opacity - */ - "placeholder-opacity": [{ - "placeholder-opacity": [k] - }], - /** - * Text Alignment - * @see https://tailwindcss.com/docs/text-align - */ - "text-alignment": [{ - text: ["left", "center", "right", "justify", "start", "end"] - }], - /** - * Text Color - * @see https://tailwindcss.com/docs/text-color - */ - "text-color": [{ - text: [e] - }], - /** - * Text Opacity - * @see https://tailwindcss.com/docs/text-opacity - */ - "text-opacity": [{ - "text-opacity": [k] - }], - /** - * Text Decoration - * @see https://tailwindcss.com/docs/text-decoration - */ - "text-decoration": ["underline", "overline", "line-through", "no-underline"], - /** - * Text Decoration Style - * @see https://tailwindcss.com/docs/text-decoration-style - */ - "text-decoration-style": [{ - decoration: [...K(), "wavy"] - }], - /** - * Text Decoration Thickness - * @see https://tailwindcss.com/docs/text-decoration-thickness - */ - "text-decoration-thickness": [{ - decoration: ["auto", "from-font", j, F] - }], - /** - * Text Underline Offset - * @see https://tailwindcss.com/docs/text-underline-offset - */ - "underline-offset": [{ - "underline-offset": ["auto", j, p] - }], - /** - * Text Decoration Color - * @see https://tailwindcss.com/docs/text-decoration-color - */ - "text-decoration-color": [{ - decoration: [e] - }], - /** - * Text Transform - * @see https://tailwindcss.com/docs/text-transform - */ - "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"], - /** - * Text Overflow - * @see https://tailwindcss.com/docs/text-overflow - */ - "text-overflow": ["truncate", "text-ellipsis", "text-clip"], - /** - * Text Wrap - * @see https://tailwindcss.com/docs/text-wrap - */ - "text-wrap": [{ - text: ["wrap", "nowrap", "balance", "pretty"] - }], - /** - * Text Indent - * @see https://tailwindcss.com/docs/text-indent - */ - indent: [{ - indent: w() - }], - /** - * Vertical Alignment - * @see https://tailwindcss.com/docs/vertical-align - */ - "vertical-align": [{ - align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", p] - }], - /** - * Whitespace - * @see https://tailwindcss.com/docs/whitespace - */ - whitespace: [{ - whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"] - }], - /** - * Word Break - * @see https://tailwindcss.com/docs/word-break - */ - break: [{ - break: ["normal", "words", "all", "keep"] - }], - /** - * Hyphens - * @see https://tailwindcss.com/docs/hyphens - */ - hyphens: [{ - hyphens: ["none", "manual", "auto"] - }], - /** - * Content - * @see https://tailwindcss.com/docs/content - */ - content: [{ - content: ["none", p] - }], - // Backgrounds - /** - * Background Attachment - * @see https://tailwindcss.com/docs/background-attachment - */ - "bg-attachment": [{ - bg: ["fixed", "local", "scroll"] - }], - /** - * Background Clip - * @see https://tailwindcss.com/docs/background-clip - */ - "bg-clip": [{ - "bg-clip": ["border", "padding", "content", "text"] - }], - /** - * Background Opacity - * @deprecated since Tailwind CSS v3.0.0 - * @see https://tailwindcss.com/docs/background-opacity - */ - "bg-opacity": [{ - "bg-opacity": [k] - }], - /** - * Background Origin - * @see https://tailwindcss.com/docs/background-origin - */ - "bg-origin": [{ - "bg-origin": ["border", "padding", "content"] - }], - /** - * Background Position - * @see https://tailwindcss.com/docs/background-position - */ - "bg-position": [{ - bg: [...ge(), Vr] - }], - /** - * Background Repeat - * @see https://tailwindcss.com/docs/background-repeat - */ - "bg-repeat": [{ - bg: ["no-repeat", { - repeat: ["", "x", "y", "round", "space"] - }] - }], - /** - * Background Size - * @see https://tailwindcss.com/docs/background-size - */ - "bg-size": [{ - bg: ["auto", "cover", "contain", qr] - }], - /** - * Background Image - * @see https://tailwindcss.com/docs/background-image - */ - "bg-image": [{ - bg: ["none", { - "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"] - }, Wr] - }], - /** - * Background Color - * @see https://tailwindcss.com/docs/background-color - */ - "bg-color": [{ - bg: [e] - }], - /** - * Gradient Color Stops From Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - "gradient-from-pos": [{ - from: [S] - }], - /** - * Gradient Color Stops Via Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - "gradient-via-pos": [{ - via: [S] - }], - /** - * Gradient Color Stops To Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - "gradient-to-pos": [{ - to: [S] - }], - /** - * Gradient Color Stops From - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - "gradient-from": [{ - from: [h] - }], - /** - * Gradient Color Stops Via - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - "gradient-via": [{ - via: [h] - }], - /** - * Gradient Color Stops To - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - "gradient-to": [{ - to: [h] - }], - // Borders - /** - * Border Radius - * @see https://tailwindcss.com/docs/border-radius - */ - rounded: [{ - rounded: [s] - }], - /** - * Border Radius Start - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-s": [{ - "rounded-s": [s] - }], - /** - * Border Radius End - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-e": [{ - "rounded-e": [s] - }], - /** - * Border Radius Top - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-t": [{ - "rounded-t": [s] - }], - /** - * Border Radius Right - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-r": [{ - "rounded-r": [s] - }], - /** - * Border Radius Bottom - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-b": [{ - "rounded-b": [s] - }], - /** - * Border Radius Left - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-l": [{ - "rounded-l": [s] - }], - /** - * Border Radius Start Start - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-ss": [{ - "rounded-ss": [s] - }], - /** - * Border Radius Start End - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-se": [{ - "rounded-se": [s] - }], - /** - * Border Radius End End - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-ee": [{ - "rounded-ee": [s] - }], - /** - * Border Radius End Start - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-es": [{ - "rounded-es": [s] - }], - /** - * Border Radius Top Left - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-tl": [{ - "rounded-tl": [s] - }], - /** - * Border Radius Top Right - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-tr": [{ - "rounded-tr": [s] - }], - /** - * Border Radius Bottom Right - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-br": [{ - "rounded-br": [s] - }], - /** - * Border Radius Bottom Left - * @see https://tailwindcss.com/docs/border-radius - */ - "rounded-bl": [{ - "rounded-bl": [s] - }], - /** - * Border Width - * @see https://tailwindcss.com/docs/border-width - */ - "border-w": [{ - border: [l] - }], - /** - * Border Width X - * @see https://tailwindcss.com/docs/border-width - */ - "border-w-x": [{ - "border-x": [l] - }], - /** - * Border Width Y - * @see https://tailwindcss.com/docs/border-width - */ - "border-w-y": [{ - "border-y": [l] - }], - /** - * Border Width Start - * @see https://tailwindcss.com/docs/border-width - */ - "border-w-s": [{ - "border-s": [l] - }], - /** - * Border Width End - * @see https://tailwindcss.com/docs/border-width - */ - "border-w-e": [{ - "border-e": [l] - }], - /** - * Border Width Top - * @see https://tailwindcss.com/docs/border-width - */ - "border-w-t": [{ - "border-t": [l] - }], - /** - * Border Width Right - * @see https://tailwindcss.com/docs/border-width - */ - "border-w-r": [{ - "border-r": [l] - }], - /** - * Border Width Bottom - * @see https://tailwindcss.com/docs/border-width - */ - "border-w-b": [{ - "border-b": [l] - }], - /** - * Border Width Left - * @see https://tailwindcss.com/docs/border-width - */ - "border-w-l": [{ - "border-l": [l] - }], - /** - * Border Opacity - * @see https://tailwindcss.com/docs/border-opacity - */ - "border-opacity": [{ - "border-opacity": [k] - }], - /** - * Border Style - * @see https://tailwindcss.com/docs/border-style - */ - "border-style": [{ - border: [...K(), "hidden"] - }], - /** - * Divide Width X - * @see https://tailwindcss.com/docs/divide-width - */ - "divide-x": [{ - "divide-x": [l] - }], - /** - * Divide Width X Reverse - * @see https://tailwindcss.com/docs/divide-width - */ - "divide-x-reverse": ["divide-x-reverse"], - /** - * Divide Width Y - * @see https://tailwindcss.com/docs/divide-width - */ - "divide-y": [{ - "divide-y": [l] - }], - /** - * Divide Width Y Reverse - * @see https://tailwindcss.com/docs/divide-width - */ - "divide-y-reverse": ["divide-y-reverse"], - /** - * Divide Opacity - * @see https://tailwindcss.com/docs/divide-opacity - */ - "divide-opacity": [{ - "divide-opacity": [k] - }], - /** - * Divide Style - * @see https://tailwindcss.com/docs/divide-style - */ - "divide-style": [{ - divide: K() - }], - /** - * Border Color - * @see https://tailwindcss.com/docs/border-color - */ - "border-color": [{ - border: [a] - }], - /** - * Border Color X - * @see https://tailwindcss.com/docs/border-color - */ - "border-color-x": [{ - "border-x": [a] - }], - /** - * Border Color Y - * @see https://tailwindcss.com/docs/border-color - */ - "border-color-y": [{ - "border-y": [a] - }], - /** - * Border Color S - * @see https://tailwindcss.com/docs/border-color - */ - "border-color-s": [{ - "border-s": [a] - }], - /** - * Border Color E - * @see https://tailwindcss.com/docs/border-color - */ - "border-color-e": [{ - "border-e": [a] - }], - /** - * Border Color Top - * @see https://tailwindcss.com/docs/border-color - */ - "border-color-t": [{ - "border-t": [a] - }], - /** - * Border Color Right - * @see https://tailwindcss.com/docs/border-color - */ - "border-color-r": [{ - "border-r": [a] - }], - /** - * Border Color Bottom - * @see https://tailwindcss.com/docs/border-color - */ - "border-color-b": [{ - "border-b": [a] - }], - /** - * Border Color Left - * @see https://tailwindcss.com/docs/border-color - */ - "border-color-l": [{ - "border-l": [a] - }], - /** - * Divide Color - * @see https://tailwindcss.com/docs/divide-color - */ - "divide-color": [{ - divide: [a] - }], - /** - * Outline Style - * @see https://tailwindcss.com/docs/outline-style - */ - "outline-style": [{ - outline: ["", ...K()] - }], - /** - * Outline Offset - * @see https://tailwindcss.com/docs/outline-offset - */ - "outline-offset": [{ - "outline-offset": [j, p] - }], - /** - * Outline Width - * @see https://tailwindcss.com/docs/outline-width - */ - "outline-w": [{ - outline: [j, F] - }], - /** - * Outline Color - * @see https://tailwindcss.com/docs/outline-color - */ - "outline-color": [{ - outline: [e] - }], - /** - * Ring Width - * @see https://tailwindcss.com/docs/ring-width - */ - "ring-w": [{ - ring: fe() - }], - /** - * Ring Width Inset - * @see https://tailwindcss.com/docs/ring-width - */ - "ring-w-inset": ["ring-inset"], - /** - * Ring Color - * @see https://tailwindcss.com/docs/ring-color - */ - "ring-color": [{ - ring: [e] - }], - /** - * Ring Opacity - * @see https://tailwindcss.com/docs/ring-opacity - */ - "ring-opacity": [{ - "ring-opacity": [k] - }], - /** - * Ring Offset Width - * @see https://tailwindcss.com/docs/ring-offset-width - */ - "ring-offset-w": [{ - "ring-offset": [j, F] - }], - /** - * Ring Offset Color - * @see https://tailwindcss.com/docs/ring-offset-color - */ - "ring-offset-color": [{ - "ring-offset": [e] - }], - // Effects - /** - * Box Shadow - * @see https://tailwindcss.com/docs/box-shadow - */ - shadow: [{ - shadow: ["", "inner", "none", O, Dr] - }], - /** - * Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow-color - */ - "shadow-color": [{ - shadow: [J] - }], - /** - * Opacity - * @see https://tailwindcss.com/docs/opacity - */ - opacity: [{ - opacity: [k] - }], - /** - * Mix Blend Mode - * @see https://tailwindcss.com/docs/mix-blend-mode - */ - "mix-blend": [{ - "mix-blend": [...be(), "plus-lighter", "plus-darker"] - }], - /** - * Background Blend Mode - * @see https://tailwindcss.com/docs/background-blend-mode - */ - "bg-blend": [{ - "bg-blend": be() - }], - // Filters - /** - * Filter - * @deprecated since Tailwind CSS v3.0.0 - * @see https://tailwindcss.com/docs/filter - */ - filter: [{ - filter: ["", "none"] - }], - /** - * Blur - * @see https://tailwindcss.com/docs/blur - */ - blur: [{ - blur: [t] - }], - /** - * Brightness - * @see https://tailwindcss.com/docs/brightness - */ - brightness: [{ - brightness: [n] - }], - /** - * Contrast - * @see https://tailwindcss.com/docs/contrast - */ - contrast: [{ - contrast: [d] - }], - /** - * Drop Shadow - * @see https://tailwindcss.com/docs/drop-shadow - */ - "drop-shadow": [{ - "drop-shadow": ["", "none", O, p] - }], - /** - * Grayscale - * @see https://tailwindcss.com/docs/grayscale - */ - grayscale: [{ - grayscale: [u] - }], - /** - * Hue Rotate - * @see https://tailwindcss.com/docs/hue-rotate - */ - "hue-rotate": [{ - "hue-rotate": [y] - }], - /** - * Invert - * @see https://tailwindcss.com/docs/invert - */ - invert: [{ - invert: [m] - }], - /** - * Saturate - * @see https://tailwindcss.com/docs/saturate - */ - saturate: [{ - saturate: [M] - }], - /** - * Sepia - * @see https://tailwindcss.com/docs/sepia - */ - sepia: [{ - sepia: [D] - }], - /** - * Backdrop Filter - * @deprecated since Tailwind CSS v3.0.0 - * @see https://tailwindcss.com/docs/backdrop-filter - */ - "backdrop-filter": [{ - "backdrop-filter": ["", "none"] - }], - /** - * Backdrop Blur - * @see https://tailwindcss.com/docs/backdrop-blur - */ - "backdrop-blur": [{ - "backdrop-blur": [t] - }], - /** - * Backdrop Brightness - * @see https://tailwindcss.com/docs/backdrop-brightness - */ - "backdrop-brightness": [{ - "backdrop-brightness": [n] - }], - /** - * Backdrop Contrast - * @see https://tailwindcss.com/docs/backdrop-contrast - */ - "backdrop-contrast": [{ - "backdrop-contrast": [d] - }], - /** - * Backdrop Grayscale - * @see https://tailwindcss.com/docs/backdrop-grayscale - */ - "backdrop-grayscale": [{ - "backdrop-grayscale": [u] - }], - /** - * Backdrop Hue Rotate - * @see https://tailwindcss.com/docs/backdrop-hue-rotate - */ - "backdrop-hue-rotate": [{ - "backdrop-hue-rotate": [y] - }], - /** - * Backdrop Invert - * @see https://tailwindcss.com/docs/backdrop-invert - */ - "backdrop-invert": [{ - "backdrop-invert": [m] - }], - /** - * Backdrop Opacity - * @see https://tailwindcss.com/docs/backdrop-opacity - */ - "backdrop-opacity": [{ - "backdrop-opacity": [k] - }], - /** - * Backdrop Saturate - * @see https://tailwindcss.com/docs/backdrop-saturate - */ - "backdrop-saturate": [{ - "backdrop-saturate": [M] - }], - /** - * Backdrop Sepia - * @see https://tailwindcss.com/docs/backdrop-sepia - */ - "backdrop-sepia": [{ - "backdrop-sepia": [D] - }], - // Tables - /** - * Border Collapse - * @see https://tailwindcss.com/docs/border-collapse - */ - "border-collapse": [{ - border: ["collapse", "separate"] - }], - /** - * Border Spacing - * @see https://tailwindcss.com/docs/border-spacing - */ - "border-spacing": [{ - "border-spacing": [c] - }], - /** - * Border Spacing X - * @see https://tailwindcss.com/docs/border-spacing - */ - "border-spacing-x": [{ - "border-spacing-x": [c] - }], - /** - * Border Spacing Y - * @see https://tailwindcss.com/docs/border-spacing - */ - "border-spacing-y": [{ - "border-spacing-y": [c] - }], - /** - * Table Layout - * @see https://tailwindcss.com/docs/table-layout - */ - "table-layout": [{ - table: ["auto", "fixed"] - }], - /** - * Caption Side - * @see https://tailwindcss.com/docs/caption-side - */ - caption: [{ - caption: ["top", "bottom"] - }], - // Transitions and Animation - /** - * Tranisition Property - * @see https://tailwindcss.com/docs/transition-property - */ - transition: [{ - transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", p] - }], - /** - * Transition Duration - * @see https://tailwindcss.com/docs/transition-duration - */ - duration: [{ - duration: T() - }], - /** - * Transition Timing Function - * @see https://tailwindcss.com/docs/transition-timing-function - */ - ease: [{ - ease: ["linear", "in", "out", "in-out", p] - }], - /** - * Transition Delay - * @see https://tailwindcss.com/docs/transition-delay - */ - delay: [{ - delay: T() - }], - /** - * Animation - * @see https://tailwindcss.com/docs/animation - */ - animate: [{ - animate: ["none", "spin", "ping", "pulse", "bounce", p] - }], - // Transforms - /** - * Transform - * @see https://tailwindcss.com/docs/transform - */ - transform: [{ - transform: ["", "gpu", "none"] - }], - /** - * Scale - * @see https://tailwindcss.com/docs/scale - */ - scale: [{ - scale: [R] - }], - /** - * Scale X - * @see https://tailwindcss.com/docs/scale - */ - "scale-x": [{ - "scale-x": [R] - }], - /** - * Scale Y - * @see https://tailwindcss.com/docs/scale - */ - "scale-y": [{ - "scale-y": [R] - }], - /** - * Rotate - * @see https://tailwindcss.com/docs/rotate - */ - rotate: [{ - rotate: [Z, p] - }], - /** - * Translate X - * @see https://tailwindcss.com/docs/translate - */ - "translate-x": [{ - "translate-x": [B] - }], - /** - * Translate Y - * @see https://tailwindcss.com/docs/translate - */ - "translate-y": [{ - "translate-y": [B] - }], - /** - * Skew X - * @see https://tailwindcss.com/docs/skew - */ - "skew-x": [{ - "skew-x": [g] - }], - /** - * Skew Y - * @see https://tailwindcss.com/docs/skew - */ - "skew-y": [{ - "skew-y": [g] - }], - /** - * Transform Origin - * @see https://tailwindcss.com/docs/transform-origin - */ - "transform-origin": [{ - origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", p] - }], - // Interactivity - /** - * Accent Color - * @see https://tailwindcss.com/docs/accent-color - */ - accent: [{ - accent: ["auto", e] - }], - /** - * Appearance - * @see https://tailwindcss.com/docs/appearance - */ - appearance: [{ - appearance: ["none", "auto"] - }], - /** - * Cursor - * @see https://tailwindcss.com/docs/cursor - */ - cursor: [{ - cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", p] - }], - /** - * Caret Color - * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities - */ - "caret-color": [{ - caret: [e] - }], - /** - * Pointer Events - * @see https://tailwindcss.com/docs/pointer-events - */ - "pointer-events": [{ - "pointer-events": ["none", "auto"] - }], - /** - * Resize - * @see https://tailwindcss.com/docs/resize - */ - resize: [{ - resize: ["none", "y", "x", ""] - }], - /** - * Scroll Behavior - * @see https://tailwindcss.com/docs/scroll-behavior - */ - "scroll-behavior": [{ - scroll: ["auto", "smooth"] - }], - /** - * Scroll Margin - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-m": [{ - "scroll-m": w() - }], - /** - * Scroll Margin X - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-mx": [{ - "scroll-mx": w() - }], - /** - * Scroll Margin Y - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-my": [{ - "scroll-my": w() - }], - /** - * Scroll Margin Start - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-ms": [{ - "scroll-ms": w() - }], - /** - * Scroll Margin End - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-me": [{ - "scroll-me": w() - }], - /** - * Scroll Margin Top - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-mt": [{ - "scroll-mt": w() - }], - /** - * Scroll Margin Right - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-mr": [{ - "scroll-mr": w() - }], - /** - * Scroll Margin Bottom - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-mb": [{ - "scroll-mb": w() - }], - /** - * Scroll Margin Left - * @see https://tailwindcss.com/docs/scroll-margin - */ - "scroll-ml": [{ - "scroll-ml": w() - }], - /** - * Scroll Padding - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-p": [{ - "scroll-p": w() - }], - /** - * Scroll Padding X - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-px": [{ - "scroll-px": w() - }], - /** - * Scroll Padding Y - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-py": [{ - "scroll-py": w() - }], - /** - * Scroll Padding Start - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-ps": [{ - "scroll-ps": w() - }], - /** - * Scroll Padding End - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-pe": [{ - "scroll-pe": w() - }], - /** - * Scroll Padding Top - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-pt": [{ - "scroll-pt": w() - }], - /** - * Scroll Padding Right - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-pr": [{ - "scroll-pr": w() - }], - /** - * Scroll Padding Bottom - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-pb": [{ - "scroll-pb": w() - }], - /** - * Scroll Padding Left - * @see https://tailwindcss.com/docs/scroll-padding - */ - "scroll-pl": [{ - "scroll-pl": w() - }], - /** - * Scroll Snap Align - * @see https://tailwindcss.com/docs/scroll-snap-align - */ - "snap-align": [{ - snap: ["start", "end", "center", "align-none"] - }], - /** - * Scroll Snap Stop - * @see https://tailwindcss.com/docs/scroll-snap-stop - */ - "snap-stop": [{ - snap: ["normal", "always"] - }], - /** - * Scroll Snap Type - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - "snap-type": [{ - snap: ["none", "x", "y", "both"] - }], - /** - * Scroll Snap Type Strictness - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - "snap-strictness": [{ - snap: ["mandatory", "proximity"] - }], - /** - * Touch Action - * @see https://tailwindcss.com/docs/touch-action - */ - touch: [{ - touch: ["auto", "none", "manipulation"] - }], - /** - * Touch Action X - * @see https://tailwindcss.com/docs/touch-action - */ - "touch-x": [{ - "touch-pan": ["x", "left", "right"] - }], - /** - * Touch Action Y - * @see https://tailwindcss.com/docs/touch-action - */ - "touch-y": [{ - "touch-pan": ["y", "up", "down"] - }], - /** - * Touch Action Pinch Zoom - * @see https://tailwindcss.com/docs/touch-action - */ - "touch-pz": ["touch-pinch-zoom"], - /** - * User Select - * @see https://tailwindcss.com/docs/user-select - */ - select: [{ - select: ["none", "text", "all", "auto"] - }], - /** - * Will Change - * @see https://tailwindcss.com/docs/will-change - */ - "will-change": [{ - "will-change": ["auto", "scroll", "contents", "transform", p] - }], - // SVG - /** - * Fill - * @see https://tailwindcss.com/docs/fill - */ - fill: [{ - fill: [e, "none"] - }], - /** - * Stroke Width - * @see https://tailwindcss.com/docs/stroke-width - */ - "stroke-w": [{ - stroke: [j, F, ie] - }], - /** - * Stroke - * @see https://tailwindcss.com/docs/stroke - */ - stroke: [{ - stroke: [e, "none"] - }], - // Accessibility - /** - * Screen Readers - * @see https://tailwindcss.com/docs/screen-readers - */ - sr: ["sr-only", "not-sr-only"], - /** - * Forced Color Adjust - * @see https://tailwindcss.com/docs/forced-color-adjust - */ - "forced-color-adjust": [{ - "forced-color-adjust": ["auto", "none"] - }] - }, - conflictingClassGroups: { - overflow: ["overflow-x", "overflow-y"], - overscroll: ["overscroll-x", "overscroll-y"], - inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"], - "inset-x": ["right", "left"], - "inset-y": ["top", "bottom"], - flex: ["basis", "grow", "shrink"], - gap: ["gap-x", "gap-y"], - p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"], - px: ["pr", "pl"], - py: ["pt", "pb"], - m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"], - mx: ["mr", "ml"], - my: ["mt", "mb"], - size: ["w", "h"], - "font-size": ["leading"], - "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"], - "fvn-ordinal": ["fvn-normal"], - "fvn-slashed-zero": ["fvn-normal"], - "fvn-figure": ["fvn-normal"], - "fvn-spacing": ["fvn-normal"], - "fvn-fraction": ["fvn-normal"], - "line-clamp": ["display", "overflow"], - rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"], - "rounded-s": ["rounded-ss", "rounded-es"], - "rounded-e": ["rounded-se", "rounded-ee"], - "rounded-t": ["rounded-tl", "rounded-tr"], - "rounded-r": ["rounded-tr", "rounded-br"], - "rounded-b": ["rounded-br", "rounded-bl"], - "rounded-l": ["rounded-tl", "rounded-bl"], - "border-spacing": ["border-spacing-x", "border-spacing-y"], - "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"], - "border-w-x": ["border-w-r", "border-w-l"], - "border-w-y": ["border-w-t", "border-w-b"], - "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"], - "border-color-x": ["border-color-r", "border-color-l"], - "border-color-y": ["border-color-t", "border-color-b"], - "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"], - "scroll-mx": ["scroll-mr", "scroll-ml"], - "scroll-my": ["scroll-mt", "scroll-mb"], - "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"], - "scroll-px": ["scroll-pr", "scroll-pl"], - "scroll-py": ["scroll-pt", "scroll-pb"], - touch: ["touch-x", "touch-y", "touch-pz"], - "touch-x": ["touch"], - "touch-y": ["touch"], - "touch-pz": ["touch"] - }, - conflictingClassGroupModifiers: { - "font-size": ["leading"] - } - }; -}, Qr = /* @__PURE__ */ Tr(Hr); -function N(...e) { - return Qr(Me(e)); -} -const Zr = pe( +const ht = Ve( "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", { variants: { @@ -2408,42 +152,42 @@ const Zr = pe( size: "default" } } -), $ = v.forwardRef( - ({ className: e, variant: r, size: t, asChild: n = !1, ...a }, s) => /* @__PURE__ */ o(n ? mr : "button", { className: N(Zr({ variant: r, size: t, className: e })), ref: s, ...a }) +), te = L.forwardRef( + ({ className: e, variant: r, size: t, asChild: n = !1, ...o }, i) => /* @__PURE__ */ a(n ? lt : "button", { className: D(ht({ variant: r, size: t, className: e })), ref: i, ...o }) ); -$.displayName = "Button"; -function ee(e) { +te.displayName = "Button"; +function Ne(e) { return { subtotal: e.reduce((r, t) => r + t.price * t.quantity, 0), itemCount: e.reduce((r, t) => r + t.quantity, 0) }; } -const E = sr()( - ir( +const se = nt()( + at( (e) => ({ items: [], subtotal: 0, itemCount: 0, addItem: (r) => e((t) => { - const n = t.items.find((s) => s.id === r.id); - let a; - return n ? a = t.items.map( - (s) => s.id === r.id ? { ...s, quantity: s.quantity + (r.quantity ?? 1) } : s - ) : a = [...t.items, { ...r, quantity: r.quantity ?? 1 }], { items: a, ...ee(a) }; + const n = t.items.find((i) => i.id === r.id); + let o; + return n ? o = t.items.map( + (i) => i.id === r.id ? { ...i, quantity: i.quantity + (r.quantity ?? 1) } : i + ) : o = [...t.items, { ...r, quantity: r.quantity ?? 1 }], { items: o, ...Ne(o) }; }), removeItem: (r) => e((t) => { - const n = t.items.filter((a) => a.id !== r); - return { items: n, ...ee(n) }; + const n = t.items.filter((o) => o.id !== r); + return { items: n, ...Ne(n) }; }), updateQuantity: (r, t) => e((n) => { if (t <= 0) { - const s = n.items.filter((c) => c.id !== r); - return { items: s, ...ee(s) }; + const i = n.items.filter((d) => d.id !== r); + return { items: i, ...Ne(i) }; } - const a = n.items.map( - (s) => s.id === r ? { ...s, quantity: t } : s + const o = n.items.map( + (i) => i.id === r ? { ...i, quantity: t } : i ); - return { items: a, ...ee(a) }; + return { items: o, ...Ne(o) }; }), clearCart: () => e({ items: [], subtotal: 0, itemCount: 0 }) }), @@ -2452,33 +196,33 @@ const E = sr()( } ) ); -function Jr({ item: e, className: r }) { - const t = E((s) => s.updateQuantity), n = E((s) => s.removeItem), a = e.price * e.quantity; - return /* @__PURE__ */ i( +function yt({ item: e, className: r }) { + const t = se((i) => i.updateQuantity), n = se((i) => i.removeItem), o = e.price * e.quantity; + return /* @__PURE__ */ c( "div", { - className: N( + className: D( "flex items-center gap-4 rounded-lg border border-border/50 bg-card p-4 transition-colors hover:bg-accent/5", r ), children: [ - e.image ? /* @__PURE__ */ o( + e.image ? /* @__PURE__ */ a( "img", { src: e.image, alt: e.title, className: "h-20 w-20 shrink-0 rounded-md object-cover" } - ) : /* @__PURE__ */ o("div", { className: "flex h-20 w-20 shrink-0 items-center justify-center rounded-md bg-muted text-xs text-muted-foreground", children: "No img" }), - /* @__PURE__ */ i("div", { className: "flex flex-1 flex-col gap-1 min-w-0", children: [ - /* @__PURE__ */ o("span", { className: "truncate font-medium", children: e.title }), - e.variant && /* @__PURE__ */ o("span", { className: "text-xs text-muted-foreground", children: e.variant }), - /* @__PURE__ */ i("span", { className: "text-sm text-muted-foreground", children: [ + ) : /* @__PURE__ */ a("div", { className: "flex h-20 w-20 shrink-0 items-center justify-center rounded-md bg-muted text-xs text-muted-foreground", children: "No img" }), + /* @__PURE__ */ c("div", { className: "flex flex-1 flex-col gap-1 min-w-0", children: [ + /* @__PURE__ */ a("span", { className: "truncate font-medium", children: e.title }), + e.variant && /* @__PURE__ */ a("span", { className: "text-xs text-muted-foreground", children: e.variant }), + /* @__PURE__ */ c("span", { className: "text-sm text-muted-foreground", children: [ "$", e.price.toFixed(2), " each" ] }), - e.vendorSlug && /* @__PURE__ */ i( + e.vendorSlug && /* @__PURE__ */ c( "a", { href: `/user/${e.vendorSlug}`, @@ -2490,73 +234,73 @@ function Jr({ item: e, className: r }) { } ) ] }), - /* @__PURE__ */ i("div", { className: "flex items-center gap-1", children: [ - /* @__PURE__ */ o( - $, + /* @__PURE__ */ c("div", { className: "flex items-center gap-1", children: [ + /* @__PURE__ */ a( + te, { variant: "outline", size: "icon", className: "h-8 w-8", onClick: () => t(e.id, e.quantity - 1), "aria-label": "Decrease quantity", - children: /* @__PURE__ */ o(Ue, { className: "h-3 w-3" }) + children: /* @__PURE__ */ a(Yr, { className: "h-3 w-3" }) } ), - /* @__PURE__ */ o("span", { className: "w-8 text-center text-sm font-medium tabular-nums", children: e.quantity }), - /* @__PURE__ */ o( - $, + /* @__PURE__ */ a("span", { className: "w-8 text-center text-sm font-medium tabular-nums", children: e.quantity }), + /* @__PURE__ */ a( + te, { variant: "outline", size: "icon", className: "h-8 w-8", onClick: () => t(e.id, e.quantity + 1), "aria-label": "Increase quantity", - children: /* @__PURE__ */ o(Ye, { className: "h-3 w-3" }) + children: /* @__PURE__ */ a(zr, { className: "h-3 w-3" }) } ) ] }), - /* @__PURE__ */ i("span", { className: "w-20 text-right font-semibold tabular-nums", children: [ + /* @__PURE__ */ c("span", { className: "w-20 text-right font-semibold tabular-nums", children: [ "$", - a.toFixed(2) + o.toFixed(2) ] }), - /* @__PURE__ */ o( - $, + /* @__PURE__ */ a( + te, { variant: "ghost", size: "icon", className: "h-8 w-8 text-destructive hover:text-destructive", onClick: () => n(e.id), "aria-label": `Remove ${e.title}`, - children: /* @__PURE__ */ o($e, { className: "h-4 w-4" }) + children: /* @__PURE__ */ a(gr, { className: "h-4 w-4" }) } ) ] } ); } -const A = v.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ o("div", { ref: t, className: N("rounded-lg border bg-card text-card-foreground shadow-sm", e), ...r })); -A.displayName = "Card"; -const G = v.forwardRef( - ({ className: e, ...r }, t) => /* @__PURE__ */ o("div", { ref: t, className: N("flex flex-col space-y-1.5 p-6", e), ...r }) +const ue = L.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ a("div", { ref: t, className: D("rounded-lg border bg-card text-card-foreground shadow-sm", e), ...r })); +ue.displayName = "Card"; +const pe = L.forwardRef( + ({ className: e, ...r }, t) => /* @__PURE__ */ a("div", { ref: t, className: D("flex flex-col space-y-1.5 p-6", e), ...r }) ); -G.displayName = "CardHeader"; -const W = v.forwardRef( - ({ className: e, ...r }, t) => /* @__PURE__ */ o("h3", { ref: t, className: N("text-2xl font-semibold leading-none tracking-tight", e), ...r }) +pe.displayName = "CardHeader"; +const he = L.forwardRef( + ({ className: e, ...r }, t) => /* @__PURE__ */ a("h3", { ref: t, className: D("text-2xl font-semibold leading-none tracking-tight", e), ...r }) ); -W.displayName = "CardTitle"; -const Xr = v.forwardRef( - ({ className: e, ...r }, t) => /* @__PURE__ */ o("p", { ref: t, className: N("text-sm text-muted-foreground", e), ...r }) +he.displayName = "CardTitle"; +const vt = L.forwardRef( + ({ className: e, ...r }, t) => /* @__PURE__ */ a("p", { ref: t, className: D("text-sm text-muted-foreground", e), ...r }) ); -Xr.displayName = "CardDescription"; -const _ = v.forwardRef( - ({ className: e, ...r }, t) => /* @__PURE__ */ o("div", { ref: t, className: N("p-6 pt-0", e), ...r }) +vt.displayName = "CardDescription"; +const de = L.forwardRef( + ({ className: e, ...r }, t) => /* @__PURE__ */ a("div", { ref: t, className: D("p-6 pt-0", e), ...r }) ); -_.displayName = "CardContent"; -const qe = v.forwardRef( - ({ className: e, ...r }, t) => /* @__PURE__ */ o("div", { ref: t, className: N("flex items-center p-6 pt-0", e), ...r }) +de.displayName = "CardContent"; +const Sr = L.forwardRef( + ({ className: e, ...r }, t) => /* @__PURE__ */ a("div", { ref: t, className: D("flex items-center p-6 pt-0", e), ...r }) ); -qe.displayName = "CardFooter"; -var Kr = [ +Sr.displayName = "CardFooter"; +var gt = [ "a", "button", "div", @@ -2574,138 +318,138 @@ var Kr = [ "span", "svg", "ul" -], et = Kr.reduce((e, r) => { - const t = /* @__PURE__ */ me(`Primitive.${r}`), n = v.forwardRef((a, s) => { - const { asChild: c, ...l } = a, d = c ? t : r; - return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ o(d, { ...l, ref: s }); +], bt = gt.reduce((e, r) => { + const t = /* @__PURE__ */ ze(`Primitive.${r}`), n = L.forwardRef((o, i) => { + const { asChild: d, ...l } = o, s = d ? t : r; + return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ a(s, { ...l, ref: i }); }); return n.displayName = `Primitive.${r}`, { ...e, [r]: n }; -}, {}), rt = "Separator", Re = "horizontal", tt = ["horizontal", "vertical"], Ve = v.forwardRef((e, r) => { - const { decorative: t, orientation: n = Re, ...a } = e, s = ot(n) ? n : Re, l = t ? { role: "none" } : { "aria-orientation": s === "vertical" ? s : void 0, role: "separator" }; - return /* @__PURE__ */ o( - et.div, +}, {}), xt = "Separator", rr = "horizontal", wt = ["horizontal", "vertical"], Cr = L.forwardRef((e, r) => { + const { decorative: t, orientation: n = rr, ...o } = e, i = Nt(n) ? n : rr, l = t ? { role: "none" } : { "aria-orientation": i === "vertical" ? i : void 0, role: "separator" }; + return /* @__PURE__ */ a( + bt.div, { - "data-orientation": s, + "data-orientation": i, ...l, - ...a, + ...o, ref: r } ); }); -Ve.displayName = rt; -function ot(e) { - return tt.includes(e); +Cr.displayName = xt; +function Nt(e) { + return wt.includes(e); } -var Ge = Ve; -const Y = v.forwardRef(({ className: e, orientation: r = "horizontal", decorative: t = !0, ...n }, a) => /* @__PURE__ */ o( - Ge, +var Er = Cr; +const ye = L.forwardRef(({ className: e, orientation: r = "horizontal", decorative: t = !0, ...n }, o) => /* @__PURE__ */ a( + Er, { - ref: a, + ref: o, decorative: t, orientation: r, - className: N("shrink-0 bg-border", r === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", e), + className: D("shrink-0 bg-border", r === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", e), ...n } )); -Y.displayName = Ge.displayName; -const nt = [ +ye.displayName = Er.displayName; +const St = [ { label: "Returns & Refunds", href: "/returns" }, { label: "Shipping", href: "/shipping" }, { label: "Privacy Policy", href: "/privacy" }, { label: "Terms of Service", href: "/terms" } ]; -function We({ links: e = nt, className: r }) { - return /* @__PURE__ */ o("nav", { className: N("flex flex-wrap items-center justify-center gap-y-2 text-xs text-muted-foreground", r), children: e.map((t, n) => /* @__PURE__ */ i(ar.Fragment, { children: [ - n > 0 && /* @__PURE__ */ o("span", { className: "mx-2 select-none", "aria-hidden": !0, children: "·" }), - /* @__PURE__ */ o("a", { href: t.href, className: "hover:text-foreground hover:underline transition-colors", children: t.label }) +function Pr({ links: e = St, className: r }) { + return /* @__PURE__ */ a("nav", { className: D("flex flex-wrap items-center justify-center gap-y-2 text-xs text-muted-foreground", r), children: e.map((t, n) => /* @__PURE__ */ c(q.Fragment, { children: [ + n > 0 && /* @__PURE__ */ a("span", { className: "mx-2 select-none", "aria-hidden": !0, children: "·" }), + /* @__PURE__ */ a("a", { href: t.href, className: "hover:text-foreground hover:underline transition-colors", children: t.label }) ] }, t.href)) }); } -function at({ onCheckout: e, className: r }) { - const t = E((c) => c.items), n = E((c) => c.subtotal), a = E((c) => c.itemCount), s = E((c) => c.clearCart); - return t.length === 0 ? /* @__PURE__ */ i("div", { className: N("flex flex-col items-center justify-center gap-6 py-24", r), children: [ - /* @__PURE__ */ o("div", { className: "flex h-24 w-24 items-center justify-center rounded-full bg-muted", children: /* @__PURE__ */ o(ve, { className: "h-10 w-10 text-muted-foreground" }) }), - /* @__PURE__ */ i("div", { className: "text-center", children: [ - /* @__PURE__ */ o("h2", { className: "text-xl font-semibold", children: "Your cart is empty" }), - /* @__PURE__ */ o("p", { className: "mt-1 text-sm text-muted-foreground", children: "Add some products to get started." }) +function Ct({ onCheckout: e, className: r }) { + const t = se((d) => d.items), n = se((d) => d.subtotal), o = se((d) => d.itemCount), i = se((d) => d.clearCart); + return t.length === 0 ? /* @__PURE__ */ c("div", { className: D("flex flex-col items-center justify-center gap-6 py-24", r), children: [ + /* @__PURE__ */ a("div", { className: "flex h-24 w-24 items-center justify-center rounded-full bg-muted", children: /* @__PURE__ */ a(He, { className: "h-10 w-10 text-muted-foreground" }) }), + /* @__PURE__ */ c("div", { className: "text-center", children: [ + /* @__PURE__ */ a("h2", { className: "text-xl font-semibold", children: "Your cart is empty" }), + /* @__PURE__ */ a("p", { className: "mt-1 text-sm text-muted-foreground", children: "Add some products to get started." }) ] }) - ] }) : /* @__PURE__ */ i("div", { className: N("mx-auto max-w-3xl space-y-6 px-4 py-8", r), children: [ - /* @__PURE__ */ i(A, { children: [ - /* @__PURE__ */ i(G, { className: "flex-row items-center justify-between space-y-0", children: [ - /* @__PURE__ */ i(W, { className: "flex items-center gap-2 text-xl", children: [ - /* @__PURE__ */ o(ve, { className: "h-5 w-5" }), + ] }) : /* @__PURE__ */ c("div", { className: D("mx-auto max-w-3xl space-y-6 px-4 py-8", r), children: [ + /* @__PURE__ */ c(ue, { children: [ + /* @__PURE__ */ c(pe, { className: "flex-row items-center justify-between space-y-0", children: [ + /* @__PURE__ */ c(he, { className: "flex items-center gap-2 text-xl", children: [ + /* @__PURE__ */ a(He, { className: "h-5 w-5" }), "Cart", - /* @__PURE__ */ i("span", { className: "text-sm font-normal text-muted-foreground", children: [ + /* @__PURE__ */ c("span", { className: "text-sm font-normal text-muted-foreground", children: [ "(", - a, + o, " ", - a === 1 ? "item" : "items", + o === 1 ? "item" : "items", ")" ] }) ] }), - /* @__PURE__ */ i($, { variant: "ghost", size: "sm", className: "text-destructive", onClick: s, children: [ - /* @__PURE__ */ o($e, { className: "mr-1 h-4 w-4" }), + /* @__PURE__ */ c(te, { variant: "ghost", size: "sm", className: "text-destructive", onClick: i, children: [ + /* @__PURE__ */ a(gr, { className: "mr-1 h-4 w-4" }), "Clear" ] }) ] }), - /* @__PURE__ */ o(_, { className: "space-y-3", children: t.map((c) => /* @__PURE__ */ o(Jr, { item: c }, c.id)) }), - /* @__PURE__ */ o(Y, {}), - /* @__PURE__ */ i(qe, { className: "flex-col items-stretch gap-4 pt-6", children: [ - /* @__PURE__ */ i("div", { className: "flex items-center justify-between text-lg font-semibold", children: [ - /* @__PURE__ */ o("span", { children: "Subtotal" }), - /* @__PURE__ */ i("span", { className: "tabular-nums", children: [ + /* @__PURE__ */ a(de, { className: "space-y-3", children: t.map((d) => /* @__PURE__ */ a(yt, { item: d }, d.id)) }), + /* @__PURE__ */ a(ye, {}), + /* @__PURE__ */ c(Sr, { className: "flex-col items-stretch gap-4 pt-6", children: [ + /* @__PURE__ */ c("div", { className: "flex items-center justify-between text-lg font-semibold", children: [ + /* @__PURE__ */ a("span", { children: "Subtotal" }), + /* @__PURE__ */ c("span", { className: "tabular-nums", children: [ "$", n.toFixed(2) ] }) ] }), - /* @__PURE__ */ o("p", { className: "text-xs text-muted-foreground", children: "Shipping and taxes calculated at checkout." }), - /* @__PURE__ */ o($, { size: "lg", className: "w-full", onClick: e, children: "Proceed to Checkout" }) + /* @__PURE__ */ a("p", { className: "text-xs text-muted-foreground", children: "Shipping and taxes calculated at checkout." }), + /* @__PURE__ */ a(te, { size: "lg", className: "w-full", onClick: e, children: "Proceed to Checkout" }) ] }) ] }), - /* @__PURE__ */ o(We, { className: "pt-2" }) + /* @__PURE__ */ a(Pr, { className: "pt-2" }) ] }); } -function st({ tax: e, shipping: r, className: t }) { - const n = E((d) => d.items), a = E((d) => d.subtotal), s = e ?? 0, c = r ?? 0, l = a + s + c; - return /* @__PURE__ */ i(A, { className: N("", t), children: [ - /* @__PURE__ */ o(G, { children: /* @__PURE__ */ o(W, { className: "text-lg", children: "Order Summary" }) }), - /* @__PURE__ */ i(_, { className: "space-y-4", children: [ - /* @__PURE__ */ o("ul", { className: "space-y-2 text-sm", children: n.map((d) => /* @__PURE__ */ i("li", { className: "flex justify-between gap-2", children: [ - /* @__PURE__ */ i("div", { className: "flex flex-col min-w-0", children: [ - /* @__PURE__ */ i("span", { className: "truncate text-muted-foreground", children: [ - d.title, +function Et({ tax: e, shipping: r, className: t }) { + const n = se((s) => s.items), o = se((s) => s.subtotal), i = e ?? 0, d = r ?? 0, l = o + i + d; + return /* @__PURE__ */ c(ue, { className: D("", t), children: [ + /* @__PURE__ */ a(pe, { children: /* @__PURE__ */ a(he, { className: "text-lg", children: "Order Summary" }) }), + /* @__PURE__ */ c(de, { className: "space-y-4", children: [ + /* @__PURE__ */ a("ul", { className: "space-y-2 text-sm", children: n.map((s) => /* @__PURE__ */ c("li", { className: "flex justify-between gap-2", children: [ + /* @__PURE__ */ c("div", { className: "flex flex-col min-w-0", children: [ + /* @__PURE__ */ c("span", { className: "truncate text-muted-foreground", children: [ + s.title, " × ", - d.quantity + s.quantity ] }), - d.vendorSlug && /* @__PURE__ */ i("a", { href: `/user/${d.vendorSlug}`, className: "text-xs text-primary hover:underline", children: [ + s.vendorSlug && /* @__PURE__ */ c("a", { href: `/user/${s.vendorSlug}`, className: "text-xs text-primary hover:underline", children: [ "via ", - d.vendorSlug + s.vendorSlug ] }) ] }), - /* @__PURE__ */ i("span", { className: "shrink-0 tabular-nums", children: [ + /* @__PURE__ */ c("span", { className: "shrink-0 tabular-nums", children: [ "$", - (d.price * d.quantity).toFixed(2) + (s.price * s.quantity).toFixed(2) ] }) - ] }, d.id)) }), - /* @__PURE__ */ o(Y, {}), - /* @__PURE__ */ i("div", { className: "flex justify-between text-sm", children: [ - /* @__PURE__ */ o("span", { className: "text-muted-foreground", children: "Subtotal" }), - /* @__PURE__ */ i("span", { className: "tabular-nums", children: [ + ] }, s.id)) }), + /* @__PURE__ */ a(ye, {}), + /* @__PURE__ */ c("div", { className: "flex justify-between text-sm", children: [ + /* @__PURE__ */ a("span", { className: "text-muted-foreground", children: "Subtotal" }), + /* @__PURE__ */ c("span", { className: "tabular-nums", children: [ "$", - a.toFixed(2) + o.toFixed(2) ] }) ] }), - /* @__PURE__ */ i("div", { className: "flex justify-between text-sm", children: [ - /* @__PURE__ */ o("span", { className: "text-muted-foreground", children: "Tax" }), - /* @__PURE__ */ o("span", { className: "tabular-nums", children: e !== void 0 ? `$${s.toFixed(2)}` : "Calculated at next step" }) + /* @__PURE__ */ c("div", { className: "flex justify-between text-sm", children: [ + /* @__PURE__ */ a("span", { className: "text-muted-foreground", children: "Tax" }), + /* @__PURE__ */ a("span", { className: "tabular-nums", children: e !== void 0 ? `$${i.toFixed(2)}` : "Calculated at next step" }) ] }), - /* @__PURE__ */ i("div", { className: "flex justify-between text-sm", children: [ - /* @__PURE__ */ o("span", { className: "text-muted-foreground", children: "Shipping" }), - /* @__PURE__ */ o("span", { className: "tabular-nums", children: r !== void 0 ? c === 0 ? "Free" : `$${c.toFixed(2)}` : "TBD" }) + /* @__PURE__ */ c("div", { className: "flex justify-between text-sm", children: [ + /* @__PURE__ */ a("span", { className: "text-muted-foreground", children: "Shipping" }), + /* @__PURE__ */ a("span", { className: "tabular-nums", children: r !== void 0 ? d === 0 ? "Free" : `$${d.toFixed(2)}` : "TBD" }) ] }), - /* @__PURE__ */ o(Y, {}), - /* @__PURE__ */ i("div", { className: "flex justify-between text-base font-semibold", children: [ - /* @__PURE__ */ o("span", { children: "Total" }), - /* @__PURE__ */ i("span", { className: "tabular-nums", children: [ + /* @__PURE__ */ a(ye, {}), + /* @__PURE__ */ c("div", { className: "flex justify-between text-base font-semibold", children: [ + /* @__PURE__ */ a("span", { children: "Total" }), + /* @__PURE__ */ c("span", { className: "tabular-nums", children: [ "$", l.toFixed(2) ] }) @@ -2713,12 +457,12 @@ function st({ tax: e, shipping: r, className: t }) { ] }) ] }); } -const q = v.forwardRef( - ({ className: e, type: r, ...t }, n) => /* @__PURE__ */ o( +const me = L.forwardRef( + ({ className: e, type: r, ...t }, n) => /* @__PURE__ */ a( "input", { type: r, - className: N( + className: D( "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", e ), @@ -2727,8 +471,8 @@ const q = v.forwardRef( } ) ); -q.displayName = "Input"; -var it = [ +me.displayName = "Input"; +var Pt = [ "a", "button", "div", @@ -2746,274 +490,1389 @@ var it = [ "span", "svg", "ul" -], lt = it.reduce((e, r) => { - const t = /* @__PURE__ */ me(`Primitive.${r}`), n = v.forwardRef((a, s) => { - const { asChild: c, ...l } = a, d = c ? t : r; - return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ o(d, { ...l, ref: s }); +], Tt = Pt.reduce((e, r) => { + const t = /* @__PURE__ */ ze(`Primitive.${r}`), n = L.forwardRef((o, i) => { + const { asChild: d, ...l } = o, s = d ? t : r; + return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ a(s, { ...l, ref: i }); }); return n.displayName = `Primitive.${r}`, { ...e, [r]: n }; -}, {}), ct = "Label", De = v.forwardRef((e, r) => /* @__PURE__ */ o( - lt.label, +}, {}), Rt = "Label", Tr = L.forwardRef((e, r) => /* @__PURE__ */ a( + Tt.label, { ...e, ref: r, onMouseDown: (t) => { - var a; - t.target.closest("button, input, select, textarea") || ((a = e.onMouseDown) == null || a.call(e, t), !t.defaultPrevented && t.detail > 1 && t.preventDefault()); + var o; + t.target.closest("button, input, select, textarea") || ((o = e.onMouseDown) == null || o.call(e, t), !t.defaultPrevented && t.detail > 1 && t.preventDefault()); } } )); -De.displayName = ct; -var Be = De; -const dt = pe( +Tr.displayName = Rt; +var Rr = Tr; +const Ot = Ve( "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" -), I = v.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ o(Be, { ref: t, className: N(dt(), e), ...r })); -I.displayName = Be.displayName; -function ut({ +), ce = L.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ a(Rr, { ref: t, className: D(Ot(), e), ...r })); +ce.displayName = Rr.displayName; +function kt(e) { + return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; +} +var De = { exports: {} }, Se = { exports: {} }, I = {}; +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var tr; +function _t() { + if (tr) return I; + tr = 1; + var e = typeof Symbol == "function" && Symbol.for, r = e ? Symbol.for("react.element") : 60103, t = e ? Symbol.for("react.portal") : 60106, n = e ? Symbol.for("react.fragment") : 60107, o = e ? Symbol.for("react.strict_mode") : 60108, i = e ? Symbol.for("react.profiler") : 60114, d = e ? Symbol.for("react.provider") : 60109, l = e ? Symbol.for("react.context") : 60110, s = e ? Symbol.for("react.async_mode") : 60111, p = e ? Symbol.for("react.concurrent_mode") : 60111, v = e ? Symbol.for("react.forward_ref") : 60112, f = e ? Symbol.for("react.suspense") : 60113, b = e ? Symbol.for("react.suspense_list") : 60120, N = e ? Symbol.for("react.memo") : 60115, j = e ? Symbol.for("react.lazy") : 60116, C = e ? Symbol.for("react.block") : 60121, A = e ? Symbol.for("react.fundamental") : 60117, w = e ? Symbol.for("react.responder") : 60118, ne = e ? Symbol.for("react.scope") : 60119; + function O(m) { + if (typeof m == "object" && m !== null) { + var Z = m.$$typeof; + switch (Z) { + case r: + switch (m = m.type, m) { + case s: + case p: + case n: + case i: + case o: + case f: + return m; + default: + switch (m = m && m.$$typeof, m) { + case l: + case v: + case j: + case N: + case d: + return m; + default: + return Z; + } + } + case t: + return Z; + } + } + } + function W(m) { + return O(m) === p; + } + return I.AsyncMode = s, I.ConcurrentMode = p, I.ContextConsumer = l, I.ContextProvider = d, I.Element = r, I.ForwardRef = v, I.Fragment = n, I.Lazy = j, I.Memo = N, I.Portal = t, I.Profiler = i, I.StrictMode = o, I.Suspense = f, I.isAsyncMode = function(m) { + return W(m) || O(m) === s; + }, I.isConcurrentMode = W, I.isContextConsumer = function(m) { + return O(m) === l; + }, I.isContextProvider = function(m) { + return O(m) === d; + }, I.isElement = function(m) { + return typeof m == "object" && m !== null && m.$$typeof === r; + }, I.isForwardRef = function(m) { + return O(m) === v; + }, I.isFragment = function(m) { + return O(m) === n; + }, I.isLazy = function(m) { + return O(m) === j; + }, I.isMemo = function(m) { + return O(m) === N; + }, I.isPortal = function(m) { + return O(m) === t; + }, I.isProfiler = function(m) { + return O(m) === i; + }, I.isStrictMode = function(m) { + return O(m) === o; + }, I.isSuspense = function(m) { + return O(m) === f; + }, I.isValidElementType = function(m) { + return typeof m == "string" || typeof m == "function" || m === n || m === p || m === i || m === o || m === f || m === b || typeof m == "object" && m !== null && (m.$$typeof === j || m.$$typeof === N || m.$$typeof === d || m.$$typeof === l || m.$$typeof === v || m.$$typeof === A || m.$$typeof === w || m.$$typeof === ne || m.$$typeof === C); + }, I.typeOf = O, I; +} +var $ = {}; +/** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var nr; +function jt() { + return nr || (nr = 1, process.env.NODE_ENV !== "production" && function() { + var e = typeof Symbol == "function" && Symbol.for, r = e ? Symbol.for("react.element") : 60103, t = e ? Symbol.for("react.portal") : 60106, n = e ? Symbol.for("react.fragment") : 60107, o = e ? Symbol.for("react.strict_mode") : 60108, i = e ? Symbol.for("react.profiler") : 60114, d = e ? Symbol.for("react.provider") : 60109, l = e ? Symbol.for("react.context") : 60110, s = e ? Symbol.for("react.async_mode") : 60111, p = e ? Symbol.for("react.concurrent_mode") : 60111, v = e ? Symbol.for("react.forward_ref") : 60112, f = e ? Symbol.for("react.suspense") : 60113, b = e ? Symbol.for("react.suspense_list") : 60120, N = e ? Symbol.for("react.memo") : 60115, j = e ? Symbol.for("react.lazy") : 60116, C = e ? Symbol.for("react.block") : 60121, A = e ? Symbol.for("react.fundamental") : 60117, w = e ? Symbol.for("react.responder") : 60118, ne = e ? Symbol.for("react.scope") : 60119; + function O(h) { + return typeof h == "string" || typeof h == "function" || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + h === n || h === p || h === i || h === o || h === f || h === b || typeof h == "object" && h !== null && (h.$$typeof === j || h.$$typeof === N || h.$$typeof === d || h.$$typeof === l || h.$$typeof === v || h.$$typeof === A || h.$$typeof === w || h.$$typeof === ne || h.$$typeof === C); + } + function W(h) { + if (typeof h == "object" && h !== null) { + var ie = h.$$typeof; + switch (ie) { + case r: + var we = h.type; + switch (we) { + case s: + case p: + case n: + case i: + case o: + case f: + return we; + default: + var Je = we && we.$$typeof; + switch (Je) { + case l: + case v: + case j: + case N: + case d: + return Je; + default: + return ie; + } + } + case t: + return ie; + } + } + } + var m = s, Z = p, Y = l, U = d, V = r, x = v, B = n, ee = j, le = N, H = t, G = i, re = o, oe = f, z = !1; + function ge(h) { + return z || (z = !0, console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")), u(h) || W(h) === s; + } + function u(h) { + return W(h) === p; + } + function y(h) { + return W(h) === l; + } + function E(h) { + return W(h) === d; + } + function P(h) { + return typeof h == "object" && h !== null && h.$$typeof === r; + } + function g(h) { + return W(h) === v; + } + function R(h) { + return W(h) === n; + } + function S(h) { + return W(h) === j; + } + function T(h) { + return W(h) === N; + } + function k(h) { + return W(h) === t; + } + function M(h) { + return W(h) === i; + } + function _(h) { + return W(h) === o; + } + function X(h) { + return W(h) === f; + } + $.AsyncMode = m, $.ConcurrentMode = Z, $.ContextConsumer = Y, $.ContextProvider = U, $.Element = V, $.ForwardRef = x, $.Fragment = B, $.Lazy = ee, $.Memo = le, $.Portal = H, $.Profiler = G, $.StrictMode = re, $.Suspense = oe, $.isAsyncMode = ge, $.isConcurrentMode = u, $.isContextConsumer = y, $.isContextProvider = E, $.isElement = P, $.isForwardRef = g, $.isFragment = R, $.isLazy = S, $.isMemo = T, $.isPortal = k, $.isProfiler = M, $.isStrictMode = _, $.isSuspense = X, $.isValidElementType = O, $.typeOf = W; + }()), $; +} +var ar; +function Or() { + return ar || (ar = 1, process.env.NODE_ENV === "production" ? Se.exports = _t() : Se.exports = jt()), Se.exports; +} +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ +var je, or; +function At() { + if (or) return je; + or = 1; + var e = Object.getOwnPropertySymbols, r = Object.prototype.hasOwnProperty, t = Object.prototype.propertyIsEnumerable; + function n(i) { + if (i == null) + throw new TypeError("Object.assign cannot be called with null or undefined"); + return Object(i); + } + function o() { + try { + if (!Object.assign) + return !1; + var i = new String("abc"); + if (i[5] = "de", Object.getOwnPropertyNames(i)[0] === "5") + return !1; + for (var d = {}, l = 0; l < 10; l++) + d["_" + String.fromCharCode(l)] = l; + var s = Object.getOwnPropertyNames(d).map(function(v) { + return d[v]; + }); + if (s.join("") !== "0123456789") + return !1; + var p = {}; + return "abcdefghijklmnopqrst".split("").forEach(function(v) { + p[v] = v; + }), Object.keys(Object.assign({}, p)).join("") === "abcdefghijklmnopqrst"; + } catch { + return !1; + } + } + return je = o() ? Object.assign : function(i, d) { + for (var l, s = n(i), p, v = 1; v < arguments.length; v++) { + l = Object(arguments[v]); + for (var f in l) + r.call(l, f) && (s[f] = l[f]); + if (e) { + p = e(l); + for (var b = 0; b < p.length; b++) + t.call(l, p[b]) && (s[p[b]] = l[p[b]]); + } + } + return s; + }, je; +} +var Ae, ir; +function Be() { + if (ir) return Ae; + ir = 1; + var e = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"; + return Ae = e, Ae; +} +var Ie, sr; +function kr() { + return sr || (sr = 1, Ie = Function.call.bind(Object.prototype.hasOwnProperty)), Ie; +} +var $e, cr; +function It() { + if (cr) return $e; + cr = 1; + var e = function() { + }; + if (process.env.NODE_ENV !== "production") { + var r = Be(), t = {}, n = kr(); + e = function(i) { + var d = "Warning: " + i; + typeof console < "u" && console.error(d); + try { + throw new Error(d); + } catch { + } + }; + } + function o(i, d, l, s, p) { + if (process.env.NODE_ENV !== "production") { + for (var v in i) + if (n(i, v)) { + var f; + try { + if (typeof i[v] != "function") { + var b = Error( + (s || "React class") + ": " + l + " type `" + v + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof i[v] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`." + ); + throw b.name = "Invariant Violation", b; + } + f = i[v](d, v, s, l, null, r); + } catch (j) { + f = j; + } + if (f && !(f instanceof Error) && e( + (s || "React class") + ": type specification of " + l + " `" + v + "` is invalid; the type checker function must return `null` or an `Error` but returned a " + typeof f + ". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)." + ), f instanceof Error && !(f.message in t)) { + t[f.message] = !0; + var N = p ? p() : ""; + e( + "Failed " + l + " type: " + f.message + (N ?? "") + ); + } + } + } + } + return o.resetWarningCache = function() { + process.env.NODE_ENV !== "production" && (t = {}); + }, $e = o, $e; +} +var Me, lr; +function $t() { + if (lr) return Me; + lr = 1; + var e = Or(), r = At(), t = Be(), n = kr(), o = It(), i = function() { + }; + process.env.NODE_ENV !== "production" && (i = function(l) { + var s = "Warning: " + l; + typeof console < "u" && console.error(s); + try { + throw new Error(s); + } catch { + } + }); + function d() { + return null; + } + return Me = function(l, s) { + var p = typeof Symbol == "function" && Symbol.iterator, v = "@@iterator"; + function f(u) { + var y = u && (p && u[p] || u[v]); + if (typeof y == "function") + return y; + } + var b = "<>", N = { + array: w("array"), + bigint: w("bigint"), + bool: w("boolean"), + func: w("function"), + number: w("number"), + object: w("object"), + string: w("string"), + symbol: w("symbol"), + any: ne(), + arrayOf: O, + element: W(), + elementType: m(), + instanceOf: Z, + node: x(), + objectOf: U, + oneOf: Y, + oneOfType: V, + shape: ee, + exact: le + }; + function j(u, y) { + return u === y ? u !== 0 || 1 / u === 1 / y : u !== u && y !== y; + } + function C(u, y) { + this.message = u, this.data = y && typeof y == "object" ? y : {}, this.stack = ""; + } + C.prototype = Error.prototype; + function A(u) { + if (process.env.NODE_ENV !== "production") + var y = {}, E = 0; + function P(R, S, T, k, M, _, X) { + if (k = k || b, _ = _ || T, X !== t) { + if (s) { + var h = new Error( + "Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types" + ); + throw h.name = "Invariant Violation", h; + } else if (process.env.NODE_ENV !== "production" && typeof console < "u") { + var ie = k + ":" + T; + !y[ie] && // Avoid spamming the console because they are often not actionable except for lib authors + E < 3 && (i( + "You are manually calling a React.PropTypes validation function for the `" + _ + "` prop on `" + k + "`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details." + ), y[ie] = !0, E++); + } + } + return S[T] == null ? R ? S[T] === null ? new C("The " + M + " `" + _ + "` is marked as required " + ("in `" + k + "`, but its value is `null`.")) : new C("The " + M + " `" + _ + "` is marked as required in " + ("`" + k + "`, but its value is `undefined`.")) : null : u(S, T, k, M, _); + } + var g = P.bind(null, !1); + return g.isRequired = P.bind(null, !0), g; + } + function w(u) { + function y(E, P, g, R, S, T) { + var k = E[P], M = re(k); + if (M !== u) { + var _ = oe(k); + return new C( + "Invalid " + R + " `" + S + "` of type " + ("`" + _ + "` supplied to `" + g + "`, expected ") + ("`" + u + "`."), + { expectedType: u } + ); + } + return null; + } + return A(y); + } + function ne() { + return A(d); + } + function O(u) { + function y(E, P, g, R, S) { + if (typeof u != "function") + return new C("Property `" + S + "` of component `" + g + "` has invalid PropType notation inside arrayOf."); + var T = E[P]; + if (!Array.isArray(T)) { + var k = re(T); + return new C("Invalid " + R + " `" + S + "` of type " + ("`" + k + "` supplied to `" + g + "`, expected an array.")); + } + for (var M = 0; M < T.length; M++) { + var _ = u(T, M, g, R, S + "[" + M + "]", t); + if (_ instanceof Error) + return _; + } + return null; + } + return A(y); + } + function W() { + function u(y, E, P, g, R) { + var S = y[E]; + if (!l(S)) { + var T = re(S); + return new C("Invalid " + g + " `" + R + "` of type " + ("`" + T + "` supplied to `" + P + "`, expected a single ReactElement.")); + } + return null; + } + return A(u); + } + function m() { + function u(y, E, P, g, R) { + var S = y[E]; + if (!e.isValidElementType(S)) { + var T = re(S); + return new C("Invalid " + g + " `" + R + "` of type " + ("`" + T + "` supplied to `" + P + "`, expected a single ReactElement type.")); + } + return null; + } + return A(u); + } + function Z(u) { + function y(E, P, g, R, S) { + if (!(E[P] instanceof u)) { + var T = u.name || b, k = ge(E[P]); + return new C("Invalid " + R + " `" + S + "` of type " + ("`" + k + "` supplied to `" + g + "`, expected ") + ("instance of `" + T + "`.")); + } + return null; + } + return A(y); + } + function Y(u) { + if (!Array.isArray(u)) + return process.env.NODE_ENV !== "production" && (arguments.length > 1 ? i( + "Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])." + ) : i("Invalid argument supplied to oneOf, expected an array.")), d; + function y(E, P, g, R, S) { + for (var T = E[P], k = 0; k < u.length; k++) + if (j(T, u[k])) + return null; + var M = JSON.stringify(u, function(X, h) { + var ie = oe(h); + return ie === "symbol" ? String(h) : h; + }); + return new C("Invalid " + R + " `" + S + "` of value `" + String(T) + "` " + ("supplied to `" + g + "`, expected one of " + M + ".")); + } + return A(y); + } + function U(u) { + function y(E, P, g, R, S) { + if (typeof u != "function") + return new C("Property `" + S + "` of component `" + g + "` has invalid PropType notation inside objectOf."); + var T = E[P], k = re(T); + if (k !== "object") + return new C("Invalid " + R + " `" + S + "` of type " + ("`" + k + "` supplied to `" + g + "`, expected an object.")); + for (var M in T) + if (n(T, M)) { + var _ = u(T, M, g, R, S + "." + M, t); + if (_ instanceof Error) + return _; + } + return null; + } + return A(y); + } + function V(u) { + if (!Array.isArray(u)) + return process.env.NODE_ENV !== "production" && i("Invalid argument supplied to oneOfType, expected an instance of array."), d; + for (var y = 0; y < u.length; y++) { + var E = u[y]; + if (typeof E != "function") + return i( + "Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + z(E) + " at index " + y + "." + ), d; + } + function P(g, R, S, T, k) { + for (var M = [], _ = 0; _ < u.length; _++) { + var X = u[_], h = X(g, R, S, T, k, t); + if (h == null) + return null; + h.data && n(h.data, "expectedType") && M.push(h.data.expectedType); + } + var ie = M.length > 0 ? ", expected one of type [" + M.join(", ") + "]" : ""; + return new C("Invalid " + T + " `" + k + "` supplied to " + ("`" + S + "`" + ie + ".")); + } + return A(P); + } + function x() { + function u(y, E, P, g, R) { + return H(y[E]) ? null : new C("Invalid " + g + " `" + R + "` supplied to " + ("`" + P + "`, expected a ReactNode.")); + } + return A(u); + } + function B(u, y, E, P, g) { + return new C( + (u || "React class") + ": " + y + " type `" + E + "." + P + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + g + "`." + ); + } + function ee(u) { + function y(E, P, g, R, S) { + var T = E[P], k = re(T); + if (k !== "object") + return new C("Invalid " + R + " `" + S + "` of type `" + k + "` " + ("supplied to `" + g + "`, expected `object`.")); + for (var M in u) { + var _ = u[M]; + if (typeof _ != "function") + return B(g, R, S, M, oe(_)); + var X = _(T, M, g, R, S + "." + M, t); + if (X) + return X; + } + return null; + } + return A(y); + } + function le(u) { + function y(E, P, g, R, S) { + var T = E[P], k = re(T); + if (k !== "object") + return new C("Invalid " + R + " `" + S + "` of type `" + k + "` " + ("supplied to `" + g + "`, expected `object`.")); + var M = r({}, E[P], u); + for (var _ in M) { + var X = u[_]; + if (n(u, _) && typeof X != "function") + return B(g, R, S, _, oe(X)); + if (!X) + return new C( + "Invalid " + R + " `" + S + "` key `" + _ + "` supplied to `" + g + "`.\nBad object: " + JSON.stringify(E[P], null, " ") + ` +Valid keys: ` + JSON.stringify(Object.keys(u), null, " ") + ); + var h = X(T, _, g, R, S + "." + _, t); + if (h) + return h; + } + return null; + } + return A(y); + } + function H(u) { + switch (typeof u) { + case "number": + case "string": + case "undefined": + return !0; + case "boolean": + return !u; + case "object": + if (Array.isArray(u)) + return u.every(H); + if (u === null || l(u)) + return !0; + var y = f(u); + if (y) { + var E = y.call(u), P; + if (y !== u.entries) { + for (; !(P = E.next()).done; ) + if (!H(P.value)) + return !1; + } else + for (; !(P = E.next()).done; ) { + var g = P.value; + if (g && !H(g[1])) + return !1; + } + } else + return !1; + return !0; + default: + return !1; + } + } + function G(u, y) { + return u === "symbol" ? !0 : y ? y["@@toStringTag"] === "Symbol" || typeof Symbol == "function" && y instanceof Symbol : !1; + } + function re(u) { + var y = typeof u; + return Array.isArray(u) ? "array" : u instanceof RegExp ? "object" : G(y, u) ? "symbol" : y; + } + function oe(u) { + if (typeof u > "u" || u === null) + return "" + u; + var y = re(u); + if (y === "object") { + if (u instanceof Date) + return "date"; + if (u instanceof RegExp) + return "regexp"; + } + return y; + } + function z(u) { + var y = oe(u); + switch (y) { + case "array": + case "object": + return "an " + y; + case "boolean": + case "date": + case "regexp": + return "a " + y; + default: + return y; + } + } + function ge(u) { + return !u.constructor || !u.constructor.name ? b : u.constructor.name; + } + return N.checkPropTypes = o, N.resetWarningCache = o.resetWarningCache, N.PropTypes = N, N; + }, Me; +} +var Le, ur; +function Mt() { + if (ur) return Le; + ur = 1; + var e = Be(); + function r() { + } + function t() { + } + return t.resetWarningCache = r, Le = function() { + function n(d, l, s, p, v, f) { + if (f !== e) { + var b = new Error( + "Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types" + ); + throw b.name = "Invariant Violation", b; + } + } + n.isRequired = n; + function o() { + return n; + } + var i = { + array: n, + bigint: n, + bool: n, + func: n, + number: n, + object: n, + string: n, + symbol: n, + any: n, + arrayOf: o, + element: n, + elementType: n, + instanceOf: o, + node: n, + objectOf: o, + oneOf: o, + oneOfType: o, + shape: o, + exact: o, + checkPropTypes: t, + resetWarningCache: r + }; + return i.PropTypes = i, i; + }, Le; +} +if (process.env.NODE_ENV !== "production") { + var Lt = Or(), Ft = !0; + De.exports = $t()(Lt.isElement, Ft); +} else + De.exports = Mt()(); +var qt = De.exports; +const F = /* @__PURE__ */ kt(qt); +function dr(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var n = Object.getOwnPropertySymbols(e); + r && (n = n.filter(function(o) { + return Object.getOwnPropertyDescriptor(e, o).enumerable; + })), t.push.apply(t, n); + } + return t; +} +function fr(e) { + for (var r = 1; r < arguments.length; r++) { + var t = arguments[r] != null ? arguments[r] : {}; + r % 2 ? dr(Object(t), !0).forEach(function(n) { + _r(e, n, t[n]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : dr(Object(t)).forEach(function(n) { + Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n)); + }); + } + return e; +} +function Te(e) { + "@babel/helpers - typeof"; + return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Te = function(r) { + return typeof r; + } : Te = function(r) { + return r && typeof Symbol == "function" && r.constructor === Symbol && r !== Symbol.prototype ? "symbol" : typeof r; + }, Te(e); +} +function _r(e, r, t) { + return r in e ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[r] = t, e; +} +function Dt(e, r) { + if (e == null) return {}; + var t = {}, n = Object.keys(e), o, i; + for (i = 0; i < n.length; i++) + o = n[i], !(r.indexOf(o) >= 0) && (t[o] = e[o]); + return t; +} +function Wt(e, r) { + if (e == null) return {}; + var t = Dt(e, r), n, o; + if (Object.getOwnPropertySymbols) { + var i = Object.getOwnPropertySymbols(e); + for (o = 0; o < i.length; o++) + n = i[o], !(r.indexOf(n) >= 0) && Object.prototype.propertyIsEnumerable.call(e, n) && (t[n] = e[n]); + } + return t; +} +function jr(e, r) { + return Ut(e) || Yt(e, r) || zt(e, r) || Vt(); +} +function Ut(e) { + if (Array.isArray(e)) return e; +} +function Yt(e, r) { + var t = e && (typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"]); + if (t != null) { + var n = [], o = !0, i = !1, d, l; + try { + for (t = t.call(e); !(o = (d = t.next()).done) && (n.push(d.value), !(r && n.length === r)); o = !0) + ; + } catch (s) { + i = !0, l = s; + } finally { + try { + !o && t.return != null && t.return(); + } finally { + if (i) throw l; + } + } + return n; + } +} +function zt(e, r) { + if (e) { + if (typeof e == "string") return mr(e, r); + var t = Object.prototype.toString.call(e).slice(8, -1); + if (t === "Object" && e.constructor && (t = e.constructor.name), t === "Map" || t === "Set") return Array.from(e); + if (t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return mr(e, r); + } +} +function mr(e, r) { + (r == null || r > e.length) && (r = e.length); + for (var t = 0, n = new Array(r); t < r; t++) n[t] = e[t]; + return n; +} +function Vt() { + throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`); +} +var J = function(r, t, n) { + var o = !!n, i = q.useRef(n); + q.useEffect(function() { + i.current = n; + }, [n]), q.useEffect(function() { + if (!o || !r) + return function() { + }; + var d = function() { + i.current && i.current.apply(i, arguments); + }; + return r.on(t, d), function() { + r.off(t, d); + }; + }, [o, t, r, i]); +}, We = function(r) { + var t = q.useRef(r); + return q.useEffect(function() { + t.current = r; + }, [r]), t.current; +}, ve = function(r) { + return r !== null && Te(r) === "object"; +}, Bt = function(r) { + return ve(r) && typeof r.then == "function"; +}, Jt = function(r) { + return ve(r) && typeof r.elements == "function" && typeof r.createToken == "function" && typeof r.createPaymentMethod == "function" && typeof r.confirmCardPayment == "function"; +}, pr = "[object Object]", Ht = function e(r, t) { + if (!ve(r) || !ve(t)) + return r === t; + var n = Array.isArray(r), o = Array.isArray(t); + if (n !== o) return !1; + var i = Object.prototype.toString.call(r) === pr, d = Object.prototype.toString.call(t) === pr; + if (i !== d) return !1; + if (!i && !n) return r === t; + var l = Object.keys(r), s = Object.keys(t); + if (l.length !== s.length) return !1; + for (var p = {}, v = 0; v < l.length; v += 1) + p[l[v]] = !0; + for (var f = 0; f < s.length; f += 1) + p[s[f]] = !0; + var b = Object.keys(p); + if (b.length !== l.length) + return !1; + var N = r, j = t, C = function(w) { + return e(N[w], j[w]); + }; + return b.every(C); +}, Ar = function(r, t, n) { + return ve(r) ? Object.keys(r).reduce(function(o, i) { + var d = !ve(t) || !Ht(r[i], t[i]); + return n.includes(i) ? (d && console.warn("Unsupported prop change: options.".concat(i, " is not a mutable property.")), o) : d ? fr(fr({}, o || {}), {}, _r({}, i, r[i])) : o; + }, null) : null; +}, Ir = "Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.", hr = function(r) { + var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Ir; + if (r === null || Jt(r)) + return r; + throw new Error(t); +}, Gt = function(r) { + var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Ir; + if (Bt(r)) + return { + tag: "async", + stripePromise: Promise.resolve(r).then(function(o) { + return hr(o, t); + }) + }; + var n = hr(r, t); + return n === null ? { + tag: "empty" + } : { + tag: "sync", + stripe: n + }; +}, Xt = function(r) { + !r || !r._registerWrapper || !r.registerAppInfo || (r._registerWrapper({ + name: "react-stripe-js", + version: "5.6.0" + }), r.registerAppInfo({ + name: "react-stripe-js", + version: "5.6.0", + url: "https://stripe.com/docs/stripe-js/react" + })); +}, ke = /* @__PURE__ */ q.createContext(null); +ke.displayName = "ElementsContext"; +var $r = function(r, t) { + if (!r) + throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t, " in an provider.")); + return r; +}, Mr = function(r) { + var t = r.stripe, n = r.options, o = r.children, i = q.useMemo(function() { + return Gt(t); + }, [t]), d = q.useState(function() { + return { + stripe: i.tag === "sync" ? i.stripe : null, + elements: i.tag === "sync" ? i.stripe.elements(n) : null + }; + }), l = jr(d, 2), s = l[0], p = l[1]; + q.useEffect(function() { + var b = !0, N = function(C) { + p(function(A) { + return A.stripe ? A : { + stripe: C, + elements: C.elements(n) + }; + }); + }; + return i.tag === "async" && !s.stripe ? i.stripePromise.then(function(j) { + j && b && N(j); + }) : i.tag === "sync" && !s.stripe && N(i.stripe), function() { + b = !1; + }; + }, [i, s, n]); + var v = We(t); + q.useEffect(function() { + v !== null && v !== t && console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it."); + }, [v, t]); + var f = We(n); + return q.useEffect(function() { + if (s.elements) { + var b = Ar(n, f, ["clientSecret", "fonts"]); + b && s.elements.update(b); + } + }, [n, f, s.elements]), q.useEffect(function() { + Xt(s.stripe); + }, [s.stripe]), /* @__PURE__ */ q.createElement(ke.Provider, { + value: s + }, o); +}; +Mr.propTypes = { + stripe: F.any, + options: F.object +}; +var Kt = function(r) { + var t = q.useContext(ke); + return $r(t, r); +}, Qt = function() { + var r = Kt("calls useElements()"), t = r.elements; + return t; +}; +F.func.isRequired; +var Lr = /* @__PURE__ */ q.createContext(null); +Lr.displayName = "CheckoutContext"; +F.any, F.shape({ + clientSecret: F.oneOfType([F.string, F.instanceOf(Promise)]).isRequired, + elementsOptions: F.object +}).isRequired; +var Ue = function(r) { + var t = q.useContext(Lr), n = q.useContext(ke); + if (t) { + if (n) + throw new Error("You cannot wrap the part of your app that ".concat(r, " in both and providers.")); + return t; + } else + return $r(n, r); +}, Zt = ["mode"], en = function(r) { + return r.charAt(0).toUpperCase() + r.slice(1); +}, K = function(r, t) { + var n = "".concat(en(r), "Element"), o = function(s) { + var p = s.id, v = s.className, f = s.options, b = f === void 0 ? {} : f, N = s.onBlur, j = s.onFocus, C = s.onReady, A = s.onChange, w = s.onEscape, ne = s.onClick, O = s.onLoadError, W = s.onLoaderStart, m = s.onNetworksChange, Z = s.onConfirm, Y = s.onCancel, U = s.onShippingAddressChange, V = s.onShippingRateChange, x = s.onSavedPaymentMethodRemove, B = s.onSavedPaymentMethodUpdate, ee = Ue("mounts <".concat(n, ">")), le = "elements" in ee ? ee.elements : null, H = "checkoutState" in ee ? ee.checkoutState : null, G = (H == null ? void 0 : H.type) === "success" || (H == null ? void 0 : H.type) === "loading" ? H.sdk : null, re = q.useState(null), oe = jr(re, 2), z = oe[0], ge = oe[1], u = q.useRef(null), y = q.useRef(null); + J(z, "blur", N), J(z, "focus", j), J(z, "escape", w), J(z, "click", ne), J(z, "loaderror", O), J(z, "loaderstart", W), J(z, "networkschange", m), J(z, "confirm", Z), J(z, "cancel", Y), J(z, "shippingaddresschange", U), J(z, "shippingratechange", V), J(z, "savedpaymentmethodremove", x), J(z, "savedpaymentmethodupdate", B), J(z, "change", A); + var E; + C && (r === "expressCheckout" ? E = C : E = function() { + C(z); + }), J(z, "ready", E), q.useLayoutEffect(function() { + if (u.current === null && y.current !== null && (le || G)) { + var g = null; + if (G) + switch (r) { + case "paymentForm": + g = G.createPaymentFormElement(b); + break; + case "payment": + g = G.createPaymentElement(b); + break; + case "address": + if ("mode" in b) { + var R = b.mode, S = Wt(b, Zt); + if (R === "shipping") + g = G.createShippingAddressElement(S); + else if (R === "billing") + g = G.createBillingAddressElement(S); + else + throw new Error("Invalid options.mode. mode must be 'billing' or 'shipping'."); + } else + throw new Error("You must supply options.mode. mode must be 'billing' or 'shipping'."); + break; + case "expressCheckout": + g = G.createExpressCheckoutElement(b); + break; + case "currencySelector": + g = G.createCurrencySelectorElement(); + break; + case "taxId": + g = G.createTaxIdElement(b); + break; + default: + throw new Error("Invalid Element type ".concat(n, ". You must use either the , , , or .")); + } + else le && (g = le.create(r, b)); + u.current = g, ge(g), g && g.mount(y.current); + } + }, [le, G, b]); + var P = We(b); + return q.useEffect(function() { + if (u.current) { + var g = Ar(b, P, ["paymentRequest"]); + g && "update" in u.current && u.current.update(g); + } + }, [b, P]), q.useLayoutEffect(function() { + return function() { + if (u.current && typeof u.current.destroy == "function") + try { + u.current.destroy(), u.current = null; + } catch { + } + }; + }, []), /* @__PURE__ */ q.createElement("div", { + id: p, + className: v, + ref: y + }); + }, i = function(s) { + Ue("mounts <".concat(n, ">")); + var p = s.id, v = s.className; + return /* @__PURE__ */ q.createElement("div", { + id: p, + className: v + }); + }, d = t ? i : o; + return d.propTypes = { + id: F.string, + className: F.string, + onChange: F.func, + onBlur: F.func, + onFocus: F.func, + onReady: F.func, + onEscape: F.func, + onClick: F.func, + onLoadError: F.func, + onLoaderStart: F.func, + onNetworksChange: F.func, + onConfirm: F.func, + onCancel: F.func, + onShippingAddressChange: F.func, + onShippingRateChange: F.func, + onSavedPaymentMethodRemove: F.func, + onSavedPaymentMethodUpdate: F.func, + options: F.object + }, d.displayName = n, d.__elementType = r, d; +}, Q = typeof window > "u", rn = /* @__PURE__ */ q.createContext(null); +rn.displayName = "EmbeddedCheckoutProviderContext"; +var tn = function() { + var r = Ue("calls useStripe()"), t = r.stripe; + return t; +}; +K("auBankAccount", Q); +K("card", Q); +K("cardNumber", Q); +K("cardExpiry", Q); +K("cardCvc", Q); +K("iban", Q); +var nn = K("payment", Q); +K("expressCheckout", Q); +K("paymentRequestButton", Q); +var an = K("linkAuthentication", Q); +K("address", Q); +K("shippingAddress", Q); +K("paymentMethodMessaging", Q); +K("taxId", Q); +function on({ + onPaymentSuccess: e, + returnUrl: r, + defaultEmail: t, + defaultName: n +}) { + const o = tn(), i = Qt(), [d, l] = ae(null), [s, p] = ae(!1); + return /* @__PURE__ */ c("div", { className: "space-y-4", children: [ + /* @__PURE__ */ a( + an, + { + id: "link-authentication-element", + options: t ? { defaultValues: { email: t } } : void 0 + } + ), + /* @__PURE__ */ a( + nn, + { + id: "payment-element", + options: { + layout: "accordion", + defaultValues: { + billingDetails: { + name: n ?? "" + } + }, + business: { name: "PolyMech" } + } + } + ), + /* @__PURE__ */ a( + te, + { + type: "button", + onClick: async () => { + if (!o || !i) return; + p(!0), l(null); + const { error: f } = await o.confirmPayment({ + elements: i, + confirmParams: { + return_url: r ?? `${window.location.origin}/completion` + }, + redirect: "if_required" + }); + f ? f.type === "card_error" || f.type === "validation_error" ? l(f.message ?? "Payment failed.") : l("An unexpected error occurred.") : e == null || e(), p(!1); + }, + disabled: s || !o || !i, + className: "w-full", + size: "lg", + children: s ? /* @__PURE__ */ c(Ur, { children: [ + /* @__PURE__ */ a(Vr, { className: "mr-2 h-4 w-4 animate-spin" }), + "Processing…" + ] }) : "Pay now" + } + ), + d && /* @__PURE__ */ a("p", { className: "text-sm text-destructive text-center", children: d }) + ] }); +} +function sn({ onPlaceOrder: e, onSaveAddress: r, onBackToCart: t, initialShipping: n, - savedAddresses: a, - tax: s, - shipping: c, - className: l + savedAddresses: o, + tax: i, + shipping: d, + stripePromise: l, + stripeClientSecret: s, + onStripePaymentSuccess: p, + stripeReturnUrl: v, + className: f }) { - const d = E((g) => g.itemCount), [u, y] = V("shopify"), [m, C] = V(!1), h = (a == null ? void 0 : a.find((g) => g.isDefault)) ?? (a == null ? void 0 : a[0]), S = () => ({ - fullName: (h == null ? void 0 : h.fullName) ?? (n == null ? void 0 : n.fullName) ?? "", - email: (h == null ? void 0 : h.email) ?? (n == null ? void 0 : n.email) ?? "", - address: (h == null ? void 0 : h.address) ?? (n == null ? void 0 : n.address) ?? "", - city: (h == null ? void 0 : h.city) ?? (n == null ? void 0 : n.city) ?? "", - zip: (h == null ? void 0 : h.zip) ?? (n == null ? void 0 : n.zip) ?? "", - country: (h == null ? void 0 : h.country) ?? (n == null ? void 0 : n.country) ?? "" - }), [f, b] = V(S), [k, P] = V( - (h == null ? void 0 : h.id) ?? "custom" - ), M = (g) => { - if (P(g), g === "custom") return; - const z = a == null ? void 0 : a.find((B) => B.id === g); - z && b({ - fullName: z.fullName, - email: z.email, - address: z.address, - city: z.city, - zip: z.zip, - country: z.country + const b = se((x) => x.itemCount), [N, j] = ae("shopify"), [C, A] = ae(!1), w = (o == null ? void 0 : o.find((x) => x.isDefault)) ?? (o == null ? void 0 : o[0]), ne = () => ({ + fullName: (w == null ? void 0 : w.fullName) ?? (n == null ? void 0 : n.fullName) ?? "", + email: (w == null ? void 0 : w.email) ?? (n == null ? void 0 : n.email) ?? "", + address: (w == null ? void 0 : w.address) ?? (n == null ? void 0 : n.address) ?? "", + city: (w == null ? void 0 : w.city) ?? (n == null ? void 0 : n.city) ?? "", + zip: (w == null ? void 0 : w.zip) ?? (n == null ? void 0 : n.zip) ?? "", + country: (w == null ? void 0 : w.country) ?? (n == null ? void 0 : n.country) ?? "" + }), [O, W] = ae(ne), [m, Z] = ae( + (w == null ? void 0 : w.id) ?? "custom" + ), Y = (x) => { + if (Z(x), x === "custom") return; + const B = o == null ? void 0 : o.find((ee) => ee.id === x); + B && W({ + fullName: B.fullName, + email: B.email, + address: B.address, + city: B.city, + zip: B.zip, + country: B.country }); - }, R = (g, z) => b((B) => ({ ...B, [g]: z })), D = (g) => { - g.preventDefault(), m && k === "custom" && r && r(f), e == null || e({ shipping: f, paymentMethod: u }); + }, U = (x, B) => W((ee) => ({ ...ee, [x]: B })), V = (x) => { + x.preventDefault(), C && m === "custom" && r && r(O), e == null || e({ shipping: O, paymentMethod: N }); }; - return d === 0 ? /* @__PURE__ */ i("div", { className: N("flex flex-col items-center justify-center gap-6 py-24", l), children: [ - /* @__PURE__ */ o(He, { className: "h-12 w-12 text-muted-foreground" }), - /* @__PURE__ */ o("p", { className: "text-muted-foreground", children: "Your cart is empty — nothing to check out." }), - t && /* @__PURE__ */ o($, { variant: "outline", onClick: t, children: "Back to Cart" }) - ] }) : /* @__PURE__ */ i( + return b === 0 ? /* @__PURE__ */ c("div", { className: D("flex flex-col items-center justify-center gap-6 py-24", f), children: [ + /* @__PURE__ */ a(Br, { className: "h-12 w-12 text-muted-foreground" }), + /* @__PURE__ */ a("p", { className: "text-muted-foreground", children: "Your cart is empty — nothing to check out." }), + t && /* @__PURE__ */ a(te, { variant: "outline", onClick: t, children: "Back to Cart" }) + ] }) : /* @__PURE__ */ a("div", { className: D("w-full mx-auto max-w-5xl px-4 py-8 overflow-x-hidden", f), children: /* @__PURE__ */ c( "form", { - onSubmit: D, - className: N("mx-auto grid max-w-5xl gap-8 px-4 py-8 lg:grid-cols-[1fr_380px]", l), + onSubmit: V, + className: "grid gap-8 lg:grid-cols-[1fr_380px]", children: [ - /* @__PURE__ */ i("div", { className: "space-y-6", children: [ - /* @__PURE__ */ i(A, { children: [ - /* @__PURE__ */ o(G, { children: /* @__PURE__ */ o(W, { className: "text-lg", children: "Shipping Information" }) }), - /* @__PURE__ */ i(_, { className: "space-y-4", children: [ - a && a.length > 0 && /* @__PURE__ */ i("div", { className: "space-y-2", children: [ - /* @__PURE__ */ i(I, { className: "text-sm font-medium flex items-center gap-1.5", children: [ - /* @__PURE__ */ o(xe, { className: "h-4 w-4" }), + /* @__PURE__ */ c("div", { className: "space-y-6 min-w-0", children: [ + /* @__PURE__ */ c(ue, { children: [ + /* @__PURE__ */ a(pe, { children: /* @__PURE__ */ a(he, { className: "text-lg", children: "Shipping Information" }) }), + /* @__PURE__ */ c(de, { className: "space-y-4", children: [ + o && o.length > 0 && /* @__PURE__ */ c("div", { className: "space-y-2", children: [ + /* @__PURE__ */ c(ce, { className: "text-sm font-medium flex items-center gap-1.5", children: [ + /* @__PURE__ */ a(Ge, { className: "h-4 w-4" }), "Saved Addresses" ] }), - /* @__PURE__ */ i("div", { className: "space-y-2", children: [ - a.map((g) => /* @__PURE__ */ i( + /* @__PURE__ */ c("div", { className: "space-y-2", children: [ + o.map((x) => /* @__PURE__ */ c( "button", { type: "button", - onClick: () => M(g.id), - className: N( + onClick: () => Y(x.id), + className: D( "flex w-full items-start gap-3 rounded-lg border p-3 text-left transition-colors text-sm", - k === g.id ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" + m === x.id ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" ), children: [ - /* @__PURE__ */ o(xe, { className: "h-4 w-4 mt-0.5 shrink-0" }), - /* @__PURE__ */ i("div", { className: "min-w-0", children: [ - /* @__PURE__ */ i("p", { className: "font-medium", children: [ - g.label || g.fullName, - g.isDefault && /* @__PURE__ */ o("span", { className: "ml-2 text-xs text-muted-foreground", children: "(Default)" }) + /* @__PURE__ */ a(Ge, { className: "h-4 w-4 mt-0.5 shrink-0" }), + /* @__PURE__ */ c("div", { className: "min-w-0", children: [ + /* @__PURE__ */ c("p", { className: "font-medium", children: [ + x.label || x.fullName, + x.isDefault && /* @__PURE__ */ a("span", { className: "ml-2 text-xs text-muted-foreground", children: "(Default)" }) ] }), - /* @__PURE__ */ i("p", { className: "text-muted-foreground truncate", children: [ - g.address, + /* @__PURE__ */ c("p", { className: "text-muted-foreground truncate", children: [ + x.address, ", ", - g.city, + x.city, ", ", - g.country + x.country ] }) ] }) ] }, - g.id + x.id )), - /* @__PURE__ */ i( + /* @__PURE__ */ c( "button", { type: "button", - onClick: () => M("custom"), - className: N( + onClick: () => Y("custom"), + className: D( "flex w-full items-center gap-3 rounded-lg border p-3 text-left transition-colors text-sm", - k === "custom" ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" + m === "custom" ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" ), children: [ - /* @__PURE__ */ o("span", { className: "text-muted-foreground", children: "✏️" }), - /* @__PURE__ */ o("span", { className: "font-medium", children: "Enter a new address" }) + /* @__PURE__ */ a("span", { className: "text-muted-foreground", children: "✏️" }), + /* @__PURE__ */ a("span", { className: "font-medium", children: "Enter a new address" }) ] } ) ] }) ] }), - /* @__PURE__ */ i("div", { className: "grid gap-4 sm:grid-cols-2", children: [ - /* @__PURE__ */ i("div", { className: "sm:col-span-2 space-y-1.5", children: [ - /* @__PURE__ */ o(I, { htmlFor: "ck-name", children: "Full Name" }), - /* @__PURE__ */ o( - q, + /* @__PURE__ */ c("div", { className: "grid gap-4 sm:grid-cols-2", children: [ + /* @__PURE__ */ c("div", { className: "sm:col-span-2 space-y-1.5", children: [ + /* @__PURE__ */ a(ce, { htmlFor: "ck-name", children: "Full Name" }), + /* @__PURE__ */ a( + me, { id: "ck-name", required: !0, placeholder: "Jane Doe", - value: f.fullName, - onChange: (g) => R("fullName", g.target.value) + value: O.fullName, + onChange: (x) => U("fullName", x.target.value) } ) ] }), - /* @__PURE__ */ i("div", { className: "sm:col-span-2 space-y-1.5", children: [ - /* @__PURE__ */ o(I, { htmlFor: "ck-email", children: "Email" }), - /* @__PURE__ */ o( - q, + /* @__PURE__ */ c("div", { className: "sm:col-span-2 space-y-1.5", children: [ + /* @__PURE__ */ a(ce, { htmlFor: "ck-email", children: "Email" }), + /* @__PURE__ */ a( + me, { id: "ck-email", type: "email", required: !0, placeholder: "jane@example.com", - value: f.email, - onChange: (g) => R("email", g.target.value) + value: O.email, + onChange: (x) => U("email", x.target.value) } ) ] }), - /* @__PURE__ */ i("div", { className: "sm:col-span-2 space-y-1.5", children: [ - /* @__PURE__ */ o(I, { htmlFor: "ck-address", children: "Address" }), - /* @__PURE__ */ o( - q, + /* @__PURE__ */ c("div", { className: "sm:col-span-2 space-y-1.5", children: [ + /* @__PURE__ */ a(ce, { htmlFor: "ck-address", children: "Address" }), + /* @__PURE__ */ a( + me, { id: "ck-address", required: !0, placeholder: "123 Main St", - value: f.address, - onChange: (g) => R("address", g.target.value) + value: O.address, + onChange: (x) => U("address", x.target.value) } ) ] }), - /* @__PURE__ */ i("div", { className: "space-y-1.5", children: [ - /* @__PURE__ */ o(I, { htmlFor: "ck-city", children: "City" }), - /* @__PURE__ */ o( - q, + /* @__PURE__ */ c("div", { className: "space-y-1.5", children: [ + /* @__PURE__ */ a(ce, { htmlFor: "ck-city", children: "City" }), + /* @__PURE__ */ a( + me, { id: "ck-city", required: !0, placeholder: "New York", - value: f.city, - onChange: (g) => R("city", g.target.value) + value: O.city, + onChange: (x) => U("city", x.target.value) } ) ] }), - /* @__PURE__ */ i("div", { className: "space-y-1.5", children: [ - /* @__PURE__ */ o(I, { htmlFor: "ck-zip", children: "ZIP / Postal Code" }), - /* @__PURE__ */ o( - q, + /* @__PURE__ */ c("div", { className: "space-y-1.5", children: [ + /* @__PURE__ */ a(ce, { htmlFor: "ck-zip", children: "ZIP / Postal Code" }), + /* @__PURE__ */ a( + me, { id: "ck-zip", required: !0, placeholder: "10001", - value: f.zip, - onChange: (g) => R("zip", g.target.value) + value: O.zip, + onChange: (x) => U("zip", x.target.value) } ) ] }), - /* @__PURE__ */ i("div", { className: "sm:col-span-2 space-y-1.5", children: [ - /* @__PURE__ */ o(I, { htmlFor: "ck-country", children: "Country" }), - /* @__PURE__ */ o( - q, + /* @__PURE__ */ c("div", { className: "sm:col-span-2 space-y-1.5", children: [ + /* @__PURE__ */ a(ce, { htmlFor: "ck-country", children: "Country" }), + /* @__PURE__ */ a( + me, { id: "ck-country", required: !0, placeholder: "United States", - value: f.country, - onChange: (g) => R("country", g.target.value) + value: O.country, + onChange: (x) => U("country", x.target.value) } ) ] }), - k === "custom" && r && /* @__PURE__ */ i("div", { className: "sm:col-span-2 flex items-center gap-2 pt-1", children: [ - /* @__PURE__ */ o( + m === "custom" && r && /* @__PURE__ */ c("div", { className: "sm:col-span-2 flex items-center gap-2 pt-1", children: [ + /* @__PURE__ */ a( "input", { type: "checkbox", id: "ck-save-address", - checked: m, - onChange: (g) => C(g.target.checked), + checked: C, + onChange: (x) => A(x.target.checked), className: "h-4 w-4 rounded border-gray-300 accent-primary" } ), - /* @__PURE__ */ i(I, { htmlFor: "ck-save-address", className: "text-sm font-normal cursor-pointer flex items-center gap-1.5", children: [ - /* @__PURE__ */ o(Qe, { className: "h-3.5 w-3.5" }), + /* @__PURE__ */ c(ce, { htmlFor: "ck-save-address", className: "text-sm font-normal cursor-pointer flex items-center gap-1.5", children: [ + /* @__PURE__ */ a(Jr, { className: "h-3.5 w-3.5" }), "Save this address for future orders" ] }) ] }) ] }) ] }) ] }), - /* @__PURE__ */ i(A, { children: [ - /* @__PURE__ */ o(G, { children: /* @__PURE__ */ o(W, { className: "text-lg", children: "Payment Method" }) }), - /* @__PURE__ */ i(_, { className: "space-y-3", children: [ - /* @__PURE__ */ i( + /* @__PURE__ */ c(ue, { children: [ + /* @__PURE__ */ a(pe, { children: /* @__PURE__ */ a(he, { className: "text-lg", children: "Payment Method" }) }), + /* @__PURE__ */ c(de, { className: "space-y-3", children: [ + /* @__PURE__ */ c( "button", { type: "button", - onClick: () => y("shopify"), - className: N( + onClick: () => j("shopify"), + className: D( "flex w-full items-center gap-3 rounded-lg border p-4 text-left transition-colors", - u === "shopify" ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" + N === "shopify" ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" ), children: [ - /* @__PURE__ */ o(Ze, { className: "h-5 w-5 shrink-0" }), - /* @__PURE__ */ i("div", { children: [ - /* @__PURE__ */ o("p", { className: "font-medium", children: "Shopify Checkout" }), - /* @__PURE__ */ o("p", { className: "text-xs text-muted-foreground", children: "Credit / debit card via Shopify" }) + /* @__PURE__ */ a(Xe, { className: "h-5 w-5 shrink-0" }), + /* @__PURE__ */ c("div", { children: [ + /* @__PURE__ */ a("p", { className: "font-medium", children: "Shopify Checkout" }), + /* @__PURE__ */ a("p", { className: "text-xs text-muted-foreground", children: "Credit / debit card via Shopify" }) ] }) ] } ), - /* @__PURE__ */ i( + /* @__PURE__ */ c( "button", { type: "button", - onClick: () => y("crypto"), - className: N( + onClick: () => j("crypto"), + className: D( "flex w-full items-center gap-3 rounded-lg border p-4 text-left transition-colors", - u === "crypto" ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" + N === "crypto" ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" ), children: [ - /* @__PURE__ */ o(Je, { className: "h-5 w-5 shrink-0" }), - /* @__PURE__ */ i("div", { children: [ - /* @__PURE__ */ o("p", { className: "font-medium", children: "Crypto Payment" }), - /* @__PURE__ */ o("p", { className: "text-xs text-muted-foreground", children: "Bitcoin, Ethereum, and more" }) + /* @__PURE__ */ a(Hr, { className: "h-5 w-5 shrink-0" }), + /* @__PURE__ */ c("div", { children: [ + /* @__PURE__ */ a("p", { className: "font-medium", children: "Crypto Payment" }), + /* @__PURE__ */ a("p", { className: "text-xs text-muted-foreground", children: "Bitcoin, Ethereum, and more" }) ] }) ] } - ) + ), + /* @__PURE__ */ c( + "button", + { + type: "button", + onClick: () => j("stripe"), + className: D( + "flex w-full items-center gap-3 rounded-lg border p-4 text-left transition-colors", + N === "stripe" ? "border-primary bg-primary/5" : "border-border hover:bg-accent/5" + ), + children: [ + /* @__PURE__ */ a(Xe, { className: "h-5 w-5 shrink-0" }), + /* @__PURE__ */ c("div", { children: [ + /* @__PURE__ */ a("p", { className: "font-medium", children: "Stripe" }), + /* @__PURE__ */ a("p", { className: "text-xs text-muted-foreground", children: "Credit / debit card, Apple Pay, Google Pay" }) + ] }) + ] + } + ), + N === "stripe" && l && s && /* @__PURE__ */ a("div", { className: "pt-2", style: { minHeight: 350, contain: "content", overflow: "hidden", maxWidth: "100%" }, children: /* @__PURE__ */ a(Mr, { stripe: l, options: { clientSecret: s }, children: /* @__PURE__ */ a( + on, + { + onPaymentSuccess: p, + returnUrl: v, + defaultEmail: O.email, + defaultName: O.fullName + } + ) }) }) ] }) ] }) ] }), - /* @__PURE__ */ i("div", { className: "space-y-4", children: [ - /* @__PURE__ */ o(st, { tax: s, shipping: c }), - /* @__PURE__ */ o(Y, {}), - /* @__PURE__ */ o($, { type: "submit", size: "lg", className: "w-full", children: "Place Order" }), - t && /* @__PURE__ */ o( - $, + /* @__PURE__ */ c("div", { className: "space-y-4", children: [ + /* @__PURE__ */ a(Et, { tax: i, shipping: d }), + /* @__PURE__ */ a(ye, {}), + N !== "stripe" && /* @__PURE__ */ a(te, { type: "submit", size: "lg", className: "w-full", children: "Place Order" }), + t && /* @__PURE__ */ a( + te, { type: "button", variant: "ghost", @@ -3022,251 +1881,379 @@ function ut({ children: "← Back to Cart" } ), - /* @__PURE__ */ o(We, { className: "pt-4" }) + /* @__PURE__ */ a(Pr, { className: "pt-4" }) ] }) ] } - ); + ) }); } -function te({ title: e, children: r, className: t }) { - return /* @__PURE__ */ o("div", { className: N("mx-auto max-w-3xl py-8", t), children: /* @__PURE__ */ i(A, { children: [ - /* @__PURE__ */ o(G, { children: /* @__PURE__ */ o(W, { className: "text-2xl", children: e }) }), - /* @__PURE__ */ o(Y, {}), - /* @__PURE__ */ o(_, { className: "prose prose-sm dark:prose-invert max-w-none pt-6", children: r }) +function _e({ title: e, children: r, className: t }) { + return /* @__PURE__ */ a("div", { className: D("mx-auto max-w-3xl py-8", t), children: /* @__PURE__ */ c(ue, { children: [ + /* @__PURE__ */ a(pe, { children: /* @__PURE__ */ a(he, { className: "text-2xl", children: e }) }), + /* @__PURE__ */ a(ye, {}), + /* @__PURE__ */ a(de, { className: "prose prose-sm dark:prose-invert max-w-none pt-6", children: r }) ] }) }); } -const mt = [ +const cn = [ { region: "Domestic", method: "Standard", estimate: "5–7 business days", price: "$4.99" }, { region: "Domestic", method: "Express", estimate: "2–3 business days", price: "$12.99" }, { region: "International", method: "Standard", estimate: "10–20 business days", price: "$14.99" }, { region: "International", method: "Express", estimate: "5–8 business days", price: "$29.99" } ]; -function pt({ rates: e = mt, className: r }) { - return /* @__PURE__ */ i(te, { title: "Shipping Information", className: r, children: [ - /* @__PURE__ */ o("div", { className: "not-prose mb-8 grid gap-4 sm:grid-cols-2", children: [ - { icon: Xe, label: "Free shipping on orders over $75" }, - { icon: ue, label: "Same-day dispatch on orders before 2 PM" }, - { icon: Ke, label: "We ship worldwide" }, - { icon: er, label: "No hidden fees at checkout" } - ].map(({ icon: t, label: n }) => /* @__PURE__ */ i( +function ln({ rates: e = cn, className: r }) { + return /* @__PURE__ */ c(_e, { title: "Shipping Information", className: r, children: [ + /* @__PURE__ */ a("div", { className: "not-prose mb-8 grid gap-4 sm:grid-cols-2", children: [ + { icon: Gr, label: "Free shipping on orders over $75" }, + { icon: Ye, label: "Same-day dispatch on orders before 2 PM" }, + { icon: Xr, label: "We ship worldwide" }, + { icon: Kr, label: "No hidden fees at checkout" } + ].map(({ icon: t, label: n }) => /* @__PURE__ */ c( "div", { className: "flex items-center gap-3 rounded-lg border border-border/50 bg-accent/5 p-4", children: [ - /* @__PURE__ */ o(t, { className: "h-5 w-5 shrink-0 text-primary" }), - /* @__PURE__ */ o("span", { className: "text-sm font-medium", children: n }) + /* @__PURE__ */ a(t, { className: "h-5 w-5 shrink-0 text-primary" }), + /* @__PURE__ */ a("span", { className: "text-sm font-medium", children: n }) ] }, n )) }), - /* @__PURE__ */ o("h3", { children: "Shipping Rates" }), - /* @__PURE__ */ o("div", { className: "not-prose overflow-x-auto", children: /* @__PURE__ */ i("table", { className: "w-full text-sm", children: [ - /* @__PURE__ */ o("thead", { children: /* @__PURE__ */ i("tr", { className: "border-b text-left text-muted-foreground", children: [ - /* @__PURE__ */ o("th", { className: "pb-2 pr-4 font-medium", children: "Region" }), - /* @__PURE__ */ o("th", { className: "pb-2 pr-4 font-medium", children: "Method" }), - /* @__PURE__ */ o("th", { className: "pb-2 pr-4 font-medium", children: "Estimate" }), - /* @__PURE__ */ o("th", { className: "pb-2 font-medium text-right", children: "Price" }) + /* @__PURE__ */ a("h3", { children: "Shipping Rates" }), + /* @__PURE__ */ a("div", { className: "not-prose overflow-x-auto", children: /* @__PURE__ */ c("table", { className: "w-full text-sm", children: [ + /* @__PURE__ */ a("thead", { children: /* @__PURE__ */ c("tr", { className: "border-b text-left text-muted-foreground", children: [ + /* @__PURE__ */ a("th", { className: "pb-2 pr-4 font-medium", children: "Region" }), + /* @__PURE__ */ a("th", { className: "pb-2 pr-4 font-medium", children: "Method" }), + /* @__PURE__ */ a("th", { className: "pb-2 pr-4 font-medium", children: "Estimate" }), + /* @__PURE__ */ a("th", { className: "pb-2 font-medium text-right", children: "Price" }) ] }) }), - /* @__PURE__ */ o("tbody", { children: e.map((t, n) => /* @__PURE__ */ i("tr", { className: N("border-b border-border/30", n % 2 === 0 && "bg-accent/5"), children: [ - /* @__PURE__ */ o("td", { className: "py-2.5 pr-4", children: t.region }), - /* @__PURE__ */ o("td", { className: "py-2.5 pr-4", children: t.method }), - /* @__PURE__ */ o("td", { className: "py-2.5 pr-4 text-muted-foreground", children: t.estimate }), - /* @__PURE__ */ o("td", { className: "py-2.5 text-right font-medium", children: t.price }) + /* @__PURE__ */ a("tbody", { children: e.map((t, n) => /* @__PURE__ */ c("tr", { className: D("border-b border-border/30", n % 2 === 0 && "bg-accent/5"), children: [ + /* @__PURE__ */ a("td", { className: "py-2.5 pr-4", children: t.region }), + /* @__PURE__ */ a("td", { className: "py-2.5 pr-4", children: t.method }), + /* @__PURE__ */ a("td", { className: "py-2.5 pr-4 text-muted-foreground", children: t.estimate }), + /* @__PURE__ */ a("td", { className: "py-2.5 text-right font-medium", children: t.price }) ] }, n)) }) ] }) }), - /* @__PURE__ */ o("h3", { children: "Processing Time" }), - /* @__PURE__ */ o("p", { children: "Orders placed before 2:00 PM (local time) on business days are typically processed and shipped the same day. Orders placed after this cut-off or on weekends/holidays will be processed the next business day." }), - /* @__PURE__ */ o("h3", { children: "Tracking" }), - /* @__PURE__ */ o("p", { children: "Once your order ships, you will receive a confirmation email with a tracking number. You can use this number to track your package on the carrier's website." }) + /* @__PURE__ */ a("h3", { children: "Processing Time" }), + /* @__PURE__ */ a("p", { children: "Orders placed before 2:00 PM (local time) on business days are typically processed and shipped the same day. Orders placed after this cut-off or on weekends/holidays will be processed the next business day." }), + /* @__PURE__ */ a("h3", { children: "Tracking" }), + /* @__PURE__ */ a("p", { children: "Once your order ships, you will receive a confirmation email with a tracking number. You can use this number to track your package on the carrier's website." }) ] }); } -function ht({ returnWindowDays: e = 30, className: r }) { - return /* @__PURE__ */ i(te, { title: "Returns & Refund Policy", className: r, children: [ - /* @__PURE__ */ o("div", { className: "not-prose mb-8 grid gap-4 sm:grid-cols-2", children: [ - { icon: ue, label: `${e}-day return window` }, - { icon: rr, label: "Free returns on defective items" }, - { icon: Te, label: "Full refund to original payment" }, - { icon: le, label: "No restocking fees" } - ].map(({ icon: t, label: n }) => /* @__PURE__ */ i( +function un({ returnWindowDays: e = 30, className: r }) { + return /* @__PURE__ */ c(_e, { title: "Returns & Refund Policy", className: r, children: [ + /* @__PURE__ */ a("div", { className: "not-prose mb-8 grid gap-4 sm:grid-cols-2", children: [ + { icon: Ye, label: `${e}-day return window` }, + { icon: Qr, label: "Free returns on defective items" }, + { icon: br, label: "Full refund to original payment" }, + { icon: Fe, label: "No restocking fees" } + ].map(({ icon: t, label: n }) => /* @__PURE__ */ c( "div", { className: "flex items-center gap-3 rounded-lg border border-border/50 bg-accent/5 p-4", children: [ - /* @__PURE__ */ o(t, { className: "h-5 w-5 shrink-0 text-primary" }), - /* @__PURE__ */ o("span", { className: "text-sm font-medium", children: n }) + /* @__PURE__ */ a(t, { className: "h-5 w-5 shrink-0 text-primary" }), + /* @__PURE__ */ a("span", { className: "text-sm font-medium", children: n }) ] }, n )) }), - /* @__PURE__ */ o("h3", { children: "Eligibility" }), - /* @__PURE__ */ i("p", { children: [ + /* @__PURE__ */ a("h3", { children: "Eligibility" }), + /* @__PURE__ */ c("p", { children: [ "Items must be returned within ", - /* @__PURE__ */ i("strong", { children: [ + /* @__PURE__ */ c("strong", { children: [ e, " days" ] }), " of delivery in their original, unused condition with all tags and packaging intact." ] }), - /* @__PURE__ */ o("h3", { children: "How to Initiate a Return" }), - /* @__PURE__ */ i("ol", { children: [ - /* @__PURE__ */ o("li", { children: "Contact our support team with your order number." }), - /* @__PURE__ */ o("li", { children: "Receive a prepaid return label (for defective items) or return instructions." }), - /* @__PURE__ */ o("li", { children: "Ship the item back using the provided label or your preferred carrier." }) + /* @__PURE__ */ a("h3", { children: "How to Initiate a Return" }), + /* @__PURE__ */ c("ol", { children: [ + /* @__PURE__ */ a("li", { children: "Contact our support team with your order number." }), + /* @__PURE__ */ a("li", { children: "Receive a prepaid return label (for defective items) or return instructions." }), + /* @__PURE__ */ a("li", { children: "Ship the item back using the provided label or your preferred carrier." }) ] }), - /* @__PURE__ */ o("h3", { children: "Refund Processing" }), - /* @__PURE__ */ o("p", { children: "Once we receive and inspect the returned item, your refund will be processed within 5–10 business days to your original payment method. You will receive an email confirmation when the refund has been issued." }), - /* @__PURE__ */ o("h3", { children: "Exceptions" }), - /* @__PURE__ */ o("p", { children: "The following items are not eligible for return: gift cards, downloadable products, and items marked as final sale. Perishable goods cannot be returned unless they arrive damaged or defective." }) + /* @__PURE__ */ a("h3", { children: "Refund Processing" }), + /* @__PURE__ */ a("p", { children: "Once we receive and inspect the returned item, your refund will be processed within 5–10 business days to your original payment method. You will receive an email confirmation when the refund has been issued." }), + /* @__PURE__ */ a("h3", { children: "Exceptions" }), + /* @__PURE__ */ a("p", { children: "The following items are not eligible for return: gift cards, downloadable products, and items marked as final sale. Perishable goods cannot be returned unless they arrive damaged or defective." }) ] }); } -function ft({ +function dn({ siteName: e = "Our Store", contactEmail: r = "privacy@example.com", className: t }) { - return /* @__PURE__ */ i(te, { title: "Privacy Policy", className: t, children: [ - /* @__PURE__ */ i("p", { children: [ + return /* @__PURE__ */ c(_e, { title: "Privacy Policy", className: t, children: [ + /* @__PURE__ */ c("p", { children: [ "At ", - /* @__PURE__ */ o("strong", { children: e }), + /* @__PURE__ */ a("strong", { children: e }), ", we are committed to protecting your personal information and your right to privacy. This policy explains what information we collect, how we use it, and what rights you have in relation to it." ] }), - /* @__PURE__ */ o("h3", { children: "Information We Collect" }), - /* @__PURE__ */ i("ul", { children: [ - /* @__PURE__ */ i("li", { children: [ - /* @__PURE__ */ o("strong", { children: "Personal information:" }), + /* @__PURE__ */ a("h3", { children: "Information We Collect" }), + /* @__PURE__ */ c("ul", { children: [ + /* @__PURE__ */ c("li", { children: [ + /* @__PURE__ */ a("strong", { children: "Personal information:" }), " name, email, shipping address, and payment details provided during checkout." ] }), - /* @__PURE__ */ i("li", { children: [ - /* @__PURE__ */ o("strong", { children: "Usage data:" }), + /* @__PURE__ */ c("li", { children: [ + /* @__PURE__ */ a("strong", { children: "Usage data:" }), " pages visited, time spent, browser type, and device information collected automatically." ] }), - /* @__PURE__ */ i("li", { children: [ - /* @__PURE__ */ o("strong", { children: "Cookies:" }), + /* @__PURE__ */ c("li", { children: [ + /* @__PURE__ */ a("strong", { children: "Cookies:" }), " small data files stored on your device to improve your browsing experience and remember your preferences." ] }) ] }), - /* @__PURE__ */ o("h3", { children: "How We Use Your Information" }), - /* @__PURE__ */ i("ul", { children: [ - /* @__PURE__ */ o("li", { children: "To process and fulfill your orders." }), - /* @__PURE__ */ o("li", { children: "To communicate with you about orders, updates, and promotions." }), - /* @__PURE__ */ o("li", { children: "To improve our website and services." }), - /* @__PURE__ */ o("li", { children: "To comply with legal obligations." }) + /* @__PURE__ */ a("h3", { children: "How We Use Your Information" }), + /* @__PURE__ */ c("ul", { children: [ + /* @__PURE__ */ a("li", { children: "To process and fulfill your orders." }), + /* @__PURE__ */ a("li", { children: "To communicate with you about orders, updates, and promotions." }), + /* @__PURE__ */ a("li", { children: "To improve our website and services." }), + /* @__PURE__ */ a("li", { children: "To comply with legal obligations." }) ] }), - /* @__PURE__ */ o("h3", { children: "Data Sharing" }), - /* @__PURE__ */ o("p", { children: "We do not sell your personal data. We share information only with service providers necessary to fulfill your order (e.g., payment processors, shipping carriers) and as required by law." }), - /* @__PURE__ */ o("h3", { children: "Cookies" }), - /* @__PURE__ */ o("p", { children: "We use essential cookies for site functionality and optional analytics cookies to understand usage patterns. You can manage cookie preferences through your browser settings." }), - /* @__PURE__ */ o("h3", { children: "Your Rights" }), - /* @__PURE__ */ i("p", { children: [ + /* @__PURE__ */ a("h3", { children: "Data Sharing" }), + /* @__PURE__ */ a("p", { children: "We do not sell your personal data. We share information only with service providers necessary to fulfill your order (e.g., payment processors, shipping carriers) and as required by law." }), + /* @__PURE__ */ a("h3", { children: "Cookies" }), + /* @__PURE__ */ a("p", { children: "We use essential cookies for site functionality and optional analytics cookies to understand usage patterns. You can manage cookie preferences through your browser settings." }), + /* @__PURE__ */ a("h3", { children: "Your Rights" }), + /* @__PURE__ */ c("p", { children: [ "You may request access to, correction of, or deletion of your personal data at any time by contacting us at", " ", - /* @__PURE__ */ o("a", { href: `mailto:${r}`, className: "text-primary underline", children: r }), + /* @__PURE__ */ a("a", { href: `mailto:${r}`, className: "text-primary underline", children: r }), "." ] }), - /* @__PURE__ */ o("h3", { children: "Contact Us" }), - /* @__PURE__ */ i("p", { children: [ + /* @__PURE__ */ a("h3", { children: "Contact Us" }), + /* @__PURE__ */ c("p", { children: [ "If you have questions about this privacy policy, please contact us at", " ", - /* @__PURE__ */ o("a", { href: `mailto:${r}`, className: "text-primary underline", children: r }), + /* @__PURE__ */ a("a", { href: `mailto:${r}`, className: "text-primary underline", children: r }), "." ] }) ] }); } -function gt({ +function fn({ siteName: e = "Our Store", contactEmail: r = "legal@example.com", className: t }) { - return /* @__PURE__ */ i(te, { title: "Terms of Service", className: t, children: [ - /* @__PURE__ */ i("p", { children: [ + return /* @__PURE__ */ c(_e, { title: "Terms of Service", className: t, children: [ + /* @__PURE__ */ c("p", { children: [ "By accessing and using ", - /* @__PURE__ */ o("strong", { children: e }), + /* @__PURE__ */ a("strong", { children: e }), ", you agree to be bound by these Terms of Service." ] }), - /* @__PURE__ */ o("h3", { children: "Use of the Site" }), - /* @__PURE__ */ o("p", { children: "You agree to use this site only for lawful purposes and in a manner that does not infringe on the rights of others or restrict their use and enjoyment of the site." }), - /* @__PURE__ */ o("h3", { children: "Products & Pricing" }), - /* @__PURE__ */ o("p", { children: "All product descriptions and prices are subject to change without notice. We reserve the right to modify or discontinue any product at any time. Prices are displayed in the store's base currency and may exclude taxes and shipping costs, which are calculated at checkout." }), - /* @__PURE__ */ o("h3", { children: "Orders & Payment" }), - /* @__PURE__ */ o("p", { children: "By placing an order, you make an offer to purchase the selected products. We reserve the right to refuse or cancel any order for any reason, including pricing errors or suspected fraud." }), - /* @__PURE__ */ o("h3", { children: "Intellectual Property" }), - /* @__PURE__ */ i("p", { children: [ + /* @__PURE__ */ a("h3", { children: "Use of the Site" }), + /* @__PURE__ */ a("p", { children: "You agree to use this site only for lawful purposes and in a manner that does not infringe on the rights of others or restrict their use and enjoyment of the site." }), + /* @__PURE__ */ a("h3", { children: "Products & Pricing" }), + /* @__PURE__ */ a("p", { children: "All product descriptions and prices are subject to change without notice. We reserve the right to modify or discontinue any product at any time. Prices are displayed in the store's base currency and may exclude taxes and shipping costs, which are calculated at checkout." }), + /* @__PURE__ */ a("h3", { children: "Orders & Payment" }), + /* @__PURE__ */ a("p", { children: "By placing an order, you make an offer to purchase the selected products. We reserve the right to refuse or cancel any order for any reason, including pricing errors or suspected fraud." }), + /* @__PURE__ */ a("h3", { children: "Intellectual Property" }), + /* @__PURE__ */ c("p", { children: [ "All content on this site — including text, images, logos, and software — is the property of ", e, " or its licensors and is protected by applicable intellectual property laws." ] }), - /* @__PURE__ */ o("h3", { children: "Limitation of Liability" }), - /* @__PURE__ */ i("p", { children: [ + /* @__PURE__ */ a("h3", { children: "Limitation of Liability" }), + /* @__PURE__ */ c("p", { children: [ "To the fullest extent permitted by law, ", e, " shall not be liable for any indirect, incidental, or consequential damages arising from your use of the site or purchase of products." ] }), - /* @__PURE__ */ o("h3", { children: "Changes to These Terms" }), - /* @__PURE__ */ o("p", { children: "We may update these Terms of Service from time to time. Continued use of the site after changes constitutes acceptance of the revised terms." }), - /* @__PURE__ */ o("h3", { children: "Contact" }), - /* @__PURE__ */ i("p", { children: [ + /* @__PURE__ */ a("h3", { children: "Changes to These Terms" }), + /* @__PURE__ */ a("p", { children: "We may update these Terms of Service from time to time. Continued use of the site after changes constitutes acceptance of the revised terms." }), + /* @__PURE__ */ a("h3", { children: "Contact" }), + /* @__PURE__ */ c("p", { children: [ "For questions about these terms, contact us at", " ", - /* @__PURE__ */ o("a", { href: `mailto:${r}`, className: "text-primary underline", children: r }), + /* @__PURE__ */ a("a", { href: `mailto:${r}`, className: "text-primary underline", children: r }), "." ] }) ] }); } -function bt({ +function Re(e) { + "@babel/helpers - typeof"; + return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Re = function(r) { + return typeof r; + } : Re = function(r) { + return r && typeof Symbol == "function" && r.constructor === Symbol && r !== Symbol.prototype ? "symbol" : typeof r; + }, Re(e); +} +var Fr = "clover", mn = function(r) { + return r === 3 ? "v3" : r; +}, qr = "https://js.stripe.com", pn = "".concat(qr, "/").concat(Fr, "/stripe.js"), hn = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/, yn = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/; +var vn = function(r) { + return hn.test(r) || yn.test(r); +}, gn = function() { + for (var r = document.querySelectorAll('script[src^="'.concat(qr, '"]')), t = 0; t < r.length; t++) { + var n = r[t]; + if (vn(n.src)) + return n; + } + return null; +}, yr = function(r) { + var t = "", n = document.createElement("script"); + n.src = "".concat(pn).concat(t); + var o = document.head || document.body; + if (!o) + throw new Error("Expected document.body not to be null. Stripe.js requires a element."); + return o.appendChild(n), n; +}, bn = function(r, t) { + !r || !r._registerWrapper || r._registerWrapper({ + name: "stripe-js", + version: "8.8.0", + startTime: t + }); +}, be = null, Ce = null, Ee = null, xn = function(r) { + return function(t) { + r(new Error("Failed to load Stripe.js", { + cause: t + })); + }; +}, wn = function(r, t) { + return function() { + window.Stripe ? r(window.Stripe) : t(new Error("Stripe.js not available")); + }; +}, Nn = function(r) { + return be !== null ? be : (be = new Promise(function(t, n) { + if (typeof window > "u" || typeof document > "u") { + t(null); + return; + } + if (window.Stripe) { + t(window.Stripe); + return; + } + try { + var o = gn(); + if (!(o && r)) { + if (!o) + o = yr(r); + else if (o && Ee !== null && Ce !== null) { + var i; + o.removeEventListener("load", Ee), o.removeEventListener("error", Ce), (i = o.parentNode) === null || i === void 0 || i.removeChild(o), o = yr(r); + } + } + Ee = wn(t, n), Ce = xn(n), o.addEventListener("load", Ee), o.addEventListener("error", Ce); + } catch (d) { + n(d); + return; + } + }), be.catch(function(t) { + return be = null, Promise.reject(t); + })); +}, Sn = function(r, t, n) { + if (r === null) + return null; + var o = t[0]; + if (typeof o != "string") + throw new Error("Expected publishable key to be of type string, got type ".concat(Re(o), " instead.")); + var i = o.match(/^pk_test/), d = mn(r.version), l = Fr; + i && d !== l && console.warn("Stripe.js@".concat(d, " was loaded on the page, but @stripe/stripe-js@").concat("8.8.0", " expected Stripe.js@").concat(l, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning")); + var s = r.apply(void 0, t); + return bn(s, n), s; +}, xe, Dr = !1, Wr = function() { + return xe || (xe = Nn(null).catch(function(r) { + return xe = null, Promise.reject(r); + }), xe); +}; +Promise.resolve().then(function() { + return Wr(); +}).catch(function(e) { + Dr || console.warn(e); +}); +var Cn = function() { + for (var r = arguments.length, t = new Array(r), n = 0; n < r; n++) + t[n] = arguments[n]; + Dr = !0; + var o = Date.now(); + return Wr().then(function(i) { + return Sn(i, t, o); + }); +}; +function En({ userId: e, userDisplayName: r, userEmail: t, onFetchAddresses: n, - onSaveAddress: a, - onPlaceOrder: s, - onBackToCart: c, + onSaveAddress: o, + onPlaceOrder: i, + onBackToCart: d, onOrderSuccess: l, - toast: d + toast: s, + stripePublishableKey: p, + apiBaseUrl: v = "", + stripeReturnUrl: f, + currency: b = "eur" }) { - const [u, y] = V([]); - return je(() => { + const [N, j] = ae([]), [C, A] = ae(null), [w, ne] = ae(null), O = se((Y) => Y.subtotal); + return Pe(() => { if (!e) return; - let S = !0; - return n(e).then((f) => { - S && y(f); - }).catch((f) => console.error("Failed to fetch addresses:", f)), () => { - S = !1; + let Y = !0; + return n(e).then((U) => { + Y && j(U); + }).catch((U) => console.error("Failed to fetch addresses:", U)), () => { + Y = !1; }; - }, [e, n]), /* @__PURE__ */ o(ut, { ...{ - onPlaceOrder: async (S) => { - try { - await s(S), d == null || d.success("Order placed successfully!"), l(); - } catch (f) { - console.error("Failed to place order:", f), d == null || d.error("Failed to place order. Please try again."); - } - }, - onSaveAddress: async (S) => { - var f; - if (e) + }, [e, n]), Pe(() => { + p && A(Cn(p)); + }, [p]), Pe(() => { + if (!p || O <= 0) return; + let Y = !0; + const U = Math.round(O * 100); + return fetch(`${v}/api/stripe/create-payment-intent`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ amount: U, currency: b }) + }).then((V) => V.json()).then((V) => { + Y && V.clientSecret && ne(V.clientSecret); + }).catch((V) => console.error("Failed to create PaymentIntent:", V)), () => { + Y = !1; + }; + }, [p, v, O]), /* @__PURE__ */ a( + sn, + { + onPlaceOrder: async (Y) => { try { - const b = await n(e), k = { - ...S, - id: crypto.randomUUID(), - label: ((f = S.address) == null ? void 0 : f.split(",")[0]) || "Checkout address", - phone: "", - note: "", - // If it's the first address, make it default - isDefault: b.length === 0 - }, P = [...b, k]; - await a(e, P), y(P), d == null || d.success("Address saved to your profile"); - } catch (b) { - console.error("Failed to save address:", b), d == null || d.error("Failed to save address"); + await i(Y), s == null || s.success("Order placed successfully!"), l(); + } catch (U) { + console.error("Failed to place order:", U), s == null || s.error("Failed to place order. Please try again."); } - }, - onBackToCart: c, - savedAddresses: u, - initialShipping: { - fullName: r ?? "", - email: t ?? "" + }, + onSaveAddress: async (Y) => { + var U; + if (e) + try { + const V = await n(e), x = { + ...Y, + id: crypto.randomUUID(), + label: ((U = Y.address) == null ? void 0 : U.split(",")[0]) || "Checkout address", + phone: "", + note: "", + // If it's the first address, make it default + isDefault: V.length === 0 + }, B = [...V, x]; + await o(e, B), j(B), s == null || s.success("Address saved to your profile"); + } catch (V) { + console.error("Failed to save address:", V), s == null || s.error("Failed to save address"); + } + }, + onBackToCart: d, + savedAddresses: N, + initialShipping: { + fullName: r ?? "", + email: t ?? "" + }, + stripePromise: C, + stripeClientSecret: w, + onStripePaymentSuccess: () => { + s == null || s.success("Payment successful!"), l(); + }, + stripeReturnUrl: f } - } }); + ); } -const yt = pe( +const Pn = Ve( "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", { variants: { @@ -3282,133 +2269,133 @@ const yt = pe( } } ); -function vt({ className: e, variant: r, ...t }) { - return /* @__PURE__ */ o("div", { className: N(yt({ variant: r }), e), ...t }); +function Tn({ className: e, variant: r, ...t }) { + return /* @__PURE__ */ a("div", { className: D(Pn({ variant: r }), e), ...t }); } -const ze = { - pending: { label: "Pending", variant: "secondary", icon: /* @__PURE__ */ o(ue, { className: "h-3.5 w-3.5" }) }, - processing: { label: "Processing", variant: "default", icon: /* @__PURE__ */ o(ce, { className: "h-3.5 w-3.5" }) }, - completed: { label: "Completed", variant: "default", icon: /* @__PURE__ */ o(Te, { className: "h-3.5 w-3.5" }) }, - failed: { label: "Failed", variant: "destructive", icon: /* @__PURE__ */ o(le, { className: "h-3.5 w-3.5" }) }, - refunded: { label: "Refunded", variant: "outline", icon: /* @__PURE__ */ o(ce, { className: "h-3.5 w-3.5" }) }, - cancelled: { label: "Cancelled", variant: "destructive", icon: /* @__PURE__ */ o(le, { className: "h-3.5 w-3.5" }) } +const vr = { + pending: { label: "Pending", variant: "secondary", icon: /* @__PURE__ */ a(Ye, { className: "h-3.5 w-3.5" }) }, + processing: { label: "Processing", variant: "default", icon: /* @__PURE__ */ a(qe, { className: "h-3.5 w-3.5" }) }, + completed: { label: "Completed", variant: "default", icon: /* @__PURE__ */ a(br, { className: "h-3.5 w-3.5" }) }, + failed: { label: "Failed", variant: "destructive", icon: /* @__PURE__ */ a(Fe, { className: "h-3.5 w-3.5" }) }, + refunded: { label: "Refunded", variant: "outline", icon: /* @__PURE__ */ a(qe, { className: "h-3.5 w-3.5" }) }, + cancelled: { label: "Cancelled", variant: "destructive", icon: /* @__PURE__ */ a(Fe, { className: "h-3.5 w-3.5" }) } }; -function xt({ onFetchTransactions: e, onNavigate: r, toast: t }) { - const [n, a] = V([]), [s, c] = V(!0); - return je(() => { +function Rn({ onFetchTransactions: e, onNavigate: r, toast: t }) { + const [n, o] = ae([]), [i, d] = ae(!0); + return Pe(() => { let l = !0; - return c(!0), e().then((d) => { - l && a(d); - }).catch((d) => { - console.error("Failed to load transactions:", d), t == null || t.error("Failed to load purchases"); + return d(!0), e().then((s) => { + l && o(s); + }).catch((s) => { + console.error("Failed to load transactions:", s), t == null || t.error("Failed to load purchases"); }).finally(() => { - l && c(!1); + l && d(!1); }), () => { l = !1; }; - }, [e]), s ? /* @__PURE__ */ o("div", { className: "flex items-center justify-center py-24", children: /* @__PURE__ */ o(ce, { className: "h-6 w-6 animate-spin text-muted-foreground" }) }) : /* @__PURE__ */ i("div", { className: "mx-auto max-w-4xl px-4 py-8 space-y-6", children: [ - /* @__PURE__ */ i("div", { className: "flex items-center justify-between", children: [ - /* @__PURE__ */ i("div", { className: "flex items-center gap-3", children: [ - /* @__PURE__ */ o(we, { className: "h-6 w-6" }), - /* @__PURE__ */ o("h1", { className: "text-2xl font-bold", children: "My Purchases" }) + }, [e]), i ? /* @__PURE__ */ a("div", { className: "flex items-center justify-center py-24", children: /* @__PURE__ */ a(qe, { className: "h-6 w-6 animate-spin text-muted-foreground" }) }) : /* @__PURE__ */ c("div", { className: "mx-auto max-w-4xl px-4 py-8 space-y-6", children: [ + /* @__PURE__ */ c("div", { className: "flex items-center justify-between", children: [ + /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [ + /* @__PURE__ */ a(Ke, { className: "h-6 w-6" }), + /* @__PURE__ */ a("h1", { className: "text-2xl font-bold", children: "My Purchases" }) ] }), - /* @__PURE__ */ i($, { variant: "outline", size: "sm", onClick: () => r("/"), children: [ - /* @__PURE__ */ o(tr, { className: "h-4 w-4 mr-1" }), + /* @__PURE__ */ c(te, { variant: "outline", size: "sm", onClick: () => r("/"), children: [ + /* @__PURE__ */ a(Zr, { className: "h-4 w-4 mr-1" }), "Back" ] }) ] }), - n.length === 0 ? /* @__PURE__ */ o(A, { children: /* @__PURE__ */ i(_, { className: "flex flex-col items-center justify-center py-16 gap-4", children: [ - /* @__PURE__ */ o(we, { className: "h-12 w-12 text-muted-foreground" }), - /* @__PURE__ */ o("p", { className: "text-muted-foreground", children: "No purchases yet." }), - /* @__PURE__ */ o($, { variant: "outline", onClick: () => r("/"), children: "Browse Products" }) - ] }) }) : /* @__PURE__ */ o("div", { className: "space-y-4", children: n.map((l) => { - const d = Array.isArray(l.product_info) ? l.product_info : [], u = ze[l.status] || ze.pending, y = new Date(l.created_at).toLocaleDateString(void 0, { + n.length === 0 ? /* @__PURE__ */ a(ue, { children: /* @__PURE__ */ c(de, { className: "flex flex-col items-center justify-center py-16 gap-4", children: [ + /* @__PURE__ */ a(Ke, { className: "h-12 w-12 text-muted-foreground" }), + /* @__PURE__ */ a("p", { className: "text-muted-foreground", children: "No purchases yet." }), + /* @__PURE__ */ a(te, { variant: "outline", onClick: () => r("/"), children: "Browse Products" }) + ] }) }) : /* @__PURE__ */ a("div", { className: "space-y-4", children: n.map((l) => { + const s = Array.isArray(l.product_info) ? l.product_info : [], p = vr[l.status] || vr.pending, v = new Date(l.created_at).toLocaleDateString(void 0, { year: "numeric", month: "short", day: "numeric", hour: "2-digit", minute: "2-digit" }); - return /* @__PURE__ */ i(A, { className: "overflow-hidden", children: [ - /* @__PURE__ */ o(G, { className: "pb-3", children: /* @__PURE__ */ i("div", { className: "flex items-center justify-between flex-wrap gap-2", children: [ - /* @__PURE__ */ i("div", { className: "space-y-1", children: [ - /* @__PURE__ */ i(W, { className: "text-base", children: [ + return /* @__PURE__ */ c(ue, { className: "overflow-hidden", children: [ + /* @__PURE__ */ a(pe, { className: "pb-3", children: /* @__PURE__ */ c("div", { className: "flex items-center justify-between flex-wrap gap-2", children: [ + /* @__PURE__ */ c("div", { className: "space-y-1", children: [ + /* @__PURE__ */ c(he, { className: "text-base", children: [ "Order #", l.id.slice(0, 8) ] }), - /* @__PURE__ */ o("p", { className: "text-xs text-muted-foreground", children: y }) + /* @__PURE__ */ a("p", { className: "text-xs text-muted-foreground", children: v }) ] }), - /* @__PURE__ */ i("div", { className: "flex items-center gap-3", children: [ - /* @__PURE__ */ i(vt, { variant: u.variant, className: "flex items-center gap-1", children: [ - u.icon, - u.label + /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [ + /* @__PURE__ */ c(Tn, { variant: p.variant, className: "flex items-center gap-1", children: [ + p.icon, + p.label ] }), - /* @__PURE__ */ i("span", { className: "font-semibold text-sm", children: [ + /* @__PURE__ */ c("span", { className: "font-semibold text-sm", children: [ l.currency, " ", Number(l.total_amount).toFixed(2) ] }) ] }) ] }) }), - /* @__PURE__ */ i(_, { className: "pt-0", children: [ - /* @__PURE__ */ o("div", { className: "space-y-2", children: d.map((m, C) => /* @__PURE__ */ i( + /* @__PURE__ */ c(de, { className: "pt-0", children: [ + /* @__PURE__ */ a("div", { className: "space-y-2", children: s.map((f, b) => /* @__PURE__ */ c( "div", { className: "flex items-center gap-3 p-2 rounded-lg bg-muted/30", children: [ - m.image && /* @__PURE__ */ o( + f.image && /* @__PURE__ */ a( "img", { - src: m.image, - alt: m.title, + src: f.image, + alt: f.title, className: "h-10 w-10 rounded object-cover shrink-0" } ), - /* @__PURE__ */ i("div", { className: "min-w-0 flex-1", children: [ - /* @__PURE__ */ o("p", { className: "text-sm font-medium truncate", children: m.title || "Product" }), - /* @__PURE__ */ i("p", { className: "text-xs text-muted-foreground", children: [ + /* @__PURE__ */ c("div", { className: "min-w-0 flex-1", children: [ + /* @__PURE__ */ a("p", { className: "text-sm font-medium truncate", children: f.title || "Product" }), + /* @__PURE__ */ c("p", { className: "text-xs text-muted-foreground", children: [ "Qty: ", - m.quantity || 1, - m.variant && ` · ${m.variant}`, + f.quantity || 1, + f.variant && ` · ${f.variant}`, " · ", l.currency, " ", - Number(m.price || 0).toFixed(2) + Number(f.price || 0).toFixed(2) ] }), - m.vendorSlug && /* @__PURE__ */ i( + f.vendorSlug && /* @__PURE__ */ c( "a", { - href: `/user/${m.vendorSlug}`, - onClick: (h) => { - h.preventDefault(), r(`/user/${m.vendorSlug}`); + href: `/user/${f.vendorSlug}`, + onClick: (N) => { + N.preventDefault(), r(`/user/${f.vendorSlug}`); }, className: "text-xs text-primary hover:underline flex items-center gap-1 mt-0.5 cursor-pointer", children: [ - /* @__PURE__ */ o(or, { className: "h-3 w-3" }), - m.vendorSlug + /* @__PURE__ */ a(et, { className: "h-3 w-3" }), + f.vendorSlug ] } ) ] }), - m.vendorSlug && m.pageSlug && /* @__PURE__ */ i( + f.vendorSlug && f.pageSlug && /* @__PURE__ */ c( "a", { - href: `/user/${m.vendorSlug}/pages/${m.pageSlug}`, - onClick: (h) => { - h.preventDefault(), r(`/user/${m.vendorSlug}/pages/${m.pageSlug}`); + href: `/user/${f.vendorSlug}/pages/${f.pageSlug}`, + onClick: (N) => { + N.preventDefault(), r(`/user/${f.vendorSlug}/pages/${f.pageSlug}`); }, className: "text-primary hover:underline text-xs flex items-center gap-1 shrink-0 cursor-pointer", children: [ "View", - /* @__PURE__ */ o(nr, { className: "h-3 w-3" }) + /* @__PURE__ */ a(rt, { className: "h-3 w-3" }) ] } ) ] }, - C + b )) }), - l.shipping_info && Object.keys(l.shipping_info).length > 0 && /* @__PURE__ */ i("div", { className: "mt-3 pt-3 border-t text-xs text-muted-foreground", children: [ + l.shipping_info && Object.keys(l.shipping_info).length > 0 && /* @__PURE__ */ c("div", { className: "mt-3 pt-3 border-t text-xs text-muted-foreground", children: [ "Ships to: ", l.shipping_info.fullName, ", ", @@ -3421,45 +2408,49 @@ function xt({ onFetchTransactions: e, onNavigate: r, toast: t }) { }) }) ] }); } -const zt = (e) => { - var t, n, a, s; - const { pathname: r } = lr(); - return L("/cart/*", r) ? /* @__PURE__ */ o(at, { onCheckout: () => e.onNavigate("/checkout") }) : L("/checkout/*", r) ? /* @__PURE__ */ o( - bt, +const Ln = (e) => { + var t, n, o, i; + const { pathname: r } = ot(); + return fe("/cart/*", r) ? /* @__PURE__ */ a(Ct, { onCheckout: () => e.onNavigate("/checkout") }) : fe("/checkout/*", r) ? /* @__PURE__ */ a( + En, { userId: (t = e.user) == null ? void 0 : t.id, - userDisplayName: (a = (n = e.user) == null ? void 0 : n.user_metadata) == null ? void 0 : a.display_name, - userEmail: (s = e.user) == null ? void 0 : s.email, + userDisplayName: (o = (n = e.user) == null ? void 0 : n.user_metadata) == null ? void 0 : o.display_name, + userEmail: (i = e.user) == null ? void 0 : i.email, onFetchAddresses: e.onFetchAddresses, onSaveAddress: e.onSaveAddress, onPlaceOrder: e.onPlaceOrder, onBackToCart: () => e.onNavigate("/cart"), onOrderSuccess: () => e.onNavigate("/purchases"), - toast: e.toast + toast: e.toast, + stripePublishableKey: e.stripePublishableKey, + apiBaseUrl: e.apiBaseUrl, + stripeReturnUrl: e.stripeReturnUrl, + currency: e.currency } - ) : L("/purchases/*", r) ? /* @__PURE__ */ o( - xt, + ) : fe("/purchases/*", r) ? /* @__PURE__ */ a( + Rn, { onFetchTransactions: e.onFetchTransactions, onNavigate: e.onNavigate, toast: e.toast } - ) : L("/shipping/*", r) ? /* @__PURE__ */ o(pt, {}) : L("/returns/*", r) ? /* @__PURE__ */ o(ht, {}) : L("/privacy/*", r) ? /* @__PURE__ */ o(ft, { siteName: e.siteName || "PolyMech", contactEmail: e.contactEmail || "privacy@polymech.org" }) : L("/terms/*", r) ? /* @__PURE__ */ o(gt, { siteName: e.siteName || "PolyMech", contactEmail: e.contactEmail || "legal@polymech.org" }) : null; + ) : fe("/shipping/*", r) ? /* @__PURE__ */ a(ln, {}) : fe("/returns/*", r) ? /* @__PURE__ */ a(un, {}) : fe("/privacy/*", r) ? /* @__PURE__ */ a(dn, { siteName: e.siteName || "PolyMech", contactEmail: e.contactEmail || "privacy@polymech.org" }) : fe("/terms/*", r) ? /* @__PURE__ */ a(fn, { siteName: e.siteName || "PolyMech", contactEmail: e.contactEmail || "legal@polymech.org" }) : null; }; export { - Jr as CartItemRow, - at as CartPage, - bt as CheckoutFlow, - ut as CheckoutPage, - zt as EcommerceBundle, - st as OrderSummary, - We as PolicyLinks, - te as PolicyPage, - ft as PrivacyPolicyPage, - xt as PurchasesList, - ht as ReturnsPage, - pt as ShippingPage, - gt as TermsPage, - E as useCartStore + yt as CartItemRow, + Ct as CartPage, + En as CheckoutFlow, + sn as CheckoutPage, + Ln as EcommerceBundle, + Et as OrderSummary, + Pr as PolicyLinks, + _e as PolicyPage, + dn as PrivacyPolicyPage, + Rn as PurchasesList, + un as ReturnsPage, + ln as ShippingPage, + fn as TermsPage, + se as useCartStore }; //# sourceMappingURL=pm-ecommerce.es.js.map diff --git a/packages/ecommerce/dist-lib/pm-ecommerce.es.js.map b/packages/ecommerce/dist-lib/pm-ecommerce.es.js.map index 5b8e0481..ed8db308 100644 --- a/packages/ecommerce/dist-lib/pm-ecommerce.es.js.map +++ b/packages/ecommerce/dist-lib/pm-ecommerce.es.js.map @@ -1 +1 @@ -{"version":3,"file":"pm-ecommerce.es.js","sources":["../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs","../node_modules/clsx/dist/clsx.mjs","../node_modules/class-variance-authority/dist/index.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/utils.ts","../src/components/ui/button.tsx","../src/cart/useCartStore.ts","../src/cart/CartItem.tsx","../src/components/ui/card.tsx","../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-separator/dist/index.mjs","../src/components/ui/separator.tsx","../src/policies/PolicyLinks.tsx","../src/cart/CartPage.tsx","../src/checkout/OrderSummary.tsx","../src/components/ui/input.tsx","../node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-label/dist/index.mjs","../src/components/ui/label.tsx","../src/checkout/CheckoutPage.tsx","../src/policies/PolicyPage.tsx","../src/policies/ShippingPage.tsx","../src/policies/ReturnsPage.tsx","../src/policies/PrivacyPolicyPage.tsx","../src/policies/TermsPage.tsx","../src/checkout/CheckoutFlow.tsx","../src/components/ui/badge.tsx","../src/purchases/PurchasesList.tsx","../src/EcommerceBundle.tsx"],"sourcesContent":["// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nvar use = React[\" use \".trim().toString()];\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;ttypeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","import * as React from \"react\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\r\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\r\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\r\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-10 px-4 py-2\",\r\n sm: \"h-9 rounded-md px-2\",\r\n lg: \"h-11 rounded-md px-4\",\r\n icon: \"h-10 w-10\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n },\r\n);\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes,\r\n VariantProps {\r\n asChild?: boolean;\r\n}\r\n\r\nconst Button = React.forwardRef(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n return ;\r\n },\r\n);\r\nButton.displayName = \"Button\";\r\n\r\nexport { Button, buttonVariants };\r\n","import { create } from \"zustand\";\r\nimport { persist } from \"zustand/middleware\";\r\nimport type { CartItem, CartState } from \"./types\";\r\n\r\n/** Recompute derived totals from items array. */\r\nfunction computeTotals(items: CartItem[]) {\r\n return {\r\n subtotal: items.reduce((sum, i) => sum + i.price * i.quantity, 0),\r\n itemCount: items.reduce((sum, i) => sum + i.quantity, 0),\r\n };\r\n}\r\n\r\n/**\r\n * Global cart store — persisted to localStorage.\r\n *\r\n * Usage:\r\n * ```tsx\r\n * const { items, addItem, subtotal } = useCartStore();\r\n * ```\r\n */\r\nexport const useCartStore = create()(\r\n persist(\r\n (set) => ({\r\n items: [],\r\n subtotal: 0,\r\n itemCount: 0,\r\n\r\n addItem: (incoming) =>\r\n set((state) => {\r\n const existing = state.items.find((i) => i.id === incoming.id);\r\n let items: CartItem[];\r\n if (existing) {\r\n items = state.items.map((i) =>\r\n i.id === incoming.id\r\n ? { ...i, quantity: i.quantity + (incoming.quantity ?? 1) }\r\n : i,\r\n );\r\n } else {\r\n items = [...state.items, { ...incoming, quantity: incoming.quantity ?? 1 }];\r\n }\r\n return { items, ...computeTotals(items) };\r\n }),\r\n\r\n removeItem: (id) =>\r\n set((state) => {\r\n const items = state.items.filter((i) => i.id !== id);\r\n return { items, ...computeTotals(items) };\r\n }),\r\n\r\n updateQuantity: (id, quantity) =>\r\n set((state) => {\r\n if (quantity <= 0) {\r\n const items = state.items.filter((i) => i.id !== id);\r\n return { items, ...computeTotals(items) };\r\n }\r\n const items = state.items.map((i) =>\r\n i.id === id ? { ...i, quantity } : i,\r\n );\r\n return { items, ...computeTotals(items) };\r\n }),\r\n\r\n clearCart: () => set({ items: [], subtotal: 0, itemCount: 0 }),\r\n }),\r\n {\r\n name: \"pm-ecommerce-cart\",\r\n },\r\n ),\r\n);\r\n","import React from \"react\";\r\nimport { Minus, Plus, Trash2 } from \"lucide-react\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useCartStore } from \"./useCartStore\";\r\nimport type { CartItem as CartItemType } from \"./types\";\r\n\r\nexport interface CartItemProps {\r\n item: CartItemType;\r\n /** Optional extra class names for the root element. */\r\n className?: string;\r\n}\r\n\r\n/** A single cart row — thumbnail, title, quantity stepper, line total, remove. */\r\nexport function CartItemRow({ item, className }: CartItemProps) {\r\n const updateQuantity = useCartStore((s) => s.updateQuantity);\r\n const removeItem = useCartStore((s) => s.removeItem);\r\n\r\n const lineTotal = item.price * item.quantity;\r\n\r\n return (\r\n \r\n {/* Thumbnail */}\r\n {item.image ? (\r\n \r\n ) : (\r\n
\r\n No img\r\n
\r\n )}\r\n\r\n {/* Info */}\r\n
\r\n {item.title}\r\n {item.variant && (\r\n {item.variant}\r\n )}\r\n \r\n ${item.price.toFixed(2)} each\r\n \r\n {item.vendorSlug && (\r\n \r\n Sold by {item.vendorSlug}\r\n \r\n )}\r\n
\r\n\r\n {/* Quantity stepper */}\r\n
\r\n updateQuantity(item.id, item.quantity - 1)}\r\n aria-label=\"Decrease quantity\"\r\n >\r\n \r\n \r\n \r\n {item.quantity}\r\n \r\n updateQuantity(item.id, item.quantity + 1)}\r\n aria-label=\"Increase quantity\"\r\n >\r\n \r\n \r\n
\r\n\r\n {/* Line total */}\r\n \r\n ${lineTotal.toFixed(2)}\r\n \r\n\r\n {/* Remove */}\r\n removeItem(item.id)}\r\n aria-label={`Remove ${item.title}`}\r\n >\r\n \r\n \r\n \r\n );\r\n}\r\n","import * as React from \"react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst Card = React.forwardRef>(({ className, ...props }, ref) => (\r\n
\r\n));\r\nCard.displayName = \"Card\";\r\n\r\nconst CardHeader = React.forwardRef>(\r\n ({ className, ...props }, ref) => (\r\n
\r\n ),\r\n);\r\nCardHeader.displayName = \"CardHeader\";\r\n\r\nconst CardTitle = React.forwardRef>(\r\n ({ className, ...props }, ref) => (\r\n

\r\n ),\r\n);\r\nCardTitle.displayName = \"CardTitle\";\r\n\r\nconst CardDescription = React.forwardRef>(\r\n ({ className, ...props }, ref) => (\r\n

\r\n ),\r\n);\r\nCardDescription.displayName = \"CardDescription\";\r\n\r\nconst CardContent = React.forwardRef>(\r\n ({ className, ...props }, ref) =>

,\r\n);\r\nCardContent.displayName = \"CardContent\";\r\n\r\nconst CardFooter = React.forwardRef>(\r\n ({ className, ...props }, ref) => (\r\n
\r\n ),\r\n);\r\nCardFooter.displayName = \"CardFooter\";\r\n\r\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\r\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (\r\n \r\n));\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\r\n\r\nexport { Separator };\r\n","import React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nexport interface PolicyLink {\r\n label: string;\r\n href: string;\r\n}\r\n\r\nconst defaultLinks: PolicyLink[] = [\r\n { label: \"Returns & Refunds\", href: \"/returns\" },\r\n { label: \"Shipping\", href: \"/shipping\" },\r\n { label: \"Privacy Policy\", href: \"/privacy\" },\r\n { label: \"Terms of Service\", href: \"/terms\" },\r\n];\r\n\r\nexport interface PolicyLinksProps {\r\n links?: PolicyLink[];\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Small footer row of policy links for cart / checkout pages.\r\n */\r\nexport function PolicyLinks({ links = defaultLinks, className }: PolicyLinksProps) {\r\n return (\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { ShoppingCart, Trash2 } from \"lucide-react\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Card, CardContent, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useCartStore } from \"./useCartStore\";\r\nimport { CartItemRow } from \"./CartItem\";\r\nimport { PolicyLinks } from \"@/policies/PolicyLinks\";\r\n\r\nexport interface CartPageProps {\r\n /** Called when user clicks \"Proceed to Checkout\". */\r\n onCheckout?: () => void;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Full cart page — shows items, subtotal, and a checkout CTA.\r\n * Renders an empty-state when the cart has no items.\r\n */\r\nexport function CartPage({ onCheckout, className }: CartPageProps) {\r\n const items = useCartStore((s) => s.items);\r\n const subtotal = useCartStore((s) => s.subtotal);\r\n const itemCount = useCartStore((s) => s.itemCount);\r\n const clearCart = useCartStore((s) => s.clearCart);\r\n\r\n /* ---------- Empty state ---------- */\r\n if (items.length === 0) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Your cart is empty

\r\n

\r\n Add some products to get started.\r\n

\r\n
\r\n
\r\n );\r\n }\r\n\r\n /* ---------- Cart with items ---------- */\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Cart\r\n \r\n ({itemCount} {itemCount === 1 ? \"item\" : \"items\"})\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n {items.map((item) => (\r\n \r\n ))}\r\n \r\n\r\n \r\n\r\n \r\n
\r\n Subtotal\r\n ${subtotal.toFixed(2)}\r\n
\r\n

\r\n Shipping and taxes calculated at checkout.\r\n

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useCartStore } from \"@/cart/useCartStore\";\r\n\r\nexport interface OrderSummaryProps {\r\n /** Tax amount (pass 0 or leave undefined to show \"Calculated at next step\"). */\r\n tax?: number;\r\n /** Shipping cost (pass 0 or leave undefined to show \"Free\" / \"TBD\"). */\r\n shipping?: number;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Read-only order breakdown: line items, subtotal, tax, shipping, total.\r\n */\r\nexport function OrderSummary({ tax, shipping, className }: OrderSummaryProps) {\r\n const items = useCartStore((s) => s.items);\r\n const subtotal = useCartStore((s) => s.subtotal);\r\n\r\n const taxAmount = tax ?? 0;\r\n const shippingAmount = shipping ?? 0;\r\n const total = subtotal + taxAmount + shippingAmount;\r\n\r\n return (\r\n \r\n \r\n Order Summary\r\n \r\n\r\n \r\n {/* Line items */}\r\n
    \r\n {items.map((item) => (\r\n
  • \r\n
    \r\n \r\n {item.title} × {item.quantity}\r\n \r\n {item.vendorSlug && (\r\n \r\n via {item.vendorSlug}\r\n \r\n )}\r\n
    \r\n \r\n ${(item.price * item.quantity).toFixed(2)}\r\n \r\n
  • \r\n ))}\r\n
\r\n\r\n \r\n\r\n {/* Subtotal */}\r\n
\r\n Subtotal\r\n ${subtotal.toFixed(2)}\r\n
\r\n\r\n {/* Tax */}\r\n
\r\n Tax\r\n \r\n {tax !== undefined ? `$${taxAmount.toFixed(2)}` : \"Calculated at next step\"}\r\n \r\n
\r\n\r\n {/* Shipping */}\r\n
\r\n Shipping\r\n \r\n {shipping !== undefined\r\n ? shippingAmount === 0\r\n ? \"Free\"\r\n : `$${shippingAmount.toFixed(2)}`\r\n : \"TBD\"}\r\n \r\n
\r\n\r\n \r\n\r\n {/* Total */}\r\n
\r\n Total\r\n ${total.toFixed(2)}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import * as React from \"react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst Input = React.forwardRef>(\r\n ({ className, type, ...props }, ref) => {\r\n return (\r\n \r\n );\r\n },\r\n);\r\nInput.displayName = \"Input\";\r\n\r\nexport { Input };\r\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst labelVariants = cva(\r\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\r\n);\r\n\r\nconst Label = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef & VariantProps\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nLabel.displayName = LabelPrimitive.Root.displayName;\r\n\r\nexport { Label };\r\n","import React, { useState } from \"react\";\r\nimport { CreditCard, Bitcoin, ShoppingBag, MapPin, Save } from \"lucide-react\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Input } from \"@/components/ui/input\";\r\nimport { Label } from \"@/components/ui/label\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useCartStore } from \"@/cart/useCartStore\";\r\nimport { OrderSummary } from \"./OrderSummary\";\r\nimport { PolicyLinks } from \"@/policies/PolicyLinks\";\r\n\r\n/** Shipping address fields collected at checkout. */\r\nexport interface ShippingAddress {\r\n fullName: string;\r\n email: string;\r\n address: string;\r\n city: string;\r\n zip: string;\r\n country: string;\r\n}\r\n\r\n/** A saved address with extra metadata (matches pm-pics SavedShippingAddress). */\r\nexport interface SavedAddress extends ShippingAddress {\r\n id: string;\r\n label?: string;\r\n isDefault?: boolean;\r\n phone?: string;\r\n note?: string;\r\n}\r\n\r\nexport type PaymentMethod = \"shopify\" | \"crypto\";\r\n\r\nexport interface CheckoutPageProps {\r\n /** Called when user submits the checkout form. */\r\n onPlaceOrder?: (data: {\r\n shipping: ShippingAddress;\r\n paymentMethod: PaymentMethod;\r\n }) => void;\r\n /** Called when user wants to save the entered address to their profile. */\r\n onSaveAddress?: (address: ShippingAddress) => void;\r\n /** Called when user clicks \"Back to Cart\". */\r\n onBackToCart?: () => void;\r\n /** Pre-fill shipping form fields (e.g. from user profile). */\r\n initialShipping?: Partial;\r\n /** Saved shipping addresses — enables address selector. */\r\n savedAddresses?: SavedAddress[];\r\n /** Pre-filled tax amount, if known. */\r\n tax?: number;\r\n /** Pre-filled shipping cost. */\r\n shipping?: number;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Checkout page — two-column layout with shipping form + payment selector on\r\n * the left and an OrderSummary on the right.\r\n */\r\nexport function CheckoutPage({\r\n onPlaceOrder,\r\n onSaveAddress,\r\n onBackToCart,\r\n initialShipping,\r\n savedAddresses,\r\n tax,\r\n shipping,\r\n className,\r\n}: CheckoutPageProps) {\r\n const itemCount = useCartStore((s) => s.itemCount);\r\n\r\n const [paymentMethod, setPaymentMethod] = useState(\"shopify\");\r\n const [saveAddress, setSaveAddress] = useState(false);\r\n\r\n // Find default address or first address from savedAddresses\r\n const defaultAddress = savedAddresses?.find((a) => a.isDefault) ?? savedAddresses?.[0];\r\n\r\n // Determine initial form values: saved default > initialShipping > empty\r\n const resolveInitial = (): ShippingAddress => ({\r\n fullName: defaultAddress?.fullName ?? initialShipping?.fullName ?? \"\",\r\n email: defaultAddress?.email ?? initialShipping?.email ?? \"\",\r\n address: defaultAddress?.address ?? initialShipping?.address ?? \"\",\r\n city: defaultAddress?.city ?? initialShipping?.city ?? \"\",\r\n zip: defaultAddress?.zip ?? initialShipping?.zip ?? \"\",\r\n country: defaultAddress?.country ?? initialShipping?.country ?? \"\",\r\n });\r\n\r\n const [form, setForm] = useState(resolveInitial);\r\n const [selectedAddressId, setSelectedAddressId] = useState(\r\n defaultAddress?.id ?? \"custom\"\r\n );\r\n\r\n // Sync form when a saved address is selected\r\n const selectAddress = (id: string) => {\r\n setSelectedAddressId(id);\r\n if (id === \"custom\") return;\r\n const addr = savedAddresses?.find((a) => a.id === id);\r\n if (addr) {\r\n setForm({\r\n fullName: addr.fullName,\r\n email: addr.email,\r\n address: addr.address,\r\n city: addr.city,\r\n zip: addr.zip,\r\n country: addr.country,\r\n });\r\n }\r\n };\r\n\r\n const field = (key: keyof ShippingAddress, value: string) =>\r\n setForm((prev) => ({ ...prev, [key]: value }));\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (saveAddress && selectedAddressId === \"custom\" && onSaveAddress) {\r\n onSaveAddress(form);\r\n }\r\n onPlaceOrder?.({ shipping: form, paymentMethod });\r\n };\r\n\r\n /* ---- Empty cart guard ---- */\r\n if (itemCount === 0) {\r\n return (\r\n
\r\n \r\n

Your cart is empty — nothing to check out.

\r\n {onBackToCart && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n {/* ---- Left: Shipping + Payment ---- */}\r\n
\r\n {/* Shipping */}\r\n \r\n \r\n Shipping Information\r\n \r\n \r\n {/* Saved Address Selector */}\r\n {savedAddresses && savedAddresses.length > 0 && (\r\n
\r\n \r\n
\r\n {savedAddresses.map((addr) => (\r\n selectAddress(addr.id)}\r\n className={cn(\r\n \"flex w-full items-start gap-3 rounded-lg border p-3 text-left transition-colors text-sm\",\r\n selectedAddressId === addr.id\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n \r\n
\r\n

\r\n {addr.label || addr.fullName}\r\n {addr.isDefault && (\r\n (Default)\r\n )}\r\n

\r\n

\r\n {addr.address}, {addr.city}, {addr.country}\r\n

\r\n
\r\n \r\n ))}\r\n selectAddress(\"custom\")}\r\n className={cn(\r\n \"flex w-full items-center gap-3 rounded-lg border p-3 text-left transition-colors text-sm\",\r\n selectedAddressId === \"custom\"\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n ✏️\r\n Enter a new address\r\n \r\n
\r\n
\r\n )}\r\n\r\n {/* Form Fields */}\r\n
\r\n
\r\n \r\n field(\"fullName\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"email\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"address\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"city\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"zip\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"country\", e.target.value)}\r\n />\r\n
\r\n\r\n {selectedAddressId === \"custom\" && onSaveAddress && (\r\n
\r\n setSaveAddress(e.target.checked)}\r\n className=\"h-4 w-4 rounded border-gray-300 accent-primary\"\r\n />\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n\r\n {/* Payment Method */}\r\n \r\n \r\n Payment Method\r\n \r\n \r\n setPaymentMethod(\"shopify\")}\r\n className={cn(\r\n \"flex w-full items-center gap-3 rounded-lg border p-4 text-left transition-colors\",\r\n paymentMethod === \"shopify\"\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n \r\n
\r\n

Shopify Checkout

\r\n

\r\n Credit / debit card via Shopify\r\n

\r\n
\r\n \r\n\r\n setPaymentMethod(\"crypto\")}\r\n className={cn(\r\n \"flex w-full items-center gap-3 rounded-lg border p-4 text-left transition-colors\",\r\n paymentMethod === \"crypto\"\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n \r\n
\r\n

Crypto Payment

\r\n

\r\n Bitcoin, Ethereum, and more\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n {/* ---- Right: Summary + CTA ---- */}\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n {onBackToCart && (\r\n \r\n ← Back to Cart\r\n \r\n )}\r\n\r\n \r\n
\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nexport interface PolicyPageProps {\r\n /** Page title override. */\r\n title?: string;\r\n /** Rich content to render inside the page body (JSX). */\r\n children?: React.ReactNode;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Generic policy/info page shell — centered card with title + prose body.\r\n * Used by ShippingPage, ReturnsPage, PrivacyPolicyPage, TermsPage.\r\n */\r\nexport function PolicyPage({ title, children, className }: PolicyPageProps) {\r\n return (\r\n
\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Truck, Clock, Globe, DollarSign } from \"lucide-react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { PolicyPage } from \"./PolicyPage\";\r\n\r\nexport interface ShippingRate {\r\n region: string;\r\n method: string;\r\n estimate: string;\r\n price: string;\r\n}\r\n\r\nexport interface ShippingPageProps {\r\n /** Custom shipping rates to display. Falls back to placeholder content. */\r\n rates?: ShippingRate[];\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\nconst defaultRates: ShippingRate[] = [\r\n { region: \"Domestic\", method: \"Standard\", estimate: \"5–7 business days\", price: \"$4.99\" },\r\n { region: \"Domestic\", method: \"Express\", estimate: \"2–3 business days\", price: \"$12.99\" },\r\n { region: \"International\", method: \"Standard\", estimate: \"10–20 business days\", price: \"$14.99\" },\r\n { region: \"International\", method: \"Express\", estimate: \"5–8 business days\", price: \"$29.99\" },\r\n];\r\n\r\n/** Public page with shipping info and rates. */\r\nexport function ShippingPage({ rates = defaultRates, className }: ShippingPageProps) {\r\n return (\r\n \r\n {/* Highlights */}\r\n
\r\n {[\r\n { icon: Truck, label: \"Free shipping on orders over $75\" },\r\n { icon: Clock, label: \"Same-day dispatch on orders before 2 PM\" },\r\n { icon: Globe, label: \"We ship worldwide\" },\r\n { icon: DollarSign, label: \"No hidden fees at checkout\" },\r\n ].map(({ icon: Icon, label }) => (\r\n \r\n \r\n {label}\r\n
\r\n ))}\r\n
\r\n\r\n {/* Rates table */}\r\n

Shipping Rates

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rates.map((r, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
RegionMethodEstimatePrice
{r.region}{r.method}{r.estimate}{r.price}
\r\n
\r\n\r\n

Processing Time

\r\n

\r\n Orders placed before 2:00 PM (local time) on business days are typically processed and\r\n shipped the same day. Orders placed after this cut-off or on weekends/holidays will be\r\n processed the next business day.\r\n

\r\n\r\n

Tracking

\r\n

\r\n Once your order ships, you will receive a confirmation email with a tracking number.\r\n You can use this number to track your package on the carrier's website.\r\n

\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { RotateCcw, CheckCircle, XCircle, Clock } from \"lucide-react\";\r\nimport { PolicyPage } from \"./PolicyPage\";\r\n\r\nexport interface ReturnsPageProps {\r\n /** Number of days for return window. */\r\n returnWindowDays?: number;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/** Public page with refund / return policy. */\r\nexport function ReturnsPage({ returnWindowDays = 30, className }: ReturnsPageProps) {\r\n return (\r\n \r\n {/* Quick summary */}\r\n
\r\n {[\r\n { icon: Clock, label: `${returnWindowDays}-day return window` },\r\n { icon: RotateCcw, label: \"Free returns on defective items\" },\r\n { icon: CheckCircle, label: \"Full refund to original payment\" },\r\n { icon: XCircle, label: \"No restocking fees\" },\r\n ].map(({ icon: Icon, label }) => (\r\n \r\n \r\n {label}\r\n
\r\n ))}\r\n
\r\n\r\n

Eligibility

\r\n

\r\n Items must be returned within {returnWindowDays} days of delivery in their\r\n original, unused condition with all tags and packaging intact.\r\n

\r\n\r\n

How to Initiate a Return

\r\n
    \r\n
  1. Contact our support team with your order number.
  2. \r\n
  3. Receive a prepaid return label (for defective items) or return instructions.
  4. \r\n
  5. Ship the item back using the provided label or your preferred carrier.
  6. \r\n
\r\n\r\n

Refund Processing

\r\n

\r\n Once we receive and inspect the returned item, your refund will be processed within\r\n 5–10 business days to your original payment method. You will receive an email\r\n confirmation when the refund has been issued.\r\n

\r\n\r\n

Exceptions

\r\n

\r\n The following items are not eligible for return: gift cards, downloadable products,\r\n and items marked as final sale. Perishable goods cannot be returned unless they arrive\r\n damaged or defective.\r\n

\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { PolicyPage } from \"./PolicyPage\";\r\n\r\nexport interface PrivacyPolicyPageProps {\r\n /** Business / site name used in the policy text. */\r\n siteName?: string;\r\n /** Contact email for privacy inquiries. */\r\n contactEmail?: string;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/** Public page with privacy / cookie information. */\r\nexport function PrivacyPolicyPage({\r\n siteName = \"Our Store\",\r\n contactEmail = \"privacy@example.com\",\r\n className,\r\n}: PrivacyPolicyPageProps) {\r\n return (\r\n \r\n

\r\n At {siteName}, we are committed to protecting your personal information\r\n and your right to privacy. This policy explains what information we collect, how we use\r\n it, and what rights you have in relation to it.\r\n

\r\n\r\n

Information We Collect

\r\n
    \r\n
  • \r\n Personal information: name, email, shipping address, and payment\r\n details provided during checkout.\r\n
  • \r\n
  • \r\n Usage data: pages visited, time spent, browser type, and device\r\n information collected automatically.\r\n
  • \r\n
  • \r\n Cookies: small data files stored on your device to improve your\r\n browsing experience and remember your preferences.\r\n
  • \r\n
\r\n\r\n

How We Use Your Information

\r\n
    \r\n
  • To process and fulfill your orders.
  • \r\n
  • To communicate with you about orders, updates, and promotions.
  • \r\n
  • To improve our website and services.
  • \r\n
  • To comply with legal obligations.
  • \r\n
\r\n\r\n

Data Sharing

\r\n

\r\n We do not sell your personal data. We share information only with service providers\r\n necessary to fulfill your order (e.g., payment processors, shipping carriers) and as\r\n required by law.\r\n

\r\n\r\n

Cookies

\r\n

\r\n We use essential cookies for site functionality and optional analytics cookies to\r\n understand usage patterns. You can manage cookie preferences through your browser\r\n settings.\r\n

\r\n\r\n

Your Rights

\r\n

\r\n You may request access to, correction of, or deletion of your personal data at any\r\n time by contacting us at{\" \"}\r\n \r\n {contactEmail}\r\n \r\n .\r\n

\r\n\r\n

Contact Us

\r\n

\r\n If you have questions about this privacy policy, please contact us at{\" \"}\r\n \r\n {contactEmail}\r\n \r\n .\r\n

\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { PolicyPage } from \"./PolicyPage\";\r\n\r\nexport interface TermsPageProps {\r\n /** Business / site name. */\r\n siteName?: string;\r\n /** Contact email for legal inquiries. */\r\n contactEmail?: string;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/** Optional terms of service page. */\r\nexport function TermsPage({\r\n siteName = \"Our Store\",\r\n contactEmail = \"legal@example.com\",\r\n className,\r\n}: TermsPageProps) {\r\n return (\r\n \r\n

\r\n By accessing and using {siteName}, you agree to be bound by these\r\n Terms of Service.\r\n

\r\n\r\n

Use of the Site

\r\n

\r\n You agree to use this site only for lawful purposes and in a manner that does not\r\n infringe on the rights of others or restrict their use and enjoyment of the site.\r\n

\r\n\r\n

Products & Pricing

\r\n

\r\n All product descriptions and prices are subject to change without notice. We reserve\r\n the right to modify or discontinue any product at any time. Prices are displayed in\r\n the store's base currency and may exclude taxes and shipping costs, which are\r\n calculated at checkout.\r\n

\r\n\r\n

Orders & Payment

\r\n

\r\n By placing an order, you make an offer to purchase the selected products. We reserve\r\n the right to refuse or cancel any order for any reason, including pricing errors or\r\n suspected fraud.\r\n

\r\n\r\n

Intellectual Property

\r\n

\r\n All content on this site — including text, images, logos, and software — is the\r\n property of {siteName} or its licensors and is protected by applicable intellectual\r\n property laws.\r\n

\r\n\r\n

Limitation of Liability

\r\n

\r\n To the fullest extent permitted by law, {siteName} shall not be liable for any\r\n indirect, incidental, or consequential damages arising from your use of the site or\r\n purchase of products.\r\n

\r\n\r\n

Changes to These Terms

\r\n

\r\n We may update these Terms of Service from time to time. Continued use of the site\r\n after changes constitutes acceptance of the revised terms.\r\n

\r\n\r\n

Contact

\r\n

\r\n For questions about these terms, contact us at{\" \"}\r\n \r\n {contactEmail}\r\n \r\n .\r\n

\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { CheckoutPage, CheckoutPageProps, SavedAddress } from \"./CheckoutPage\";\r\n\r\nexport interface CheckoutFlowProps {\r\n /** The authenticated user's ID. */\r\n userId?: string;\r\n /** The authenticated user's display name. */\r\n userDisplayName?: string;\r\n /** The authenticated user's email. */\r\n userEmail?: string;\r\n /** Async function to fetch saved addresses for the user. */\r\n onFetchAddresses: (userId: string) => Promise;\r\n /** Async function to save a new address (or update list). */\r\n onSaveAddress: (userId: string, addresses: SavedAddress[]) => Promise;\r\n /** Async function to place the order (create transaction). */\r\n onPlaceOrder: (data: any) => Promise;\r\n /** Navigation callback to go back to cart. */\r\n onBackToCart: () => void;\r\n /** Callback after successful order placement (e.g. navigate to purchases). */\r\n onOrderSuccess: () => void;\r\n /** Toast notification handler. */\r\n toast?: {\r\n success: (msg: string) => void;\r\n error: (msg: string) => void;\r\n };\r\n}\r\n\r\nexport function CheckoutFlow({\r\n userId,\r\n userDisplayName,\r\n userEmail,\r\n onFetchAddresses,\r\n onSaveAddress,\r\n onPlaceOrder,\r\n onBackToCart,\r\n onOrderSuccess,\r\n toast,\r\n}: CheckoutFlowProps) {\r\n const [savedAddresses, setSavedAddresses] = useState([]);\r\n\r\n // 1. Fetch addresses on mount if user exists\r\n useEffect(() => {\r\n if (!userId) return;\r\n let mounted = true;\r\n onFetchAddresses(userId)\r\n .then((addrs) => {\r\n if (mounted) setSavedAddresses(addrs);\r\n })\r\n .catch((err) => console.error(\"Failed to fetch addresses:\", err));\r\n return () => { mounted = false; };\r\n }, [userId, onFetchAddresses]);\r\n\r\n // 2. Handle saving a new address\r\n const handleSaveAddress = async (address: any) => {\r\n if (!userId) return;\r\n try {\r\n // Re-fetch latest to be safe (or use local state if we trust it completely)\r\n const existing = await onFetchAddresses(userId);\r\n\r\n const newAddr: SavedAddress = {\r\n ...address,\r\n id: crypto.randomUUID(),\r\n label: address.address?.split(',')[0] || 'Checkout address',\r\n phone: '',\r\n note: '',\r\n // If it's the first address, make it default\r\n isDefault: existing.length === 0,\r\n };\r\n\r\n const updated = [...existing, newAddr];\r\n await onSaveAddress(userId, updated);\r\n setSavedAddresses(updated);\r\n toast?.success(\"Address saved to your profile\");\r\n } catch (err) {\r\n console.error(\"Failed to save address:\", err);\r\n toast?.error(\"Failed to save address\");\r\n }\r\n };\r\n\r\n // 3. Handle order placement\r\n const handlePlaceOrder = async (data: any) => {\r\n try {\r\n await onPlaceOrder(data);\r\n toast?.success(\"Order placed successfully!\");\r\n onOrderSuccess();\r\n } catch (err) {\r\n console.error(\"Failed to place order:\", err);\r\n toast?.error(\"Failed to place order. Please try again.\");\r\n }\r\n };\r\n\r\n const checkoutProps: CheckoutPageProps = {\r\n onPlaceOrder: handlePlaceOrder,\r\n onSaveAddress: handleSaveAddress,\r\n onBackToCart,\r\n savedAddresses,\r\n initialShipping: {\r\n fullName: userDisplayName ?? \"\",\r\n email: userEmail ?? \"\",\r\n },\r\n };\r\n\r\n return ;\r\n}\r\n","import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst badgeVariants = cva(\r\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\r\n secondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n destructive: \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\r\n outline: \"text-foreground\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n },\r\n);\r\n\r\nexport interface BadgeProps extends React.HTMLAttributes, VariantProps { }\r\n\r\nfunction Badge({ className, variant, ...props }: BadgeProps) {\r\n return
;\r\n}\r\n\r\nexport { Badge, badgeVariants };\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Package, Clock, CheckCircle, XCircle, ArrowLeft, ExternalLink, RefreshCw, Store } from \"lucide-react\";\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Badge } from \"@/components/ui/badge\";\r\n\r\n// We need to define or import Transaction type and statusConfig locally or from a shared type file\r\n// Since client-ecommerce.ts is outside, let's redefine minimal types here or ask for them to be passed in.\r\n// Ideally, `client-ecommerce.ts` types should be imported from @polymech/ecommerce if possible, \r\n// OR @polymech/ecommerce should define the types and client-ecommerce uses them.\r\n// For now, let's define the props generically.\r\n\r\nexport interface Transaction {\r\n id: string;\r\n created_at: string;\r\n status: string;\r\n total_amount: number;\r\n currency: string;\r\n product_info: any[];\r\n shipping_info: any;\r\n}\r\n\r\nexport interface PurchasesListProps {\r\n /** Async function to fetch user transactions. */\r\n onFetchTransactions: () => Promise;\r\n /** Navigation callback. */\r\n onNavigate: (path: string) => void;\r\n /** Toast notification handler. */\r\n toast?: {\r\n error: (msg: string) => void;\r\n };\r\n}\r\n\r\nconst statusConfig: Record = {\r\n pending: { label: \"Pending\", variant: \"secondary\", icon: },\r\n processing: { label: \"Processing\", variant: \"default\", icon: },\r\n completed: { label: \"Completed\", variant: \"default\", icon: },\r\n failed: { label: \"Failed\", variant: \"destructive\", icon: },\r\n refunded: { label: \"Refunded\", variant: \"outline\", icon: },\r\n cancelled: { label: \"Cancelled\", variant: \"destructive\", icon: },\r\n};\r\n\r\nexport function PurchasesList({ onFetchTransactions, onNavigate, toast }: PurchasesListProps) {\r\n const [transactions, setTransactions] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n let mounted = true;\r\n setLoading(true);\r\n onFetchTransactions()\r\n .then((data) => {\r\n if (mounted) setTransactions(data);\r\n })\r\n .catch((err) => {\r\n console.error(\"Failed to load transactions:\", err);\r\n toast?.error(\"Failed to load purchases\");\r\n })\r\n .finally(() => {\r\n if (mounted) setLoading(false);\r\n });\r\n return () => { mounted = false; };\r\n }, [onFetchTransactions]);\r\n\r\n if (loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n

My Purchases

\r\n
\r\n \r\n
\r\n\r\n {transactions.length === 0 ? (\r\n \r\n \r\n \r\n

No purchases yet.

\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n {transactions.map((tx) => {\r\n const products = Array.isArray(tx.product_info) ? tx.product_info : [];\r\n const sc = statusConfig[tx.status] || statusConfig.pending;\r\n const date = new Date(tx.created_at).toLocaleDateString(undefined, {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n });\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n Order #{tx.id.slice(0, 8)}\r\n \r\n

{date}

\r\n
\r\n
\r\n \r\n {sc.icon}\r\n {sc.label}\r\n \r\n \r\n {tx.currency} {Number(tx.total_amount).toFixed(2)}\r\n \r\n
\r\n
\r\n
\r\n \r\n {/* Product list */}\r\n
\r\n {products.map((item: any, idx: number) => (\r\n \r\n {item.image && (\r\n \r\n )}\r\n
\r\n

\r\n {item.title || \"Product\"}\r\n

\r\n

\r\n Qty: {item.quantity || 1}\r\n {item.variant && ` · ${item.variant}`}\r\n {\" · \"}\r\n {tx.currency} {Number(item.price || 0).toFixed(2)}\r\n

\r\n {item.vendorSlug && (\r\n { e.preventDefault(); onNavigate(`/user/${item.vendorSlug}`); }}\r\n className=\"text-xs text-primary hover:underline flex items-center gap-1 mt-0.5 cursor-pointer\"\r\n >\r\n \r\n {item.vendorSlug}\r\n \r\n )}\r\n
\r\n {item.vendorSlug && item.pageSlug && (\r\n { e.preventDefault(); onNavigate(`/user/${item.vendorSlug}/pages/${item.pageSlug}`); }}\r\n className=\"text-primary hover:underline text-xs flex items-center gap-1 shrink-0 cursor-pointer\"\r\n >\r\n View\r\n \r\n \r\n )}\r\n
\r\n ))}\r\n
\r\n\r\n {/* Shipping summary */}\r\n {tx.shipping_info && Object.keys(tx.shipping_info).length > 0 && (\r\n
\r\n Ships to: {(tx.shipping_info as any).fullName}, {(tx.shipping_info as any).city}, {(tx.shipping_info as any).country}\r\n
\r\n )}\r\n \r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useLocation, matchPath, Navigate } from \"react-router-dom\";\r\nimport { CartPage } from \"./cart/CartPage\";\r\nimport { CheckoutFlow } from \"./checkout/CheckoutFlow\";\r\nimport { PurchasesList } from \"./purchases/PurchasesList\";\r\nimport { ShippingPage } from \"./policies/ShippingPage\";\r\nimport { ReturnsPage } from \"./policies/ReturnsPage\";\r\nimport { PrivacyPolicyPage } from \"./policies/PrivacyPolicyPage\";\r\nimport { TermsPage } from \"./policies/TermsPage\";\r\n\r\nexport interface EcommerceBundleDependencies {\r\n user: {\r\n id?: string;\r\n email?: string;\r\n user_metadata?: {\r\n display_name?: string;\r\n };\r\n } | null;\r\n toast: {\r\n success: (message: string) => void;\r\n error: (message: string) => void;\r\n };\r\n onFetchAddresses: (userId: string) => Promise;\r\n onSaveAddress: (userId: string, addresses: any[]) => Promise;\r\n onPlaceOrder: (data: any) => Promise;\r\n onFetchTransactions: () => Promise;\r\n onNavigate: (path: string) => void;\r\n // Optional config\r\n siteName?: string;\r\n contactEmail?: string;\r\n}\r\n\r\nexport const EcommerceBundle: React.FC = (props) => {\r\n const { pathname } = useLocation();\r\n\r\n if (matchPath(\"/cart/*\", pathname)) {\r\n return props.onNavigate('/checkout')} />;\r\n }\r\n\r\n if (matchPath(\"/checkout/*\", pathname)) {\r\n return (\r\n props.onNavigate('/cart')}\r\n onOrderSuccess={() => props.onNavigate('/purchases')}\r\n toast={props.toast}\r\n />\r\n );\r\n }\r\n\r\n if (matchPath(\"/purchases/*\", pathname)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (matchPath(\"/shipping/*\", pathname)) return ;\r\n if (matchPath(\"/returns/*\", pathname)) return ;\r\n if (matchPath(\"/privacy/*\", pathname)) return ;\r\n if (matchPath(\"/terms/*\", pathname)) return ;\r\n\r\n return null; // Return null if no route matches (let App.tsx handle 404 if needed, though this component is usually mounted on specific routes)\r\n};\r\n"],"names":["setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","i","REACT_LAZY_TYPE","use","React","isPromiseLike","isLazyComponent","element","createSlot","ownerName","SlotClone","createSlotClone","Slot2","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","Slot","childrenRef","getElementRef","props2","mergeProps","SLOTTABLE_IDENTIFIER","childProps","overrideProps","propName","slotPropValue","childPropValue","args","result","getter","_a","mayWarn","_b","r","t","f","o","clsx","falsyToString","cx","cva","base","config","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","key","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions","CLASS_PART_SEPARATOR","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","className","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","theme","prefix","getPrefixedClassGroupEntries","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","path","currentClassPartObject","pathPart","func","classGroupEntries","prefixedClassGroup","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","bracketDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","classGroupsInConflict","classNames","originalClassName","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isArbitraryNumber","isInteger","isPercent","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","getDefaultConfig","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumberAndArbitrary","twMerge","cn","inputs","buttonVariants","Button","size","asChild","computeTotals","items","sum","useCartStore","create","persist","set","incoming","state","existing","id","quantity","CartItemRow","item","updateQuantity","removeItem","lineTotal","jsxs","Minus","Plus","Trash2","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","NODES","Primitive","primitive","Node","primitiveProps","Comp","NAME","DEFAULT_ORIENTATION","ORIENTATIONS","Separator","decorative","orientationProp","domProps","orientation","isValidOrientation","semanticProps","Root","SeparatorPrimitive.Root","defaultLinks","PolicyLinks","links","l","CartPage","onCheckout","s","subtotal","itemCount","clearCart","ShoppingCart","OrderSummary","tax","shipping","taxAmount","shippingAmount","total","Input","type","Label","event","labelVariants","LabelPrimitive.Root","CheckoutPage","onPlaceOrder","onSaveAddress","onBackToCart","initialShipping","savedAddresses","paymentMethod","setPaymentMethod","useState","saveAddress","setSaveAddress","defaultAddress","a","resolveInitial","form","setForm","selectedAddressId","setSelectedAddressId","selectAddress","addr","field","prev","handleSubmit","e","ShoppingBag","MapPin","Save","CreditCard","Bitcoin","PolicyPage","title","defaultRates","ShippingPage","rates","Truck","Clock","Globe","DollarSign","Icon","ReturnsPage","returnWindowDays","RotateCcw","CheckCircle","XCircle","PrivacyPolicyPage","siteName","contactEmail","TermsPage","CheckoutFlow","userId","userDisplayName","userEmail","onFetchAddresses","onOrderSuccess","toast","setSavedAddresses","useEffect","mounted","addrs","err","data","address","newAddr","updated","badgeVariants","Badge","statusConfig","RefreshCw","PurchasesList","onFetchTransactions","onNavigate","transactions","setTransactions","loading","setLoading","Package","ArrowLeft","tx","products","sc","date","idx","Store","ExternalLink","EcommerceBundle","pathname","useLocation","matchPath","_c","_d"],"mappings":";;;;;;;;AAEA,SAASA,GAAOC,GAAKC,GAAO;AAC1B,MAAI,OAAOD,KAAQ;AACjB,WAAOA,EAAIC,CAAK;AACX,EAAID,KAAQ,SACjBA,EAAI,UAAUC;AAElB;AACA,SAASC,MAAeC,GAAM;AAC5B,SAAO,CAACC,MAAS;AACf,QAAIC,IAAa;AACjB,UAAMC,IAAWH,EAAK,IAAI,CAACH,MAAQ;AACjC,YAAMO,IAAUR,GAAOC,GAAKI,CAAI;AAChC,aAAI,CAACC,KAAc,OAAOE,KAAW,eACnCF,IAAa,KAERE;AAAA,IACT,CAAC;AACD,QAAIF;AACF,aAAO,MAAM;AACX,iBAASG,IAAI,GAAGA,IAAIF,EAAS,QAAQE,KAAK;AACxC,gBAAMD,IAAUD,EAASE,CAAC;AAC1B,UAAI,OAAOD,KAAW,aACpBA,EAAO,IAEPR,GAAOI,EAAKK,CAAC,GAAG,IAAI;AAAA,QAExB;AAAA,MACF;AAAA,EAEJ;AACF;AC5BA,IAAIC,KAAkB,OAAO,IAAI,YAAY,GACzCC,KAAMC,EAAM,QAAQ,KAAI,EAAG,SAAQ,CAAE;AACzC,SAASC,GAAcX,GAAO;AAC5B,SAAO,OAAOA,KAAU,YAAYA,MAAU,QAAQ,UAAUA;AAClE;AACA,SAASY,GAAgBC,GAAS;AAChC,SAAOA,KAAW,QAAQ,OAAOA,KAAY,YAAY,cAAcA,KAAWA,EAAQ,aAAaL,MAAmB,cAAcK,KAAWF,GAAcE,EAAQ,QAAQ;AACnL;AAAA;AAEA,SAASC,GAAWC,GAAW;AAC7B,QAAMC,IAA4B,gBAAAC,GAAgBF,CAAS,GACrDG,IAAQR,EAAM,WAAW,CAACS,GAAOC,MAAiB;AACtD,QAAI,EAAE,UAAAC,GAAU,GAAGC,EAAS,IAAKH;AACjC,IAAIP,GAAgBS,CAAQ,KAAK,OAAOZ,MAAQ,eAC9CY,IAAWZ,GAAIY,EAAS,QAAQ;AAElC,UAAME,IAAgBb,EAAM,SAAS,QAAQW,CAAQ,GAC/CG,IAAYD,EAAc,KAAKE,EAAW;AAChD,QAAID,GAAW;AACb,YAAME,IAAaF,EAAU,MAAM,UAC7BG,IAAcJ,EAAc,IAAI,CAACK,MACjCA,MAAUJ,IACRd,EAAM,SAAS,MAAMgB,CAAU,IAAI,IAAUhB,EAAM,SAAS,KAAK,IAAI,IAClEA,EAAM,eAAegB,CAAU,IAAIA,EAAW,MAAM,WAAW,OAE/DE,CAEV;AACD,aAAuB,gBAAAC,EAAIb,GAAW,EAAE,GAAGM,GAAW,KAAKF,GAAc,UAAUV,EAAM,eAAegB,CAAU,IAAIhB,EAAM,aAAagB,GAAY,QAAQC,CAAW,IAAI,MAAM;AAAA,IACpL;AACA,WAAuB,gBAAAE,EAAIb,GAAW,EAAE,GAAGM,GAAW,KAAKF,GAAc,UAAAC,GAAU;AAAA,EACrF,CAAC;AACD,SAAAH,EAAM,cAAc,GAAGH,CAAS,SACzBG;AACT;AACA,IAAIY,KAAuB,gBAAAhB,GAAW,MAAM;AAAA;AAE5C,SAASG,GAAgBF,GAAW;AAClC,QAAMC,IAAYN,EAAM,WAAW,CAACS,GAAOC,MAAiB;AAC1D,QAAI,EAAE,UAAAC,GAAU,GAAGC,EAAS,IAAKH;AAIjC,QAHIP,GAAgBS,CAAQ,KAAK,OAAOZ,MAAQ,eAC9CY,IAAWZ,GAAIY,EAAS,QAAQ,IAE9BX,EAAM,eAAeW,CAAQ,GAAG;AAClC,YAAMU,IAAcC,GAAcX,CAAQ,GACpCY,IAASC,GAAWZ,GAAWD,EAAS,KAAK;AACnD,aAAIA,EAAS,SAASX,EAAM,aAC1BuB,EAAO,MAAMb,IAAenB,GAAYmB,GAAcW,CAAW,IAAIA,IAEhErB,EAAM,aAAaW,GAAUY,CAAM;AAAA,IAC5C;AACA,WAAOvB,EAAM,SAAS,MAAMW,CAAQ,IAAI,IAAIX,EAAM,SAAS,KAAK,IAAI,IAAI;AAAA,EAC1E,CAAC;AACD,SAAAM,EAAU,cAAc,GAAGD,CAAS,cAC7BC;AACT;AACA,IAAImB,KAAuB,OAAO,iBAAiB;AAWnD,SAASV,GAAYG,GAAO;AAC1B,SAAOlB,EAAM,eAAekB,CAAK,KAAK,OAAOA,EAAM,QAAS,cAAc,eAAeA,EAAM,QAAQA,EAAM,KAAK,cAAcO;AAClI;AACA,SAASD,GAAWZ,GAAWc,GAAY;AACzC,QAAMC,IAAgB,EAAE,GAAGD,EAAU;AACrC,aAAWE,KAAYF,GAAY;AACjC,UAAMG,IAAgBjB,EAAUgB,CAAQ,GAClCE,IAAiBJ,EAAWE,CAAQ;AAE1C,IADkB,WAAW,KAAKA,CAAQ,IAEpCC,KAAiBC,IACnBH,EAAcC,CAAQ,IAAI,IAAIG,MAAS;AACrC,YAAMC,IAASF,EAAe,GAAGC,CAAI;AACrC,aAAAF,EAAc,GAAGE,CAAI,GACdC;AAAA,IACT,IACSH,MACTF,EAAcC,CAAQ,IAAIC,KAEnBD,MAAa,UACtBD,EAAcC,CAAQ,IAAI,EAAE,GAAGC,GAAe,GAAGC,EAAc,IACtDF,MAAa,gBACtBD,EAAcC,CAAQ,IAAI,CAACC,GAAeC,CAAc,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EAEtF;AACA,SAAO,EAAE,GAAGlB,GAAW,GAAGe,EAAa;AACzC;AACA,SAASL,GAAcnB,GAAS;;AAC9B,MAAI8B,KAASC,IAAA,OAAO,yBAAyB/B,EAAQ,OAAO,KAAK,MAApD,gBAAA+B,EAAuD,KAChEC,IAAUF,KAAU,oBAAoBA,KAAUA,EAAO;AAC7D,SAAIE,IACKhC,EAAQ,OAEjB8B,KAASG,IAAA,OAAO,yBAAyBjC,GAAS,KAAK,MAA9C,gBAAAiC,EAAiD,KAC1DD,IAAUF,KAAU,oBAAoBA,KAAUA,EAAO,gBACrDE,IACKhC,EAAQ,MAAM,MAEhBA,EAAQ,MAAM,OAAOA,EAAQ;AACtC;AC9GA,SAASkC,GAAE,GAAE;AAAC,MAAIC,GAAEC,GAAE,IAAE;AAAG,MAAa,OAAO,KAAjB,YAA8B,OAAO,KAAjB,SAAmB,MAAG;AAAA,WAAoB,OAAO,KAAjB,SAAmB,KAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,QAAIC,IAAE,EAAE;AAAO,SAAIF,IAAE,GAAEA,IAAEE,GAAEF,IAAI,GAAEA,CAAC,MAAIC,IAAEF,GAAE,EAAEC,CAAC,CAAC,OAAK,MAAI,KAAG,MAAK,KAAGC;AAAA,EAAE,MAAM,MAAIA,KAAK,EAAE,GAAEA,CAAC,MAAI,MAAI,KAAG,MAAK,KAAGA;AAAG,SAAO;AAAC;AAAQ,SAASE,KAAM;AAAC,WAAQ,GAAEH,GAAEC,IAAE,GAAE,IAAE,IAAGC,IAAE,UAAU,QAAOD,IAAEC,GAAED,IAAI,EAAC,IAAE,UAAUA,CAAC,OAAKD,IAAED,GAAE,CAAC,OAAK,MAAI,KAAG,MAAK,KAAGC;AAAG,SAAO;AAAC;ACe/W,MAAMI,KAAgB,CAACpD,MAAQ,OAAOA,KAAU,YAAY,GAAGA,CAAK,KAAKA,MAAU,IAAI,MAAMA,GAChFqD,KAAKF,IACLG,KAAM,CAACC,GAAMC,MAAS,CAACrC,MAAQ;AACpC,MAAIsC;AACJ,OAAKD,KAAW,OAA4B,SAASA,EAAO,aAAa,KAAM,QAAOH,GAAGE,GAAMpC,KAAU,OAA2B,SAASA,EAAM,OAAOA,KAAU,OAA2B,SAASA,EAAM,SAAS;AACvN,QAAM,EAAE,UAAAuC,GAAU,iBAAAC,EAAe,IAAKH,GAChCI,IAAuB,OAAO,KAAKF,CAAQ,EAAE,IAAI,CAACG,MAAU;AAC9D,UAAMC,IAAc3C,KAAU,OAA2B,SAASA,EAAM0C,CAAO,GACzEE,IAAqBJ,KAAoB,OAAqC,SAASA,EAAgBE,CAAO;AACpH,QAAIC,MAAgB,KAAM,QAAO;AACjC,UAAME,IAAaZ,GAAcU,CAAW,KAAKV,GAAcW,CAAkB;AACjF,WAAOL,EAASG,CAAO,EAAEG,CAAU;AAAA,EACvC,CAAC,GACKC,IAAwB9C,KAAS,OAAO,QAAQA,CAAK,EAAE,OAAO,CAAC+C,GAAKC,MAAQ;AAC9E,QAAI,CAACC,GAAKpE,CAAK,IAAImE;AACnB,WAAInE,MAAU,WAGdkE,EAAIE,CAAG,IAAIpE,IACJkE;AAAA,EACX,GAAG,CAAA,CAAE,GACCG,IAA+Bb,KAAW,SAAsCC,IAA2BD,EAAO,sBAAsB,QAAQC,MAA6B,SAAvG,SAAyHA,EAAyB,OAAO,CAACS,GAAKC,MAAQ;AAC/O,QAAI,EAAE,OAAOG,GAAS,WAAWC,GAAa,GAAGC,EAAsB,IAAKL;AAC5E,WAAO,OAAO,QAAQK,CAAsB,EAAE,MAAM,CAACL,MAAQ;AACzD,UAAI,CAACC,GAAKpE,CAAK,IAAImE;AACnB,aAAO,MAAM,QAAQnE,CAAK,IAAIA,EAAM,SAAS;AAAA,QACzC,GAAG2D;AAAA,QACH,GAAGM;AAAA,MACvB,EAAkBG,CAAG,CAAC,IAAK;AAAA,QACP,GAAGT;AAAA,QACH,GAAGM;AAAA,MACvB,EAAmBG,CAAG,MAAMpE;AAAA,IAChB,CAAC,IAAI;AAAA,MACD,GAAGkE;AAAA,MACHI;AAAA,MACAC;AAAA,IAChB,IAAgBL;AAAA,EACR,GAAG,CAAA,CAAE;AACL,SAAOb,GAAGE,GAAMK,GAAsBS,GAA8BlD,KAAU,OAA2B,SAASA,EAAM,OAAOA,KAAU,OAA2B,SAASA,EAAM,SAAS;AAChM,GCtDEsD,KAAuB,KACvBC,KAAwB,CAAAlB,MAAU;AACtC,QAAMmB,IAAWC,GAAepB,CAAM,GAChC;AAAA,IACJ,wBAAAqB;AAAA,IACA,gCAAAC;AAAA,EACJ,IAAMtB;AAgBJ,SAAO;AAAA,IACL,iBAhBsB,CAAAuB,MAAa;AACnC,YAAMC,IAAaD,EAAU,MAAMN,EAAoB;AAEvD,aAAIO,EAAW,CAAC,MAAM,MAAMA,EAAW,WAAW,KAChDA,EAAW,MAAK,GAEXC,GAAkBD,GAAYL,CAAQ,KAAKO,GAA+BH,CAAS;AAAA,IAC5F;AAAA,IAUE,6BATkC,CAACI,GAAcC,MAAuB;AACxE,YAAMC,IAAYR,EAAuBM,CAAY,KAAK,CAAA;AAC1D,aAAIC,KAAsBN,EAA+BK,CAAY,IAC5D,CAAC,GAAGE,GAAW,GAAGP,EAA+BK,CAAY,CAAC,IAEhEE;AAAA,IACT;AAAA,EAIF;AACA,GACMJ,KAAoB,CAACD,GAAYM,MAAoB;;AACzD,MAAIN,EAAW,WAAW;AACxB,WAAOM,EAAgB;AAEzB,QAAMC,IAAmBP,EAAW,CAAC,GAC/BQ,IAAsBF,EAAgB,SAAS,IAAIC,CAAgB,GACnEE,IAA8BD,IAAsBP,GAAkBD,EAAW,MAAM,CAAC,GAAGQ,CAAmB,IAAI;AACxH,MAAIC;AACF,WAAOA;AAET,MAAIH,EAAgB,WAAW,WAAW;AACxC;AAEF,QAAMI,IAAYV,EAAW,KAAKP,EAAoB;AACtD,UAAO7B,IAAA0C,EAAgB,WAAW,KAAK,CAAC;AAAA,IACtC,WAAAK;AAAA,EACJ,MAAQA,EAAUD,CAAS,CAAC,MAFnB,gBAAA9C,EAEsB;AAC/B,GACMgD,KAAyB,cACzBV,KAAiC,CAAAH,MAAa;AAClD,MAAIa,GAAuB,KAAKb,CAAS,GAAG;AAC1C,UAAMc,IAA6BD,GAAuB,KAAKb,CAAS,EAAE,CAAC,GACrEe,IAAWD,KAAA,gBAAAA,EAA4B,UAAU,GAAGA,EAA2B,QAAQ,GAAG;AAChG,QAAIC;AAEF,aAAO,gBAAgBA;AAAA,EAE3B;AACF,GAIMlB,KAAiB,CAAApB,MAAU;AAC/B,QAAM;AAAA,IACJ,OAAAuC;AAAA,IACA,QAAAC;AAAA,EACJ,IAAMxC,GACEmB,IAAW;AAAA,IACf,UAAU,oBAAI,IAAG;AAAA,IACjB,YAAY,CAAA;AAAA,EAChB;AAEE,SADkCsB,GAA6B,OAAO,QAAQzC,EAAO,WAAW,GAAGwC,CAAM,EAC/E,QAAQ,CAAC,CAACb,GAAce,CAAU,MAAM;AAChE,IAAAC,GAA0BD,GAAYvB,GAAUQ,GAAcY,CAAK;AAAA,EACrE,CAAC,GACMpB;AACT,GACMwB,KAA4B,CAACD,GAAYZ,GAAiBH,GAAcY,MAAU;AACtF,EAAAG,EAAW,QAAQ,CAAAE,MAAmB;AACpC,QAAI,OAAOA,KAAoB,UAAU;AACvC,YAAMC,IAAwBD,MAAoB,KAAKd,IAAkBgB,GAAQhB,GAAiBc,CAAe;AACjH,MAAAC,EAAsB,eAAelB;AACrC;AAAA,IACF;AACA,QAAI,OAAOiB,KAAoB,YAAY;AACzC,UAAIG,GAAcH,CAAe,GAAG;AAClC,QAAAD,GAA0BC,EAAgBL,CAAK,GAAGT,GAAiBH,GAAcY,CAAK;AACtF;AAAA,MACF;AACA,MAAAT,EAAgB,WAAW,KAAK;AAAA,QAC9B,WAAWc;AAAA,QACX,cAAAjB;AAAA,MACR,CAAO;AACD;AAAA,IACF;AACA,WAAO,QAAQiB,CAAe,EAAE,QAAQ,CAAC,CAAChC,GAAK8B,CAAU,MAAM;AAC7D,MAAAC,GAA0BD,GAAYI,GAAQhB,GAAiBlB,CAAG,GAAGe,GAAcY,CAAK;AAAA,IAC1F,CAAC;AAAA,EACH,CAAC;AACH,GACMO,KAAU,CAAChB,GAAiBkB,MAAS;AACzC,MAAIC,IAAyBnB;AAC7B,SAAAkB,EAAK,MAAM/B,EAAoB,EAAE,QAAQ,CAAAiC,MAAY;AACnD,IAAKD,EAAuB,SAAS,IAAIC,CAAQ,KAC/CD,EAAuB,SAAS,IAAIC,GAAU;AAAA,MAC5C,UAAU,oBAAI,IAAG;AAAA,MACjB,YAAY,CAAA;AAAA,IACpB,CAAO,GAEHD,IAAyBA,EAAuB,SAAS,IAAIC,CAAQ;AAAA,EACvE,CAAC,GACMD;AACT,GACMF,KAAgB,CAAAI,MAAQA,EAAK,eAC7BV,KAA+B,CAACW,GAAmBZ,MAClDA,IAGEY,EAAkB,IAAI,CAAC,CAACzB,GAAce,CAAU,MAAM;AAC3D,QAAMW,IAAqBX,EAAW,IAAI,CAAAE,MACpC,OAAOA,KAAoB,WACtBJ,IAASI,IAEd,OAAOA,KAAoB,WACtB,OAAO,YAAY,OAAO,QAAQA,CAAe,EAAE,IAAI,CAAC,CAAChC,GAAKpE,CAAK,MAAM,CAACgG,IAAS5B,GAAKpE,CAAK,CAAC,CAAC,IAEjGoG,CACR;AACD,SAAO,CAACjB,GAAc0B,CAAkB;AAC1C,CAAC,IAbQD,GAiBLE,KAAiB,CAAAC,MAAgB;AACrC,MAAIA,IAAe;AACjB,WAAO;AAAA,MACL,KAAK,MAAA;AAAA;AAAA,MACL,KAAK,MAAM;AAAA,MAAC;AAAA,IAClB;AAEE,MAAIC,IAAY,GACZC,IAAQ,oBAAI,IAAG,GACfC,IAAgB,oBAAI,IAAG;AAC3B,QAAMC,IAAS,CAAC/C,GAAKpE,MAAU;AAC7B,IAAAiH,EAAM,IAAI7C,GAAKpE,CAAK,GACpBgH,KACIA,IAAYD,MACdC,IAAY,GACZE,IAAgBD,GAChBA,IAAQ,oBAAI,IAAG;AAAA,EAEnB;AACA,SAAO;AAAA,IACL,IAAI7C,GAAK;AACP,UAAIpE,IAAQiH,EAAM,IAAI7C,CAAG;AACzB,UAAIpE,MAAU;AACZ,eAAOA;AAET,WAAKA,IAAQkH,EAAc,IAAI9C,CAAG,OAAO;AACvC,eAAA+C,EAAO/C,GAAKpE,CAAK,GACVA;AAAA,IAEX;AAAA,IACA,IAAIoE,GAAKpE,GAAO;AACd,MAAIiH,EAAM,IAAI7C,CAAG,IACf6C,EAAM,IAAI7C,GAAKpE,CAAK,IAEpBmH,EAAO/C,GAAKpE,CAAK;AAAA,IAErB;AAAA,EACJ;AACA,GACMoH,KAAqB,KACrBC,KAAuB,CAAA7D,MAAU;AACrC,QAAM;AAAA,IACJ,WAAA8D;AAAA,IACA,4BAAAC;AAAA,EACJ,IAAM/D,GACEgE,IAA6BF,EAAU,WAAW,GAClDG,IAA0BH,EAAU,CAAC,GACrCI,IAAkBJ,EAAU,QAE5BK,IAAiB,CAAA5C,MAAa;AAClC,UAAM6C,IAAY,CAAA;AAClB,QAAIC,IAAe,GACfC,IAAgB,GAChBC;AACJ,aAASC,IAAQ,GAAGA,IAAQjD,EAAU,QAAQiD,KAAS;AACrD,UAAIC,IAAmBlD,EAAUiD,CAAK;AACtC,UAAIH,MAAiB,GAAG;AACtB,YAAII,MAAqBR,MAA4BD,KAA8BzC,EAAU,MAAMiD,GAAOA,IAAQN,CAAe,MAAMJ,IAAY;AACjJ,UAAAM,EAAU,KAAK7C,EAAU,MAAM+C,GAAeE,CAAK,CAAC,GACpDF,IAAgBE,IAAQN;AACxB;AAAA,QACF;AACA,YAAIO,MAAqB,KAAK;AAC5B,UAAAF,IAA0BC;AAC1B;AAAA,QACF;AAAA,MACF;AACA,MAAIC,MAAqB,MACvBJ,MACSI,MAAqB,OAC9BJ;AAAA,IAEJ;AACA,UAAMK,IAAqCN,EAAU,WAAW,IAAI7C,IAAYA,EAAU,UAAU+C,CAAa,GAC3GK,IAAuBD,EAAmC,WAAWd,EAAkB,GACvFgB,IAAgBD,IAAuBD,EAAmC,UAAU,CAAC,IAAIA,GACzFG,IAA+BN,KAA2BA,IAA0BD,IAAgBC,IAA0BD,IAAgB;AACpJ,WAAO;AAAA,MACL,WAAAF;AAAA,MACA,sBAAAO;AAAA,MACA,eAAAC;AAAA,MACA,8BAAAC;AAAA,IACN;AAAA,EACE;AACA,SAAId,IACK,CAAAxC,MAAawC,EAA2B;AAAA,IAC7C,WAAAxC;AAAA,IACA,gBAAA4C;AAAA,EACN,CAAK,IAEIA;AACT,GAMMW,KAAgB,CAAAV,MAAa;AACjC,MAAIA,EAAU,UAAU;AACtB,WAAOA;AAET,QAAMW,IAAkB,CAAA;AACxB,MAAIC,IAAoB,CAAA;AACxB,SAAAZ,EAAU,QAAQ,CAAAa,MAAY;AAE5B,IAD2BA,EAAS,CAAC,MAAM,OAEzCF,EAAgB,KAAK,GAAGC,EAAkB,KAAI,GAAIC,CAAQ,GAC1DD,IAAoB,CAAA,KAEpBA,EAAkB,KAAKC,CAAQ;AAAA,EAEnC,CAAC,GACDF,EAAgB,KAAK,GAAGC,EAAkB,KAAI,CAAE,GACzCD;AACT,GACMG,KAAoB,CAAAlF,OAAW;AAAA,EACnC,OAAOsD,GAAetD,EAAO,SAAS;AAAA,EACtC,gBAAgB6D,GAAqB7D,CAAM;AAAA,EAC3C,GAAGkB,GAAsBlB,CAAM;AACjC,IACMmF,KAAsB,OACtBC,KAAiB,CAACC,GAAWC,MAAgB;AACjD,QAAM;AAAA,IACJ,gBAAAnB;AAAA,IACA,iBAAAoB;AAAA,IACA,6BAAAC;AAAA,EACJ,IAAMF,GAQEG,IAAwB,CAAA,GACxBC,IAAaL,EAAU,KAAI,EAAG,MAAMF,EAAmB;AAC7D,MAAIjG,IAAS;AACb,WAASsF,IAAQkB,EAAW,SAAS,GAAGlB,KAAS,GAAGA,KAAS,GAAG;AAC9D,UAAMmB,IAAoBD,EAAWlB,CAAK,GACpC;AAAA,MACJ,WAAAJ;AAAA,MACA,sBAAAO;AAAA,MACA,eAAAC;AAAA,MACA,8BAAAC;AAAA,IACN,IAAQV,EAAewB,CAAiB;AACpC,QAAI/D,IAAqB,EAAQiD,GAC7BlD,IAAe4D,EAAgB3D,IAAqBgD,EAAc,UAAU,GAAGC,CAA4B,IAAID,CAAa;AAChI,QAAI,CAACjD,GAAc;AACjB,UAAI,CAACC,GAAoB;AAEvB,QAAA1C,IAASyG,KAAqBzG,EAAO,SAAS,IAAI,MAAMA,IAASA;AACjE;AAAA,MACF;AAEA,UADAyC,IAAe4D,EAAgBX,CAAa,GACxC,CAACjD,GAAc;AAEjB,QAAAzC,IAASyG,KAAqBzG,EAAO,SAAS,IAAI,MAAMA,IAASA;AACjE;AAAA,MACF;AACA,MAAA0C,IAAqB;AAAA,IACvB;AACA,UAAMgE,IAAkBd,GAAcV,CAAS,EAAE,KAAK,GAAG,GACnDyB,IAAalB,IAAuBiB,IAAkBhC,KAAqBgC,GAC3EE,IAAUD,IAAalE;AAC7B,QAAI8D,EAAsB,SAASK,CAAO;AAExC;AAEF,IAAAL,EAAsB,KAAKK,CAAO;AAClC,UAAMC,IAAiBP,EAA4B7D,GAAcC,CAAkB;AACnF,aAAS7E,IAAI,GAAGA,IAAIgJ,EAAe,QAAQ,EAAEhJ,GAAG;AAC9C,YAAMiJ,IAAQD,EAAehJ,CAAC;AAC9B,MAAA0I,EAAsB,KAAKI,IAAaG,CAAK;AAAA,IAC/C;AAEA,IAAA9G,IAASyG,KAAqBzG,EAAO,SAAS,IAAI,MAAMA,IAASA;AAAA,EACnE;AACA,SAAOA;AACT;AAWA,SAAS+G,KAAS;AAChB,MAAIzB,IAAQ,GACR0B,GACAC,GACAC,IAAS;AACb,SAAO5B,IAAQ,UAAU;AACvB,KAAI0B,IAAW,UAAU1B,GAAO,OAC1B2B,IAAgBE,GAAQH,CAAQ,OAClCE,MAAWA,KAAU,MACrBA,KAAUD;AAIhB,SAAOC;AACT;AACA,MAAMC,KAAU,CAAAC,MAAO;AACrB,MAAI,OAAOA,KAAQ;AACjB,WAAOA;AAET,MAAIH,GACAC,IAAS;AACb,WAASG,IAAI,GAAGA,IAAID,EAAI,QAAQC;AAC9B,IAAID,EAAIC,CAAC,MACHJ,IAAgBE,GAAQC,EAAIC,CAAC,CAAC,OAChCH,MAAWA,KAAU,MACrBA,KAAUD;AAIhB,SAAOC;AACT;AACA,SAASI,GAAoBC,MAAsBC,GAAkB;AACnE,MAAIpB,GACAqB,GACAC,GACAC,IAAiBC;AACrB,WAASA,EAAkBzB,GAAW;AACpC,UAAMrF,IAAS0G,EAAiB,OAAO,CAACK,GAAgBC,MAAwBA,EAAoBD,CAAc,GAAGN,GAAmB;AACxI,WAAAnB,IAAcJ,GAAkBlF,CAAM,GACtC2G,IAAWrB,EAAY,MAAM,KAC7BsB,IAAWtB,EAAY,MAAM,KAC7BuB,IAAiBI,GACVA,EAAc5B,CAAS;AAAA,EAChC;AACA,WAAS4B,EAAc5B,GAAW;AAChC,UAAM6B,IAAeP,EAAStB,CAAS;AACvC,QAAI6B;AACF,aAAOA;AAET,UAAMhI,IAASkG,GAAeC,GAAWC,CAAW;AACpD,WAAAsB,EAASvB,GAAWnG,CAAM,GACnBA;AAAA,EACT;AACA,SAAO,WAA6B;AAClC,WAAO2H,EAAeZ,GAAO,MAAM,MAAM,SAAS,CAAC;AAAA,EACrD;AACF;AACA,MAAMkB,IAAY,CAAAvG,MAAO;AACvB,QAAMwG,IAAc,CAAA7E,MAASA,EAAM3B,CAAG,KAAK,CAAA;AAC3C,SAAAwG,EAAY,gBAAgB,IACrBA;AACT,GACMC,KAAsB,8BACtBC,KAAgB,cAChBC,KAA6B,oBAAI,IAAI,CAAC,MAAM,QAAQ,QAAQ,CAAC,GAC7DC,KAAkB,oCAClBC,KAAkB,6HAClBC,KAAqB,4CAErBC,KAAc,mEACdC,KAAa,gGACbC,IAAW,CAAArL,MAASsL,EAAStL,CAAK,KAAK+K,GAAc,IAAI/K,CAAK,KAAK8K,GAAc,KAAK9K,CAAK,GAC3FuL,IAAoB,CAAAvL,MAASwL,EAAoBxL,GAAO,UAAUyL,EAAY,GAC9EH,IAAW,CAAAtL,MAAS,EAAQA,KAAU,CAAC,OAAO,MAAM,OAAOA,CAAK,CAAC,GACjE0L,KAAoB,CAAA1L,MAASwL,EAAoBxL,GAAO,UAAUsL,CAAQ,GAC1EK,IAAY,CAAA3L,MAAS,EAAQA,KAAU,OAAO,UAAU,OAAOA,CAAK,CAAC,GACrE4L,KAAY,CAAA5L,MAASA,EAAM,SAAS,GAAG,KAAKsL,EAAStL,EAAM,MAAM,GAAG,EAAE,CAAC,GACvE6L,IAAmB,CAAA7L,MAAS6K,GAAoB,KAAK7K,CAAK,GAC1D8L,IAAe,CAAA9L,MAASgL,GAAgB,KAAKhL,CAAK,GAClD+L,KAA0B,oBAAI,IAAI,CAAC,UAAU,QAAQ,YAAY,CAAC,GAClEC,KAAkB,CAAAhM,MAASwL,EAAoBxL,GAAO+L,IAAYE,EAAO,GACzEC,KAAsB,CAAAlM,MAASwL,EAAoBxL,GAAO,YAAYiM,EAAO,GAC7EE,KAA2B,oBAAI,IAAI,CAAC,SAAS,KAAK,CAAC,GACnDC,KAAmB,CAAApM,MAASwL,EAAoBxL,GAAOmM,IAAaE,EAAO,GAC3EC,KAAoB,CAAAtM,MAASwL,EAAoBxL,GAAO,IAAIuM,EAAQ,GACpEC,IAAQ,MAAM,IACdhB,IAAsB,CAACxL,GAAOyM,GAAOC,MAAc;AACvD,QAAMhK,IAASmI,GAAoB,KAAK7K,CAAK;AAC7C,SAAI0C,IACEA,EAAO,CAAC,IACH,OAAO+J,KAAU,WAAW/J,EAAO,CAAC,MAAM+J,IAAQA,EAAM,IAAI/J,EAAO,CAAC,CAAC,IAEvEgK,EAAUhK,EAAO,CAAC,CAAC,IAErB;AACT,GACM+I,KAAe,CAAAzL;AAAA;AAAA;AAAA;AAAA,EAIrBiL,GAAgB,KAAKjL,CAAK,KAAK,CAACkL,GAAmB,KAAKlL,CAAK;AAAA,GACvDiM,KAAU,MAAM,IAChBM,KAAW,CAAAvM,MAASmL,GAAY,KAAKnL,CAAK,GAC1CqM,KAAU,CAAArM,MAASoL,GAAW,KAAKpL,CAAK,GAmBxC2M,KAAmB,MAAM;AAC7B,QAAMC,IAASjC,EAAU,QAAQ,GAC3BkC,IAAUlC,EAAU,SAAS,GAC7BmC,IAAOnC,EAAU,MAAM,GACvBoC,IAAapC,EAAU,YAAY,GACnCqC,IAAcrC,EAAU,aAAa,GACrCsC,IAAetC,EAAU,cAAc,GACvCuC,IAAgBvC,EAAU,eAAe,GACzCwC,IAAcxC,EAAU,aAAa,GACrCyC,IAAWzC,EAAU,UAAU,GAC/B0C,IAAY1C,EAAU,WAAW,GACjC2C,IAAY3C,EAAU,WAAW,GACjC4C,IAAS5C,EAAU,QAAQ,GAC3B6C,IAAM7C,EAAU,KAAK,GACrB8C,IAAqB9C,EAAU,oBAAoB,GACnD+C,IAA6B/C,EAAU,4BAA4B,GACnEgD,IAAQhD,EAAU,OAAO,GACzBiD,IAASjD,EAAU,QAAQ,GAC3BkD,IAAUlD,EAAU,SAAS,GAC7BmD,IAAUnD,EAAU,SAAS,GAC7BoD,IAAWpD,EAAU,UAAU,GAC/BqD,IAAQrD,EAAU,OAAO,GACzBsD,IAAQtD,EAAU,OAAO,GACzBuD,IAAOvD,EAAU,MAAM,GACvBwD,IAAQxD,EAAU,OAAO,GACzByD,IAAYzD,EAAU,WAAW,GACjC0D,KAAgB,MAAM,CAAC,QAAQ,WAAW,MAAM,GAChDC,KAAc,MAAM,CAAC,QAAQ,UAAU,QAAQ,WAAW,QAAQ,GAClEC,KAAiC,MAAM,CAAC,QAAQ1C,GAAkBgB,CAAO,GACzE2B,IAA0B,MAAM,CAAC3C,GAAkBgB,CAAO,GAC1D4B,KAAiC,MAAM,CAAC,IAAIpD,GAAUE,CAAiB,GACvEmD,IAAgC,MAAM,CAAC,QAAQpD,GAAUO,CAAgB,GACzE8C,KAAe,MAAM,CAAC,UAAU,UAAU,QAAQ,eAAe,YAAY,SAAS,gBAAgB,aAAa,KAAK,GACxHC,IAAgB,MAAM,CAAC,SAAS,UAAU,UAAU,UAAU,MAAM,GACpEC,KAAgB,MAAM,CAAC,UAAU,YAAY,UAAU,WAAW,UAAU,WAAW,eAAe,cAAc,cAAc,cAAc,cAAc,aAAa,OAAO,cAAc,SAAS,YAAY,GACrNC,KAAW,MAAM,CAAC,SAAS,OAAO,UAAU,WAAW,UAAU,UAAU,SAAS,GACpFC,IAAkB,MAAM,CAAC,IAAI,KAAKlD,CAAgB,GAClDmD,KAAY,MAAM,CAAC,QAAQ,SAAS,OAAO,cAAc,QAAQ,QAAQ,SAAS,QAAQ,GAC1FC,IAAwB,MAAM,CAAC3D,GAAUO,CAAgB;AAC/D,SAAO;AAAA,IACL,WAAW;AAAA,IACX,WAAW;AAAA,IACX,OAAO;AAAA,MACL,QAAQ,CAACW,CAAK;AAAA,MACd,SAAS,CAACnB,GAAUE,CAAiB;AAAA,MACrC,MAAM,CAAC,QAAQ,IAAIO,GAAcD,CAAgB;AAAA,MACjD,YAAYoD,EAAqB;AAAA,MACjC,aAAa,CAACrC,CAAM;AAAA,MACpB,cAAc,CAAC,QAAQ,IAAI,QAAQd,GAAcD,CAAgB;AAAA,MACjE,eAAe2C,EAAuB;AAAA,MACtC,aAAaC,GAA8B;AAAA,MAC3C,UAAUQ,EAAqB;AAAA,MAC/B,WAAWF,EAAe;AAAA,MAC1B,WAAWE,EAAqB;AAAA,MAChC,QAAQF,EAAe;AAAA,MACvB,KAAKP,EAAuB;AAAA,MAC5B,oBAAoB,CAAC5B,CAAM;AAAA,MAC3B,4BAA4B,CAAChB,IAAWL,CAAiB;AAAA,MACzD,OAAOgD,GAA8B;AAAA,MACrC,QAAQA,GAA8B;AAAA,MACtC,SAASU,EAAqB;AAAA,MAC9B,SAAST,EAAuB;AAAA,MAChC,UAAUS,EAAqB;AAAA,MAC/B,OAAOA,EAAqB;AAAA,MAC5B,OAAOF,EAAe;AAAA,MACtB,MAAME,EAAqB;AAAA,MAC3B,OAAOT,EAAuB;AAAA,MAC9B,WAAWA,EAAuB;AAAA,IACxC;AAAA,IACI,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMX,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,UAAU,SAAS3C,CAAgB;AAAA,MAC5D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvB,SAAS,CAAC;AAAA,QACR,SAAS,CAACC,CAAY;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAekD,GAAS;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,GAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQ,SAAS,cAAc,cAAc;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,SAAS,OAAO;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAAC,UAAU,SAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC,SAAS,gBAAgB,UAAU,QAAQ,eAAe,SAAS,gBAAgB,iBAAiB,cAAc,gBAAgB,sBAAsB,sBAAsB,sBAAsB,mBAAmB,aAAa,aAAa,QAAQ,eAAe,YAAY,aAAa,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnT,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MACvD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,QAAQ,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC,WAAW,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,cAAc,CAAC;AAAA,QACb,QAAQ,CAAC,WAAW,SAAS,QAAQ,QAAQ,YAAY;AAAA,MACjE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,GAAGL,GAAY,GAAI9C,CAAgB;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUyC,GAAW;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,GAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,GAAW;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYD,GAAa;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,GAAa;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,GAAa;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC,UAAU,SAAS,YAAY,YAAY,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAK9D,OAAO,CAAC;AAAA,QACN,OAAO,CAACV,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACA,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAACA,CAAK;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAACA,CAAK;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACA,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACA,CAAK;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAACA,CAAK;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,WAAW,aAAa,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,MAK/C,GAAG,CAAC;AAAA,QACF,GAAG,CAAC,QAAQhC,GAAWE,CAAgB;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,OAAO,CAAC;AAAA,QACN,OAAO0C,GAA8B;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,OAAO,eAAe,OAAO,aAAa;AAAA,MACzD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,gBAAgB,QAAQ;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,KAAK,QAAQ,WAAW,QAAQ1C,CAAgB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAMkD,EAAe;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQA,EAAe;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,SAAS,QAAQ,QAAQpD,GAAWE,CAAgB;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACW,CAAK;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,KAAK,CAAC,QAAQ;AAAA,UACZ,MAAM,CAAC,QAAQb,GAAWE,CAAgB;AAAA,QACpD,GAAWA,CAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa6C,EAA6B;AAAA,MAClD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAA6B;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAClC,CAAK;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,KAAK,CAAC,QAAQ;AAAA,UACZ,MAAM,CAACb,GAAWE,CAAgB;AAAA,QAC5C,GAAWA,CAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa6C,EAA6B;AAAA,MAClD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAA6B;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,OAAO,OAAO,SAAS,aAAa,WAAW;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,QAAQ,OAAO,OAAO,MAAM7C,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,QAAQ,OAAO,OAAO,MAAMA,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAAC2B,CAAG;AAAA,MACjB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACA,CAAG;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACA,CAAG;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,SAAS,CAAC,UAAU,GAAGsB,GAAQ,CAAE;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAAC,SAAS,OAAO,UAAU,SAAS;AAAA,MAC7D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQ,SAAS,OAAO,UAAU,SAAS;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAAC,UAAU,GAAGA,GAAQ,GAAI,UAAU;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,OAAO,CAAC,SAAS,OAAO,UAAU,YAAY,SAAS;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,QAAQ,SAAS,OAAO,UAAU,WAAW,UAAU;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAAC,GAAGA,GAAQ,GAAI,UAAU;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,SAAS,OAAO,UAAU,YAAY,SAAS;AAAA,MACvE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQ,SAAS,OAAO,UAAU,SAAS;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,GAAG,CAAC;AAAA,QACF,GAAG,CAAChB,CAAO;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAG,CAACF,CAAM;AAAA,MAClB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACO,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMrC,GAAG,CAAC;AAAA,QACF,GAAG,CAAC,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,OAAOtC,GAAkBgB,CAAO;AAAA,MACvF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,KAAK;AAAA,MAChE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,QAAQ,QAAQ,OAAO,OAAO,OAAO,SAAS;AAAA,UACjF,QAAQ,CAACf,CAAY;AAAA,QAC/B,GAAWA,CAAY;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAG,CAACD,GAAkBgB,GAAS,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACvF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACrF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACrF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAChB,GAAkBgB,GAAS,QAAQ,OAAO,OAAO,KAAK;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQf,GAAcP,CAAiB;AAAA,MACtD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,eAAe,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKxD,cAAc,CAAC,UAAU,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,eAAe,CAAC;AAAA,QACd,MAAM,CAAC,QAAQ,cAAc,SAAS,UAAU,UAAU,YAAY,QAAQ,aAAa,SAASG,EAAiB;AAAA,MAC7H,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,MAAM,CAACc,CAAK;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5B,eAAe,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAKzB,oBAAoB,CAAC,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnC,cAAc,CAAC,eAAe,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7C,eAAe,CAAC,qBAAqB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnD,gBAAgB,CAAC,sBAAsB,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1D,UAAU,CAAC;AAAA,QACT,UAAU,CAAC,WAAW,SAAS,UAAU,QAAQ,SAAS,UAAUX,CAAgB;AAAA,MAC5F,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQP,GAAUI,EAAiB;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,SAAS,QAAQ,UAAU,WAAW,SAASL,GAAUQ,CAAgB;AAAA,MACnG,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQA,CAAgB;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,MAAM,CAAC,QAAQ,QAAQ,WAAWA,CAAgB;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,MAAM,CAAC,UAAU,SAAS;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,qBAAqB,CAAC;AAAA,QACpB,aAAa,CAACe,CAAM;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACiB,CAAO;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,QAAQ,UAAU,SAAS,WAAW,SAAS,KAAK;AAAA,MACnE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAACjB,CAAM;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAACiB,CAAO;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,aAAa,YAAY,gBAAgB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAK3E,yBAAyB,CAAC;AAAA,QACxB,YAAY,CAAC,GAAGe,EAAa,GAAI,MAAM;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,6BAA6B,CAAC;AAAA,QAC5B,YAAY,CAAC,QAAQ,aAAavD,GAAUE,CAAiB;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAAC,QAAQF,GAAUQ,CAAgB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,yBAAyB,CAAC;AAAA,QACxB,YAAY,CAACe,CAAM;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,aAAa,aAAa,cAAc,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAKxE,iBAAiB,CAAC,YAAY,iBAAiB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1D,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ4B,EAAuB;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,OAAO,CAAC,YAAY,OAAO,UAAU,UAAU,YAAY,eAAe,OAAO,SAAS3C,CAAgB;AAAA,MAClH,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,UAAU,UAAU,OAAO,YAAY,YAAY,cAAc;AAAA,MACtF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,UAAU,SAAS,OAAO,MAAM;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQA,CAAgB;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,iBAAiB,CAAC;AAAA,QAChB,IAAI,CAAC,SAAS,SAAS,QAAQ;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAAC,UAAU,WAAW,WAAW,MAAM;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,cAAc,CAAC;AAAA,QACb,cAAc,CAACgC,CAAO;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,UAAU,WAAW,SAAS;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,IAAI,CAAC,GAAGc,GAAY,GAAIzC,EAAmB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,IAAI,CAAC,aAAa;AAAA,UAChB,QAAQ,CAAC,IAAI,KAAK,KAAK,SAAS,OAAO;AAAA,QACjD,CAAS;AAAA,MACT,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,IAAI,CAAC,QAAQ,SAAS,WAAWF,EAAe;AAAA,MACxD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,IAAI,CAAC,QAAQ;AAAA,UACX,eAAe,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AAAA,QACpE,GAAWI,EAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,IAAI,CAACQ,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,MAAM,CAACc,CAA0B;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,KAAK,CAACA,CAA0B;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,IAAI,CAACA,CAA0B;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,MAAM,CAACD,CAAkB;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,KAAK,CAACA,CAAkB;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,IAAI,CAACA,CAAkB;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,SAAS,CAAC;AAAA,QACR,SAAS,CAACR,CAAY;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,QAAQ,CAACE,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACU,CAAO;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC,GAAGe,EAAa,GAAI,QAAQ;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAACzB,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,YAAY,CAAC;AAAA,QACX,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACU,CAAO;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQe,EAAa;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC5B,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAACA,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAAC,IAAI,GAAG4B,EAAa,CAAE;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACvD,GAAUQ,CAAgB;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,SAAS,CAACR,GAAUE,CAAiB;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAACqB,CAAM;AAAA,MACxB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,MAAM6B,GAA8B;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B,cAAc,CAAC;AAAA,QACb,MAAM,CAAC7B,CAAM;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAACiB,CAAO;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,eAAe,CAACxC,GAAUE,CAAiB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,eAAe,CAACqB,CAAM;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,IAAI,SAAS,QAAQd,GAAcQ,EAAiB;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAACE,CAAK;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACqB,CAAO;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,GAAGgB,GAAa,GAAI,gBAAgB,aAAa;AAAA,MACvE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,GAAa;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,IAAI,MAAM;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC/B,CAAI;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAACC,CAAU;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACK,CAAQ;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,IAAI,QAAQtB,GAAcD,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACwB,CAAS;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACC,CAAS;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACC,CAAM;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACQ,CAAQ;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACE,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,mBAAmB,CAAC;AAAA,QAClB,mBAAmB,CAAC,IAAI,MAAM;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAACnB,CAAI;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACC,CAAU;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,qBAAqB,CAACK,CAAQ;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,sBAAsB,CAAC;AAAA,QACrB,sBAAsB,CAACC,CAAS;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACC,CAAS;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,mBAAmB,CAACC,CAAM;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACM,CAAO;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,qBAAqB,CAACE,CAAQ;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACE,CAAK;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,YAAY,UAAU;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACf,CAAa;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACA,CAAa;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACA,CAAa;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,OAAO,CAAC,QAAQ,OAAO;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,OAAO,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,QAAQ,OAAO,IAAI,UAAU,WAAW,UAAU,aAAarB,CAAgB;AAAA,MACpG,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUoD,EAAqB;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,UAAU,MAAM,OAAO,UAAUpD,CAAgB;AAAA,MAChE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAOoD,EAAqB;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS,UAAUpD,CAAgB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,WAAW,CAAC;AAAA,QACV,WAAW,CAAC,IAAI,OAAO,MAAM;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACmC,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACrC,GAAWE,CAAgB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAACuC,CAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAACA,CAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACF,CAAI;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACA,CAAI;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,QAAQ,CAAC,UAAU,OAAO,aAAa,SAAS,gBAAgB,UAAU,eAAe,QAAQ,YAAYrC,CAAgB;AAAA,MACrI,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQe,CAAM;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,QAAQ,MAAM;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,WAAW,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,QAAQ,gBAAgB,YAAY,QAAQ,aAAa,iBAAiB,SAAS,QAAQ,WAAW,QAAQ,YAAY,cAAc,cAAc,cAAc,YAAY,YAAY,YAAY,YAAY,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,eAAe,eAAe,WAAW,YAAYf,CAAgB;AAAA,MACrc,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,OAAO,CAACe,CAAM;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,QAAQ,MAAM;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,QAAQ,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY4B,EAAuB;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,EAAuB;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAuB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,SAAS,OAAO,UAAU,YAAY;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,UAAU,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,KAAK,KAAK,MAAM;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,MAAM,CAAC,aAAa,WAAW;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,QAAQ,QAAQ,cAAc;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,aAAa,CAAC,KAAK,QAAQ,OAAO;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,aAAa,CAAC,KAAK,MAAM,MAAM;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAK/B,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,QAAQ,OAAO,MAAM;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,QAAQ,UAAU,YAAY,aAAa3C,CAAgB;AAAA,MACnF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,MAAM,CAAC;AAAA,QACL,MAAM,CAACe,GAAQ,MAAM;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,QAAQ,CAACvB,GAAUE,GAAmBG,EAAiB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACkB,GAAQ,MAAM;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,IAAI,CAAC,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAAC,QAAQ,MAAM;AAAA,MAC9C,CAAO;AAAA,IACP;AAAA,IACI,wBAAwB;AAAA,MACtB,UAAU,CAAC,cAAc,YAAY;AAAA,MACrC,YAAY,CAAC,gBAAgB,cAAc;AAAA,MAC3C,OAAO,CAAC,WAAW,WAAW,SAAS,OAAO,OAAO,SAAS,UAAU,MAAM;AAAA,MAC9E,WAAW,CAAC,SAAS,MAAM;AAAA,MAC3B,WAAW,CAAC,OAAO,QAAQ;AAAA,MAC3B,MAAM,CAAC,SAAS,QAAQ,QAAQ;AAAA,MAChC,KAAK,CAAC,SAAS,OAAO;AAAA,MACtB,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAClD,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAClD,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,MAAM,CAAC,KAAK,GAAG;AAAA,MACf,aAAa,CAAC,SAAS;AAAA,MACvB,cAAc,CAAC,eAAe,oBAAoB,cAAc,eAAe,cAAc;AAAA,MAC7F,eAAe,CAAC,YAAY;AAAA,MAC5B,oBAAoB,CAAC,YAAY;AAAA,MACjC,cAAc,CAAC,YAAY;AAAA,MAC3B,eAAe,CAAC,YAAY;AAAA,MAC5B,gBAAgB,CAAC,YAAY;AAAA,MAC7B,cAAc,CAAC,WAAW,UAAU;AAAA,MACpC,SAAS,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,YAAY;AAAA,MACtM,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,kBAAkB,CAAC,oBAAoB,kBAAkB;AAAA,MACzD,YAAY,CAAC,cAAc,cAAc,cAAc,cAAc,cAAc,YAAY;AAAA,MAC/F,cAAc,CAAC,cAAc,YAAY;AAAA,MACzC,cAAc,CAAC,cAAc,YAAY;AAAA,MACzC,gBAAgB,CAAC,kBAAkB,kBAAkB,kBAAkB,kBAAkB,kBAAkB,gBAAgB;AAAA,MAC3H,kBAAkB,CAAC,kBAAkB,gBAAgB;AAAA,MACrD,kBAAkB,CAAC,kBAAkB,gBAAgB;AAAA,MACrD,YAAY,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,WAAW;AAAA,MACnH,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,YAAY,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,WAAW;AAAA,MACnH,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,OAAO,CAAC,WAAW,WAAW,UAAU;AAAA,MACxC,WAAW,CAAC,OAAO;AAAA,MACnB,WAAW,CAAC,OAAO;AAAA,MACnB,YAAY,CAAC,OAAO;AAAA,IAC1B;AAAA,IACI,gCAAgC;AAAA,MAC9B,aAAa,CAAC,SAAS;AAAA,IAC7B;AAAA,EACA;AACA,GAiDMsC,KAAuB,gBAAAlF,GAAoB2C,EAAgB;ACz/E1D,SAASwC,KAAMC,GAAsB;AACxC,SAAOF,GAAQ/L,GAAKiM,CAAM,CAAC;AAC/B;ACCA,MAAMC,KAAiB/L;AAAA,EACnB;AAAA,EACA;AAAA,IACI,UAAU;AAAA,MACN,SAAS;AAAA,QACL,SAAS;AAAA,QACT,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,MAEV,MAAM;AAAA,QACF,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MAAA;AAAA,IACV;AAAA,IAEJ,iBAAiB;AAAA,MACb,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACV;AAER,GAQMgM,IAAS5O,EAAM;AAAA,EACjB,CAAC,EAAE,WAAAqE,GAAW,SAAAlB,GAAS,MAAA0L,GAAM,SAAAC,IAAU,IAAO,GAAGrO,EAAA,GAASpB,MAE/C,gBAAA8B,EADM2N,IAAU1N,KAAO,UACtB,EAAK,WAAWqN,EAAGE,GAAe,EAAE,SAAAxL,GAAS,MAAA0L,GAAM,WAAAxK,EAAA,CAAW,CAAC,GAAG,KAAAhF,GAAW,GAAGoB,EAAA,CAAO;AAEvG;AACAmO,EAAO,cAAc;ACvCrB,SAASG,GAAcC,GAAmB;AACtC,SAAO;AAAA,IACH,UAAUA,EAAM,OAAO,CAACC,GAAKpP,MAAMoP,IAAMpP,EAAE,QAAQA,EAAE,UAAU,CAAC;AAAA,IAChE,WAAWmP,EAAM,OAAO,CAACC,GAAKpP,MAAMoP,IAAMpP,EAAE,UAAU,CAAC;AAAA,EAAA;AAE/D;AAUO,MAAMqP,IAAeC,GAAA;AAAA,EACxBC;AAAA,IACI,CAACC,OAAS;AAAA,MACN,OAAO,CAAA;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MAEX,SAAS,CAACC,MACND,EAAI,CAACE,MAAU;AACX,cAAMC,IAAWD,EAAM,MAAM,KAAK,CAAC1P,MAAMA,EAAE,OAAOyP,EAAS,EAAE;AAC7D,YAAIN;AACJ,eAAIQ,IACAR,IAAQO,EAAM,MAAM;AAAA,UAAI,CAAC1P,MACrBA,EAAE,OAAOyP,EAAS,KACZ,EAAE,GAAGzP,GAAG,UAAUA,EAAE,YAAYyP,EAAS,YAAY,OACrDzP;AAAA,QAAA,IAGVmP,IAAQ,CAAC,GAAGO,EAAM,OAAO,EAAE,GAAGD,GAAU,UAAUA,EAAS,YAAY,GAAG,GAEvE,EAAE,OAAAN,GAAO,GAAGD,GAAcC,CAAK,EAAA;AAAA,MAC1C,CAAC;AAAA,MAEL,YAAY,CAACS,MACTJ,EAAI,CAACE,MAAU;AACX,cAAMP,IAAQO,EAAM,MAAM,OAAO,CAAC1P,MAAMA,EAAE,OAAO4P,CAAE;AACnD,eAAO,EAAE,OAAAT,GAAO,GAAGD,GAAcC,CAAK,EAAA;AAAA,MAC1C,CAAC;AAAA,MAEL,gBAAgB,CAACS,GAAIC,MACjBL,EAAI,CAACE,MAAU;AACX,YAAIG,KAAY,GAAG;AACf,gBAAMV,IAAQO,EAAM,MAAM,OAAO,CAAC1P,MAAMA,EAAE,OAAO4P,CAAE;AACnD,iBAAO,EAAE,OAAAT,GAAO,GAAGD,GAAcC,CAAK,EAAA;AAAA,QAC1C;AACA,cAAMA,IAAQO,EAAM,MAAM;AAAA,UAAI,CAAC1P,MAC3BA,EAAE,OAAO4P,IAAK,EAAE,GAAG5P,GAAG,UAAA6P,MAAa7P;AAAA,QAAA;AAEvC,eAAO,EAAE,OAAAmP,GAAO,GAAGD,GAAcC,CAAK,EAAA;AAAA,MAC1C,CAAC;AAAA,MAEL,WAAW,MAAMK,EAAI,EAAE,OAAO,CAAA,GAAI,UAAU,GAAG,WAAW,EAAA,CAAG;AAAA,IAAA;AAAA,IAEjE;AAAA,MACI,MAAM;AAAA,IAAA;AAAA,EACV;AAER;ACrDO,SAASM,GAAY,EAAE,MAAAC,GAAM,WAAAvL,KAA4B;AAC5D,QAAMwL,IAAiBX,EAAa,CAAC,MAAM,EAAE,cAAc,GACrDY,IAAaZ,EAAa,CAAC,MAAM,EAAE,UAAU,GAE7Ca,IAAYH,EAAK,QAAQA,EAAK;AAEpC,SACI,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWvB;AAAA,QACP;AAAA,QACApK;AAAA,MAAA;AAAA,MAIH,UAAA;AAAA,QAAAuL,EAAK,QACF,gBAAAzO;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,KAAKyO,EAAK;AAAA,YACV,KAAKA,EAAK;AAAA,YACV,WAAU;AAAA,UAAA;AAAA,QAAA,IAGd,gBAAAzO,EAAC,OAAA,EAAI,WAAU,yGAAwG,UAAA,UAEvH;AAAA,QAIJ,gBAAA6O,EAAC,OAAA,EAAI,WAAU,sCACX,UAAA;AAAA,UAAA,gBAAA7O,EAAC,QAAA,EAAK,WAAU,wBAAwB,UAAAyO,EAAK,OAAM;AAAA,UAClDA,EAAK,WACF,gBAAAzO,EAAC,UAAK,WAAU,iCAAiC,YAAK,SAAQ;AAAA,UAElE,gBAAA6O,EAAC,QAAA,EAAK,WAAU,iCAAgC,UAAA;AAAA,YAAA;AAAA,YAC1CJ,EAAK,MAAM,QAAQ,CAAC;AAAA,YAAE;AAAA,UAAA,GAC5B;AAAA,UACCA,EAAK,cACF,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,MAAM,SAASJ,EAAK,UAAU;AAAA,cAC9B,WAAU;AAAA,cACb,UAAA;AAAA,gBAAA;AAAA,gBACYA,EAAK;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAClB,GAER;AAAA,QAGA,gBAAAI,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,UAAA,gBAAA7O;AAAA,YAACyN;AAAA,YAAA;AAAA,cACG,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,WAAU;AAAA,cACV,SAAS,MAAMiB,EAAeD,EAAK,IAAIA,EAAK,WAAW,CAAC;AAAA,cACxD,cAAW;AAAA,cAEX,UAAA,gBAAAzO,EAAC8O,IAAA,EAAM,WAAU,UAAA,CAAU;AAAA,YAAA;AAAA,UAAA;AAAA,UAE/B,gBAAA9O,EAAC,QAAA,EAAK,WAAU,oDACX,YAAK,UACV;AAAA,UACA,gBAAAA;AAAA,YAACyN;AAAA,YAAA;AAAA,cACG,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,WAAU;AAAA,cACV,SAAS,MAAMiB,EAAeD,EAAK,IAAIA,EAAK,WAAW,CAAC;AAAA,cACxD,cAAW;AAAA,cAEX,UAAA,gBAAAzO,EAAC+O,IAAA,EAAK,WAAU,UAAA,CAAU;AAAA,YAAA;AAAA,UAAA;AAAA,QAC9B,GACJ;AAAA,QAGA,gBAAAF,EAAC,QAAA,EAAK,WAAU,8CAA6C,UAAA;AAAA,UAAA;AAAA,UACvDD,EAAU,QAAQ,CAAC;AAAA,QAAA,GACzB;AAAA,QAGA,gBAAA5O;AAAA,UAACyN;AAAA,UAAA;AAAA,YACG,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAS,MAAMkB,EAAWF,EAAK,EAAE;AAAA,YACjC,cAAY,UAAUA,EAAK,KAAK;AAAA,YAEhC,UAAA,gBAAAzO,EAACgP,IAAA,EAAO,WAAU,UAAA,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MAChC;AAAA,IAAA;AAAA,EAAA;AAGZ;ACjGA,MAAMC,IAAOpQ,EAAM,WAAiE,CAAC,EAAE,WAAAqE,GAAW,GAAG5D,KAASpB,wBACzG,OAAA,EAAI,KAAAA,GAAU,WAAWoP,EAAG,4DAA4DpK,CAAS,GAAI,GAAG5D,GAAO,CACnH;AACD2P,EAAK,cAAc;AAEnB,MAAMC,IAAarQ,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAqE,GAAW,GAAG5D,EAAA,GAASpB,MACtB,gBAAA8B,EAAC,OAAA,EAAI,KAAA9B,GAAU,WAAWoP,EAAG,iCAAiCpK,CAAS,GAAI,GAAG5D,EAAA,CAAO;AAE7F;AACA4P,EAAW,cAAc;AAEzB,MAAMC,IAAYtQ,EAAM;AAAA,EACpB,CAAC,EAAE,WAAAqE,GAAW,GAAG5D,EAAA,GAASpB,MACtB,gBAAA8B,EAAC,MAAA,EAAG,KAAA9B,GAAU,WAAWoP,EAAG,sDAAsDpK,CAAS,GAAI,GAAG5D,EAAA,CAAO;AAEjH;AACA6P,EAAU,cAAc;AAExB,MAAMC,KAAkBvQ,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAqE,GAAW,GAAG5D,EAAA,GAASpB,MACtB,gBAAA8B,EAAC,KAAA,EAAE,KAAA9B,GAAU,WAAWoP,EAAG,iCAAiCpK,CAAS,GAAI,GAAG5D,EAAA,CAAO;AAE3F;AACA8P,GAAgB,cAAc;AAE9B,MAAMC,IAAcxQ,EAAM;AAAA,EACtB,CAAC,EAAE,WAAAqE,GAAW,GAAG5D,EAAA,GAASpB,MAAQ,gBAAA8B,EAAC,OAAA,EAAI,KAAA9B,GAAU,WAAWoP,EAAG,YAAYpK,CAAS,GAAI,GAAG5D,EAAA,CAAO;AACtG;AACA+P,EAAY,cAAc;AAE1B,MAAMC,KAAazQ,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAqE,GAAW,GAAG5D,EAAA,GAASpB,MACtB,gBAAA8B,EAAC,OAAA,EAAI,KAAA9B,GAAU,WAAWoP,EAAG,8BAA8BpK,CAAS,GAAI,GAAG5D,EAAA,CAAO;AAE1F;AACAgQ,GAAW,cAAc;ACnCzB,IAAIC,KAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACIC,KAAYD,GAAM,OAAO,CAACE,GAAWnR,MAAS;AAChD,QAAM2B,IAAO,gBAAAhB,GAAW,aAAaX,CAAI,EAAE,GACrCoR,IAAO7Q,EAAM,WAAW,CAACS,GAAOC,MAAiB;AACrD,UAAM,EAAE,SAAAoO,GAAS,GAAGgC,EAAc,IAAKrQ,GACjCsQ,IAAOjC,IAAU1N,IAAO3B;AAC9B,WAAI,OAAO,SAAW,QACpB,OAAO,OAAO,IAAI,UAAU,CAAC,IAAI,KAEZ,gBAAA0B,EAAI4P,GAAM,EAAE,GAAGD,GAAgB,KAAKpQ,GAAc;AAAA,EAC3E,CAAC;AACD,SAAAmQ,EAAK,cAAc,aAAapR,CAAI,IAC7B,EAAE,GAAGmR,GAAW,CAACnR,CAAI,GAAGoR,EAAI;AACrC,GAAG,EAAE,GChCDG,KAAO,aACPC,KAAsB,cACtBC,KAAe,CAAC,cAAc,UAAU,GACxCC,KAAYnR,EAAM,WAAW,CAACS,GAAOC,MAAiB;AACxD,QAAM,EAAE,YAAA0Q,GAAY,aAAaC,IAAkBJ,IAAqB,GAAGK,EAAQ,IAAK7Q,GAClF8Q,IAAcC,GAAmBH,CAAe,IAAIA,IAAkBJ,IAEtEQ,IAAgBL,IAAa,EAAE,MAAM,WAAW,EAAE,oBADhCG,MAAgB,aAAaA,IAAc,QAC0B,MAAM,YAAW;AAC9G,SAAuB,gBAAApQ;AAAA,IACrBwP,GAAU;AAAA,IACV;AAAA,MACE,oBAAoBY;AAAA,MACpB,GAAGE;AAAA,MACH,GAAGH;AAAA,MACH,KAAK5Q;AAAA,IACX;AAAA,EACA;AACA,CAAC;AACDyQ,GAAU,cAAcH;AACxB,SAASQ,GAAmBD,GAAa;AACvC,SAAOL,GAAa,SAASK,CAAW;AAC1C;AACA,IAAIG,KAAOP;ACrBX,MAAMA,IAAYnR,EAAM,WAGtB,CAAC,EAAE,WAAAqE,GAAW,aAAAkN,IAAc,cAAc,YAAAH,IAAa,IAAM,GAAG3Q,EAAA,GAASpB,MACvE,gBAAA8B;AAAA,EAACwQ;AAAAA,EAAA;AAAA,IACG,KAAAtS;AAAA,IACA,YAAA+R;AAAA,IACA,aAAAG;AAAA,IACA,WAAW9C,EAAG,sBAAsB8C,MAAgB,eAAe,mBAAmB,kBAAkBlN,CAAS;AAAA,IAChH,GAAG5D;AAAA,EAAA;AACR,CACH;AACD0Q,EAAU,cAAcQ,GAAwB;ACThD,MAAMC,KAA6B;AAAA,EAC/B,EAAE,OAAO,qBAAqB,MAAM,WAAA;AAAA,EACpC,EAAE,OAAO,YAAY,MAAM,YAAA;AAAA,EAC3B,EAAE,OAAO,kBAAkB,MAAM,WAAA;AAAA,EACjC,EAAE,OAAO,oBAAoB,MAAM,SAAA;AACvC;AAUO,SAASC,GAAY,EAAE,OAAAC,IAAQF,IAAc,WAAAvN,KAA+B;AAC/E,SACI,gBAAAlD,EAAC,OAAA,EAAI,WAAWsN,EAAG,oFAAoFpK,CAAS,GAC3G,UAAAyN,EAAM,IAAI,CAACC,GAAGlS,MACX,gBAAAmQ,EAAChQ,GAAM,UAAN,EACI,UAAA;AAAA,IAAAH,IAAI,KAAK,gBAAAsB,EAAC,QAAA,EAAK,WAAU,oBAAmB,eAAW,IAAC,UAAA,IAAA,CAAC;AAAA,IAC1D,gBAAAA,EAAC,OAAE,MAAM4Q,EAAE,MAAM,WAAU,2DACtB,YAAE,MAAA,CACP;AAAA,EAAA,EAAA,GAJiBA,EAAE,IAKvB,CACH,GACL;AAER;ACfO,SAASC,GAAS,EAAE,YAAAC,GAAY,WAAA5N,KAA4B;AAC/D,QAAM2K,IAAQE,EAAa,CAACgD,MAAMA,EAAE,KAAK,GACnCC,IAAWjD,EAAa,CAACgD,MAAMA,EAAE,QAAQ,GACzCE,IAAYlD,EAAa,CAACgD,MAAMA,EAAE,SAAS,GAC3CG,IAAYnD,EAAa,CAACgD,MAAMA,EAAE,SAAS;AAGjD,SAAIlD,EAAM,WAAW,sBAEZ,OAAA,EAAI,WAAWP,EAAG,yDAAyDpK,CAAS,GACjF,UAAA;AAAA,IAAA,gBAAAlD,EAAC,SAAI,WAAU,oEACX,4BAACmR,IAAA,EAAa,WAAU,mCAAkC,EAAA,CAC9D;AAAA,IACA,gBAAAtC,EAAC,OAAA,EAAI,WAAU,eACX,UAAA;AAAA,MAAA,gBAAA7O,EAAC,MAAA,EAAG,WAAU,yBAAwB,UAAA,sBAAkB;AAAA,MACxD,gBAAAA,EAAC,KAAA,EAAE,WAAU,sCAAqC,UAAA,oCAAA,CAElD;AAAA,IAAA,EAAA,CACJ;AAAA,EAAA,GACJ,sBAMH,OAAA,EAAI,WAAWsN,EAAG,yCAAyCpK,CAAS,GACjE,UAAA;AAAA,IAAA,gBAAA2L,EAACI,GAAA,EACG,UAAA;AAAA,MAAA,gBAAAJ,EAACK,GAAA,EAAW,WAAU,mDAClB,UAAA;AAAA,QAAA,gBAAAL,EAACM,GAAA,EAAU,WAAU,mCACjB,UAAA;AAAA,UAAA,gBAAAnP,EAACmR,IAAA,EAAa,WAAU,UAAA,CAAU;AAAA,UAAE;AAAA,UAEpC,gBAAAtC,EAAC,QAAA,EAAK,WAAU,6CAA4C,UAAA;AAAA,YAAA;AAAA,YACtDoC;AAAA,YAAU;AAAA,YAAEA,MAAc,IAAI,SAAS;AAAA,YAAQ;AAAA,UAAA,EAAA,CACrD;AAAA,QAAA,GACJ;AAAA,QAEA,gBAAApC,EAACpB,KAAO,SAAQ,SAAQ,MAAK,MAAK,WAAU,oBAAmB,SAASyD,GACpE,UAAA;AAAA,UAAA,gBAAAlR,EAACgP,IAAA,EAAO,WAAU,eAAA,CAAe;AAAA,UAAE;AAAA,QAAA,EAAA,CAEvC;AAAA,MAAA,GACJ;AAAA,MAEA,gBAAAhP,EAACqP,GAAA,EAAY,WAAU,aAClB,YAAM,IAAI,CAACZ,MACR,gBAAAzO,EAACwO,IAAA,EAA0B,MAAAC,EAAA,GAATA,EAAK,EAAgB,CAC1C,GACL;AAAA,wBAECuB,GAAA,EAAU;AAAA,MAEX,gBAAAnB,EAACS,IAAA,EAAW,WAAU,qCAClB,UAAA;AAAA,QAAA,gBAAAT,EAAC,OAAA,EAAI,WAAU,2DACX,UAAA;AAAA,UAAA,gBAAA7O,EAAC,UAAK,UAAA,WAAA,CAAQ;AAAA,UACd,gBAAA6O,EAAC,QAAA,EAAK,WAAU,gBAAe,UAAA;AAAA,YAAA;AAAA,YAAEmC,EAAS,QAAQ,CAAC;AAAA,UAAA,EAAA,CAAE;AAAA,QAAA,GACzD;AAAA,QACA,gBAAAhR,EAAC,KAAA,EAAE,WAAU,iCAAgC,UAAA,8CAE7C;AAAA,QACA,gBAAAA,EAACyN,KAAO,MAAK,MAAK,WAAU,UAAS,SAASqD,GAAY,UAAA,sBAAA,CAE1D;AAAA,MAAA,EAAA,CACJ;AAAA,IAAA,GACJ;AAAA,IAEA,gBAAA9Q,EAAC0Q,IAAA,EAAY,WAAU,OAAA,CAAO;AAAA,EAAA,GAClC;AAER;ACtEO,SAASU,GAAa,EAAE,KAAAC,GAAK,UAAAC,GAAU,WAAApO,KAAgC;AAC1E,QAAM2K,IAAQE,EAAa,CAACgD,MAAMA,EAAE,KAAK,GACnCC,IAAWjD,EAAa,CAACgD,MAAMA,EAAE,QAAQ,GAEzCQ,IAAYF,KAAO,GACnBG,IAAiBF,KAAY,GAC7BG,IAAQT,IAAWO,IAAYC;AAErC,2BACKvC,GAAA,EAAK,WAAW3B,EAAG,IAAIpK,CAAS,GAC7B,UAAA;AAAA,IAAA,gBAAAlD,EAACkP,KACG,UAAA,gBAAAlP,EAACmP,GAAA,EAAU,WAAU,WAAU,2BAAa,EAAA,CAChD;AAAA,IAEA,gBAAAN,EAACQ,GAAA,EAAY,WAAU,aAEnB,UAAA;AAAA,MAAA,gBAAArP,EAAC,MAAA,EAAG,WAAU,qBACT,UAAA6N,EAAM,IAAI,CAACY,MACR,gBAAAI,EAAC,MAAA,EAAiB,WAAU,8BACxB,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,yBACX,UAAA;AAAA,UAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,kCACX,UAAA;AAAA,YAAAJ,EAAK;AAAA,YAAM;AAAA,YAAIA,EAAK;AAAA,UAAA,GACzB;AAAA,UACCA,EAAK,cACF,gBAAAI,EAAC,KAAA,EAAE,MAAM,SAASJ,EAAK,UAAU,IAAI,WAAU,wCAAuC,UAAA;AAAA,YAAA;AAAA,YAC7EA,EAAK;AAAA,UAAA,EAAA,CACd;AAAA,QAAA,GAER;AAAA,QACA,gBAAAI,EAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA;AAAA,UAAA;AAAA,WACjCJ,EAAK,QAAQA,EAAK,UAAU,QAAQ,CAAC;AAAA,QAAA,EAAA,CAC5C;AAAA,MAAA,EAAA,GAbKA,EAAK,EAcd,CACH,GACL;AAAA,wBAECuB,GAAA,EAAU;AAAA,MAGX,gBAAAnB,EAAC,OAAA,EAAI,WAAU,gCACX,UAAA;AAAA,QAAA,gBAAA7O,EAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA,YAAQ;AAAA,QAChD,gBAAA6O,EAAC,QAAA,EAAK,WAAU,gBAAe,UAAA;AAAA,UAAA;AAAA,UAAEmC,EAAS,QAAQ,CAAC;AAAA,QAAA,EAAA,CAAE;AAAA,MAAA,GACzD;AAAA,MAGA,gBAAAnC,EAAC,OAAA,EAAI,WAAU,gCACX,UAAA;AAAA,QAAA,gBAAA7O,EAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA,OAAG;AAAA,QAC3C,gBAAAA,EAAC,QAAA,EAAK,WAAU,gBACX,UAAAqR,MAAQ,SAAY,IAAIE,EAAU,QAAQ,CAAC,CAAC,KAAK,0BAAA,CACtD;AAAA,MAAA,GACJ;AAAA,MAGA,gBAAA1C,EAAC,OAAA,EAAI,WAAU,gCACX,UAAA;AAAA,QAAA,gBAAA7O,EAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA,YAAQ;AAAA,QAChD,gBAAAA,EAAC,QAAA,EAAK,WAAU,gBACX,gBAAa,SACRwR,MAAmB,IACf,SACA,IAAIA,EAAe,QAAQ,CAAC,CAAC,KACjC,MAAA,CACV;AAAA,MAAA,GACJ;AAAA,wBAECxB,GAAA,EAAU;AAAA,MAGX,gBAAAnB,EAAC,OAAA,EAAI,WAAU,gDACX,UAAA;AAAA,QAAA,gBAAA7O,EAAC,UAAK,UAAA,QAAA,CAAK;AAAA,QACX,gBAAA6O,EAAC,QAAA,EAAK,WAAU,gBAAe,UAAA;AAAA,UAAA;AAAA,UAAE4C,EAAM,QAAQ,CAAC;AAAA,QAAA,EAAA,CAAE;AAAA,MAAA,EAAA,CACtD;AAAA,IAAA,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;ACxFA,MAAMC,IAAQ7S,EAAM;AAAA,EAChB,CAAC,EAAE,WAAAqE,GAAW,MAAAyO,GAAM,GAAGrS,EAAA,GAASpB,MAExB,gBAAA8B;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAA2R;AAAA,MACA,WAAWrE;AAAA,QACP;AAAA,QACApK;AAAA,MAAA;AAAA,MAEJ,KAAAhF;AAAA,MACC,GAAGoB;AAAA,IAAA;AAAA,EAAA;AAIpB;AACAoS,EAAM,cAAc;ACdpB,IAAInC,KAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACIC,KAAYD,GAAM,OAAO,CAACE,GAAWnR,MAAS;AAChD,QAAM2B,IAAO,gBAAAhB,GAAW,aAAaX,CAAI,EAAE,GACrCoR,IAAO7Q,EAAM,WAAW,CAACS,GAAOC,MAAiB;AACrD,UAAM,EAAE,SAAAoO,GAAS,GAAGgC,EAAc,IAAKrQ,GACjCsQ,IAAOjC,IAAU1N,IAAO3B;AAC9B,WAAI,OAAO,SAAW,QACpB,OAAO,OAAO,IAAI,UAAU,CAAC,IAAI,KAEZ,gBAAA0B,EAAI4P,GAAM,EAAE,GAAGD,GAAgB,KAAKpQ,GAAc;AAAA,EAC3E,CAAC;AACD,SAAAmQ,EAAK,cAAc,aAAapR,CAAI,IAC7B,EAAE,GAAGmR,GAAW,CAACnR,CAAI,GAAGoR,EAAI;AACrC,GAAG,EAAE,GC9BDG,KAAO,SACP+B,KAAQ/S,EAAM,WAAW,CAACS,GAAOC,MACZ,gBAAAS;AAAA,EACrBwP,GAAU;AAAA,EACV;AAAA,IACE,GAAGlQ;AAAA,IACH,KAAKC;AAAA,IACL,aAAa,CAACsS,MAAU;;AAEtB,MADeA,EAAM,OACV,QAAQ,iCAAiC,OACpD9Q,IAAAzB,EAAM,gBAAN,QAAAyB,EAAA,KAAAzB,GAAoBuS,IAChB,CAACA,EAAM,oBAAoBA,EAAM,SAAS,KAAGA,EAAM,eAAc;AAAA,IACvE;AAAA,EACN;AACA,CACC;AACDD,GAAM,cAAc/B;AACpB,IAAIU,KAAOqB;ACjBX,MAAME,KAAgBrQ;AAAA,EAClB;AACJ,GAEMmQ,IAAQ/S,EAAM,WAGlB,CAAC,EAAE,WAAAqE,GAAW,GAAG5D,EAAA,GAASpB,MACxB,gBAAA8B,EAAC+R,IAAA,EAAoB,KAAA7T,GAAU,WAAWoP,EAAGwE,GAAA,GAAiB5O,CAAS,GAAI,GAAG5D,EAAA,CAAO,CACxF;AACDsS,EAAM,cAAcG,GAAoB;AC2CjC,SAASC,GAAa;AAAA,EACzB,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,KAAAhB;AAAA,EACA,UAAAC;AAAA,EACA,WAAApO;AACJ,GAAsB;AAClB,QAAM+N,IAAYlD,EAAa,CAACgD,MAAMA,EAAE,SAAS,GAE3C,CAACuB,GAAeC,CAAgB,IAAIC,EAAwB,SAAS,GACrE,CAACC,GAAaC,CAAc,IAAIF,EAAS,EAAK,GAG9CG,KAAiBN,KAAA,gBAAAA,EAAgB,KAAK,CAACO,MAAMA,EAAE,gBAAcP,KAAA,gBAAAA,EAAiB,KAG9EQ,IAAiB,OAAwB;AAAA,IAC3C,WAAUF,KAAA,gBAAAA,EAAgB,cAAYP,KAAA,gBAAAA,EAAiB,aAAY;AAAA,IACnE,QAAOO,KAAA,gBAAAA,EAAgB,WAASP,KAAA,gBAAAA,EAAiB,UAAS;AAAA,IAC1D,UAASO,KAAA,gBAAAA,EAAgB,aAAWP,KAAA,gBAAAA,EAAiB,YAAW;AAAA,IAChE,OAAMO,KAAA,gBAAAA,EAAgB,UAAQP,KAAA,gBAAAA,EAAiB,SAAQ;AAAA,IACvD,MAAKO,KAAA,gBAAAA,EAAgB,SAAOP,KAAA,gBAAAA,EAAiB,QAAO;AAAA,IACpD,UAASO,KAAA,gBAAAA,EAAgB,aAAWP,KAAA,gBAAAA,EAAiB,YAAW;AAAA,EAAA,IAG9D,CAACU,GAAMC,CAAO,IAAIP,EAA0BK,CAAc,GAC1D,CAACG,GAAmBC,CAAoB,IAAIT;AAAA,KAC9CG,KAAA,gBAAAA,EAAgB,OAAM;AAAA,EAAA,GAIpBO,IAAgB,CAAC5E,MAAe;AAElC,QADA2E,EAAqB3E,CAAE,GACnBA,MAAO,SAAU;AACrB,UAAM6E,IAAOd,KAAA,gBAAAA,EAAgB,KAAK,CAACO,MAAMA,EAAE,OAAOtE;AAClD,IAAI6E,KACAJ,EAAQ;AAAA,MACJ,UAAUI,EAAK;AAAA,MACf,OAAOA,EAAK;AAAA,MACZ,SAASA,EAAK;AAAA,MACd,MAAMA,EAAK;AAAA,MACX,KAAKA,EAAK;AAAA,MACV,SAASA,EAAK;AAAA,IAAA,CACjB;AAAA,EAET,GAEMC,IAAQ,CAAC7Q,GAA4BpE,MACvC4U,EAAQ,CAACM,OAAU,EAAE,GAAGA,GAAM,CAAC9Q,CAAG,GAAGpE,IAAQ,GAE3CmV,IAAe,CAACC,MAAuB;AACzC,IAAAA,EAAE,eAAA,GACEd,KAAeO,MAAsB,YAAYd,KACjDA,EAAcY,CAAI,GAEtBb,KAAA,QAAAA,EAAe,EAAE,UAAUa,GAAM,eAAAR,EAAA;AAAA,EACrC;AAGA,SAAIrB,MAAc,sBAET,OAAA,EAAI,WAAW3D,EAAG,yDAAyDpK,CAAS,GACjF,UAAA;AAAA,IAAA,gBAAAlD,EAACwT,IAAA,EAAY,WAAU,kCAAA,CAAkC;AAAA,IACzD,gBAAAxT,EAAC,KAAA,EAAE,WAAU,yBAAwB,UAAA,8CAA0C;AAAA,IAC9EmS,KACG,gBAAAnS,EAACyN,GAAA,EAAO,SAAQ,WAAU,SAAS0E,GAAc,UAAA,eAAA,CAEjD;AAAA,EAAA,GAER,IAKJ,gBAAAtD;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,UAAUyE;AAAA,MACV,WAAWhG,EAAG,mEAAmEpK,CAAS;AAAA,MAG1F,UAAA;AAAA,QAAA,gBAAA2L,EAAC,OAAA,EAAI,WAAU,aAEX,UAAA;AAAA,UAAA,gBAAAA,EAACI,GAAA,EACG,UAAA;AAAA,YAAA,gBAAAjP,EAACkP,KACG,UAAA,gBAAAlP,EAACmP,GAAA,EAAU,WAAU,WAAU,kCAAoB,EAAA,CACvD;AAAA,YACA,gBAAAN,EAACQ,GAAA,EAAY,WAAU,aAElB,UAAA;AAAA,cAAAgD,KAAkBA,EAAe,SAAS,KACvC,gBAAAxD,EAAC,OAAA,EAAI,WAAU,aACX,UAAA;AAAA,gBAAA,gBAAAA,EAAC+C,GAAA,EAAM,WAAU,iDACb,UAAA;AAAA,kBAAA,gBAAA5R,EAACyT,IAAA,EAAO,WAAU,UAAA,CAAU;AAAA,kBAAE;AAAA,gBAAA,GAElC;AAAA,gBACA,gBAAA5E,EAAC,OAAA,EAAI,WAAU,aACV,UAAA;AAAA,kBAAAwD,EAAe,IAAI,CAACc,MACjB,gBAAAtE;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEG,MAAK;AAAA,sBACL,SAAS,MAAMqE,EAAcC,EAAK,EAAE;AAAA,sBACpC,WAAW7F;AAAA,wBACP;AAAA,wBACA0F,MAAsBG,EAAK,KACrB,gCACA;AAAA,sBAAA;AAAA,sBAGV,UAAA;AAAA,wBAAA,gBAAAnT,EAACyT,IAAA,EAAO,WAAU,0BAAA,CAA0B;AAAA,wBAC5C,gBAAA5E,EAAC,OAAA,EAAI,WAAU,WACX,UAAA;AAAA,0BAAA,gBAAAA,EAAC,KAAA,EAAE,WAAU,eACR,UAAA;AAAA,4BAAAsE,EAAK,SAASA,EAAK;AAAA,4BACnBA,EAAK,aACF,gBAAAnT,EAAC,QAAA,EAAK,WAAU,sCAAqC,UAAA,YAAA,CAAS;AAAA,0BAAA,GAEtE;AAAA,0BACA,gBAAA6O,EAAC,KAAA,EAAE,WAAU,kCACR,UAAA;AAAA,4BAAAsE,EAAK;AAAA,4BAAQ;AAAA,4BAAGA,EAAK;AAAA,4BAAK;AAAA,4BAAGA,EAAK;AAAA,0BAAA,EAAA,CACvC;AAAA,wBAAA,EAAA,CACJ;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBArBKA,EAAK;AAAA,kBAAA,CAuBjB;AAAA,kBACD,gBAAAtE;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACG,MAAK;AAAA,sBACL,SAAS,MAAMqE,EAAc,QAAQ;AAAA,sBACrC,WAAW5F;AAAA,wBACP;AAAA,wBACA0F,MAAsB,WAChB,gCACA;AAAA,sBAAA;AAAA,sBAGV,UAAA;AAAA,wBAAA,gBAAAhT,EAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA,MAAE;AAAA,wBAC1C,gBAAAA,EAAC,QAAA,EAAK,WAAU,eAAc,UAAA,sBAAA,CAAmB;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACrD,EAAA,CACJ;AAAA,cAAA,GACJ;AAAA,cAIJ,gBAAA6O,EAAC,OAAA,EAAI,WAAU,6BACX,UAAA;AAAA,gBAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,6BACX,UAAA;AAAA,kBAAA,gBAAA7O,EAAC4R,GAAA,EAAM,SAAQ,WAAU,UAAA,aAAS;AAAA,kBAClC,gBAAA5R;AAAA,oBAAC0R;AAAA,oBAAA;AAAA,sBACG,IAAG;AAAA,sBACH,UAAQ;AAAA,sBACR,aAAY;AAAA,sBACZ,OAAOoB,EAAK;AAAA,sBACZ,UAAU,CAACS,MAAMH,EAAM,YAAYG,EAAE,OAAO,KAAK;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACrD,GACJ;AAAA,gBAEA,gBAAA1E,EAAC,OAAA,EAAI,WAAU,6BACX,UAAA;AAAA,kBAAA,gBAAA7O,EAAC4R,GAAA,EAAM,SAAQ,YAAW,UAAA,SAAK;AAAA,kBAC/B,gBAAA5R;AAAA,oBAAC0R;AAAA,oBAAA;AAAA,sBACG,IAAG;AAAA,sBACH,MAAK;AAAA,sBACL,UAAQ;AAAA,sBACR,aAAY;AAAA,sBACZ,OAAOoB,EAAK;AAAA,sBACZ,UAAU,CAACS,MAAMH,EAAM,SAASG,EAAE,OAAO,KAAK;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAClD,GACJ;AAAA,gBAEA,gBAAA1E,EAAC,OAAA,EAAI,WAAU,6BACX,UAAA;AAAA,kBAAA,gBAAA7O,EAAC4R,GAAA,EAAM,SAAQ,cAAa,UAAA,WAAO;AAAA,kBACnC,gBAAA5R;AAAA,oBAAC0R;AAAA,oBAAA;AAAA,sBACG,IAAG;AAAA,sBACH,UAAQ;AAAA,sBACR,aAAY;AAAA,sBACZ,OAAOoB,EAAK;AAAA,sBACZ,UAAU,CAACS,MAAMH,EAAM,WAAWG,EAAE,OAAO,KAAK;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACpD,GACJ;AAAA,gBAEA,gBAAA1E,EAAC,OAAA,EAAI,WAAU,eACX,UAAA;AAAA,kBAAA,gBAAA7O,EAAC4R,GAAA,EAAM,SAAQ,WAAU,UAAA,QAAI;AAAA,kBAC7B,gBAAA5R;AAAA,oBAAC0R;AAAA,oBAAA;AAAA,sBACG,IAAG;AAAA,sBACH,UAAQ;AAAA,sBACR,aAAY;AAAA,sBACZ,OAAOoB,EAAK;AAAA,sBACZ,UAAU,CAACS,MAAMH,EAAM,QAAQG,EAAE,OAAO,KAAK;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACjD,GACJ;AAAA,gBAEA,gBAAA1E,EAAC,OAAA,EAAI,WAAU,eACX,UAAA;AAAA,kBAAA,gBAAA7O,EAAC4R,GAAA,EAAM,SAAQ,UAAS,UAAA,qBAAiB;AAAA,kBACzC,gBAAA5R;AAAA,oBAAC0R;AAAA,oBAAA;AAAA,sBACG,IAAG;AAAA,sBACH,UAAQ;AAAA,sBACR,aAAY;AAAA,sBACZ,OAAOoB,EAAK;AAAA,sBACZ,UAAU,CAACS,MAAMH,EAAM,OAAOG,EAAE,OAAO,KAAK;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAChD,GACJ;AAAA,gBAEA,gBAAA1E,EAAC,OAAA,EAAI,WAAU,6BACX,UAAA;AAAA,kBAAA,gBAAA7O,EAAC4R,GAAA,EAAM,SAAQ,cAAa,UAAA,WAAO;AAAA,kBACnC,gBAAA5R;AAAA,oBAAC0R;AAAA,oBAAA;AAAA,sBACG,IAAG;AAAA,sBACH,UAAQ;AAAA,sBACR,aAAY;AAAA,sBACZ,OAAOoB,EAAK;AAAA,sBACZ,UAAU,CAACS,MAAMH,EAAM,WAAWG,EAAE,OAAO,KAAK;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACpD,GACJ;AAAA,gBAECP,MAAsB,YAAYd,KAC/B,gBAAArD,EAAC,OAAA,EAAI,WAAU,8CACX,UAAA;AAAA,kBAAA,gBAAA7O;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACG,MAAK;AAAA,sBACL,IAAG;AAAA,sBACH,SAASyS;AAAA,sBACT,UAAU,CAACc,MAAMb,EAAea,EAAE,OAAO,OAAO;AAAA,sBAChD,WAAU;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAEd,gBAAA1E,EAAC+C,GAAA,EAAM,SAAQ,mBAAkB,WAAU,gEACvC,UAAA;AAAA,oBAAA,gBAAA5R,EAAC0T,IAAA,EAAK,WAAU,cAAA,CAAc;AAAA,oBAAE;AAAA,kBAAA,EAAA,CAEpC;AAAA,gBAAA,EAAA,CACJ;AAAA,cAAA,EAAA,CAER;AAAA,YAAA,EAAA,CACJ;AAAA,UAAA,GACJ;AAAA,4BAGCzE,GAAA,EACG,UAAA;AAAA,YAAA,gBAAAjP,EAACkP,KACG,UAAA,gBAAAlP,EAACmP,GAAA,EAAU,WAAU,WAAU,4BAAc,EAAA,CACjD;AAAA,YACA,gBAAAN,EAACQ,GAAA,EAAY,WAAU,aACnB,UAAA;AAAA,cAAA,gBAAAR;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,MAAK;AAAA,kBACL,SAAS,MAAM0D,EAAiB,SAAS;AAAA,kBACzC,WAAWjF;AAAA,oBACP;AAAA,oBACAgF,MAAkB,YACZ,gCACA;AAAA,kBAAA;AAAA,kBAGV,UAAA;AAAA,oBAAA,gBAAAtS,EAAC2T,IAAA,EAAW,WAAU,mBAAA,CAAmB;AAAA,sCACxC,OAAA,EACG,UAAA;AAAA,sBAAA,gBAAA3T,EAAC,KAAA,EAAE,WAAU,eAAc,UAAA,oBAAgB;AAAA,sBAC3C,gBAAAA,EAAC,KAAA,EAAE,WAAU,iCAAgC,UAAA,kCAAA,CAE7C;AAAA,oBAAA,EAAA,CACJ;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGJ,gBAAA6O;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,MAAK;AAAA,kBACL,SAAS,MAAM0D,EAAiB,QAAQ;AAAA,kBACxC,WAAWjF;AAAA,oBACP;AAAA,oBACAgF,MAAkB,WACZ,gCACA;AAAA,kBAAA;AAAA,kBAGV,UAAA;AAAA,oBAAA,gBAAAtS,EAAC4T,IAAA,EAAQ,WAAU,mBAAA,CAAmB;AAAA,sCACrC,OAAA,EACG,UAAA;AAAA,sBAAA,gBAAA5T,EAAC,KAAA,EAAE,WAAU,eAAc,UAAA,kBAAc;AAAA,sBACzC,gBAAAA,EAAC,KAAA,EAAE,WAAU,iCAAgC,UAAA,8BAAA,CAE7C;AAAA,oBAAA,EAAA,CACJ;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACJ,EAAA,CACJ;AAAA,UAAA,EAAA,CACJ;AAAA,QAAA,GACJ;AAAA,QAGA,gBAAA6O,EAAC,OAAA,EAAI,WAAU,aACX,UAAA;AAAA,UAAA,gBAAA7O,EAACoR,IAAA,EAAa,KAAAC,GAAU,UAAAC,EAAA,CAAoB;AAAA,4BAE3CtB,GAAA,EAAU;AAAA,UAEX,gBAAAhQ,EAACyN,KAAO,MAAK,UAAS,MAAK,MAAK,WAAU,UAAS,UAAA,cAAA,CAEnD;AAAA,UAEC0E,KACG,gBAAAnS;AAAA,YAACyN;AAAA,YAAA;AAAA,cACG,MAAK;AAAA,cACL,SAAQ;AAAA,cACR,WAAU;AAAA,cACV,SAAS0E;AAAA,cACZ,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAKL,gBAAAnS,EAAC0Q,IAAA,EAAY,WAAU,OAAA,CAAO;AAAA,QAAA,EAAA,CAClC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;ACrVO,SAASmD,GAAW,EAAE,OAAAC,GAAO,UAAAtU,GAAU,WAAA0D,KAA8B;AACxE,SACI,gBAAAlD,EAAC,SAAI,WAAWsN,EAAG,0BAA0BpK,CAAS,GAClD,4BAAC+L,GAAA,EACG,UAAA;AAAA,IAAA,gBAAAjP,EAACkP,KACG,UAAA,gBAAAlP,EAACmP,GAAA,EAAU,WAAU,YAAY,aAAM,EAAA,CAC3C;AAAA,sBACCa,GAAA,EAAU;AAAA,IACX,gBAAAhQ,EAACqP,GAAA,EAAY,WAAU,oDAClB,UAAA7P,EAAA,CACL;AAAA,EAAA,EAAA,CACJ,EAAA,CACJ;AAER;ACbA,MAAMuU,KAA+B;AAAA,EACjC,EAAE,QAAQ,YAAY,QAAQ,YAAY,UAAU,qBAAqB,OAAO,QAAA;AAAA,EAChF,EAAE,QAAQ,YAAY,QAAQ,WAAW,UAAU,qBAAqB,OAAO,SAAA;AAAA,EAC/E,EAAE,QAAQ,iBAAiB,QAAQ,YAAY,UAAU,uBAAuB,OAAO,SAAA;AAAA,EACvF,EAAE,QAAQ,iBAAiB,QAAQ,WAAW,UAAU,qBAAqB,OAAO,SAAA;AACxF;AAGO,SAASC,GAAa,EAAE,OAAAC,IAAQF,IAAc,WAAA7Q,KAAgC;AACjF,SACI,gBAAA2L,EAACgF,IAAA,EAAW,OAAM,wBAAuB,WAAA3Q,GAErC,UAAA;AAAA,IAAA,gBAAAlD,EAAC,OAAA,EAAI,WAAU,4CACV,UAAA;AAAA,MACG,EAAE,MAAMkU,IAAO,OAAO,mCAAA;AAAA,MACtB,EAAE,MAAMC,IAAO,OAAO,0CAAA;AAAA,MACtB,EAAE,MAAMC,IAAO,OAAO,oBAAA;AAAA,MACtB,EAAE,MAAMC,IAAY,OAAO,6BAAA;AAAA,IAA6B,EAC1D,IAAI,CAAC,EAAE,MAAMC,GAAM,OAAA1J,QACjB,gBAAAiE;AAAA,MAAC;AAAA,MAAA;AAAA,QAEG,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAA7O,EAACsU,GAAA,EAAK,WAAU,gCAAA,CAAgC;AAAA,UAChD,gBAAAtU,EAAC,QAAA,EAAK,WAAU,uBAAuB,UAAA4K,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAJxCA;AAAA,IAAA,CAMZ,GACL;AAAA,IAGA,gBAAA5K,EAAC,QAAG,UAAA,iBAAA,CAAc;AAAA,sBACjB,OAAA,EAAI,WAAU,6BACX,UAAA,gBAAA6O,EAAC,SAAA,EAAM,WAAU,kBACb,UAAA;AAAA,MAAA,gBAAA7O,EAAC,SAAA,EACG,UAAA,gBAAA6O,EAAC,MAAA,EAAG,WAAU,4CACV,UAAA;AAAA,QAAA,gBAAA7O,EAAC,MAAA,EAAG,WAAU,yBAAwB,UAAA,UAAM;AAAA,QAC5C,gBAAAA,EAAC,MAAA,EAAG,WAAU,yBAAwB,UAAA,UAAM;AAAA,QAC5C,gBAAAA,EAAC,MAAA,EAAG,WAAU,yBAAwB,UAAA,YAAQ;AAAA,QAC9C,gBAAAA,EAAC,MAAA,EAAG,WAAU,+BAA8B,UAAA,QAAA,CAAK;AAAA,MAAA,EAAA,CACrD,EAAA,CACJ;AAAA,wBACC,SAAA,EACI,UAAAiU,EAAM,IAAI,CAAC/S,GAAGxC,MACX,gBAAAmQ,EAAC,MAAA,EAAW,WAAWvB,EAAG,6BAA6B5O,IAAI,MAAM,KAAK,aAAa,GAC/E,UAAA;AAAA,QAAA,gBAAAsB,EAAC,MAAA,EAAG,WAAU,eAAe,UAAAkB,EAAE,QAAO;AAAA,QACtC,gBAAAlB,EAAC,MAAA,EAAG,WAAU,eAAe,YAAE,QAAO;AAAA,QACtC,gBAAAA,EAAC,MAAA,EAAG,WAAU,qCAAqC,YAAE,UAAS;AAAA,QAC9D,gBAAAA,EAAC,MAAA,EAAG,WAAU,iCAAiC,YAAE,MAAA,CAAM;AAAA,MAAA,EAAA,GAJlDtB,CAKT,CACH,EAAA,CACL;AAAA,IAAA,EAAA,CACJ,EAAA,CACJ;AAAA,IAEA,gBAAAsB,EAAC,QAAG,UAAA,kBAAA,CAAe;AAAA,IACnB,gBAAAA,EAAC,OAAE,UAAA,iNAAA,CAIH;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,WAAA,CAAQ;AAAA,IACZ,gBAAAA,EAAC,OAAE,UAAA,+JAAA,CAGH;AAAA,EAAA,GACJ;AAER;AC3EO,SAASuU,GAAY,EAAE,kBAAAC,IAAmB,IAAI,WAAAtR,KAA+B;AAChF,SACI,gBAAA2L,EAACgF,IAAA,EAAW,OAAM,2BAA0B,WAAA3Q,GAExC,UAAA;AAAA,IAAA,gBAAAlD,EAAC,OAAA,EAAI,WAAU,4CACV,UAAA;AAAA,MACG,EAAE,MAAMmU,IAAO,OAAO,GAAGK,CAAgB,qBAAA;AAAA,MACzC,EAAE,MAAMC,IAAW,OAAO,kCAAA;AAAA,MAC1B,EAAE,MAAMC,IAAa,OAAO,kCAAA;AAAA,MAC5B,EAAE,MAAMC,IAAS,OAAO,qBAAA;AAAA,IAAqB,EAC/C,IAAI,CAAC,EAAE,MAAML,GAAM,OAAA1J,QACjB,gBAAAiE;AAAA,MAAC;AAAA,MAAA;AAAA,QAEG,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAA7O,EAACsU,GAAA,EAAK,WAAU,gCAAA,CAAgC;AAAA,UAChD,gBAAAtU,EAAC,QAAA,EAAK,WAAU,uBAAuB,UAAA4K,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAJxCA;AAAA,IAAA,CAMZ,GACL;AAAA,IAEA,gBAAA5K,EAAC,QAAG,UAAA,cAAA,CAAW;AAAA,sBACd,KAAA,EAAE,UAAA;AAAA,MAAA;AAAA,wBACgC,UAAA,EAAQ,UAAA;AAAA,QAAAwU;AAAA,QAAiB;AAAA,MAAA,GAAK;AAAA,MAAS;AAAA,IAAA,GAE1E;AAAA,IAEA,gBAAAxU,EAAC,QAAG,UAAA,2BAAA,CAAwB;AAAA,sBAC3B,MAAA,EACG,UAAA;AAAA,MAAA,gBAAAA,EAAC,QAAG,UAAA,mDAAA,CAAgD;AAAA,MACpD,gBAAAA,EAAC,QAAG,UAAA,+EAAA,CAA4E;AAAA,MAChF,gBAAAA,EAAC,QAAG,UAAA,yEAAA,CAAsE;AAAA,IAAA,GAC9E;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,oBAAA,CAAiB;AAAA,IACrB,gBAAAA,EAAC,OAAE,UAAA,kNAAA,CAIH;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,aAAA,CAAU;AAAA,IACd,gBAAAA,EAAC,OAAE,UAAA,mMAAA,CAIH;AAAA,EAAA,GACJ;AAER;AChDO,SAAS4U,GAAkB;AAAA,EAC9B,UAAAC,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,WAAA5R;AACJ,GAA2B;AACvB,SACI,gBAAA2L,EAACgF,IAAA,EAAW,OAAM,kBAAiB,WAAA3Q,GAC/B,UAAA;AAAA,IAAA,gBAAA2L,EAAC,KAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MACI,gBAAA7O,EAAC,YAAQ,UAAA6U,EAAA,CAAS;AAAA,MAAS;AAAA,IAAA,GAGlC;AAAA,IAEA,gBAAA7U,EAAC,QAAG,UAAA,yBAAA,CAAsB;AAAA,sBACzB,MAAA,EACG,UAAA;AAAA,MAAA,gBAAA6O,EAAC,MAAA,EACG,UAAA;AAAA,QAAA,gBAAA7O,EAAC,YAAO,UAAA,wBAAA,CAAqB;AAAA,QAAS;AAAA,MAAA,GAE1C;AAAA,wBACC,MAAA,EACG,UAAA;AAAA,QAAA,gBAAAA,EAAC,YAAO,UAAA,cAAA,CAAW;AAAA,QAAS;AAAA,MAAA,GAEhC;AAAA,wBACC,MAAA,EACG,UAAA;AAAA,QAAA,gBAAAA,EAAC,YAAO,UAAA,WAAA,CAAQ;AAAA,QAAS;AAAA,MAAA,EAAA,CAE7B;AAAA,IAAA,GACJ;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,8BAAA,CAA2B;AAAA,sBAC9B,MAAA,EACG,UAAA;AAAA,MAAA,gBAAAA,EAAC,QAAG,UAAA,sCAAA,CAAmC;AAAA,MACvC,gBAAAA,EAAC,QAAG,UAAA,iEAAA,CAA8D;AAAA,MAClE,gBAAAA,EAAC,QAAG,UAAA,uCAAA,CAAoC;AAAA,MACxC,gBAAAA,EAAC,QAAG,UAAA,oCAAA,CAAiC;AAAA,IAAA,GACzC;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,eAAA,CAAY;AAAA,IAChB,gBAAAA,EAAC,OAAE,UAAA,4LAAA,CAIH;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,UAAA,CAAO;AAAA,IACX,gBAAAA,EAAC,OAAE,UAAA,gLAAA,CAIH;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,cAAA,CAAW;AAAA,sBACd,KAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MAE0B;AAAA,MACzB,gBAAAA,EAAC,OAAE,MAAM,UAAU8U,CAAY,IAAI,WAAU,0BACxC,UAAAA,EAAA,CACL;AAAA,MAAI;AAAA,IAAA,GAER;AAAA,IAEA,gBAAA9U,EAAC,QAAG,UAAA,aAAA,CAAU;AAAA,sBACb,KAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MACuE;AAAA,MACtE,gBAAAA,EAAC,OAAE,MAAM,UAAU8U,CAAY,IAAI,WAAU,0BACxC,UAAAA,EAAA,CACL;AAAA,MAAI;AAAA,IAAA,EAAA,CAER;AAAA,EAAA,GACJ;AAER;ACvEO,SAASC,GAAU;AAAA,EACtB,UAAAF,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,WAAA5R;AACJ,GAAmB;AACf,SACI,gBAAA2L,EAACgF,IAAA,EAAW,OAAM,oBAAmB,WAAA3Q,GACjC,UAAA;AAAA,IAAA,gBAAA2L,EAAC,KAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MACwB,gBAAA7O,EAAC,YAAQ,UAAA6U,EAAA,CAAS;AAAA,MAAS;AAAA,IAAA,GAEtD;AAAA,IAEA,gBAAA7U,EAAC,QAAG,UAAA,kBAAA,CAAe;AAAA,IACnB,gBAAAA,EAAC,OAAE,UAAA,sKAAA,CAGH;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,qBAAA,CAAkB;AAAA,IACtB,gBAAAA,EAAC,OAAE,UAAA,iRAAA,CAKH;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,mBAAA,CAAgB;AAAA,IACpB,gBAAAA,EAAC,OAAE,UAAA,4LAAA,CAIH;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,wBAAA,CAAqB;AAAA,sBACxB,KAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MAEc6U;AAAA,MAAS;AAAA,IAAA,GAE1B;AAAA,IAEA,gBAAA7U,EAAC,QAAG,UAAA,0BAAA,CAAuB;AAAA,sBAC1B,KAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MAC0C6U;AAAA,MAAS;AAAA,IAAA,GAGtD;AAAA,IAEA,gBAAA7U,EAAC,QAAG,UAAA,yBAAA,CAAsB;AAAA,IAC1B,gBAAAA,EAAC,OAAE,UAAA,+IAAA,CAGH;AAAA,IAEA,gBAAAA,EAAC,QAAG,UAAA,UAAA,CAAO;AAAA,sBACV,KAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MACgD;AAAA,MAC/C,gBAAAA,EAAC,OAAE,MAAM,UAAU8U,CAAY,IAAI,WAAU,0BACxC,UAAAA,EAAA,CACL;AAAA,MAAI;AAAA,IAAA,EAAA,CAER;AAAA,EAAA,GACJ;AAER;ACjDO,SAASE,GAAa;AAAA,EACzB,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAlD;AAAA,EACA,cAAAD;AAAA,EACA,cAAAE;AAAA,EACA,gBAAAkD;AAAA,EACA,OAAAC;AACJ,GAAsB;AAClB,QAAM,CAACjD,GAAgBkD,CAAiB,IAAI/C,EAAyB,CAAA,CAAE;AAGvE,SAAAgD,GAAU,MAAM;AACZ,QAAI,CAACP,EAAQ;AACb,QAAIQ,IAAU;AACd,WAAAL,EAAiBH,CAAM,EAClB,KAAK,CAACS,MAAU;AACb,MAAID,OAA2BC,CAAK;AAAA,IACxC,CAAC,EACA,MAAM,CAACC,MAAQ,QAAQ,MAAM,8BAA8BA,CAAG,CAAC,GAC7D,MAAM;AAAE,MAAAF,IAAU;AAAA,IAAO;AAAA,EACpC,GAAG,CAACR,GAAQG,CAAgB,CAAC,GAoDtB,gBAAApV,EAACgS,IAAA,EAAc,GAXmB;AAAA,IACrC,cAZqB,OAAO4D,MAAc;AAC1C,UAAI;AACA,cAAM3D,EAAa2D,CAAI,GACvBN,KAAA,QAAAA,EAAO,QAAQ,+BACfD,EAAA;AAAA,MACJ,SAASM,GAAK;AACV,gBAAQ,MAAM,0BAA0BA,CAAG,GAC3CL,KAAA,QAAAA,EAAO,MAAM;AAAA,MACjB;AAAA,IACJ;AAAA,IAII,eAxCsB,OAAOO,MAAiB;;AAC9C,UAAKZ;AACL,YAAI;AAEA,gBAAM5G,IAAW,MAAM+G,EAAiBH,CAAM,GAExCa,IAAwB;AAAA,YAC1B,GAAGD;AAAA,YACH,IAAI,OAAO,WAAA;AAAA,YACX,SAAO9U,IAAA8U,EAAQ,YAAR,gBAAA9U,EAAiB,MAAM,KAAK,OAAM;AAAA,YACzC,OAAO;AAAA,YACP,MAAM;AAAA;AAAA,YAEN,WAAWsN,EAAS,WAAW;AAAA,UAAA,GAG7B0H,IAAU,CAAC,GAAG1H,GAAUyH,CAAO;AACrC,gBAAM5D,EAAc+C,GAAQc,CAAO,GACnCR,EAAkBQ,CAAO,GACzBT,KAAA,QAAAA,EAAO,QAAQ;AAAA,QACnB,SAASK,GAAK;AACV,kBAAQ,MAAM,2BAA2BA,CAAG,GAC5CL,KAAA,QAAAA,EAAO,MAAM;AAAA,QACjB;AAAA,IACJ;AAAA,IAiBI,cAAAnD;AAAA,IACA,gBAAAE;AAAA,IACA,iBAAiB;AAAA,MACb,UAAU6C,KAAmB;AAAA,MAC7B,OAAOC,KAAa;AAAA,IAAA;AAAA,EACxB,EAGqB,CAAe;AAC5C;AClGA,MAAMa,KAAgBvU;AAAA,EAClB;AAAA,EACA;AAAA,IACI,UAAU;AAAA,MACN,SAAS;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,SAAS;AAAA,MAAA;AAAA,IACb;AAAA,IAEJ,iBAAiB;AAAA,MACb,SAAS;AAAA,IAAA;AAAA,EACb;AAER;AAIA,SAASwU,GAAM,EAAE,WAAA/S,GAAW,SAAAlB,GAAS,GAAG1C,KAAqB;AACzD,SAAO,gBAAAU,EAAC,OAAA,EAAI,WAAWsN,EAAG0I,GAAc,EAAE,SAAAhU,EAAA,CAAS,GAAGkB,CAAS,GAAI,GAAG5D,EAAA,CAAO;AACjF;ACOA,MAAM4W,KAAuI;AAAA,EACzI,SAAS,EAAE,OAAO,WAAW,SAAS,aAAa,MAAM,gBAAAlW,EAACmU,IAAA,EAAM,WAAU,cAAA,CAAc,EAAA;AAAA,EACxF,YAAY,EAAE,OAAO,cAAc,SAAS,WAAW,MAAM,gBAAAnU,EAACmW,IAAA,EAAU,WAAU,cAAA,CAAc,EAAA;AAAA,EAChG,WAAW,EAAE,OAAO,aAAa,SAAS,WAAW,MAAM,gBAAAnW,EAAC0U,IAAA,EAAY,WAAU,cAAA,CAAc,EAAA;AAAA,EAChG,QAAQ,EAAE,OAAO,UAAU,SAAS,eAAe,MAAM,gBAAA1U,EAAC2U,IAAA,EAAQ,WAAU,cAAA,CAAc,EAAA;AAAA,EAC1F,UAAU,EAAE,OAAO,YAAY,SAAS,WAAW,MAAM,gBAAA3U,EAACmW,IAAA,EAAU,WAAU,cAAA,CAAc,EAAA;AAAA,EAC5F,WAAW,EAAE,OAAO,aAAa,SAAS,eAAe,MAAM,gBAAAnW,EAAC2U,IAAA,EAAQ,WAAU,cAAA,CAAc,EAAA;AACpG;AAEO,SAASyB,GAAc,EAAE,qBAAAC,GAAqB,YAAAC,GAAY,OAAAhB,KAA6B;AAC1F,QAAM,CAACiB,GAAcC,CAAe,IAAIhE,EAAwB,CAAA,CAAE,GAC5D,CAACiE,GAASC,CAAU,IAAIlE,EAAS,EAAI;AAmB3C,SAjBAgD,GAAU,MAAM;AACZ,QAAIC,IAAU;AACd,WAAAiB,EAAW,EAAI,GACfL,EAAA,EACK,KAAK,CAACT,MAAS;AACZ,MAAIH,OAAyBG,CAAI;AAAA,IACrC,CAAC,EACA,MAAM,CAACD,MAAQ;AACZ,cAAQ,MAAM,gCAAgCA,CAAG,GACjDL,KAAA,QAAAA,EAAO,MAAM;AAAA,IACjB,CAAC,EACA,QAAQ,MAAM;AACX,MAAIG,OAAoB,EAAK;AAAA,IACjC,CAAC,GACE,MAAM;AAAE,MAAAA,IAAU;AAAA,IAAO;AAAA,EACpC,GAAG,CAACY,CAAmB,CAAC,GAEpBI,IAEI,gBAAAzW,EAAC,SAAI,WAAU,0CACX,4BAACmW,IAAA,EAAU,WAAU,8CAA6C,EAAA,CACtE,IAKJ,gBAAAtH,EAAC,OAAA,EAAI,WAAU,yCACX,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qCACX,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,QAAA,gBAAA7O,EAAC2W,IAAA,EAAQ,WAAU,UAAA,CAAU;AAAA,QAC7B,gBAAA3W,EAAC,MAAA,EAAG,WAAU,sBAAqB,UAAA,eAAA,CAAY;AAAA,MAAA,GACnD;AAAA,MACA,gBAAA6O,EAACpB,GAAA,EAAO,SAAQ,WAAU,MAAK,MAAK,SAAS,MAAM6I,EAAW,GAAG,GAC7D,UAAA;AAAA,QAAA,gBAAAtW,EAAC4W,IAAA,EAAU,WAAU,eAAA,CAAe;AAAA,QAAE;AAAA,MAAA,EAAA,CAE1C;AAAA,IAAA,GACJ;AAAA,IAECL,EAAa,WAAW,IACrB,gBAAAvW,EAACiP,KACG,UAAA,gBAAAJ,EAACQ,GAAA,EAAY,WAAU,yDACnB,UAAA;AAAA,MAAA,gBAAArP,EAAC2W,IAAA,EAAQ,WAAU,kCAAA,CAAkC;AAAA,MACrD,gBAAA3W,EAAC,KAAA,EAAE,WAAU,yBAAwB,UAAA,qBAAiB;AAAA,MACtD,gBAAAA,EAACyN,KAAO,SAAQ,WAAU,SAAS,MAAM6I,EAAW,GAAG,GAAG,UAAA,kBAAA,CAE1D;AAAA,IAAA,EAAA,CACJ,EAAA,CACJ,IAEA,gBAAAtW,EAAC,OAAA,EAAI,WAAU,aACV,UAAAuW,EAAa,IAAI,CAACM,MAAO;AACtB,YAAMC,IAAW,MAAM,QAAQD,EAAG,YAAY,IAAIA,EAAG,eAAe,CAAA,GAC9DE,IAAKb,GAAaW,EAAG,MAAM,KAAKX,GAAa,SAC7Cc,IAAO,IAAI,KAAKH,EAAG,UAAU,EAAE,mBAAmB,QAAW;AAAA,QAC/D,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA,CACX;AAED,aACI,gBAAAhI,EAACI,GAAA,EAAiB,WAAU,mBACxB,UAAA;AAAA,QAAA,gBAAAjP,EAACkP,KAAW,WAAU,QAClB,UAAA,gBAAAL,EAAC,OAAA,EAAI,WAAU,qDACX,UAAA;AAAA,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,aACX,UAAA;AAAA,YAAA,gBAAAA,EAACM,GAAA,EAAU,WAAU,aAAY,UAAA;AAAA,cAAA;AAAA,cACrB0H,EAAG,GAAG,MAAM,GAAG,CAAC;AAAA,YAAA,GAC5B;AAAA,YACA,gBAAA7W,EAAC,KAAA,EAAE,WAAU,iCAAiC,UAAAgX,EAAA,CAAK;AAAA,UAAA,GACvD;AAAA,UACA,gBAAAnI,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,YAAA,gBAAAA,EAACoH,IAAA,EAAM,SAASc,EAAG,SAAS,WAAU,2BACjC,UAAA;AAAA,cAAAA,EAAG;AAAA,cACHA,EAAG;AAAA,YAAA,GACR;AAAA,YACA,gBAAAlI,EAAC,QAAA,EAAK,WAAU,yBACX,UAAA;AAAA,cAAAgI,EAAG;AAAA,cAAS;AAAA,cAAE,OAAOA,EAAG,YAAY,EAAE,QAAQ,CAAC;AAAA,YAAA,EAAA,CACpD;AAAA,UAAA,EAAA,CACJ;AAAA,QAAA,EAAA,CACJ,EAAA,CACJ;AAAA,QACA,gBAAAhI,EAACQ,GAAA,EAAY,WAAU,QAEnB,UAAA;AAAA,UAAA,gBAAArP,EAAC,SAAI,WAAU,aACV,YAAS,IAAI,CAACyO,GAAWwI,MACtB,gBAAApI;AAAA,YAAC;AAAA,YAAA;AAAA,cAEG,WAAU;AAAA,cAET,UAAA;AAAA,gBAAAJ,EAAK,SACF,gBAAAzO;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACG,KAAKyO,EAAK;AAAA,oBACV,KAAKA,EAAK;AAAA,oBACV,WAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGlB,gBAAAI,EAAC,OAAA,EAAI,WAAU,kBACX,UAAA;AAAA,kBAAA,gBAAA7O,EAAC,KAAA,EAAE,WAAU,gCACR,UAAAyO,EAAK,SAAS,WACnB;AAAA,kBACA,gBAAAI,EAAC,KAAA,EAAE,WAAU,iCAAgC,UAAA;AAAA,oBAAA;AAAA,oBACnCJ,EAAK,YAAY;AAAA,oBACtBA,EAAK,WAAW,MAAMA,EAAK,OAAO;AAAA,oBAClC;AAAA,oBACAoI,EAAG;AAAA,oBAAS;AAAA,oBAAE,OAAOpI,EAAK,SAAS,CAAC,EAAE,QAAQ,CAAC;AAAA,kBAAA,GACpD;AAAA,kBACCA,EAAK,cACF,gBAAAI;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACG,MAAM,SAASJ,EAAK,UAAU;AAAA,sBAC9B,SAAS,CAAC8E,MAAM;AAAE,wBAAAA,EAAE,eAAA,GAAkB+C,EAAW,SAAS7H,EAAK,UAAU,EAAE;AAAA,sBAAG;AAAA,sBAC9E,WAAU;AAAA,sBAEV,UAAA;AAAA,wBAAA,gBAAAzO,EAACkX,IAAA,EAAM,WAAU,UAAA,CAAU;AAAA,wBAC1BzI,EAAK;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACV,GAER;AAAA,gBACCA,EAAK,cAAcA,EAAK,YACrB,gBAAAI;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACG,MAAM,SAASJ,EAAK,UAAU,UAAUA,EAAK,QAAQ;AAAA,oBACrD,SAAS,CAAC8E,MAAM;AAAE,sBAAAA,EAAE,eAAA,GAAkB+C,EAAW,SAAS7H,EAAK,UAAU,UAAUA,EAAK,QAAQ,EAAE;AAAA,oBAAG;AAAA,oBACrG,WAAU;AAAA,oBACb,UAAA;AAAA,sBAAA;AAAA,sBAEG,gBAAAzO,EAACmX,IAAA,EAAa,WAAU,UAAA,CAAU;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACtC;AAAA,YAAA;AAAA,YAvCCF;AAAA,UAAA,CA0CZ,GACL;AAAA,UAGCJ,EAAG,iBAAiB,OAAO,KAAKA,EAAG,aAAa,EAAE,SAAS,KACxD,gBAAAhI,EAAC,OAAA,EAAI,WAAU,oDAAmD,UAAA;AAAA,YAAA;AAAA,YAClDgI,EAAG,cAAsB;AAAA,YAAS;AAAA,YAAIA,EAAG,cAAsB;AAAA,YAAK;AAAA,YAAIA,EAAG,cAAsB;AAAA,UAAA,EAAA,CACjH;AAAA,QAAA,EAAA,CAER;AAAA,MAAA,EAAA,GA5EOA,EAAG,EA6Ed;AAAA,IAER,CAAC,EAAA,CACL;AAAA,EAAA,GAER;AAER;AChKO,MAAMO,KAAyD,CAAC9X,MAAU;;AAC7E,QAAM,EAAE,UAAA+X,EAAA,IAAaC,GAAA;AAErB,SAAIC,EAAU,WAAWF,CAAQ,sBACrBxG,IAAA,EAAS,YAAY,MAAMvR,EAAM,WAAW,WAAW,GAAG,IAGlEiY,EAAU,eAAeF,CAAQ,IAE7B,gBAAArX;AAAA,IAACgV;AAAA,IAAA;AAAA,MACG,SAAQjU,IAAAzB,EAAM,SAAN,gBAAAyB,EAAY;AAAA,MACpB,kBAAiByW,KAAAvW,IAAA3B,EAAM,SAAN,gBAAA2B,EAAY,kBAAZ,gBAAAuW,EAA2B;AAAA,MAC5C,YAAWC,IAAAnY,EAAM,SAAN,gBAAAmY,EAAY;AAAA,MACvB,kBAAkBnY,EAAM;AAAA,MACxB,eAAeA,EAAM;AAAA,MACrB,cAAcA,EAAM;AAAA,MACpB,cAAc,MAAMA,EAAM,WAAW,OAAO;AAAA,MAC5C,gBAAgB,MAAMA,EAAM,WAAW,YAAY;AAAA,MACnD,OAAOA,EAAM;AAAA,IAAA;AAAA,EAAA,IAKrBiY,EAAU,gBAAgBF,CAAQ,IAE9B,gBAAArX;AAAA,IAACoW;AAAA,IAAA;AAAA,MACG,qBAAqB9W,EAAM;AAAA,MAC3B,YAAYA,EAAM;AAAA,MAClB,OAAOA,EAAM;AAAA,IAAA;AAAA,EAAA,IAKrBiY,EAAU,eAAeF,CAAQ,sBAAWrD,IAAA,EAAa,IACzDuD,EAAU,cAAcF,CAAQ,sBAAW9C,IAAA,EAAY,IACvDgD,EAAU,cAAcF,CAAQ,IAAU,gBAAArX,EAAC4U,IAAA,EAAkB,UAAUtV,EAAM,YAAY,YAAY,cAAcA,EAAM,gBAAgB,wBAAwB,IACjKiY,EAAU,YAAYF,CAAQ,IAAU,gBAAArX,EAAC+U,IAAA,EAAU,UAAUzV,EAAM,YAAY,YAAY,cAAcA,EAAM,gBAAgB,sBAAsB,IAElJ;AACX;","x_google_ignoreList":[0,1,2,3,4,10,11,17,18]} \ No newline at end of file +{"version":3,"file":"pm-ecommerce.es.js","sources":["../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs","../node_modules/clsx/dist/clsx.mjs","../node_modules/class-variance-authority/dist/index.mjs","../src/lib/utils.ts","../src/components/ui/button.tsx","../src/cart/useCartStore.ts","../src/cart/CartItem.tsx","../src/components/ui/card.tsx","../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-separator/dist/index.mjs","../src/components/ui/separator.tsx","../src/policies/PolicyLinks.tsx","../src/cart/CartPage.tsx","../src/checkout/OrderSummary.tsx","../src/components/ui/input.tsx","../node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-label/dist/index.mjs","../src/components/ui/label.tsx","../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@stripe/react-stripe-js/dist/react-stripe.esm.mjs","../src/checkout/StripePaymentForm.tsx","../src/checkout/CheckoutPage.tsx","../src/policies/PolicyPage.tsx","../src/policies/ShippingPage.tsx","../src/policies/ReturnsPage.tsx","../src/policies/PrivacyPolicyPage.tsx","../src/policies/TermsPage.tsx","../node_modules/@stripe/stripe-js/dist/index.mjs","../src/checkout/CheckoutFlow.tsx","../src/components/ui/badge.tsx","../src/purchases/PurchasesList.tsx","../src/EcommerceBundle.tsx"],"sourcesContent":["// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nvar use = React[\" use \".trim().toString()];\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;ttypeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","import * as React from \"react\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\r\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\r\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\r\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-10 px-4 py-2\",\r\n sm: \"h-9 rounded-md px-2\",\r\n lg: \"h-11 rounded-md px-4\",\r\n icon: \"h-10 w-10\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n },\r\n);\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes,\r\n VariantProps {\r\n asChild?: boolean;\r\n}\r\n\r\nconst Button = React.forwardRef(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n return ;\r\n },\r\n);\r\nButton.displayName = \"Button\";\r\n\r\nexport { Button, buttonVariants };\r\n","import { create } from \"zustand\";\r\nimport { persist } from \"zustand/middleware\";\r\nimport type { CartItem, CartState } from \"./types\";\r\n\r\n/** Recompute derived totals from items array. */\r\nfunction computeTotals(items: CartItem[]) {\r\n return {\r\n subtotal: items.reduce((sum, i) => sum + i.price * i.quantity, 0),\r\n itemCount: items.reduce((sum, i) => sum + i.quantity, 0),\r\n };\r\n}\r\n\r\n/**\r\n * Global cart store — persisted to localStorage.\r\n *\r\n * Usage:\r\n * ```tsx\r\n * const { items, addItem, subtotal } = useCartStore();\r\n * ```\r\n */\r\nexport const useCartStore = create()(\r\n persist(\r\n (set) => ({\r\n items: [],\r\n subtotal: 0,\r\n itemCount: 0,\r\n\r\n addItem: (incoming) =>\r\n set((state) => {\r\n const existing = state.items.find((i) => i.id === incoming.id);\r\n let items: CartItem[];\r\n if (existing) {\r\n items = state.items.map((i) =>\r\n i.id === incoming.id\r\n ? { ...i, quantity: i.quantity + (incoming.quantity ?? 1) }\r\n : i,\r\n );\r\n } else {\r\n items = [...state.items, { ...incoming, quantity: incoming.quantity ?? 1 }];\r\n }\r\n return { items, ...computeTotals(items) };\r\n }),\r\n\r\n removeItem: (id) =>\r\n set((state) => {\r\n const items = state.items.filter((i) => i.id !== id);\r\n return { items, ...computeTotals(items) };\r\n }),\r\n\r\n updateQuantity: (id, quantity) =>\r\n set((state) => {\r\n if (quantity <= 0) {\r\n const items = state.items.filter((i) => i.id !== id);\r\n return { items, ...computeTotals(items) };\r\n }\r\n const items = state.items.map((i) =>\r\n i.id === id ? { ...i, quantity } : i,\r\n );\r\n return { items, ...computeTotals(items) };\r\n }),\r\n\r\n clearCart: () => set({ items: [], subtotal: 0, itemCount: 0 }),\r\n }),\r\n {\r\n name: \"pm-ecommerce-cart\",\r\n },\r\n ),\r\n);\r\n","import React from \"react\";\r\nimport { Minus, Plus, Trash2 } from \"lucide-react\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useCartStore } from \"./useCartStore\";\r\nimport type { CartItem as CartItemType } from \"./types\";\r\n\r\nexport interface CartItemProps {\r\n item: CartItemType;\r\n /** Optional extra class names for the root element. */\r\n className?: string;\r\n}\r\n\r\n/** A single cart row — thumbnail, title, quantity stepper, line total, remove. */\r\nexport function CartItemRow({ item, className }: CartItemProps) {\r\n const updateQuantity = useCartStore((s) => s.updateQuantity);\r\n const removeItem = useCartStore((s) => s.removeItem);\r\n\r\n const lineTotal = item.price * item.quantity;\r\n\r\n return (\r\n \r\n {/* Thumbnail */}\r\n {item.image ? (\r\n \r\n ) : (\r\n
\r\n No img\r\n
\r\n )}\r\n\r\n {/* Info */}\r\n
\r\n {item.title}\r\n {item.variant && (\r\n {item.variant}\r\n )}\r\n \r\n ${item.price.toFixed(2)} each\r\n \r\n {item.vendorSlug && (\r\n \r\n Sold by {item.vendorSlug}\r\n \r\n )}\r\n
\r\n\r\n {/* Quantity stepper */}\r\n
\r\n updateQuantity(item.id, item.quantity - 1)}\r\n aria-label=\"Decrease quantity\"\r\n >\r\n \r\n \r\n \r\n {item.quantity}\r\n \r\n updateQuantity(item.id, item.quantity + 1)}\r\n aria-label=\"Increase quantity\"\r\n >\r\n \r\n \r\n
\r\n\r\n {/* Line total */}\r\n \r\n ${lineTotal.toFixed(2)}\r\n \r\n\r\n {/* Remove */}\r\n removeItem(item.id)}\r\n aria-label={`Remove ${item.title}`}\r\n >\r\n \r\n \r\n

\r\n );\r\n}\r\n","import * as React from \"react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst Card = React.forwardRef>(({ className, ...props }, ref) => (\r\n
\r\n));\r\nCard.displayName = \"Card\";\r\n\r\nconst CardHeader = React.forwardRef>(\r\n ({ className, ...props }, ref) => (\r\n
\r\n ),\r\n);\r\nCardHeader.displayName = \"CardHeader\";\r\n\r\nconst CardTitle = React.forwardRef>(\r\n ({ className, ...props }, ref) => (\r\n

\r\n ),\r\n);\r\nCardTitle.displayName = \"CardTitle\";\r\n\r\nconst CardDescription = React.forwardRef>(\r\n ({ className, ...props }, ref) => (\r\n

\r\n ),\r\n);\r\nCardDescription.displayName = \"CardDescription\";\r\n\r\nconst CardContent = React.forwardRef>(\r\n ({ className, ...props }, ref) =>

,\r\n);\r\nCardContent.displayName = \"CardContent\";\r\n\r\nconst CardFooter = React.forwardRef>(\r\n ({ className, ...props }, ref) => (\r\n
\r\n ),\r\n);\r\nCardFooter.displayName = \"CardFooter\";\r\n\r\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\r\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (\r\n \r\n));\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\r\n\r\nexport { Separator };\r\n","import React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nexport interface PolicyLink {\r\n label: string;\r\n href: string;\r\n}\r\n\r\nconst defaultLinks: PolicyLink[] = [\r\n { label: \"Returns & Refunds\", href: \"/returns\" },\r\n { label: \"Shipping\", href: \"/shipping\" },\r\n { label: \"Privacy Policy\", href: \"/privacy\" },\r\n { label: \"Terms of Service\", href: \"/terms\" },\r\n];\r\n\r\nexport interface PolicyLinksProps {\r\n links?: PolicyLink[];\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Small footer row of policy links for cart / checkout pages.\r\n */\r\nexport function PolicyLinks({ links = defaultLinks, className }: PolicyLinksProps) {\r\n return (\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { ShoppingCart, Trash2 } from \"lucide-react\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Card, CardContent, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useCartStore } from \"./useCartStore\";\r\nimport { CartItemRow } from \"./CartItem\";\r\nimport { PolicyLinks } from \"@/policies/PolicyLinks\";\r\n\r\nexport interface CartPageProps {\r\n /** Called when user clicks \"Proceed to Checkout\". */\r\n onCheckout?: () => void;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Full cart page — shows items, subtotal, and a checkout CTA.\r\n * Renders an empty-state when the cart has no items.\r\n */\r\nexport function CartPage({ onCheckout, className }: CartPageProps) {\r\n const items = useCartStore((s) => s.items);\r\n const subtotal = useCartStore((s) => s.subtotal);\r\n const itemCount = useCartStore((s) => s.itemCount);\r\n const clearCart = useCartStore((s) => s.clearCart);\r\n\r\n /* ---------- Empty state ---------- */\r\n if (items.length === 0) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Your cart is empty

\r\n

\r\n Add some products to get started.\r\n

\r\n
\r\n
\r\n );\r\n }\r\n\r\n /* ---------- Cart with items ---------- */\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Cart\r\n \r\n ({itemCount} {itemCount === 1 ? \"item\" : \"items\"})\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n {items.map((item) => (\r\n \r\n ))}\r\n \r\n\r\n \r\n\r\n \r\n
\r\n Subtotal\r\n ${subtotal.toFixed(2)}\r\n
\r\n

\r\n Shipping and taxes calculated at checkout.\r\n

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useCartStore } from \"@/cart/useCartStore\";\r\n\r\nexport interface OrderSummaryProps {\r\n /** Tax amount (pass 0 or leave undefined to show \"Calculated at next step\"). */\r\n tax?: number;\r\n /** Shipping cost (pass 0 or leave undefined to show \"Free\" / \"TBD\"). */\r\n shipping?: number;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Read-only order breakdown: line items, subtotal, tax, shipping, total.\r\n */\r\nexport function OrderSummary({ tax, shipping, className }: OrderSummaryProps) {\r\n const items = useCartStore((s) => s.items);\r\n const subtotal = useCartStore((s) => s.subtotal);\r\n\r\n const taxAmount = tax ?? 0;\r\n const shippingAmount = shipping ?? 0;\r\n const total = subtotal + taxAmount + shippingAmount;\r\n\r\n return (\r\n \r\n \r\n Order Summary\r\n \r\n\r\n \r\n {/* Line items */}\r\n
    \r\n {items.map((item) => (\r\n
  • \r\n
    \r\n \r\n {item.title} × {item.quantity}\r\n \r\n {item.vendorSlug && (\r\n \r\n via {item.vendorSlug}\r\n \r\n )}\r\n
    \r\n \r\n ${(item.price * item.quantity).toFixed(2)}\r\n \r\n
  • \r\n ))}\r\n
\r\n\r\n \r\n\r\n {/* Subtotal */}\r\n
\r\n Subtotal\r\n ${subtotal.toFixed(2)}\r\n
\r\n\r\n {/* Tax */}\r\n
\r\n Tax\r\n \r\n {tax !== undefined ? `$${taxAmount.toFixed(2)}` : \"Calculated at next step\"}\r\n \r\n
\r\n\r\n {/* Shipping */}\r\n
\r\n Shipping\r\n \r\n {shipping !== undefined\r\n ? shippingAmount === 0\r\n ? \"Free\"\r\n : `$${shippingAmount.toFixed(2)}`\r\n : \"TBD\"}\r\n \r\n
\r\n\r\n \r\n\r\n {/* Total */}\r\n
\r\n Total\r\n ${total.toFixed(2)}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import * as React from \"react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst Input = React.forwardRef>(\r\n ({ className, type, ...props }, ref) => {\r\n return (\r\n \r\n );\r\n },\r\n);\r\nInput.displayName = \"Input\";\r\n\r\nexport { Input };\r\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst labelVariants = cva(\r\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\r\n);\r\n\r\nconst Label = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef & VariantProps\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nLabel.displayName = LabelPrimitive.Root.displayName;\r\n\r\nexport { Label };\r\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n};\n\nvar usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\nvar isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n};\nvar isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n}; // We are using types to enforce the `stripe` prop in this lib,\n// but in an untyped integration `stripe` could be anything, so we need\n// to do some sanity validation to prevent type errors.\n\nvar isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n};\n\nvar PLAIN_OBJECT_STR = '[object Object]';\nvar isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n};\n\nvar extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n};\n\nvar INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n// integration `stripe` could be anything, so we need to do some sanity\n// validation to prevent type errors.\n\nvar validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$1;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n};\n\nvar parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$1;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n};\n\nvar registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"5.6.0\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"5.6.0\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n};\n\nvar ElementsContext = /*#__PURE__*/React.createContext(null);\nElementsContext.displayName = 'ElementsContext';\nvar parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n};\n/**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://docs.stripe.com/sdks/stripejs-react?ui=elements#elements-provider\n */\n\nvar Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n};\nElements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n};\nvar useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n};\n/**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\nvar useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n};\n/**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\nvar ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts '); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n};\nElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n};\n\nvar CheckoutContext = /*#__PURE__*/React.createContext(null);\nCheckoutContext.displayName = 'CheckoutContext';\n({\n stripe: PropTypes.any,\n options: PropTypes.shape({\n clientSecret: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Promise)]).isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n});\nvar useElementsOrCheckoutContextWithUseCase = function useElementsOrCheckoutContextWithUseCase(useCaseString) {\n var checkout = React.useContext(CheckoutContext);\n var elements = React.useContext(ElementsContext);\n\n if (checkout) {\n if (elements) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both and providers.\"));\n } else {\n return checkout;\n }\n } else {\n return parseElementsContext(elements, useCaseString);\n }\n};\n\nvar _excluded = [\"mode\"];\n\nvar capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nvar createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange,\n onSavedPaymentMethodRemove = _ref.onSavedPaymentMethodRemove,\n onSavedPaymentMethodUpdate = _ref.onSavedPaymentMethodUpdate;\n var ctx = useElementsOrCheckoutContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var checkoutState = 'checkoutState' in ctx ? ctx.checkoutState : null;\n var checkoutSdk = (checkoutState === null || checkoutState === void 0 ? void 0 : checkoutState.type) === 'success' || (checkoutState === null || checkoutState === void 0 ? void 0 : checkoutState.type) === 'loading' ? checkoutState.sdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'savedpaymentmethodremove', onSavedPaymentMethodRemove);\n useAttachEvent(element, 'savedpaymentmethodupdate', onSavedPaymentMethodUpdate);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || checkoutSdk)) {\n var newElement = null;\n\n if (checkoutSdk) {\n switch (type) {\n case 'paymentForm':\n newElement = checkoutSdk.createPaymentFormElement(options);\n break;\n\n case 'payment':\n newElement = checkoutSdk.createPaymentElement(options);\n break;\n\n case 'address':\n if ('mode' in options) {\n var mode = options.mode,\n restOptions = _objectWithoutProperties(options, _excluded);\n\n if (mode === 'shipping') {\n newElement = checkoutSdk.createShippingAddressElement(restOptions);\n } else if (mode === 'billing') {\n newElement = checkoutSdk.createBillingAddressElement(restOptions);\n } else {\n throw new Error(\"Invalid options.mode. mode must be 'billing' or 'shipping'.\");\n }\n } else {\n throw new Error(\"You must supply options.mode. mode must be 'billing' or 'shipping'.\");\n }\n\n break;\n\n case 'expressCheckout':\n newElement = checkoutSdk.createExpressCheckoutElement(options);\n break;\n\n case 'currencySelector':\n newElement = checkoutSdk.createCurrencySelectorElement();\n break;\n\n case 'taxId':\n newElement = checkoutSdk.createTaxIdElement(options);\n break;\n\n default:\n throw new Error(\"Invalid Element type \".concat(displayName, \". You must use either the , , , or .\"));\n }\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, checkoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates && 'update' in elementRef.current) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCheckoutContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n onSavedPaymentMethodRemove: PropTypes.func,\n onSavedPaymentMethodUpdate: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n};\n\nvar isServer = typeof window === 'undefined';\n\nvar EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\nEmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\nvar useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error(' must be used within ');\n }\n\n return ctx;\n};\nvar INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\nvar EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n\n if (prevOptions.onShippingDetailsChange != null && options.onShippingDetailsChange !== prevOptions.onShippingDetailsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it.');\n }\n\n if (prevOptions.onLineItemsChange != null && options.onLineItemsChange !== prevOptions.onLineItemsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n};\n\nvar EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n}; // Only render the wrapper in a server environment.\n\n\nvar EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n};\n\nvar EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\nvar FinancialAccountDisclosure = function FinancialAccountDisclosure(_ref) {\n var rawStripeProp = _ref.stripe,\n onLoad = _ref.onLoad,\n onError = _ref.onError,\n options = _ref.options;\n var businessName = options === null || options === void 0 ? void 0 : options.businessName;\n var learnMoreLink = options === null || options === void 0 ? void 0 : options.learnMoreLink;\n var containerRef = React.useRef(null);\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]);\n\n var _React$useState = React.useState(parsed.tag === 'sync' ? parsed.stripe : null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stripeState = _React$useState2[0],\n setStripeState = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async') {\n parsed.stripePromise.then(function (stripePromise) {\n if (stripePromise && isMounted) {\n setStripeState(stripePromise);\n }\n });\n } else if (parsed.tag === 'sync') {\n setStripeState(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on FinancialAccountDisclosure: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(stripeState);\n }, [stripeState]);\n React.useEffect(function () {\n var createDisclosure = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var _yield$stripeState$cr, disclosureContent, error, container;\n\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(!stripeState || !containerRef.current)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n _context.next = 4;\n return stripeState.createFinancialAccountDisclosure({\n businessName: businessName,\n learnMoreLink: learnMoreLink\n });\n\n case 4:\n _yield$stripeState$cr = _context.sent;\n disclosureContent = _yield$stripeState$cr.htmlElement;\n error = _yield$stripeState$cr.error;\n\n if (error && onError) {\n onError(error);\n } else if (disclosureContent) {\n container = containerRef.current;\n container.innerHTML = '';\n container.appendChild(disclosureContent);\n\n if (onLoad) {\n onLoad();\n }\n }\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function createDisclosure() {\n return _ref2.apply(this, arguments);\n };\n }();\n\n createDisclosure();\n }, [stripeState, businessName, learnMoreLink, onLoad, onError]);\n return /*#__PURE__*/React.createElement('div', {\n ref: containerRef\n });\n};\n\nvar IssuingDisclosure = function IssuingDisclosure(_ref) {\n var rawStripeProp = _ref.stripe,\n onLoad = _ref.onLoad,\n onError = _ref.onError,\n options = _ref.options;\n var issuingProgramID = options === null || options === void 0 ? void 0 : options.issuingProgramID;\n var publicCardProgramName = options === null || options === void 0 ? void 0 : options.publicCardProgramName;\n var learnMoreLink = options === null || options === void 0 ? void 0 : options.learnMoreLink;\n var containerRef = React.useRef(null);\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]);\n\n var _React$useState = React.useState(parsed.tag === 'sync' ? parsed.stripe : null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stripeState = _React$useState2[0],\n setStripeState = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async') {\n parsed.stripePromise.then(function (stripePromise) {\n if (stripePromise && isMounted) {\n setStripeState(stripePromise);\n }\n });\n } else if (parsed.tag === 'sync') {\n setStripeState(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on IssuingDisclosure: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(stripeState);\n }, [stripeState]);\n React.useEffect(function () {\n var createDisclosure = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var _yield$stripeState$cr, disclosureContent, error, container;\n\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(!stripeState || !containerRef.current)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n _context.next = 4;\n return stripeState.createIssuingDisclosure({\n issuingProgramID: issuingProgramID,\n publicCardProgramName: publicCardProgramName,\n learnMoreLink: learnMoreLink\n });\n\n case 4:\n _yield$stripeState$cr = _context.sent;\n disclosureContent = _yield$stripeState$cr.htmlElement;\n error = _yield$stripeState$cr.error;\n\n if (error && onError) {\n onError(error);\n } else if (disclosureContent) {\n container = containerRef.current;\n container.innerHTML = '';\n container.appendChild(disclosureContent);\n\n if (onLoad) {\n onLoad();\n }\n }\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function createDisclosure() {\n return _ref2.apply(this, arguments);\n };\n }();\n\n createDisclosure();\n }, [stripeState, issuingProgramID, publicCardProgramName, learnMoreLink, onLoad, onError]);\n return /*#__PURE__*/React.createElement('div', {\n ref: containerRef\n });\n};\n\n/**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\nvar useStripe = function useStripe() {\n var _useElementsOrCheckou = useElementsOrCheckoutContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCheckou.stripe;\n\n return stripe;\n};\n\n/**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardElement = createElementComponent('card', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardNumberElement = createElementComponent('cardNumber', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardExpiryElement = createElementComponent('cardExpiry', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardCvcElement = createElementComponent('cardCvc', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar IbanElement = createElementComponent('iban', isServer);\nvar PaymentElement = createElementComponent('payment', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar AddressElement = createElementComponent('address', isServer);\n/**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n/**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n */\n\nvar TaxIdElement = createElementComponent('taxId', isServer);\n\nexport { AddressElement, AuBankAccountElement, CardCvcElement, CardElement, CardExpiryElement, CardNumberElement, Elements, ElementsConsumer, EmbeddedCheckout, EmbeddedCheckoutProvider, ExpressCheckoutElement, FinancialAccountDisclosure, IbanElement, IssuingDisclosure, LinkAuthenticationElement, PaymentElement, PaymentMethodMessagingElement, PaymentRequestButtonElement, ShippingAddressElement, TaxIdElement, useElements, useStripe };\n","import React, { useState } from \"react\";\r\nimport {\r\n PaymentElement,\r\n LinkAuthenticationElement,\r\n AddressElement,\r\n useStripe,\r\n useElements,\r\n} from \"@stripe/react-stripe-js\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Loader2 } from \"lucide-react\";\r\n\r\nexport interface StripePaymentFormProps {\r\n /** Called after Stripe confirms payment successfully. */\r\n onPaymentSuccess?: () => void;\r\n /** Return URL after redirect-based payment methods (iDEAL, etc.). */\r\n returnUrl?: string;\r\n /** Pre-fill the email field. */\r\n defaultEmail?: string;\r\n /** Pre-fill the name field in billing details. */\r\n defaultName?: string;\r\n}\r\n\r\n/*\r\n\r\n*/\r\n\r\n/**\r\n * Embedded Stripe payment form using PaymentElement.\r\n * Must be rendered inside a Stripe `` provider.\r\n */\r\nexport function StripePaymentForm({\r\n onPaymentSuccess,\r\n returnUrl,\r\n defaultEmail,\r\n defaultName,\r\n}: StripePaymentFormProps) {\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n const [message, setMessage] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const handleSubmit = async () => {\r\n if (!stripe || !elements) return;\r\n\r\n setIsLoading(true);\r\n setMessage(null);\r\n\r\n const { error } = await stripe.confirmPayment({\r\n elements,\r\n confirmParams: {\r\n return_url: returnUrl ?? `${window.location.origin}/completion`,\r\n },\r\n redirect: \"if_required\",\r\n });\r\n\r\n if (error) {\r\n if (error.type === \"card_error\" || error.type === \"validation_error\") {\r\n setMessage(error.message ?? \"Payment failed.\");\r\n } else {\r\n setMessage(\"An unexpected error occurred.\");\r\n }\r\n } else {\r\n // Payment succeeded without redirect\r\n onPaymentSuccess?.();\r\n }\r\n\r\n setIsLoading(false);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n \r\n {isLoading ? (\r\n <>\r\n \r\n Processing…\r\n \r\n ) : (\r\n \"Pay now\"\r\n )}\r\n \r\n\r\n {message && (\r\n

{message}

\r\n )}\r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { CreditCard, Bitcoin, ShoppingBag, MapPin, Save } from \"lucide-react\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Input } from \"@/components/ui/input\";\r\nimport { Label } from \"@/components/ui/label\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useCartStore } from \"@/cart/useCartStore\";\r\nimport { OrderSummary } from \"./OrderSummary\";\r\nimport { PolicyLinks } from \"@/policies/PolicyLinks\";\r\nimport { StripePaymentForm } from \"./StripePaymentForm\";\r\nimport { Elements } from \"@stripe/react-stripe-js\";\r\nimport type { Stripe as StripeJS } from \"@stripe/stripe-js\";\r\n\r\n/** Shipping address fields collected at checkout. */\r\nexport interface ShippingAddress {\r\n fullName: string;\r\n email: string;\r\n address: string;\r\n city: string;\r\n zip: string;\r\n country: string;\r\n}\r\n\r\n/** A saved address with extra metadata (matches pm-pics SavedShippingAddress). */\r\nexport interface SavedAddress extends ShippingAddress {\r\n id: string;\r\n label?: string;\r\n isDefault?: boolean;\r\n phone?: string;\r\n note?: string;\r\n}\r\n\r\nexport type PaymentMethod = \"shopify\" | \"crypto\" | \"stripe\";\r\n\r\nexport interface CheckoutPageProps {\r\n /** Called when user submits the checkout form. */\r\n onPlaceOrder?: (data: {\r\n shipping: ShippingAddress;\r\n paymentMethod: PaymentMethod;\r\n }) => void;\r\n /** Called when user wants to save the entered address to their profile. */\r\n onSaveAddress?: (address: ShippingAddress) => void;\r\n /** Called when user clicks \"Back to Cart\". */\r\n onBackToCart?: () => void;\r\n /** Pre-fill shipping form fields (e.g. from user profile). */\r\n initialShipping?: Partial;\r\n /** Saved shipping addresses — enables address selector. */\r\n savedAddresses?: SavedAddress[];\r\n /** Pre-filled tax amount, if known. */\r\n tax?: number;\r\n /** Pre-filled shipping cost. */\r\n shipping?: number;\r\n /** Stripe.js promise (from loadStripe). */\r\n stripePromise?: Promise | null;\r\n /** Stripe PaymentIntent client secret. */\r\n stripeClientSecret?: string | null;\r\n /** Called after Stripe payment succeeds inline (no redirect). */\r\n onStripePaymentSuccess?: () => void;\r\n /** Stripe return URL for redirect-based payment methods. */\r\n stripeReturnUrl?: string;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Checkout page — two-column layout with shipping form + payment selector on\r\n * the left and an OrderSummary on the right.\r\n */\r\nexport function CheckoutPage({\r\n onPlaceOrder,\r\n onSaveAddress,\r\n onBackToCart,\r\n initialShipping,\r\n savedAddresses,\r\n tax,\r\n shipping,\r\n stripePromise,\r\n stripeClientSecret,\r\n onStripePaymentSuccess,\r\n stripeReturnUrl,\r\n className,\r\n}: CheckoutPageProps) {\r\n const itemCount = useCartStore((s) => s.itemCount);\r\n\r\n const [paymentMethod, setPaymentMethod] = useState(\"shopify\");\r\n const [saveAddress, setSaveAddress] = useState(false);\r\n\r\n // Find default address or first address from savedAddresses\r\n const defaultAddress = savedAddresses?.find((a) => a.isDefault) ?? savedAddresses?.[0];\r\n\r\n // Determine initial form values: saved default > initialShipping > empty\r\n const resolveInitial = (): ShippingAddress => ({\r\n fullName: defaultAddress?.fullName ?? initialShipping?.fullName ?? \"\",\r\n email: defaultAddress?.email ?? initialShipping?.email ?? \"\",\r\n address: defaultAddress?.address ?? initialShipping?.address ?? \"\",\r\n city: defaultAddress?.city ?? initialShipping?.city ?? \"\",\r\n zip: defaultAddress?.zip ?? initialShipping?.zip ?? \"\",\r\n country: defaultAddress?.country ?? initialShipping?.country ?? \"\",\r\n });\r\n\r\n const [form, setForm] = useState(resolveInitial);\r\n const [selectedAddressId, setSelectedAddressId] = useState(\r\n defaultAddress?.id ?? \"custom\"\r\n );\r\n\r\n // Sync form when a saved address is selected\r\n const selectAddress = (id: string) => {\r\n setSelectedAddressId(id);\r\n if (id === \"custom\") return;\r\n const addr = savedAddresses?.find((a) => a.id === id);\r\n if (addr) {\r\n setForm({\r\n fullName: addr.fullName,\r\n email: addr.email,\r\n address: addr.address,\r\n city: addr.city,\r\n zip: addr.zip,\r\n country: addr.country,\r\n });\r\n }\r\n };\r\n\r\n const field = (key: keyof ShippingAddress, value: string) =>\r\n setForm((prev) => ({ ...prev, [key]: value }));\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (saveAddress && selectedAddressId === \"custom\" && onSaveAddress) {\r\n onSaveAddress(form);\r\n }\r\n onPlaceOrder?.({ shipping: form, paymentMethod });\r\n };\r\n\r\n /* ---- Empty cart guard ---- */\r\n if (itemCount === 0) {\r\n return (\r\n
\r\n \r\n

Your cart is empty — nothing to check out.

\r\n {onBackToCart && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n {/* ---- Left: Shipping + Payment ---- */}\r\n
\r\n {/* Shipping */}\r\n \r\n \r\n Shipping Information\r\n \r\n \r\n {/* Saved Address Selector */}\r\n {savedAddresses && savedAddresses.length > 0 && (\r\n
\r\n \r\n
\r\n {savedAddresses.map((addr) => (\r\n selectAddress(addr.id)}\r\n className={cn(\r\n \"flex w-full items-start gap-3 rounded-lg border p-3 text-left transition-colors text-sm\",\r\n selectedAddressId === addr.id\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n \r\n
\r\n

\r\n {addr.label || addr.fullName}\r\n {addr.isDefault && (\r\n (Default)\r\n )}\r\n

\r\n

\r\n {addr.address}, {addr.city}, {addr.country}\r\n

\r\n
\r\n \r\n ))}\r\n selectAddress(\"custom\")}\r\n className={cn(\r\n \"flex w-full items-center gap-3 rounded-lg border p-3 text-left transition-colors text-sm\",\r\n selectedAddressId === \"custom\"\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n ✏️\r\n Enter a new address\r\n \r\n
\r\n
\r\n )}\r\n\r\n {/* Form Fields */}\r\n
\r\n
\r\n \r\n field(\"fullName\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"email\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"address\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"city\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"zip\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n \r\n field(\"country\", e.target.value)}\r\n />\r\n
\r\n\r\n {selectedAddressId === \"custom\" && onSaveAddress && (\r\n
\r\n setSaveAddress(e.target.checked)}\r\n className=\"h-4 w-4 rounded border-gray-300 accent-primary\"\r\n />\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n\r\n {/* Payment Method */}\r\n \r\n \r\n Payment Method\r\n \r\n \r\n setPaymentMethod(\"shopify\")}\r\n className={cn(\r\n \"flex w-full items-center gap-3 rounded-lg border p-4 text-left transition-colors\",\r\n paymentMethod === \"shopify\"\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n \r\n
\r\n

Shopify Checkout

\r\n

\r\n Credit / debit card via Shopify\r\n

\r\n
\r\n \r\n\r\n setPaymentMethod(\"crypto\")}\r\n className={cn(\r\n \"flex w-full items-center gap-3 rounded-lg border p-4 text-left transition-colors\",\r\n paymentMethod === \"crypto\"\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n \r\n
\r\n

Crypto Payment

\r\n

\r\n Bitcoin, Ethereum, and more\r\n

\r\n
\r\n \r\n\r\n setPaymentMethod(\"stripe\")}\r\n className={cn(\r\n \"flex w-full items-center gap-3 rounded-lg border p-4 text-left transition-colors\",\r\n paymentMethod === \"stripe\"\r\n ? \"border-primary bg-primary/5\"\r\n : \"border-border hover:bg-accent/5\",\r\n )}\r\n >\r\n \r\n
\r\n

Stripe

\r\n

\r\n Credit / debit card, Apple Pay, Google Pay\r\n

\r\n
\r\n \r\n\r\n {/* Inline Stripe Payment Form */}\r\n {paymentMethod === \"stripe\" && stripePromise && stripeClientSecret && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n\r\n {/* ---- Right: Summary + CTA ---- */}\r\n
\r\n \r\n\r\n \r\n\r\n {paymentMethod !== \"stripe\" && (\r\n \r\n )}\r\n\r\n {onBackToCart && (\r\n \r\n ← Back to Cart\r\n \r\n )}\r\n\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nexport interface PolicyPageProps {\r\n /** Page title override. */\r\n title?: string;\r\n /** Rich content to render inside the page body (JSX). */\r\n children?: React.ReactNode;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/**\r\n * Generic policy/info page shell — centered card with title + prose body.\r\n * Used by ShippingPage, ReturnsPage, PrivacyPolicyPage, TermsPage.\r\n */\r\nexport function PolicyPage({ title, children, className }: PolicyPageProps) {\r\n return (\r\n
\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Truck, Clock, Globe, DollarSign } from \"lucide-react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { PolicyPage } from \"./PolicyPage\";\r\n\r\nexport interface ShippingRate {\r\n region: string;\r\n method: string;\r\n estimate: string;\r\n price: string;\r\n}\r\n\r\nexport interface ShippingPageProps {\r\n /** Custom shipping rates to display. Falls back to placeholder content. */\r\n rates?: ShippingRate[];\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\nconst defaultRates: ShippingRate[] = [\r\n { region: \"Domestic\", method: \"Standard\", estimate: \"5–7 business days\", price: \"$4.99\" },\r\n { region: \"Domestic\", method: \"Express\", estimate: \"2–3 business days\", price: \"$12.99\" },\r\n { region: \"International\", method: \"Standard\", estimate: \"10–20 business days\", price: \"$14.99\" },\r\n { region: \"International\", method: \"Express\", estimate: \"5–8 business days\", price: \"$29.99\" },\r\n];\r\n\r\n/** Public page with shipping info and rates. */\r\nexport function ShippingPage({ rates = defaultRates, className }: ShippingPageProps) {\r\n return (\r\n \r\n {/* Highlights */}\r\n
\r\n {[\r\n { icon: Truck, label: \"Free shipping on orders over $75\" },\r\n { icon: Clock, label: \"Same-day dispatch on orders before 2 PM\" },\r\n { icon: Globe, label: \"We ship worldwide\" },\r\n { icon: DollarSign, label: \"No hidden fees at checkout\" },\r\n ].map(({ icon: Icon, label }) => (\r\n \r\n \r\n {label}\r\n
\r\n ))}\r\n
\r\n\r\n {/* Rates table */}\r\n

Shipping Rates

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rates.map((r, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
RegionMethodEstimatePrice
{r.region}{r.method}{r.estimate}{r.price}
\r\n
\r\n\r\n

Processing Time

\r\n

\r\n Orders placed before 2:00 PM (local time) on business days are typically processed and\r\n shipped the same day. Orders placed after this cut-off or on weekends/holidays will be\r\n processed the next business day.\r\n

\r\n\r\n

Tracking

\r\n

\r\n Once your order ships, you will receive a confirmation email with a tracking number.\r\n You can use this number to track your package on the carrier's website.\r\n

\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { RotateCcw, CheckCircle, XCircle, Clock } from \"lucide-react\";\r\nimport { PolicyPage } from \"./PolicyPage\";\r\n\r\nexport interface ReturnsPageProps {\r\n /** Number of days for return window. */\r\n returnWindowDays?: number;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/** Public page with refund / return policy. */\r\nexport function ReturnsPage({ returnWindowDays = 30, className }: ReturnsPageProps) {\r\n return (\r\n \r\n {/* Quick summary */}\r\n
\r\n {[\r\n { icon: Clock, label: `${returnWindowDays}-day return window` },\r\n { icon: RotateCcw, label: \"Free returns on defective items\" },\r\n { icon: CheckCircle, label: \"Full refund to original payment\" },\r\n { icon: XCircle, label: \"No restocking fees\" },\r\n ].map(({ icon: Icon, label }) => (\r\n \r\n \r\n {label}\r\n
\r\n ))}\r\n
\r\n\r\n

Eligibility

\r\n

\r\n Items must be returned within {returnWindowDays} days of delivery in their\r\n original, unused condition with all tags and packaging intact.\r\n

\r\n\r\n

How to Initiate a Return

\r\n
    \r\n
  1. Contact our support team with your order number.
  2. \r\n
  3. Receive a prepaid return label (for defective items) or return instructions.
  4. \r\n
  5. Ship the item back using the provided label or your preferred carrier.
  6. \r\n
\r\n\r\n

Refund Processing

\r\n

\r\n Once we receive and inspect the returned item, your refund will be processed within\r\n 5–10 business days to your original payment method. You will receive an email\r\n confirmation when the refund has been issued.\r\n

\r\n\r\n

Exceptions

\r\n

\r\n The following items are not eligible for return: gift cards, downloadable products,\r\n and items marked as final sale. Perishable goods cannot be returned unless they arrive\r\n damaged or defective.\r\n

\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { PolicyPage } from \"./PolicyPage\";\r\n\r\nexport interface PrivacyPolicyPageProps {\r\n /** Business / site name used in the policy text. */\r\n siteName?: string;\r\n /** Contact email for privacy inquiries. */\r\n contactEmail?: string;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/** Public page with privacy / cookie information. */\r\nexport function PrivacyPolicyPage({\r\n siteName = \"Our Store\",\r\n contactEmail = \"privacy@example.com\",\r\n className,\r\n}: PrivacyPolicyPageProps) {\r\n return (\r\n \r\n

\r\n At {siteName}, we are committed to protecting your personal information\r\n and your right to privacy. This policy explains what information we collect, how we use\r\n it, and what rights you have in relation to it.\r\n

\r\n\r\n

Information We Collect

\r\n
    \r\n
  • \r\n Personal information: name, email, shipping address, and payment\r\n details provided during checkout.\r\n
  • \r\n
  • \r\n Usage data: pages visited, time spent, browser type, and device\r\n information collected automatically.\r\n
  • \r\n
  • \r\n Cookies: small data files stored on your device to improve your\r\n browsing experience and remember your preferences.\r\n
  • \r\n
\r\n\r\n

How We Use Your Information

\r\n
    \r\n
  • To process and fulfill your orders.
  • \r\n
  • To communicate with you about orders, updates, and promotions.
  • \r\n
  • To improve our website and services.
  • \r\n
  • To comply with legal obligations.
  • \r\n
\r\n\r\n

Data Sharing

\r\n

\r\n We do not sell your personal data. We share information only with service providers\r\n necessary to fulfill your order (e.g., payment processors, shipping carriers) and as\r\n required by law.\r\n

\r\n\r\n

Cookies

\r\n

\r\n We use essential cookies for site functionality and optional analytics cookies to\r\n understand usage patterns. You can manage cookie preferences through your browser\r\n settings.\r\n

\r\n\r\n

Your Rights

\r\n

\r\n You may request access to, correction of, or deletion of your personal data at any\r\n time by contacting us at{\" \"}\r\n \r\n {contactEmail}\r\n \r\n .\r\n

\r\n\r\n

Contact Us

\r\n

\r\n If you have questions about this privacy policy, please contact us at{\" \"}\r\n \r\n {contactEmail}\r\n \r\n .\r\n

\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { PolicyPage } from \"./PolicyPage\";\r\n\r\nexport interface TermsPageProps {\r\n /** Business / site name. */\r\n siteName?: string;\r\n /** Contact email for legal inquiries. */\r\n contactEmail?: string;\r\n /** Optional extra class names. */\r\n className?: string;\r\n}\r\n\r\n/** Optional terms of service page. */\r\nexport function TermsPage({\r\n siteName = \"Our Store\",\r\n contactEmail = \"legal@example.com\",\r\n className,\r\n}: TermsPageProps) {\r\n return (\r\n \r\n

\r\n By accessing and using {siteName}, you agree to be bound by these\r\n Terms of Service.\r\n

\r\n\r\n

Use of the Site

\r\n

\r\n You agree to use this site only for lawful purposes and in a manner that does not\r\n infringe on the rights of others or restrict their use and enjoyment of the site.\r\n

\r\n\r\n

Products & Pricing

\r\n

\r\n All product descriptions and prices are subject to change without notice. We reserve\r\n the right to modify or discontinue any product at any time. Prices are displayed in\r\n the store's base currency and may exclude taxes and shipping costs, which are\r\n calculated at checkout.\r\n

\r\n\r\n

Orders & Payment

\r\n

\r\n By placing an order, you make an offer to purchase the selected products. We reserve\r\n the right to refuse or cancel any order for any reason, including pricing errors or\r\n suspected fraud.\r\n

\r\n\r\n

Intellectual Property

\r\n

\r\n All content on this site — including text, images, logos, and software — is the\r\n property of {siteName} or its licensors and is protected by applicable intellectual\r\n property laws.\r\n

\r\n\r\n

Limitation of Liability

\r\n

\r\n To the fullest extent permitted by law, {siteName} shall not be liable for any\r\n indirect, incidental, or consequential damages arising from your use of the site or\r\n purchase of products.\r\n

\r\n\r\n

Changes to These Terms

\r\n

\r\n We may update these Terms of Service from time to time. Continued use of the site\r\n after changes constitutes acceptance of the revised terms.\r\n

\r\n\r\n

Contact

\r\n

\r\n For questions about these terms, contact us at{\" \"}\r\n \r\n {contactEmail}\r\n \r\n .\r\n

\r\n
\r\n );\r\n}\r\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar RELEASE_TRAIN = 'clover';\n\nvar runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion(version) {\n return version === 3 ? 'v3' : version;\n};\n\nvar ORIGIN = 'https://js.stripe.com';\nvar STRIPE_JS_URL = \"\".concat(ORIGIN, \"/\").concat(RELEASE_TRAIN, \"/stripe.js\");\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar STRIPE_JS_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/(v3|[a-z]+)\\/stripe\\.js(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\n\nvar isStripeJSURL = function isStripeJSURL(url) {\n return V3_URL_REGEX.test(url) || STRIPE_JS_URL_REGEX.test(url);\n};\n\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(ORIGIN, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!isStripeJSURL(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(STRIPE_JS_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"8.8.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise$1 = null;\nvar onErrorListener = null;\nvar onLoadListener = null;\n\nvar onError = function onError(reject) {\n return function (cause) {\n reject(new Error('Failed to load Stripe.js', {\n cause: cause\n }));\n };\n};\n\nvar onLoad = function onLoad(resolve, reject) {\n return function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n };\n};\n\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise$1 !== null) {\n return stripePromise$1;\n }\n\n stripePromise$1 = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n } else if (script && onLoadListener !== null && onErrorListener !== null) {\n var _script$parentNode;\n\n // remove event listeners\n script.removeEventListener('load', onLoadListener);\n script.removeEventListener('error', onErrorListener); // if script exists, but we are reloading due to an error,\n // reload script to trigger 'load' event\n\n (_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);\n script = injectScript(params);\n }\n\n onLoadListener = onLoad(resolve, reject);\n onErrorListener = onError(reject);\n script.addEventListener('load', onLoadListener);\n script.addEventListener('error', onErrorListener);\n } catch (error) {\n reject(error);\n return;\n }\n }); // Resets stripePromise on error\n\n return stripePromise$1[\"catch\"](function (error) {\n stripePromise$1 = null;\n return Promise.reject(error);\n });\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var pk = args[0];\n\n if (typeof pk !== 'string') {\n throw new Error(\"Expected publishable key to be of type string, got type \".concat(_typeof(pk), \" instead.\"));\n }\n\n var isTestKey = pk.match(/^pk_test/); // @ts-expect-error this is not publicly typed\n\n var version = runtimeVersionToUrlVersion(maybeStripe.version);\n var expectedVersion = RELEASE_TRAIN;\n\n if (isTestKey && version !== expectedVersion) {\n console.warn(\"Stripe.js@\".concat(version, \" was loaded on the page, but @stripe/stripe-js@\").concat(\"8.8.0\", \" expected Stripe.js@\").concat(expectedVersion, \". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning\"));\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar stripePromise;\nvar loadCalled = false;\n\nvar getStripePromise = function getStripePromise() {\n if (stripePromise) {\n return stripePromise;\n }\n\n stripePromise = loadScript(null)[\"catch\"](function (error) {\n // clear cache on error\n stripePromise = null;\n return Promise.reject(error);\n });\n return stripePromise;\n}; // Execute our own script injection after a tick to give users time to do their\n// own script injection.\n\n\nPromise.resolve().then(function () {\n return getStripePromise();\n})[\"catch\"](function (error) {\n if (!loadCalled) {\n console.warn(error);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now(); // if previous attempts are unsuccessful, will re-load script\n\n return getStripePromise().then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","import React, { useState, useEffect } from \"react\";\r\nimport { CheckoutPage, CheckoutPageProps, SavedAddress } from \"./CheckoutPage\";\r\nimport { useCartStore } from \"@/cart/useCartStore\";\r\nimport { loadStripe, type Stripe as StripeJS } from \"@stripe/stripe-js\";\r\n\r\nexport interface CheckoutFlowProps {\r\n /** The authenticated user's ID. */\r\n userId?: string;\r\n /** The authenticated user's display name. */\r\n userDisplayName?: string;\r\n /** The authenticated user's email. */\r\n userEmail?: string;\r\n /** Async function to fetch saved addresses for the user. */\r\n onFetchAddresses: (userId: string) => Promise;\r\n /** Async function to save a new address (or update list). */\r\n onSaveAddress: (userId: string, addresses: SavedAddress[]) => Promise;\r\n /** Async function to place the order (create transaction). */\r\n onPlaceOrder: (data: any) => Promise;\r\n /** Navigation callback to go back to cart. */\r\n onBackToCart: () => void;\r\n /** Callback after successful order placement (e.g. navigate to purchases). */\r\n onOrderSuccess: () => void;\r\n /** Toast notification handler. */\r\n toast?: {\r\n success: (msg: string) => void;\r\n error: (msg: string) => void;\r\n };\r\n /**\r\n * Stripe publishable key (pk_test_... or pk_live_...).\r\n * If omitted the Stripe payment option will still render but remain\r\n * in a \"loading\" state until the key is provided.\r\n */\r\n stripePublishableKey?: string;\r\n /**\r\n * Base URL for the API server (e.g. \"http://localhost:3333\").\r\n * Used to call `/api/stripe/create-payment-intent`.\r\n */\r\n apiBaseUrl?: string;\r\n /** Stripe return URL for redirect-based payment methods. */\r\n stripeReturnUrl?: string;\r\n /** Currency code for Stripe payments (default: \"eur\"). */\r\n currency?: string;\r\n}\r\n\r\nexport function CheckoutFlow({\r\n userId,\r\n userDisplayName,\r\n userEmail,\r\n onFetchAddresses,\r\n onSaveAddress,\r\n onPlaceOrder,\r\n onBackToCart,\r\n onOrderSuccess,\r\n toast,\r\n stripePublishableKey,\r\n apiBaseUrl = \"\",\r\n stripeReturnUrl,\r\n currency = \"eur\",\r\n}: CheckoutFlowProps) {\r\n const [savedAddresses, setSavedAddresses] = useState([]);\r\n const [stripePromise, setStripePromise] = useState | null>(null);\r\n const [clientSecret, setClientSecret] = useState(null);\r\n const subtotal = useCartStore((s) => s.subtotal);\r\n\r\n // 1. Fetch addresses on mount if user exists\r\n useEffect(() => {\r\n if (!userId) return;\r\n let mounted = true;\r\n onFetchAddresses(userId)\r\n .then((addrs) => {\r\n if (mounted) setSavedAddresses(addrs);\r\n })\r\n .catch((err) => console.error(\"Failed to fetch addresses:\", err));\r\n return () => { mounted = false; };\r\n }, [userId, onFetchAddresses]);\r\n\r\n // 2. Load Stripe.js once we have a publishable key\r\n useEffect(() => {\r\n if (!stripePublishableKey) return;\r\n setStripePromise(loadStripe(stripePublishableKey));\r\n }, [stripePublishableKey]);\r\n\r\n // 3. Create a PaymentIntent when the flow mounts (so the form is ready)\r\n useEffect(() => {\r\n if (!stripePublishableKey || subtotal <= 0) return;\r\n let mounted = true;\r\n\r\n // Stripe expects amount in smallest currency unit (cents for USD)\r\n const amountInCents = Math.round(subtotal * 100);\r\n\r\n fetch(`${apiBaseUrl}/api/stripe/create-payment-intent`, {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ amount: amountInCents, currency }),\r\n })\r\n .then((r) => r.json())\r\n .then((data) => {\r\n if (mounted && data.clientSecret) {\r\n setClientSecret(data.clientSecret);\r\n }\r\n })\r\n .catch((err) => console.error(\"Failed to create PaymentIntent:\", err));\r\n\r\n return () => { mounted = false; };\r\n }, [stripePublishableKey, apiBaseUrl, subtotal]);\r\n\r\n // 4. Handle saving a new address\r\n const handleSaveAddress = async (address: any) => {\r\n if (!userId) return;\r\n try {\r\n // Re-fetch latest to be safe (or use local state if we trust it completely)\r\n const existing = await onFetchAddresses(userId);\r\n\r\n const newAddr: SavedAddress = {\r\n ...address,\r\n id: crypto.randomUUID(),\r\n label: address.address?.split(',')[0] || 'Checkout address',\r\n phone: '',\r\n note: '',\r\n // If it's the first address, make it default\r\n isDefault: existing.length === 0,\r\n };\r\n\r\n const updated = [...existing, newAddr];\r\n await onSaveAddress(userId, updated);\r\n setSavedAddresses(updated);\r\n toast?.success(\"Address saved to your profile\");\r\n } catch (err) {\r\n console.error(\"Failed to save address:\", err);\r\n toast?.error(\"Failed to save address\");\r\n }\r\n };\r\n\r\n // 5. Handle order placement (for non-Stripe methods)\r\n const handlePlaceOrder = async (data: any) => {\r\n try {\r\n await onPlaceOrder(data);\r\n toast?.success(\"Order placed successfully!\");\r\n onOrderSuccess();\r\n } catch (err) {\r\n console.error(\"Failed to place order:\", err);\r\n toast?.error(\"Failed to place order. Please try again.\");\r\n }\r\n };\r\n\r\n // 6. Handle Stripe payment success (inline, no redirect)\r\n const handleStripePaymentSuccess = () => {\r\n toast?.success(\"Payment successful!\");\r\n onOrderSuccess();\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst badgeVariants = cva(\r\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\r\n secondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\r\n destructive: \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\r\n outline: \"text-foreground\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n },\r\n);\r\n\r\nexport interface BadgeProps extends React.HTMLAttributes, VariantProps { }\r\n\r\nfunction Badge({ className, variant, ...props }: BadgeProps) {\r\n return
;\r\n}\r\n\r\nexport { Badge, badgeVariants };\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Package, Clock, CheckCircle, XCircle, ArrowLeft, ExternalLink, RefreshCw, Store } from \"lucide-react\";\r\nimport { Card, CardContent, CardHeader, CardTitle } from \"@/components/ui/card\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Badge } from \"@/components/ui/badge\";\r\n\r\n// We need to define or import Transaction type and statusConfig locally or from a shared type file\r\n// Since client-ecommerce.ts is outside, let's redefine minimal types here or ask for them to be passed in.\r\n// Ideally, `client-ecommerce.ts` types should be imported from @polymech/ecommerce if possible, \r\n// OR @polymech/ecommerce should define the types and client-ecommerce uses them.\r\n// For now, let's define the props generically.\r\n\r\nexport interface Transaction {\r\n id: string;\r\n created_at: string;\r\n status: string;\r\n total_amount: number;\r\n currency: string;\r\n product_info: any[];\r\n shipping_info: any;\r\n}\r\n\r\nexport interface PurchasesListProps {\r\n /** Async function to fetch user transactions. */\r\n onFetchTransactions: () => Promise;\r\n /** Navigation callback. */\r\n onNavigate: (path: string) => void;\r\n /** Toast notification handler. */\r\n toast?: {\r\n error: (msg: string) => void;\r\n };\r\n}\r\n\r\nconst statusConfig: Record = {\r\n pending: { label: \"Pending\", variant: \"secondary\", icon: },\r\n processing: { label: \"Processing\", variant: \"default\", icon: },\r\n completed: { label: \"Completed\", variant: \"default\", icon: },\r\n failed: { label: \"Failed\", variant: \"destructive\", icon: },\r\n refunded: { label: \"Refunded\", variant: \"outline\", icon: },\r\n cancelled: { label: \"Cancelled\", variant: \"destructive\", icon: },\r\n};\r\n\r\nexport function PurchasesList({ onFetchTransactions, onNavigate, toast }: PurchasesListProps) {\r\n const [transactions, setTransactions] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n let mounted = true;\r\n setLoading(true);\r\n onFetchTransactions()\r\n .then((data) => {\r\n if (mounted) setTransactions(data);\r\n })\r\n .catch((err) => {\r\n console.error(\"Failed to load transactions:\", err);\r\n toast?.error(\"Failed to load purchases\");\r\n })\r\n .finally(() => {\r\n if (mounted) setLoading(false);\r\n });\r\n return () => { mounted = false; };\r\n }, [onFetchTransactions]);\r\n\r\n if (loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n

My Purchases

\r\n
\r\n \r\n
\r\n\r\n {transactions.length === 0 ? (\r\n \r\n \r\n \r\n

No purchases yet.

\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n {transactions.map((tx) => {\r\n const products = Array.isArray(tx.product_info) ? tx.product_info : [];\r\n const sc = statusConfig[tx.status] || statusConfig.pending;\r\n const date = new Date(tx.created_at).toLocaleDateString(undefined, {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n });\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n Order #{tx.id.slice(0, 8)}\r\n \r\n

{date}

\r\n
\r\n
\r\n \r\n {sc.icon}\r\n {sc.label}\r\n \r\n \r\n {tx.currency} {Number(tx.total_amount).toFixed(2)}\r\n \r\n
\r\n
\r\n
\r\n \r\n {/* Product list */}\r\n
\r\n {products.map((item: any, idx: number) => (\r\n \r\n {item.image && (\r\n \r\n )}\r\n
\r\n

\r\n {item.title || \"Product\"}\r\n

\r\n

\r\n Qty: {item.quantity || 1}\r\n {item.variant && ` · ${item.variant}`}\r\n {\" · \"}\r\n {tx.currency} {Number(item.price || 0).toFixed(2)}\r\n

\r\n {item.vendorSlug && (\r\n { e.preventDefault(); onNavigate(`/user/${item.vendorSlug}`); }}\r\n className=\"text-xs text-primary hover:underline flex items-center gap-1 mt-0.5 cursor-pointer\"\r\n >\r\n \r\n {item.vendorSlug}\r\n \r\n )}\r\n
\r\n {item.vendorSlug && item.pageSlug && (\r\n { e.preventDefault(); onNavigate(`/user/${item.vendorSlug}/pages/${item.pageSlug}`); }}\r\n className=\"text-primary hover:underline text-xs flex items-center gap-1 shrink-0 cursor-pointer\"\r\n >\r\n View\r\n \r\n \r\n )}\r\n
\r\n ))}\r\n
\r\n\r\n {/* Shipping summary */}\r\n {tx.shipping_info && Object.keys(tx.shipping_info).length > 0 && (\r\n
\r\n Ships to: {(tx.shipping_info as any).fullName}, {(tx.shipping_info as any).city}, {(tx.shipping_info as any).country}\r\n
\r\n )}\r\n \r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useLocation, matchPath, Navigate } from \"react-router-dom\";\r\nimport { CartPage } from \"./cart/CartPage\";\r\nimport { CheckoutFlow } from \"./checkout/CheckoutFlow\";\r\nimport { PurchasesList } from \"./purchases/PurchasesList\";\r\nimport { ShippingPage } from \"./policies/ShippingPage\";\r\nimport { ReturnsPage } from \"./policies/ReturnsPage\";\r\nimport { PrivacyPolicyPage } from \"./policies/PrivacyPolicyPage\";\r\nimport { TermsPage } from \"./policies/TermsPage\";\r\n\r\nexport interface EcommerceBundleDependencies {\r\n user: {\r\n id?: string;\r\n email?: string;\r\n user_metadata?: {\r\n display_name?: string;\r\n };\r\n } | null;\r\n toast: {\r\n success: (message: string) => void;\r\n error: (message: string) => void;\r\n };\r\n onFetchAddresses: (userId: string) => Promise;\r\n onSaveAddress: (userId: string, addresses: any[]) => Promise;\r\n onPlaceOrder: (data: any) => Promise;\r\n onFetchTransactions: () => Promise;\r\n onNavigate: (path: string) => void;\r\n // Optional config\r\n siteName?: string;\r\n contactEmail?: string;\r\n /** Stripe publishable key — enables Stripe payment option. */\r\n stripePublishableKey?: string;\r\n /** API base URL for Stripe endpoints (e.g. \"http://localhost:3333\"). */\r\n apiBaseUrl?: string;\r\n /** Stripe return URL for redirect-based payment methods. */\r\n stripeReturnUrl?: string;\r\n /** Currency code for Stripe (default: \"eur\"). */\r\n currency?: string;\r\n}\r\n\r\nexport const EcommerceBundle: React.FC = (props) => {\r\n const { pathname } = useLocation();\r\n\r\n if (matchPath(\"/cart/*\", pathname)) {\r\n return props.onNavigate('/checkout')} />;\r\n }\r\n\r\n if (matchPath(\"/checkout/*\", pathname)) {\r\n return (\r\n props.onNavigate('/cart')}\r\n onOrderSuccess={() => props.onNavigate('/purchases')}\r\n toast={props.toast}\r\n stripePublishableKey={props.stripePublishableKey}\r\n apiBaseUrl={props.apiBaseUrl}\r\n stripeReturnUrl={props.stripeReturnUrl}\r\n currency={props.currency}\r\n />\r\n );\r\n }\r\n\r\n if (matchPath(\"/purchases/*\", pathname)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (matchPath(\"/shipping/*\", pathname)) return ;\r\n if (matchPath(\"/returns/*\", pathname)) return ;\r\n if (matchPath(\"/privacy/*\", pathname)) return ;\r\n if (matchPath(\"/terms/*\", pathname)) return ;\r\n\r\n return null; // Return null if no route matches (let App.tsx handle 404 if needed, though this component is usually mounted on specific routes)\r\n};\r\n"],"names":["setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","i","REACT_LAZY_TYPE","use","React","isPromiseLike","isLazyComponent","element","createSlot","ownerName","SlotClone","createSlotClone","Slot2","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","Slot","childrenRef","getElementRef","props2","mergeProps","SLOTTABLE_IDENTIFIER","childProps","overrideProps","propName","slotPropValue","childPropValue","args","result","getter","_a","mayWarn","_b","r","t","f","clsx","falsyToString","cx","cva","base","config","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","key","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions","cn","inputs","twMerge","buttonVariants","Button","className","size","asChild","computeTotals","items","sum","useCartStore","create","persist","set","incoming","state","existing","id","quantity","CartItemRow","item","updateQuantity","s","removeItem","lineTotal","jsxs","Minus","Plus","Trash2","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","NODES","Primitive","primitive","Node","primitiveProps","Comp","NAME","DEFAULT_ORIENTATION","ORIENTATIONS","Separator","decorative","orientationProp","domProps","orientation","isValidOrientation","semanticProps","Root","SeparatorPrimitive.Root","defaultLinks","PolicyLinks","links","l","CartPage","onCheckout","subtotal","itemCount","clearCart","ShoppingCart","OrderSummary","tax","shipping","taxAmount","shippingAmount","total","Input","type","Label","event","labelVariants","LabelPrimitive.Root","b","c","d","e","g","h","k","m","n","p","q","v","w","x","y","z","a","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","typeOf","object","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","target","source","from","to","symbols","ReactPropTypesSecret","ReactPropTypesSecret_1","has","printWarning","loggedTypeFailures","text","message","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","error","err","ex","stack","checkPropTypes_1","ReactIs","assign","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","is","PropTypeError","data","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","iterator","step","entry","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","ownKeys","enumerableOnly","keys","sym","_objectSpread2","_defineProperty","_typeof","obj","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","_arr","_n","_d","_s","_e","o","minLen","_arrayLikeToArray","len","arr2","useAttachEvent","cb","cbDefined","cbRef","decoratedCb","usePrevious","isUnknownObject","raw","isPromise","isStripe","PLAIN_OBJECT_STR","isEqual","left","right","leftArray","rightArray","leftPlainObject","rightPlainObject","leftKeys","rightKeys","keySet","pred","extractAllowedOptionsUpdates","options","prevOptions","immutableKeys","newOptions","isUpdated","INVALID_STRIPE_ERROR$1","validateStripe","maybeStripe","errorMsg","parseStripeProp","stripe","registerWithStripeJs","ElementsContext","parseElementsContext","ctx","useCase","Elements","_ref","rawStripeProp","parsed","_React$useState","_React$useState2","setContext","isMounted","safeSetContext","prevStripe","updates","PropTypes","useElementsContextWithUseCase","useCaseMessage","useElements","_useElementsContextWi","elements","CheckoutContext","useElementsOrCheckoutContextWithUseCase","useCaseString","checkout","_excluded","capitalized","str","createElementComponent","isServer","displayName","ClientElement","_ref$options","onBlur","onFocus","onReady","onChange","onEscape","onClick","onLoadError","onLoaderStart","onNetworksChange","onConfirm","onCancel","onShippingAddressChange","onShippingRateChange","onSavedPaymentMethodRemove","onSavedPaymentMethodUpdate","checkoutState","checkoutSdk","setElement","elementRef","domNode","readyCallback","mode","restOptions","ServerElement","EmbeddedCheckoutContext","useStripe","_useElementsOrCheckou","PaymentElement","LinkAuthenticationElement","StripePaymentForm","onPaymentSuccess","returnUrl","defaultEmail","defaultName","setMessage","useState","isLoading","setIsLoading","Loader2","CheckoutPage","onPlaceOrder","onSaveAddress","onBackToCart","initialShipping","savedAddresses","stripePromise","stripeClientSecret","onStripePaymentSuccess","stripeReturnUrl","paymentMethod","setPaymentMethod","saveAddress","setSaveAddress","defaultAddress","resolveInitial","form","setForm","selectedAddressId","setSelectedAddressId","selectAddress","addr","field","prev","handleSubmit","ShoppingBag","MapPin","Save","CreditCard","Bitcoin","PolicyPage","title","defaultRates","ShippingPage","rates","Truck","Clock","Globe","DollarSign","Icon","label","ReturnsPage","returnWindowDays","RotateCcw","CheckCircle","XCircle","PrivacyPolicyPage","siteName","contactEmail","TermsPage","RELEASE_TRAIN","runtimeVersionToUrlVersion","version","ORIGIN","STRIPE_JS_URL","V3_URL_REGEX","STRIPE_JS_URL_REGEX","isStripeJSURL","url","findScript","scripts","script","injectScript","params","queryString","headOrBody","registerWrapper","startTime","stripePromise$1","onErrorListener","onLoadListener","onError","reject","cause","onLoad","resolve","loadScript","_script$parentNode","initStripe","pk","isTestKey","expectedVersion","loadCalled","getStripePromise","loadStripe","_len","_key","CheckoutFlow","userId","userDisplayName","userEmail","onFetchAddresses","onOrderSuccess","toast","stripePublishableKey","apiBaseUrl","currency","setSavedAddresses","setStripePromise","clientSecret","setClientSecret","useEffect","mounted","addrs","amountInCents","address","newAddr","updated","badgeVariants","Badge","statusConfig","RefreshCw","PurchasesList","onFetchTransactions","onNavigate","transactions","setTransactions","loading","setLoading","Package","ArrowLeft","tx","products","sc","date","idx","Store","ExternalLink","EcommerceBundle","pathname","useLocation","matchPath","_c"],"mappings":"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","x_google_ignoreList":[0,1,2,3,9,10,16,17,19,20,21,22,23,24,25,26,27,28,29,37]} \ No newline at end of file diff --git a/packages/ecommerce/package-lock.json b/packages/ecommerce/package-lock.json index 17f45817..47ec24d8 100644 --- a/packages/ecommerce/package-lock.json +++ b/packages/ecommerce/package-lock.json @@ -44,9 +44,9 @@ "@radix-ui/react-toggle": "^1.1.9", "@radix-ui/react-toggle-group": "^1.1.10", "@radix-ui/react-tooltip": "^1.2.7", - "@supabase-cache-helpers/postgrest-swr": "^2.0.3", + "@stripe/react-stripe-js": "^5.6.0", + "@stripe/stripe-js": "^8.8.0", "@supabase/supabase-js": "^2.58.0", - "@tanstack/react-query": "^5.83.0", "@types/dompurify": "^3.2.0", "@types/file-saver": "^2.0.7", "@uppy/tus": "^5.0.2", @@ -73,36 +73,14 @@ "openai": "^6.0.0", "playwright": "^1.55.1", "prismjs": "^1.30.0", - "react": "^18.3.1", - "react-day-picker": "^8.10.1", - "react-dom": "^18.3.1", - "react-hook-form": "^7.61.1", - "react-intersection-observer": "^10.0.0", - "react-markdown": "^10.1.0", - "react-resizable-panels": "^2.1.9", - "react-router-dom": "^6.30.1", - "react-zoom-pan-pinch": "^3.7.0", - "recharts": "^2.15.4", - "replicate": "^1.2.0", - "rollup-plugin-visualizer": "^6.0.5", - "sonner": "^1.7.4", - "stream-browserify": "^3.0.0", - "swr": "^2.3.7", - "tailwind-merge": "^2.6.0", - "tailwindcss-animate": "^1.0.7", - "vaul": "^0.9.9", - "vite-bundle-analyzer": "^1.3.1", - "vite-plugin-compression": "^0.5.1", - "vite-plugin-pwa": "^1.0.3", - "vue": "^3.5.22", - "workbox-core": "^7.4.0", + "tailwind-merge": "^3.5.0", "zod": "^3.25.76", - "zod-to-json-schema": "^3.24.6", - "zustand": "^5.0.11" + "zod-to-json-schema": "^3.24.6" }, "devDependencies": { "@eslint/js": "^9.32.0", "@tailwindcss/typography": "^0.5.16", + "@tanstack/react-query": "^5.83.0", "@types/node": "^22.16.5", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", @@ -115,6 +93,9 @@ "globals": "^15.15.0", "lovable-tagger": "^1.1.10", "postcss": "^8.5.6", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.30.1", "tailwindcss": "^3.4.17", "typescript": "^5.8.3", "typescript-eslint": "^8.38.0", @@ -122,7 +103,15 @@ "vite-plugin-dts": "^4.5.4", "workbox-precaching": "^7.4.0", "workbox-routing": "^7.4.0", - "workbox-window": "^7.4.0" + "workbox-window": "^7.4.0", + "zustand": "^5.0.11" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.83.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.30.1", + "zustand": "^5.0.11" } }, "../ui": { @@ -249,6 +238,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -257,323 +247,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/code-frame": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", - "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", - "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", - "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", - "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", - "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.28.5", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.28.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", - "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "regexpu-core": "^6.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", - "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", - "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", - "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.28.5", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -592,42 +265,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", - "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/parser": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", @@ -643,1055 +280,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", - "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", - "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", - "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", - "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", - "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", - "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", - "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.6.tgz", - "integrity": "sha512-9knsChgsMzBV5Yh3kkhrZNxH3oCYAfMBkNNaVN4cP2RVlFPe8wYdwwcnOsAbkdDoV9UjFtOXWrWB52M8W4jNeA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", - "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-remap-async-to-generator": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", - "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", - "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", - "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", - "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", - "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-globals": "^7.28.0", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-replace-supers": "^7.28.6", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", - "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/template": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", - "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", - "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", - "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz", - "integrity": "sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", - "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-explicit-resource-management": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", - "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/plugin-transform-destructuring": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", - "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", - "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", - "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", - "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", - "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", - "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", - "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", - "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", - "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", - "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", - "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", - "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", - "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", - "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", - "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", - "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", - "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", - "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", - "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz", - "integrity": "sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", - "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", - "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", - "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", - "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", - "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", - "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", - "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.6.tgz", - "integrity": "sha512-GaTI4nXDrs7l0qaJ6Rg06dtOXTBCG6TMDB44zbqofCIC4PqC7SEvmFFtpxzCDw9W5aJ7RKVshgXTLvLdBFV/qw==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.28.6", - "@babel/plugin-syntax-import-attributes": "^7.28.6", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.6", - "@babel/plugin-transform-async-to-generator": "^7.28.6", - "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.6", - "@babel/plugin-transform-class-properties": "^7.28.6", - "@babel/plugin-transform-class-static-block": "^7.28.6", - "@babel/plugin-transform-classes": "^7.28.6", - "@babel/plugin-transform-computed-properties": "^7.28.6", - "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.28.6", - "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.28.6", - "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.6", - "@babel/plugin-transform-exponentiation-operator": "^7.28.6", - "@babel/plugin-transform-export-namespace-from": "^7.27.1", - "@babel/plugin-transform-for-of": "^7.27.1", - "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.28.6", - "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", - "@babel/plugin-transform-member-expression-literals": "^7.27.1", - "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.28.6", - "@babel/plugin-transform-modules-systemjs": "^7.28.5", - "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", - "@babel/plugin-transform-numeric-separator": "^7.28.6", - "@babel/plugin-transform-object-rest-spread": "^7.28.6", - "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.28.6", - "@babel/plugin-transform-optional-chaining": "^7.28.6", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.28.6", - "@babel/plugin-transform-private-property-in-object": "^7.28.6", - "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.6", - "@babel/plugin-transform-regexp-modifiers": "^7.28.6", - "@babel/plugin-transform-reserved-words": "^7.27.1", - "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.28.6", - "@babel/plugin-transform-sticky-regex": "^7.27.1", - "@babel/plugin-transform-template-literals": "^7.27.1", - "@babel/plugin-transform-typeof-symbol": "^7.27.1", - "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.28.6", - "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/runtime": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", @@ -1701,50 +289,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.6.tgz", - "integrity": "sha512-kz2fAQ5UzjV7X7D3ySxmj3vRq89dTpqOZWv76Z6pNPztkwb/0Yj1Mtx1xFrYj6mbIHysxtBot8J4o0JLCblcFw==", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.43.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", - "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.6", - "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", @@ -2987,6 +1531,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, "license": "MIT", "engines": { "node": "20 || >=22" @@ -2996,6 +1541,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", + "dev": true, "license": "MIT", "dependencies": { "@isaacs/balanced-match": "^4.0.1" @@ -3025,26 +1571,18 @@ "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -3054,7 +1592,9 @@ "version": "0.3.11", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -3070,6 +1610,7 @@ "version": "0.3.31", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -4090,6 +2631,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -4103,6 +2645,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -4112,6 +2655,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -5965,6 +4509,7 @@ "version": "1.23.2", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "dev": true, "license": "MIT", "engines": { "node": ">=14.0.0" @@ -5977,56 +4522,11 @@ "dev": true, "license": "MIT" }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", - "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", - "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", - "license": "MIT", - "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, "node_modules/@rollup/pluginutils": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -6052,6 +4552,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6065,6 +4566,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6078,6 +4580,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6091,6 +4594,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6104,6 +4608,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6117,6 +4622,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6130,6 +4636,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6143,6 +4650,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6156,6 +4664,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6169,6 +4678,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6182,6 +4692,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6195,6 +4706,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6208,6 +4720,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6221,6 +4734,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6234,6 +4748,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6247,6 +4762,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6260,6 +4776,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6273,6 +4790,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6286,6 +4804,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6299,6 +4818,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6312,6 +4832,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6325,6 +4846,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6338,6 +4860,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6351,6 +4874,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6364,6 +4888,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6577,35 +5102,28 @@ "integrity": "sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==", "license": "MIT" }, - "node_modules/@supabase-cache-helpers/postgrest-core": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/@supabase-cache-helpers/postgrest-core/-/postgrest-core-0.12.4.tgz", - "integrity": "sha512-1cFgPhPVN6z8/eIPwVazhXTzS2Zae+aqkiEF3JLBLUFGG/egYhNyBogHcDnbpWUuVEqFN9m6XqG8xRhli2wLVw==", + "node_modules/@stripe/react-stripe-js": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-5.6.0.tgz", + "integrity": "sha512-tucu/vTGc+5NXbo2pUiaVjA4ENdRBET8qGS00BM4BAU8J4Pi3eY6BHollsP2+VSuzzlvXwMg0it3ZLhbCj2fPg==", "license": "MIT", "dependencies": { - "fast-equals": "5.4.0", - "flat": "6.0.1", - "merge-anything": "5.1.7", - "xregexp": "5.1.2" + "prop-types": "^15.7.2" }, "peerDependencies": { - "@supabase/postgrest-js": "^1.19.4 || ^2.0.0" + "@stripe/stripe-js": ">=8.0.0 <9.0.0", + "react": ">=16.8.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" } }, - "node_modules/@supabase-cache-helpers/postgrest-swr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@supabase-cache-helpers/postgrest-swr/-/postgrest-swr-2.0.4.tgz", - "integrity": "sha512-YQSQdq9CI8fNJ39N/vQB/w/Eqv/+Wo96MvhvaU2QTKM58EBSQiXFIJie0ujiiPSSDIHHUnc54YK09sTAkgPPLA==", + "node_modules/@stripe/stripe-js": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-8.8.0.tgz", + "integrity": "sha512-NNYuyW8qmLjyHnpyFgs/23wUrjB8k0xN9YIZFOMLewCa/pIkIji9e9aY/EgdNryEDDRptc6TcPIHRvG1R0ClFw==", "license": "MIT", - "dependencies": { - "@supabase-cache-helpers/postgrest-core": "0.12.4", - "flat": "6.0.1", - "server-only": "^0.0.1" - }, - "peerDependencies": { - "@supabase/postgrest-js": "^1.19.4 || ^2.0.0", - "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "swr": "^2.2.0" + "peer": true, + "engines": { + "node": ">=12.16" } }, "node_modules/@supabase/auth-js": { @@ -6637,7 +5155,6 @@ "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-2.90.1.tgz", "integrity": "sha512-jh6vqzaYzoFn3raaC0hcFt9h+Bt+uxNRBSdc7PfToQeRGk7PDPoweHsbdiPWREtDVTGKfu+PyPW9e2jbK+BCgQ==", "license": "MIT", - "peer": true, "dependencies": { "tslib": "2.8.1" }, @@ -6689,27 +5206,6 @@ "node": ">=20.0.0" } }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "license": "Apache-2.0", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, "node_modules/@swc/core": { "version": "1.15.10", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.10.tgz", @@ -6953,6 +5449,7 @@ "version": "5.90.19", "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.19.tgz", "integrity": "sha512-GLW5sjPVIvH491VV1ufddnfldyVB+teCnpPIvweEfkpRx7CfUmUGhoh9cdcUKBh/KwVxk22aNEDxeTsvmyB/WA==", + "dev": true, "license": "MIT", "funding": { "type": "github", @@ -6963,6 +5460,7 @@ "version": "5.90.19", "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.19.tgz", "integrity": "sha512-qTZRZ4QyTzQc+M0IzrbKHxSeISUmRB3RPGmao5bT+sI6ayxSRhn0FXEnT5Hg3as8SBFcRosrXXRFB+yAcxVxJQ==", + "dev": true, "license": "MIT", "dependencies": { "@tanstack/query-core": "5.90.19" @@ -6988,12 +5486,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "license": "MIT" - }, "node_modules/@types/d3-color": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", @@ -7009,12 +5501,6 @@ "@types/d3-selection": "*" } }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, "node_modules/@types/d3-interpolate": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", @@ -7024,48 +5510,12 @@ "@types/d3-color": "*" } }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, "node_modules/@types/d3-selection": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", "license": "MIT" }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, "node_modules/@types/d3-transition": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", @@ -7220,12 +5670,6 @@ "@types/react": "^18.0.0" } }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "license": "MIT" - }, "node_modules/@types/retry": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", @@ -7236,6 +5680,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "devOptional": true, "license": "MIT" }, "node_modules/@types/unist": { @@ -7523,12 +5968,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, "node_modules/@uppy/companion-client": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@uppy/companion-client/-/companion-client-5.1.1.tgz", @@ -7906,19 +6345,6 @@ "d3-zoom": "^3.0.0" } }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "optional": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -8053,12 +6479,14 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -8072,6 +6500,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -8084,6 +6513,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, "license": "MIT" }, "node_modules/argparse": { @@ -8104,73 +6534,12 @@ "node": ">=10" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/autoprefixer": { "version": "10.4.23", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", @@ -8208,21 +6577,6 @@ "postcss": "^8.1.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/axios": { "version": "1.13.5", "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", @@ -8234,54 +6588,6 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -8322,6 +6628,7 @@ "version": "2.9.15", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz", "integrity": "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==", + "dev": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -8340,6 +6647,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8363,6 +6671,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -8375,6 +6684,7 @@ "version": "4.28.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -8441,24 +6751,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -8472,22 +6764,6 @@ "node": ">= 0.4" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -8502,6 +6778,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -8511,6 +6788,7 @@ "version": "1.0.30001765", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001765.tgz", "integrity": "sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -8541,6 +6819,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -8597,6 +6876,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, "license": "MIT", "dependencies": { "anymatch": "~3.1.2", @@ -8621,6 +6901,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -8659,78 +6940,6 @@ "integrity": "sha512-cA8uCj0qSoG9e0kevyOWXwPaELRPVg5Pxp6WskLMwerx257Zfnh8Nl0JBH59d7wQzij2CK7qEfJQK3RjuKKIug==", "license": "MIT" }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -8822,16 +7031,6 @@ "node": ">= 0.8" } }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -8841,15 +7040,6 @@ "node": ">= 12" } }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/compare-versions": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", @@ -8877,36 +7067,6 @@ "dev": true, "license": "MIT" }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/core-js-compat": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", - "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz", - "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -8933,19 +7093,11 @@ "node": ">= 8" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -8979,18 +7131,6 @@ "node": ">=0.12" } }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/d3-color": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", @@ -9031,15 +7171,6 @@ "node": ">=12" } }, - "node_modules/d3-format": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/d3-interpolate": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", @@ -9052,31 +7183,6 @@ "node": ">=12" } }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/d3-selection": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", @@ -9087,42 +7193,6 @@ "node": ">=12" } }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/d3-timer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", @@ -9176,63 +7246,11 @@ "node": ">= 12" } }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/date-fns": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -9262,12 +7280,6 @@ } } }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", - "license": "MIT" - }, "node_modules/decode-named-character-reference": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", @@ -9288,58 +7300,6 @@ "dev": true, "license": "MIT" }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -9381,6 +7341,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, "license": "Apache-2.0" }, "node_modules/diff": { @@ -9396,18 +7357,9 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, "license": "MIT" }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, "node_modules/dompurify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", @@ -9474,25 +7426,11 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/electron-to-chromium": { "version": "1.5.267", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, "license": "ISC" }, "node_modules/embla-carousel": { @@ -9542,74 +7480,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -9655,23 +7525,6 @@ "node": ">= 0.4" } }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es5-ext": { "version": "0.10.64", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", @@ -9758,6 +7611,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -9999,6 +7853,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -10014,32 +7869,6 @@ "es5-ext": "~0.10.14" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/exifreader": { "version": "4.36.0", "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.36.0.tgz", @@ -10076,21 +7905,14 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, - "node_modules/fast-equals": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz", - "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -10107,6 +7929,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -10119,6 +7942,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { @@ -10132,6 +7956,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, "funding": [ { "type": "github", @@ -10148,6 +7973,7 @@ "version": "1.20.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -10170,6 +7996,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -10225,40 +8052,11 @@ "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", "license": "MIT" }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -10284,18 +8082,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-6.0.1.tgz", - "integrity": "sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==", - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/flat-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", @@ -10337,21 +8123,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -10418,20 +8189,6 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", @@ -10455,35 +8212,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gaxios": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", @@ -10513,33 +8241,6 @@ "node": ">=18" } }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -10573,12 +8274,6 @@ "node": ">=6" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "license": "ISC" - }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -10592,23 +8287,6 @@ "node": ">= 0.4" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/glob": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", @@ -10633,6 +8311,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -10678,22 +8357,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/google-auth-library": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.5.0.tgz", @@ -10752,54 +8415,16 @@ "node": ">=18" } }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -10839,46 +8464,6 @@ "node": ">= 0.4" } }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", - "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -10895,16 +8480,6 @@ "integrity": "sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==", "license": "Apache-2.0" }, - "node_modules/html-url-attributes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", - "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/https-proxy-agent": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", @@ -10927,12 +8502,6 @@ "node": ">=20.0.0" } }, - "node_modules/idb": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", - "license": "ISC" - }, "node_modules/idb-keyval": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.2.tgz", @@ -11018,12 +8587,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, - "node_modules/inline-style-parser": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", - "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", - "license": "MIT" - }, "node_modules/input-otp": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.2.tgz", @@ -11034,29 +8597,6 @@ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/intersection-observer": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.10.0.tgz", @@ -11088,61 +8628,11 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -11151,38 +8641,11 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -11194,39 +8657,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -11237,45 +8667,16 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -11285,29 +8686,11 @@ "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -11326,36 +8709,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "license": "MIT" - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-network-error": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", @@ -11372,36 +8725,12 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -11414,60 +8743,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -11480,121 +8755,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-what": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", - "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", - "license": "MIT", - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -11632,27 +8792,11 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jake": { - "version": "10.9.4", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", - "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.6", - "filelist": "^1.0.4", - "picocolors": "^1.1.1" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jiti": { "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, "license": "MIT", "peer": true, "bin": { @@ -11690,18 +8834,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", @@ -11718,12 +8850,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -11738,22 +8864,11 @@ "dev": true, "license": "MIT" }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -11762,15 +8877,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -11846,15 +8952,6 @@ "dev": true, "license": "MIT" }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -11909,6 +9006,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, "license": "MIT", "engines": { "node": ">=14" @@ -11921,6 +9019,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, "license": "MIT" }, "node_modules/local-pkg": { @@ -12015,12 +9114,6 @@ "lodash._basetostring": "~4.12.0" } }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -12028,12 +9121,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "license": "MIT" - }, "node_modules/lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", @@ -12494,27 +9581,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", - "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-to-markdown": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", @@ -12558,25 +9624,11 @@ "node": ">=16" } }, - "node_modules/merge-anything": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-5.1.7.tgz", - "integrity": "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==", - "license": "MIT", - "dependencies": { - "is-what": "^4.1.8" - }, - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -13371,6 +10423,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -13384,6 +10437,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -13511,6 +10565,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, "license": "MIT", "dependencies": { "any-promise": "^1.0.0", @@ -13607,12 +10662,14 @@ "version": "2.0.27", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -13631,69 +10688,12 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" } }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/openai": { "version": "6.16.0", "resolved": "https://registry.npmjs.org/openai/-/openai-6.16.0.tgz", @@ -13745,23 +10745,6 @@ "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==", "license": "MIT" }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -13891,6 +10874,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, "license": "MIT" }, "node_modules/path-scurry": { @@ -13926,7 +10910,9 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -13938,6 +10924,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -13947,6 +10934,7 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -13994,15 +10982,6 @@ "node": ">=18" } }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -14036,6 +11015,7 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", @@ -14053,6 +11033,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, "funding": [ { "type": "opencollective", @@ -14078,6 +11059,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, "funding": [ { "type": "opencollective", @@ -14120,6 +11102,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -14145,6 +11128,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -14172,6 +11156,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, "license": "MIT" }, "node_modules/postcss/node_modules/nanoid": { @@ -14212,18 +11197,6 @@ "node": ">= 0.8.0" } }, - "node_modules/pretty-bytes": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", - "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", - "license": "MIT", - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -14233,16 +11206,6 @@ "node": ">=6" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -14292,16 +11255,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "license": "ISC" }, - "node_modules/property-information": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", - "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/prosemirror-changeset": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz", @@ -14528,6 +11481,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -14560,6 +11514,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -14576,15 +11531,6 @@ ], "license": "MIT" }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -14598,20 +11544,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-day-picker": { - "version": "8.10.1", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz", - "integrity": "sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==", - "license": "MIT", - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/gpbl" - }, - "peerDependencies": { - "date-fns": "^2.28.0 || ^3.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-devtools-inline": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/react-devtools-inline/-/react-devtools-inline-4.4.0.tgz", @@ -14668,54 +11600,12 @@ "react": "^16.8.0 || ^17 || ^18 || ^19" } }, - "node_modules/react-intersection-observer": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-10.0.2.tgz", - "integrity": "sha512-lAMzxVWrBko6SLd1jx6l84fVrzJu91hpxHlvD2as2Wec9mDCjdYXwc5xNOFBchpeBir0Y7AGBW+C/AYMa7CSFg==", - "license": "MIT", - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "license": "MIT" }, - "node_modules/react-markdown": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz", - "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "html-url-attributes": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=18", - "react": ">=18" - } - }, "node_modules/react-remove-scroll": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", @@ -14763,20 +11653,11 @@ } } }, - "node_modules/react-resizable-panels": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-2.1.9.tgz", - "integrity": "sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ==", - "license": "MIT", - "peerDependencies": { - "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", - "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - } - }, "node_modules/react-router": { "version": "6.30.3", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "dev": true, "license": "MIT", "dependencies": { "@remix-run/router": "1.23.2" @@ -14792,6 +11673,7 @@ "version": "6.30.3", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", + "dev": true, "license": "MIT", "dependencies": { "@remix-run/router": "1.23.2", @@ -14805,21 +11687,6 @@ "react-dom": ">=16.8" } }, - "node_modules/react-smooth": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", - "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", - "license": "MIT", - "dependencies": { - "fast-equals": "^5.0.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/react-style-singleton": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", @@ -14842,40 +11709,11 @@ } } }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/react-zoom-pan-pinch": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.7.0.tgz", - "integrity": "sha512-UmReVZ0TxlKzxSbYiAj+LeGRW8s8LraAFTXRAxzMYnNRgGPsxCudwZKVkjvGmjtx7SW/hZamt69NUmGf4xrkXA==", - "license": "MIT", - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, "license": "MIT", "dependencies": { "pify": "^2.3.0" @@ -14906,6 +11744,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -14918,6 +11757,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -14926,139 +11766,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/recharts": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz", - "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==", - "license": "MIT", - "dependencies": { - "clsx": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.21", - "react-is": "^18.3.1", - "react-smooth": "^4.0.4", - "recharts-scale": "^0.4.4", - "tiny-invariant": "^1.3.1", - "victory-vendor": "^36.6.8" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", - "license": "MIT", - "dependencies": { - "decimal.js-light": "^2.4.1" - } - }, - "node_modules/recharts/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", - "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", - "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.2", - "regjsgen": "^0.8.0", - "regjsparser": "^0.13.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.2.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.1.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, "node_modules/remark": { "version": "15.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", @@ -15140,23 +11847,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", - "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-stringify": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", @@ -15172,61 +11862,11 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/replicate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/replicate/-/replicate-1.4.0.tgz", - "integrity": "sha512-1ufKejfUVz/azy+5TnzQP7U1+MHVWZ6psnQ06az8byUUnRhT+DZ/MvewzB1NQYBVMgNKR7xPDtTwlcP5nv/5+w==", - "license": "Apache-2.0", - "engines": { - "git": ">=2.11.0", - "node": ">=18.0.0", - "npm": ">=7.19.0", - "yarn": ">=1.7.0" - }, - "optionalDependencies": { - "readable-stream": ">=4.0.0" - } - }, - "node_modules/replicate/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "license": "MIT", - "optional": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/replicate/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -15242,6 +11882,7 @@ "version": "1.22.11", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.16.1", @@ -15281,6 +11922,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -15306,8 +11948,8 @@ "version": "4.55.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.2.tgz", "integrity": "sha512-PggGy4dhwx5qaW+CKBilA/98Ql9keyfnb7lh4SR6shQ91QQQi1ORJ1v4UinkdP2i87OBs9AQFooQylcrrRfIcg==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -15347,36 +11989,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-visualizer": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-6.0.5.tgz", - "integrity": "sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg==", - "license": "MIT", - "dependencies": { - "open": "^8.0.0", - "picomatch": "^4.0.2", - "source-map": "^0.7.4", - "yargs": "^17.5.1" - }, - "bin": { - "rollup-plugin-visualizer": "dist/bin/cli.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "rolldown": "1.x || ^1.0.0-beta", - "rollup": "2.x || 3.x || 4.x" - }, - "peerDependenciesMeta": { - "rolldown": { - "optional": true - }, - "rollup": { - "optional": true - } - } - }, "node_modules/rope-sequence": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", @@ -15387,6 +11999,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -15418,31 +12031,6 @@ "node": ">=6" } }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -15463,45 +12051,6 @@ ], "license": "MIT" }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -15524,67 +12073,6 @@ "node": ">=10" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/server-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", - "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", - "license": "MIT" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -15612,78 +12100,6 @@ "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -15696,31 +12112,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/smob": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", - "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", - "license": "MIT" - }, - "node_modules/sonner": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.7.4.tgz", - "integrity": "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==", - "license": "MIT", - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", - "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" - } - }, - "node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -15734,7 +12125,9 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -15744,28 +12137,13 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "license": "BSD-3-Clause", + "optional": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "license": "MIT" - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -15797,43 +12175,6 @@ "url": "https://dotenvx.com" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/strict-event-emitter": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", @@ -15924,89 +12265,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -16021,20 +12279,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/strip-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", @@ -16072,15 +12316,6 @@ "node": ">=8" } }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -16100,28 +12335,11 @@ "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", "license": "MIT" }, - "node_modules/style-to-js": { - "version": "1.1.21", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", - "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", - "license": "MIT", - "dependencies": { - "style-to-object": "1.0.14" - } - }, - "node_modules/style-to-object": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", - "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.7" - } - }, "node_modules/sucrase": { "version": "3.35.1", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", @@ -16144,6 +12362,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -16153,6 +12372,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -16165,6 +12385,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -16173,20 +12394,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swr": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.8.tgz", - "integrity": "sha512-gaCPRVoMq8WGDcWj9p4YWzCMPHzE0WNl6W8ADIx9c3JBEIdMkJGMzW+uzXvxHMltwcYACr9jP+32H8/hgwMR7w==", - "license": "MIT", - "peer": true, - "dependencies": { - "dequal": "^2.0.3", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/tabbable": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", @@ -16194,9 +12401,9 @@ "license": "MIT" }, "node_modules/tailwind-merge": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", - "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz", + "integrity": "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==", "license": "MIT", "funding": { "type": "github", @@ -16207,6 +12414,7 @@ "version": "3.4.19", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -16241,19 +12449,11 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", - "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", - "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -16263,38 +12463,13 @@ "node": ">=4" } }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/terser": { "version": "5.46.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "dev": true, "license": "BSD-2-Clause", + "optional": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -16312,12 +12487,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" + "dev": true, + "license": "MIT", + "optional": true }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, "license": "MIT", "dependencies": { "any-promise": "^1.0.0" @@ -16327,6 +12505,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" @@ -16335,16 +12514,11 @@ "node": ">=0.8" } }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -16361,6 +12535,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -16369,25 +12544,6 @@ "node": ">=8.0" } }, - "node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/trough": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", @@ -16415,6 +12571,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, "license": "Apache-2.0" }, "node_modules/tslib": { @@ -16460,92 +12617,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", @@ -16592,70 +12663,12 @@ "dev": true, "license": "MIT" }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", - "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", - "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/unidiff": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unidiff/-/unidiff-1.0.4.tgz", @@ -16684,18 +12697,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/unist-util-is": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", @@ -16709,19 +12710,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-position-from-estree": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", @@ -16795,25 +12783,17 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" } }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, "funding": [ { "type": "opencollective", @@ -16936,19 +12916,6 @@ "node": ">=8" } }, - "node_modules/vaul": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/vaul/-/vaul-0.9.9.tgz", - "integrity": "sha512-7afKg48srluhZwIkaU+lgGtFCUsYBSGOl8vcc8N/M3YQlZFlynHD15AE+pwrYdc826o7nrIND4lL9Y6b9WWZZQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-dialog": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", @@ -16977,32 +12944,11 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/victory-vendor": { - "version": "36.9.2", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", - "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, "node_modules/vite": { "version": "5.4.21", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -17059,29 +13005,6 @@ } } }, - "node_modules/vite-bundle-analyzer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/vite-bundle-analyzer/-/vite-bundle-analyzer-1.3.2.tgz", - "integrity": "sha512-Od4ILUKRvBV3LuO/E+S+c1XULlxdkRZPSf6Vzzu+UAXG0D3hZYUu9imZIkSj/PU4e1FB14yB+av8g3KiljH8zQ==", - "license": "MIT", - "bin": { - "analyze": "dist/bin.js" - } - }, - "node_modules/vite-plugin-compression": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", - "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "debug": "^4.3.3", - "fs-extra": "^10.0.0" - }, - "peerDependencies": { - "vite": ">=2.0.0" - } - }, "node_modules/vite-plugin-dts": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.4.tgz", @@ -17109,36 +13032,6 @@ } } }, - "node_modules/vite-plugin-pwa": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-1.2.0.tgz", - "integrity": "sha512-a2xld+SJshT9Lgcv8Ji4+srFJL4k/1bVbd1x06JIkvecpQkwkvCncD1+gSzcdm3s+owWLpMJerG3aN5jupJEVw==", - "license": "MIT", - "dependencies": { - "debug": "^4.3.6", - "pretty-bytes": "^6.1.1", - "tinyglobby": "^0.2.10", - "workbox-build": "^7.4.0", - "workbox-window": "^7.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vite-pwa/assets-generator": "^1.0.0", - "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "workbox-build": "^7.4.0", - "workbox-window": "^7.4.0" - }, - "peerDependenciesMeta": { - "@vite-pwa/assets-generator": { - "optional": true - } - } - }, "node_modules/vite/node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -17146,6 +13039,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17162,6 +13056,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17178,6 +13073,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17194,6 +13090,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17210,6 +13107,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17226,6 +13124,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17242,6 +13141,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17258,6 +13158,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17274,6 +13175,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17290,6 +13192,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17306,6 +13209,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17322,6 +13226,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17338,6 +13243,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17354,6 +13260,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17370,6 +13277,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17386,6 +13294,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17402,6 +13311,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17418,6 +13328,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17434,6 +13345,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17450,6 +13362,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17466,6 +13379,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17482,6 +13396,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17498,6 +13413,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -17511,6 +13427,7 @@ "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -17549,6 +13466,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -17603,23 +13521,6 @@ "node": ">= 8" } }, - "node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -17635,97 +13536,6 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wildcard": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", @@ -17742,383 +13552,18 @@ "node": ">=0.10.0" } }, - "node_modules/workbox-background-sync": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.4.0.tgz", - "integrity": "sha512-8CB9OxKAgKZKyNMwfGZ1XESx89GryWTfI+V5yEj8sHjFH8MFelUwYXEyldEK6M6oKMmn807GoJFUEA1sC4XS9w==", - "license": "MIT", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "7.4.0" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.4.0.tgz", - "integrity": "sha512-+eZQwoktlvo62cI0b+QBr40v5XjighxPq3Fzo9AWMiAosmpG5gxRHgTbGGhaJv/q/MFVxwFNGh/UwHZ/8K88lA==", - "license": "MIT", - "dependencies": { - "workbox-core": "7.4.0" - } - }, - "node_modules/workbox-build": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.4.0.tgz", - "integrity": "sha512-Ntk1pWb0caOFIvwz/hfgrov/OJ45wPEhI5PbTywQcYjyZiVhT3UrwwUPl6TRYbTm4moaFYithYnl1lvZ8UjxcA==", - "license": "MIT", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.24.4", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^15.2.3", - "@rollup/plugin-replace": "^2.4.1", - "@rollup/plugin-terser": "^0.4.3", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^11.0.1", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.79.2", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "7.4.0", - "workbox-broadcast-update": "7.4.0", - "workbox-cacheable-response": "7.4.0", - "workbox-core": "7.4.0", - "workbox-expiration": "7.4.0", - "workbox-google-analytics": "7.4.0", - "workbox-navigation-preload": "7.4.0", - "workbox-precaching": "7.4.0", - "workbox-range-requests": "7.4.0", - "workbox-recipes": "7.4.0", - "workbox-routing": "7.4.0", - "workbox-strategies": "7.4.0", - "workbox-streams": "7.4.0", - "workbox-sw": "7.4.0", - "workbox-window": "7.4.0" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "license": "MIT", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "license": "MIT", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/workbox-build/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "license": "MIT" - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/workbox-build/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "license": "MIT" - }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/workbox-build/node_modules/glob": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", - "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/workbox-build/node_modules/jackspeak": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", - "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/workbox-build/node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/workbox-build/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/workbox-build/node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/workbox-build/node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/workbox-build/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/workbox-build/node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/workbox-build/node_modules/rollup": { - "version": "2.79.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", - "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", - "license": "MIT", - "peer": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "deprecated": "The work that was done in this beta branch won't be included in future versions", - "license": "BSD-3-Clause", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.4.0.tgz", - "integrity": "sha512-0Fb8795zg/x23ISFkAc7lbWes6vbw34DGFIMw31cwuHPgDEC/5EYm6m/ZkylLX0EnEbbOyOCLjKgFS/Z5g0HeQ==", - "license": "MIT", - "dependencies": { - "workbox-core": "7.4.0" - } - }, "node_modules/workbox-core": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.4.0.tgz", "integrity": "sha512-6BMfd8tYEnN4baG4emG9U0hdXM4gGuDU3ectXuVHnj71vwxTFI7WOpQJC4siTOlVtGqCUtj0ZQNsrvi6kZZTAQ==", + "dev": true, "license": "MIT" }, - "node_modules/workbox-expiration": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.4.0.tgz", - "integrity": "sha512-V50p4BxYhtA80eOvulu8xVfPBgZbkxJ1Jr8UUn0rvqjGhLDqKNtfrDfjJKnLz2U8fO2xGQJTx/SKXNTzHOjnHw==", - "license": "MIT", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "7.4.0" - } - }, - "node_modules/workbox-google-analytics": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.4.0.tgz", - "integrity": "sha512-MVPXQslRF6YHkzGoFw1A4GIB8GrKym/A5+jYDUSL+AeJw4ytQGrozYdiZqUW1TPQHW8isBCBtyFJergUXyNoWQ==", - "license": "MIT", - "dependencies": { - "workbox-background-sync": "7.4.0", - "workbox-core": "7.4.0", - "workbox-routing": "7.4.0", - "workbox-strategies": "7.4.0" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.4.0.tgz", - "integrity": "sha512-etzftSgdQfjMcfPgbfaZCfM2QuR1P+4o8uCA2s4rf3chtKTq/Om7g/qvEOcZkG6v7JZOSOxVYQiOu6PbAZgU6w==", - "license": "MIT", - "dependencies": { - "workbox-core": "7.4.0" - } - }, "node_modules/workbox-precaching": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.4.0.tgz", "integrity": "sha512-VQs37T6jDqf1rTxUJZXRl3yjZMf5JX/vDPhmx2CPgDDKXATzEoqyRqhYnRoxl6Kr0rqaQlp32i9rtG5zTzIlNg==", + "dev": true, "license": "MIT", "dependencies": { "workbox-core": "7.4.0", @@ -18126,33 +13571,11 @@ "workbox-strategies": "7.4.0" } }, - "node_modules/workbox-range-requests": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.4.0.tgz", - "integrity": "sha512-3Vq854ZNuP6Y0KZOQWLaLC9FfM7ZaE+iuQl4VhADXybwzr4z/sMmnLgTeUZLq5PaDlcJBxYXQ3U91V7dwAIfvw==", - "license": "MIT", - "dependencies": { - "workbox-core": "7.4.0" - } - }, - "node_modules/workbox-recipes": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.4.0.tgz", - "integrity": "sha512-kOkWvsAn4H8GvAkwfJTbwINdv4voFoiE9hbezgB1sb/0NLyTG4rE7l6LvS8lLk5QIRIto+DjXLuAuG3Vmt3cxQ==", - "license": "MIT", - "dependencies": { - "workbox-cacheable-response": "7.4.0", - "workbox-core": "7.4.0", - "workbox-expiration": "7.4.0", - "workbox-precaching": "7.4.0", - "workbox-routing": "7.4.0", - "workbox-strategies": "7.4.0" - } - }, "node_modules/workbox-routing": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.4.0.tgz", "integrity": "sha512-C/ooj5uBWYAhAqwmU8HYQJdOjjDKBp9MzTQ+otpMmd+q0eF59K+NuXUek34wbL0RFrIXe/KKT+tUWcZcBqxbHQ==", + "dev": true, "license": "MIT", "dependencies": { "workbox-core": "7.4.0" @@ -18162,31 +13585,17 @@ "version": "7.4.0", "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.4.0.tgz", "integrity": "sha512-T4hVqIi5A4mHi92+5EppMX3cLaVywDp8nsyUgJhOZxcfSV/eQofcOA6/EMo5rnTNmNTpw0rUgjAI6LaVullPpg==", + "dev": true, "license": "MIT", "dependencies": { "workbox-core": "7.4.0" } }, - "node_modules/workbox-streams": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.4.0.tgz", - "integrity": "sha512-QHPBQrey7hQbnTs5GrEVoWz7RhHJXnPT+12qqWM378orDMo5VMJLCkCM1cnCk+8Eq92lccx/VgRZ7WAzZWbSLg==", - "license": "MIT", - "dependencies": { - "workbox-core": "7.4.0", - "workbox-routing": "7.4.0" - } - }, - "node_modules/workbox-sw": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.4.0.tgz", - "integrity": "sha512-ltU+Kr3qWR6BtbdlMnCjobZKzeV1hN+S6UvDywBrwM19TTyqA03X66dzw1tEIdJvQ4lYKkBFox6IAEhoSEZ8Xw==", - "license": "MIT" - }, "node_modules/workbox-window": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.4.0.tgz", "integrity": "sha512-/bIYdBLAVsNR3v7gYGaV4pQW3M3kEPx5E8vDxGvxo6khTrGtSSCS7QiFKv9ogzBgZiy0OXLP9zO28U/1nF1mfw==", + "dev": true, "license": "MIT", "dependencies": { "@types/trusted-types": "^2.0.2", @@ -18302,98 +13711,6 @@ } } }, - "node_modules/xregexp": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.2.tgz", - "integrity": "sha512-6hGgEMCGhqCTFEJbqmWrNIPqfpdirdGWkqshu7fFZddmTSfgv5Sn9D2SaKloR79s5VUiUlpwzg3CM3G6D3VIlw==", - "license": "MIT", - "dependencies": { - "@babel/runtime-corejs3": "^7.26.9" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yjs": { "version": "13.6.29", "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.29.tgz", @@ -18448,6 +13765,7 @@ "version": "5.0.11", "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.11.tgz", "integrity": "sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.20.0" diff --git a/packages/ecommerce/package.json b/packages/ecommerce/package.json index e1b932cc..52f3e1fd 100644 --- a/packages/ecommerce/package.json +++ b/packages/ecommerce/package.json @@ -16,6 +16,7 @@ "scripts": { "dev": "vite", "build": "vite build", + "dev:lib": "vite -c vite.config.lib.ts", "build:lib": "vite build -c vite.config.lib.ts", "build:dev": "vite build --mode development", "lint": "eslint .", @@ -69,6 +70,8 @@ "@radix-ui/react-toggle": "^1.1.9", "@radix-ui/react-toggle-group": "^1.1.10", "@radix-ui/react-tooltip": "^1.2.7", + "@stripe/react-stripe-js": "^5.6.0", + "@stripe/stripe-js": "^8.8.0", "@supabase/supabase-js": "^2.58.0", "@types/dompurify": "^3.2.0", "@types/file-saver": "^2.0.7", @@ -96,24 +99,21 @@ "openai": "^6.0.0", "playwright": "^1.55.1", "prismjs": "^1.30.0", + "tailwind-merge": "^3.5.0", "zod": "^3.25.76", "zod-to-json-schema": "^3.24.6" }, "peerDependencies": { + "@tanstack/react-query": "^5.83.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.30.1", - "@tanstack/react-query": "^5.83.0", "zustand": "^5.0.11" }, "devDependencies": { - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-router-dom": "^6.30.1", - "@tanstack/react-query": "^5.83.0", - "zustand": "^5.0.11", "@eslint/js": "^9.32.0", "@tailwindcss/typography": "^0.5.16", + "@tanstack/react-query": "^5.83.0", "@types/node": "^22.16.5", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", @@ -126,6 +126,9 @@ "globals": "^15.15.0", "lovable-tagger": "^1.1.10", "postcss": "^8.5.6", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.30.1", "tailwindcss": "^3.4.17", "typescript": "^5.8.3", "typescript-eslint": "^8.38.0", @@ -133,6 +136,7 @@ "vite-plugin-dts": "^4.5.4", "workbox-precaching": "^7.4.0", "workbox-routing": "^7.4.0", - "workbox-window": "^7.4.0" + "workbox-window": "^7.4.0", + "zustand": "^5.0.11" } -} \ No newline at end of file +} diff --git a/packages/ecommerce/readme.md b/packages/ecommerce/readme.md index 7854f5bd..fad9c08c 100644 --- a/packages/ecommerce/readme.md +++ b/packages/ecommerce/readme.md @@ -112,3 +112,7 @@ - [ ] Analytics tracking (Google Analytics / server-side events). - [ ] Scheduled feed validation to catch product/price issues. +## 8. Stripe Specifics + +https://docs.stripe.com/testing?testing-method=card-numbers +https://dashboard.stripe.com/test/payments diff --git a/packages/ecommerce/src/EcommerceBundle.tsx b/packages/ecommerce/src/EcommerceBundle.tsx index f4f4c7dd..7c16b5dc 100644 --- a/packages/ecommerce/src/EcommerceBundle.tsx +++ b/packages/ecommerce/src/EcommerceBundle.tsx @@ -28,6 +28,14 @@ export interface EcommerceBundleDependencies { // Optional config siteName?: string; contactEmail?: string; + /** Stripe publishable key — enables Stripe payment option. */ + stripePublishableKey?: string; + /** API base URL for Stripe endpoints (e.g. "http://localhost:3333"). */ + apiBaseUrl?: string; + /** Stripe return URL for redirect-based payment methods. */ + stripeReturnUrl?: string; + /** Currency code for Stripe (default: "eur"). */ + currency?: string; } export const EcommerceBundle: React.FC = (props) => { @@ -49,6 +57,10 @@ export const EcommerceBundle: React.FC = (props) => onBackToCart={() => props.onNavigate('/cart')} onOrderSuccess={() => props.onNavigate('/purchases')} toast={props.toast} + stripePublishableKey={props.stripePublishableKey} + apiBaseUrl={props.apiBaseUrl} + stripeReturnUrl={props.stripeReturnUrl} + currency={props.currency} /> ); } diff --git a/packages/ecommerce/src/checkout/CheckoutFlow.tsx b/packages/ecommerce/src/checkout/CheckoutFlow.tsx index e7549424..2a214dc4 100644 --- a/packages/ecommerce/src/checkout/CheckoutFlow.tsx +++ b/packages/ecommerce/src/checkout/CheckoutFlow.tsx @@ -1,5 +1,7 @@ import React, { useState, useEffect } from "react"; import { CheckoutPage, CheckoutPageProps, SavedAddress } from "./CheckoutPage"; +import { useCartStore } from "@/cart/useCartStore"; +import { loadStripe, type Stripe as StripeJS } from "@stripe/stripe-js"; export interface CheckoutFlowProps { /** The authenticated user's ID. */ @@ -23,6 +25,21 @@ export interface CheckoutFlowProps { success: (msg: string) => void; error: (msg: string) => void; }; + /** + * Stripe publishable key (pk_test_... or pk_live_...). + * If omitted the Stripe payment option will still render but remain + * in a "loading" state until the key is provided. + */ + stripePublishableKey?: string; + /** + * Base URL for the API server (e.g. "http://localhost:3333"). + * Used to call `/api/stripe/create-payment-intent`. + */ + apiBaseUrl?: string; + /** Stripe return URL for redirect-based payment methods. */ + stripeReturnUrl?: string; + /** Currency code for Stripe payments (default: "eur"). */ + currency?: string; } export function CheckoutFlow({ @@ -35,8 +52,15 @@ export function CheckoutFlow({ onBackToCart, onOrderSuccess, toast, + stripePublishableKey, + apiBaseUrl = "", + stripeReturnUrl, + currency = "eur", }: CheckoutFlowProps) { const [savedAddresses, setSavedAddresses] = useState([]); + const [stripePromise, setStripePromise] = useState | null>(null); + const [clientSecret, setClientSecret] = useState(null); + const subtotal = useCartStore((s) => s.subtotal); // 1. Fetch addresses on mount if user exists useEffect(() => { @@ -50,7 +74,37 @@ export function CheckoutFlow({ return () => { mounted = false; }; }, [userId, onFetchAddresses]); - // 2. Handle saving a new address + // 2. Load Stripe.js once we have a publishable key + useEffect(() => { + if (!stripePublishableKey) return; + setStripePromise(loadStripe(stripePublishableKey)); + }, [stripePublishableKey]); + + // 3. Create a PaymentIntent when the flow mounts (so the form is ready) + useEffect(() => { + if (!stripePublishableKey || subtotal <= 0) return; + let mounted = true; + + // Stripe expects amount in smallest currency unit (cents for USD) + const amountInCents = Math.round(subtotal * 100); + + fetch(`${apiBaseUrl}/api/stripe/create-payment-intent`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ amount: amountInCents, currency }), + }) + .then((r) => r.json()) + .then((data) => { + if (mounted && data.clientSecret) { + setClientSecret(data.clientSecret); + } + }) + .catch((err) => console.error("Failed to create PaymentIntent:", err)); + + return () => { mounted = false; }; + }, [stripePublishableKey, apiBaseUrl, subtotal]); + + // 4. Handle saving a new address const handleSaveAddress = async (address: any) => { if (!userId) return; try { @@ -77,7 +131,7 @@ export function CheckoutFlow({ } }; - // 3. Handle order placement + // 5. Handle order placement (for non-Stripe methods) const handlePlaceOrder = async (data: any) => { try { await onPlaceOrder(data); @@ -89,16 +143,26 @@ export function CheckoutFlow({ } }; - const checkoutProps: CheckoutPageProps = { - onPlaceOrder: handlePlaceOrder, - onSaveAddress: handleSaveAddress, - onBackToCart, - savedAddresses, - initialShipping: { - fullName: userDisplayName ?? "", - email: userEmail ?? "", - }, + // 6. Handle Stripe payment success (inline, no redirect) + const handleStripePaymentSuccess = () => { + toast?.success("Payment successful!"); + onOrderSuccess(); }; - return ; + return ( + + ); } diff --git a/packages/ecommerce/src/checkout/CheckoutPage.tsx b/packages/ecommerce/src/checkout/CheckoutPage.tsx index 90773aeb..439c44f6 100644 --- a/packages/ecommerce/src/checkout/CheckoutPage.tsx +++ b/packages/ecommerce/src/checkout/CheckoutPage.tsx @@ -9,6 +9,9 @@ import { cn } from "@/lib/utils"; import { useCartStore } from "@/cart/useCartStore"; import { OrderSummary } from "./OrderSummary"; import { PolicyLinks } from "@/policies/PolicyLinks"; +import { StripePaymentForm } from "./StripePaymentForm"; +import { Elements } from "@stripe/react-stripe-js"; +import type { Stripe as StripeJS } from "@stripe/stripe-js"; /** Shipping address fields collected at checkout. */ export interface ShippingAddress { @@ -29,7 +32,7 @@ export interface SavedAddress extends ShippingAddress { note?: string; } -export type PaymentMethod = "shopify" | "crypto"; +export type PaymentMethod = "shopify" | "crypto" | "stripe"; export interface CheckoutPageProps { /** Called when user submits the checkout form. */ @@ -49,6 +52,14 @@ export interface CheckoutPageProps { tax?: number; /** Pre-filled shipping cost. */ shipping?: number; + /** Stripe.js promise (from loadStripe). */ + stripePromise?: Promise | null; + /** Stripe PaymentIntent client secret. */ + stripeClientSecret?: string | null; + /** Called after Stripe payment succeeds inline (no redirect). */ + onStripePaymentSuccess?: () => void; + /** Stripe return URL for redirect-based payment methods. */ + stripeReturnUrl?: string; /** Optional extra class names. */ className?: string; } @@ -65,6 +76,10 @@ export function CheckoutPage({ savedAddresses, tax, shipping, + stripePromise, + stripeClientSecret, + onStripePaymentSuccess, + stripeReturnUrl, className, }: CheckoutPageProps) { const itemCount = useCartStore((s) => s.itemCount); @@ -134,227 +149,264 @@ export function CheckoutPage({ } return ( -
- {/* ---- Left: Shipping + Payment ---- */} -
- {/* Shipping */} - - - Shipping Information - - - {/* Saved Address Selector */} - {savedAddresses && savedAddresses.length > 0 && ( -
- +
+ + {/* ---- Left: Shipping + Payment ---- */} +
+ {/* Shipping */} + + + Shipping Information + + + {/* Saved Address Selector */} + {savedAddresses && savedAddresses.length > 0 && (
- {savedAddresses.map((addr) => ( + +
+ {savedAddresses.map((addr) => ( + + ))} - ))} - +
-
- )} + )} - {/* Form Fields */} -
-
- - field("fullName", e.target.value)} - /> -
- -
- - field("email", e.target.value)} - /> -
- -
- - field("address", e.target.value)} - /> -
- -
- - field("city", e.target.value)} - /> -
- -
- - field("zip", e.target.value)} - /> -
- -
- - field("country", e.target.value)} - /> -
- - {selectedAddressId === "custom" && onSaveAddress && ( -
- setSaveAddress(e.target.checked)} - className="h-4 w-4 rounded border-gray-300 accent-primary" + {/* Form Fields */} +
+
+ + field("fullName", e.target.value)} /> - +
+ +
+ + field("email", e.target.value)} + /> +
+ +
+ + field("address", e.target.value)} + /> +
+ +
+ + field("city", e.target.value)} + /> +
+ +
+ + field("zip", e.target.value)} + /> +
+ +
+ + field("country", e.target.value)} + /> +
+ + {selectedAddressId === "custom" && onSaveAddress && ( +
+ setSaveAddress(e.target.checked)} + className="h-4 w-4 rounded border-gray-300 accent-primary" + /> + +
+ )} +
+ + + + {/* Payment Method */} + + + Payment Method + + + + + + + + + {/* Inline Stripe Payment Form */} + {paymentMethod === "stripe" && stripePromise && stripeClientSecret && ( +
+ + +
)} -
- - + + +
- {/* Payment Method */} - - - Payment Method - - - + )} + + {onBackToCart && ( + + ← Back to Cart + + )} - - - -
- - {/* ---- Right: Summary + CTA ---- */} -
- - - - - - - {onBackToCart && ( - - )} - - -
- + +
+ +
); } diff --git a/packages/ecommerce/src/checkout/StripePaymentForm.tsx b/packages/ecommerce/src/checkout/StripePaymentForm.tsx new file mode 100644 index 00000000..85fe1763 --- /dev/null +++ b/packages/ecommerce/src/checkout/StripePaymentForm.tsx @@ -0,0 +1,125 @@ +import React, { useState } from "react"; +import { + PaymentElement, + LinkAuthenticationElement, + AddressElement, + useStripe, + useElements, +} from "@stripe/react-stripe-js"; +import { Button } from "@/components/ui/button"; +import { Loader2 } from "lucide-react"; + +export interface StripePaymentFormProps { + /** Called after Stripe confirms payment — receives the PaymentIntent data. */ + onPaymentSuccess?: (paymentIntent: { id: string; status: string;[key: string]: any }) => void; + /** Return URL after redirect-based payment methods (iDEAL, etc.). */ + returnUrl?: string; + /** Pre-fill the email field. */ + defaultEmail?: string; + /** Pre-fill the name field in billing details. */ + defaultName?: string; +} + +/* + +*/ + +/** + * Embedded Stripe payment form using PaymentElement. + * Must be rendered inside a Stripe `` provider. + */ +export function StripePaymentForm({ + onPaymentSuccess, + returnUrl, + defaultEmail, + defaultName, +}: StripePaymentFormProps) { + const stripe = useStripe(); + const elements = useElements(); + const [message, setMessage] = useState(null); + const [isLoading, setIsLoading] = useState(false); + + const handleSubmit = async () => { + if (!stripe || !elements) return; + + setIsLoading(true); + setMessage(null); + + const { error, paymentIntent } = await stripe.confirmPayment({ + elements, + confirmParams: { + return_url: returnUrl ?? `${window.location.origin}/completion`, + }, + redirect: "if_required", + }); + + if (error) { + if (error.type === "card_error" || error.type === "validation_error") { + setMessage(error.message ?? "Payment failed."); + } else { + setMessage("An unexpected error occurred."); + } + } else if (paymentIntent) { + // Payment succeeded without redirect + onPaymentSuccess?.({ + id: paymentIntent.id, + status: paymentIntent.status, + }); + } + + setIsLoading(false); + }; + + return ( +
+ + + + + + {message && ( +

{message}

+ )} +
+ ); +} diff --git a/packages/ecommerce/vite.config.lib.ts b/packages/ecommerce/vite.config.lib.ts index 6bf262bd..a0c057ec 100644 --- a/packages/ecommerce/vite.config.lib.ts +++ b/packages/ecommerce/vite.config.lib.ts @@ -33,7 +33,8 @@ export default defineConfig({ 'zustand', 'zustand/vanilla', 'zustand/react', - 'zustand/middleware' + 'zustand/middleware', + 'tailwind-merge' ], }, outDir: 'dist-lib',