@fayz-ai/storefront 0.84.2 → 0.84.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/CheckoutPage-G5NYJF3Z.js +12 -0
  2. package/dist/{CheckoutPage-DDY4WLFJ.js.map → CheckoutPage-G5NYJF3Z.js.map} +1 -1
  3. package/dist/MyPurchasesPage-GOK2RO7K.js +11 -0
  4. package/dist/{MyPurchasesPage-IHCB5QRR.js.map → MyPurchasesPage-GOK2RO7K.js.map} +1 -1
  5. package/dist/OrderConfirmationPage-DGLW5W75.js +10 -0
  6. package/dist/{OrderConfirmationPage-SAKAGOCC.js.map → OrderConfirmationPage-DGLW5W75.js.map} +1 -1
  7. package/dist/{chunk-PATS4DIF.js → chunk-2D5BEM43.js} +56 -16
  8. package/dist/chunk-2D5BEM43.js.map +1 -0
  9. package/dist/{chunk-OHWX6BEY.js → chunk-554XAQWK.js} +4 -4
  10. package/dist/{chunk-OHWX6BEY.js.map → chunk-554XAQWK.js.map} +1 -1
  11. package/dist/{chunk-GQ3TCJVX.js → chunk-F3U4KZC7.js} +4 -4
  12. package/dist/{chunk-GQ3TCJVX.js.map → chunk-F3U4KZC7.js.map} +1 -1
  13. package/dist/{chunk-MFAU3AWK.js → chunk-FPFGRUCS.js} +4 -4
  14. package/dist/{chunk-MFAU3AWK.js.map → chunk-FPFGRUCS.js.map} +1 -1
  15. package/dist/{chunk-6NUBVJJY.js → chunk-P4RRFQQX.js} +4 -4
  16. package/dist/{chunk-6NUBVJJY.js.map → chunk-P4RRFQQX.js.map} +1 -1
  17. package/dist/{chunk-D5C5U2SG.js → chunk-PURHMU2W.js} +3 -3
  18. package/dist/{chunk-D5C5U2SG.js.map → chunk-PURHMU2W.js.map} +1 -1
  19. package/dist/{chunk-K27LYMSF.js → chunk-RZWTEC6H.js} +3 -3
  20. package/dist/{chunk-K27LYMSF.js.map → chunk-RZWTEC6H.js.map} +1 -1
  21. package/dist/{chunk-JLCF7CPP.js → chunk-UJ2TIM4V.js} +9 -9
  22. package/dist/{chunk-JLCF7CPP.js.map → chunk-UJ2TIM4V.js.map} +1 -1
  23. package/dist/{chunk-CV6RYJIC.js → chunk-WSHCQ3Y6.js} +7 -7
  24. package/dist/{chunk-CV6RYJIC.js.map → chunk-WSHCQ3Y6.js.map} +1 -1
  25. package/dist/{chunk-DRMDBXMT.js → chunk-YSQBZ3RM.js} +6 -6
  26. package/dist/{chunk-DRMDBXMT.js.map → chunk-YSQBZ3RM.js.map} +1 -1
  27. package/dist/{chunk-WPWNYBNG.js → chunk-ZSNKJGE5.js} +3 -3
  28. package/dist/{chunk-WPWNYBNG.js.map → chunk-ZSNKJGE5.js.map} +1 -1
  29. package/dist/data/auth.d.ts +7 -0
  30. package/dist/data/auth.d.ts.map +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +17 -17
  34. package/dist/index.js.map +1 -1
  35. package/dist/render.js +6 -6
  36. package/dist/tanstack.js +5 -5
  37. package/package.json +2 -2
  38. package/dist/CheckoutPage-DDY4WLFJ.js +0 -12
  39. package/dist/MyPurchasesPage-IHCB5QRR.js +0 -11
  40. package/dist/OrderConfirmationPage-SAKAGOCC.js +0 -10
  41. package/dist/chunk-PATS4DIF.js.map +0 -1
@@ -1,10 +1,10 @@
1
- import { useMyOrders } from './chunk-WPWNYBNG.js';
2
- import { CustomerAccountShell, financialStatusBadge, OrderTrackingTimeline } from './chunk-D5C5U2SG.js';
1
+ import { useMyOrders } from './chunk-ZSNKJGE5.js';
2
+ import { CustomerAccountShell, financialStatusBadge, OrderTrackingTimeline } from './chunk-PURHMU2W.js';
3
3
  import { SkeletonGroup, Skeleton } from './chunk-FCPOPWG3.js';
4
- import { useAccountAddresses } from './chunk-OHWX6BEY.js';
5
- import { useDeliveryStore } from './chunk-K27LYMSF.js';
4
+ import { useAccountAddresses } from './chunk-554XAQWK.js';
5
+ import { useDeliveryStore } from './chunk-RZWTEC6H.js';
6
6
  import { parseAccountSection } from './chunk-DVQHKNNX.js';
7
- import { useSessionStore, useStorefrontHead, TID, SmoothImage, signUpCustomer, establishCustomerSession, EmailConfirmationRequiredError, formatMoney } from './chunk-PATS4DIF.js';
7
+ import { useSessionStore, useStorefrontHead, TID, SmoothImage, signUpCustomer, establishCustomerSession, EmailConfirmationRequiredError, formatMoney } from './chunk-2D5BEM43.js';
8
8
  import { useStorefrontConfig, useRoutePath, Link } from './chunk-GVZ2SAOI.js';
9
9
  import React, { useState } from 'react';
10
10
  import { Package, MapPin, CreditCard, QrCode } from 'lucide-react';
@@ -450,5 +450,5 @@ function MyPurchasesPage() {
450
450
  }
451
451
 
452
452
  export { MyPurchasesPage };
