@sazito/checkout 0.4.20 → 0.4.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/chunks/{labels-FNi3eq4p.cjs → labels-BYJQjaT_.cjs} +2 -2
- package/dist/chunks/labels-BYJQjaT_.cjs.map +1 -0
- package/dist/chunks/{labels-CwHBYso8.js → labels-Cqrb2MwA.js} +2 -2
- package/dist/chunks/labels-Cqrb2MwA.js.map +1 -0
- package/dist/chunks/{use-checkout-OyHfWeAh.js → use-checkout-BRDfZp4Z.js} +5 -7
- package/dist/chunks/use-checkout-BRDfZp4Z.js.map +1 -0
- package/dist/chunks/{use-checkout-DsTtOAMs.cjs → use-checkout-MM-Ld0Ew.cjs} +5 -7
- package/dist/chunks/use-checkout-MM-Ld0Ew.cjs.map +1 -0
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -1
- package/dist/next/index.cjs +3 -3
- package/dist/next/index.cjs.map +1 -1
- package/dist/next/index.js +4 -4
- package/dist/next/index.js.map +1 -1
- package/dist/next/payment-return.cjs +6 -4
- package/dist/next/payment-return.cjs.map +1 -1
- package/dist/next/payment-return.d.cts +1 -1
- package/dist/next/payment-return.d.ts +1 -1
- package/dist/next/payment-return.js +6 -4
- package/dist/next/payment-return.js.map +1 -1
- package/dist/react/index.cjs +2 -2
- package/dist/react/index.js +2 -2
- package/dist/server/index.cjs +34 -11
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +34 -11
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/labels-CwHBYso8.js.map +0 -1
- package/dist/chunks/labels-FNi3eq4p.cjs.map +0 -1
- package/dist/chunks/use-checkout-DsTtOAMs.cjs.map +0 -1
- package/dist/chunks/use-checkout-OyHfWeAh.js.map +0 -1
package/dist/next/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/ui/slot.tsx","../../src/ui/primitives.tsx","../../src/ui/Stepper.tsx","../../src/ui/OrderSummary.tsx","../../src/ui/steps/CartStep.tsx","../../src/ui/steps/ShippingStep.tsx","../../src/ui/steps/PaymentStep.tsx","../../src/ui/steps/ResultStep.tsx","../../src/ui/SazitoCheckout.tsx","../../src/next/SazitoCheckoutPage.tsx"],"sourcesContent":["'use client';\n\nimport {\n cloneElement,\n isValidElement,\n type ReactNode,\n type ReactElement,\n type HTMLAttributes\n} from 'react';\n\n/**\n * When `asChild` is true, merges the parent's props onto the single React child\n * element instead of rendering a wrapper element — the same pattern Radix UI /\n * shadcn/ui uses. Class names and event handlers are merged; all other props\n * from the parent win (child props act as defaults).\n */\nexport function Slot({\n children,\n ...slotProps\n}: HTMLAttributes<HTMLElement> & { children?: ReactNode }) {\n if (!isValidElement(children)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Slot] Must receive exactly one valid React element as child.');\n }\n return <>{children}</>;\n }\n\n const child = children as ReactElement<Record<string, unknown>>;\n const childProps = child.props as Record<string, unknown>;\n\n const mergedClassName =\n [slotProps.className, childProps.className].filter(Boolean).join(' ') || undefined;\n\n // Merge event handlers: call both if both exist.\n const merged: Record<string, unknown> = { ...childProps, ...slotProps };\n if (mergedClassName) merged.className = mergedClassName;\n\n for (const key of Object.keys(childProps)) {\n if (key.startsWith('on') && typeof childProps[key] === 'function' && typeof (slotProps as Record<string, unknown>)[key] === 'function') {\n const slotHandler = (slotProps as Record<string, unknown>)[key] as (...a: unknown[]) => void;\n const childHandler = childProps[key] as (...a: unknown[]) => void;\n merged[key] = (...args: unknown[]) => {\n slotHandler(...args);\n childHandler(...args);\n };\n }\n }\n\n return cloneElement(child, merged);\n}\n","'use client';\n\nimport type {\n ButtonHTMLAttributes,\n InputHTMLAttributes,\n ReactNode,\n SelectHTMLAttributes,\n TextareaHTMLAttributes\n} from 'react';\nimport { Slot } from './slot';\n\nfunction cx(...parts: Array<string | false | undefined | null>): string {\n return parts.filter(Boolean).join(' ');\n}\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'outline' | 'ghost';\n block?: boolean;\n loading?: boolean;\n asChild?: boolean;\n}\n\nexport function Button({\n variant = 'primary',\n block,\n loading,\n asChild,\n className,\n children,\n disabled,\n ...rest\n}: ButtonProps) {\n const props = {\n className: cx('szc-btn', `szc-btn--${variant}`, block && 'szc-btn--block', className),\n disabled: disabled || loading,\n 'aria-busy': loading || undefined,\n ...rest,\n };\n\n if (asChild) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return (\n <button type=\"button\" {...props}>\n {loading ? <Spinner /> : null}\n <span>{children}</span>\n </button>\n );\n}\n\nexport interface SpinnerProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function Spinner({ asChild, className, children }: SpinnerProps = {}) {\n if (asChild && children) {\n return <Slot className={cx('szc-spinner', className)}>{children}</Slot>;\n }\n return <span className={cx('szc-spinner', className)} aria-hidden=\"true\">{children}</span>;\n}\n\nexport interface ProductPlaceholderProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function ProductPlaceholder({ asChild, className, children }: ProductPlaceholderProps = {}) {\n const props = { className: cx('szc-product-placeholder', className) };\n\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return (\n <span {...props}>\n {children ?? (\n <svg viewBox=\"0 0 64 64\" width=\"30\" height=\"30\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M32 12 49 21.5v21L32 52 15 42.5v-21L32 12Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2.25\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"m15 21.5 17 9.5 17-9.5M32 31v21\"\n stroke=\"currentColor\"\n strokeWidth=\"2.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </span>\n );\n}\n\nexport interface FieldProps extends InputHTMLAttributes<HTMLInputElement> {\n label: string;\n error?: string;\n optionalLabel?: string;\n asChild?: boolean;\n}\n\nexport function FieldLabel({\n label,\n required,\n optionalLabel\n}: {\n label: string;\n required?: boolean;\n optionalLabel?: string;\n}) {\n return (\n <span className=\"szc-field__label\">\n {label}\n {!required && optionalLabel ? (\n <span className=\"szc-field__optional\">({optionalLabel})</span>\n ) : null}\n </span>\n );\n}\n\nexport function Field({ label, id, className, error, required, optionalLabel, asChild, children, ...rest }: FieldProps) {\n const inputProps = {\n id,\n required,\n className: cx('szc-input', error && 'szc-input--error', className),\n ...rest,\n };\n\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n {asChild && children\n ? <Slot {...inputProps}>{children as ReactNode}</Slot>\n : <input {...inputProps} />\n }\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nexport interface TextAreaFieldProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n label: string;\n error?: string;\n optionalLabel?: string;\n asChild?: boolean;\n}\n\nexport function TextAreaField({ label, id, className, error, required, optionalLabel, asChild, children, ...rest }: TextAreaFieldProps) {\n const inputProps = {\n id,\n required,\n className: cx('szc-input', 'szc-textarea', error && 'szc-input--error', className),\n ...rest,\n };\n\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n {asChild && children\n ? <Slot {...inputProps as Record<string, unknown>}>{children as ReactNode}</Slot>\n : <textarea {...inputProps} />\n }\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nexport interface SelectFieldProps extends SelectHTMLAttributes<HTMLSelectElement> {\n label: string;\n children: ReactNode;\n optionalLabel?: string;\n}\n\nexport function SelectField({ label, id, className, children, required, optionalLabel, ...rest }: SelectFieldProps) {\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n <select id={id} required={required} className={cx('szc-input', 'szc-select', className)} {...rest}>\n {children}\n </select>\n </label>\n );\n}\n\nexport function Card({ className, children }: { className?: string; children: ReactNode }) {\n return <div className={cx('szc-card', className)}>{children}</div>;\n}\n\nexport interface SectionTitleProps {\n children: ReactNode;\n asChild?: boolean;\n className?: string;\n}\n\nexport function SectionTitle({ children, asChild, className }: SectionTitleProps) {\n const props = { className: cx('szc-section-title', className) };\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n return <h3 {...props}>{children}</h3>;\n}\n\nexport interface ErrorBannerProps {\n message: string;\n asChild?: boolean;\n children?: ReactNode;\n className?: string;\n}\n\nexport function ErrorBanner({ message, asChild, children, className }: ErrorBannerProps) {\n const props = {\n className: cx('szc-error', className),\n role: 'alert' as const,\n };\n\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return <div {...props}>{message}</div>;\n}\n","'use client';\n\nimport type { ReactElement } from 'react';\nimport { useCheckout } from '../react';\nimport type { CheckoutStep } from '../core';\n\nconst STEPS: CheckoutStep[] = ['cart', 'shipping', 'payment', 'result'];\n\nconst STEP_ICONS: Record<CheckoutStep, () => ReactElement> = {\n cart: CartIcon,\n shipping: TruckIcon,\n payment: CardIcon,\n result: ClipboardIcon\n};\n\nexport function Stepper() {\n const { state, t } = useCheckout();\n const labels: Record<CheckoutStep, string> = {\n cart: t.stepCart,\n shipping: t.stepShipping,\n payment: t.stepPayment,\n result: t.stepResult\n };\n\n const currentIndex = STEPS.indexOf(state.step);\n\n return (\n <ol className=\"szc-stepper\">\n {STEPS.map((step, index) => {\n const status =\n index < currentIndex ? 'done' : index === currentIndex ? 'active' : 'todo';\n const Icon = STEP_ICONS[step];\n return (\n <li key={step} className={`szc-step szc-step--${status}`}>\n <span className=\"szc-step__dot\">\n {status === 'done' ? <CheckIcon /> : <Icon />}\n </span>\n <span className=\"szc-step__label\">{labels[step]}</span>\n {index < STEPS.length - 1 ? <span className=\"szc-step__line\" /> : null}\n </li>\n );\n })}\n </ol>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.5 8.5l3 3 6-6.5\" stroke=\"currentColor\" strokeWidth=\"2.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nexport function CartIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1.5 2h1.8l1.9 7.5h6.3l1.5-5H4.8\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <circle cx=\"6.5\" cy=\"13\" r=\"1\" fill=\"currentColor\" />\n <circle cx=\"11\" cy=\"13\" r=\"1\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport function TruckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"4\" width=\"9\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M10 6.5h2.5l2 2.5V11h-4.5V6.5z\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\n <circle cx=\"4\" cy=\"12.5\" r=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <circle cx=\"12\" cy=\"12.5\" r=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n );\n}\n\nexport function CardIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1.5\" y=\"3.5\" width=\"13\" height=\"9\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M1.5 6.5h13\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <rect x=\"3\" y=\"8.5\" width=\"3\" height=\"1.5\" rx=\".5\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport function ClipboardIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2.5\" y=\"2.5\" width=\"11\" height=\"12\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M5.5 2.5A1.5 1.5 0 0 1 7 1h2a1.5 1.5 0 0 1 1.5 1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n <path d=\"M5 7h6M5 9.5h4\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n","'use client';\n\nimport { useCheckout } from '../react';\nimport { formatPercent, type SummaryLineKey } from '../core';\nimport { Spinner } from './primitives';\n\nexport function OrderSummary() {\n const { state, summary, money, t } = useCheckout();\n const updating = state.flags.updatingCart;\n const percentSign = state.locale === 'fa' ? '٪' : '%';\n\n const lineLabels: Record<SummaryLineKey, string> = {\n subtotal: t.subtotal,\n discount: t.yourSavings,\n shipping: t.shipping,\n credit: t.credit,\n vat: t.vat\n };\n\n return (\n <aside\n className={`szc-summary${updating ? ' szc-summary--loading' : ''}`}\n aria-busy={updating}\n >\n <div className=\"szc-summary__total-head\">\n <span className=\"szc-summary__total-label\">{t.totalAmount}</span>\n <span className=\"szc-summary__total-value\">{money(summary.total)}</span>\n </div>\n\n <dl className=\"szc-summary__lines\">\n {summary.lines.map((line) => (\n <div\n key={line.key}\n className={`szc-summary__line${line.key === 'discount' ? ' szc-summary__line--discount' : ''}`}\n >\n <dt>\n {lineLabels[line.key]}\n {(line.percent ?? 0) > 0\n ? ` (${formatPercent(line.percent as number, state.locale)}${percentSign})`\n : ''}\n </dt>\n <dd className={line.negative ? 'szc-summary__line--neg' : undefined}>\n {line.free ? (\n <span className=\"szc-summary__free\">{t.free}</span>\n ) : (\n `${line.negative ? '−' : ''}${money(line.amount)}`\n )}\n </dd>\n </div>\n ))}\n </dl>\n\n <div className=\"szc-summary__grand\">\n <span>{t.total}</span>\n <span>{money(summary.total)}</span>\n </div>\n\n {updating ? (\n <div className=\"szc-summary__loading\" role=\"status\" aria-live=\"polite\">\n <Spinner className=\"szc-summary__spinner\" />\n <span className=\"szc-visually-hidden\">{t.loading}</span>\n </div>\n ) : null}\n </aside>\n );\n}\n","'use client';\n\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport type React from 'react';\nimport { useCheckout } from '../../react';\nimport { sortCartItemsNewestFirst, toPersianDigits } from '../../core';\nimport { Button, ProductPlaceholder } from '../primitives';\nimport { CartIcon } from '../Stepper';\nimport type { EmptyCartOptions, RenderEmptyCartProps } from '../SazitoCheckout';\n\nconst PERSIAN_DIGITS = '۰۱۲۳۴۵۶۷۸۹';\nconst ARABIC_DIGITS = '٠١٢٣٤٥٦٧٨٩';\nconst QUANTITY_DEBOUNCE_MS = 500;\n\nfunction toLatinDigits(value: string): string {\n return value\n .replace(/[۰-۹]/g, (digit) => String(PERSIAN_DIGITS.indexOf(digit)))\n .replace(/[٠-٩]/g, (digit) => String(ARABIC_DIGITS.indexOf(digit)));\n}\n\nconst HEX_COLOR_RE = /^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;\n\nfunction attrValueToString(value: unknown): string {\n if (value == null) return '';\n if (typeof value === 'object') {\n const v = (value as Record<string, unknown>).value;\n return v == null ? '' : String(v);\n }\n return String(value);\n}\n\nfunction toHexColor(value: unknown): string | null {\n if (typeof value !== 'string') return null;\n const trimmed = value.trim();\n return HEX_COLOR_RE.test(trimmed) ? (trimmed.startsWith('#') ? trimmed : `#${trimmed}`) : null;\n}\n\n// Hex can arrive as the raw value, or nested in `extra`/`value` of an object attribute.\nfunction attrHexColor(value: unknown): string | null {\n if (value && typeof value === 'object') {\n const obj = value as Record<string, unknown>;\n return toHexColor(obj.extra) ?? toHexColor(obj.value);\n }\n return toHexColor(value);\n}\n\nexport function CartStep({\n continueShoppingUrl,\n emptyCart,\n renderEmpty,\n}: {\n continueShoppingUrl?: string;\n emptyCart?: EmptyCartOptions;\n renderEmpty?: (props: RenderEmptyCartProps) => React.ReactNode;\n}) {\n const { state, actions, money, t } = useCheckout();\n const cart = state.cart;\n const busy = state.flags.updatingCart;\n const newestCartItems = useMemo(\n () => sortCartItemsNewestFirst(cart?.items ?? []),\n [cart?.items]\n );\n const invoiceItemsByVariant = new Map(\n (state.invoice?.items ?? []).map((item) => [item.productVariantId, item])\n );\n\n if (!cart || cart.items.length === 0) {\n const title = emptyCart?.title ?? t.cartEmpty;\n const description = emptyCart?.description ?? t.cartEmptyHint;\n const actionLabel = emptyCart?.actionLabel ?? t.continueShopping;\n const actionUrl = emptyCart?.actionUrl ?? continueShoppingUrl;\n const visibleActionUrl = emptyCart?.hideAction ? undefined : actionUrl;\n const icon = emptyCart?.icon ?? <CartIcon />;\n\n if (renderEmpty) {\n return renderEmpty({\n continueShoppingUrl: visibleActionUrl,\n title,\n description,\n actionLabel,\n icon,\n });\n }\n\n return (\n <section className=\"szc-empty\" role=\"status\" aria-live=\"polite\">\n <div className=\"szc-empty__card\">\n <span className=\"szc-empty__badge\" aria-hidden=\"true\">{icon}</span>\n <div className=\"szc-empty__copy\">\n <h2 className=\"szc-empty__title\">{title}</h2>\n <p className=\"szc-empty__hint\">{description}</p>\n </div>\n {visibleActionUrl ? (\n <Button className=\"szc-empty__cta\" variant=\"primary\" asChild>\n <a href={visibleActionUrl}>{actionLabel}</a>\n </Button>\n ) : null}\n </div>\n </section>\n );\n }\n\n return (\n <section className=\"szc-step-panel\">\n <ul className=\"szc-cart-list\">\n {newestCartItems.map((item) => {\n const max = item.product.maxOrderQuantity;\n const min = item.product.minOrderQuantity ?? 1;\n const invoiceItem = invoiceItemsByVariant.get(item.product.variantId);\n const rawLineTotal = (invoiceItem?.rawPrice ?? item.unitPrice) * item.quantity;\n const itemDiscount = invoiceItem?.customerProfit\n || Math.max(0, rawLineTotal - item.lineTotal);\n return (\n <li key={item.id} className=\"szc-cart-row\">\n {item.product.image?.url ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img className=\"szc-cart-row__thumb\" src={item.product.image.url} alt=\"\" />\n ) : (\n <ProductPlaceholder />\n )}\n\n <div className=\"szc-cart-row__main\">\n <span className=\"szc-cart-row__name\">{item.product.name}</span>\n {item.product.attributes?.length ? (\n <span className=\"szc-cart-row__attrs\">\n {item.product.attributes.map((a, i) => {\n const value = attrValueToString(a.value);\n const hex = attrHexColor(a.value);\n return (\n <span key={`${a.name}-${i}`} className=\"szc-cart-row__attr\">\n {i > 0 ? <span className=\"szc-cart-row__attr-sep\">·</span> : null}\n <span>{a.name}:</span>\n {hex ? (\n <span\n className=\"szc-cart-row__swatch\"\n style={{ backgroundColor: hex }}\n title={hex}\n aria-hidden=\"true\"\n />\n ) : null}\n {value ? <span>{value}</span> : null}\n </span>\n );\n })}\n </span>\n ) : null}\n <span className=\"szc-cart-row__price\">{money(item.unitPrice)}</span>\n </div>\n\n <div className=\"szc-cart-row__side\">\n <QuantityControl\n value={item.quantity}\n min={min}\n max={max}\n label={t.quantity}\n onChange={(quantity) =>\n actions.updateItemQuantity(item.id, item.product.variantId, quantity)\n }\n />\n {itemDiscount > 0 ? (\n <span className=\"szc-cart-row__discount\">\n {t.itemDiscount(money(itemDiscount))}\n </span>\n ) : null}\n <span className=\"szc-cart-row__line-total\">{money(item.lineTotal)}</span>\n <button\n type=\"button\"\n className=\"szc-cart-row__remove\"\n aria-label={t.remove}\n disabled={busy}\n onClick={() => actions.removeItem(item.id, item.product.variantId)}\n >\n <TrashIcon />\n </button>\n </div>\n </li>\n );\n })}\n </ul>\n </section>\n );\n}\n\ninterface QuantityControlProps {\n value: number;\n min: number;\n max?: number;\n label: string;\n onChange: (value: number) => Promise<void>;\n}\n\nfunction QuantityControl({ value, min, max, label, onChange }: QuantityControlProps) {\n const [draft, setDraft] = useState(() => toPersianDigits(String(value)));\n const [pending, setPending] = useState(false);\n const [updating, setUpdating] = useState(false);\n const draftRef = useRef(draft);\n const pendingValueRef = useRef<number | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const inFlightRef = useRef(false);\n const serverValueRef = useRef(value);\n const onChangeRef = useRef(onChange);\n\n serverValueRef.current = value;\n onChangeRef.current = onChange;\n\n const updateDraft = (next: string) => {\n draftRef.current = next;\n setDraft(next);\n };\n\n useEffect(() => {\n if (!pending || pendingValueRef.current === value) {\n updateDraft(toPersianDigits(String(value)));\n }\n }, [value, pending]);\n\n useEffect(\n () => () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n },\n []\n );\n\n const normalize = (next: number): number =>\n Math.min(max ?? Number.POSITIVE_INFINITY, Math.max(min, Math.trunc(next)));\n\n async function flushPendingUpdate() {\n if (inFlightRef.current) return;\n\n const target = pendingValueRef.current;\n if (target == null) return;\n\n if (target === serverValueRef.current) {\n pendingValueRef.current = null;\n setPending(false);\n return;\n }\n\n inFlightRef.current = true;\n setUpdating(true);\n try {\n await onChangeRef.current(target);\n } finally {\n inFlightRef.current = false;\n setUpdating(false);\n\n if (pendingValueRef.current === target) {\n pendingValueRef.current = null;\n setPending(false);\n } else if (timerRef.current == null) {\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n void flushPendingUpdate();\n }, QUANTITY_DEBOUNCE_MS);\n }\n }\n }\n\n const scheduleUpdate = (rawValue: string | number) => {\n const parsed = typeof rawValue === 'number' ? rawValue : Number(toLatinDigits(rawValue));\n const next = normalize(Number.isFinite(parsed) ? parsed : value);\n\n updateDraft(toPersianDigits(String(next)));\n if (next === serverValueRef.current && !pending && !inFlightRef.current) return;\n\n pendingValueRef.current = next;\n setPending(true);\n\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n void flushPendingUpdate();\n }, QUANTITY_DEBOUNCE_MS);\n };\n\n const step = (amount: number) => {\n const parsedDraft = Number(toLatinDigits(draftRef.current));\n const base = Number.isFinite(parsedDraft) ? parsedDraft : value;\n scheduleUpdate(base + amount);\n };\n\n const parsedDraft = Number(toLatinDigits(draft));\n const displayedValue = Number.isFinite(parsedDraft) ? normalize(parsedDraft) : value;\n\n return (\n <div\n className={`szc-qty${pending ? ' szc-qty--pending' : ''}`}\n aria-busy={updating}\n >\n <button\n type=\"button\"\n className=\"szc-qty__btn\"\n aria-label={`${label} −`}\n disabled={updating || displayedValue <= min}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => step(-1)}\n >\n <MinusIcon />\n </button>\n <input\n className=\"szc-qty__input\"\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[۰-۹٠-٩0-9]*\"\n role=\"spinbutton\"\n value={draft}\n aria-label={label}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={displayedValue}\n disabled={updating}\n onChange={(event) => {\n const digits = toLatinDigits(event.target.value).replace(/\\D/g, '');\n if (!digits) {\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = null;\n updateDraft('');\n return;\n }\n scheduleUpdate(Number(digits));\n }}\n onBlur={() => scheduleUpdate(draftRef.current)}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.currentTarget.blur();\n } else if (event.key === 'Escape') {\n event.preventDefault();\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = null;\n pendingValueRef.current = null;\n setPending(false);\n updateDraft(toPersianDigits(String(value)));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n step(1);\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n step(-1);\n }\n }}\n />\n <button\n type=\"button\"\n className=\"szc-qty__btn\"\n aria-label={`${label} +`}\n disabled={updating || (max != null && displayedValue >= max)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => step(1)}\n >\n <PlusIcon />\n </button>\n </div>\n );\n}\n\nfunction MinusIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.5 8h9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction PlusIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M8 3.5v9M3.5 8h9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction TrashIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n <path d=\"M10 11v6M14 11v6\" />\n </svg>\n );\n}\n","'use client';\n\nimport { useState, useCallback, useRef, useEffect, type CSSProperties } from 'react';\nimport { useCheckout } from '../../react';\nimport {\n toPersianDigits,\n normalizeIranianPhone,\n isValidIranianMobile,\n isDigitalServiceGroup\n} from '../../core';\nimport { Field, FieldLabel, ProductPlaceholder } from '../primitives';\nimport type { ShippingGroup, ShippingRate, AddressFormValues } from '../../core';\n\ntype TouchedFields = Partial<Record<keyof AddressFormValues, true>>;\ntype FormErrors = Partial<Record<keyof AddressFormValues, string>>;\n\nfunction validate(\n form: AddressFormValues,\n needsShipping: boolean,\n postalCodeMandatory: boolean,\n emailMandatory: boolean,\n t: { errorRequired: string; errorMobilePhone: string; errorEmail: string }\n): FormErrors {\n const e: FormErrors = {};\n if (!form.firstName.trim()) e.firstName = t.errorRequired;\n if (!form.lastName.trim()) e.lastName = t.errorRequired;\n if (!form.mobilePhone.trim()) {\n e.mobilePhone = t.errorRequired;\n } else if (!isValidIranianMobile(form.mobilePhone)) {\n e.mobilePhone = t.errorMobilePhone;\n }\n if (emailMandatory && !form.email.trim()) {\n e.email = t.errorRequired;\n } else if (form.email.trim() && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(form.email.trim())) {\n e.email = t.errorEmail;\n }\n if (needsShipping) {\n if (!form.regionId) e.regionId = t.errorRequired;\n if (!form.cityId) e.cityId = t.errorRequired;\n if (postalCodeMandatory && !form.postalCode.trim()) e.postalCode = t.errorRequired;\n if (!form.address.trim()) e.address = t.errorRequired;\n }\n return e;\n}\n\nexport function ShippingStep() {\n const { state, actions, t, digitalItems } = useCheckout();\n const { addressForm, regions, shippingGroups } = state;\n const [touched, setTouched] = useState<TouchedFields>({});\n const needsShipping = state.invoice?.needsShipping ?? true;\n const physicalShippingGroups = shippingGroups.filter((group) => !isDigitalServiceGroup(group));\n const physicalItemCount = Math.max(0, (state.invoice?.items.length ?? 0) - digitalItems.length);\n\n const touch = useCallback((key: keyof AddressFormValues) => {\n setTouched((prev) => ({ ...prev, [key]: true }));\n }, []);\n\n const allErrors = validate(addressForm, needsShipping, state.postalCodeMandatory, state.emailMandatory, t as never);\n const errors: FormErrors = Object.fromEntries(\n Object.entries(allErrors).filter(([k]) => touched[k as keyof AddressFormValues])\n );\n\n const selectedRegion = regions.find((r) => r.id === addressForm.regionId);\n\n const handleBlurPhone = (key: 'mobilePhone' | 'phoneNumber') => {\n const raw = addressForm[key];\n if (raw) {\n const normalized = normalizeIranianPhone(raw);\n if (normalized !== raw) actions.setAddressField(key, normalized);\n }\n touch(key);\n };\n\n const busy = state.flags.savingAddress || state.flags.loadingShipping;\n\n return (\n <section className={`szc-step-panel${busy ? ' szc-step-panel--loading' : ''}`}>\n <div className=\"szc-shipping-form-card\">\n <section className=\"szc-shipping-section\" aria-labelledby=\"szc-contact-title\">\n <ShippingSectionHeader id=\"szc-contact-title\" title={t.contactInfo} icon=\"contact\" />\n <div className=\"szc-form-grid\">\n <Field\n id=\"szc-first-name\"\n label={t.firstName}\n required\n optionalLabel={t.optional}\n value={addressForm.firstName}\n error={errors.firstName}\n onChange={(e) => actions.setAddressField('firstName', e.target.value)}\n onBlur={() => touch('firstName')}\n />\n <Field\n id=\"szc-last-name\"\n label={t.lastName}\n required\n optionalLabel={t.optional}\n value={addressForm.lastName}\n error={errors.lastName}\n onChange={(e) => actions.setAddressField('lastName', e.target.value)}\n onBlur={() => touch('lastName')}\n />\n <Field\n id=\"szc-mobile\"\n label={t.mobilePhone}\n required\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"tel\"\n value={addressForm.mobilePhone}\n error={errors.mobilePhone}\n onChange={(e) => actions.setAddressField('mobilePhone', e.target.value)}\n onBlur={() => handleBlurPhone('mobilePhone')}\n />\n <Field\n id=\"szc-email\"\n label={t.email}\n required={state.emailMandatory}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"email\"\n value={addressForm.email}\n error={errors.email}\n onChange={(e) => actions.setAddressField('email', e.target.value)}\n onBlur={() => touch('email')}\n />\n </div>\n </section>\n\n {needsShipping ? (\n <section className=\"szc-shipping-section\" aria-labelledby=\"szc-address-title\">\n <ShippingSectionHeader id=\"szc-address-title\" title={t.reviewAddress} icon=\"address\" />\n <div className=\"szc-form-grid\">\n <EnhancedSelect\n id=\"szc-region\"\n label={t.region}\n required\n optionalLabel={t.optional}\n value={addressForm.regionId ?? ''}\n error={errors.regionId}\n onChange={(v) => {\n actions.setAddressField('regionId', v ? Number(v) : null);\n touch('regionId');\n }}\n placeholder={t.selectRegion}\n options={regions.map((r) => ({ value: r.id, label: r.name }))}\n />\n <EnhancedSelect\n id=\"szc-city\"\n label={t.city}\n required\n optionalLabel={t.optional}\n value={addressForm.cityId ?? ''}\n disabled={!selectedRegion}\n error={errors.cityId}\n onChange={(v) => {\n actions.setAddressField('cityId', v ? Number(v) : null);\n touch('cityId');\n }}\n placeholder={t.selectCity}\n options={selectedRegion?.cities.map((c) => ({ value: c.id, label: c.name })) ?? []}\n />\n <Field\n id=\"szc-postal\"\n label={t.postalCode}\n required={state.postalCodeMandatory}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"numeric\"\n value={addressForm.postalCode}\n error={errors.postalCode}\n onChange={(e) => actions.setAddressField('postalCode', e.target.value)}\n onBlur={() => touch('postalCode')}\n />\n <Field\n id=\"szc-phone\"\n label={t.phoneNumber}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"tel\"\n value={addressForm.phoneNumber}\n onChange={(e) => actions.setAddressField('phoneNumber', e.target.value)}\n onBlur={() => handleBlurPhone('phoneNumber')}\n />\n </div>\n <Field\n id=\"szc-address\"\n label={t.addressLine}\n required\n optionalLabel={t.optional}\n value={addressForm.address}\n error={errors.address}\n onChange={(e) => actions.setAddressField('address', e.target.value)}\n onBlur={() => touch('address')}\n />\n <Field\n id=\"szc-description\"\n label={t.description}\n optionalLabel={t.optional}\n value={addressForm.description}\n onChange={(e) => actions.setAddressField('description', e.target.value)}\n onBlur={() => touch('description')}\n />\n </section>\n ) : null}\n </div>\n\n {digitalItems.length > 0 ? (\n <section className=\"szc-digital-products\" aria-labelledby=\"szc-digital-title\">\n <header className=\"szc-digital-products__head\">\n <span className=\"szc-digital-products__icon\" aria-hidden=\"true\"><DigitalIcon /></span>\n <div className=\"szc-digital-products__heading\">\n <div className=\"szc-digital-products__title-row\">\n <h2 id=\"szc-digital-title\" className=\"szc-digital-products__title\">\n {t.digitalNoShipping}\n </h2>\n <span className=\"szc-digital-products__count\">\n {t.productCount(toPersianDigits(String(digitalItems.length)))}\n </span>\n </div>\n <p>{t.digitalNoShippingHint}</p>\n </div>\n </header>\n <div className=\"szc-digital-products__list\">\n {digitalItems.map((item) => (\n <article key={item.id} className=\"szc-digital-product\">\n <div className=\"szc-digital-product__media\">\n {item.image?.url ? (\n <img src={item.image.url} alt={item.image.alt || item.name} />\n ) : (\n <ProductPlaceholder />\n )}\n <span className=\"szc-ship-product__quantity\">\n {toPersianDigits(String(item.quantity))}\n </span>\n </div>\n <strong className=\"szc-digital-product__name\">{item.name}</strong>\n </article>\n ))}\n </div>\n </section>\n ) : null}\n\n {physicalShippingGroups.length > 0 ? (\n <section className=\"szc-shipping-methods\" aria-labelledby=\"szc-methods-title\">\n <ShippingSectionHeader id=\"szc-methods-title\" title={t.shippingMethods} icon=\"shipping\" />\n <div className=\"szc-ship-groups\">\n {physicalShippingGroups.map((group) => (\n <ShippingGroupCard key={group.key} group={group} />\n ))}\n </div>\n </section>\n ) : needsShipping && physicalItemCount > 0 ? (\n <div className=\"szc-shipping-pending\" role=\"note\">\n <span className=\"szc-shipping-pending__icon\" aria-hidden=\"true\"><TruckIcon /></span>\n <div className=\"szc-shipping-pending__copy\">\n <strong>{t.shippingMethods}</strong>\n <span>{t.shippingMethodsHint}</span>\n </div>\n </div>\n ) : null}\n\n </section>\n );\n}\n\nfunction ShippingSectionHeader({\n id,\n title,\n icon\n}: {\n id: string;\n title: string;\n icon: 'contact' | 'address' | 'shipping';\n}) {\n return (\n <header className=\"szc-shipping-section__head\">\n <span className=\"szc-shipping-section__icon\" aria-hidden=\"true\">\n {icon === 'contact' ? <ContactIcon /> : icon === 'address' ? <AddressIcon /> : <TruckIcon />}\n </span>\n <h2 id={id} className=\"szc-shipping-section__title\">{title}</h2>\n </header>\n );\n}\n\nfunction ContactIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"8\" r=\"3.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" />\n <path d=\"M5.5 19c.65-3.35 3-5.25 6.5-5.25s5.85 1.9 6.5 5.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction AddressIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M19 10c0 4.7-7 10-7 10S5 14.7 5 10a7 7 0 1 1 14 0Z\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinejoin=\"round\" />\n <circle cx=\"12\" cy=\"10\" r=\"2.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" />\n </svg>\n );\n}\n\nfunction DigitalIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M12 3v11m0 0 4-4m-4 4-4-4\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M5 16.5v1.75A1.75 1.75 0 0 0 6.75 20h10.5A1.75 1.75 0 0 0 19 18.25V16.5\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\ninterface EnhancedSelectProps {\n id: string;\n label: string;\n value: string | number;\n placeholder: string;\n options: { value: string | number; label: string }[];\n required?: boolean;\n optionalLabel?: string;\n disabled?: boolean;\n error?: string;\n onChange: (value: string) => void;\n}\n\nfunction EnhancedSelect({ id, label, value, placeholder, options, required, optionalLabel, disabled, error, onChange }: EnhancedSelectProps) {\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n <div className=\"szc-select-wrap\">\n <select\n id={id}\n className={`szc-input szc-select-enhanced${error ? ' szc-input--error' : ''}`}\n value={value}\n required={required}\n disabled={disabled}\n onChange={(e) => onChange(e.target.value)}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <span className=\"szc-select-chevron\" aria-hidden=\"true\">\n <ChevronIcon />\n </span>\n </div>\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nfunction ChevronIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\n/**\n * Click-and-drag horizontal scrolling for a container with a hidden scrollbar.\n * Also maps vertical mouse-wheel deltas to horizontal scroll so a plain mouse\n * (no horizontal wheel) can still pan the list.\n */\nfunction useDragScroll() {\n const ref = useRef<HTMLDivElement>(null);\n const drag = useRef({ down: false, startX: 0, startLeft: 0 });\n\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const onWheel = (e: WheelEvent) => {\n if (el.scrollWidth <= el.clientWidth) return; // nothing to pan\n if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) return; // already horizontal\n e.preventDefault();\n el.scrollLeft += e.deltaY;\n };\n el.addEventListener('wheel', onWheel, { passive: false });\n return () => el.removeEventListener('wheel', onWheel);\n }, []);\n\n const onPointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el) return;\n drag.current = { down: true, startX: e.clientX, startLeft: el.scrollLeft };\n el.setPointerCapture(e.pointerId);\n el.classList.add('szc-dragging');\n };\n const onPointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el || !drag.current.down) return;\n el.scrollLeft = drag.current.startLeft - (e.clientX - drag.current.startX);\n };\n const onPointerUp = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el || !drag.current.down) return;\n drag.current.down = false;\n el.classList.remove('szc-dragging');\n try {\n el.releasePointerCapture(e.pointerId);\n } catch {\n /* pointer already released */\n }\n };\n\n return { ref, onPointerDown, onPointerMove, onPointerUp };\n}\n\nfunction ShippingGroupCard({ group }: { group: ShippingGroup }) {\n const { actions, price, state, t } = useCheckout();\n const busy = state.flags.selectingRate;\n const selectedRate = group.rates.find((rate) => rate.id === group.selectedRateId);\n const showRateSelector = group.items.length !== 1 || group.rates.length !== 1;\n const itemsScroll = useDragScroll();\n\n return (\n <div className=\"szc-ship-group\">\n <header className=\"szc-ship-group__head\">\n <span\n className=\"szc-ship-group__mark\"\n style={shippingRateIconStyle(selectedRate?.color)}\n aria-hidden=\"true\"\n >\n {selectedRate ? <ShippingRateIcon rate={selectedRate} /> : <TruckIcon />}\n </span>\n <div className=\"szc-ship-group__heading\">\n <div className=\"szc-ship-group__title-row\">\n <strong className=\"szc-ship-group__title\">\n {group.title || selectedRate?.name || t.shippingMethod}\n </strong>\n <span className=\"szc-ship-group__count\">\n {t.productCount(toPersianDigits(String(group.items.length)))}\n </span>\n </div>\n {selectedRate ? (\n <span className=\"szc-ship-group__hint\">\n {selectedRate.description ? (\n <span className=\"szc-ship-group__desc\">{selectedRate.description}</span>\n ) : null}\n <span className=\"szc-ship-group__rate-price\">\n {selectedRate.price > 0 ? price(selectedRate.price) : t.free}\n </span>\n </span>\n ) : (\n <span className=\"szc-ship-group__hint\">{t.shippingMethods}</span>\n )}\n </div>\n </header>\n\n <div\n className=\"szc-ship-group__items\"\n ref={itemsScroll.ref}\n onPointerDown={itemsScroll.onPointerDown}\n onPointerMove={itemsScroll.onPointerMove}\n onPointerUp={itemsScroll.onPointerUp}\n onPointerCancel={itemsScroll.onPointerUp}\n >\n {group.items.map((item) => (\n <article key={item.id} className=\"szc-ship-product\">\n <div className=\"szc-ship-product__media\">\n {item.image?.url ? (\n <img src={item.image.url} alt={item.image.alt || item.name} />\n ) : (\n <ProductPlaceholder />\n )}\n <span className=\"szc-ship-product__quantity\">\n {toPersianDigits(String(item.quantity))}\n </span>\n </div>\n <div className=\"szc-ship-product__copy\">\n <strong className=\"szc-ship-product__name\">{item.name}</strong>\n {item.attributes.length > 0 ? (\n <span className=\"szc-ship-product__attrs\">\n {item.attributes.map((attribute) => `${attribute.name}: ${attribute.value}`).join(' · ')}\n </span>\n ) : null}\n </div>\n </article>\n ))}\n </div>\n\n {!showRateSelector && selectedRate?.description?.trim() ? (\n <div className=\"szc-ship-group__description\">\n {selectedRate.description.trim()}\n </div>\n ) : null}\n\n {showRateSelector ? (\n <div className=\"szc-rate-list\" role=\"radiogroup\">\n {group.rates.map((rate: ShippingRate) => {\n const selected = group.selectedRateId === rate.id;\n const description = rate.description?.trim();\n return (\n <button\n key={rate.id}\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n aria-label={description ? `${rate.name} — ${description}` : rate.name}\n disabled={busy}\n className={`szc-rate${selected ? ' szc-rate--selected' : ''}`}\n onClick={() => actions.selectShippingRate(group.key, rate.id)}\n >\n <span\n className=\"szc-rate__icon\"\n style={shippingRateIconStyle(rate.color)}\n aria-hidden=\"true\"\n >\n <ShippingRateIcon rate={rate} />\n </span>\n <span className=\"szc-rate__copy\">\n <span className=\"szc-rate__name\">{rate.name}</span>\n {rate.price > 0 ? (\n <span className=\"szc-rate__price\">{price(rate.price)}</span>\n ) : null}\n </span>\n <span className=\"szc-rate__radio\" aria-hidden=\"true\">\n {selected ? <CheckIcon /> : null}\n </span>\n {description ? (\n <span className=\"szc-rate__description\">{description}</span>\n ) : null}\n </button>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n}\n\nconst ICON_PROPS = {\n viewBox: '0 0 24 24',\n width: 26,\n height: 26,\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 1.8,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n 'aria-hidden': true,\n} as const;\n\nfunction TruckIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M14 17V6a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h1\" />\n <path d=\"M9 18h5\" />\n <path d=\"M18 18h1a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.21-.62l-2.7-3.39A1 1 0 0 0 16.3 9H14\" />\n <circle cx=\"7\" cy=\"18\" r=\"2\" />\n <circle cx=\"16\" cy=\"18\" r=\"2\" />\n </svg>\n );\n}\n\nfunction ShippingRateIcon({ rate }: { rate: ShippingRate }) {\n const iconKey = shippingRateIconKey(rate);\n\n switch (iconKey) {\n case 'post':\n return <PostIcon />;\n case 'free-delivery':\n return <FreeDeliveryIcon />;\n case 'courier':\n return <CourierIcon />;\n case 'delivery-man':\n return <DeliveryManIcon />;\n default:\n return rate.icon && isImageUrl(rate.icon) ? <img src={rate.icon} alt=\"\" /> : <TruckIcon />;\n }\n}\n\nfunction shippingRateIconKey(rate: ShippingRate): string {\n const explicit = (rate.icon || rate.type || '').trim().toLowerCase().replace(/_/g, '-');\n if (explicit) return explicit;\n\n const name = rate.name.trim().toLowerCase();\n if (name.includes('پست') || name.includes('post')) return 'post';\n if (name.includes('رایگان') || name.includes('free')) return 'free-delivery';\n if (name.includes('پیک') || name.includes('courier')) return 'courier';\n if (name.includes('حضوری') || name.includes('delivery man')) return 'delivery-man';\n return '';\n}\n\n/**\n * The API returns `color` as a palette *token* (e.g. `mainColor`, `green`) — not\n * always a CSS color. Map the known tokens to concrete CSS colors so each rate\n * renders its own chip color instead of every icon falling back to the accent.\n */\nconst SHIPPING_COLOR_TOKENS: Record<string, string> = {\n green: '#16a34a',\n red: '#dc2626',\n blue: '#2563eb',\n orange: '#ea580c',\n yellow: '#eab308',\n purple: '#7c3aed',\n pink: '#db2777',\n teal: '#0d9488',\n cyan: '#0891b2',\n indigo: '#4f46e5',\n gray: '#6b7280',\n grey: '#6b7280',\n black: '#0f172a',\n brown: '#92400e'\n};\n\nfunction resolveShippingColor(raw: string): string | undefined {\n const token = raw.trim().toLowerCase();\n if (!token) return undefined;\n // The shop's \"main color\" is the theme accent → let the CSS fallback handle it.\n if (token === 'maincolor' || token === 'main') return undefined;\n if (token === 'transparent' || token === 'white') return '#ffffff';\n if (SHIPPING_COLOR_TOKENS[token]) return SHIPPING_COLOR_TOKENS[token];\n // Already a concrete CSS color value (hex / rgb()).\n if (parseColorChannels(token)) return token;\n return undefined;\n}\n\nfunction shippingRateIconStyle(color?: string): CSSProperties | undefined {\n if (!color) return undefined;\n\n const resolved = resolveShippingColor(color);\n\n // Unknown token / unparseable → let CSS use the theme's soft accent treatment.\n if (!resolved) return undefined;\n\n const rgb = parseColorChannels(resolved);\n if (!rgb) return undefined;\n\n const luminance = (0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]) / 255;\n\n // A white / near-white brand color (common for \"post\") would vanish against\n // the card. Render a neutral chip with a slate glyph instead.\n if (luminance > 0.9) {\n return {\n '--szc-rate-color': 'var(--szc-shipping-neutral)',\n '--szc-rate-foreground': 'var(--szc-shipping-neutral-foreground)'\n } as CSSProperties;\n }\n\n const foreground = luminance > 0.62\n ? `rgb(${rgb.map((channel) => Math.round(channel * 0.58)).join(', ')})`\n : resolved;\n\n return {\n '--szc-rate-color': `color-mix(in srgb, ${resolved} 13%, var(--szc-card))`,\n '--szc-rate-foreground': foreground\n } as CSSProperties;\n}\n\nfunction parseColorChannels(value: string): [number, number, number] | null {\n const hex = value.match(/^#([\\da-f]{3}|[\\da-f]{6}|[\\da-f]{8})$/i)?.[1];\n if (hex?.length === 3) {\n return [0, 1, 2].map((index) => parseInt(hex[index] + hex[index], 16)) as [number, number, number];\n }\n if (hex && hex.length >= 6) {\n return [\n parseInt(hex.slice(0, 2), 16),\n parseInt(hex.slice(2, 4), 16),\n parseInt(hex.slice(4, 6), 16)\n ];\n }\n const channels = value.match(/^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/i);\n if (channels) return [Number(channels[1]), Number(channels[2]), Number(channels[3])];\n return null;\n}\n\nfunction isImageUrl(value: string): boolean {\n return /^(https?:)?\\/\\//i.test(value) || value.startsWith('/') || value.startsWith('data:');\n}\n\nfunction PostIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\" />\n <path d=\"M3.3 7 12 12l8.7-5\" />\n <path d=\"M12 22V12\" />\n <path d=\"m7.5 4.6 9 5.2\" />\n </svg>\n );\n}\n\nfunction FreeDeliveryIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M21 11V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l1.5-.86\" />\n <path d=\"M3.3 7 12 12l8.7-5\" />\n <path d=\"M12 22V12\" />\n <path d=\"m15.5 17 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction CourierIcon() {\n return (\n <svg {...ICON_PROPS}>\n <circle cx=\"5.5\" cy=\"17.5\" r=\"3.5\" />\n <circle cx=\"18.5\" cy=\"17.5\" r=\"3.5\" />\n <circle cx=\"15\" cy=\"5\" r=\"1\" />\n <path d=\"M12 17.5V14l-3-3 4-3 2 3h2\" />\n </svg>\n );\n}\n\nfunction DeliveryManIcon() {\n return (\n <svg {...ICON_PROPS}>\n <circle cx=\"9\" cy=\"4.5\" r=\"2.5\" />\n <path d=\"M5.5 21v-6.5a3.5 3.5 0 0 1 7 0V21\" />\n <rect x=\"14\" y=\"11.5\" width=\"6.5\" height=\"7\" rx=\"1.2\" />\n <path d=\"M14 15h6.5\" />\n <path d=\"M17.2 11.5v3.5\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"m3.2 8.2 3 3 6.6-6.4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n","'use client';\n\nimport { useCheckout } from '../../react';\nimport {\n paymentMethodInfo,\n formatPercent,\n type AppliedDiscount,\n type CheckoutLocale,\n type PaymentMethodKind,\n type Strings\n} from '../../core';\nimport { Button, SectionTitle, Spinner } from '../primitives';\n\n/** Human line for the applied-code card: \"20% off (50,000)\", \"Free shipping\", … */\nfunction describeDiscount(\n discount: AppliedDiscount,\n t: Strings,\n money: (amount: number) => string,\n locale: CheckoutLocale\n): string | null {\n const parts: string[] = [];\n if (discount.kind === 'percentage' && (discount.percent ?? 0) > 0) {\n const percentOff = t.discountPercentOff(formatPercent(discount.percent as number, locale));\n parts.push(discount.amount > 0 ? `${percentOff} (${money(discount.amount)})` : percentOff);\n } else if (discount.amount > 0) {\n parts.push(t.discountAmountOff(money(discount.amount)));\n }\n if (discount.kind === 'free_shipping' || (discount.shippingSaved ?? 0) > 0) {\n parts.push(t.discountFreeShipping);\n }\n return parts.length > 0 ? parts.join(' + ') : null;\n}\n\nexport function PaymentStep() {\n const { state, actions, t, money } = useCheckout();\n const {\n paymentMethods,\n selectedPaymentMethodId,\n appliedDiscount,\n discountCode,\n discountError,\n flags,\n locale\n } = state;\n\n return (\n <section className=\"szc-step-panel\">\n <SectionTitle>{t.paymentMethod}</SectionTitle>\n\n {flags.loadingPayments ? (\n <p className=\"szc-inline-loading\">\n <Spinner /> {t.loading}\n </p>\n ) : (\n <div className=\"szc-pay-list\" role=\"radiogroup\" aria-label={t.paymentMethod}>\n {paymentMethods.map((method) => {\n const selected = selectedPaymentMethodId === method.id;\n const info = paymentMethodInfo(method.code, locale);\n // Prefer backend-provided title/description; fall back to derived labels.\n const backendTitle = locale === 'fa' ? method.titleFa : method.title;\n const title = backendTitle?.trim() || info.title;\n const description = method.description?.trim() || info.description;\n return (\n <button\n key={method.id}\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n className={`szc-pay${selected ? ' szc-pay--selected' : ''}`}\n onClick={() => actions.selectPaymentMethod(method.id)}\n >\n <span className=\"szc-pay__icon\" aria-hidden=\"true\">\n <PaymentIcon kind={info.kind} />\n </span>\n <span className=\"szc-pay__body\">\n <span className=\"szc-pay__name\">{title}</span>\n <span className=\"szc-pay__desc\">{description}</span>\n </span>\n <span className=\"szc-pay__radio\" aria-hidden=\"true\">\n {selected ? <CheckIcon /> : null}\n </span>\n </button>\n );\n })}\n </div>\n )}\n\n <SectionTitle>{t.discountCode}</SectionTitle>\n {appliedDiscount ? (\n <div className=\"szc-discount szc-discount--applied\">\n <span className=\"szc-discount__icon\" aria-hidden=\"true\">\n <TagIcon />\n </span>\n <span className=\"szc-discount__body\">\n <code className=\"szc-discount__code\">{appliedDiscount.code}</code>\n <span className=\"szc-discount__desc\">\n {describeDiscount(appliedDiscount, t, money, locale) ?? t.applied}\n </span>\n </span>\n <span className=\"szc-discount__badge\">\n <CheckIcon /> {t.applied}\n </span>\n <Button variant=\"ghost\" onClick={() => actions.removeDiscount()} loading={flags.applyingDiscount}>\n {t.remove}\n </Button>\n </div>\n ) : (\n <div className=\"szc-discount-field\">\n <div className=\"szc-discount\">\n <span className=\"szc-discount__inputwrap\">\n <TagIcon />\n <input\n className={`szc-input${discountError ? ' szc-input--error' : ''}`}\n placeholder={t.discountPlaceholder}\n value={discountCode}\n aria-invalid={discountError ? true : undefined}\n onChange={(e) => actions.setDiscountCode(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') actions.applyDiscount();\n }}\n />\n </span>\n <Button\n variant=\"outline\"\n onClick={() => actions.applyDiscount()}\n loading={flags.applyingDiscount}\n disabled={!discountCode.trim()}\n >\n {t.apply}\n </Button>\n </div>\n {discountError ? (\n <p className=\"szc-discount__error\" role=\"alert\">\n <AlertIcon />\n {discountError}\n </p>\n ) : null}\n </div>\n )}\n </section>\n );\n}\n\nfunction TagIcon() {\n return (\n <svg viewBox=\"0 0 20 20\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M10.5 2.5H16v5.5l-7.5 7.5a1.8 1.8 0 0 1-2.5 0L3 13a1.8 1.8 0 0 1 0-2.5z\" />\n <circle cx=\"12.8\" cy=\"5.7\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n}\n\nconst ICON_PROPS = {\n viewBox: '0 0 20 20',\n width: 20,\n height: 20,\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 1.4,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n 'aria-hidden': true\n};\n\nfunction AlertIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n <path d=\"M8 4.8v3.4\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"11\" r=\"0.85\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"m3.2 8.2 3 3 6.6-6.4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nfunction PaymentIcon({ kind }: { kind: PaymentMethodKind }) {\n switch (kind) {\n case 'card':\n // two cards / transfer\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2\" y=\"5\" width=\"13\" height=\"9\" rx=\"2\" />\n <path d=\"M2 8h13M5.5 11.5h3\" />\n <path d=\"M15.5 6.5h2.5v9h-9v-1.5\" />\n </svg>\n );\n case 'cod':\n // package / hand\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M10 2.5 17 6v8l-7 3.5L3 14V6z\" />\n <path d=\"M3 6l7 3.5L17 6M10 9.5v8\" />\n </svg>\n );\n case 'bnpl':\n // calendar / installments\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"3\" y=\"4\" width=\"14\" height=\"13\" rx=\"2\" />\n <path d=\"M3 8h14M7 2.5v3M13 2.5v3M6.5 12h3\" />\n </svg>\n );\n case 'wallet':\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2.5\" y=\"5\" width=\"15\" height=\"11\" rx=\"2.5\" />\n <path d=\"M2.5 9h15\" />\n <circle cx=\"14\" cy=\"12.5\" r=\"1.1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n case 'free':\n // tag\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M10.5 2.5H16v5.5l-7.5 7.5a1.8 1.8 0 0 1-2.5 0L3 13a1.8 1.8 0 0 1 0-2.5z\" />\n <circle cx=\"12.8\" cy=\"5.7\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n case 'gateway':\n default:\n // single card / bank\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" />\n <path d=\"M2.5 8.5h15M5.5 12.5h4\" />\n </svg>\n );\n }\n}\n","'use client';\n\nimport { useCheckout } from '../../react';\nimport {\n formatNumber,\n type CheckoutInvoiceItem,\n type CheckoutShippingItem\n} from '../../core';\nimport { Button, ProductPlaceholder, Spinner } from '../primitives';\n\ninterface ResultShipmentGroup {\n shipping: CheckoutShippingItem;\n items: CheckoutInvoiceItem[];\n}\n\nexport function groupResultItemsByShipping(\n invoiceItems: CheckoutInvoiceItem[],\n shippingItems: CheckoutShippingItem[]\n): { shipmentGroups: ResultShipmentGroup[]; unassignedItems: CheckoutInvoiceItem[] } {\n const itemById = new Map<string, CheckoutInvoiceItem>();\n const assignedItems = new Set<CheckoutInvoiceItem>();\n\n invoiceItems.forEach((item) => {\n if (item.id !== undefined) itemById.set(String(item.id), item);\n });\n\n const shipmentGroups = shippingItems.map((shipping) => {\n const items = shipping.invoiceItemIds.flatMap((itemId) => {\n const item = itemById.get(String(itemId));\n if (!item || assignedItems.has(item)) return [];\n assignedItems.add(item);\n return [item];\n });\n\n return { shipping, items };\n });\n\n // Older payment responses did not expose invoice-line IDs. A single shipping\n // method is still unambiguous, so keep those orders grouped correctly.\n if (shipmentGroups.length === 1 && shipmentGroups[0].items.length === 0) {\n shipmentGroups[0].items = [...invoiceItems];\n invoiceItems.forEach((item) => assignedItems.add(item));\n }\n\n return {\n shipmentGroups: shipmentGroups.filter((group) => group.items.length > 0),\n unassignedItems: invoiceItems.filter((item) => !assignedItems.has(item))\n };\n}\n\nexport function ResultStep({ continueShoppingUrl }: { continueShoppingUrl?: string }) {\n const { state, actions, money, t } = useCheckout();\n const result = state.result;\n const status = result?.status ?? 'pending';\n const order = result?.order;\n const invoice = order?.invoice;\n const showDetails = Boolean(order && (status === 'success' || status === 'pending'));\n const showSummary = invoice?.netTotal != null || invoice?.finalTotal != null;\n const isFailure = status === 'failed' || status === 'stock_violated';\n const orderDetailsUrl = order\n ? buildOrderDetailsUrl(order.id, order.orderIdentifier, continueShoppingUrl)\n : null;\n const groupedItems = invoice\n ? groupResultItemsByShipping(invoice.invoiceItems, invoice.shippingItems)\n : { shipmentGroups: [], unassignedItems: [] };\n\n const renderItems = (items: CheckoutInvoiceItem[]) => (\n <ul className=\"szc-result-items\">\n {items.map((item, index) => (\n <li className=\"szc-result-item\" key={`${String(item.id ?? item.productVariantId)}-${index}`}>\n <span className=\"szc-result-item__product\">\n {item.image?.url ? (\n <img className=\"szc-result-item__thumb\" src={item.image.url} alt=\"\" />\n ) : (\n <ProductPlaceholder className=\"szc-result-item__thumb\" />\n )}\n <span>\n <strong>{item.name}</strong>\n {item.variantAttributes.length ? (\n <small>{item.variantAttributes.map(formatAttribute).join(' · ')}</small>\n ) : null}\n </span>\n </span>\n <span className=\"szc-result-item__quantity\">\n <span className=\"szc-result-item__mobile-label\">{t.quantity}</span>\n <strong>{formatNumber(item.noOfItems, state.locale)}</strong>\n </span>\n <span className=\"szc-result-item__total\">\n <span className=\"szc-result-item__mobile-label\">{t.lineTotal}</span>\n <strong>{money(item.totalItemsPrice)}</strong>\n </span>\n </li>\n ))}\n </ul>\n );\n\n const titleMap = {\n success: t.paymentSuccess,\n failed: t.paymentFailed,\n pending: t.paymentPending,\n stock_violated: t.paymentFailed\n } as const;\n\n return (\n <section\n className={`szc-result szc-result--${status}${showDetails ? '' : ' szc-result--compact'}`}\n >\n <div\n className=\"szc-result__hero\"\n role={isFailure ? 'alert' : 'status'}\n aria-live={isFailure ? 'assertive' : 'polite'}\n >\n <div className=\"szc-result__icon\">\n <span className=\"szc-result__icon-mark\">\n {status === 'success' ? (\n <CheckCircle />\n ) : status === 'pending' ? (\n <Spinner />\n ) : (\n <CrossCircle />\n )}\n </span>\n </div>\n\n <div className=\"szc-result__copy\">\n <h2 className=\"szc-result__title\">{titleMap[status]}</h2>\n\n {status === 'pending' ? <p className=\"szc-result__hint\">{t.paymentPendingHint}</p> : null}\n {!isFailure && result?.message ? (\n <p className=\"szc-result__message\" dir=\"auto\">{result.message}</p>\n ) : null}\n {status === 'success' && order ? (\n <p className=\"szc-result__hint\">{t.orderConfirmedHint}</p>\n ) : null}\n </div>\n\n {order ? (\n <dl className=\"szc-result__reference\">\n <div className=\"szc-result__reference-primary\">\n <dt>{t.orderNumber}</dt>\n <dd dir=\"ltr\">{String(order.orderNumber)}</dd>\n </div>\n </dl>\n ) : null}\n\n <div className=\"szc-result__actions\">\n {status === 'failed' || status === 'stock_violated' ? (\n <Button\n onClick={() => void actions.retryPayment()}\n loading={state.flags.loadingPayments}\n >\n {t.tryAgain}\n </Button>\n ) : null}\n {orderDetailsUrl ? (\n <Button asChild>\n <a href={orderDetailsUrl}>{t.orderDetails}</a>\n </Button>\n ) : null}\n {continueShoppingUrl ? (\n <Button variant=\"outline\" asChild>\n <a href={continueShoppingUrl}>{t.backToShop}</a>\n </Button>\n ) : null}\n </div>\n </div>\n\n {showDetails && order && invoice ? (\n <div className=\"szc-result__details\">\n {groupedItems.shipmentGroups.map(({ shipping, items }, index) => {\n const description = shipping.rate.description?.trim();\n\n return (\n <section\n className=\"szc-result__details-card szc-result-shipment\"\n aria-label={`${t.shippingMethod}: ${shipping.rate.name}`}\n key={`${String(shipping.id)}-${index}`}\n >\n <header className=\"szc-result-shipment__head\">\n <span className=\"szc-result-shipment__mark\" aria-hidden=\"true\">\n {isImageUrl(shipping.rate.icon) ? (\n <img src={shipping.rate.icon} alt=\"\" />\n ) : (\n <DeliveryIcon />\n )}\n </span>\n <span className=\"szc-result-shipment__name\">\n <small className=\"szc-result-shipment__eyebrow\">{t.shippingMethod}</small>\n <strong>{shipping.rate.name}</strong>\n {description ? (\n <span className=\"szc-result-shipment__description\">{description}</span>\n ) : null}\n </span>\n {shipping.rate.type !== 'free' ? (\n <span className=\"szc-result-shipment__price\">{money(shipping.rate.price)}</span>\n ) : null}\n </header>\n {renderItems(items)}\n </section>\n );\n })}\n\n {groupedItems.unassignedItems.length > 0 ? (\n <section\n className=\"szc-result__details-card szc-result-unassigned-items\"\n aria-label={t.orderItems}\n >\n {renderItems(groupedItems.unassignedItems)}\n </section>\n ) : null}\n\n {showSummary ? (\n <dl className=\"szc-result-summary\">\n {invoice.netTotal != null ? (\n <SummaryRow label={t.subtotal} value={money(invoice.netTotal)} />\n ) : null}\n {invoice.shippingTotal != null ? (\n <SummaryRow label={t.shipping} value={money(invoice.shippingTotal)} />\n ) : null}\n {invoice.discountTotal != null && invoice.discountTotal > 0 ? (\n <SummaryRow label={t.discount} value={`−${money(invoice.discountTotal)}`} />\n ) : null}\n {invoice.creditTotal != null && invoice.creditTotal > 0 ? (\n <SummaryRow label={t.credit} value={`−${money(invoice.creditTotal)}`} />\n ) : null}\n {invoice.vat != null && invoice.vat > 0 ? (\n <SummaryRow label={t.vat} value={money(invoice.vat)} />\n ) : null}\n {invoice.customerProfit != null && invoice.customerProfit > 0 ? (\n <SummaryRow label={t.yourSavings} value={money(invoice.customerProfit)} savings />\n ) : null}\n {invoice.finalTotal != null ? (\n <SummaryRow label={t.total} value={money(invoice.finalTotal)} total />\n ) : null}\n </dl>\n ) : null}\n </div>\n ) : null}\n </section>\n );\n}\n\nfunction buildOrderDetailsUrl(\n orderId: number | string,\n orderIdentifier: string,\n continueShoppingUrl?: string\n): string {\n const path = `/orderinfo/${encodeURIComponent(String(orderId))}/${encodeURIComponent(orderIdentifier)}`;\n if (!continueShoppingUrl) return path;\n\n try {\n const storefrontUrl = new URL(continueShoppingUrl);\n return new URL(path, storefrontUrl.origin).toString();\n } catch {\n return path;\n }\n}\n\nfunction formatAttribute(attribute: CheckoutInvoiceItem['variantAttributes'][number]): string {\n return `${attribute.name}: ${attribute.value}`;\n}\n\nfunction isImageUrl(value: string | undefined): value is string {\n return Boolean(value && (/^https?:\\/\\//i.test(value) || value.startsWith('/') || value.startsWith('data:image/')));\n}\n\nfunction SummaryRow({\n label,\n value,\n savings = false,\n total = false\n}: {\n label: string;\n value: string;\n savings?: boolean;\n total?: boolean;\n}) {\n return (\n <div className={`${total ? 'szc-result-summary__total' : ''} ${savings ? 'szc-result-summary__savings' : ''}`.trim()}>\n <dt>{label}</dt>\n <dd>{value}</dd>\n </div>\n );\n}\n\nfunction CheckCircle() {\n return (\n <svg viewBox=\"0 0 48 48\" width=\"48\" height=\"48\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"24\" cy=\"24\" r=\"22\" stroke=\"currentColor\" strokeWidth=\"2.5\" />\n <path\n d=\"M15 24.5l6 6 12-13\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nfunction CrossCircle() {\n return (\n <svg viewBox=\"0 0 48 48\" width=\"48\" height=\"48\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"24\" cy=\"24\" r=\"22\" stroke=\"currentColor\" strokeWidth=\"2.5\" />\n <path d=\"M17 17l14 14M31 17L17 31\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction DeliveryIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3 6.5h11v10H3zM14 10h3.5l3 3v3.5H14z\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\n <circle cx=\"7\" cy=\"18\" r=\"1.75\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <circle cx=\"17.5\" cy=\"18\" r=\"1.75\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n </svg>\n );\n}\n","'use client';\n\nimport type { CSSProperties, ReactNode } from 'react';\nimport { useCheckout } from '../react';\nimport {\n formatNumber,\n type CheckoutResult,\n type CheckoutResultStatus,\n type CheckoutTheme,\n type CheckoutOrder\n} from '../core';\nimport { Button, ErrorBanner, Spinner } from './primitives';\nimport { Stepper, CartIcon, TruckIcon, CardIcon, ClipboardIcon } from './Stepper';\nimport { OrderSummary } from './OrderSummary';\nimport { CartStep } from './steps/CartStep';\nimport { ShippingStep } from './steps/ShippingStep';\nimport { PaymentStep } from './steps/PaymentStep';\nimport { ResultStep } from './steps/ResultStep';\n\n/** Props passed to renderNextButton / renderBackButton. */\nexport interface RenderButtonProps {\n /** Whether the action is in-flight (show a loading indicator). */\n loading: boolean;\n /** Whether the button should be inert (validation not met). */\n disabled: boolean;\n /** Trigger the checkout action for this button. */\n onClick: () => void;\n /** Localised label for the current step. */\n children: ReactNode;\n}\n\nexport interface RenderEmptyCartProps {\n continueShoppingUrl?: string;\n title: ReactNode;\n description: ReactNode;\n actionLabel: ReactNode;\n icon: ReactNode;\n}\n\n/** Props passed to a custom checkout result renderer. */\nexport interface RenderResultProps {\n /** Complete post-payment result, including any backend message and order. */\n result: CheckoutResult | null;\n /** Normalized result status. Falls back to `pending` while resolving. */\n status: CheckoutResultStatus;\n /** Finalized order returned by Sazito on a successful payment. */\n order?: CheckoutOrder;\n /** Configured destination for the continue-shopping action. */\n continueShoppingUrl?: string;\n /** Return to the payment step after a failed or stock-violated result. */\n onRetry: () => void;\n}\n\n/** Content-level customisation for the built-in empty-cart screen. */\nexport interface EmptyCartOptions {\n /** Empty-state heading. Defaults to the active locale. */\n title?: ReactNode;\n /** Supporting copy below the heading. Defaults to the active locale. */\n description?: ReactNode;\n /** Label for the back-to-store action. Defaults to the active locale. */\n actionLabel?: ReactNode;\n /** Replace the built-in cart illustration. */\n icon?: ReactNode;\n /** Override config.continueShoppingUrl for this action only. */\n actionUrl?: string;\n /** Hide the action even when a continue-shopping URL is configured. */\n hideAction?: boolean;\n}\n\nexport interface SazitoCheckoutProps {\n theme?: CheckoutTheme;\n continueShoppingUrl?: string;\n className?: string;\n renderNextButton?: (props: RenderButtonProps) => ReactNode;\n renderBackButton?: (props: RenderButtonProps) => ReactNode;\n renderEmptyCart?: (props: RenderEmptyCartProps) => ReactNode;\n /** Completely replace the built-in post-payment result screen. */\n renderResult?: (props: RenderResultProps) => ReactNode;\n emptyCart?: EmptyCartOptions;\n}\n\nfunction themeVars(theme?: CheckoutTheme): CSSProperties {\n const vars: Record<string, string> = {};\n if (theme?.accent) vars['--szc-accent'] = theme.accent;\n if (theme?.accentForeground) vars['--szc-accent-foreground'] = theme.accentForeground;\n if (theme?.accentSoft) vars['--szc-accent-soft'] = theme.accentSoft;\n if (theme?.background) vars['--szc-bg'] = theme.background;\n if (theme?.foreground) vars['--szc-fg'] = theme.foreground;\n if (theme?.muted) vars['--szc-muted'] = theme.muted;\n if (theme?.mutedForeground) vars['--szc-muted-fg'] = theme.mutedForeground;\n if (theme?.border) vars['--szc-border'] = theme.border;\n if (theme?.card) vars['--szc-card'] = theme.card;\n if (theme?.summaryBackground) vars['--szc-summary-bg'] = theme.summaryBackground;\n if (theme?.danger) vars['--szc-danger'] = theme.danger;\n if (theme?.success) vars['--szc-success'] = theme.success;\n if (theme?.successForeground) vars['--szc-success-foreground'] = theme.successForeground;\n if (theme?.logoBackground) vars['--szc-logo-bg'] = theme.logoBackground;\n if (theme?.shippingNeutral) vars['--szc-shipping-neutral'] = theme.shippingNeutral;\n if (theme?.shippingNeutralForeground) vars['--szc-shipping-neutral-foreground'] = theme.shippingNeutralForeground;\n if (theme?.radius != null) vars['--szc-radius'] = `${theme.radius}px`;\n if (theme?.fontFamily) vars['--szc-font'] = theme.fontFamily;\n return vars as CSSProperties;\n}\n\nfunction CheckoutLoading({ label }: { label: string }) {\n return (\n <div className=\"szc-checkout-loading\" role=\"status\" aria-live=\"polite\">\n <Spinner className=\"szc-checkout-loading__spinner\" />\n <span>{label}</span>\n </div>\n );\n}\n\nexport function SazitoCheckout({\n theme,\n continueShoppingUrl,\n className,\n renderNextButton,\n renderBackButton,\n renderEmptyCart,\n renderResult,\n emptyCart,\n}: SazitoCheckoutProps) {\n const { state, actions, t, summary, money } = useCheckout();\n const { step, direction, flags, error } = state;\n\n const isResult = step === 'result';\n const resultStatus = state.result?.status ?? 'pending';\n const bootstrapping =\n step === 'cart' && !error && (!state.cart || !state.invoice || flags.bootstrapping);\n const emptyCartError = error?.code === 'no_cart';\n const fatal = error && !state.cart && step === 'cart' && !emptyCartError;\n\n const cartEmpty = !state.cart || state.cart.items.length === 0;\n const footerVisible =\n (step === 'cart' && !cartEmpty) || step === 'shipping' || step === 'payment';\n\n const nextBusy =\n state.status === 'working' ||\n flags.savingAddress ||\n flags.loadingShipping ||\n flags.loadingPayments ||\n flags.placingOrder;\n\n const needsShipping = state.invoice?.needsShipping !== false;\n const shippingSavePhase = state.addressDirty || !state.applicable;\n const shippingReady =\n !needsShipping ||\n (state.shippingGroups.length > 0 &&\n state.shippingGroups.every((g) => g.selectedRateId != null));\n const paymentReady =\n state.paymentMethods.length > 0 && state.selectedPaymentMethodId != null;\n const nextDisabled =\n step === 'cart'\n ? cartEmpty\n : step === 'shipping'\n ? !shippingSavePhase && !shippingReady\n : step === 'payment'\n ? !paymentReady\n : false;\n\n const nextLabel =\n step === 'cart'\n ? t.placeOrder\n : step === 'shipping'\n ? needsShipping && shippingSavePhase\n ? t.saveShippingDetails\n : t.continueToPayment\n : t.finishPurchase;\n\n const backOnClick =\n step === 'cart' && continueShoppingUrl\n ? () => { window.location.href = continueShoppingUrl; }\n : () => actions.back();\n\n const backVisible =\n step !== 'cart' || !!continueShoppingUrl;\n\n const nextButtonProps: RenderButtonProps = {\n loading: nextBusy,\n disabled: nextDisabled,\n onClick: () => actions.next(),\n children: nextLabel,\n };\n\n const backButtonProps: RenderButtonProps = {\n loading: false,\n disabled: false,\n onClick: backOnClick,\n children: t.back,\n };\n\n /* Rendered twice: under the order summary (desktop) and in the sticky\n bottom bar (mobile). CSS shows exactly one of the two. */\n const nextButtonNode = renderNextButton ? (\n renderNextButton(nextButtonProps)\n ) : (\n <Button\n className=\"szc-footer__next\"\n loading={nextBusy}\n disabled={nextDisabled}\n onClick={() => actions.next()}\n >\n {nextLabel}\n </Button>\n );\n\n const backButtonNode = backVisible ? (\n renderBackButton ? (\n renderBackButton(backButtonProps)\n ) : (\n <Button variant=\"ghost\" className=\"szc-back-btn\" onClick={backOnClick}>\n <svg\n className=\"szc-back-arrow\"\n viewBox=\"0 0 16 16\"\n width=\"15\"\n height=\"15\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.5 3.5 5 8l4.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {t.back}\n </Button>\n )\n ) : null;\n\n const actionsVisible = !bootstrapping && !fatal && !isResult && footerVisible;\n\n /* Mobile header (replaces the stepper on small screens): back chevron at the\n inline start, current step title centered, \"step n of m\" at the end. */\n const flowSteps = ['cart', 'shipping', 'payment'] as const;\n const flowIndex = flowSteps.indexOf(step as (typeof flowSteps)[number]);\n const headTitle =\n step === 'cart'\n ? t.stepCart\n : step === 'shipping'\n ? t.stepShippingInfo\n : step === 'payment'\n ? t.stepPayment\n : t.stepResult;\n const HeadIcon =\n step === 'cart'\n ? CartIcon\n : step === 'shipping'\n ? TruckIcon\n : step === 'payment'\n ? CardIcon\n : ClipboardIcon;\n const mobileHead = (\n <div className=\"szc-mobile-head\">\n {footerVisible && backVisible ? (\n <button\n type=\"button\"\n className=\"szc-mobile-head__back\"\n aria-label={t.back}\n onClick={backOnClick}\n >\n <svg\n className=\"szc-back-arrow\"\n viewBox=\"0 0 16 16\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.5 3.5 5 8l4.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n ) : (\n <span />\n )}\n <span className=\"szc-mobile-head__title\">\n <span className=\"szc-mobile-head__dot\">\n <HeadIcon />\n </span>\n {headTitle}\n </span>\n {flowIndex >= 0 ? (\n <span className=\"szc-mobile-head__count\">\n {t.stepOf(\n formatNumber(flowIndex + 1, state.locale),\n formatNumber(flowSteps.length, state.locale)\n )}\n </span>\n ) : (\n <span />\n )}\n </div>\n );\n\n return (\n <div\n className={`szc-root${className ? ` ${className}` : ''}`}\n dir={direction}\n style={themeVars(theme)}\n >\n {mobileHead}\n <Stepper />\n\n {bootstrapping ? (\n <CheckoutLoading label={t.loading} />\n ) : fatal ? (\n <ErrorBanner message={error.message} />\n ) : isResult ? (\n <div className=\"szc-result-wrap\">\n {renderResult ? (\n renderResult({\n result: state.result,\n status: resultStatus,\n order: state.result?.order,\n continueShoppingUrl,\n onRetry: () => void actions.retryPayment()\n })\n ) : (\n <ResultStep continueShoppingUrl={continueShoppingUrl} />\n )}\n </div>\n ) : (\n <>\n <div className={`szc-layout${cartEmpty ? ' szc-layout--full' : ''}`}>\n <main className=\"szc-main\">\n {error && !emptyCartError ? <ErrorBanner message={error.message} /> : null}\n\n {step === 'cart' ? (\n <CartStep\n continueShoppingUrl={continueShoppingUrl}\n emptyCart={emptyCart}\n renderEmpty={renderEmptyCart}\n />\n ) : null}\n {step === 'shipping' ? <ShippingStep /> : null}\n {step === 'payment' ? <PaymentStep /> : null}\n\n {actionsVisible && backButtonNode ? (\n <div className=\"szc-back-row\">{backButtonNode}</div>\n ) : null}\n </main>\n\n {!cartEmpty ? (\n <div className=\"szc-side\">\n <OrderSummary />\n {actionsVisible ? <div className=\"szc-side__cta\">{nextButtonNode}</div> : null}\n </div>\n ) : null}\n </div>\n </>\n )}\n\n {actionsVisible ? (\n <div className=\"szc-footer-bar\">\n <div className=\"szc-footer\">\n <div className=\"szc-footer__total\">\n <span className=\"szc-footer__total-label\">{t.total}</span>\n <span className=\"szc-footer__total-value\">{money(summary.total)}</span>\n </div>\n <div className=\"szc-footer__actions\">{nextButtonNode}</div>\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useRef } from 'react';\nimport type React from 'react';\nimport { CheckoutProvider, useCheckout, useSazitoClient } from '../react';\nimport {\n SazitoCheckout,\n type EmptyCartOptions,\n type RenderButtonProps,\n type RenderEmptyCartProps,\n type RenderResultProps,\n} from '../ui';\nimport { parsePaymentReturnUrl, stripPaymentStatusReturn } from '../core';\nimport type {\n CheckoutConfig,\n CheckoutCredentials,\n CheckoutPaymentReturn,\n PaymentReturnResolution\n} from '../core';\n\nexport interface SazitoCheckoutPageProps {\n credentials?: CheckoutCredentials;\n config?: CheckoutConfig;\n /** Parsed nested gateway callback. Prefer `parsePaymentReturn()` to create it. */\n paymentReturn?: CheckoutPaymentReturn;\n /** @deprecated Prefer `paymentReturn`; retained for query-only callbacks. */\n paymentReturnParams?: Record<string, string>;\n className?: string;\n renderNextButton?: (props: RenderButtonProps) => React.ReactNode;\n renderBackButton?: (props: RenderButtonProps) => React.ReactNode;\n renderEmptyCart?: (props: RenderEmptyCartProps) => React.ReactNode;\n renderResult?: (props: RenderResultProps) => React.ReactNode;\n emptyCart?: EmptyCartOptions;\n}\n\nexport function SazitoCheckoutPage({\n credentials,\n config,\n paymentReturn,\n paymentReturnParams,\n className,\n renderNextButton,\n renderBackButton,\n renderEmptyCart,\n renderResult,\n emptyCart,\n}: SazitoCheckoutPageProps) {\n // The explicit server-parsed value remains authoritative. As a fallback,\n // detect Sazito's well-known nested callback in the browser. This prevents a\n // caught callback route from silently booting a fresh checkout when the host\n // forgot to forward its catch-all params.\n const detectedPaymentReturn =\n paymentReturn == null &&\n paymentReturnParams == null &&\n typeof window !== 'undefined'\n ? parsePaymentReturnUrl(window.location.href)\n : undefined;\n const resolvedPaymentReturn = paymentReturn ?? detectedPaymentReturn;\n const returnParams = resolvedPaymentReturn?.params ?? paymentReturnParams;\n const returnResolution = resolvedPaymentReturn?.resolution ?? 'callback';\n const isReturn = returnParams != null;\n const checkoutCredentials = resolvedPaymentReturn\n ? { ...credentials, payment: resolvedPaymentReturn.payment }\n : credentials;\n const client = useSazitoClient();\n\n return (\n <CheckoutProvider\n client={client}\n credentials={checkoutCredentials}\n config={config}\n autoStart={!isReturn}\n >\n {returnParams ? (\n <ResolveReturn params={returnParams} resolution={returnResolution} />\n ) : null}\n <SazitoCheckout\n theme={config?.theme}\n continueShoppingUrl={config?.continueShoppingUrl}\n className={className}\n renderNextButton={renderNextButton}\n renderBackButton={renderBackButton}\n renderEmptyCart={renderEmptyCart}\n renderResult={renderResult}\n emptyCart={emptyCart}\n />\n </CheckoutProvider>\n );\n}\n\nfunction ResolveReturn({\n params,\n resolution\n}: {\n params: Record<string, string>;\n resolution: PaymentReturnResolution;\n}) {\n const { actions } = useCheckout();\n const resolvedKey = useRef<string | null>(null);\n const paramsKey = JSON.stringify(\n Object.entries(params).sort(([a], [b]) => a.localeCompare(b))\n );\n\n useEffect(() => {\n if (resolvedKey.current === paramsKey) return;\n resolvedKey.current = paramsKey;\n void actions.resolvePaymentReturn(params, resolution);\n if (resolution === 'status' && typeof window !== 'undefined') {\n const cleanUrl = stripPaymentStatusReturn(window.location.href);\n if (cleanUrl) window.history.replaceState(window.history.state, '', cleanUrl);\n }\n }, [actions, params, paramsKey, resolution]);\n return null;\n}\n"],"names":["isValidElement","_jsx","_Fragment","cloneElement","_jsxs","TruckIcon","useCheckout","CheckIcon","formatPercent","useMemo","sortCartItemsNewestFirst","useState","toPersianDigits","useRef","useEffect","isValidIranianMobile","isDigitalServiceGroup","useCallback","normalizeIranianPhone","ICON_PROPS","isImageUrl","paymentMethodInfo","formatNumber","parsePaymentReturnUrl","useSazitoClient","CheckoutProvider","stripPaymentStatusReturn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/ui/slot.tsx","../../src/ui/primitives.tsx","../../src/ui/Stepper.tsx","../../src/ui/OrderSummary.tsx","../../src/ui/steps/CartStep.tsx","../../src/ui/steps/ShippingStep.tsx","../../src/ui/steps/PaymentStep.tsx","../../src/ui/steps/ResultStep.tsx","../../src/ui/SazitoCheckout.tsx","../../src/next/SazitoCheckoutPage.tsx"],"sourcesContent":["'use client';\n\nimport {\n cloneElement,\n isValidElement,\n type ReactNode,\n type ReactElement,\n type HTMLAttributes\n} from 'react';\n\n/**\n * When `asChild` is true, merges the parent's props onto the single React child\n * element instead of rendering a wrapper element — the same pattern Radix UI /\n * shadcn/ui uses. Class names and event handlers are merged; all other props\n * from the parent win (child props act as defaults).\n */\nexport function Slot({\n children,\n ...slotProps\n}: HTMLAttributes<HTMLElement> & { children?: ReactNode }) {\n if (!isValidElement(children)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Slot] Must receive exactly one valid React element as child.');\n }\n return <>{children}</>;\n }\n\n const child = children as ReactElement<Record<string, unknown>>;\n const childProps = child.props as Record<string, unknown>;\n\n const mergedClassName =\n [slotProps.className, childProps.className].filter(Boolean).join(' ') || undefined;\n\n // Merge event handlers: call both if both exist.\n const merged: Record<string, unknown> = { ...childProps, ...slotProps };\n if (mergedClassName) merged.className = mergedClassName;\n\n for (const key of Object.keys(childProps)) {\n if (key.startsWith('on') && typeof childProps[key] === 'function' && typeof (slotProps as Record<string, unknown>)[key] === 'function') {\n const slotHandler = (slotProps as Record<string, unknown>)[key] as (...a: unknown[]) => void;\n const childHandler = childProps[key] as (...a: unknown[]) => void;\n merged[key] = (...args: unknown[]) => {\n slotHandler(...args);\n childHandler(...args);\n };\n }\n }\n\n return cloneElement(child, merged);\n}\n","'use client';\n\nimport type {\n ButtonHTMLAttributes,\n InputHTMLAttributes,\n ReactNode,\n SelectHTMLAttributes,\n TextareaHTMLAttributes\n} from 'react';\nimport { Slot } from './slot';\n\nfunction cx(...parts: Array<string | false | undefined | null>): string {\n return parts.filter(Boolean).join(' ');\n}\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'outline' | 'ghost';\n block?: boolean;\n loading?: boolean;\n asChild?: boolean;\n}\n\nexport function Button({\n variant = 'primary',\n block,\n loading,\n asChild,\n className,\n children,\n disabled,\n ...rest\n}: ButtonProps) {\n const props = {\n className: cx('szc-btn', `szc-btn--${variant}`, block && 'szc-btn--block', className),\n disabled: disabled || loading,\n 'aria-busy': loading || undefined,\n ...rest,\n };\n\n if (asChild) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return (\n <button type=\"button\" {...props}>\n {loading ? <Spinner /> : null}\n <span>{children}</span>\n </button>\n );\n}\n\nexport interface SpinnerProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function Spinner({ asChild, className, children }: SpinnerProps = {}) {\n if (asChild && children) {\n return <Slot className={cx('szc-spinner', className)}>{children}</Slot>;\n }\n return <span className={cx('szc-spinner', className)} aria-hidden=\"true\">{children}</span>;\n}\n\nexport interface ProductPlaceholderProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function ProductPlaceholder({ asChild, className, children }: ProductPlaceholderProps = {}) {\n const props = { className: cx('szc-product-placeholder', className) };\n\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return (\n <span {...props}>\n {children ?? (\n <svg viewBox=\"0 0 64 64\" width=\"30\" height=\"30\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M32 12 49 21.5v21L32 52 15 42.5v-21L32 12Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2.25\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"m15 21.5 17 9.5 17-9.5M32 31v21\"\n stroke=\"currentColor\"\n strokeWidth=\"2.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </span>\n );\n}\n\nexport interface FieldProps extends InputHTMLAttributes<HTMLInputElement> {\n label: string;\n error?: string;\n optionalLabel?: string;\n asChild?: boolean;\n}\n\nexport function FieldLabel({\n label,\n required,\n optionalLabel\n}: {\n label: string;\n required?: boolean;\n optionalLabel?: string;\n}) {\n return (\n <span className=\"szc-field__label\">\n {label}\n {!required && optionalLabel ? (\n <span className=\"szc-field__optional\">({optionalLabel})</span>\n ) : null}\n </span>\n );\n}\n\nexport function Field({ label, id, className, error, required, optionalLabel, asChild, children, ...rest }: FieldProps) {\n const inputProps = {\n id,\n required,\n className: cx('szc-input', error && 'szc-input--error', className),\n ...rest,\n };\n\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n {asChild && children\n ? <Slot {...inputProps}>{children as ReactNode}</Slot>\n : <input {...inputProps} />\n }\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nexport interface TextAreaFieldProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n label: string;\n error?: string;\n optionalLabel?: string;\n asChild?: boolean;\n}\n\nexport function TextAreaField({ label, id, className, error, required, optionalLabel, asChild, children, ...rest }: TextAreaFieldProps) {\n const inputProps = {\n id,\n required,\n className: cx('szc-input', 'szc-textarea', error && 'szc-input--error', className),\n ...rest,\n };\n\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n {asChild && children\n ? <Slot {...inputProps as Record<string, unknown>}>{children as ReactNode}</Slot>\n : <textarea {...inputProps} />\n }\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nexport interface SelectFieldProps extends SelectHTMLAttributes<HTMLSelectElement> {\n label: string;\n children: ReactNode;\n optionalLabel?: string;\n}\n\nexport function SelectField({ label, id, className, children, required, optionalLabel, ...rest }: SelectFieldProps) {\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n <select id={id} required={required} className={cx('szc-input', 'szc-select', className)} {...rest}>\n {children}\n </select>\n </label>\n );\n}\n\nexport function Card({ className, children }: { className?: string; children: ReactNode }) {\n return <div className={cx('szc-card', className)}>{children}</div>;\n}\n\nexport interface SectionTitleProps {\n children: ReactNode;\n asChild?: boolean;\n className?: string;\n}\n\nexport function SectionTitle({ children, asChild, className }: SectionTitleProps) {\n const props = { className: cx('szc-section-title', className) };\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n return <h3 {...props}>{children}</h3>;\n}\n\nexport interface ErrorBannerProps {\n message: string;\n asChild?: boolean;\n children?: ReactNode;\n className?: string;\n}\n\nexport function ErrorBanner({ message, asChild, children, className }: ErrorBannerProps) {\n const props = {\n className: cx('szc-error', className),\n role: 'alert' as const,\n };\n\n if (asChild && children) {\n return <Slot {...props}>{children}</Slot>;\n }\n\n return <div {...props}>{message}</div>;\n}\n","'use client';\n\nimport type { ReactElement } from 'react';\nimport { useCheckout } from '../react';\nimport type { CheckoutStep } from '../core';\n\nconst STEPS: CheckoutStep[] = ['cart', 'shipping', 'payment', 'result'];\n\nconst STEP_ICONS: Record<CheckoutStep, () => ReactElement> = {\n cart: CartIcon,\n shipping: TruckIcon,\n payment: CardIcon,\n result: ClipboardIcon\n};\n\nexport function Stepper() {\n const { state, t } = useCheckout();\n const labels: Record<CheckoutStep, string> = {\n cart: t.stepCart,\n shipping: t.stepShipping,\n payment: t.stepPayment,\n result: t.stepResult\n };\n\n const currentIndex = STEPS.indexOf(state.step);\n\n return (\n <ol className=\"szc-stepper\">\n {STEPS.map((step, index) => {\n const status =\n index < currentIndex ? 'done' : index === currentIndex ? 'active' : 'todo';\n const Icon = STEP_ICONS[step];\n return (\n <li key={step} className={`szc-step szc-step--${status}`}>\n <span className=\"szc-step__dot\">\n {status === 'done' ? <CheckIcon /> : <Icon />}\n </span>\n <span className=\"szc-step__label\">{labels[step]}</span>\n {index < STEPS.length - 1 ? <span className=\"szc-step__line\" /> : null}\n </li>\n );\n })}\n </ol>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.5 8.5l3 3 6-6.5\" stroke=\"currentColor\" strokeWidth=\"2.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nexport function CartIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1.5 2h1.8l1.9 7.5h6.3l1.5-5H4.8\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <circle cx=\"6.5\" cy=\"13\" r=\"1\" fill=\"currentColor\" />\n <circle cx=\"11\" cy=\"13\" r=\"1\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport function TruckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"4\" width=\"9\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M10 6.5h2.5l2 2.5V11h-4.5V6.5z\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\n <circle cx=\"4\" cy=\"12.5\" r=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <circle cx=\"12\" cy=\"12.5\" r=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n );\n}\n\nexport function CardIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1.5\" y=\"3.5\" width=\"13\" height=\"9\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M1.5 6.5h13\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <rect x=\"3\" y=\"8.5\" width=\"3\" height=\"1.5\" rx=\".5\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport function ClipboardIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"15\" height=\"15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2.5\" y=\"2.5\" width=\"11\" height=\"12\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M5.5 2.5A1.5 1.5 0 0 1 7 1h2a1.5 1.5 0 0 1 1.5 1.5\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n <path d=\"M5 7h6M5 9.5h4\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n","'use client';\n\nimport { useCheckout } from '../react';\nimport { formatPercent, type SummaryLineKey } from '../core';\nimport { Spinner } from './primitives';\n\nexport function OrderSummary() {\n const { state, summary, money, t } = useCheckout();\n const updating = state.flags.updatingCart;\n const percentSign = state.locale === 'fa' ? '٪' : '%';\n\n const lineLabels: Record<SummaryLineKey, string> = {\n subtotal: t.subtotal,\n discount: t.yourSavings,\n shipping: t.shipping,\n credit: t.credit,\n vat: t.vat\n };\n\n return (\n <aside\n className={`szc-summary${updating ? ' szc-summary--loading' : ''}`}\n aria-busy={updating}\n >\n <div className=\"szc-summary__total-head\">\n <span className=\"szc-summary__total-label\">{t.totalAmount}</span>\n <span className=\"szc-summary__total-value\">{money(summary.total)}</span>\n </div>\n\n <dl className=\"szc-summary__lines\">\n {summary.lines.map((line) => (\n <div\n key={line.key}\n className={`szc-summary__line${line.key === 'discount' ? ' szc-summary__line--discount' : ''}`}\n >\n <dt>\n {lineLabels[line.key]}\n {(line.percent ?? 0) > 0\n ? ` (${formatPercent(line.percent as number, state.locale)}${percentSign})`\n : ''}\n </dt>\n <dd className={line.negative ? 'szc-summary__line--neg' : undefined}>\n {line.free ? (\n <span className=\"szc-summary__free\">{t.free}</span>\n ) : (\n `${line.negative ? '−' : ''}${money(line.amount)}`\n )}\n </dd>\n </div>\n ))}\n </dl>\n\n <div className=\"szc-summary__grand\">\n <span>{t.total}</span>\n <span>{money(summary.total)}</span>\n </div>\n\n {updating ? (\n <div className=\"szc-summary__loading\" role=\"status\" aria-live=\"polite\">\n <Spinner className=\"szc-summary__spinner\" />\n <span className=\"szc-visually-hidden\">{t.loading}</span>\n </div>\n ) : null}\n </aside>\n );\n}\n","'use client';\n\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport type React from 'react';\nimport { useCheckout } from '../../react';\nimport { sortCartItemsNewestFirst, toPersianDigits } from '../../core';\nimport { Button, ProductPlaceholder } from '../primitives';\nimport { CartIcon } from '../Stepper';\nimport type { EmptyCartOptions, RenderEmptyCartProps } from '../SazitoCheckout';\n\nconst PERSIAN_DIGITS = '۰۱۲۳۴۵۶۷۸۹';\nconst ARABIC_DIGITS = '٠١٢٣٤٥٦٧٨٩';\nconst QUANTITY_DEBOUNCE_MS = 500;\n\nfunction toLatinDigits(value: string): string {\n return value\n .replace(/[۰-۹]/g, (digit) => String(PERSIAN_DIGITS.indexOf(digit)))\n .replace(/[٠-٩]/g, (digit) => String(ARABIC_DIGITS.indexOf(digit)));\n}\n\nconst HEX_COLOR_RE = /^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;\n\nfunction attrValueToString(value: unknown): string {\n if (value == null) return '';\n if (typeof value === 'object') {\n const v = (value as Record<string, unknown>).value;\n return v == null ? '' : String(v);\n }\n return String(value);\n}\n\nfunction toHexColor(value: unknown): string | null {\n if (typeof value !== 'string') return null;\n const trimmed = value.trim();\n return HEX_COLOR_RE.test(trimmed) ? (trimmed.startsWith('#') ? trimmed : `#${trimmed}`) : null;\n}\n\n// Hex can arrive as the raw value, or nested in `extra`/`value` of an object attribute.\nfunction attrHexColor(value: unknown): string | null {\n if (value && typeof value === 'object') {\n const obj = value as Record<string, unknown>;\n return toHexColor(obj.extra) ?? toHexColor(obj.value);\n }\n return toHexColor(value);\n}\n\nexport function CartStep({\n continueShoppingUrl,\n emptyCart,\n renderEmpty,\n}: {\n continueShoppingUrl?: string;\n emptyCart?: EmptyCartOptions;\n renderEmpty?: (props: RenderEmptyCartProps) => React.ReactNode;\n}) {\n const { state, actions, money, t } = useCheckout();\n const cart = state.cart;\n const busy = state.flags.updatingCart;\n const newestCartItems = useMemo(\n () => sortCartItemsNewestFirst(cart?.items ?? []),\n [cart?.items]\n );\n const invoiceItemsByVariant = new Map(\n (state.invoice?.items ?? []).map((item) => [item.productVariantId, item])\n );\n\n if (!cart || cart.items.length === 0) {\n const title = emptyCart?.title ?? t.cartEmpty;\n const description = emptyCart?.description ?? t.cartEmptyHint;\n const actionLabel = emptyCart?.actionLabel ?? t.continueShopping;\n const actionUrl = emptyCart?.actionUrl ?? continueShoppingUrl;\n const visibleActionUrl = emptyCart?.hideAction ? undefined : actionUrl;\n const icon = emptyCart?.icon ?? <CartIcon />;\n\n if (renderEmpty) {\n return renderEmpty({\n continueShoppingUrl: visibleActionUrl,\n title,\n description,\n actionLabel,\n icon,\n });\n }\n\n return (\n <section className=\"szc-empty\" role=\"status\" aria-live=\"polite\">\n <div className=\"szc-empty__card\">\n <span className=\"szc-empty__badge\" aria-hidden=\"true\">{icon}</span>\n <div className=\"szc-empty__copy\">\n <h2 className=\"szc-empty__title\">{title}</h2>\n <p className=\"szc-empty__hint\">{description}</p>\n </div>\n {visibleActionUrl ? (\n <Button className=\"szc-empty__cta\" variant=\"primary\" asChild>\n <a href={visibleActionUrl}>{actionLabel}</a>\n </Button>\n ) : null}\n </div>\n </section>\n );\n }\n\n return (\n <section className=\"szc-step-panel\">\n <ul className=\"szc-cart-list\">\n {newestCartItems.map((item) => {\n const max = item.product.maxOrderQuantity;\n const min = item.product.minOrderQuantity ?? 1;\n const invoiceItem = invoiceItemsByVariant.get(item.product.variantId);\n const rawLineTotal = (invoiceItem?.rawPrice ?? item.unitPrice) * item.quantity;\n const itemDiscount = invoiceItem?.customerProfit\n || Math.max(0, rawLineTotal - item.lineTotal);\n return (\n <li key={item.id} className=\"szc-cart-row\">\n {item.product.image?.url ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img className=\"szc-cart-row__thumb\" src={item.product.image.url} alt=\"\" />\n ) : (\n <ProductPlaceholder />\n )}\n\n <div className=\"szc-cart-row__main\">\n <span className=\"szc-cart-row__name\">{item.product.name}</span>\n {item.product.attributes?.length ? (\n <span className=\"szc-cart-row__attrs\">\n {item.product.attributes.map((a, i) => {\n const value = attrValueToString(a.value);\n const hex = attrHexColor(a.value);\n return (\n <span key={`${a.name}-${i}`} className=\"szc-cart-row__attr\">\n {i > 0 ? <span className=\"szc-cart-row__attr-sep\">·</span> : null}\n <span>{a.name}:</span>\n {hex ? (\n <span\n className=\"szc-cart-row__swatch\"\n style={{ backgroundColor: hex }}\n title={hex}\n aria-hidden=\"true\"\n />\n ) : null}\n {value ? <span>{value}</span> : null}\n </span>\n );\n })}\n </span>\n ) : null}\n <span className=\"szc-cart-row__price\">{money(item.unitPrice)}</span>\n </div>\n\n <div className=\"szc-cart-row__side\">\n <QuantityControl\n value={item.quantity}\n min={min}\n max={max}\n label={t.quantity}\n onChange={(quantity) =>\n actions.updateItemQuantity(item.id, item.product.variantId, quantity)\n }\n />\n {itemDiscount > 0 ? (\n <span className=\"szc-cart-row__discount\">\n {t.itemDiscount(money(itemDiscount))}\n </span>\n ) : null}\n <span className=\"szc-cart-row__line-total\">{money(item.lineTotal)}</span>\n <button\n type=\"button\"\n className=\"szc-cart-row__remove\"\n aria-label={t.remove}\n disabled={busy}\n onClick={() => actions.removeItem(item.id, item.product.variantId)}\n >\n <TrashIcon />\n </button>\n </div>\n </li>\n );\n })}\n </ul>\n </section>\n );\n}\n\ninterface QuantityControlProps {\n value: number;\n min: number;\n max?: number;\n label: string;\n onChange: (value: number) => Promise<void>;\n}\n\nfunction QuantityControl({ value, min, max, label, onChange }: QuantityControlProps) {\n const [draft, setDraft] = useState(() => toPersianDigits(String(value)));\n const [pending, setPending] = useState(false);\n const [updating, setUpdating] = useState(false);\n const draftRef = useRef(draft);\n const pendingValueRef = useRef<number | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const inFlightRef = useRef(false);\n const serverValueRef = useRef(value);\n const onChangeRef = useRef(onChange);\n\n serverValueRef.current = value;\n onChangeRef.current = onChange;\n\n const updateDraft = (next: string) => {\n draftRef.current = next;\n setDraft(next);\n };\n\n useEffect(() => {\n if (!pending || pendingValueRef.current === value) {\n updateDraft(toPersianDigits(String(value)));\n }\n }, [value, pending]);\n\n useEffect(\n () => () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n },\n []\n );\n\n const normalize = (next: number): number =>\n Math.min(max ?? Number.POSITIVE_INFINITY, Math.max(min, Math.trunc(next)));\n\n async function flushPendingUpdate() {\n if (inFlightRef.current) return;\n\n const target = pendingValueRef.current;\n if (target == null) return;\n\n if (target === serverValueRef.current) {\n pendingValueRef.current = null;\n setPending(false);\n return;\n }\n\n inFlightRef.current = true;\n setUpdating(true);\n try {\n await onChangeRef.current(target);\n } finally {\n inFlightRef.current = false;\n setUpdating(false);\n\n if (pendingValueRef.current === target) {\n pendingValueRef.current = null;\n setPending(false);\n } else if (timerRef.current == null) {\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n void flushPendingUpdate();\n }, QUANTITY_DEBOUNCE_MS);\n }\n }\n }\n\n const scheduleUpdate = (rawValue: string | number) => {\n const parsed = typeof rawValue === 'number' ? rawValue : Number(toLatinDigits(rawValue));\n const next = normalize(Number.isFinite(parsed) ? parsed : value);\n\n updateDraft(toPersianDigits(String(next)));\n if (next === serverValueRef.current && !pending && !inFlightRef.current) return;\n\n pendingValueRef.current = next;\n setPending(true);\n\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n void flushPendingUpdate();\n }, QUANTITY_DEBOUNCE_MS);\n };\n\n const step = (amount: number) => {\n const parsedDraft = Number(toLatinDigits(draftRef.current));\n const base = Number.isFinite(parsedDraft) ? parsedDraft : value;\n scheduleUpdate(base + amount);\n };\n\n const parsedDraft = Number(toLatinDigits(draft));\n const displayedValue = Number.isFinite(parsedDraft) ? normalize(parsedDraft) : value;\n\n return (\n <div\n className={`szc-qty${pending ? ' szc-qty--pending' : ''}`}\n aria-busy={updating}\n >\n <button\n type=\"button\"\n className=\"szc-qty__btn\"\n aria-label={`${label} −`}\n disabled={updating || displayedValue <= min}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => step(-1)}\n >\n <MinusIcon />\n </button>\n <input\n className=\"szc-qty__input\"\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[۰-۹٠-٩0-9]*\"\n role=\"spinbutton\"\n value={draft}\n aria-label={label}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={displayedValue}\n disabled={updating}\n onChange={(event) => {\n const digits = toLatinDigits(event.target.value).replace(/\\D/g, '');\n if (!digits) {\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = null;\n updateDraft('');\n return;\n }\n scheduleUpdate(Number(digits));\n }}\n onBlur={() => scheduleUpdate(draftRef.current)}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.currentTarget.blur();\n } else if (event.key === 'Escape') {\n event.preventDefault();\n if (timerRef.current) clearTimeout(timerRef.current);\n timerRef.current = null;\n pendingValueRef.current = null;\n setPending(false);\n updateDraft(toPersianDigits(String(value)));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n step(1);\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n step(-1);\n }\n }}\n />\n <button\n type=\"button\"\n className=\"szc-qty__btn\"\n aria-label={`${label} +`}\n disabled={updating || (max != null && displayedValue >= max)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => step(1)}\n >\n <PlusIcon />\n </button>\n </div>\n );\n}\n\nfunction MinusIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.5 8h9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction PlusIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M8 3.5v9M3.5 8h9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction TrashIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n <path d=\"M10 11v6M14 11v6\" />\n </svg>\n );\n}\n","'use client';\n\nimport { useState, useCallback, useRef, useEffect, type CSSProperties } from 'react';\nimport { useCheckout } from '../../react';\nimport {\n toPersianDigits,\n normalizeIranianPhone,\n isValidIranianMobile,\n isDigitalServiceGroup\n} from '../../core';\nimport { Field, FieldLabel, ProductPlaceholder } from '../primitives';\nimport type { ShippingGroup, ShippingRate, AddressFormValues } from '../../core';\n\ntype TouchedFields = Partial<Record<keyof AddressFormValues, true>>;\ntype FormErrors = Partial<Record<keyof AddressFormValues, string>>;\n\nfunction validate(\n form: AddressFormValues,\n needsShipping: boolean,\n postalCodeMandatory: boolean,\n emailMandatory: boolean,\n t: { errorRequired: string; errorMobilePhone: string; errorEmail: string }\n): FormErrors {\n const e: FormErrors = {};\n if (!form.firstName.trim()) e.firstName = t.errorRequired;\n if (!form.lastName.trim()) e.lastName = t.errorRequired;\n if (!form.mobilePhone.trim()) {\n e.mobilePhone = t.errorRequired;\n } else if (!isValidIranianMobile(form.mobilePhone)) {\n e.mobilePhone = t.errorMobilePhone;\n }\n if (emailMandatory && !form.email.trim()) {\n e.email = t.errorRequired;\n } else if (form.email.trim() && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(form.email.trim())) {\n e.email = t.errorEmail;\n }\n if (needsShipping) {\n if (!form.regionId) e.regionId = t.errorRequired;\n if (!form.cityId) e.cityId = t.errorRequired;\n if (postalCodeMandatory && !form.postalCode.trim()) e.postalCode = t.errorRequired;\n if (!form.address.trim()) e.address = t.errorRequired;\n }\n return e;\n}\n\nexport function ShippingStep() {\n const { state, actions, t, digitalItems } = useCheckout();\n const { addressForm, regions, shippingGroups } = state;\n const [touched, setTouched] = useState<TouchedFields>({});\n const needsShipping = state.invoice?.needsShipping ?? true;\n const physicalShippingGroups = shippingGroups.filter((group) => !isDigitalServiceGroup(group));\n const physicalItemCount = Math.max(0, (state.invoice?.items.length ?? 0) - digitalItems.length);\n\n const touch = useCallback((key: keyof AddressFormValues) => {\n setTouched((prev) => ({ ...prev, [key]: true }));\n }, []);\n\n const allErrors = validate(addressForm, needsShipping, state.postalCodeMandatory, state.emailMandatory, t as never);\n const errors: FormErrors = Object.fromEntries(\n Object.entries(allErrors).filter(([k]) => touched[k as keyof AddressFormValues])\n );\n\n const selectedRegion = regions.find((r) => r.id === addressForm.regionId);\n\n const handleBlurPhone = (key: 'mobilePhone' | 'phoneNumber') => {\n const raw = addressForm[key];\n if (raw) {\n const normalized = normalizeIranianPhone(raw);\n if (normalized !== raw) actions.setAddressField(key, normalized);\n }\n touch(key);\n };\n\n const busy = state.flags.savingAddress || state.flags.loadingShipping;\n\n return (\n <section className={`szc-step-panel${busy ? ' szc-step-panel--loading' : ''}`}>\n <div className=\"szc-shipping-form-card\">\n <section className=\"szc-shipping-section\" aria-labelledby=\"szc-contact-title\">\n <ShippingSectionHeader id=\"szc-contact-title\" title={t.contactInfo} icon=\"contact\" />\n <div className=\"szc-form-grid\">\n <Field\n id=\"szc-first-name\"\n label={t.firstName}\n required\n optionalLabel={t.optional}\n value={addressForm.firstName}\n error={errors.firstName}\n onChange={(e) => actions.setAddressField('firstName', e.target.value)}\n onBlur={() => touch('firstName')}\n />\n <Field\n id=\"szc-last-name\"\n label={t.lastName}\n required\n optionalLabel={t.optional}\n value={addressForm.lastName}\n error={errors.lastName}\n onChange={(e) => actions.setAddressField('lastName', e.target.value)}\n onBlur={() => touch('lastName')}\n />\n <Field\n id=\"szc-mobile\"\n label={t.mobilePhone}\n required\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"tel\"\n value={addressForm.mobilePhone}\n error={errors.mobilePhone}\n onChange={(e) => actions.setAddressField('mobilePhone', e.target.value)}\n onBlur={() => handleBlurPhone('mobilePhone')}\n />\n <Field\n id=\"szc-email\"\n label={t.email}\n required={state.emailMandatory}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"email\"\n value={addressForm.email}\n error={errors.email}\n onChange={(e) => actions.setAddressField('email', e.target.value)}\n onBlur={() => touch('email')}\n />\n </div>\n </section>\n\n {needsShipping ? (\n <section className=\"szc-shipping-section\" aria-labelledby=\"szc-address-title\">\n <ShippingSectionHeader id=\"szc-address-title\" title={t.reviewAddress} icon=\"address\" />\n <div className=\"szc-form-grid\">\n <EnhancedSelect\n id=\"szc-region\"\n label={t.region}\n required\n optionalLabel={t.optional}\n value={addressForm.regionId ?? ''}\n error={errors.regionId}\n onChange={(v) => {\n actions.setAddressField('regionId', v ? Number(v) : null);\n touch('regionId');\n }}\n placeholder={t.selectRegion}\n options={regions.map((r) => ({ value: r.id, label: r.name }))}\n />\n <EnhancedSelect\n id=\"szc-city\"\n label={t.city}\n required\n optionalLabel={t.optional}\n value={addressForm.cityId ?? ''}\n disabled={!selectedRegion}\n error={errors.cityId}\n onChange={(v) => {\n actions.setAddressField('cityId', v ? Number(v) : null);\n touch('cityId');\n }}\n placeholder={t.selectCity}\n options={selectedRegion?.cities.map((c) => ({ value: c.id, label: c.name })) ?? []}\n />\n <Field\n id=\"szc-postal\"\n label={t.postalCode}\n required={state.postalCodeMandatory}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"numeric\"\n value={addressForm.postalCode}\n error={errors.postalCode}\n onChange={(e) => actions.setAddressField('postalCode', e.target.value)}\n onBlur={() => touch('postalCode')}\n />\n <Field\n id=\"szc-phone\"\n label={t.phoneNumber}\n optionalLabel={t.optional}\n className=\"szc-input--ltr\"\n dir=\"ltr\"\n inputMode=\"tel\"\n value={addressForm.phoneNumber}\n onChange={(e) => actions.setAddressField('phoneNumber', e.target.value)}\n onBlur={() => handleBlurPhone('phoneNumber')}\n />\n </div>\n <Field\n id=\"szc-address\"\n label={t.addressLine}\n required\n optionalLabel={t.optional}\n value={addressForm.address}\n error={errors.address}\n onChange={(e) => actions.setAddressField('address', e.target.value)}\n onBlur={() => touch('address')}\n />\n <Field\n id=\"szc-description\"\n label={t.description}\n optionalLabel={t.optional}\n value={addressForm.description}\n onChange={(e) => actions.setAddressField('description', e.target.value)}\n onBlur={() => touch('description')}\n />\n </section>\n ) : null}\n </div>\n\n {digitalItems.length > 0 ? (\n <section className=\"szc-digital-products\" aria-labelledby=\"szc-digital-title\">\n <header className=\"szc-digital-products__head\">\n <span className=\"szc-digital-products__icon\" aria-hidden=\"true\"><DigitalIcon /></span>\n <div className=\"szc-digital-products__heading\">\n <div className=\"szc-digital-products__title-row\">\n <h2 id=\"szc-digital-title\" className=\"szc-digital-products__title\">\n {t.digitalNoShipping}\n </h2>\n <span className=\"szc-digital-products__count\">\n {t.productCount(toPersianDigits(String(digitalItems.length)))}\n </span>\n </div>\n <p>{t.digitalNoShippingHint}</p>\n </div>\n </header>\n <div className=\"szc-digital-products__list\">\n {digitalItems.map((item) => (\n <article key={item.id} className=\"szc-digital-product\">\n <div className=\"szc-digital-product__media\">\n {item.image?.url ? (\n <img src={item.image.url} alt={item.image.alt || item.name} />\n ) : (\n <ProductPlaceholder />\n )}\n <span className=\"szc-ship-product__quantity\">\n {toPersianDigits(String(item.quantity))}\n </span>\n </div>\n <strong className=\"szc-digital-product__name\">{item.name}</strong>\n </article>\n ))}\n </div>\n </section>\n ) : null}\n\n {physicalShippingGroups.length > 0 ? (\n <section className=\"szc-shipping-methods\" aria-labelledby=\"szc-methods-title\">\n <ShippingSectionHeader id=\"szc-methods-title\" title={t.shippingMethods} icon=\"shipping\" />\n <div className=\"szc-ship-groups\">\n {physicalShippingGroups.map((group) => (\n <ShippingGroupCard key={group.key} group={group} />\n ))}\n </div>\n </section>\n ) : needsShipping && physicalItemCount > 0 ? (\n <div className=\"szc-shipping-pending\" role=\"note\">\n <span className=\"szc-shipping-pending__icon\" aria-hidden=\"true\"><TruckIcon /></span>\n <div className=\"szc-shipping-pending__copy\">\n <strong>{t.shippingMethods}</strong>\n <span>{t.shippingMethodsHint}</span>\n </div>\n </div>\n ) : null}\n\n </section>\n );\n}\n\nfunction ShippingSectionHeader({\n id,\n title,\n icon\n}: {\n id: string;\n title: string;\n icon: 'contact' | 'address' | 'shipping';\n}) {\n return (\n <header className=\"szc-shipping-section__head\">\n <span className=\"szc-shipping-section__icon\" aria-hidden=\"true\">\n {icon === 'contact' ? <ContactIcon /> : icon === 'address' ? <AddressIcon /> : <TruckIcon />}\n </span>\n <h2 id={id} className=\"szc-shipping-section__title\">{title}</h2>\n </header>\n );\n}\n\nfunction ContactIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"8\" r=\"3.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" />\n <path d=\"M5.5 19c.65-3.35 3-5.25 6.5-5.25s5.85 1.9 6.5 5.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction AddressIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M19 10c0 4.7-7 10-7 10S5 14.7 5 10a7 7 0 1 1 14 0Z\" stroke=\"currentColor\" strokeWidth=\"1.7\" strokeLinejoin=\"round\" />\n <circle cx=\"12\" cy=\"10\" r=\"2.25\" stroke=\"currentColor\" strokeWidth=\"1.7\" />\n </svg>\n );\n}\n\nfunction DigitalIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M12 3v11m0 0 4-4m-4 4-4-4\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M5 16.5v1.75A1.75 1.75 0 0 0 6.75 20h10.5A1.75 1.75 0 0 0 19 18.25V16.5\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\ninterface EnhancedSelectProps {\n id: string;\n label: string;\n value: string | number;\n placeholder: string;\n options: { value: string | number; label: string }[];\n required?: boolean;\n optionalLabel?: string;\n disabled?: boolean;\n error?: string;\n onChange: (value: string) => void;\n}\n\nfunction EnhancedSelect({ id, label, value, placeholder, options, required, optionalLabel, disabled, error, onChange }: EnhancedSelectProps) {\n return (\n <label className=\"szc-field\" htmlFor={id}>\n <FieldLabel label={label} required={required} optionalLabel={optionalLabel} />\n <div className=\"szc-select-wrap\">\n <select\n id={id}\n className={`szc-input szc-select-enhanced${error ? ' szc-input--error' : ''}`}\n value={value}\n required={required}\n disabled={disabled}\n onChange={(e) => onChange(e.target.value)}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <span className=\"szc-select-chevron\" aria-hidden=\"true\">\n <ChevronIcon />\n </span>\n </div>\n {error ? <span className=\"szc-field__error\">{error}</span> : null}\n </label>\n );\n}\n\nfunction ChevronIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\n/**\n * Click-and-drag horizontal scrolling for a container with a hidden scrollbar.\n * Also maps vertical mouse-wheel deltas to horizontal scroll so a plain mouse\n * (no horizontal wheel) can still pan the list.\n */\nfunction useDragScroll() {\n const ref = useRef<HTMLDivElement>(null);\n const drag = useRef({ down: false, startX: 0, startLeft: 0 });\n\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const onWheel = (e: WheelEvent) => {\n if (el.scrollWidth <= el.clientWidth) return; // nothing to pan\n if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) return; // already horizontal\n e.preventDefault();\n el.scrollLeft += e.deltaY;\n };\n el.addEventListener('wheel', onWheel, { passive: false });\n return () => el.removeEventListener('wheel', onWheel);\n }, []);\n\n const onPointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el) return;\n drag.current = { down: true, startX: e.clientX, startLeft: el.scrollLeft };\n el.setPointerCapture(e.pointerId);\n el.classList.add('szc-dragging');\n };\n const onPointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el || !drag.current.down) return;\n el.scrollLeft = drag.current.startLeft - (e.clientX - drag.current.startX);\n };\n const onPointerUp = (e: React.PointerEvent<HTMLDivElement>) => {\n const el = ref.current;\n if (!el || !drag.current.down) return;\n drag.current.down = false;\n el.classList.remove('szc-dragging');\n try {\n el.releasePointerCapture(e.pointerId);\n } catch {\n /* pointer already released */\n }\n };\n\n return { ref, onPointerDown, onPointerMove, onPointerUp };\n}\n\nfunction ShippingGroupCard({ group }: { group: ShippingGroup }) {\n const { actions, price, state, t } = useCheckout();\n const busy = state.flags.selectingRate;\n const selectedRate = group.rates.find((rate) => rate.id === group.selectedRateId);\n const showRateSelector = group.items.length !== 1 || group.rates.length !== 1;\n const itemsScroll = useDragScroll();\n\n return (\n <div className=\"szc-ship-group\">\n <header className=\"szc-ship-group__head\">\n <span\n className=\"szc-ship-group__mark\"\n style={shippingRateIconStyle(selectedRate?.color)}\n aria-hidden=\"true\"\n >\n {selectedRate ? <ShippingRateIcon rate={selectedRate} /> : <TruckIcon />}\n </span>\n <div className=\"szc-ship-group__heading\">\n <div className=\"szc-ship-group__title-row\">\n <strong className=\"szc-ship-group__title\">\n {group.title || selectedRate?.name || t.shippingMethod}\n </strong>\n <span className=\"szc-ship-group__count\">\n {t.productCount(toPersianDigits(String(group.items.length)))}\n </span>\n </div>\n {selectedRate ? (\n <span className=\"szc-ship-group__hint\">\n {selectedRate.description ? (\n <span className=\"szc-ship-group__desc\">{selectedRate.description}</span>\n ) : null}\n <span className=\"szc-ship-group__rate-price\">\n {selectedRate.price > 0 ? price(selectedRate.price) : t.free}\n </span>\n </span>\n ) : (\n <span className=\"szc-ship-group__hint\">{t.shippingMethods}</span>\n )}\n </div>\n </header>\n\n <div\n className=\"szc-ship-group__items\"\n ref={itemsScroll.ref}\n onPointerDown={itemsScroll.onPointerDown}\n onPointerMove={itemsScroll.onPointerMove}\n onPointerUp={itemsScroll.onPointerUp}\n onPointerCancel={itemsScroll.onPointerUp}\n >\n {group.items.map((item) => (\n <article key={item.id} className=\"szc-ship-product\">\n <div className=\"szc-ship-product__media\">\n {item.image?.url ? (\n <img src={item.image.url} alt={item.image.alt || item.name} />\n ) : (\n <ProductPlaceholder />\n )}\n <span className=\"szc-ship-product__quantity\">\n {toPersianDigits(String(item.quantity))}\n </span>\n </div>\n <div className=\"szc-ship-product__copy\">\n <strong className=\"szc-ship-product__name\">{item.name}</strong>\n {item.attributes.length > 0 ? (\n <span className=\"szc-ship-product__attrs\">\n {item.attributes.map((attribute) => `${attribute.name}: ${attribute.value}`).join(' · ')}\n </span>\n ) : null}\n </div>\n </article>\n ))}\n </div>\n\n {!showRateSelector && selectedRate?.description?.trim() ? (\n <div className=\"szc-ship-group__description\">\n {selectedRate.description.trim()}\n </div>\n ) : null}\n\n {showRateSelector ? (\n <div className=\"szc-rate-list\" role=\"radiogroup\">\n {group.rates.map((rate: ShippingRate) => {\n const selected = group.selectedRateId === rate.id;\n const description = rate.description?.trim();\n return (\n <button\n key={rate.id}\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n aria-label={description ? `${rate.name} — ${description}` : rate.name}\n disabled={busy}\n className={`szc-rate${selected ? ' szc-rate--selected' : ''}`}\n onClick={() => actions.selectShippingRate(group.key, rate.id)}\n >\n <span\n className=\"szc-rate__icon\"\n style={shippingRateIconStyle(rate.color)}\n aria-hidden=\"true\"\n >\n <ShippingRateIcon rate={rate} />\n </span>\n <span className=\"szc-rate__copy\">\n <span className=\"szc-rate__name\">{rate.name}</span>\n {rate.price > 0 ? (\n <span className=\"szc-rate__price\">{price(rate.price)}</span>\n ) : null}\n </span>\n <span className=\"szc-rate__radio\" aria-hidden=\"true\">\n {selected ? <CheckIcon /> : null}\n </span>\n {description ? (\n <span className=\"szc-rate__description\">{description}</span>\n ) : null}\n </button>\n );\n })}\n </div>\n ) : null}\n </div>\n );\n}\n\nconst ICON_PROPS = {\n viewBox: '0 0 24 24',\n width: 26,\n height: 26,\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 1.8,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n 'aria-hidden': true,\n} as const;\n\nfunction TruckIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M14 17V6a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h1\" />\n <path d=\"M9 18h5\" />\n <path d=\"M18 18h1a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.21-.62l-2.7-3.39A1 1 0 0 0 16.3 9H14\" />\n <circle cx=\"7\" cy=\"18\" r=\"2\" />\n <circle cx=\"16\" cy=\"18\" r=\"2\" />\n </svg>\n );\n}\n\nfunction ShippingRateIcon({ rate }: { rate: ShippingRate }) {\n const iconKey = shippingRateIconKey(rate);\n\n switch (iconKey) {\n case 'post':\n return <PostIcon />;\n case 'free-delivery':\n return <FreeDeliveryIcon />;\n case 'courier':\n return <CourierIcon />;\n case 'delivery-man':\n return <DeliveryManIcon />;\n default:\n return rate.icon && isImageUrl(rate.icon) ? <img src={rate.icon} alt=\"\" /> : <TruckIcon />;\n }\n}\n\nfunction shippingRateIconKey(rate: ShippingRate): string {\n const explicit = (rate.icon || rate.type || '').trim().toLowerCase().replace(/_/g, '-');\n if (explicit) return explicit;\n\n const name = rate.name.trim().toLowerCase();\n if (name.includes('پست') || name.includes('post')) return 'post';\n if (name.includes('رایگان') || name.includes('free')) return 'free-delivery';\n if (name.includes('پیک') || name.includes('courier')) return 'courier';\n if (name.includes('حضوری') || name.includes('delivery man')) return 'delivery-man';\n return '';\n}\n\n/**\n * The API returns `color` as a palette *token* (e.g. `mainColor`, `green`) — not\n * always a CSS color. Map the known tokens to concrete CSS colors so each rate\n * renders its own chip color instead of every icon falling back to the accent.\n */\nconst SHIPPING_COLOR_TOKENS: Record<string, string> = {\n green: '#16a34a',\n red: '#dc2626',\n blue: '#2563eb',\n orange: '#ea580c',\n yellow: '#eab308',\n purple: '#7c3aed',\n pink: '#db2777',\n teal: '#0d9488',\n cyan: '#0891b2',\n indigo: '#4f46e5',\n gray: '#6b7280',\n grey: '#6b7280',\n black: '#0f172a',\n brown: '#92400e'\n};\n\nfunction resolveShippingColor(raw: string): string | undefined {\n const token = raw.trim().toLowerCase();\n if (!token) return undefined;\n // The shop's \"main color\" is the theme accent → let the CSS fallback handle it.\n if (token === 'maincolor' || token === 'main') return undefined;\n if (token === 'transparent' || token === 'white') return '#ffffff';\n if (SHIPPING_COLOR_TOKENS[token]) return SHIPPING_COLOR_TOKENS[token];\n // Already a concrete CSS color value (hex / rgb()).\n if (parseColorChannels(token)) return token;\n return undefined;\n}\n\nfunction shippingRateIconStyle(color?: string): CSSProperties | undefined {\n if (!color) return undefined;\n\n const resolved = resolveShippingColor(color);\n\n // Unknown token / unparseable → let CSS use the theme's soft accent treatment.\n if (!resolved) return undefined;\n\n const rgb = parseColorChannels(resolved);\n if (!rgb) return undefined;\n\n const luminance = (0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]) / 255;\n\n // A white / near-white brand color (common for \"post\") would vanish against\n // the card. Render a neutral chip with a slate glyph instead.\n if (luminance > 0.9) {\n return {\n '--szc-rate-color': 'var(--szc-shipping-neutral)',\n '--szc-rate-foreground': 'var(--szc-shipping-neutral-foreground)'\n } as CSSProperties;\n }\n\n const foreground = luminance > 0.62\n ? `rgb(${rgb.map((channel) => Math.round(channel * 0.58)).join(', ')})`\n : resolved;\n\n return {\n '--szc-rate-color': `color-mix(in srgb, ${resolved} 13%, var(--szc-card))`,\n '--szc-rate-foreground': foreground\n } as CSSProperties;\n}\n\nfunction parseColorChannels(value: string): [number, number, number] | null {\n const hex = value.match(/^#([\\da-f]{3}|[\\da-f]{6}|[\\da-f]{8})$/i)?.[1];\n if (hex?.length === 3) {\n return [0, 1, 2].map((index) => parseInt(hex[index] + hex[index], 16)) as [number, number, number];\n }\n if (hex && hex.length >= 6) {\n return [\n parseInt(hex.slice(0, 2), 16),\n parseInt(hex.slice(2, 4), 16),\n parseInt(hex.slice(4, 6), 16)\n ];\n }\n const channels = value.match(/^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/i);\n if (channels) return [Number(channels[1]), Number(channels[2]), Number(channels[3])];\n return null;\n}\n\nfunction isImageUrl(value: string): boolean {\n return /^(https?:)?\\/\\//i.test(value) || value.startsWith('/') || value.startsWith('data:');\n}\n\nfunction PostIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\" />\n <path d=\"M3.3 7 12 12l8.7-5\" />\n <path d=\"M12 22V12\" />\n <path d=\"m7.5 4.6 9 5.2\" />\n </svg>\n );\n}\n\nfunction FreeDeliveryIcon() {\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M21 11V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l1.5-.86\" />\n <path d=\"M3.3 7 12 12l8.7-5\" />\n <path d=\"M12 22V12\" />\n <path d=\"m15.5 17 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction CourierIcon() {\n return (\n <svg {...ICON_PROPS}>\n <circle cx=\"5.5\" cy=\"17.5\" r=\"3.5\" />\n <circle cx=\"18.5\" cy=\"17.5\" r=\"3.5\" />\n <circle cx=\"15\" cy=\"5\" r=\"1\" />\n <path d=\"M12 17.5V14l-3-3 4-3 2 3h2\" />\n </svg>\n );\n}\n\nfunction DeliveryManIcon() {\n return (\n <svg {...ICON_PROPS}>\n <circle cx=\"9\" cy=\"4.5\" r=\"2.5\" />\n <path d=\"M5.5 21v-6.5a3.5 3.5 0 0 1 7 0V21\" />\n <rect x=\"14\" y=\"11.5\" width=\"6.5\" height=\"7\" rx=\"1.2\" />\n <path d=\"M14 15h6.5\" />\n <path d=\"M17.2 11.5v3.5\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"m3.2 8.2 3 3 6.6-6.4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n","'use client';\n\nimport { useCheckout } from '../../react';\nimport {\n paymentMethodInfo,\n formatPercent,\n type AppliedDiscount,\n type CheckoutLocale,\n type PaymentMethodKind,\n type Strings\n} from '../../core';\nimport { Button, SectionTitle, Spinner } from '../primitives';\n\n/** Human line for the applied-code card: \"20% off (50,000)\", \"Free shipping\", … */\nfunction describeDiscount(\n discount: AppliedDiscount,\n t: Strings,\n money: (amount: number) => string,\n locale: CheckoutLocale\n): string | null {\n const parts: string[] = [];\n if (discount.kind === 'percentage' && (discount.percent ?? 0) > 0) {\n const percentOff = t.discountPercentOff(formatPercent(discount.percent as number, locale));\n parts.push(discount.amount > 0 ? `${percentOff} (${money(discount.amount)})` : percentOff);\n } else if (discount.amount > 0) {\n parts.push(t.discountAmountOff(money(discount.amount)));\n }\n if (discount.kind === 'free_shipping' || (discount.shippingSaved ?? 0) > 0) {\n parts.push(t.discountFreeShipping);\n }\n return parts.length > 0 ? parts.join(' + ') : null;\n}\n\nexport function PaymentStep() {\n const { state, actions, t, money } = useCheckout();\n const {\n paymentMethods,\n selectedPaymentMethodId,\n appliedDiscount,\n discountCode,\n discountError,\n flags,\n locale\n } = state;\n\n return (\n <section className=\"szc-step-panel\">\n <SectionTitle>{t.paymentMethod}</SectionTitle>\n\n {flags.loadingPayments ? (\n <p className=\"szc-inline-loading\">\n <Spinner /> {t.loading}\n </p>\n ) : (\n <div className=\"szc-pay-list\" role=\"radiogroup\" aria-label={t.paymentMethod}>\n {paymentMethods.map((method) => {\n const selected = selectedPaymentMethodId === method.id;\n const info = paymentMethodInfo(method.code, locale);\n // Prefer backend-provided title/description; fall back to derived labels.\n const backendTitle = locale === 'fa' ? method.titleFa : method.title;\n const title = backendTitle?.trim() || info.title;\n const description = method.description?.trim() || info.description;\n return (\n <button\n key={method.id}\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n className={`szc-pay${selected ? ' szc-pay--selected' : ''}`}\n onClick={() => actions.selectPaymentMethod(method.id)}\n >\n <span className=\"szc-pay__icon\" aria-hidden=\"true\">\n <PaymentIcon kind={info.kind} />\n </span>\n <span className=\"szc-pay__body\">\n <span className=\"szc-pay__name\">{title}</span>\n <span className=\"szc-pay__desc\">{description}</span>\n </span>\n <span className=\"szc-pay__radio\" aria-hidden=\"true\">\n {selected ? <CheckIcon /> : null}\n </span>\n </button>\n );\n })}\n </div>\n )}\n\n <SectionTitle>{t.discountCode}</SectionTitle>\n {appliedDiscount ? (\n <div className=\"szc-discount szc-discount--applied\">\n <span className=\"szc-discount__icon\" aria-hidden=\"true\">\n <TagIcon />\n </span>\n <span className=\"szc-discount__body\">\n <code className=\"szc-discount__code\">{appliedDiscount.code}</code>\n <span className=\"szc-discount__desc\">\n {describeDiscount(appliedDiscount, t, money, locale) ?? t.applied}\n </span>\n </span>\n <span className=\"szc-discount__badge\">\n <CheckIcon /> {t.applied}\n </span>\n <Button variant=\"ghost\" onClick={() => actions.removeDiscount()} loading={flags.applyingDiscount}>\n {t.remove}\n </Button>\n </div>\n ) : (\n <div className=\"szc-discount-field\">\n <div className=\"szc-discount\">\n <span className=\"szc-discount__inputwrap\">\n <TagIcon />\n <input\n className={`szc-input${discountError ? ' szc-input--error' : ''}`}\n placeholder={t.discountPlaceholder}\n value={discountCode}\n aria-invalid={discountError ? true : undefined}\n onChange={(e) => actions.setDiscountCode(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') actions.applyDiscount();\n }}\n />\n </span>\n <Button\n variant=\"outline\"\n onClick={() => actions.applyDiscount()}\n loading={flags.applyingDiscount}\n disabled={!discountCode.trim()}\n >\n {t.apply}\n </Button>\n </div>\n {discountError ? (\n <p className=\"szc-discount__error\" role=\"alert\">\n <AlertIcon />\n {discountError}\n </p>\n ) : null}\n </div>\n )}\n </section>\n );\n}\n\nfunction TagIcon() {\n return (\n <svg viewBox=\"0 0 20 20\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M10.5 2.5H16v5.5l-7.5 7.5a1.8 1.8 0 0 1-2.5 0L3 13a1.8 1.8 0 0 1 0-2.5z\" />\n <circle cx=\"12.8\" cy=\"5.7\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n}\n\nconst ICON_PROPS = {\n viewBox: '0 0 20 20',\n width: 20,\n height: 20,\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 1.4,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n 'aria-hidden': true\n};\n\nfunction AlertIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n <path d=\"M8 4.8v3.4\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"11\" r=\"0.85\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"m3.2 8.2 3 3 6.6-6.4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nfunction PaymentIcon({ kind }: { kind: PaymentMethodKind }) {\n switch (kind) {\n case 'card':\n // two cards / transfer\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2\" y=\"5\" width=\"13\" height=\"9\" rx=\"2\" />\n <path d=\"M2 8h13M5.5 11.5h3\" />\n <path d=\"M15.5 6.5h2.5v9h-9v-1.5\" />\n </svg>\n );\n case 'cod':\n // package / hand\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M10 2.5 17 6v8l-7 3.5L3 14V6z\" />\n <path d=\"M3 6l7 3.5L17 6M10 9.5v8\" />\n </svg>\n );\n case 'bnpl':\n // calendar / installments\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"3\" y=\"4\" width=\"14\" height=\"13\" rx=\"2\" />\n <path d=\"M3 8h14M7 2.5v3M13 2.5v3M6.5 12h3\" />\n </svg>\n );\n case 'wallet':\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2.5\" y=\"5\" width=\"15\" height=\"11\" rx=\"2.5\" />\n <path d=\"M2.5 9h15\" />\n <circle cx=\"14\" cy=\"12.5\" r=\"1.1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n case 'free':\n // tag\n return (\n <svg {...ICON_PROPS}>\n <path d=\"M10.5 2.5H16v5.5l-7.5 7.5a1.8 1.8 0 0 1-2.5 0L3 13a1.8 1.8 0 0 1 0-2.5z\" />\n <circle cx=\"12.8\" cy=\"5.7\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n );\n case 'gateway':\n default:\n // single card / bank\n return (\n <svg {...ICON_PROPS}>\n <rect x=\"2.5\" y=\"4.5\" width=\"15\" height=\"11\" rx=\"2\" />\n <path d=\"M2.5 8.5h15M5.5 12.5h4\" />\n </svg>\n );\n }\n}\n","'use client';\n\nimport { useCheckout } from '../../react';\nimport {\n formatNumber,\n type CheckoutInvoiceItem,\n type CheckoutShippingItem\n} from '../../core';\nimport { Button, ProductPlaceholder, Spinner } from '../primitives';\n\ninterface ResultShipmentGroup {\n shipping: CheckoutShippingItem;\n items: CheckoutInvoiceItem[];\n}\n\nexport function groupResultItemsByShipping(\n invoiceItems: CheckoutInvoiceItem[],\n shippingItems: CheckoutShippingItem[]\n): { shipmentGroups: ResultShipmentGroup[]; unassignedItems: CheckoutInvoiceItem[] } {\n const itemById = new Map<string, CheckoutInvoiceItem>();\n const assignedItems = new Set<CheckoutInvoiceItem>();\n\n invoiceItems.forEach((item) => {\n if (item.id !== undefined) itemById.set(String(item.id), item);\n });\n\n const shipmentGroups = shippingItems.map((shipping) => {\n const items = shipping.invoiceItemIds.flatMap((itemId) => {\n const item = itemById.get(String(itemId));\n if (!item || assignedItems.has(item)) return [];\n assignedItems.add(item);\n return [item];\n });\n\n return { shipping, items };\n });\n\n // Older payment responses did not expose invoice-line IDs. A single shipping\n // method is still unambiguous, so keep those orders grouped correctly.\n if (shipmentGroups.length === 1 && shipmentGroups[0].items.length === 0) {\n shipmentGroups[0].items = [...invoiceItems];\n invoiceItems.forEach((item) => assignedItems.add(item));\n }\n\n return {\n shipmentGroups: shipmentGroups.filter((group) => group.items.length > 0),\n unassignedItems: invoiceItems.filter((item) => !assignedItems.has(item))\n };\n}\n\nexport function ResultStep({ continueShoppingUrl }: { continueShoppingUrl?: string }) {\n const { state, actions, money, t } = useCheckout();\n const result = state.result;\n const status = result?.status ?? 'pending';\n const order = result?.order;\n const invoice = order?.invoice;\n const showDetails = Boolean(order && (status === 'success' || status === 'pending'));\n const showSummary = invoice?.netTotal != null || invoice?.finalTotal != null;\n const isFailure = status === 'failed' || status === 'stock_violated';\n const orderDetailsUrl = order\n ? buildOrderDetailsUrl(order.id, order.orderIdentifier, continueShoppingUrl)\n : null;\n const groupedItems = invoice\n ? groupResultItemsByShipping(invoice.invoiceItems, invoice.shippingItems)\n : { shipmentGroups: [], unassignedItems: [] };\n\n const renderItems = (items: CheckoutInvoiceItem[]) => (\n <ul className=\"szc-result-items\">\n {items.map((item, index) => (\n <li className=\"szc-result-item\" key={`${String(item.id ?? item.productVariantId)}-${index}`}>\n <span className=\"szc-result-item__product\">\n {item.image?.url ? (\n <img className=\"szc-result-item__thumb\" src={item.image.url} alt=\"\" />\n ) : (\n <ProductPlaceholder className=\"szc-result-item__thumb\" />\n )}\n <span>\n <strong>{item.name}</strong>\n {item.variantAttributes.length ? (\n <small>{item.variantAttributes.map(formatAttribute).join(' · ')}</small>\n ) : null}\n </span>\n </span>\n <span className=\"szc-result-item__quantity\">\n <span className=\"szc-result-item__mobile-label\">{t.quantity}</span>\n <strong>{formatNumber(item.noOfItems, state.locale)}</strong>\n </span>\n <span className=\"szc-result-item__total\">\n <span className=\"szc-result-item__mobile-label\">{t.lineTotal}</span>\n <strong>{money(item.totalItemsPrice)}</strong>\n </span>\n </li>\n ))}\n </ul>\n );\n\n const titleMap = {\n success: t.paymentSuccess,\n failed: t.paymentFailed,\n pending: t.paymentPending,\n stock_violated: t.paymentFailed\n } as const;\n\n return (\n <section\n className={`szc-result szc-result--${status}${showDetails ? '' : ' szc-result--compact'}`}\n >\n <div\n className=\"szc-result__hero\"\n role={isFailure ? 'alert' : 'status'}\n aria-live={isFailure ? 'assertive' : 'polite'}\n >\n <div className=\"szc-result__icon\">\n <span className=\"szc-result__icon-mark\">\n {status === 'success' ? (\n <CheckCircle />\n ) : status === 'pending' ? (\n <Spinner />\n ) : (\n <CrossCircle />\n )}\n </span>\n </div>\n\n <div className=\"szc-result__copy\">\n <h2 className=\"szc-result__title\">{titleMap[status]}</h2>\n\n {status === 'pending' ? <p className=\"szc-result__hint\">{t.paymentPendingHint}</p> : null}\n {!isFailure && result?.message ? (\n <p className=\"szc-result__message\" dir=\"auto\">{result.message}</p>\n ) : null}\n {status === 'success' && order ? (\n <p className=\"szc-result__hint\">{t.orderConfirmedHint}</p>\n ) : null}\n </div>\n\n {order ? (\n <dl className=\"szc-result__reference\">\n <div className=\"szc-result__reference-primary\">\n <dt>{t.orderNumber}</dt>\n <dd dir=\"ltr\">{String(order.orderNumber)}</dd>\n </div>\n </dl>\n ) : null}\n\n <div className=\"szc-result__actions\">\n {status === 'failed' || status === 'stock_violated' ? (\n <Button\n onClick={() => void actions.retryPayment()}\n loading={state.flags.loadingPayments}\n >\n {t.tryAgain}\n </Button>\n ) : null}\n {orderDetailsUrl ? (\n <Button asChild>\n <a href={orderDetailsUrl}>{t.orderDetails}</a>\n </Button>\n ) : null}\n {continueShoppingUrl ? (\n <Button variant=\"outline\" asChild>\n <a href={continueShoppingUrl}>{t.backToShop}</a>\n </Button>\n ) : null}\n </div>\n </div>\n\n {showDetails && order && invoice ? (\n <div className=\"szc-result__details\">\n {groupedItems.shipmentGroups.map(({ shipping, items }, index) => {\n const description = shipping.rate.description?.trim();\n\n return (\n <section\n className=\"szc-result__details-card szc-result-shipment\"\n aria-label={`${t.shippingMethod}: ${shipping.rate.name}`}\n key={`${String(shipping.id)}-${index}`}\n >\n <header className=\"szc-result-shipment__head\">\n <span className=\"szc-result-shipment__mark\" aria-hidden=\"true\">\n {isImageUrl(shipping.rate.icon) ? (\n <img src={shipping.rate.icon} alt=\"\" />\n ) : (\n <DeliveryIcon />\n )}\n </span>\n <span className=\"szc-result-shipment__name\">\n <small className=\"szc-result-shipment__eyebrow\">{t.shippingMethod}</small>\n <strong>{shipping.rate.name}</strong>\n {description ? (\n <span className=\"szc-result-shipment__description\">{description}</span>\n ) : null}\n </span>\n {shipping.rate.type !== 'free' ? (\n <span className=\"szc-result-shipment__price\">{money(shipping.rate.price)}</span>\n ) : null}\n </header>\n {renderItems(items)}\n </section>\n );\n })}\n\n {groupedItems.unassignedItems.length > 0 ? (\n <section\n className=\"szc-result__details-card szc-result-unassigned-items\"\n aria-label={t.orderItems}\n >\n {renderItems(groupedItems.unassignedItems)}\n </section>\n ) : null}\n\n {showSummary ? (\n <dl className=\"szc-result-summary\">\n {invoice.netTotal != null ? (\n <SummaryRow label={t.subtotal} value={money(invoice.netTotal)} />\n ) : null}\n {invoice.shippingTotal != null ? (\n <SummaryRow label={t.shipping} value={money(invoice.shippingTotal)} />\n ) : null}\n {invoice.discountTotal != null && invoice.discountTotal > 0 ? (\n <SummaryRow label={t.discount} value={`−${money(invoice.discountTotal)}`} />\n ) : null}\n {invoice.creditTotal != null && invoice.creditTotal > 0 ? (\n <SummaryRow label={t.credit} value={`−${money(invoice.creditTotal)}`} />\n ) : null}\n {invoice.vat != null && invoice.vat > 0 ? (\n <SummaryRow label={t.vat} value={money(invoice.vat)} />\n ) : null}\n {invoice.customerProfit != null && invoice.customerProfit > 0 ? (\n <SummaryRow label={t.yourSavings} value={money(invoice.customerProfit)} savings />\n ) : null}\n {invoice.finalTotal != null ? (\n <SummaryRow label={t.total} value={money(invoice.finalTotal)} total />\n ) : null}\n </dl>\n ) : null}\n </div>\n ) : null}\n </section>\n );\n}\n\nfunction buildOrderDetailsUrl(\n orderId: number | string,\n orderIdentifier: string,\n continueShoppingUrl?: string\n): string {\n const path = `/orderinfo/${encodeURIComponent(String(orderId))}/${encodeURIComponent(orderIdentifier)}`;\n if (!continueShoppingUrl) return path;\n\n try {\n const storefrontUrl = new URL(continueShoppingUrl);\n return new URL(path, storefrontUrl.origin).toString();\n } catch {\n return path;\n }\n}\n\nfunction formatAttribute(attribute: CheckoutInvoiceItem['variantAttributes'][number]): string {\n return `${attribute.name}: ${attribute.value}`;\n}\n\nfunction isImageUrl(value: string | undefined): value is string {\n return Boolean(value && (/^https?:\\/\\//i.test(value) || value.startsWith('/') || value.startsWith('data:image/')));\n}\n\nfunction SummaryRow({\n label,\n value,\n savings = false,\n total = false\n}: {\n label: string;\n value: string;\n savings?: boolean;\n total?: boolean;\n}) {\n return (\n <div className={`${total ? 'szc-result-summary__total' : ''} ${savings ? 'szc-result-summary__savings' : ''}`.trim()}>\n <dt>{label}</dt>\n <dd>{value}</dd>\n </div>\n );\n}\n\nfunction CheckCircle() {\n return (\n <svg viewBox=\"0 0 48 48\" width=\"48\" height=\"48\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"24\" cy=\"24\" r=\"22\" stroke=\"currentColor\" strokeWidth=\"2.5\" />\n <path\n d=\"M15 24.5l6 6 12-13\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nfunction CrossCircle() {\n return (\n <svg viewBox=\"0 0 48 48\" width=\"48\" height=\"48\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"24\" cy=\"24\" r=\"22\" stroke=\"currentColor\" strokeWidth=\"2.5\" />\n <path d=\"M17 17l14 14M31 17L17 31\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n\nfunction DeliveryIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3 6.5h11v10H3zM14 10h3.5l3 3v3.5H14z\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\n <circle cx=\"7\" cy=\"18\" r=\"1.75\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <circle cx=\"17.5\" cy=\"18\" r=\"1.75\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n </svg>\n );\n}\n","'use client';\n\nimport type { CSSProperties, ReactNode } from 'react';\nimport { useCheckout } from '../react';\nimport {\n formatNumber,\n type CheckoutResult,\n type CheckoutResultStatus,\n type CheckoutTheme,\n type CheckoutOrder\n} from '../core';\nimport { Button, ErrorBanner, Spinner } from './primitives';\nimport { Stepper, CartIcon, TruckIcon, CardIcon, ClipboardIcon } from './Stepper';\nimport { OrderSummary } from './OrderSummary';\nimport { CartStep } from './steps/CartStep';\nimport { ShippingStep } from './steps/ShippingStep';\nimport { PaymentStep } from './steps/PaymentStep';\nimport { ResultStep } from './steps/ResultStep';\n\n/** Props passed to renderNextButton / renderBackButton. */\nexport interface RenderButtonProps {\n /** Whether the action is in-flight (show a loading indicator). */\n loading: boolean;\n /** Whether the button should be inert (validation not met). */\n disabled: boolean;\n /** Trigger the checkout action for this button. */\n onClick: () => void;\n /** Localised label for the current step. */\n children: ReactNode;\n}\n\nexport interface RenderEmptyCartProps {\n continueShoppingUrl?: string;\n title: ReactNode;\n description: ReactNode;\n actionLabel: ReactNode;\n icon: ReactNode;\n}\n\n/** Props passed to a custom checkout result renderer. */\nexport interface RenderResultProps {\n /** Complete post-payment result, including any backend message and order. */\n result: CheckoutResult | null;\n /** Normalized result status. Falls back to `pending` while resolving. */\n status: CheckoutResultStatus;\n /** Finalized order returned by Sazito on a successful payment. */\n order?: CheckoutOrder;\n /** Configured destination for the continue-shopping action. */\n continueShoppingUrl?: string;\n /** Return to the payment step after a failed or stock-violated result. */\n onRetry: () => void;\n}\n\n/** Content-level customisation for the built-in empty-cart screen. */\nexport interface EmptyCartOptions {\n /** Empty-state heading. Defaults to the active locale. */\n title?: ReactNode;\n /** Supporting copy below the heading. Defaults to the active locale. */\n description?: ReactNode;\n /** Label for the back-to-store action. Defaults to the active locale. */\n actionLabel?: ReactNode;\n /** Replace the built-in cart illustration. */\n icon?: ReactNode;\n /** Override config.continueShoppingUrl for this action only. */\n actionUrl?: string;\n /** Hide the action even when a continue-shopping URL is configured. */\n hideAction?: boolean;\n}\n\nexport interface SazitoCheckoutProps {\n theme?: CheckoutTheme;\n continueShoppingUrl?: string;\n className?: string;\n renderNextButton?: (props: RenderButtonProps) => ReactNode;\n renderBackButton?: (props: RenderButtonProps) => ReactNode;\n renderEmptyCart?: (props: RenderEmptyCartProps) => ReactNode;\n /** Completely replace the built-in post-payment result screen. */\n renderResult?: (props: RenderResultProps) => ReactNode;\n emptyCart?: EmptyCartOptions;\n}\n\nfunction themeVars(theme?: CheckoutTheme): CSSProperties {\n const vars: Record<string, string> = {};\n if (theme?.accent) vars['--szc-accent'] = theme.accent;\n if (theme?.accentForeground) vars['--szc-accent-foreground'] = theme.accentForeground;\n if (theme?.accentSoft) vars['--szc-accent-soft'] = theme.accentSoft;\n if (theme?.background) vars['--szc-bg'] = theme.background;\n if (theme?.foreground) vars['--szc-fg'] = theme.foreground;\n if (theme?.muted) vars['--szc-muted'] = theme.muted;\n if (theme?.mutedForeground) vars['--szc-muted-fg'] = theme.mutedForeground;\n if (theme?.border) vars['--szc-border'] = theme.border;\n if (theme?.card) vars['--szc-card'] = theme.card;\n if (theme?.summaryBackground) vars['--szc-summary-bg'] = theme.summaryBackground;\n if (theme?.danger) vars['--szc-danger'] = theme.danger;\n if (theme?.success) vars['--szc-success'] = theme.success;\n if (theme?.successForeground) vars['--szc-success-foreground'] = theme.successForeground;\n if (theme?.logoBackground) vars['--szc-logo-bg'] = theme.logoBackground;\n if (theme?.shippingNeutral) vars['--szc-shipping-neutral'] = theme.shippingNeutral;\n if (theme?.shippingNeutralForeground) vars['--szc-shipping-neutral-foreground'] = theme.shippingNeutralForeground;\n if (theme?.radius != null) vars['--szc-radius'] = `${theme.radius}px`;\n if (theme?.fontFamily) vars['--szc-font'] = theme.fontFamily;\n return vars as CSSProperties;\n}\n\nfunction CheckoutLoading({ label }: { label: string }) {\n return (\n <div className=\"szc-checkout-loading\" role=\"status\" aria-live=\"polite\">\n <Spinner className=\"szc-checkout-loading__spinner\" />\n <span>{label}</span>\n </div>\n );\n}\n\nexport function SazitoCheckout({\n theme,\n continueShoppingUrl,\n className,\n renderNextButton,\n renderBackButton,\n renderEmptyCart,\n renderResult,\n emptyCart,\n}: SazitoCheckoutProps) {\n const { state, actions, t, summary, money } = useCheckout();\n const { step, direction, flags, error } = state;\n\n const isResult = step === 'result';\n const resultStatus = state.result?.status ?? 'pending';\n const bootstrapping =\n step === 'cart' && !error && (!state.cart || !state.invoice || flags.bootstrapping);\n const emptyCartError = error?.code === 'no_cart';\n const fatal = error && !state.cart && step === 'cart' && !emptyCartError;\n\n const cartEmpty = !state.cart || state.cart.items.length === 0;\n const footerVisible =\n (step === 'cart' && !cartEmpty) || step === 'shipping' || step === 'payment';\n\n const nextBusy =\n state.status === 'working' ||\n flags.savingAddress ||\n flags.loadingShipping ||\n flags.loadingPayments ||\n flags.placingOrder;\n\n const needsShipping = state.invoice?.needsShipping !== false;\n const shippingSavePhase = state.addressDirty || !state.applicable;\n const shippingReady =\n !needsShipping ||\n (state.shippingGroups.length > 0 &&\n state.shippingGroups.every((g) => g.selectedRateId != null));\n const paymentReady =\n state.paymentMethods.length > 0 && state.selectedPaymentMethodId != null;\n const nextDisabled =\n step === 'cart'\n ? cartEmpty\n : step === 'shipping'\n ? !shippingSavePhase && !shippingReady\n : step === 'payment'\n ? !paymentReady\n : false;\n\n const nextLabel =\n step === 'cart'\n ? t.placeOrder\n : step === 'shipping'\n ? needsShipping && shippingSavePhase\n ? t.saveShippingDetails\n : t.continueToPayment\n : t.finishPurchase;\n\n const backOnClick =\n step === 'cart' && continueShoppingUrl\n ? () => { window.location.href = continueShoppingUrl; }\n : () => actions.back();\n\n const backVisible =\n step !== 'cart' || !!continueShoppingUrl;\n\n const nextButtonProps: RenderButtonProps = {\n loading: nextBusy,\n disabled: nextDisabled,\n onClick: () => actions.next(),\n children: nextLabel,\n };\n\n const backButtonProps: RenderButtonProps = {\n loading: false,\n disabled: false,\n onClick: backOnClick,\n children: t.back,\n };\n\n /* Rendered twice: under the order summary (desktop) and in the sticky\n bottom bar (mobile). CSS shows exactly one of the two. */\n const nextButtonNode = renderNextButton ? (\n renderNextButton(nextButtonProps)\n ) : (\n <Button\n className=\"szc-footer__next\"\n loading={nextBusy}\n disabled={nextDisabled}\n onClick={() => actions.next()}\n >\n {nextLabel}\n </Button>\n );\n\n const backButtonNode = backVisible ? (\n renderBackButton ? (\n renderBackButton(backButtonProps)\n ) : (\n <Button variant=\"ghost\" className=\"szc-back-btn\" onClick={backOnClick}>\n <svg\n className=\"szc-back-arrow\"\n viewBox=\"0 0 16 16\"\n width=\"15\"\n height=\"15\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.5 3.5 5 8l4.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {t.back}\n </Button>\n )\n ) : null;\n\n const actionsVisible = !bootstrapping && !fatal && !isResult && footerVisible;\n\n /* Mobile header (replaces the stepper on small screens): back chevron at the\n inline start, current step title centered, \"step n of m\" at the end. */\n const flowSteps = ['cart', 'shipping', 'payment'] as const;\n const flowIndex = flowSteps.indexOf(step as (typeof flowSteps)[number]);\n const headTitle =\n step === 'cart'\n ? t.stepCart\n : step === 'shipping'\n ? t.stepShippingInfo\n : step === 'payment'\n ? t.stepPayment\n : t.stepResult;\n const HeadIcon =\n step === 'cart'\n ? CartIcon\n : step === 'shipping'\n ? TruckIcon\n : step === 'payment'\n ? CardIcon\n : ClipboardIcon;\n const mobileHead = (\n <div className=\"szc-mobile-head\">\n {footerVisible && backVisible ? (\n <button\n type=\"button\"\n className=\"szc-mobile-head__back\"\n aria-label={t.back}\n onClick={backOnClick}\n >\n <svg\n className=\"szc-back-arrow\"\n viewBox=\"0 0 16 16\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.5 3.5 5 8l4.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n ) : (\n <span />\n )}\n <span className=\"szc-mobile-head__title\">\n <span className=\"szc-mobile-head__dot\">\n <HeadIcon />\n </span>\n {headTitle}\n </span>\n {flowIndex >= 0 ? (\n <span className=\"szc-mobile-head__count\">\n {t.stepOf(\n formatNumber(flowIndex + 1, state.locale),\n formatNumber(flowSteps.length, state.locale)\n )}\n </span>\n ) : (\n <span />\n )}\n </div>\n );\n\n return (\n <div\n className={`szc-root${className ? ` ${className}` : ''}`}\n dir={direction}\n style={themeVars(theme)}\n >\n {mobileHead}\n <Stepper />\n\n {bootstrapping ? (\n <CheckoutLoading label={t.loading} />\n ) : fatal ? (\n <ErrorBanner message={error.message} />\n ) : isResult ? (\n <div className=\"szc-result-wrap\">\n {renderResult ? (\n renderResult({\n result: state.result,\n status: resultStatus,\n order: state.result?.order,\n continueShoppingUrl,\n onRetry: () => void actions.retryPayment()\n })\n ) : (\n <ResultStep continueShoppingUrl={continueShoppingUrl} />\n )}\n </div>\n ) : (\n <>\n <div className={`szc-layout${cartEmpty ? ' szc-layout--full' : ''}`}>\n <main className=\"szc-main\">\n {error && !emptyCartError ? <ErrorBanner message={error.message} /> : null}\n\n {step === 'cart' ? (\n <CartStep\n continueShoppingUrl={continueShoppingUrl}\n emptyCart={emptyCart}\n renderEmpty={renderEmptyCart}\n />\n ) : null}\n {step === 'shipping' ? <ShippingStep /> : null}\n {step === 'payment' ? <PaymentStep /> : null}\n\n {actionsVisible && backButtonNode ? (\n <div className=\"szc-back-row\">{backButtonNode}</div>\n ) : null}\n </main>\n\n {!cartEmpty ? (\n <div className=\"szc-side\">\n <OrderSummary />\n {actionsVisible ? <div className=\"szc-side__cta\">{nextButtonNode}</div> : null}\n </div>\n ) : null}\n </div>\n </>\n )}\n\n {actionsVisible ? (\n <div className=\"szc-footer-bar\">\n <div className=\"szc-footer\">\n <div className=\"szc-footer__total\">\n <span className=\"szc-footer__total-label\">{t.total}</span>\n <span className=\"szc-footer__total-value\">{money(summary.total)}</span>\n </div>\n <div className=\"szc-footer__actions\">{nextButtonNode}</div>\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useRef } from 'react';\nimport type React from 'react';\nimport { CheckoutProvider, useCheckout, useSazitoClient } from '../react';\nimport {\n SazitoCheckout,\n type EmptyCartOptions,\n type RenderButtonProps,\n type RenderEmptyCartProps,\n type RenderResultProps,\n} from '../ui';\nimport { parsePaymentReturnUrl, stripPaymentStatusReturn } from '../core';\nimport type {\n CheckoutConfig,\n CheckoutCredentials,\n CheckoutPaymentReturn,\n PaymentReturnResolution\n} from '../core';\n\nexport interface SazitoCheckoutPageProps {\n credentials?: CheckoutCredentials;\n config?: CheckoutConfig;\n /** Parsed nested gateway callback. Prefer `parsePaymentReturn()` to create it. */\n paymentReturn?: CheckoutPaymentReturn;\n /** @deprecated Prefer `paymentReturn`; retained for query-only callbacks. */\n paymentReturnParams?: Record<string, string>;\n className?: string;\n renderNextButton?: (props: RenderButtonProps) => React.ReactNode;\n renderBackButton?: (props: RenderButtonProps) => React.ReactNode;\n renderEmptyCart?: (props: RenderEmptyCartProps) => React.ReactNode;\n renderResult?: (props: RenderResultProps) => React.ReactNode;\n emptyCart?: EmptyCartOptions;\n}\n\nexport function SazitoCheckoutPage({\n credentials,\n config,\n paymentReturn,\n paymentReturnParams,\n className,\n renderNextButton,\n renderBackButton,\n renderEmptyCart,\n renderResult,\n emptyCart,\n}: SazitoCheckoutPageProps) {\n // The explicit server-parsed value remains authoritative. As a fallback,\n // detect Sazito's well-known nested callback in the browser. This prevents a\n // caught callback route from silently booting a fresh checkout when the host\n // forgot to forward its catch-all params.\n const detectedPaymentReturn =\n paymentReturn == null &&\n paymentReturnParams == null &&\n typeof window !== 'undefined'\n ? parsePaymentReturnUrl(window.location.href)\n : undefined;\n const resolvedPaymentReturn = paymentReturn ?? detectedPaymentReturn;\n const returnParams = resolvedPaymentReturn?.params ?? paymentReturnParams;\n const returnResolution = resolvedPaymentReturn?.resolution ?? 'callback';\n const isReturn = returnParams != null;\n const checkoutCredentials = resolvedPaymentReturn\n ? { ...credentials, payment: resolvedPaymentReturn.payment }\n : credentials;\n const client = useSazitoClient();\n\n return (\n <CheckoutProvider\n client={client}\n credentials={checkoutCredentials}\n config={config}\n autoStart={!isReturn}\n >\n {returnParams ? (\n <ResolveReturn params={returnParams} resolution={returnResolution} />\n ) : null}\n <SazitoCheckout\n theme={config?.theme}\n continueShoppingUrl={config?.continueShoppingUrl}\n className={className}\n renderNextButton={renderNextButton}\n renderBackButton={renderBackButton}\n renderEmptyCart={renderEmptyCart}\n renderResult={renderResult}\n emptyCart={emptyCart}\n />\n </CheckoutProvider>\n );\n}\n\nfunction ResolveReturn({\n params,\n resolution\n}: {\n params: Record<string, string>;\n resolution: PaymentReturnResolution;\n}) {\n const { actions } = useCheckout();\n const resolvedKey = useRef<string | null>(null);\n const paramsKey = JSON.stringify(\n Object.entries(params).sort(([a], [b]) => a.localeCompare(b))\n );\n\n useEffect(() => {\n if (resolvedKey.current === paramsKey) return;\n resolvedKey.current = paramsKey;\n void actions.resolvePaymentReturn(params, resolution);\n if (typeof window !== 'undefined') {\n const cleanUrl = stripPaymentStatusReturn(window.location.href);\n if (cleanUrl) window.history.replaceState(window.history.state, '', cleanUrl);\n }\n }, [actions, params, paramsKey, resolution]);\n return null;\n}\n"],"names":["isValidElement","_jsx","_Fragment","cloneElement","_jsxs","TruckIcon","useCheckout","CheckIcon","formatPercent","useMemo","sortCartItemsNewestFirst","useState","toPersianDigits","useRef","useEffect","isValidIranianMobile","isDigitalServiceGroup","useCallback","normalizeIranianPhone","ICON_PROPS","isImageUrl","paymentMethodInfo","formatNumber","parsePaymentReturnUrl","useSazitoClient","CheckoutProvider","stripPaymentStatusReturn"],"mappings":"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"}
|