@rovela-ai/sdk 0.19.6 → 0.19.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/admin/components/AdminSelect.d.ts +11 -0
  2. package/dist/admin/components/AdminSelect.d.ts.map +1 -1
  3. package/dist/admin/components/AdminSelect.js +60 -4
  4. package/dist/admin/components/AdminSelect.js.map +1 -1
  5. package/dist/admin/components/CustomerTable.d.ts.map +1 -1
  6. package/dist/admin/components/CustomerTable.js +1 -1
  7. package/dist/admin/components/CustomerTable.js.map +1 -1
  8. package/dist/admin/components/OrderTable.d.ts.map +1 -1
  9. package/dist/admin/components/OrderTable.js +1 -1
  10. package/dist/admin/components/OrderTable.js.map +1 -1
  11. package/dist/admin/components/UsersTable.d.ts.map +1 -1
  12. package/dist/admin/components/UsersTable.js +66 -9
  13. package/dist/admin/components/UsersTable.js.map +1 -1
  14. package/dist/admin/index.d.ts +2 -2
  15. package/dist/admin/index.d.ts.map +1 -1
  16. package/dist/admin/index.js +6 -1
  17. package/dist/admin/index.js.map +1 -1
  18. package/dist/admin/styles/admin-theme.css +20 -0
  19. package/dist/cart/CartProvider.d.ts.map +1 -1
  20. package/dist/cart/CartProvider.js +31 -8
  21. package/dist/cart/CartProvider.js.map +1 -1
  22. package/dist/cart/store.d.ts +24 -4
  23. package/dist/cart/store.d.ts.map +1 -1
  24. package/dist/cart/store.js +24 -4
  25. package/dist/cart/store.js.map +1 -1
  26. package/dist/checkout/api/manual.d.ts.map +1 -1
  27. package/dist/checkout/api/manual.js +9 -4
  28. package/dist/checkout/api/manual.js.map +1 -1
  29. package/dist/checkout/components/CheckoutFlow.d.ts.map +1 -1
  30. package/dist/checkout/components/CheckoutFlow.js +19 -6
  31. package/dist/checkout/components/CheckoutFlow.js.map +1 -1
  32. package/dist/checkout/components/CheckoutSuccess.js +1 -1
  33. package/dist/checkout/components/CheckoutSuccess.js.map +1 -1
  34. package/dist/checkout/components/OrderTimeline.d.ts +5 -1
  35. package/dist/checkout/components/OrderTimeline.d.ts.map +1 -1
  36. package/dist/checkout/components/OrderTimeline.js +18 -5
  37. package/dist/checkout/components/OrderTimeline.js.map +1 -1
  38. package/dist/checkout/components/ShippingForm.d.ts +1 -1
  39. package/dist/checkout/components/ShippingForm.d.ts.map +1 -1
  40. package/dist/checkout/components/ShippingForm.js +15 -11
  41. package/dist/checkout/components/ShippingForm.js.map +1 -1
  42. package/dist/checkout/components/ShippingOptions.js +1 -1
  43. package/dist/checkout/components/ShippingOptions.js.map +1 -1
  44. package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
  45. package/dist/checkout/server/create-checkout-session.js +213 -219
  46. package/dist/checkout/server/create-checkout-session.js.map +1 -1
  47. package/dist/checkout/server/pricing.d.ts +16 -0
  48. package/dist/checkout/server/pricing.d.ts.map +1 -1
  49. package/dist/checkout/server/pricing.js +16 -0
  50. package/dist/checkout/server/pricing.js.map +1 -1
  51. package/dist/checkout/types.d.ts +15 -0
  52. package/dist/checkout/types.d.ts.map +1 -1
  53. package/dist/core/db/index.d.ts +2 -2
  54. package/dist/core/db/index.d.ts.map +1 -1
  55. package/dist/core/db/index.js +4 -0
  56. package/dist/core/db/index.js.map +1 -1
  57. package/dist/core/db/queries.d.ts +35 -35
  58. package/dist/core/db/queries.d.ts.map +1 -1
  59. package/dist/core/db/queries.js +24 -0
  60. package/dist/core/db/queries.js.map +1 -1
  61. package/dist/core/db/schema.d.ts +5 -5
  62. package/dist/core/i18n/messages/en.d.ts.map +1 -1
  63. package/dist/core/i18n/messages/en.js +2 -0
  64. package/dist/core/i18n/messages/en.js.map +1 -1
  65. package/dist/core/i18n/messages/fr.d.ts.map +1 -1
  66. package/dist/core/i18n/messages/fr.js +2 -0
  67. package/dist/core/i18n/messages/fr.js.map +1 -1
  68. package/dist/core/server/index.d.ts +2 -2
  69. package/dist/core/server/index.d.ts.map +1 -1
  70. package/dist/core/server/index.js +4 -0
  71. package/dist/core/server/index.js.map +1 -1
  72. package/docs/changelog/epoch-02-platform-commerce.md +11 -0
  73. package/docs/changelog/epoch-06-mobile-integrity.md +96 -1
  74. package/package.json +1 -1
  75. package/templates/store-template/.claude/skills/build-feature/SKILL.md +2 -0
  76. package/templates/store-template/.claude/skills/override-sdk-component/SKILL.md +7 -0
  77. package/templates/store-template/app/account/orders/[id]/invoice/page.tsx +3 -1
  78. package/templates/store-template/app/account/orders/[id]/page.tsx +1 -0
  79. package/templates/store-template/app/account/orders/page.tsx +10 -1
  80. package/templates/store-template/app/cart/page.tsx +8 -4
  81. package/templates/store-template/app/checkout/page.tsx +9 -4
  82. package/templates/store-template/package.json +2 -2
