@fayz-ai/storefront 0.84.2 → 0.84.4

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 (53) hide show
  1. package/dist/CheckoutPage-4MFKLBEI.js +12 -0
  2. package/dist/{CheckoutPage-DDY4WLFJ.js.map → CheckoutPage-4MFKLBEI.js.map} +1 -1
  3. package/dist/MyPurchasesPage-F25MIFXT.js +11 -0
  4. package/dist/{MyPurchasesPage-IHCB5QRR.js.map → MyPurchasesPage-F25MIFXT.js.map} +1 -1
  5. package/dist/OrderConfirmationPage-SOQDD767.js +10 -0
  6. package/dist/{OrderConfirmationPage-SAKAGOCC.js.map → OrderConfirmationPage-SOQDD767.js.map} +1 -1
  7. package/dist/{chunk-6NUBVJJY.js → chunk-BR3XHNVM.js} +5 -5
  8. package/dist/{chunk-6NUBVJJY.js.map → chunk-BR3XHNVM.js.map} +1 -1
  9. package/dist/{chunk-K27LYMSF.js → chunk-C4XATNI2.js} +3 -3
  10. package/dist/{chunk-K27LYMSF.js.map → chunk-C4XATNI2.js.map} +1 -1
  11. package/dist/{chunk-45R7CIEA.js → chunk-CE4U65TZ.js} +4 -4
  12. package/dist/{chunk-45R7CIEA.js.map → chunk-CE4U65TZ.js.map} +1 -1
  13. package/dist/{chunk-PATS4DIF.js → chunk-EFHQ5MAJ.js} +57 -17
  14. package/dist/chunk-EFHQ5MAJ.js.map +1 -0
  15. package/dist/{chunk-JLCF7CPP.js → chunk-ELW7QWDJ.js} +13 -12
  16. package/dist/chunk-ELW7QWDJ.js.map +1 -0
  17. package/dist/{chunk-GQ3TCJVX.js → chunk-IUP5SDTX.js} +5 -5
  18. package/dist/{chunk-GQ3TCJVX.js.map → chunk-IUP5SDTX.js.map} +1 -1
  19. package/dist/{chunk-WPWNYBNG.js → chunk-NS6UPIJ3.js} +3 -3
  20. package/dist/{chunk-WPWNYBNG.js.map → chunk-NS6UPIJ3.js.map} +1 -1
  21. package/dist/{chunk-MFAU3AWK.js → chunk-OOQRYH3N.js} +6 -6
  22. package/dist/{chunk-MFAU3AWK.js.map → chunk-OOQRYH3N.js.map} +1 -1
  23. package/dist/{chunk-GVZ2SAOI.js → chunk-PSDR5TZD.js} +3 -2
  24. package/dist/chunk-PSDR5TZD.js.map +1 -0
  25. package/dist/{chunk-D5C5U2SG.js → chunk-RJUEUMR6.js} +4 -4
  26. package/dist/{chunk-D5C5U2SG.js.map → chunk-RJUEUMR6.js.map} +1 -1
  27. package/dist/{chunk-BKO2AQ3Q.js → chunk-SLJ4BRXD.js} +3 -3
  28. package/dist/{chunk-BKO2AQ3Q.js.map → chunk-SLJ4BRXD.js.map} +1 -1
  29. package/dist/{chunk-DRMDBXMT.js → chunk-YCAWAON6.js} +7 -7
  30. package/dist/{chunk-DRMDBXMT.js.map → chunk-YCAWAON6.js.map} +1 -1
  31. package/dist/{chunk-OHWX6BEY.js → chunk-YDZU2SZL.js} +4 -4
  32. package/dist/{chunk-OHWX6BEY.js.map → chunk-YDZU2SZL.js.map} +1 -1
  33. package/dist/{chunk-CV6RYJIC.js → chunk-Z5JT7T4I.js} +8 -8
  34. package/dist/{chunk-CV6RYJIC.js.map → chunk-Z5JT7T4I.js.map} +1 -1
  35. package/dist/components/delivery/StoreCover.d.ts.map +1 -1
  36. package/dist/data/auth.d.ts +7 -0
  37. package/dist/data/auth.d.ts.map +1 -1
  38. package/dist/document/config.d.ts +8 -0
  39. package/dist/document/config.d.ts.map +1 -1
  40. package/dist/host.js +4 -4
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +22 -22
  44. package/dist/index.js.map +1 -1
  45. package/dist/render.js +9 -9
  46. package/dist/tanstack.js +8 -8
  47. package/package.json +3 -3
  48. package/dist/CheckoutPage-DDY4WLFJ.js +0 -12
  49. package/dist/MyPurchasesPage-IHCB5QRR.js +0 -11
  50. package/dist/OrderConfirmationPage-SAKAGOCC.js +0 -10
  51. package/dist/chunk-GVZ2SAOI.js.map +0 -1
  52. package/dist/chunk-JLCF7CPP.js.map +0 -1
  53. package/dist/chunk-PATS4DIF.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { useDeliveryStore, selectSubtotal, useCartStore } from './chunk-K27LYMSF.js';
2
- import { useSessionStore, TID } from './chunk-PATS4DIF.js';
1
+ import { useDeliveryStore, selectSubtotal, useCartStore } from './chunk-C4XATNI2.js';
2
+ import { useSessionStore, TID } from './chunk-EFHQ5MAJ.js';
3
3
  import React from 'react';
4
4
  import { ChevronLeft, X, MapPin, Check, Pencil, Trash2, Plus } from 'lucide-react';
5
5
  import { normalizePostalCode, formatPostalCode } from '@fayz-ai/core';
@@ -432,5 +432,5 @@ function AddressForm({ onDone, initial, replaces }) {
432
432
  }
433
433
 
434
434
  export { AddressSheet, useAccountAddresses };