453
- //# sourceMappingURL=chunk-CV6RYJIC.js.map
454
- //# sourceMappingURL=chunk-CV6RYJIC.js.map
453
+ //# sourceMappingURL=chunk-WSHCQ3Y6.js.map
454
+ //# sourceMappingURL=chunk-WSHCQ3Y6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/views/MyPurchasesPage.tsx"],"names":[],"mappings":"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","file":"chunk-CV6RYJIC.js","sourcesContent":["import React, { useState } from 'react'\nimport { CreditCard, MapPin, Package, QrCode } from 'lucide-react'\nimport { getShopProvider } from '@fayz-ai/shop/runtime'\nimport { isValidCpf } from '@fayz-ai/shop'\nimport { useSessionStore } from '../stores/session.store'\nimport { establishCustomerSession, signUpCustomer, EmailConfirmationRequiredError } from '../data/auth'\nimport { useMyOrders } from '../hooks/use-my-orders'\nimport { useStorefrontConfig } from '../document/config'\nimport { Link, useRoutePath } from '../app/router'\nimport { formatMoney } from '../lib/format'\nimport { TID } from '../lib/testids'\nimport { useAccountAddresses } from '../components/delivery/AddressSheet'\nimport { useDeliveryStore } from '../stores/delivery.store'\nimport { CustomerAccountShell } from '../components/account/CustomerAccountShell'\nimport { parseAccountSection, type AccountSection } from '../components/account/section'\nimport { OrderTrackingTimeline } from '../components/order/OrderTrackingTimeline'\nimport { financialStatusBadge } from '../data/order-status'\nimport { useStorefrontHead } from '../hooks/use-storefront-head'\nimport { SmoothImage } from '../components/SmoothImage'\nimport { Skeleton, SkeletonGroup } from '../components/Skeleton'\nimport { describeError } from '@fayz-ai/core'\n\nfunction AuthForm() {\n const [mode, setMode] = useState<'signin' | 'signup'>('signin')\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const [confirmPassword, setConfirmPassword] = useState('')\n const [name, setName] = useState('')\n const [busy, setBusy] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [notice, setNotice] = useState<string | null>(null)\n\n async function submit(e: React.FormEvent) {\n e.preventDefault()\n setError(null)\n setNotice(null)\n if (!email.trim() || !password) return\n if (mode === 'signup' && !name.trim()) {\n setError('Informe seu nome.')\n return\n }\n // Checked here rather than left to the provider: a typo in a password\n // nobody can read back is only discovered at the next sign-in, and by\n // then the account exists with a password its owner never meant to set.\n if (mode === 'signup' && password !== confirmPassword) {\n setError('As senhas não são iguais.')\n return\n }\n setBusy(true)\n try {\n if (mode === 'signup') await signUpCustomer(email, password, name.trim())\n else await establishCustomerSession(email, { password })\n } catch (err) {\n if (err instanceof EmailConfirmationRequiredError) {\n setNotice('Cadastro realizado! Confirme seu e-mail para continuar.')\n } else {\n setError(describeError(err, 'Não foi possível entrar. Verifique seus dados.'))\n }\n } finally {\n setBusy(false)\n }\n }\n\n const tab = (id: 'signin' | 'signup', label: string, testId: string) => (\n <button\n type=\"button\"\n data-testid={testId}\n onClick={() => {\n setMode(id)\n setError(null)\n setNotice(null)\n }}\n className={`flex-1 border-b-2 pb-2.5 text-sm font-semibold transition-colors ${\n mode === id ? 'border-primary text-primary' : 'border-transparent text-muted-foreground hover:text-foreground'\n }`}\n >\n {label}\n </button>\n )\n\n return (\n <div className=\"mx-auto max-w-sm animate-fade-up border bg-card p-7\" style={{ borderRadius: 'var(--sf-radius-card)' }}>\n <h2 className=\"sf-heading text-xl font-semibold\">Minha conta</h2>\n <p className=\"mt-1 text-sm text-muted-foreground\">\n Acompanhe pedidos e acelere seus próximos checkouts.\n </p>\n <div className=\"mt-5 flex gap-2\">\n {tab('signin', 'Entrar', TID.authTabSignin)}\n {tab('signup', 'Criar conta', TID.authTabSignup)}\n </div>\n <form className=\"mt-5 space-y-3\" onSubmit={submit}>\n {mode === 'signup' && (\n <input\n data-testid={TID.signinName}\n type=\"text\"\n required\n placeholder=\"Nome completo\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n className=\"w-full border bg-background px-3 py-2.5 text-sm\"\n style={{ borderRadius: 'var(--sf-radius-input)' }}\n />\n )}\n <input\n data-testid={TID.signinEmail}\n type=\"email\"\n required\n placeholder=\"voce@exemplo.com\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className=\"w-full border bg-background px-3 py-2.5 text-sm\"\n style={{ borderRadius: 'var(--sf-radius-input)' }}\n />\n <input\n data-testid={TID.signinPassword}\n type=\"password\"\n required\n placeholder=\"Senha\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n className=\"w-full border bg-background px-3 py-2.5 text-sm\"\n style={{ borderRadius: 'var(--sf-radius-input)' }}\n />\n {mode === 'signup' && (\n <input\n data-testid={TID.signinPasswordConfirm}\n type=\"password\"\n required\n placeholder=\"Confirmar senha\"\n value={confirmPassword}\n onChange={(e) => setConfirmPassword(e.target.value)}\n aria-invalid={confirmPassword.length > 0 && password !== confirmPassword}\n className=\"w-full border bg-background px-3 py-2.5 text-sm\"\n style={{ borderRadius: 'var(--sf-radius-input)' }}\n />\n )}\n {notice && (\n <p data-testid={TID.authNotice} className=\"text-sm font-medium text-emerald-600\">{notice}</p>\n )}\n {error && (\n <p data-testid={TID.authError} className=\"text-sm text-destructive\">{error}</p>\n )}\n <button\n type=\"submit\"\n data-testid={TID.signinSubmit}\n disabled={busy}\n className=\"sf-cta w-full bg-primary py-3 font-semibold text-primary-foreground shadow-md transition-all hover:-translate-y-0.5 hover:shadow-lg disabled:opacity-60\"\n style={{ borderRadius: 'var(--sf-radius-button)' }}\n >\n {busy ? 'Entrando…' : mode === 'signup' ? 'Criar conta' : 'Entrar'}\n </button>\n </form>\n </div>\n )\n}\n\nfunction OrdersPanel() {\n const config = useStorefrontConfig()\n const { orders, loading } = useMyOrders()\n const money = (v: number) => formatMoney(v, config.currency, config.locale)\n\n if (loading) {\n return (\n <SkeletonGroup label=\"Carregando seus pedidos\" className=\"space-y-4\">\n {[0, 1].map((row) => (\n <div key={row} className=\"rounded-2xl border bg-card p-5\">\n <div className=\"flex items-center justify-between\">\n <Skeleton className=\"h-4 w-32\" />\n <Skeleton className=\"h-5 w-24 rounded-full\" />\n </div>\n <Skeleton className=\"mt-2 h-3 w-20\" />\n <div className=\"mt-4 flex items-center gap-2\">\n {[0, 1, 2, 3].map((node) => (\n <React.Fragment key={node}>\n <Skeleton className=\"h-6 w-6 shrink-0 rounded-full\" />\n {node < 3 && <Skeleton className=\"h-px flex-1\" />}\n </React.Fragment>\n ))}\n </div>\n <div className=\"mt-4 flex flex-wrap gap-2\">\n <Skeleton className=\"h-7 w-32 rounded-lg\" />\n <Skeleton className=\"h-7 w-24 rounded-lg\" />\n </div>\n <div className=\"mt-3 flex items-center justify-between border-t pt-3\">\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-20\" />\n </div>\n </div>\n ))}\n </SkeletonGroup>\n )\n }\n if (orders.length === 0) {\n return (\n <div data-testid={TID.purchasesEmpty} className=\"rounded-2xl border bg-card py-16 text-center\">\n <Package className=\"mx-auto h-10 w-10 text-muted-foreground\" />\n <p className=\"mt-3 text-muted-foreground\">Você ainda não tem pedidos.</p>\n <Link to=\"/\" className=\"mt-4 inline-block text-primary underline\">Explorar a loja</Link>\n </div>\n )\n }\n return (\n <ul data-testid={TID.purchasesList} className=\"space-y-4\">\n {orders.map((order) => (\n <li\n key={order.id}\n data-testid={TID.purchaseItem}\n data-order-number={order.orderNumber}\n className=\"rounded-2xl border bg-card p-5\"\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"font-semibold\">Pedido #{order.orderNumber}</span>\n <span className={`inline-flex rounded-full px-2.5 py-0.5 text-xs font-medium ${financialStatusBadge(order.financialStatus).className}`}>\n {financialStatusBadge(order.financialStatus).label}\n </span>\n </div>\n <p className=\"mt-0.5 text-xs text-muted-foreground\">\n {new Date(order.createdAt).toLocaleDateString(config.locale)}\n </p>\n <div className=\"mt-4\">\n <OrderTrackingTimeline order={order} compact />\n </div>\n <ul className=\"mt-3 flex flex-wrap gap-2\">\n {order.items.map((item) => (\n <li key={item.id} className=\"flex items-center gap-2 rounded-lg border px-2 py-1 text-xs\">\n {item.imageUrl && <SmoothImage src={item.imageUrl} alt={item.name} className=\"h-6 w-6 rounded object-cover\" variant={{ width: 24 }} />}\n {item.name} × {item.quantity}\n </li>\n ))}\n </ul>\n <div className=\"mt-3 flex items-center justify-between border-t pt-3 text-sm\">\n <Link to={`/order/${order.id}`} className=\"font-medium text-primary hover:underline\">\n Ver detalhes\n </Link>\n <span>\n <span className=\"mr-2 text-muted-foreground\">Total</span>\n <span className=\"font-semibold\" data-price={order.total.toFixed(2)}>{money(order.total)}</span>\n </span>\n </div>\n </li>\n ))}\n </ul>\n )\n}\n\n/** «(21) 97122-1016» from digits; partial input stays partial. */\nfunction maskPhone(raw: string): string {\n const d = raw.replace(/\\D/g, '').replace(/^55(?=\\d{10,11}$)/, '').slice(0, 11)\n if (d.length <= 2) return d ? `(${d}` : ''\n if (d.length <= 6) return `(${d.slice(0, 2)}) ${d.slice(2)}`\n const head = d.length === 11 ? 7 : 6\n return `(${d.slice(0, 2)}) ${d.slice(2, head)}-${d.slice(head)}`\n}\n\nfunction maskCpf(raw: string): string {\n const d = raw.replace(/\\D/g, '').slice(0, 11)\n return [d.slice(0, 3), d.slice(3, 6), d.slice(6, 9)].filter(Boolean).join('.') + (d.length > 9 ? `-${d.slice(9)}` : '')\n}\n\nconst field = 'mt-1 w-full rounded-lg border bg-background px-3 py-2.5 text-sm'\n\n/**\n * The buyer's own data (shop 0133): name, phone, CPF and date of birth, read\n * and saved through shop_my_profile / shop_save_my_profile — a shopper is not a\n * member of the store, so a plain customer UPDATE is refused by RLS. Phone and\n * CPF open prefilled from the last order when the profile never had them.\n */\nfunction ProfilePanel() {\n const session = useSessionStore()\n const provider = getShopProvider()\n const supported = typeof provider.getMyProfile === 'function' && typeof provider.saveMyProfile === 'function'\n const [name, setName] = useState(session.name ?? '')\n const [phone, setPhone] = useState('')\n const [cpf, setCpf] = useState('')\n const [birthDate, setBirthDate] = useState('')\n const [loading, setLoading] = useState(supported)\n const [saving, setSaving] = useState(false)\n const [saved, setSaved] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n React.useEffect(() => {\n if (!supported) return\n let cancelled = false\n provider.getMyProfile!()\n .then((p) => {\n if (cancelled || !p) return\n const full = [p.firstName, p.lastName].filter(Boolean).join(' ').trim()\n if (full) setName(full)\n setPhone(maskPhone(p.phone ?? ''))\n setCpf(maskCpf(p.document ?? ''))\n setBirthDate(p.birthDate ?? '')\n })\n .catch(() => { /* the form still saves; it just opens empty */ })\n .finally(() => { if (!cancelled) setLoading(false) })\n return () => { cancelled = true }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supported])\n\n const edit = <T,>(set: (v: T) => void) => (v: T) => { set(v); setSaved(false); setError(null) }\n\n async function save(e: React.FormEvent) {\n e.preventDefault()\n const trimmed = name.trim()\n if (!trimmed) { setError('Informe seu nome.'); return }\n const phoneDigits = phone.replace(/\\D/g, '')\n if (phoneDigits && phoneDigits.length !== 10 && phoneDigits.length !== 11) {\n setError('Celular inválido: use o DDD e o número.'); return\n }\n const cpfDigits = cpf.replace(/\\D/g, '')\n if (cpfDigits && !isValidCpf(cpfDigits)) { setError('CPF inválido. Confira os números.'); return }\n setSaving(true)\n setSaved(false)\n setError(null)\n try {\n if (supported) {\n await provider.saveMyProfile!({\n name: trimmed,\n phone: phoneDigits || null,\n document: cpfDigits || null,\n birthDate: birthDate || null,\n })\n } else if (session.customerId) {\n const parts = trimmed.split(/\\s+/).filter(Boolean)\n await provider.updateCustomer(session.customerId, { firstName: parts[0] ?? trimmed, lastName: parts.slice(1).join(' ') })\n }\n // Only after the write landed: mirroring the new name locally on a failed\n // save is how this looked like it worked while the record never changed.\n useSessionStore.setState({ name: trimmed })\n setSaved(true)\n } catch (err) {\n setError(err instanceof Error && err.message ? err.message : 'Não foi possível salvar agora. Tente novamente em instantes.')\n } finally {\n setSaving(false)\n }\n }\n\n const today = new Date().toISOString().slice(0, 10)\n\n return (\n <form onSubmit={save} className=\"max-w-md rounded-2xl border bg-card p-6\" data-testid=\"account-profile\">\n <h2 className=\"sf-heading text-lg font-semibold\">Perfil</h2>\n <p className=\"mt-1 text-sm text-muted-foreground\">Seus dados para os próximos pedidos.</p>\n <fieldset disabled={loading || saving} className=\"contents\">\n <label className=\"mt-5 block text-sm font-medium\">\n Nome completo\n <input value={name} onChange={(e) => edit(setName)(e.target.value)} className={field} placeholder=\"Seu nome\" autoComplete=\"name\" />\n </label>\n <label className=\"mt-4 block text-sm font-medium\">\n E-mail\n <input\n value={session.email ?? ''}\n readOnly\n className=\"mt-1 w-full cursor-not-allowed rounded-lg border bg-muted/40 px-3 py-2.5 text-sm text-muted-foreground\"\n />\n </label>\n <label className=\"mt-4 block text-sm font-medium\">\n Celular\n <input\n value={phone}\n onChange={(e) => edit(setPhone)(maskPhone(e.target.value))}\n className={field}\n placeholder=\"(21) 99999-9999\"\n inputMode=\"tel\"\n autoComplete=\"tel-national\"\n data-testid=\"profile-phone\"\n />\n </label>\n <div className=\"mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2\">\n <label className=\"block text-sm font-medium\">\n CPF\n <input\n value={cpf}\n onChange={(e) => edit(setCpf)(maskCpf(e.target.value))}\n className={field}\n placeholder=\"000.000.000-00\"\n inputMode=\"numeric\"\n data-testid=\"profile-cpf\"\n />\n </label>\n <label className=\"block text-sm font-medium\">\n Data de nascimento\n <input\n type=\"date\"\n value={birthDate}\n max={today}\n min=\"1900-01-01\"\n onChange={(e) => edit(setBirthDate)(e.target.value)}\n className={`${field} [color-scheme:light] dark:[color-scheme:dark]`}\n autoComplete=\"bday\"\n data-testid=\"profile-birth-date\"\n />\n </label>\n </div>\n </fieldset>\n <div className=\"mt-5 flex items-center gap-3\">\n <button\n type=\"submit\"\n disabled={saving || loading}\n className=\"sf-cta rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground disabled:opacity-60\"\n data-testid=\"profile-save\"\n >\n {saving ? 'Salvando…' : 'Salvar'}\n </button>\n {saved && <span className=\"text-sm font-medium text-emerald-600\">Salvo</span>}\n </div>\n {error && <p role=\"alert\" className=\"mt-3 text-sm text-destructive\">{error}</p>}\n </form>\n )\n}\n\nfunction AddressesPanel() {\n const config = useStorefrontConfig()\n const customerId = useSessionStore((s) => s.customerId)\n const account = useAccountAddresses(customerId)\n const browser = useDeliveryStore((s) => s.savedAddresses)\n const removeAddress = useDeliveryStore((s) => s.removeAddress)\n const empty = account.length === 0 && browser.length === 0\n return (\n <div className=\"rounded-2xl border bg-card p-6\" data-testid=\"account-addresses\">\n <div className=\"flex items-center gap-2\">\n <MapPin className=\"h-5 w-5 text-primary\" />\n <h2 className=\"sf-heading text-lg font-semibold\">Endereços</h2>\n </div>\n {empty ? (\n <p className=\"mt-2 text-sm text-muted-foreground\">\n Nenhum endereço salvo ainda. Ele fica salvo quando você informa onde receber no cardápio ou no checkout.\n </p>\n ) : (\n <ul className=\"mt-4 space-y-2\">\n {account.map((a) => (\n <li key={`account-${a.id}`} className=\"rounded-lg border p-3 text-sm\">\n <span className=\"block font-medium\">{a.label ?? `${a.street}${a.number ? `, ${a.number}` : ''}`}</span>\n <span className=\"block text-xs text-muted-foreground\">\n {[a.label ? `${a.street}${a.number ? `, ${a.number}` : ''}` : null, a.complement, a.district, a.city].filter(Boolean).join(' · ')}\n </span>\n </li>\n ))}\n {browser.map((a) => (\n <li key={a.id} className=\"flex items-start gap-2 rounded-lg border p-3 text-sm\">\n <span className=\"min-w-0 flex-1\">\n <span className=\"block font-medium\">{a.label ?? `${a.street}, ${a.number}`}</span>\n <span className=\"block text-xs text-muted-foreground\">\n {[a.label ? `${a.street}, ${a.number}` : null, a.complement, a.district, a.city].filter(Boolean).join(' · ')}\n </span>\n <span className=\"mt-0.5 block text-[11px] text-muted-foreground\">Salvo neste aparelho</span>\n </span>\n <button type=\"button\" onClick={() => removeAddress(a.id)} className=\"text-xs font-semibold text-destructive\">\n Remover\n </button>\n </li>\n ))}\n </ul>\n )}\n <Link to={config.catalogPath} className=\"mt-4 inline-block text-sm font-semibold text-primary underline\">\n Continuar comprando\n </Link>\n </div>\n )\n}\n\nfunction PaymentsPanel() {\n return (\n <div className=\"rounded-2xl border bg-card p-6\">\n <div className=\"flex items-center gap-2\">\n <CreditCard className=\"h-5 w-5 text-primary\" />\n <h2 className=\"sf-heading text-lg font-semibold\">Pagamentos</h2>\n </div>\n <p className=\"mt-2 text-sm text-muted-foreground\">\n Os pagamentos são processados com segurança no checkout — nenhum dado de pagamento fica salvo nesta conta.\n </p>\n <div className=\"mt-4 flex items-center gap-2 rounded-lg bg-muted/40 px-3 py-2.5 text-sm\">\n <QrCode className=\"h-4 w-4 text-primary\" />\n <span>Pix e cartão via Mercado Pago no momento da compra.</span>\n </div>\n </div>\n )\n}\n\nconst SECTION_SUBTITLE: Record<AccountSection, string> = {\n profile: 'Seus dados de contato.',\n orders: 'Acompanhe seus pedidos e entregas.',\n addresses: 'Endereços de entrega.',\n payments: 'Como você paga na loja.',\n}\n\nexport function MyPurchasesPage() {\n const config = useStorefrontConfig()\n const session = useSessionStore()\n const section = parseAccountSection(useRoutePath())\n useStorefrontHead({ title: `Minha conta — ${config.name}` })\n\n if (!session.email) {\n return (\n <main className=\"mx-auto max-w-3xl px-4 py-12 sm:px-6\">\n <AuthForm />\n </main>\n )\n }\n\n return (\n <CustomerAccountShell\n title=\"Minha conta\"\n subtitle={SECTION_SUBTITLE[section]}\n active={section}\n >\n {section === 'profile' && <ProfilePanel />}\n {section === 'orders' && <OrdersPanel />}\n {section === 'addresses' && <AddressesPanel />}\n {section === 'payments' && <PaymentsPanel />}\n </CustomerAccountShell>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/views/MyPurchasesPage.tsx"],"names":[],"mappings":"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","file":"chunk-WSHCQ3Y6.js","sourcesContent":["import React, { useState } from 'react'\nimport { CreditCard, MapPin, Package, QrCode } from 'lucide-react'\nimport { getShopProvider } from '@fayz-ai/shop/runtime'\nimport { isValidCpf } from '@fayz-ai/shop'\nimport { useSessionStore } from '../stores/session.store'\nimport { establishCustomerSession, signUpCustomer, EmailConfirmationRequiredError } from '../data/auth'\nimport { useMyOrders } from '../hooks/use-my-orders'\nimport { useStorefrontConfig } from '../document/config'\nimport { Link, useRoutePath } from '../app/router'\nimport { formatMoney } from '../lib/format'\nimport { TID } from '../lib/testids'\nimport { useAccountAddresses } from '../components/delivery/AddressSheet'\nimport { useDeliveryStore } from '../stores/delivery.store'\nimport { CustomerAccountShell } from '../components/account/CustomerAccountShell'\nimport { parseAccountSection, type AccountSection } from '../components/account/section'\nimport { OrderTrackingTimeline } from '../components/order/OrderTrackingTimeline'\nimport { financialStatusBadge } from '../data/order-status'\nimport { useStorefrontHead } from '../hooks/use-storefront-head'\nimport { SmoothImage } from '../components/SmoothImage'\nimport { Skeleton, SkeletonGroup } from '../components/Skeleton'\nimport { describeError } from '@fayz-ai/core'\n\nfunction AuthForm() {\n const [mode, setMode] = useState<'signin' | 'signup'>('signin')\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const [confirmPassword, setConfirmPassword] = useState('')\n const [name, setName] = useState('')\n const [busy, setBusy] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [notice, setNotice] = useState<string | null>(null)\n\n async function submit(e: React.FormEvent) {\n e.preventDefault()\n setError(null)\n setNotice(null)\n if (!email.trim() || !password) return\n if (mode === 'signup' && !name.trim()) {\n setError('Informe seu nome.')\n return\n }\n // Checked here rather than left to the provider: a typo in a password\n // nobody can read back is only discovered at the next sign-in, and by\n // then the account exists with a password its owner never meant to set.\n if (mode === 'signup' && password !== confirmPassword) {\n setError('As senhas não são iguais.')\n return\n }\n setBusy(true)\n try {\n if (mode === 'signup') await signUpCustomer(email, password, name.trim())\n else await establishCustomerSession(email, { password })\n } catch (err) {\n if (err instanceof EmailConfirmationRequiredError) {\n setNotice('Cadastro realizado! Confirme seu e-mail para continuar.')\n } else {\n setError(describeError(err, 'Não foi possível entrar. Verifique seus dados.'))\n }\n } finally {\n setBusy(false)\n }\n }\n\n const tab = (id: 'signin' | 'signup', label: string, testId: string) => (\n <button\n type=\"button\"\n data-testid={testId}\n onClick={() => {\n setMode(id)\n setError(null)\n setNotice(null)\n }}\n className={`flex-1 border-b-2 pb-2.5 text-sm font-semibold transition-colors ${\n mode === id ? 'border-primary text-primary' : 'border-transparent text-muted-foreground hover:text-foreground'\n }`}\n >\n {label}\n </button>\n )\n\n return (\n <div className=\"mx-auto max-w-sm animate-fade-up border bg-card p-7\" style={{ borderRadius: 'var(--sf-radius-card)' }}>\n <h2 className=\"sf-heading text-xl font-semibold\">Minha conta</h2>\n <p className=\"mt-1 text-sm text-muted-foreground\">\n Acompanhe pedidos e acelere seus próximos checkouts.\n </p>\n <div className=\"mt-5 flex gap-2\">\n {tab('signin', 'Entrar', TID.authTabSignin)}\n {tab('signup', 'Criar conta', TID.authTabSignup)}\n </div>\n <form className=\"mt-5 space-y-3\" onSubmit={submit}>\n {mode === 'signup' && (\n <input\n data-testid={TID.signinName}\n type=\"text\"\n required\n placeholder=\"Nome completo\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n className=\"w-full border bg-background px-3 py-2.5 text-sm\"\n style={{ borderRadius: 'var(--sf-radius-input)' }}\n />\n )}\n <input\n data-testid={TID.signinEmail}\n type=\"email\"\n required\n placeholder=\"voce@exemplo.com\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className=\"w-full border bg-background px-3 py-2.5 text-sm\"\n style={{ borderRadius: 'var(--sf-radius-input)' }}\n />\n <input\n data-testid={TID.signinPassword}\n type=\"password\"\n required\n placeholder=\"Senha\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n className=\"w-full border bg-background px-3 py-2.5 text-sm\"\n style={{ borderRadius: 'var(--sf-radius-input)' }}\n />\n {mode === 'signup' && (\n <input\n data-testid={TID.signinPasswordConfirm}\n type=\"password\"\n required\n placeholder=\"Confirmar senha\"\n value={confirmPassword}\n onChange={(e) => setConfirmPassword(e.target.value)}\n aria-invalid={confirmPassword.length > 0 && password !== confirmPassword}\n className=\"w-full border bg-background px-3 py-2.5 text-sm\"\n style={{ borderRadius: 'var(--sf-radius-input)' }}\n />\n )}\n {notice && (\n <p data-testid={TID.authNotice} className=\"text-sm font-medium text-emerald-600\">{notice}</p>\n )}\n {error && (\n <p data-testid={TID.authError} className=\"text-sm text-destructive\">{error}</p>\n )}\n <button\n type=\"submit\"\n data-testid={TID.signinSubmit}\n disabled={busy}\n className=\"sf-cta w-full bg-primary py-3 font-semibold text-primary-foreground shadow-md transition-all hover:-translate-y-0.5 hover:shadow-lg disabled:opacity-60\"\n style={{ borderRadius: 'var(--sf-radius-button)' }}\n >\n {busy ? 'Entrando…' : mode === 'signup' ? 'Criar conta' : 'Entrar'}\n </button>\n </form>\n </div>\n )\n}\n\nfunction OrdersPanel() {\n const config = useStorefrontConfig()\n const { orders, loading } = useMyOrders()\n const money = (v: number) => formatMoney(v, config.currency, config.locale)\n\n if (loading) {\n return (\n <SkeletonGroup label=\"Carregando seus pedidos\" className=\"space-y-4\">\n {[0, 1].map((row) => (\n <div key={row} className=\"rounded-2xl border bg-card p-5\">\n <div className=\"flex items-center justify-between\">\n <Skeleton className=\"h-4 w-32\" />\n <Skeleton className=\"h-5 w-24 rounded-full\" />\n </div>\n <Skeleton className=\"mt-2 h-3 w-20\" />\n <div className=\"mt-4 flex items-center gap-2\">\n {[0, 1, 2, 3].map((node) => (\n <React.Fragment key={node}>\n <Skeleton className=\"h-6 w-6 shrink-0 rounded-full\" />\n {node < 3 && <Skeleton className=\"h-px flex-1\" />}\n </React.Fragment>\n ))}\n </div>\n <div className=\"mt-4 flex flex-wrap gap-2\">\n <Skeleton className=\"h-7 w-32 rounded-lg\" />\n <Skeleton className=\"h-7 w-24 rounded-lg\" />\n </div>\n <div className=\"mt-3 flex items-center justify-between border-t pt-3\">\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-20\" />\n </div>\n </div>\n ))}\n </SkeletonGroup>\n )\n }\n if (orders.length === 0) {\n return (\n <div data-testid={TID.purchasesEmpty} className=\"rounded-2xl border bg-card py-16 text-center\">\n <Package className=\"mx-auto h-10 w-10 text-muted-foreground\" />\n <p className=\"mt-3 text-muted-foreground\">Você ainda não tem pedidos.</p>\n <Link to=\"/\" className=\"mt-4 inline-block text-primary underline\">Explorar a loja</Link>\n </div>\n )\n }\n return (\n <ul data-testid={TID.purchasesList} className=\"space-y-4\">\n {orders.map((order) => (\n <li\n key={order.id}\n data-testid={TID.purchaseItem}\n data-order-number={order.orderNumber}\n className=\"rounded-2xl border bg-card p-5\"\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"font-semibold\">Pedido #{order.orderNumber}</span>\n <span className={`inline-flex rounded-full px-2.5 py-0.5 text-xs font-medium ${financialStatusBadge(order.financialStatus).className}`}>\n {financialStatusBadge(order.financialStatus).label}\n </span>\n </div>\n <p className=\"mt-0.5 text-xs text-muted-foreground\">\n {new Date(order.createdAt).toLocaleDateString(config.locale)}\n </p>\n <div className=\"mt-4\">\n <OrderTrackingTimeline order={order} compact />\n </div>\n <ul className=\"mt-3 flex flex-wrap gap-2\">\n {order.items.map((item) => (\n <li key={item.id} className=\"flex items-center gap-2 rounded-lg border px-2 py-1 text-xs\">\n {item.imageUrl && <SmoothImage src={item.imageUrl} alt={item.name} className=\"h-6 w-6 rounded object-cover\" variant={{ width: 24 }} />}\n {item.name} × {item.quantity}\n </li>\n ))}\n </ul>\n <div className=\"mt-3 flex items-center justify-between border-t pt-3 text-sm\">\n <Link to={`/order/${order.id}`} className=\"font-medium text-primary hover:underline\">\n Ver detalhes\n </Link>\n <span>\n <span className=\"mr-2 text-muted-foreground\">Total</span>\n <span className=\"font-semibold\" data-price={order.total.toFixed(2)}>{money(order.total)}</span>\n </span>\n </div>\n </li>\n ))}\n </ul>\n )\n}\n\n/** «(21) 97122-1016» from digits; partial input stays partial. */\nfunction maskPhone(raw: string): string {\n const d = raw.replace(/\\D/g, '').replace(/^55(?=\\d{10,11}$)/, '').slice(0, 11)\n if (d.length <= 2) return d ? `(${d}` : ''\n if (d.length <= 6) return `(${d.slice(0, 2)}) ${d.slice(2)}`\n const head = d.length === 11 ? 7 : 6\n return `(${d.slice(0, 2)}) ${d.slice(2, head)}-${d.slice(head)}`\n}\n\nfunction maskCpf(raw: string): string {\n const d = raw.replace(/\\D/g, '').slice(0, 11)\n return [d.slice(0, 3), d.slice(3, 6), d.slice(6, 9)].filter(Boolean).join('.') + (d.length > 9 ? `-${d.slice(9)}` : '')\n}\n\nconst field = 'mt-1 w-full rounded-lg border bg-background px-3 py-2.5 text-sm'\n\n/**\n * The buyer's own data (shop 0133): name, phone, CPF and date of birth, read\n * and saved through shop_my_profile / shop_save_my_profile — a shopper is not a\n * member of the store, so a plain customer UPDATE is refused by RLS. Phone and\n * CPF open prefilled from the last order when the profile never had them.\n */\nfunction ProfilePanel() {\n const session = useSessionStore()\n const provider = getShopProvider()\n const supported = typeof provider.getMyProfile === 'function' && typeof provider.saveMyProfile === 'function'\n const [name, setName] = useState(session.name ?? '')\n const [phone, setPhone] = useState('')\n const [cpf, setCpf] = useState('')\n const [birthDate, setBirthDate] = useState('')\n const [loading, setLoading] = useState(supported)\n const [saving, setSaving] = useState(false)\n const [saved, setSaved] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n React.useEffect(() => {\n if (!supported) return\n let cancelled = false\n provider.getMyProfile!()\n .then((p) => {\n if (cancelled || !p) return\n const full = [p.firstName, p.lastName].filter(Boolean).join(' ').trim()\n if (full) setName(full)\n setPhone(maskPhone(p.phone ?? ''))\n setCpf(maskCpf(p.document ?? ''))\n setBirthDate(p.birthDate ?? '')\n })\n .catch(() => { /* the form still saves; it just opens empty */ })\n .finally(() => { if (!cancelled) setLoading(false) })\n return () => { cancelled = true }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supported])\n\n const edit = <T,>(set: (v: T) => void) => (v: T) => { set(v); setSaved(false); setError(null) }\n\n async function save(e: React.FormEvent) {\n e.preventDefault()\n const trimmed = name.trim()\n if (!trimmed) { setError('Informe seu nome.'); return }\n const phoneDigits = phone.replace(/\\D/g, '')\n if (phoneDigits && phoneDigits.length !== 10 && phoneDigits.length !== 11) {\n setError('Celular inválido: use o DDD e o número.'); return\n }\n const cpfDigits = cpf.replace(/\\D/g, '')\n if (cpfDigits && !isValidCpf(cpfDigits)) { setError('CPF inválido. Confira os números.'); return }\n setSaving(true)\n setSaved(false)\n setError(null)\n try {\n if (supported) {\n await provider.saveMyProfile!({\n name: trimmed,\n phone: phoneDigits || null,\n document: cpfDigits || null,\n birthDate: birthDate || null,\n })\n } else if (session.customerId) {\n const parts = trimmed.split(/\\s+/).filter(Boolean)\n await provider.updateCustomer(session.customerId, { firstName: parts[0] ?? trimmed, lastName: parts.slice(1).join(' ') })\n }\n // Only after the write landed: mirroring the new name locally on a failed\n // save is how this looked like it worked while the record never changed.\n useSessionStore.setState({ name: trimmed })\n setSaved(true)\n } catch (err) {\n setError(err instanceof Error && err.message ? err.message : 'Não foi possível salvar agora. Tente novamente em instantes.')\n } finally {\n setSaving(false)\n }\n }\n\n const today = new Date().toISOString().slice(0, 10)\n\n return (\n <form onSubmit={save} className=\"max-w-md rounded-2xl border bg-card p-6\" data-testid=\"account-profile\">\n <h2 className=\"sf-heading text-lg font-semibold\">Perfil</h2>\n <p className=\"mt-1 text-sm text-muted-foreground\">Seus dados para os próximos pedidos.</p>\n <fieldset disabled={loading || saving} className=\"contents\">\n <label className=\"mt-5 block text-sm font-medium\">\n Nome completo\n <input value={name} onChange={(e) => edit(setName)(e.target.value)} className={field} placeholder=\"Seu nome\" autoComplete=\"name\" />\n </label>\n <label className=\"mt-4 block text-sm font-medium\">\n E-mail\n <input\n value={session.email ?? ''}\n readOnly\n className=\"mt-1 w-full cursor-not-allowed rounded-lg border bg-muted/40 px-3 py-2.5 text-sm text-muted-foreground\"\n />\n </label>\n <label className=\"mt-4 block text-sm font-medium\">\n Celular\n <input\n value={phone}\n onChange={(e) => edit(setPhone)(maskPhone(e.target.value))}\n className={field}\n placeholder=\"(21) 99999-9999\"\n inputMode=\"tel\"\n autoComplete=\"tel-national\"\n data-testid=\"profile-phone\"\n />\n </label>\n <div className=\"mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2\">\n <label className=\"block text-sm font-medium\">\n CPF\n <input\n value={cpf}\n onChange={(e) => edit(setCpf)(maskCpf(e.target.value))}\n className={field}\n placeholder=\"000.000.000-00\"\n inputMode=\"numeric\"\n data-testid=\"profile-cpf\"\n />\n </label>\n <label className=\"block text-sm font-medium\">\n Data de nascimento\n <input\n type=\"date\"\n value={birthDate}\n max={today}\n min=\"1900-01-01\"\n onChange={(e) => edit(setBirthDate)(e.target.value)}\n className={`${field} [color-scheme:light] dark:[color-scheme:dark]`}\n autoComplete=\"bday\"\n data-testid=\"profile-birth-date\"\n />\n </label>\n </div>\n </fieldset>\n <div className=\"mt-5 flex items-center gap-3\">\n <button\n type=\"submit\"\n disabled={saving || loading}\n className=\"sf-cta rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground disabled:opacity-60\"\n data-testid=\"profile-save\"\n >\n {saving ? 'Salvando…' : 'Salvar'}\n </button>\n {saved && <span className=\"text-sm font-medium text-emerald-600\">Salvo</span>}\n </div>\n {error && <p role=\"alert\" className=\"mt-3 text-sm text-destructive\">{error}</p>}\n </form>\n )\n}\n\nfunction AddressesPanel() {\n const config = useStorefrontConfig()\n const customerId = useSessionStore((s) => s.customerId)\n const account = useAccountAddresses(customerId)\n const browser = useDeliveryStore((s) => s.savedAddresses)\n const removeAddress = useDeliveryStore((s) => s.removeAddress)\n const empty = account.length === 0 && browser.length === 0\n return (\n <div className=\"rounded-2xl border bg-card p-6\" data-testid=\"account-addresses\">\n <div className=\"flex items-center gap-2\">\n <MapPin className=\"h-5 w-5 text-primary\" />\n <h2 className=\"sf-heading text-lg font-semibold\">Endereços</h2>\n </div>\n {empty ? (\n <p className=\"mt-2 text-sm text-muted-foreground\">\n Nenhum endereço salvo ainda. Ele fica salvo quando você informa onde receber no cardápio ou no checkout.\n </p>\n ) : (\n <ul className=\"mt-4 space-y-2\">\n {account.map((a) => (\n <li key={`account-${a.id}`} className=\"rounded-lg border p-3 text-sm\">\n <span className=\"block font-medium\">{a.label ?? `${a.street}${a.number ? `, ${a.number}` : ''}`}</span>\n <span className=\"block text-xs text-muted-foreground\">\n {[a.label ? `${a.street}${a.number ? `, ${a.number}` : ''}` : null, a.complement, a.district, a.city].filter(Boolean).join(' · ')}\n </span>\n </li>\n ))}\n {browser.map((a) => (\n <li key={a.id} className=\"flex items-start gap-2 rounded-lg border p-3 text-sm\">\n <span className=\"min-w-0 flex-1\">\n <span className=\"block font-medium\">{a.label ?? `${a.street}, ${a.number}`}</span>\n <span className=\"block text-xs text-muted-foreground\">\n {[a.label ? `${a.street}, ${a.number}` : null, a.complement, a.district, a.city].filter(Boolean).join(' · ')}\n </span>\n <span className=\"mt-0.5 block text-[11px] text-muted-foreground\">Salvo neste aparelho</span>\n </span>\n <button type=\"button\" onClick={() => removeAddress(a.id)} className=\"text-xs font-semibold text-destructive\">\n Remover\n </button>\n </li>\n ))}\n </ul>\n )}\n <Link to={config.catalogPath} className=\"mt-4 inline-block text-sm font-semibold text-primary underline\">\n Continuar comprando\n </Link>\n </div>\n )\n}\n\nfunction PaymentsPanel() {\n return (\n <div className=\"rounded-2xl border bg-card p-6\">\n <div className=\"flex items-center gap-2\">\n <CreditCard className=\"h-5 w-5 text-primary\" />\n <h2 className=\"sf-heading text-lg font-semibold\">Pagamentos</h2>\n </div>\n <p className=\"mt-2 text-sm text-muted-foreground\">\n Os pagamentos são processados com segurança no checkout — nenhum dado de pagamento fica salvo nesta conta.\n </p>\n <div className=\"mt-4 flex items-center gap-2 rounded-lg bg-muted/40 px-3 py-2.5 text-sm\">\n <QrCode className=\"h-4 w-4 text-primary\" />\n <span>Pix e cartão via Mercado Pago no momento da compra.</span>\n </div>\n </div>\n )\n}\n\nconst SECTION_SUBTITLE: Record<AccountSection, string> = {\n profile: 'Seus dados de contato.',\n orders: 'Acompanhe seus pedidos e entregas.',\n addresses: 'Endereços de entrega.',\n payments: 'Como você paga na loja.',\n}\n\nexport function MyPurchasesPage() {\n const config = useStorefrontConfig()\n const session = useSessionStore()\n const section = parseAccountSection(useRoutePath())\n useStorefrontHead({ title: `Minha conta — ${config.name}` })\n\n if (!session.email) {\n return (\n <main className=\"mx-auto max-w-3xl px-4 py-12 sm:px-6\">\n <AuthForm />\n </main>\n )\n }\n\n return (\n <CustomerAccountShell\n title=\"Minha conta\"\n subtitle={SECTION_SUBTITLE[section]}\n active={section}\n >\n {section === 'profile' && <ProfilePanel />}\n {section === 'orders' && <OrdersPanel />}\n {section === 'addresses' && <AddressesPanel />}\n {section === 'payments' && <PaymentsPanel />}\n </CustomerAccountShell>\n )\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  import { SuccessMark } from './chunk-WDQFNHYO.js';
2
- import { rememberLocalOrder, useMyOrders } from './chunk-WPWNYBNG.js';
2
+ import { rememberLocalOrder, useMyOrders } from './chunk-ZSNKJGE5.js';
3
3
  import { SkeletonGroup, Skeleton, PulseDot } from './chunk-FCPOPWG3.js';