@@ -61,6 +61,6 @@ export { getProducts, createProduct, getProduct, updateProduct, deleteProduct, a
61
61
  export { useAdminAuth, useAdminSession, useAdminStats, useAdminProducts, useAdminProductMetrics, useAdminOrders, useAdminCategories, useAdminCustomers, useAdminCustomerGroups, useAdminPaymentMethods, useAdminDiscounts, useAdminLocations, useDirtyState, useBulkSelection, runChunkedBulk, BULK_CHUNK_SIZE, useAdminUsers, useAdminPermissions, useAdminMe, useLinkedCustomerStatus, useSetupGuide, } from './hooks';
62
62
  export type { AdminSessionPayload, AdminSessionStatus, UseAdminSessionReturn, SetupTaskId as SetupGuideTaskId, SetupTier as SetupGuideTier, SetupTask as SetupGuideTaskItem, SetupGuideData, ManualMarkKey as SetupGuideManualMarkKey, } from './hooks';
63
63
  export type { CategoryTreeItem } from './hooks/useAdminCategories';
64
- export { AdminGuard, AdminLoginForm, AdminLayout, AdminNav, ExampleContentBanner, StatsCards, RecentOrders, LowStockAlert, RevenueChart, OrderStatusChart, PrimaryMetricsRow, SecondaryMetricsRow, PeriodSelector, SetupGuide, ProductTable, ProductForm, InventoryEditor, CategorySelect, CategoryForm, SEOPreview, TagInput, VariantManager, OrderTable, OrderDetails, RefundDialog, StoreSettings, LogoUpload, FaviconUpload, BrandingAssetUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, LocationsManager, AdminDateTimePicker, FilesManager, EmailsManager, MediaLibraryPicker, ShippingSettings, TaxSettings, CustomerTable, CustomerDetails, CustomerGroupsManager, UsersTable, AdminForgotPasswordForm, AdminResetPasswordForm, InviteUserDialog, AdminAcceptInviteForm, AdminAccountPage, PermissionsMatrix, DeleteConfirmDialog, BulkActionBar, AdminPageHeader, AdminModal, AdminEmptyState, AdminPagination, AdminSearchInput, AdminSwitch, OrderStatusBadge, orderStatusBadgeClass, orderStatusLabel, AdminSaveBar, AdminToaster, adminToast, AdminTopBar, AdminAuthShell, AdminBrandTile, } from './components';
65
- export type { RevenueChartProps, OrderStatusChartProps, PrimaryMetricsRowProps, SecondaryMetricsRowProps, PeriodSelectorProps, CategorySelectProps, CategoryFormProps, SEOPreviewProps, TagInputProps, VariantManagerProps, VariantOption, VariantData, DeleteConfirmDialogProps, LogoUploadProps, FaviconUploadProps, BrandingAssetUploadProps, PermissionsMatrixProps, AdminPageHeaderProps, AdminTopBarProps, AdminAuthShellProps, AdminBrandTileProps, AdminModalProps, AdminEmptyStateProps, AdminPaginationProps, AdminSearchInputProps, AdminSwitchProps, AdminSaveBarProps, AdminToastAction, } from './components';
64
+ export { AdminGuard, AdminLoginForm, AdminLayout, AdminNav, ExampleContentBanner, StatsCards, RecentOrders, LowStockAlert, RevenueChart, OrderStatusChart, PrimaryMetricsRow, SecondaryMetricsRow, PeriodSelector, SetupGuide, ProductTable, ProductForm, InventoryEditor, CategorySelect, CategoryForm, SEOPreview, TagInput, VariantManager, OrderTable, OrderDetails, RefundDialog, StoreSettings, LogoUpload, FaviconUpload, BrandingAssetUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, LocationsManager, AdminDateTimePicker, FilesManager, EmailsManager, MediaLibraryPicker, ShippingSettings, TaxSettings, CustomerTable, CustomerDetails, CustomerGroupsManager, UsersTable, AdminForgotPasswordForm, AdminResetPasswordForm, InviteUserDialog, AdminAcceptInviteForm, AdminAccountPage, PermissionsMatrix, DeleteConfirmDialog, BulkActionBar, AdminPageHeader, AdminModal, AdminEmptyState, AdminPagination, AdminSearchInput, AdminSwitch, AdminSelect, OrderStatusBadge, orderStatusBadgeClass, orderStatusLabel, AdminSaveBar, AdminToaster, adminToast, AdminTopBar, AdminAuthShell, AdminBrandTile, } from './components';
65
+ export type { RevenueChartProps, OrderStatusChartProps, PrimaryMetricsRowProps, SecondaryMetricsRowProps, PeriodSelectorProps, CategorySelectProps, CategoryFormProps, SEOPreviewProps, TagInputProps, VariantManagerProps, VariantOption, VariantData, DeleteConfirmDialogProps, AdminSelectProps, AdminSelectOption, LogoUploadProps, FaviconUploadProps, BrandingAssetUploadProps, PermissionsMatrixProps, AdminPageHeaderProps, AdminTopBarProps, AdminAuthShellProps, AdminBrandTileProps, AdminModalProps, AdminEmptyStateProps, AdminPaginationProps, AdminSearchInputProps, AdminSwitchProps, AdminSaveBarProps, AdminToastAction, } from './components';
66
66
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
@@ -148,7 +148,12 @@ DeleteConfirmDialog, BulkActionBar,
148
148
  // Page chrome — THE page header every admin route opens with
149
149
  AdminPageHeader,
150
150
  // THE save affordance for document pages (attention band)
151
- AdminModal, AdminEmptyState, AdminPagination, AdminSearchInput, AdminSwitch, OrderStatusBadge, orderStatusBadgeClass, orderStatusLabel, AdminSaveBar,
151
+ AdminModal, AdminEmptyState, AdminPagination, AdminSearchInput, AdminSwitch,
152
+ // THE dropdown. Every admin select is this one — it was used internally by
153
+ // ProductForm/TaxSettings but never exported, so a store (or a custom page
154
+ // Claude writes) literally could not follow the convention and fell back to
155
+ // a bare <select>, which renders with the browser's chrome, not the admin's.
156
+ AdminSelect, OrderStatusBadge, orderStatusBadgeClass, orderStatusLabel, AdminSaveBar,
152
157
  // THE notification stack (events only — see the toaster grammar)
153
158
  AdminToaster, adminToast,
154
159
  // Identity top bar (2026-07 sidebar revamp)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
@@ -3000,6 +3000,26 @@
3000
3000
  padding: var(--admin-space-1);
3001
3001
  }
3002
3002
 