435
- //# sourceMappingURL=chunk-OHWX6BEY.js.map
436
- //# sourceMappingURL=chunk-OHWX6BEY.js.map
435
+ //# sourceMappingURL=chunk-YDZU2SZL.js.map
436
+ //# sourceMappingURL=chunk-YDZU2SZL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/delivery/AddressSheet.tsx"],"names":[],"mappings":"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","file":"chunk-OHWX6BEY.js","sourcesContent":["import React from 'react'\nimport { Check, ChevronLeft, MapPin, Pencil, Plus, Trash2, X } from 'lucide-react'\nimport { formatPostalCode, normalizePostalCode } from '@fayz-ai/core'\nimport { useDeliveryStore, type SavedDeliveryAddress } from '../../stores/delivery.store'\nimport { useCartStore, selectSubtotal } from '../../stores/cart.store'\nimport { TID } from '../../lib/testids'\nimport { useSessionStore } from '../../stores/session.store'\nimport { getShopProvider } from '@fayz-ai/shop/runtime'\nimport type { CustomerAddress } from '@fayz-ai/shop/types'\n\n/** Os apelidos que quase todo mundo usa. \"Outro\" abre o campo livre. */\nconst LABELS = ['Casa', 'Trabalho'] as const\n\n/**\n * \"Onde você quer receber?\" — o caderno de endereços do navegador.\n *\n * Copiado do fluxo que os apps de delivery usam, e a razão de ele ser assim é\n * a ordem das perguntas: o CEP resolve rua, bairro e cidade de graça, então a\n * primeira tela pede só o CEP; a segunda pede exatamente o que nenhuma consulta\n * de CEP sabe — número, complemento e ponto de referência — e o número é o\n * único obrigatório.\n *\n * O que faz isso valer a pena é a terceira visita: quem já salvou não digita\n * nada, escolhe da lista. Um checkout que pede o endereço inteiro toda vez é o\n * atrito que faz a pessoa voltar para o app que já sabe onde ela mora.\n *\n * Fica no NAVEGADOR, e é uma escolha, não uma limitação aceita em silêncio: no\n * delivery o endereço vem antes do login. O caderno da conta (`CustomerAddress`)\n * continua existindo e continua ganhando no checkout quando existe.\n */\nexport function AddressSheet({ onClose, onSignIn }: {\n onClose: () => void\n /** Opens the sign-in modal; absent, the signed-out prompt is not drawn. */\n onSignIn?: () => void\n}) {\n const saved = useDeliveryStore((s) => s.savedAddresses)\n const selectedId = useDeliveryStore((s) => s.selectedAddressId)\n const selectAddress = useDeliveryStore((s) => s.selectAddress)\n const removeAddress = useDeliveryStore((s) => s.removeAddress)\n const saveAddress = useDeliveryStore((s) => s.saveAddress)\n const current = useDeliveryStore((s) => s.address)\n const subtotal = selectSubtotal(useCartStore())\n const customerId = useSessionStore((s) => s.customerId)\n const accountBook = useAccountAddresses(customerId)\n\n // The address on screen that is NOT in the book — typed at checkout, or a\n // CEP looked up without a number. It is what the strip shows, so it is what\n // the sheet must show first; opening straight on «Novo endereço» hid it.\n const unsavedCurrent = current && !saved.some((a) => a.id === selectedId) ? current : null\n // Account addresses not already copied into this browser's book.\n const fromAccount = accountBook.filter((a) => !saved.some((b) =>\n normalizePostalCode(b.postalCode) === normalizePostalCode(a.postalCode)\n && b.number.trim().toLowerCase() === (a.number ?? '').trim().toLowerCase()))\n\n const nothingToList = saved.length === 0 && !unsavedCurrent && fromAccount.length === 0 && !customerId\n // Nothing at all to choose from: the form IS the screen.\n const [editing, setEditing] = React.useState<null | { initial?: Partial<SavedDeliveryAddress>; replaces?: string }>(\n nothingToList && !onSignIn ? {} : null,\n )\n\n function pickAccountAddress(a: CustomerAddress) {\n const id = saveAddress({\n label: a.label ?? null,\n postalCode: a.postalCode,\n street: a.street,\n number: a.number ?? '',\n complement: a.complement ?? null,\n reference: null,\n district: a.district ?? '',\n city: a.city,\n state: a.state,\n country: a.country,\n })\n void selectAddress(id, subtotal)\n onClose()\n }\n\n // Esc and a tap outside close it, as the account drawer does; inside the\n // form, Esc steps back to the list first.\n const closeRef = React.useRef<() => void>(() => {})\n closeRef.current = () => { if (editing && !nothingToList) setEditing(null); else onClose() }\n React.useEffect(() => {\n const onKey = (e: KeyboardEvent) => { if (e.key === 'Escape') closeRef.current() }\n window.addEventListener('keydown', onKey)\n return () => window.removeEventListener('keydown', onKey)\n }, [])\n\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Endereço de entrega\"\n data-testid={TID.addressSheet}\n onClick={(e) => { if (e.target === e.currentTarget) onClose() }}\n className=\"fixed inset-0 z-50 flex flex-col justify-end bg-black/50 sm:items-center sm:justify-center sm:p-6\"\n >\n <div className=\"flex max-h-[85vh] w-full flex-col overflow-hidden rounded-t-2xl bg-background sm:max-w-md sm:rounded-2xl\">\n <div className=\"flex items-center gap-2 border-b border-border p-4\">\n {editing && !nothingToList && (\n <button\n type=\"button\"\n onClick={() => setEditing(null)}\n aria-label=\"Voltar\"\n className=\"-ml-2 grid h-9 w-9 place-items-center rounded-full\"\n >\n <ChevronLeft className=\"h-5 w-5\" />\n </button>\n )}\n <h2 className=\"flex-1 text-lg font-semibold\">\n {editing ? (editing.replaces ? 'Editar endereço' : 'Novo endereço') : 'Onde você quer receber?'}\n </h2>\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Fechar\"\n className=\"-mr-2 grid h-9 w-9 place-items-center rounded-full\"\n >\n <X className=\"h-5 w-5\" />\n </button>\n </div>\n\n {editing ? (\n <AddressForm\n initial={editing.initial}\n replaces={editing.replaces}\n onDone={() => {\n setEditing(null)\n onClose()\n }}\n />\n ) : (\n <div className=\"min-h-0 flex-1 overflow-y-auto p-4\">\n {unsavedCurrent && (\n <section className=\"mb-4\" data-testid=\"address-current\">\n <h3 className=\"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">Endereço atual</h3>\n <div className=\"flex items-start gap-3 rounded-lg border border-primary p-3\">\n <MapPin className=\"mt-0.5 h-5 w-5 shrink-0 text-primary\" />\n <span className=\"min-w-0 flex-1\">\n <span className=\"block truncate text-sm\">{unsavedCurrent.street}</span>\n <span className=\"block truncate text-xs text-muted-foreground\">\n {[unsavedCurrent.district, unsavedCurrent.city].filter(Boolean).join(' · ')}\n </span>\n </span>\n <button\n type=\"button\"\n data-testid=\"address-complete-current\"\n onClick={() => setEditing({ initial: { postalCode: unsavedCurrent.postalCode } })}\n className=\"shrink-0 text-sm font-semibold text-primary\"\n >\n Completar\n </button>\n </div>\n </section>\n )}\n\n {saved.length > 0 && (\n <section className=\"mb-4\">\n <h3 className=\"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">Seus endereços</h3>\n <ul className=\"space-y-2\">\n {saved.map((address) => (\n <li key={address.id} className=\"flex items-start gap-1\">\n <button\n type=\"button\"\n data-testid={TID.savedAddress(address.id)}\n aria-pressed={selectedId === address.id}\n onClick={() => {\n void selectAddress(address.id, subtotal)\n onClose()\n }}\n className={`flex min-w-0 flex-1 items-start gap-3 rounded-lg border p-3 text-left ${\n selectedId === address.id ? 'border-primary' : 'border-border'\n }`}\n >\n {selectedId === address.id\n ? <Check className=\"mt-0.5 h-5 w-5 shrink-0 text-primary\" />\n : <MapPin className=\"mt-0.5 h-5 w-5 shrink-0 text-muted-foreground\" />}\n <AddressLines address={address} />\n </button>\n <button\n type=\"button\"\n data-testid={`edit-address-${address.id}`}\n onClick={() => setEditing({ initial: address, replaces: address.id })}\n aria-label={`Editar ${address.street}, ${address.number}`}\n className=\"mt-1 grid h-10 w-10 shrink-0 place-items-center rounded-full text-muted-foreground\"\n >\n <Pencil className=\"h-4 w-4\" />\n </button>\n <button\n type=\"button\"\n onClick={() => removeAddress(address.id)}\n aria-label={`Remover ${address.street}, ${address.number}`}\n className=\"mt-1 grid h-10 w-10 shrink-0 place-items-center rounded-full text-muted-foreground\"\n >\n <Trash2 className=\"h-4 w-4\" />\n </button>\n </li>\n ))}\n </ul>\n </section>\n )}\n\n {fromAccount.length > 0 && (\n <section className=\"mb-4\" data-testid=\"address-account-book\">\n <h3 className=\"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">Da sua conta</h3>\n <ul className=\"space-y-2\">\n {fromAccount.map((address) => (\n <li key={address.id}>\n <button\n type=\"button\"\n onClick={() => pickAccountAddress(address)}\n className=\"flex w-full min-w-0 items-start gap-3 rounded-lg border border-border p-3 text-left\"\n >\n <MapPin className=\"mt-0.5 h-5 w-5 shrink-0 text-muted-foreground\" />\n <AddressLines address={{\n label: address.label ?? null,\n street: address.street,\n number: address.number ?? '',\n complement: address.complement ?? null,\n district: address.district ?? '',\n city: address.city,\n reference: null,\n }} />\n </button>\n </li>\n ))}\n </ul>\n </section>\n )}\n\n {!customerId && onSignIn && (\n <div data-testid=\"address-sign-in\" className=\"mb-4 rounded-lg bg-muted/40 p-3 text-sm\">\n <p>Entre na sua conta para usar os endereços salvos nela.</p>\n <button\n type=\"button\"\n onClick={onSignIn}\n className=\"mt-2 font-semibold text-primary\"\n >\n Entrar ou criar conta\n </button>\n </div>\n )}\n\n <button\n type=\"button\"\n data-testid={TID.addressAddNew}\n onClick={() => setEditing({})}\n className=\"flex w-full items-center justify-center gap-2 rounded-full border border-border px-4 py-3 text-sm font-semibold\"\n >\n <Plus className=\"h-4 w-4\" />\n Adicionar novo endereço\n </button>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nfunction AddressLines({ address }: {\n address: Pick<SavedDeliveryAddress, 'label' | 'street' | 'number' | 'complement' | 'district' | 'city' | 'reference'>\n}) {\n return (\n <span className=\"min-w-0 flex-1\">\n {address.label && <span className=\"block text-sm font-semibold\">{address.label}</span>}\n <span className=\"block truncate text-sm\">\n {address.street}{address.number ? `, ${address.number}` : ''}\n </span>\n <span className=\"block truncate text-xs text-muted-foreground\">\n {[address.complement, address.district, address.city].filter(Boolean).join(' · ')}\n </span>\n {address.reference && (\n <span className=\"mt-0.5 block truncate text-xs text-muted-foreground\">{address.reference}</span>\n )}\n </span>\n )\n}\n\n/**\n * The signed-in customer's own address book (public.addresses, RLS-scoped to\n * them). Empty for a guest, and on any failure: the browser's book still works.\n */\nexport function useAccountAddresses(customerId: string | null): CustomerAddress[] {\n const [rows, setRows] = React.useState<CustomerAddress[]>([])\n React.useEffect(() => {\n if (!customerId) { setRows([]); return }\n const shop = getShopProvider()\n if (typeof shop.listCustomerAddresses !== 'function') return\n let cancelled = false\n shop.listCustomerAddresses(customerId)\n .then((list) => { if (!cancelled) setRows(list) })\n .catch(() => { if (!cancelled) setRows([]) })\n return () => { cancelled = true }\n }, [customerId])\n return rows\n}\n\n/**\n * CEP primeiro, resto depois.\n *\n * Uma tela só com sete campos, sendo quatro deles preenchíveis por consulta, é\n * a forma mais rápida de fazer alguém desistir. Os campos da consulta ficam\n * VISÍVEIS mas em leitura: a pessoa precisa conferir que o CEP achou a rua\n * certa — e conferir é diferente de digitar.\n */\nfunction AddressForm({ onDone, initial, replaces }: {\n onDone: () => void\n /** Prefill: a saved address being edited, or the current one being completed. */\n initial?: Partial<SavedDeliveryAddress>\n /** The saved address this form rewrites; removed when the new one is saved. */\n replaces?: string\n}) {\n const resolve = useDeliveryStore((s) => s.resolve)\n const saveAddress = useDeliveryStore((s) => s.saveAddress)\n const removeAddress = useDeliveryStore((s) => s.removeAddress)\n const looked = useDeliveryStore((s) => s.address)\n const status = useDeliveryStore((s) => s.status)\n const storeError = useDeliveryStore((s) => s.error)\n const refusedZone = useDeliveryStore((s) => s.refusedZone)\n const subtotal = selectSubtotal(useCartStore())\n\n const [cep, setCep] = React.useState(initial?.postalCode ? formatPostalCode(initial.postalCode) : '')\n const [number, setNumber] = React.useState(initial?.number ?? '')\n const [complement, setComplement] = React.useState(initial?.complement ?? '')\n const [reference, setReference] = React.useState(initial?.reference ?? '')\n const [label, setLabel] = React.useState<string>(initial?.label ?? '')\n const [touched, setTouched] = React.useState(false)\n const numberRef = React.useRef<HTMLInputElement>(null)\n\n const digits = normalizePostalCode(cep)\n const found = Boolean(looked) && normalizePostalCode(looked!.postalCode) === digits\n\n // O foco cai no número assim que a rua chega. É o único campo que sobrou\n // para digitar, e fazer a pessoa procurá-lo desfaz o que a consulta ganhou.\n React.useEffect(() => {\n if (found) numberRef.current?.focus()\n }, [found])\n\n async function lookUp() {\n if (digits.length !== 8) return\n await resolve(digits, subtotal)\n }\n\n // A prefilled CEP is looked up at once: editing an address or completing the\n // current one must land on the number, not on a «Buscar» button.\n const prefilled = React.useRef(false)\n React.useEffect(() => {\n if (prefilled.current || !initial?.postalCode) return\n prefilled.current = true\n if (!found) void lookUp()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n function submit(event: React.FormEvent) {\n event.preventDefault()\n setTouched(true)\n if (!found || !number.trim()) return\n if (replaces) removeAddress(replaces)\n saveAddress({\n label: label.trim() || null,\n postalCode: looked!.postalCode,\n street: looked!.street,\n number: number.trim(),\n complement: complement.trim() || null,\n reference: reference.trim() || null,\n district: looked!.district,\n city: looked!.city,\n state: looked!.state,\n })\n onDone()\n }\n\n const numberMissing = touched && !number.trim()\n\n return (\n <form onSubmit={submit} className=\"min-h-0 flex-1 overflow-y-auto p-4\">\n <label htmlFor=\"address-cep\" className=\"text-sm font-medium\">\n CEP\n </label>\n <div className=\"mt-1 flex gap-2\">\n <input\n id=\"address-cep\"\n data-testid={TID.addressCep}\n value={cep}\n onChange={(e) => setCep(formatPostalCode(e.target.value))}\n onBlur={() => void lookUp()}\n // inputMode numérico: um teclado alfabético para oito dígitos é o\n // erro de formulário mobile mais fácil de cometer e de corrigir.\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n placeholder=\"00000-000\"\n className=\"h-12 flex-1 rounded-lg border border-border bg-transparent px-3 text-base\"\n />\n <button\n type=\"button\"\n onClick={() => void lookUp()}\n disabled={digits.length !== 8 || status === 'loading'}\n className=\"h-12 rounded-lg bg-primary px-4 text-sm font-semibold text-primary-foreground disabled:opacity-40\"\n >\n {status === 'loading' ? 'Buscando…' : 'Buscar'}\n </button>\n </div>\n {storeError && <p className=\"mt-2 text-sm text-destructive\">{storeError}</p>}\n {/* A recusa da loja (0048) aparece aqui e não só no checkout: descobrir\n que não entregam no seu CEP depois de montar o carrinho é a pior hora\n possível para descobrir. */}\n {refusedZone && (\n <p className=\"mt-2 text-sm text-destructive\">\n Ainda não entregamos nessa região ({refusedZone}).\n </p>\n )}\n\n {found && (\n <>\n <p className=\"mt-4 rounded-lg bg-muted/40 p-3 text-sm\">\n <span className=\"block font-medium\">{looked!.street}</span>\n <span className=\"block text-muted-foreground\">\n {looked!.district} · {looked!.city} — {looked!.state}\n </span>\n </p>\n\n <div className=\"mt-4 grid grid-cols-2 gap-3\">\n <div>\n <label htmlFor=\"address-number\" className=\"text-sm font-medium\">\n Número\n </label>\n <input\n id=\"address-number\"\n ref={numberRef}\n data-testid={TID.addressNumber}\n value={number}\n onChange={(e) => setNumber(e.target.value)}\n inputMode=\"numeric\"\n autoComplete=\"address-line2\"\n aria-invalid={numberMissing || undefined}\n aria-describedby={numberMissing ? 'address-number-error' : undefined}\n className={`mt-1 h-12 w-full rounded-lg border bg-transparent px-3 text-base ${\n numberMissing ? 'border-destructive' : 'border-border'\n }`}\n />\n {numberMissing && (\n // Junto do campo e não num resumo no topo: o erro é sobre ESTE\n // campo, e a pessoa está olhando para ele.\n <p id=\"address-number-error\" className=\"mt-1 text-xs text-destructive\">\n Informe o número.\n </p>\n )}\n </div>\n <div>\n <label htmlFor=\"address-complement\" className=\"text-sm font-medium\">\n Complemento\n </label>\n <input\n id=\"address-complement\"\n data-testid={TID.addressComplement}\n value={complement}\n onChange={(e) => setComplement(e.target.value)}\n placeholder=\"Apto, bloco…\"\n className=\"mt-1 h-12 w-full rounded-lg border border-border bg-transparent px-3 text-base\"\n />\n </div>\n </div>\n\n <div className=\"mt-4\">\n <label htmlFor=\"address-reference\" className=\"text-sm font-medium\">\n Ponto de referência\n </label>\n <input\n id=\"address-reference\"\n data-testid={TID.addressReference}\n value={reference}\n onChange={(e) => setReference(e.target.value)}\n placeholder=\"Portão azul, ao lado da padaria\"\n className=\"mt-1 h-12 w-full rounded-lg border border-border bg-transparent px-3 text-base\"\n />\n </div>\n\n <fieldset className=\"mt-4\">\n <legend className=\"text-sm font-medium\">Salvar como</legend>\n <div className=\"mt-2 flex flex-wrap gap-2\">\n {LABELS.map((name) => (\n <button\n key={name}\n type=\"button\"\n aria-pressed={label === name}\n onClick={() => setLabel(label === name ? '' : name)}\n className={`rounded-full px-4 py-2 text-sm font-medium ${\n label === name\n ? 'bg-foreground text-background'\n : 'border border-border text-muted-foreground'\n }`}\n >\n {name}\n </button>\n ))}\n <input\n value={LABELS.includes(label as (typeof LABELS)[number]) ? '' : label}\n onChange={(e) => setLabel(e.target.value)}\n placeholder=\"Outro\"\n aria-label=\"Outro apelido\"\n className=\"h-10 min-w-24 flex-1 rounded-full border border-border bg-transparent px-4 text-sm\"\n />\n </div>\n </fieldset>\n\n <button\n type=\"submit\"\n data-testid={TID.addressSave}\n className=\"mt-6 h-12 w-full rounded-full bg-primary font-semibold text-primary-foreground\"\n >\n Salvar endereço\n </button>\n </>\n )}\n </form>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/delivery/AddressSheet.tsx"],"names":[],"mappings":"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","file":"chunk-YDZU2SZL.js","sourcesContent":["import React from 'react'\nimport { Check, ChevronLeft, MapPin, Pencil, Plus, Trash2, X } from 'lucide-react'\nimport { formatPostalCode, normalizePostalCode } from '@fayz-ai/core'\nimport { useDeliveryStore, type SavedDeliveryAddress } from '../../stores/delivery.store'\nimport { useCartStore, selectSubtotal } from '../../stores/cart.store'\nimport { TID } from '../../lib/testids'\nimport { useSessionStore } from '../../stores/session.store'\nimport { getShopProvider } from '@fayz-ai/shop/runtime'\nimport type { CustomerAddress } from '@fayz-ai/shop/types'\n\n/** Os apelidos que quase todo mundo usa. \"Outro\" abre o campo livre. */\nconst LABELS = ['Casa', 'Trabalho'] as const\n\n/**\n * \"Onde você quer receber?\" — o caderno de endereços do navegador.\n *\n * Copiado do fluxo que os apps de delivery usam, e a razão de ele ser assim é\n * a ordem das perguntas: o CEP resolve rua, bairro e cidade de graça, então a\n * primeira tela pede só o CEP; a segunda pede exatamente o que nenhuma consulta\n * de CEP sabe — número, complemento e ponto de referência — e o número é o\n * único obrigatório.\n *\n * O que faz isso valer a pena é a terceira visita: quem já salvou não digita\n * nada, escolhe da lista. Um checkout que pede o endereço inteiro toda vez é o\n * atrito que faz a pessoa voltar para o app que já sabe onde ela mora.\n *\n * Fica no NAVEGADOR, e é uma escolha, não uma limitação aceita em silêncio: no\n * delivery o endereço vem antes do login. O caderno da conta (`CustomerAddress`)\n * continua existindo e continua ganhando no checkout quando existe.\n */\nexport function AddressSheet({ onClose, onSignIn }: {\n onClose: () => void\n /** Opens the sign-in modal; absent, the signed-out prompt is not drawn. */\n onSignIn?: () => void\n}) {\n const saved = useDeliveryStore((s) => s.savedAddresses)\n const selectedId = useDeliveryStore((s) => s.selectedAddressId)\n const selectAddress = useDeliveryStore((s) => s.selectAddress)\n const removeAddress = useDeliveryStore((s) => s.removeAddress)\n const saveAddress = useDeliveryStore((s) => s.saveAddress)\n const current = useDeliveryStore((s) => s.address)\n const subtotal = selectSubtotal(useCartStore())\n const customerId = useSessionStore((s) => s.customerId)\n const accountBook = useAccountAddresses(customerId)\n\n // The address on screen that is NOT in the book — typed at checkout, or a\n // CEP looked up without a number. It is what the strip shows, so it is what\n // the sheet must show first; opening straight on «Novo endereço» hid it.\n const unsavedCurrent = current && !saved.some((a) => a.id === selectedId) ? current : null\n // Account addresses not already copied into this browser's book.\n const fromAccount = accountBook.filter((a) => !saved.some((b) =>\n normalizePostalCode(b.postalCode) === normalizePostalCode(a.postalCode)\n && b.number.trim().toLowerCase() === (a.number ?? '').trim().toLowerCase()))\n\n const nothingToList = saved.length === 0 && !unsavedCurrent && fromAccount.length === 0 && !customerId\n // Nothing at all to choose from: the form IS the screen.\n const [editing, setEditing] = React.useState<null | { initial?: Partial<SavedDeliveryAddress>; replaces?: string }>(\n nothingToList && !onSignIn ? {} : null,\n )\n\n function pickAccountAddress(a: CustomerAddress) {\n const id = saveAddress({\n label: a.label ?? null,\n postalCode: a.postalCode,\n street: a.street,\n number: a.number ?? '',\n complement: a.complement ?? null,\n reference: null,\n district: a.district ?? '',\n city: a.city,\n state: a.state,\n country: a.country,\n })\n void selectAddress(id, subtotal)\n onClose()\n }\n\n // Esc and a tap outside close it, as the account drawer does; inside the\n // form, Esc steps back to the list first.\n const closeRef = React.useRef<() => void>(() => {})\n closeRef.current = () => { if (editing && !nothingToList) setEditing(null); else onClose() }\n React.useEffect(() => {\n const onKey = (e: KeyboardEvent) => { if (e.key === 'Escape') closeRef.current() }\n window.addEventListener('keydown', onKey)\n return () => window.removeEventListener('keydown', onKey)\n }, [])\n\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Endereço de entrega\"\n data-testid={TID.addressSheet}\n onClick={(e) => { if (e.target === e.currentTarget) onClose() }}\n className=\"fixed inset-0 z-50 flex flex-col justify-end bg-black/50 sm:items-center sm:justify-center sm:p-6\"\n >\n <div className=\"flex max-h-[85vh] w-full flex-col overflow-hidden rounded-t-2xl bg-background sm:max-w-md sm:rounded-2xl\">\n <div className=\"flex items-center gap-2 border-b border-border p-4\">\n {editing && !nothingToList && (\n <button\n type=\"button\"\n onClick={() => setEditing(null)}\n aria-label=\"Voltar\"\n className=\"-ml-2 grid h-9 w-9 place-items-center rounded-full\"\n >\n <ChevronLeft className=\"h-5 w-5\" />\n </button>\n )}\n <h2 className=\"flex-1 text-lg font-semibold\">\n {editing ? (editing.replaces ? 'Editar endereço' : 'Novo endereço') : 'Onde você quer receber?'}\n </h2>\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Fechar\"\n className=\"-mr-2 grid h-9 w-9 place-items-center rounded-full\"\n >\n <X className=\"h-5 w-5\" />\n </button>\n </div>\n\n {editing ? (\n <AddressForm\n initial={editing.initial}\n replaces={editing.replaces}\n onDone={() => {\n setEditing(null)\n onClose()\n }}\n />\n ) : (\n <div className=\"min-h-0 flex-1 overflow-y-auto p-4\">\n {unsavedCurrent && (\n <section className=\"mb-4\" data-testid=\"address-current\">\n <h3 className=\"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">Endereço atual</h3>\n <div className=\"flex items-start gap-3 rounded-lg border border-primary p-3\">\n <MapPin className=\"mt-0.5 h-5 w-5 shrink-0 text-primary\" />\n <span className=\"min-w-0 flex-1\">\n <span className=\"block truncate text-sm\">{unsavedCurrent.street}</span>\n <span className=\"block truncate text-xs text-muted-foreground\">\n {[unsavedCurrent.district, unsavedCurrent.city].filter(Boolean).join(' · ')}\n </span>\n </span>\n <button\n type=\"button\"\n data-testid=\"address-complete-current\"\n onClick={() => setEditing({ initial: { postalCode: unsavedCurrent.postalCode } })}\n className=\"shrink-0 text-sm font-semibold text-primary\"\n >\n Completar\n </button>\n </div>\n </section>\n )}\n\n {saved.length > 0 && (\n <section className=\"mb-4\">\n <h3 className=\"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">Seus endereços</h3>\n <ul className=\"space-y-2\">\n {saved.map((address) => (\n <li key={address.id} className=\"flex items-start gap-1\">\n <button\n type=\"button\"\n data-testid={TID.savedAddress(address.id)}\n aria-pressed={selectedId === address.id}\n onClick={() => {\n void selectAddress(address.id, subtotal)\n onClose()\n }}\n className={`flex min-w-0 flex-1 items-start gap-3 rounded-lg border p-3 text-left ${\n selectedId === address.id ? 'border-primary' : 'border-border'\n }`}\n >\n {selectedId === address.id\n ? <Check className=\"mt-0.5 h-5 w-5 shrink-0 text-primary\" />\n : <MapPin className=\"mt-0.5 h-5 w-5 shrink-0 text-muted-foreground\" />}\n <AddressLines address={address} />\n </button>\n <button\n type=\"button\"\n data-testid={`edit-address-${address.id}`}\n onClick={() => setEditing({ initial: address, replaces: address.id })}\n aria-label={`Editar ${address.street}, ${address.number}`}\n className=\"mt-1 grid h-10 w-10 shrink-0 place-items-center rounded-full text-muted-foreground\"\n >\n <Pencil className=\"h-4 w-4\" />\n </button>\n <button\n type=\"button\"\n onClick={() => removeAddress(address.id)}\n aria-label={`Remover ${address.street}, ${address.number}`}\n className=\"mt-1 grid h-10 w-10 shrink-0 place-items-center rounded-full text-muted-foreground\"\n >\n <Trash2 className=\"h-4 w-4\" />\n </button>\n </li>\n ))}\n </ul>\n </section>\n )}\n\n {fromAccount.length > 0 && (\n <section className=\"mb-4\" data-testid=\"address-account-book\">\n <h3 className=\"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">Da sua conta</h3>\n <ul className=\"space-y-2\">\n {fromAccount.map((address) => (\n <li key={address.id}>\n <button\n type=\"button\"\n onClick={() => pickAccountAddress(address)}\n className=\"flex w-full min-w-0 items-start gap-3 rounded-lg border border-border p-3 text-left\"\n >\n <MapPin className=\"mt-0.5 h-5 w-5 shrink-0 text-muted-foreground\" />\n <AddressLines address={{\n label: address.label ?? null,\n street: address.street,\n number: address.number ?? '',\n complement: address.complement ?? null,\n district: address.district ?? '',\n city: address.city,\n reference: null,\n }} />\n </button>\n </li>\n ))}\n </ul>\n </section>\n )}\n\n {!customerId && onSignIn && (\n <div data-testid=\"address-sign-in\" className=\"mb-4 rounded-lg bg-muted/40 p-3 text-sm\">\n <p>Entre na sua conta para usar os endereços salvos nela.</p>\n <button\n type=\"button\"\n onClick={onSignIn}\n className=\"mt-2 font-semibold text-primary\"\n >\n Entrar ou criar conta\n </button>\n </div>\n )}\n\n <button\n type=\"button\"\n data-testid={TID.addressAddNew}\n onClick={() => setEditing({})}\n className=\"flex w-full items-center justify-center gap-2 rounded-full border border-border px-4 py-3 text-sm font-semibold\"\n >\n <Plus className=\"h-4 w-4\" />\n Adicionar novo endereço\n </button>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nfunction AddressLines({ address }: {\n address: Pick<SavedDeliveryAddress, 'label' | 'street' | 'number' | 'complement' | 'district' | 'city' | 'reference'>\n}) {\n return (\n <span className=\"min-w-0 flex-1\">\n {address.label && <span className=\"block text-sm font-semibold\">{address.label}</span>}\n <span className=\"block truncate text-sm\">\n {address.street}{address.number ? `, ${address.number}` : ''}\n </span>\n <span className=\"block truncate text-xs text-muted-foreground\">\n {[address.complement, address.district, address.city].filter(Boolean).join(' · ')}\n </span>\n {address.reference && (\n <span className=\"mt-0.5 block truncate text-xs text-muted-foreground\">{address.reference}</span>\n )}\n </span>\n )\n}\n\n/**\n * The signed-in customer's own address book (public.addresses, RLS-scoped to\n * them). Empty for a guest, and on any failure: the browser's book still works.\n */\nexport function useAccountAddresses(customerId: string | null): CustomerAddress[] {\n const [rows, setRows] = React.useState<CustomerAddress[]>([])\n React.useEffect(() => {\n if (!customerId) { setRows([]); return }\n const shop = getShopProvider()\n if (typeof shop.listCustomerAddresses !== 'function') return\n let cancelled = false\n shop.listCustomerAddresses(customerId)\n .then((list) => { if (!cancelled) setRows(list) })\n .catch(() => { if (!cancelled) setRows([]) })\n return () => { cancelled = true }\n }, [customerId])\n return rows\n}\n\n/**\n * CEP primeiro, resto depois.\n *\n * Uma tela só com sete campos, sendo quatro deles preenchíveis por consulta, é\n * a forma mais rápida de fazer alguém desistir. Os campos da consulta ficam\n * VISÍVEIS mas em leitura: a pessoa precisa conferir que o CEP achou a rua\n * certa — e conferir é diferente de digitar.\n */\nfunction AddressForm({ onDone, initial, replaces }: {\n onDone: () => void\n /** Prefill: a saved address being edited, or the current one being completed. */\n initial?: Partial<SavedDeliveryAddress>\n /** The saved address this form rewrites; removed when the new one is saved. */\n replaces?: string\n}) {\n const resolve = useDeliveryStore((s) => s.resolve)\n const saveAddress = useDeliveryStore((s) => s.saveAddress)\n const removeAddress = useDeliveryStore((s) => s.removeAddress)\n const looked = useDeliveryStore((s) => s.address)\n const status = useDeliveryStore((s) => s.status)\n const storeError = useDeliveryStore((s) => s.error)\n const refusedZone = useDeliveryStore((s) => s.refusedZone)\n const subtotal = selectSubtotal(useCartStore())\n\n const [cep, setCep] = React.useState(initial?.postalCode ? formatPostalCode(initial.postalCode) : '')\n const [number, setNumber] = React.useState(initial?.number ?? '')\n const [complement, setComplement] = React.useState(initial?.complement ?? '')\n const [reference, setReference] = React.useState(initial?.reference ?? '')\n const [label, setLabel] = React.useState<string>(initial?.label ?? '')\n const [touched, setTouched] = React.useState(false)\n const numberRef = React.useRef<HTMLInputElement>(null)\n\n const digits = normalizePostalCode(cep)\n const found = Boolean(looked) && normalizePostalCode(looked!.postalCode) === digits\n\n // O foco cai no número assim que a rua chega. É o único campo que sobrou\n // para digitar, e fazer a pessoa procurá-lo desfaz o que a consulta ganhou.\n React.useEffect(() => {\n if (found) numberRef.current?.focus()\n }, [found])\n\n async function lookUp() {\n if (digits.length !== 8) return\n await resolve(digits, subtotal)\n }\n\n // A prefilled CEP is looked up at once: editing an address or completing the\n // current one must land on the number, not on a «Buscar» button.\n const prefilled = React.useRef(false)\n React.useEffect(() => {\n if (prefilled.current || !initial?.postalCode) return\n prefilled.current = true\n if (!found) void lookUp()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n function submit(event: React.FormEvent) {\n event.preventDefault()\n setTouched(true)\n if (!found || !number.trim()) return\n if (replaces) removeAddress(replaces)\n saveAddress({\n label: label.trim() || null,\n postalCode: looked!.postalCode,\n street: looked!.street,\n number: number.trim(),\n complement: complement.trim() || null,\n reference: reference.trim() || null,\n district: looked!.district,\n city: looked!.city,\n state: looked!.state,\n })\n onDone()\n }\n\n const numberMissing = touched && !number.trim()\n\n return (\n <form onSubmit={submit} className=\"min-h-0 flex-1 overflow-y-auto p-4\">\n <label htmlFor=\"address-cep\" className=\"text-sm font-medium\">\n CEP\n </label>\n <div className=\"mt-1 flex gap-2\">\n <input\n id=\"address-cep\"\n data-testid={TID.addressCep}\n value={cep}\n onChange={(e) => setCep(formatPostalCode(e.target.value))}\n onBlur={() => void lookUp()}\n // inputMode numérico: um teclado alfabético para oito dígitos é o\n // erro de formulário mobile mais fácil de cometer e de corrigir.\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n placeholder=\"00000-000\"\n className=\"h-12 flex-1 rounded-lg border border-border bg-transparent px-3 text-base\"\n />\n <button\n type=\"button\"\n onClick={() => void lookUp()}\n disabled={digits.length !== 8 || status === 'loading'}\n className=\"h-12 rounded-lg bg-primary px-4 text-sm font-semibold text-primary-foreground disabled:opacity-40\"\n >\n {status === 'loading' ? 'Buscando…' : 'Buscar'}\n </button>\n </div>\n {storeError && <p className=\"mt-2 text-sm text-destructive\">{storeError}</p>}\n {/* A recusa da loja (0048) aparece aqui e não só no checkout: descobrir\n que não entregam no seu CEP depois de montar o carrinho é a pior hora\n possível para descobrir. */}\n {refusedZone && (\n <p className=\"mt-2 text-sm text-destructive\">\n Ainda não entregamos nessa região ({refusedZone}).\n </p>\n )}\n\n {found && (\n <>\n <p className=\"mt-4 rounded-lg bg-muted/40 p-3 text-sm\">\n <span className=\"block font-medium\">{looked!.street}</span>\n <span className=\"block text-muted-foreground\">\n {looked!.district} · {looked!.city} — {looked!.state}\n </span>\n </p>\n\n <div className=\"mt-4 grid grid-cols-2 gap-3\">\n <div>\n <label htmlFor=\"address-number\" className=\"text-sm font-medium\">\n Número\n </label>\n <input\n id=\"address-number\"\n ref={numberRef}\n data-testid={TID.addressNumber}\n value={number}\n onChange={(e) => setNumber(e.target.value)}\n inputMode=\"numeric\"\n autoComplete=\"address-line2\"\n aria-invalid={numberMissing || undefined}\n aria-describedby={numberMissing ? 'address-number-error' : undefined}\n className={`mt-1 h-12 w-full rounded-lg border bg-transparent px-3 text-base ${\n numberMissing ? 'border-destructive' : 'border-border'\n }`}\n />\n {numberMissing && (\n // Junto do campo e não num resumo no topo: o erro é sobre ESTE\n // campo, e a pessoa está olhando para ele.\n <p id=\"address-number-error\" className=\"mt-1 text-xs text-destructive\">\n Informe o número.\n </p>\n )}\n </div>\n <div>\n <label htmlFor=\"address-complement\" className=\"text-sm font-medium\">\n Complemento\n </label>\n <input\n id=\"address-complement\"\n data-testid={TID.addressComplement}\n value={complement}\n onChange={(e) => setComplement(e.target.value)}\n placeholder=\"Apto, bloco…\"\n className=\"mt-1 h-12 w-full rounded-lg border border-border bg-transparent px-3 text-base\"\n />\n </div>\n </div>\n\n <div className=\"mt-4\">\n <label htmlFor=\"address-reference\" className=\"text-sm font-medium\">\n Ponto de referência\n </label>\n <input\n id=\"address-reference\"\n data-testid={TID.addressReference}\n value={reference}\n onChange={(e) => setReference(e.target.value)}\n placeholder=\"Portão azul, ao lado da padaria\"\n className=\"mt-1 h-12 w-full rounded-lg border border-border bg-transparent px-3 text-base\"\n />\n </div>\n\n <fieldset className=\"mt-4\">\n <legend className=\"text-sm font-medium\">Salvar como</legend>\n <div className=\"mt-2 flex flex-wrap gap-2\">\n {LABELS.map((name) => (\n <button\n key={name}\n type=\"button\"\n aria-pressed={label === name}\n onClick={() => setLabel(label === name ? '' : name)}\n className={`rounded-full px-4 py-2 text-sm font-medium ${\n label === name\n ? 'bg-foreground text-background'\n : 'border border-border text-muted-foreground'\n }`}\n >\n {name}\n </button>\n ))}\n <input\n value={LABELS.includes(label as (typeof LABELS)[number]) ? '' : label}\n onChange={(e) => setLabel(e.target.value)}\n placeholder=\"Outro\"\n aria-label=\"Outro apelido\"\n className=\"h-10 min-w-24 flex-1 rounded-full border border-border bg-transparent px-4 text-sm\"\n />\n </div>\n </fieldset>\n\n <button\n type=\"submit\"\n data-testid={TID.addressSave}\n className=\"mt-6 h-12 w-full rounded-full bg-primary font-semibold text-primary-foreground\"\n >\n Salvar endereço\n </button>\n </>\n )}\n </form>\n )\n}\n"]}
@@ -1,11 +1,11 @@
1
- import { useMyOrders } from './chunk-WPWNYBNG.js';
2
- import { CustomerAccountShell, financialStatusBadge, OrderTrackingTimeline } from './chunk-D5C5U2SG.js';
1
+ import { useMyOrders } from './chunk-NS6UPIJ3.js';
2
+ import { CustomerAccountShell, financialStatusBadge, OrderTrackingTimeline } from './chunk-RJUEUMR6.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-YDZU2SZL.js';
5
+ import { useDeliveryStore } from './chunk-C4XATNI2.js';
6
6
  import { parseAccountSection } from './chunk-DVQHKNNX.js';