4
- import { runBeforePlaceOrderValve, collectOrderMetadata, useT, useBuyerCountry, useDiscountValidator, trackStorefront, identifyStorefrontBuyer, Slot, SignInModal, returnPath, toast } from './chunk-MFAU3AWK.js';
4
+ import { runBeforePlaceOrderValve, collectOrderMetadata, useT, useBuyerCountry, useDiscountValidator, trackStorefront, identifyStorefrontBuyer, Slot, SignInModal, returnPath, toast } from './chunk-FPFGRUCS.js';
5
5
  import { prefersReducedMotion } from './chunk-WXXYJZE6.js';
6
- import { selectShipping, useCartStore, useDeliveryStore, selectSubtotal, selectDiscountTotal, selectTotal, selectRequiresShipping } from './chunk-K27LYMSF.js';
7
- import { TID, establishCustomerSession, useSessionStore, useStorefrontHead, signOutCustomer, SmoothImage, formatMoney, hasCustomerAuth, relinkCustomer } from './chunk-PATS4DIF.js';
6
+ import { selectShipping, useCartStore, useDeliveryStore, selectSubtotal, selectDiscountTotal, selectTotal, selectRequiresShipping } from './chunk-RZWTEC6H.js';
7
+ import { TID, establishCustomerSession, useSessionStore, useStorefrontHead, signOutCustomer, SmoothImage, formatMoney, hasCustomerAuth, relinkCustomer } from './chunk-2D5BEM43.js';
8
8
  import { useStorefrontConfig, navigateTo, Link } from './chunk-GVZ2SAOI.js';
9
9
  import React4, { useState, useEffect, useRef, useCallback } from 'react';
10
10
  import { MapPin, Lock, CreditCard, ShieldCheck, Check, QrCode, Copy } from 'lucide-react';
@@ -2119,5 +2119,5 @@ function CheckoutPage() {
2119
2119
  }
2120
2120
 
2121
2121
  export { AddressForm, CheckoutPage, CountrySelect, DeliverToPicker, placeStorefrontOrder };
2122
- //# sourceMappingURL=chunk-DRMDBXMT.js.map
2123
- //# sourceMappingURL=chunk-DRMDBXMT.js.map
2122
+ //# sourceMappingURL=chunk-YSQBZ3RM.js.map
2123
+ //# sourceMappingURL=chunk-YSQBZ3RM.js.map