3003
+ /* Group heading inside the dropdown — the listbox equivalent of <optgroup>.
3004
+ Presentational only: not focusable, not an option. */
3005
+ /* Portaled dropdown. The menu is rendered into <body> so no `overflow-hidden`
3006
+ ancestor (.admin-card, a table's overflow-x wrapper) can clip it — position
3007
+ comes from the trigger's rect, set inline by the component. `popover` level
3008
+ sits above the modal, so a select inside a dialog still opens over it. */
3009
+ .rovela-admin-theme .admin-select-portal,
3010
+ .admin-select-portal {
3011
+ position: fixed;
3012
+ z-index: var(--admin-z-popover, 300);
3013
+ }
3014
+
3015
+ .rovela-admin-theme .admin-select-group {
3016
+ color: hsl(var(--admin-foreground-muted));
3017
+ user-select: none;
3018
+ }
3019
+ .rovela-admin-theme .admin-select-group + .admin-select-item {
3020
+ margin-top: 0;
3021
+ }
3022
+
3003
3023
  .rovela-admin-theme .admin-select-item {
3004
3024
  display: flex;
3005
3025
  align-items: center;
@@ -1 +1 @@
1
- {"version":3,"file":"CartProvider.d.ts","sourceRoot":"","sources":["../../src/cart/CartProvider.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAO3D,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,iBAAiB,2CAkBvE;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAqBzC"}
1
+ {"version":3,"file":"CartProvider.d.ts","sourceRoot":"","sources":["../../src/cart/CartProvider.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAc5E,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,iBAAiB,2CAoCvE;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAqBzC"}
@@ -6,8 +6,13 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
6
6
  * Optional provider for SSR-safe cart hydration.
7
7
  * Ensures cart state is properly hydrated from localStorage after mount.
8
8
  */
9
- import { useEffect, useState } from 'react';
9
+ import { useEffect, useLayoutEffect, useState } from 'react';
10
10
  import { hydrateCart, isCartHydrated } from './store';
11
+ /**
12
+ * `useLayoutEffect` on the server logs a React warning, so fall back to
13
+ * `useEffect` there (it never runs on the server anyway).
14
+ */
15
+ const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
11
16
  // =============================================================================
12
17
  // Component
13
18
  // =============================================================================
@@ -37,20 +42,38 @@ import { hydrateCart, isCartHydrated } from './store';
37
42
  * ```
38
43
  */
39
44
  export function CartProvider({ children, onHydrated }) {
40
- // Pattern B post-mount localStorage hydration to avoid SSR mismatch.
41
- // Alternative is useSyncExternalStore against the zustand cart store.
42
- useEffect(() => {
43
- // Check if already hydrated (e.g., from a previous mount)
45
+ // Hydration runs in a LAYOUT effect, and that is load-bearing (do not
46
+ // "simplify" it back to useEffect).
47
+ //
48
+ // React runs every layout effect before ANY passive effect, and before the
49
+ // browser paints. A passive effect here was wrong twice over, because React
50
+ // runs passive effects child-first:
51
+ //
52
+ // 1. A page's own effect ran BEFORE this one. The checkout page redirects
53
+ // to /cart when the cart is empty — so it saw a not-yet-hydrated cart
54
+ // and ejected a paying customer out of checkout on any direct load
55
+ // (bookmark, emailed link, refresh).
56
+ // 2. Hydration landed after paint, so /cart, /checkout, CheckoutFlow and
57
+ // CartDrawer each flashed an "empty cart" frame at a shopper who had a
58
+ // full one.
59
+ //
60
+ // The persisted storage is synchronous localStorage (see store.ts), so
61
+ // `rehydrate()` sets state synchronously and the cart is populated before
62
+ // the first paint. If that storage ever became async this degrades to the
63
+ // old post-paint behavior — never anything worse.
64
+ useIsomorphicLayoutEffect(() => {
65
+ // Already hydrated (e.g. a remount) — nothing to do.
44
66
  if (isCartHydrated()) {
45
67
  onHydrated?.();
46
68
  return;
47
69
  }
48
- // Hydrate from localStorage
49
70
  hydrateCart();
50
71
  onHydrated?.();
51
72
  }, [onHydrated]);
52
- // Render children immediately - cart hooks will return empty state
53
- // until hydration completes, preventing SSR mismatch
73
+ // Children render immediately. Before hydration the cart hooks report an
74
+ // empty cart exactly what the server rendered — so hydration always
75
+ // matches. NOTHING may read localStorage during render (that is what
76
+ // `getCartItemsWithFallback` did, and it was the SSR mismatch).
54
77
  return _jsx(_Fragment, { children: children });
55
78
  }
56
79
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"CartProvider.js","sourceRoot":"","sources":["../../src/cart/CartProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAiBrD,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAqB;IACtE,uEAAuE;IACvE,sEAAsE;IACtE,SAAS,CAAC,GAAG,EAAE;QACb,0DAA0D;QAC1D,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,UAAU,EAAE,EAAE,CAAA;YACd,OAAM;QACR,CAAC;QAED,4BAA4B;QAC5B,WAAW,EAAE,CAAA;QACb,UAAU,EAAE,EAAE,CAAA;IAChB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,mEAAmE;IACnE,qDAAqD;IACrD,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACxB,CAAC;AAED,gFAAgF;AAChF,OAAO;AACP,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE/C,SAAS,CAAC,GAAG,EAAE;QACb,kCAAkC;QAClC,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,cAAc,EAAE,EAAE,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAA;QAED,gBAAgB;QAChB,cAAc,EAAE,CAAA;QAEhB,+CAA+C;QAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAE/C,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,QAAQ,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"CartProvider.js","sourceRoot":"","sources":["../../src/cart/CartProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD;;;GAGG;AACH,MAAM,yBAAyB,GAC7B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAA;AAiB7D,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAqB;IACtE,sEAAsE;IACtE,oCAAoC;IACpC,EAAE;IACF,2EAA2E;IAC3E,4EAA4E;IAC5E,oCAAoC;IACpC,EAAE;IACF,4EAA4E;IAC5E,2EAA2E;IAC3E,wEAAwE;IACxE,0CAA0C;IAC1C,2EAA2E;IAC3E,4EAA4E;IAC5E,iBAAiB;IACjB,EAAE;IACF,uEAAuE;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,kDAAkD;IAClD,yBAAyB,CAAC,GAAG,EAAE;QAC7B,qDAAqD;QACrD,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,UAAU,EAAE,EAAE,CAAA;YACd,OAAM;QACR,CAAC;QAED,WAAW,EAAE,CAAA;QACb,UAAU,EAAE,EAAE,CAAA;IAChB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,yEAAyE;IACzE,sEAAsE;IACtE,qEAAqE;IACrE,gEAAgE;IAChE,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACxB,CAAC;AAED,gFAAgF;AAChF,OAAO;AACP,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE/C,SAAS,CAAC,GAAG,EAAE;QACb,kCAAkC;QAClC,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,cAAc,EAAE,EAAE,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAA;QAED,gBAAgB;QAChB,cAAc,EAAE,CAAA;QAEhB,+CAA+C;QAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QAE/C,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -135,14 +135,34 @@ export declare function isCartHydrated(): boolean;
135
135
  * This helper reads directly from localStorage if the store instance is empty,
136
136
  * ensuring reliable cart data regardless of which module instance is used.
137
137
  *
138
+ * ⚠️ EVENT HANDLERS ONLY — NEVER CALL THIS DURING RENDER.
139
+ *
140
+ * It reads localStorage synchronously. The server has no localStorage, so it
141
+ * returns [] there and the full cart on the client's first render: that is a
142
+ * React hydration mismatch, and React throws away the tree. (It also calls
143
+ * `persist.rehydrate()`, a store write, which must never happen in a render.)
144
+ * Calling it from a page body is what made every store's /cart page throw
145
+ * "Hydration failed because the server rendered HTML didn't match the client".
146
+ *
147
+ * To read the cart while rendering, use the hook — it reports an empty cart
148
+ * until CartProvider hydrates, which is exactly what the server rendered:
149
+ *
150
+ * const items = useCart((state) => state.items)
151
+ *
152
+ * This helper's correct home is the checkout submit path (see useCheckout),
153
+ * where it runs inside a click handler and guarantees the ORDER is built from
154
+ * the real cart even in the pathological duplicated-instance case.
155
+ *
138
156
  * @example
139
157
  * ```tsx
140
158
  * import { getCartItemsWithFallback } from '@rovela-ai/sdk/cart'
141
159
  *
142
- * function CartPage() {
143
- * const items = getCartItemsWithFallback()
144
- * const itemCount = items.reduce((sum, item) => sum + item.quantity, 0)
145
- * // ...
160
+ * function CheckoutButton() {
161
+ * const onClick = () => {
162
+ * const items = getCartItemsWithFallback() // inside a handler
163
+ * void submit(items)
164
+ * }
165
+ * return <button onClick={onClick}>Checkout</button>
146
166
  * }
147
167
  * ```
148
168
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/cart/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAqBtE,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,EAAE,CACP,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,EAC/B,QAAQ,CAAC,EAAE,MAAM,KACd,IAAI,CAAA;IAET;;;OAGG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1D,mCAAmC;IACnC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAEpC,oCAAoC;IACpC,SAAS,EAAE,MAAM,IAAI,CAAA;IAErB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,IAAI,CAAA;IAEpB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAA;IAErB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAA;IAEtB;;;;;OAKG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAEjD,oCAAoC;IACpC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAErC,iDAAiD;IACjD,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,wDAAwD;IACxD,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAA;IAExE,wCAAwC;IACxC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;CAC5D;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAA;AA+C7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;EAiMnB,CAAA;AAMD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,IAAI,QAAQ,EAAE,CAiCrD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/cart/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAqBtE,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,EAAE,CACP,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,EAC/B,QAAQ,CAAC,EAAE,MAAM,KACd,IAAI,CAAA;IAET;;;OAGG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1D,mCAAmC;IACnC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAEpC,oCAAoC;IACpC,SAAS,EAAE,MAAM,IAAI,CAAA;IAErB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,IAAI,CAAA;IAEpB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAA;IAErB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAA;IAEtB;;;;;OAKG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAEjD,oCAAoC;IACpC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAErC,iDAAiD;IACjD,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,wDAAwD;IACxD,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAA;IAExE,wCAAwC;IACxC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;CAC5D;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAA;AA+C7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;EAiMnB,CAAA;AAMD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,wBAAwB,IAAI,QAAQ,EAAE,CAiCrD"}
@@ -282,14 +282,34 @@ export function isCartHydrated() {
282
282
  * This helper reads directly from localStorage if the store instance is empty,
283
283
  * ensuring reliable cart data regardless of which module instance is used.
284
284
  *
285
+ * ⚠️ EVENT HANDLERS ONLY — NEVER CALL THIS DURING RENDER.
286
+ *
287
+ * It reads localStorage synchronously. The server has no localStorage, so it
288
+ * returns [] there and the full cart on the client's first render: that is a
289
+ * React hydration mismatch, and React throws away the tree. (It also calls
290
+ * `persist.rehydrate()`, a store write, which must never happen in a render.)
291
+ * Calling it from a page body is what made every store's /cart page throw
292
+ * "Hydration failed because the server rendered HTML didn't match the client".
293
+ *
294
+ * To read the cart while rendering, use the hook — it reports an empty cart
295
+ * until CartProvider hydrates, which is exactly what the server rendered:
296
+ *
297
+ * const items = useCart((state) => state.items)
298
+ *
299
+ * This helper's correct home is the checkout submit path (see useCheckout),
300
+ * where it runs inside a click handler and guarantees the ORDER is built from
301
+ * the real cart even in the pathological duplicated-instance case.
302
+ *
285
303
  * @example
286
304
  * ```tsx
287
305
  * import { getCartItemsWithFallback } from '@rovela-ai/sdk/cart'
288
306
  *
289
- * function CartPage() {
290
- * const items = getCartItemsWithFallback()
291
- * const itemCount = items.reduce((sum, item) => sum + item.quantity, 0)
292
- * // ...
307
+ * function CheckoutButton() {
308
+ * const onClick = () => {
309
+ * const items = getCartItemsWithFallback() // inside a handler
310
+ * void submit(items)
311
+ * }
312
+ * return <button onClick={onClick}>Checkout</button>
293
313
  * }
294
314
  * ```
295
315
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/cart/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAEvD,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,WAAW,GAAG,aAAa,CAAA;AACjC,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,uEAAuE;AACvE,0EAA0E;AAC1E,wEAAwE;AACxE,iCAAiC;AACjC,MAAM,sBAAsB,GAAG,EAAE,CAAA;AACjC,MAAM,8BAA8B,GAAG,GAAG,CAAA;AA4F1C,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,kBAAkB,CAAC,SAAiB,EAAE,SAAkB;IAC/D,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAiB;IAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,KAAiB;IAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACzE,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAgB,EAAE,OAA+B;IACrE,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3D,OAAO,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;YACtC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAA;IACnB,CAAC;IACD,OAAO,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;QACtC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAA;AACnB,CAAC;AAED,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,EAAa,CACxC,OAAO,CACL,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACb,0EAA0E;IAC1E,QAAQ;IACR,0EAA0E;IAC1E,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,KAAK;IAEb,0EAA0E;IAC1E,6CAA6C;IAC7C,0EAA0E;IAC1E,IAAI,SAAS;QACX,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,EAAE,CAAC,SAAiB,EAAE,SAAkB,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACvD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,EAAE,CAAC,SAAiB,EAAE,SAAkB,EAAE,EAAE;QACjD,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,SAAS,CAAA;IAC1D,CAAC;IAED,0EAA0E;IAC1E,UAAU;IACV,0EAA0E;IAC1E,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAE5C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;YAEzE,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACvB,mCAAmC;gBACnC,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;gBACrC,YAAY,CAAC,aAAa,CAAC,GAAG;oBAC5B,GAAG,YAAY,CAAC,aAAa,CAAC;oBAC9B,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,QAAQ,GAAG,QAAQ;iBAC1D,CAAA;gBACD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;YAChC,CAAC;YAED,yBAAyB;YACzB,MAAM,OAAO,GAAa;gBACxB,EAAE,EAAE,MAAM;gBACV,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,EAAE,EAAE;gBACtB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;gBAClE,KAAK;gBACL,QAAQ;gBACR,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1B,UAAU,EAAE,OAAO,EAAE,UAAU;aAChC,CAAA;YAED,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,sEAAsE;QACtE,6CAA6C;QAC7C,SAAS,CAAC;YACR,KAAK,EAAE,aAAa;YACpB,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,IAAI;YAC/B,QAAQ;YACR,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,QAAQ,CAAC;YAC/C,QAAQ,EAAE,KAAK,EAAE,yDAAyD;YAC1E,IAAI,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;SACrE,CAAC,CAAA;IACJ,CAAC;IAED,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QACnC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,uCAAuC;YACvC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACxB,OAAM;QACR,CAAC;QAED,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAClD;SACF,CAAC,CAAC,CAAA;IACL,CAAC;IAED,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;QACrB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;SACxD,CAAC,CAAC,CAAA;IACL,CAAC;IAED,SAAS,EAAE,GAAG,EAAE;QACd,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACpB,CAAC;IAED,QAAQ,EAAE,GAAG,EAAE;QACb,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,SAAS,EAAE,GAAG,EAAE;QACd,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,UAAU,EAAE,GAAG,EAAE;QACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,8BAA8B,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,mCAAmC,8BAA8B,eAAe,KAAK,CAAC,MAAM,GAAG,CAChG,CAAA;QACH,CAAC;QACD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;YACzC,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;gBAC7E,MAAM,IAAI,KAAK,CACb,sCAAsC,sBAAsB,6CAA6C,CAC1G,CAAA;YACH,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAA;QAC1D,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;QACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC1C,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;YAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;YAChB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC3B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,aAAa,EAAE,GAAG,EAAE;QAClB,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IACvB,CAAC;CACF,CAAC,EACF;IACE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE;QAC9B,yCAAyC;QACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;gBACnB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;gBACjB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;aACrB,CAAA;QACH,CAAC;QACD,OAAO,YAAY,CAAA;IACrB,CAAC,CAAC;IACF,mEAAmE;IACnE,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC;IACF,8DAA8D;IAC9D,aAAa,EAAE,IAAI;IACnB,8BAA8B;IAC9B,EAAE;IACF,2DAA2D;IAC3D,8DAA8D;IAC9D,gEAAgE;IAChE,OAAO,EAAE,CAAC,cAAuB,EAAE,WAAmB,EAAE,EAAE;QACxD,+DAA+D;QAC/D,gEAAgE;QAChE,6BAA6B;QAC7B,MAAM,KAAK,GAAG,CAAC,cAAc,IAAI,EAAE,CAAuB,CAAA;QAC1D,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;aAClB,CAAA;QAChB,CAAC;QACD,OAAO,cAA2B,CAAA;IACpC,CAAC;CACF,CACF,CACF,CAAA;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;AACtC,CAAC;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,wBAAwB;IACtC,sBAAsB;IACtB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAA;IAE3C,+BAA+B;IAC/B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,0DAA0D;IAC1D,8CAA8C;IAC9C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YAChD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACjC,MAAM,KAAK,GAAe,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAA;gBACpD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,sDAAsD;oBACtD,gDAAgD;oBAChD,0DAA0D;oBAC1D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;wBACnC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;oBAC7B,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/cart/store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manual.d.ts","sourceRoot":"","sources":["../../../src/checkout/api/manual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAmBvD,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,UAAU,CAAA;AA8BlF,UAAU,sBAAsB;IAC9B,OAAO,EAAE,IAAI,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAClE;AAUD,wBAAsB,IAAI,CACxB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC,CAqPlE"}
1
+ {"version":3,"file":"manual.d.ts","sourceRoot":"","sources":["../../../src/checkout/api/manual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAmBvD,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,UAAU,CAAA;AA8BlF,UAAU,sBAAsB;IAC9B,OAAO,EAAE,IAAI,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAClE;AAUD,wBAAsB,IAAI,CACxB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC,CA0PlE"}
@@ -20,7 +20,7 @@
20
20
  import { randomUUID } from 'crypto';
21
21
  import { NextResponse } from 'next/server';
22
22
  import { findSettings, findPaymentMethodById, isVisibleToGroup, recordDiscountRedemption, } from '../../core/db/queries';
23
- import { buildQuote, PricingError } from '../server/pricing';
23
+ import { buildQuote, PricingError, CHECKOUT_PRICING_MODE } from '../server/pricing';
24
24
  import { resolveCheckoutCustomer } from '../server/checkout-customer';
25
25
  import { createOrderFromCheckout } from '../server/order-service';
26
26
  import { sendOrderConfirmation, formatPrice, formatDate, formatOrderNumber, } from '../../emails';
@@ -67,15 +67,20 @@ export async function POST(request) {
67
67
  return bad('This payment method is not available', 400);
68
68
  }
69
69
  // ── The Quote: items → (discounts) → shipping → tax → total ─────────────
70
- // The pricing core recomputes EVERYTHING server-side ('strict': client
71
- // prices are used for nothing). See checkout/server/pricing.ts.
70
+ // The SAME engine, in the SAME mode, as the Stripe path. That sameness is
71
+ // the whole point of §55: one cart must cost the same whether it is paid by
72
+ // card or by wire. The mode used to differ per path ('strict' here, 'floor'
73
+ // there) — so the same cart was priced by two different rules depending on
74
+ // how you chose to pay, and a configured robot that could be paid for by
75
+ // card was rejected outright on bank transfer. It is one constant now, and
76
+ // it cannot drift again. See CHECKOUT_PRICING_MODE.
72
77
  let quote;
73
78
  try {
74
79
  quote = await buildQuote({
75
80
  items: body.items,
76
81
  shippingAddress: body.shippingAddress,
77
82
  selectedShipping: body.selectedShipping,
78
- pricingMode: 'strict',
83
+ pricingMode: CHECKOUT_PRICING_MODE,
79
84
  discountCode: body.discountCode ?? null,
80
85
  customerId: trustedCustomer?.id ?? null,
81
86
  customerGroupId: trustedCustomer?.groupId ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../src/checkout/api/manual.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../src/checkout/api/manual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAsCzD,SAAS,GAAG,CAAC,KAAa,EAAE,MAAM,GAAG,GAAG;IACtC,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,iBAA0B,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;AACnF,CAAC;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,OAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAA8B,CAAA;QAEhE,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;QAErC,qEAAqE;QACrE,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,eAAe,GAAG,MAAM,uBAAuB,EAAE,CAAA;QAEvD,MAAM,kBAAkB,GAAG,QAAQ,EAAE,aAAa,IAAI,IAAI,CAAA;QAC1D,IAAI,CAAC,kBAAkB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,OAAO,YAAY,CAAC,IAAI,CACtB;gBACE,KAAK,EAAE,yDAAyD;gBAChE,IAAI,EAAE,yBAAkC;aACzC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACtD,IAAI,CAAC,KAAK,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACzC,CAAC;QAED,2EAA2E;QAC3E,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACtE,OAAO,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAChE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,GAAG,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC;QACD,yEAAyE;QACzE,sEAAsE;QACtE,wCAAwC;QACxC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;YAChF,OAAO,GAAG,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC;QAED,2EAA2E;QAC3E,0EAA0E;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,2EAA2E;QAC3E,oDAAoD;QACpD,IAAI,KAAK,CAAA;QACT,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,UAAU,CACtB;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,WAAW,EAAE,qBAAqB;gBAClC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;gBACvC,UAAU,EAAE,eAAe,EAAE,EAAE,IAAI,IAAI;gBACvC,eAAe,EAAE,eAAe,EAAE,OAAO,IAAI,IAAI;gBACjD,aAAa,EAAE,KAAK;aACrB,EACD,EAAE,QAAQ,EAAE,CACb,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;gBAChC,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EACtC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CACvB,CAAA;YACH,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;QAED,MAAM,aAAa,GAAuB,KAAK,CAAC,KAAK,CAAA;QACrD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;QACzC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;QAEnC,4EAA4E;QAC5E,yEAAyE;QACzE,wDAAwD;QACxD,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAA;QACjF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAClE,MAAM,SAAS,GAAG,UAAU,OAAO,IAAI,UAAU,EAAE,EAAE,CAAA;QAErD,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,MAAM,oBAAoB,GAAY,KAAK,CAAC,aAAa;YACvD,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,IAAI,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACxF,QAAQ,EACN,IAAI,CAAC,eAAe,EAAE,QAAQ;oBAC9B,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;oBACpD,EAAE;gBACJ,GAAG,KAAK,CAAC,aAAa;aACvB;YACH,CAAC,CAAE,IAAI,CAAC,eAA2B,CAAA;QAErC,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;QAEvE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC;YACvD,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,SAAS;YACpB,KAAK;YACL,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,aAAa;YACvB,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;YAC7C,cAAc,EAAE,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YACzE,eAAe,EAAE,oBAAoB;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,qBAAqB,EAAE,SAAS;YAChC,UAAU,EAAE,eAAe,EAAE,EAAE;YAC/B,cAAc,EAAE,KAAK,CAAC,kBAAkB;YACxC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,SAAS;YACrD,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,QAAQ;YACzB,eAAe,EAAE,MAAM,CAAC,EAAE;YAC1B,kBAAkB,EAAE,MAAM,CAAC,IAAI;SAChC,CAAC,CAAA;QAEF,4EAA4E;QAC5E,uEAAuE;QACvE,6CAA6C;QAC7C,IAAI,KAAK,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,wBAAwB,CAAC;wBAC7B,UAAU,EAAE,OAAO,CAAC,EAAE;wBACtB,OAAO;wBACP,UAAU,EAAE,eAAe,EAAE,EAAE,IAAI,IAAI;wBACvC,KAAK;wBACL,WAAW,EAAE,OAAO,CAAC,WAAW;qBACjC,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAA;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,6BAA6B;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAA;YACtD,uEAAuE;YACvE,uEAAuE;YACvE,yCAAyC;YACzC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC/D,MAAM,UAAU,GAAqB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7D,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAClD,QAAQ,EAAE,CAAC,CAAC,KAAK;aAClB,CAAC,CAAC,CAAA;YACH,sEAAsE;YACtE,6CAA6C;YAC7C,MAAM,IAAI,GAAG,oBAAoB,CAAA;YACjC,MAAM,YAAY,GAAiB;gBACjC,IAAI,EAAE,KAAK,CAAC,aAAa;oBACvB,CAAC,CAAC,YAAY,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;oBAChF,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;gBAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAA;YACD,IAAI,CAAC;gBACH,MAAM,qBAAqB,CAAC;oBAC1B,MAAM,EAAE,WAAW;oBACnB,EAAE,EAAE,KAAK;oBACT,YAAY,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU;oBACjE,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;oBACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB;oBAChC,SAAS,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;oBACjC,aAAa,EAAE,aAAa,MAAM,CAAC,IAAI,EAAE;oBACzC,KAAK,EAAE,UAAU;oBACjB,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC;oBAC3D,QAAQ,EACN,KAAK,CAAC,aAAa,GAAG,CAAC;wBACrB,CAAC,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,EAAE;wBAC/D,CAAC,CAAC,SAAS;oBACf,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;oBAC7C,YAAY,EACV,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;oBAChF,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;oBACjD,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;oBACrD,eAAe,EAAE,YAAY;oBAC7B,gBAAgB,EAAE,GAAG,QAAQ,mBAAmB,OAAO,EAAE;oBACzD,mBAAmB,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;iBACtD,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAA;YACpE,CAAC;YAED,uEAAuE;YACvE,yEAAyE;YACzE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAA;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAA;YAClD,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC;wBAChB,KAAK,EAAE;4BACL,KAAK,EAAE,UAAU;4BACjB,UAAU,EAAE,SAAS;4BACrB,UAAU,EAAE,SAAS;4BACrB,QAAQ,EAAE,OAAO;4BACjB,WAAW,EAAE,UAAU;4BACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,IAAI,EAAE,mBAAmB;yBAC1B;wBACD,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,IAAI;qBACd,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAA;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,IAAI;YACb,OAAO;YACP,SAAS;YACT,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE;SACxF,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAA;QACpD,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,8CAA8C,EAAE,IAAI,EAAE,gBAAyB,EAAE,EAC1F,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckoutFlow.d.ts","sourceRoot":"","sources":["../../../src/checkout/components/CheckoutFlow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoBH,OAAO,KAAK,EACV,iBAAiB,EAMlB,MAAM,UAAU,CAAA;AA+TjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,gBAAuB,EACvB,QAAgB,EAChB,QAAQ,GACT,EAAE,iBAAiB,2CA0lCnB"}
1
+ {"version":3,"file":"CheckoutFlow.d.ts","sourceRoot":"","sources":["../../../src/checkout/components/CheckoutFlow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoBH,OAAO,KAAK,EACV,iBAAiB,EAMlB,MAAM,UAAU,CAAA;AA+TjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,QAAQ,EACR,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,gBAAuB,EACvB,QAAgB,EAChB,QAAQ,GACT,EAAE,iBAAiB,2CA4mCnB"}
@@ -411,9 +411,13 @@ export function CheckoutFlow({ onComplete, onCancel, customerEmail, customerId,
411
411
  }, [items, t]);
412
412
  // Handle address submission
413
413
  const handleAddressSubmit = useCallback(async (address) => {
414
+ // The form no longer collects the email (the Contact section does), so
415
+ // stamp it on here — the order and the payment session both read it off
416
+ // the shipping address.
417
+ const withEmail = { ...address, email: address.email || state.email || undefined };
414
418
  setState((prev) => ({
415
419
  ...prev,
416
- shippingAddress: address,
420
+ shippingAddress: withEmail,
417
421
  step: 'shipping',
418
422
  }));
419
423
  // §46 — `add_shipping_info` fires once per checkout when the shipping
@@ -427,7 +431,7 @@ export function CheckoutFlow({ onComplete, onCancel, customerEmail, customerId,
427
431
  });
428
432
  // Calculate shipping options for the new address
429
433
  await calculateShipping(address);
430
- }, [calculateShipping, subtotal, resolvedCurrency]);
434
+ }, [calculateShipping, subtotal, resolvedCurrency, state.email]);
431
435
  // Handle shipping selection
432
436
  const handleShippingSelect = useCallback((option) => {
433
437
  setState((prev) => ({
@@ -579,7 +583,11 @@ export function CheckoutFlow({ onComplete, onCancel, customerEmail, customerId,
579
583
  return prev;
580
584
  });
581
585
  }, []);
582
- // Early return if cart is empty
586
+ // Empty cart. Pre-hydration the cart reads empty here too — same as the
587
+ // server rendered — but CartProvider's LAYOUT effect fills it before paint,
588
+ // so a shopper with a full cart never sees this frame. Do not add a
589
+ // hydration skeleton: `useCartHydrated` flips in a PASSIVE effect, i.e.
590
+ // after paint, so gating this render on it guarantees a skeleton flash.
583
591
  if (items.length === 0) {
584
592
  return (_jsxs("div", { className: cn('text-center py-12', className), children: [_jsx("p", { className: "text-muted-foreground", children: t('checkout.cartEmpty') }), onCancel && (_jsx("button", { onClick: onCancel, className: "mt-4 text-primary hover:underline", children: t('checkout.continueShopping') }))] }));
585
593
  }
@@ -609,7 +617,7 @@ export function CheckoutFlow({ onComplete, onCancel, customerEmail, customerId,
609
617
  // Discount code entry (native discounts engine). Rendered in the sticky
610
618
  // recap column (Shopify placement); falls back into the review step when
611
619
  // the order summary is hidden. All state lives in this component either way.
612
- const discountBlock = (_jsxs("div", { className: "p-4 border rounded-lg bg-card", children: [_jsx("h4", { className: "font-medium mb-3", children: t('checkout.discountCode') }), discountEval?.code ? (_jsxs("div", { className: "flex items-center justify-between gap-3 rounded-md border border-emerald-200 bg-emerald-50 px-3 py-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("span", { className: "block text-sm font-medium text-emerald-700", children: discountEval.code }), discountEval.title && (_jsx("span", { className: "block text-xs text-emerald-600 truncate", children: discountEval.title }))] }), _jsx("button", { type: "button", onClick: () => void fetchDiscountEvaluation(''), disabled: isApplyingDiscount, className: "text-xs text-muted-foreground hover:text-foreground underline shrink-0", children: t('common.remove') })] })) : (_jsxs("div", { className: "flex gap-2", children: [_jsx("input", { type: "text", value: discountInput, onChange: (e) => {
620
+ const discountBlock = (_jsxs("div", { className: "p-4 border rounded-lg bg-card", children: [_jsx("h4", { className: "text-lg font-semibold mb-3", children: t('checkout.discountCode') }), discountEval?.code ? (_jsxs("div", { className: "flex items-center justify-between gap-3 rounded-md border border-emerald-200 bg-emerald-50 px-3 py-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("span", { className: "block text-sm font-medium text-emerald-700", children: discountEval.code }), discountEval.title && (_jsx("span", { className: "block text-xs text-emerald-600 truncate", children: discountEval.title }))] }), _jsx("button", { type: "button", onClick: () => void fetchDiscountEvaluation(''), disabled: isApplyingDiscount, className: "text-xs text-muted-foreground hover:text-foreground underline shrink-0", children: t('common.remove') })] })) : (_jsxs("div", { className: "flex gap-2", children: [_jsx("input", { type: "text", value: discountInput, onChange: (e) => {
613
621
  setDiscountInput(e.target.value);
614
622
  if (discountError)
615
623
  setDiscountError(null);
@@ -620,7 +628,7 @@ export function CheckoutFlow({ onComplete, onCancel, customerEmail, customerId,
620
628
  void fetchDiscountEvaluation(discountInput.trim());
621
629
  }
622
630
  }
623
- }, placeholder: t('checkout.enterCode'), autoComplete: "off", className: cn('min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm uppercase', 'placeholder:normal-case placeholder:text-muted-foreground', 'focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary') }), _jsx("button", { type: "button", onClick: () => void fetchDiscountEvaluation(discountInput.trim()), disabled: !discountInput.trim() || isApplyingDiscount, className: cn('shrink-0 px-4 py-2 rounded-md text-sm font-medium', 'border border-input bg-background', 'hover:bg-accent hover:text-accent-foreground transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed'), children: isApplyingDiscount ? _jsx(Loader2, { className: "h-4 w-4 animate-spin" }) : t('checkout.apply') })] })), discountError && _jsx("p", { className: "mt-2 text-xs text-destructive", children: discountError }), (discountEval?.applied ?? [])
631
+ }, placeholder: t('checkout.enterCode'), autoComplete: "off", className: cn('min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm uppercase', 'placeholder:normal-case placeholder:text-muted-foreground', 'focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary') }), _jsx("button", { type: "button", onClick: () => void fetchDiscountEvaluation(discountInput.trim()), disabled: !discountInput.trim() || isApplyingDiscount, className: cn('shrink-0 px-4 py-2 rounded-md text-sm font-medium', 'border border-input bg-background', 'hover:bg-muted transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed'), children: isApplyingDiscount ? _jsx(Loader2, { className: "h-4 w-4 animate-spin" }) : t('checkout.apply') })] })), discountError && _jsx("p", { className: "mt-2 text-xs text-destructive", children: discountError }), (discountEval?.applied ?? [])
624
632
  .filter((a) => a.method === 'automatic')
625
633
  .map((a) => (_jsx("p", { className: "mt-2 text-xs text-emerald-600", children: a.freeShipping && a.amountCents === 0
626
634
  ? t('checkout.promotionAppliedFreeShipping', { title: a.title })
@@ -645,7 +653,12 @@ export function CheckoutFlow({ onComplete, onCancel, customerEmail, customerId,
645
653
  state.isLoadingShipping, className: cn('w-full px-4 py-3 rounded-md font-medium', 'bg-primary text-primary-foreground hover:bg-primary/90 transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed', 'flex items-center justify-center gap-2'), children: [state.isLoadingShipping && _jsx(Loader2, { className: "h-4 w-4 animate-spin" }), t('checkout.continueToReview')] })] })) : hasSavedAddresses && !useNewAddress ? (_jsxs("div", { className: "space-y-3", children: [_jsx("p", { className: "text-sm font-medium", children: t('checkout.chooseDeliveryAddress') }), savedAddresses.map((a) => (_jsxs("div", { className: "flex items-start justify-between gap-4 rounded-lg border p-4", children: [_jsxs("div", { className: "text-sm", children: [_jsxs("p", { className: "font-medium", children: [a.firstName, " ", a.lastName, a.label ? _jsxs("span", { className: "text-muted-foreground", children: [" \u00B7 ", a.label] }) : null] }), _jsx("p", { className: "text-muted-foreground", children: addressSummary(a) }), a.phone && _jsx("p", { className: "text-muted-foreground", children: a.phone })] }), _jsx("button", { type: "button", onClick: () => handleAddressSubmit(dtoToAddress(a, state.email)), className: "shrink-0 rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary/90", children: t('checkout.deliverHere') })] }, a.id))), _jsx("button", { type: "button", onClick: () => {
646
654
  setUseNewAddress(true);
647
655
  setFormKey((k) => k + 1);
648
- }, className: "text-sm text-primary hover:underline", children: t('checkout.useNewAddress') })] })) : (_jsxs(_Fragment, { children: [hasSavedAddresses && (_jsxs("button", { type: "button", onClick: () => setUseNewAddress(false), className: "flex items-center gap-1 text-sm text-primary hover:underline", children: [_jsx(ArrowLeft, { className: "h-3 w-3" }), t('checkout.useSavedAddress')] })), _jsx(ShippingForm, { defaultValues: state.shippingAddress || undefined, onSubmit: handleAddressSubmit, onCancel: onCancel, showBillingAddress: true, onBillingAddressChange: (addr) => setState((prev) => ({ ...prev, billingAddress: addr })), allowedCountries: allowedCountries.length > 0 ? allowedCountries : undefined }, formKey)] }))] })), state.step === 'shipping' && (_jsxs("div", { className: "space-y-6", children: [_jsx("h2", { className: "text-xl font-semibold", children: t('checkout.shippingMethodTitle') }), _jsx(ShippingOptions, { options: state.availableShipping, selectedOption: state.selectedShipping, onSelect: handleShippingSelect, isLoading: state.isLoadingShipping, error: state.shippingError, currency: resolvedCurrency }), _jsxs("div", { className: "flex gap-4 pt-4", children: [_jsx("button", { type: "button", onClick: goBack, className: cn('flex-1 px-4 py-3 rounded-md font-medium', 'border border-input bg-background', 'hover:bg-accent hover:text-accent-foreground', 'transition-colors'), children: t('common.back') }), _jsx("button", { type: "button", onClick: handleShippingContinue, disabled: !state.selectedShipping || state.isLoadingShipping, className: cn('flex-1 px-4 py-3 rounded-md font-medium', 'bg-primary text-primary-foreground', 'hover:bg-primary/90', 'transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed'), children: t('checkout.continueToReview') })] })] })), state.step === 'review' && state.shippingAddress && state.selectedShipping && (_jsxs("div", { className: "space-y-6", children: [_jsx("h2", { className: "text-xl font-semibold", children: t('checkout.reviewYourOrder') }), isPickup && state.selectedPickupLocation ? (_jsx("div", { className: "space-y-4", children: _jsxs("div", { className: "p-4 border rounded-lg space-y-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("h4", { className: "flex items-center gap-2 font-medium", children: [_jsx(Store, { className: "h-4 w-4" }), t('checkout.pickupInStore')] }), _jsx("button", { type: "button", onClick: () => setState((prev) => ({ ...prev, step: 'address' })), className: "text-sm text-primary hover:underline shrink-0", children: t('common.edit') })] }), _jsxs("div", { className: "text-sm", children: [_jsx("p", { className: "font-medium", children: state.selectedPickupLocation.name }), _jsx("p", { className: "text-muted-foreground", children: pickupAddressLine(state.selectedPickupLocation) }), formatTodayHours(state.selectedPickupLocation, t) && (_jsxs("p", { className: "text-muted-foreground flex items-center gap-1 mt-1", children: [_jsx(Clock, { className: "h-3 w-3" }), formatTodayHours(state.selectedPickupLocation, t)] })), state.selectedPickupLocation.preparationTime && (_jsx("p", { className: "text-emerald-600 mt-1", children: t('checkout.usuallyReadyIn', { time: translateDynamic(t, 'prep', state.selectedPickupLocation.preparationTime) }) }))] }), _jsxs("div", { className: "border-t pt-3 text-sm", children: [_jsxs("p", { className: "font-medium", children: [pickupContact.firstName, " ", pickupContact.lastName] }), _jsx("p", { className: "text-muted-foreground", children: state.email || customerEmail || '' })] })] }) })) : (_jsx(ReviewSection, { shippingAddress: state.shippingAddress, billingAddress: state.billingAddress, selectedShipping: state.selectedShipping, email: state.email || customerEmail || '', currency: resolvedCurrency, onEditAddress: () => setState((prev) => ({ ...prev, step: 'address' })), onEditShipping: () => setState((prev) => ({ ...prev, step: 'shipping' })) })), !showOrderSummary && discountBlock, paymentMethods.length > 0 && (_jsxs("div", { className: "p-4 border rounded-lg", children: [_jsx("h4", { className: "font-medium mb-3", children: t('checkout.paymentMethod') }), _jsxs("div", { className: "space-y-2", children: [_jsxs("label", { className: cn('flex items-start gap-3 rounded-md border p-3 cursor-pointer transition-colors', selectedPaymentMethodId === '' && 'border-primary bg-primary/5'), children: [_jsx("input", { type: "radio", name: "payment-method", checked: selectedPaymentMethodId === '', onChange: () => setSelectedPaymentMethodId(''), className: "mt-1" }), _jsxs("span", { children: [_jsx("span", { className: "block text-sm font-medium", children: t('checkout.card') }), _jsx("span", { className: "block text-xs text-muted-foreground", children: t('checkout.secureViaStripe') })] })] }), paymentMethods.map((m) => (_jsxs("label", { className: cn('flex items-start gap-3 rounded-md border p-3 cursor-pointer transition-colors', selectedPaymentMethodId === m.id && 'border-primary bg-primary/5'), children: [_jsx("input", { type: "radio", name: "payment-method", checked: selectedPaymentMethodId === m.id, onChange: () => setSelectedPaymentMethodId(m.id), className: "mt-1" }), _jsxs("span", { children: [_jsx("span", { className: "block text-sm font-medium", children: m.name }), m.instructions && (_jsx("span", { className: "block text-xs text-muted-foreground line-clamp-2", children: m.instructions }))] })] }, m.id)))] })] })), _jsx("button", { type: "button", onClick: handleCheckout, disabled: state.isProcessing || isCheckoutLoading, className: cn('w-full px-4 py-4 rounded-md font-medium text-lg', 'bg-primary text-primary-foreground', 'hover:bg-primary/90', 'transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed', 'flex items-center justify-center gap-2'), children: (state.isProcessing || isCheckoutLoading) ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "h-5 w-5 animate-spin" }), t('common.processing')] })) : (_jsxs(_Fragment, { children: [_jsx(CreditCard, { className: "h-5 w-5" }), selectedPaymentMethodId ? t('checkout.placeOrder') : t('checkout.proceedToPayment')] })) }), _jsx("p", { className: "text-xs text-center text-muted-foreground", children: selectedPaymentMethodId
656
+ }, className: "text-sm text-primary hover:underline", children: t('checkout.useNewAddress') })] })) : (_jsxs(_Fragment, { children: [hasSavedAddresses && (_jsxs("button", { type: "button", onClick: () => setUseNewAddress(false), className: "flex items-center gap-1 text-sm text-primary hover:underline", children: [_jsx(ArrowLeft, { className: "h-3 w-3" }), t('checkout.useSavedAddress')] })), _jsx(ShippingForm, {
657
+ // The step chrome above already prints "Shipping Address"
658
+ // (same i18n key) and owns the contact email. Without these
659
+ // two, the shopper gets the section title twice and two
660
+ // required email boxes on one step.
661
+ showHeading: false, showEmail: false, defaultValues: state.shippingAddress || undefined, onSubmit: handleAddressSubmit, onCancel: onCancel, showBillingAddress: true, onBillingAddressChange: (addr) => setState((prev) => ({ ...prev, billingAddress: addr })), allowedCountries: allowedCountries.length > 0 ? allowedCountries : undefined }, formKey)] }))] })), state.step === 'shipping' && (_jsxs("div", { className: "space-y-6", children: [_jsx("h2", { className: "text-xl font-semibold", children: t('checkout.shippingMethodTitle') }), _jsx(ShippingOptions, { options: state.availableShipping, selectedOption: state.selectedShipping, onSelect: handleShippingSelect, isLoading: state.isLoadingShipping, error: state.shippingError, currency: resolvedCurrency }), _jsxs("div", { className: "flex gap-4 pt-4", children: [_jsx("button", { type: "button", onClick: goBack, className: cn('flex-1 px-4 py-3 rounded-md font-medium', 'border border-input bg-background', 'hover:bg-muted', 'transition-colors'), children: t('common.back') }), _jsx("button", { type: "button", onClick: handleShippingContinue, disabled: !state.selectedShipping || state.isLoadingShipping, className: cn('flex-1 px-4 py-3 rounded-md font-medium', 'bg-primary text-primary-foreground', 'hover:bg-primary/90', 'transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed'), children: t('checkout.continueToReview') })] })] })), state.step === 'review' && state.shippingAddress && state.selectedShipping && (_jsxs("div", { className: "space-y-6", children: [_jsx("h2", { className: "text-xl font-semibold", children: t('checkout.reviewYourOrder') }), isPickup && state.selectedPickupLocation ? (_jsx("div", { className: "space-y-4", children: _jsxs("div", { className: "p-4 border rounded-lg space-y-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("h4", { className: "flex items-center gap-2 font-medium", children: [_jsx(Store, { className: "h-4 w-4" }), t('checkout.pickupInStore')] }), _jsx("button", { type: "button", onClick: () => setState((prev) => ({ ...prev, step: 'address' })), className: "text-sm text-primary hover:underline shrink-0", children: t('common.edit') })] }), _jsxs("div", { className: "text-sm", children: [_jsx("p", { className: "font-medium", children: state.selectedPickupLocation.name }), _jsx("p", { className: "text-muted-foreground", children: pickupAddressLine(state.selectedPickupLocation) }), formatTodayHours(state.selectedPickupLocation, t) && (_jsxs("p", { className: "text-muted-foreground flex items-center gap-1 mt-1", children: [_jsx(Clock, { className: "h-3 w-3" }), formatTodayHours(state.selectedPickupLocation, t)] })), state.selectedPickupLocation.preparationTime && (_jsx("p", { className: "text-emerald-600 mt-1", children: t('checkout.usuallyReadyIn', { time: translateDynamic(t, 'prep', state.selectedPickupLocation.preparationTime) }) }))] }), _jsxs("div", { className: "border-t pt-3 text-sm", children: [_jsxs("p", { className: "font-medium", children: [pickupContact.firstName, " ", pickupContact.lastName] }), _jsx("p", { className: "text-muted-foreground", children: state.email || customerEmail || '' })] })] }) })) : (_jsx(ReviewSection, { shippingAddress: state.shippingAddress, billingAddress: state.billingAddress, selectedShipping: state.selectedShipping, email: state.email || customerEmail || '', currency: resolvedCurrency, onEditAddress: () => setState((prev) => ({ ...prev, step: 'address' })), onEditShipping: () => setState((prev) => ({ ...prev, step: 'shipping' })) })), !showOrderSummary && discountBlock, paymentMethods.length > 0 && (_jsxs("div", { className: "p-4 border rounded-lg", children: [_jsx("h4", { className: "font-medium mb-3", children: t('checkout.paymentMethod') }), _jsxs("div", { className: "space-y-2", children: [_jsxs("label", { className: cn('flex items-start gap-3 rounded-md border p-3 cursor-pointer transition-colors', selectedPaymentMethodId === '' && 'border-primary bg-primary/5'), children: [_jsx("input", { type: "radio", name: "payment-method", checked: selectedPaymentMethodId === '', onChange: () => setSelectedPaymentMethodId(''), className: "mt-1" }), _jsxs("span", { children: [_jsx("span", { className: "block text-sm font-medium", children: t('checkout.card') }), _jsx("span", { className: "block text-xs text-muted-foreground", children: t('checkout.secureViaStripe') })] })] }), paymentMethods.map((m) => (_jsxs("label", { className: cn('flex items-start gap-3 rounded-md border p-3 cursor-pointer transition-colors', selectedPaymentMethodId === m.id && 'border-primary bg-primary/5'), children: [_jsx("input", { type: "radio", name: "payment-method", checked: selectedPaymentMethodId === m.id, onChange: () => setSelectedPaymentMethodId(m.id), className: "mt-1" }), _jsxs("span", { children: [_jsx("span", { className: "block text-sm font-medium", children: m.name }), m.instructions && (_jsx("span", { className: "block text-xs text-muted-foreground line-clamp-2", children: m.instructions }))] })] }, m.id)))] })] })), _jsx("button", { type: "button", onClick: handleCheckout, disabled: state.isProcessing || isCheckoutLoading, className: cn('w-full px-4 py-4 rounded-md font-medium text-lg', 'bg-primary text-primary-foreground', 'hover:bg-primary/90', 'transition-colors', 'disabled:opacity-50 disabled:cursor-not-allowed', 'flex items-center justify-center gap-2'), children: (state.isProcessing || isCheckoutLoading) ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "h-5 w-5 animate-spin" }), t('common.processing')] })) : (_jsxs(_Fragment, { children: [_jsx(CreditCard, { className: "h-5 w-5" }), selectedPaymentMethodId ? t('checkout.placeOrder') : t('checkout.proceedToPayment')] })) }), _jsx("p", { className: "text-xs text-center text-muted-foreground", children: selectedPaymentMethodId
649
662
  ? t('checkout.manualConfirmNote')
650
663
  : t('checkout.stripeRedirectNote') })] }))] })) }), showOrderSummary && (_jsx("div", { className: "lg:col-span-1", children: _jsxs("div", { className: "sticky top-4 space-y-3", children: [_jsx(OrderSummary, { items: items.map((item) => ({
651
664
  productId: item.productId,