7
- import { useSessionStore, useStorefrontHead, TID, SmoothImage, signUpCustomer, establishCustomerSession, EmailConfirmationRequiredError, formatMoney } from './chunk-PATS4DIF.js';
8
- import { useStorefrontConfig, useRoutePath, Link } from './chunk-GVZ2SAOI.js';
7
+ import { useSessionStore, useStorefrontHead, TID, SmoothImage, signUpCustomer, establishCustomerSession, EmailConfirmationRequiredError, formatMoney } from './chunk-EFHQ5MAJ.js';
8
+ import { useStorefrontConfig, useRoutePath, Link } from './chunk-PSDR5TZD.js';
9
9
  import React, { useState } from 'react';
10
10
  import { Package, MapPin, CreditCard, QrCode } from 'lucide-react';
11
11
  import { getShopProvider } from '@fayz-ai/shop/runtime';
@@ -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-Z5JT7T4I.js.map
454
+ //# sourceMappingURL=chunk-Z5JT7T4I.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-Z5JT7T4I.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 +1 @@
1
- {"version":3,"file":"StoreCover.d.ts","sourceRoot":"","sources":["../../../src/components/delivery/StoreCover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAkCzB,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;IACnE,yEAAyE;IACzE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B,qBA2KA"}
1
+ {"version":3,"file":"StoreCover.d.ts","sourceRoot":"","sources":["../../../src/components/delivery/StoreCover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAkCzB,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;IACnE,yEAAyE;IACzE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B,qBA4KA"}
@@ -20,6 +20,13 @@ export declare function resolveAuthAdapter(configured: StorefrontAuthAdapter | S
20
20
  supabaseUrl?: string;
21
21
  supabaseAnonKey?: string;
22
22
  }): AuthAdapter;
23
+ /**
24
+ * An AuthAdapter whose implementation is loaded on first use. Every method but
25
+ * `onAuthStateChange` is async already, so callers cannot tell; the listener is
26
+ * attached once the real adapter is there, and its unsubscribe works before or
27
+ * after that.
28
+ */
29
+ export declare function createLazyAuthAdapter(load: () => Promise<AuthAdapter>): AuthAdapter;
23
30
  /** Called once by createStorefrontApp. Restores any persisted session. */
24
31
  export declare function initCustomerAuth(adapter: AuthAdapter): void;
25
32
  /** True once an authenticated shopper identity has been seen this session. */
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/data/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,eAAe,CAAA;AAG1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAazE,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErF;;;;2DAI2D;AAC3D,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,KAAK,EAAE,MAAM;CAK1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;CACzC;AAsBD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,qBAAqB,GAAG,oBAAoB,GAAG,SAAS,EACpE,QAAQ,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,WAAW,CAeb;AAuBD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CA8C3D;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,2GAA2G;AAC3G,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAAC,CAQ5H;AAED,wBAAgB,sBAAsB,IAAI,WAAW,CAGpD;AAgCD,MAAM,WAAW,uBAAuB;IACtC,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,uBAAuB,GAC7B,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBjC;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAE3F;AAED,mEAAmE;AACnE,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAWjC;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAQrD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/data/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,eAAe,CAAA;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAazE,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErF;;;;2DAI2D;AAC3D,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,KAAK,EAAE,MAAM;CAK1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;CACzC;AAsBD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,qBAAqB,GAAG,oBAAoB,GAAG,SAAS,EACpE,QAAQ,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,WAAW,CA2Bb;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAqCnF;AAuBD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CA8C3D;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,2GAA2G;AAC3G,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAAC,CAQ5H;AAED,wBAAgB,sBAAsB,IAAI,WAAW,CAGpD;AAgCD,MAAM,WAAW,uBAAuB;IACtC,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,uBAAuB,GAC7B,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBjC;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAE3F;AAED,mEAAmE;AACnE,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAWjC;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAQrD"}
@@ -348,6 +348,13 @@ export interface StorefrontDeliveryConfig {
348
348
  * sobre a cor da marca — o cardápio nunca depende de haver foto.
349
349
  */
350
350
  coverImage?: string;
351
+ /**
352
+ * Responsive versions of `coverImage`, as an `<img srcset>` value (e.g.
353
+ * `'/cover-720.webp 720w, /cover-1280.webp 1280w'`). The cover spans the
354
+ * viewport, so the browser picks by width: a phone downloads the 720 px copy
355
+ * instead of the desktop one — and the cover is often the menu's LCP image.
356
+ */
357
+ coverImageSrcSet?: string;
351
358
  /** O logo, no quadrado sobre a capa. Cai para a inicial do nome. */
352
359
  logoImage?: string;
353
360
  /**
@@ -423,6 +430,7 @@ export interface ResolvedStorefrontConfig extends StorefrontConfig {
423
430
  delivery?: {
424
431
  menuPath: string;
425
432
  coverImage?: string;
433
+ coverImageSrcSet?: string;
426
434
  logoImage?: string;
427
435
  coverSize?: StorefrontDeliveryConfig['coverSize'];
428
436
  locality?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/document/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/document/config.ts"],"names":[],"mappings":"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"}
package/dist/host.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { buildRobotsTxt, buildSitemapXml } from './chunk-WCAQRATH.js';
2
2
  export { buildRobotsTxt, buildSitemapXml } from './chunk-WCAQRATH.js';
3
- import { storefrontPaths, isPublicPath, menuDataNeeds, isKnownPath, productSeo, menuSeo, pageSeo } from './chunk-45R7CIEA.js';
4
- export { menuDataNeeds } from './chunk-45R7CIEA.js';
5
- import { collectDataNeeds, resolvePageDataNeed, toBlockNodes, defaultPageBlocks } from './chunk-BKO2AQ3Q.js';
6
- import { resolveConfig, matchPath } from './chunk-GVZ2SAOI.js';
3
+ import { storefrontPaths, isPublicPath, menuDataNeeds, isKnownPath, productSeo, menuSeo, pageSeo } from './chunk-CE4U65TZ.js';
4
+ export { menuDataNeeds } from './chunk-CE4U65TZ.js';
5
+ import { collectDataNeeds, resolvePageDataNeed, toBlockNodes, defaultPageBlocks } from './chunk-SLJ4BRXD.js';
6
+ import { resolveConfig, matchPath } from './chunk-PSDR5TZD.js';
7
7
  import { validateExperiments } from './chunk-4REZOGGW.js';
8
8
  export { EXPERIMENT_HEADER, decodeExperimentHeader } from './chunk-4REZOGGW.js';
9
9
  import { buildSeoTags } from '@fayz-ai/core';
package/dist/index.d.ts CHANGED
@@ -51,7 +51,7 @@ export { useCartStore, selectCount, selectSubtotal, selectDiscountTotal, selectS
51
51
  export type { CartLine, CartState } from './stores/cart.store';
52
52
  export { useSessionStore } from './stores/session.store';
53
53
  export type { SessionState } from './stores/session.store';
54
- export { signInByEmail, signUpCustomer, establishCustomerSession, signOutCustomer, getCustomerAuthAdapter, resolveAuthAdapter, EmailConfirmationRequiredError, } from './data/auth';
54
+ export { signInByEmail, signUpCustomer, establishCustomerSession, signOutCustomer, getCustomerAuthAdapter, resolveAuthAdapter, createLazyAuthAdapter, EmailConfirmationRequiredError, } from './data/auth';
55
55
  export type { StorefrontAuthAdapter, StorefrontAuthConfig, EstablishSessionOptions } from './data/auth';
56
56
  export { useCatalogStore } from './stores/catalog.store';
57
57
  export type { CatalogState, CatalogSort } from './stores/catalog.store';