@nextblock-cms/ecom 0.13.3 → 0.13.5

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 (121) hide show
  1. package/lib/CurrencyProvider.cjs.js +1 -1
  2. package/lib/CurrencyProvider.es.js +31 -27
  3. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  4. package/lib/components/AccountNavigationMenu.es.js +53 -26
  5. package/lib/components/AddToCartButton.cjs.js +1 -1
  6. package/lib/components/AddToCartButton.es.js +49 -25
  7. package/lib/components/Cart.cjs.js +1 -1
  8. package/lib/components/Cart.es.js +367 -115
  9. package/lib/components/CartDrawer.cjs.js +1 -1
  10. package/lib/components/CartDrawer.es.js +272 -88
  11. package/lib/components/CartIcon.cjs.js +1 -1
  12. package/lib/components/CartIcon.es.js +44 -16
  13. package/lib/components/Checkout.cjs.js +1 -1
  14. package/lib/components/Checkout.es.js +1601 -694
  15. package/lib/components/CouponForm.cjs.js +1 -1
  16. package/lib/components/CouponForm.es.js +160 -96
  17. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  18. package/lib/components/CurrencySwitcher.es.js +32 -12
  19. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  20. package/lib/components/CustomerProfileForm.es.js +666 -250
  21. package/lib/components/FeaturedProduct.cjs.js +1 -1
  22. package/lib/components/FeaturedProduct.es.js +126 -42
  23. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  24. package/lib/components/FreemiusLicensePanel.es.js +125 -45
  25. package/lib/components/InvoiceDocument.cjs.js +1 -1
  26. package/lib/components/InvoiceDocument.es.js +485 -146
  27. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  28. package/lib/components/InvoiceViewerShell.es.js +142 -54
  29. package/lib/components/ProductCard.cjs.js +1 -1
  30. package/lib/components/ProductCard.es.js +224 -81
  31. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  32. package/lib/components/ProductDetailsLayout.es.js +629 -275
  33. package/lib/components/ProductGallery.cjs.js +1 -1
  34. package/lib/components/ProductGallery.es.js +64 -21
  35. package/lib/components/ProductGrid.cjs.js +1 -1
  36. package/lib/components/ProductGrid.es.js +28 -12
  37. package/lib/components/ShippingEstimator.cjs.js +1 -1
  38. package/lib/components/ShippingEstimator.es.js +226 -90
  39. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  40. package/lib/components/SimpleTiptapRenderer.es.js +286 -93
  41. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  42. package/lib/components/SubscriptionSelector.es.js +168 -92
  43. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  44. package/lib/pages/cms/coupons/CouponEditorForm.es.js +370 -110
  45. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  46. package/lib/pages/cms/coupons/CouponsPage.es.js +368 -116
  47. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  48. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +61 -25
  49. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  50. package/lib/pages/cms/coupons/EditCouponPage.es.js +71 -35
  51. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  52. package/lib/pages/cms/coupons/ProductScopePicker.es.js +167 -72
  53. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  54. package/lib/pages/cms/orders/ExportReportsDialog.es.js +247 -87
  55. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  56. package/lib/pages/cms/orders/OrderDetailPage.es.js +283 -95
  57. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  58. package/lib/pages/cms/orders/OrderPrintButton.es.js +21 -9
  59. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  60. package/lib/pages/cms/orders/OrderStatusForm.es.js +106 -46
  61. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  62. package/lib/pages/cms/orders/OrdersPage.es.js +257 -78
  63. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  64. package/lib/pages/cms/payments/PaymentsClient.es.js +551 -155
  65. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  66. package/lib/pages/cms/payments/PaymentsPage.es.js +24 -16
  67. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  68. package/lib/pages/cms/products/ProductsPage.es.js +77 -37
  69. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  70. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +176 -96
  71. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  72. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +85 -41
  73. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  74. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +455 -192
  75. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  76. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +72 -28
  77. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  78. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +490 -183
  79. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  80. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +175 -67
  81. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  82. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +211 -100
  83. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  84. package/lib/pages/cms/products/components/DeleteProductButton.es.js +45 -25
  85. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  86. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +202 -58
  87. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  88. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +234 -88
  89. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  90. package/lib/pages/cms/products/components/ProductForm.es.js +1199 -551
  91. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  92. package/lib/pages/cms/products/components/ProductMediaManager.es.js +154 -63
  93. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  94. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +391 -144
  95. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  96. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +203 -87
  97. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  98. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +30 -18
  99. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  100. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +35 -23
  101. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  102. package/lib/pages/cms/products/components/VariationsEditor.es.js +492 -261
  103. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  104. package/lib/pages/cms/products/inventory/InventoryPage.es.js +33 -13
  105. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  106. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +365 -145
  107. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  108. package/lib/pages/cms/products/new/NewProductPage.es.js +46 -34
  109. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  110. package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
  111. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  112. package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
  113. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
  115. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  116. package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
  117. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
  119. package/lib/product-context.cjs.js +1 -1
  120. package/lib/product-context.es.js +14 -10
  121. package/package.json +4 -4
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react/jsx-runtime"),n=require("react"),h=require("@nextblock-cms/utils"),f=require("./currency.cjs.js"),v=require("./currency-store.cjs.js"),z=require("./currency-constants.cjs.js"),g=n.createContext(null);function x(o){return f.sortCurrencies(o.filter(r=>r.is_active!==!1))}function M(o){const{currencies:r,storedCurrencyCode:C,hasHydrated:y,initialCurrencyCode:t,locale:l}=o,u=new Set(r.map(a=>h.normalizeCurrencyCode(a.code))),i=f.getDefaultCurrency(r),s=t?h.normalizeCurrencyCode(t):null,e=C?h.normalizeCurrencyCode(C):null;if(y&&e&&u.has(e))return e;if(s&&u.has(s))return s;const d=f.inferCurrencyCodeFromLocale(l,r);return u.has(d)?d:i.code}function p({children:o,initialCurrencies:r,initialCurrencyCode:C,locale:y}){const[t,l]=n.useState(()=>x(r)),u=v.useCurrencyPreferenceStore(c=>c.activeCurrencyCode),i=v.useCurrencyPreferenceStore(c=>c.hasHydrated),s=v.useCurrencyPreferenceStore(c=>c.setActiveCurrencyCode);n.useEffect(()=>{v.useCurrencyPreferenceStore.persist.rehydrate()},[]),n.useEffect(()=>{r.length>0&&l(x(r))},[r]),n.useEffect(()=>{if(r.length>0)return;async function c(){const{fetchActiveCurrenciesFromRest:m}=await Promise.resolve().then(()=>require("./currency-rest-client.cjs.js")),S=await m();S.length>0&&l(x(S.map(P=>f.normalizeCurrencyRecord(P))))}c()},[r.length]);const e=n.useMemo(()=>M({currencies:t,storedCurrencyCode:u,hasHydrated:i,initialCurrencyCode:C,locale:y}),[t,u,i,C,y]);n.useEffect(()=>{e&&u!==e&&s(e)},[e,s,u]),n.useEffect(()=>{!e||typeof document>"u"||(document.cookie=`${z.CURRENCY_COOKIE_NAME}=${e}; Path=/; Max-Age=31536000; SameSite=Lax`)},[e]);const d=n.useMemo(()=>f.getDefaultCurrency(t),[t]),a=n.useMemo(()=>t.find(c=>c.code===e)??d,[t,d,e]),E=n.useMemo(()=>({currencies:t,defaultCurrency:d,activeCurrency:a,activeCurrencyCode:a.code,isHydrated:i,setActiveCurrencyCode:c=>{const m=h.normalizeCurrencyCode(c);t.some(P=>P.code===m)&&s(m)}}),[a,t,d,i,s]);return q.jsx(g.Provider,{value:E,children:o})}function A(){const o=n.useContext(g);if(!o)throw new Error("useCurrency must be used inside a CurrencyProvider");return o}exports.CurrencyProvider=p;exports.useCurrency=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("react/jsx-dev-runtime"),n=require("react"),h=require("@nextblock-cms/utils"),f=require("./currency.cjs.js"),v=require("./currency-store.cjs.js"),p=require("./currency-constants.cjs.js"),b=n.createContext(null);function S(o){return f.sortCurrencies(o.filter(r=>r.is_active!==!1))}function q(o){const{currencies:r,storedCurrencyCode:C,hasHydrated:y,initialCurrencyCode:t,locale:l}=o,u=new Set(r.map(a=>h.normalizeCurrencyCode(a.code))),d=f.getDefaultCurrency(r),s=t?h.normalizeCurrencyCode(t):null,e=C?h.normalizeCurrencyCode(C):null;if(y&&e&&u.has(e))return e;if(s&&u.has(s))return s;const i=f.inferCurrencyCodeFromLocale(l,r);return u.has(i)?i:d.code}function z({children:o,initialCurrencies:r,initialCurrencyCode:C,locale:y}){const[t,l]=n.useState(()=>S(r)),u=v.useCurrencyPreferenceStore(c=>c.activeCurrencyCode),d=v.useCurrencyPreferenceStore(c=>c.hasHydrated),s=v.useCurrencyPreferenceStore(c=>c.setActiveCurrencyCode);n.useEffect(()=>{v.useCurrencyPreferenceStore.persist.rehydrate()},[]),n.useEffect(()=>{r.length>0&&l(S(r))},[r]),n.useEffect(()=>{if(r.length>0)return;async function c(){const{fetchActiveCurrenciesFromRest:m}=await Promise.resolve().then(()=>require("./currency-rest-client.cjs.js")),x=await m();x.length>0&&l(S(x.map(P=>f.normalizeCurrencyRecord(P))))}c()},[r.length]);const e=n.useMemo(()=>q({currencies:t,storedCurrencyCode:u,hasHydrated:d,initialCurrencyCode:C,locale:y}),[t,u,d,C,y]);n.useEffect(()=>{e&&u!==e&&s(e)},[e,s,u]),n.useEffect(()=>{!e||typeof document>"u"||(document.cookie=`${p.CURRENCY_COOKIE_NAME}=${e}; Path=/; Max-Age=31536000; SameSite=Lax`)},[e]);const i=n.useMemo(()=>f.getDefaultCurrency(t),[t]),a=n.useMemo(()=>t.find(c=>c.code===e)??i,[t,i,e]),g=n.useMemo(()=>({currencies:t,defaultCurrency:i,activeCurrency:a,activeCurrencyCode:a.code,isHydrated:d,setActiveCurrencyCode:c=>{const m=h.normalizeCurrencyCode(c);t.some(P=>P.code===m)&&s(m)}}),[a,t,i,d,s]);return E.jsxDEV(b.Provider,{value:g,children:o},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/CurrencyProvider.tsx",lineNumber:192,columnNumber:5},this)}function M(){const o=n.useContext(b);if(!o)throw new Error("useCurrency must be used inside a CurrencyProvider");return o}exports.CurrencyProvider=z;exports.useCurrency=M;
@@ -1,34 +1,34 @@
1
1
  'use client';
2
- import { jsx as w } from "react/jsx-runtime";
3
- import { createContext as E, useState as z, useEffect as a, useMemo as l, useContext as H } from "react";
2
+ import { jsxDEV as A } from "react/jsx-dev-runtime";
3
+ import { createContext as E, useState as w, useEffect as a, useMemo as l, useContext as N } from "react";
4
4
  import { normalizeCurrencyCode as h } from "@nextblock-cms/utils";
5
- import { getDefaultCurrency as S, sortCurrencies as R, normalizeCurrencyRecord as M, inferCurrencyCodeFromLocale as _ } from "./currency.es.js";
5
+ import { getDefaultCurrency as P, sortCurrencies as z, normalizeCurrencyRecord as H, inferCurrencyCodeFromLocale as R } from "./currency.es.js";
6
6
  import { useCurrencyPreferenceStore as v } from "./currency-store.es.js";
7
- import { CURRENCY_COOKIE_NAME as F } from "./currency-constants.es.js";
8
- const A = E(null);
7
+ import { CURRENCY_COOKIE_NAME as k } from "./currency-constants.es.js";
8
+ const S = E(null);
9
9
  function g(n) {
10
- return R(
10
+ return z(
11
11
  n.filter((r) => r.is_active !== !1)
12
12
  );
13
13
  }
14
- function L(n) {
15
- const { currencies: r, storedCurrencyCode: i, hasHydrated: f, initialCurrencyCode: t, locale: y } = n, c = new Set(
14
+ function D(n) {
15
+ const { currencies: r, storedCurrencyCode: i, hasHydrated: f, initialCurrencyCode: t, locale: m } = n, c = new Set(
16
16
  r.map((C) => h(C.code))
17
- ), d = S(r), s = t ? h(t) : null, e = i ? h(i) : null;
17
+ ), d = P(r), s = t ? h(t) : null, e = i ? h(i) : null;
18
18
  if (f && e && c.has(e))
19
19
  return e;
20
20
  if (s && c.has(s))
21
21
  return s;
22
- const u = _(y, r);
22
+ const u = R(m, r);
23
23
  return c.has(u) ? u : d.code;
24
24
  }
25
- function D({
25
+ function U({
26
26
  children: n,
27
27
  initialCurrencies: r,
28
28
  initialCurrencyCode: i,
29
29
  locale: f
30
30
  }) {
31
- const [t, y] = z(
31
+ const [t, m] = w(
32
32
  () => g(r)
33
33
  ), c = v(
34
34
  (o) => o.activeCurrencyCode
@@ -38,20 +38,20 @@ function D({
38
38
  a(() => {
39
39
  v.persist.rehydrate();
40
40
  }, []), a(() => {
41
- r.length > 0 && y(g(r));
41
+ r.length > 0 && m(g(r));
42
42
  }, [r]), a(() => {
43
43
  if (r.length > 0)
44
44
  return;
45
45
  async function o() {
46
- const { fetchActiveCurrenciesFromRest: m } = await import("./currency-rest-client.es.js"), p = await m();
47
- p.length > 0 && y(
48
- g(p.map((x) => M(x)))
46
+ const { fetchActiveCurrenciesFromRest: y } = await import("./currency-rest-client.es.js"), p = await y();
47
+ p.length > 0 && m(
48
+ g(p.map((x) => H(x)))
49
49
  );
50
50
  }
51
51
  o();
52
52
  }, [r.length]);
53
53
  const e = l(
54
- () => L({
54
+ () => D({
55
55
  currencies: t,
56
56
  storedCurrencyCode: c,
57
57
  hasHydrated: d,
@@ -63,15 +63,15 @@ function D({
63
63
  a(() => {
64
64
  e && c !== e && s(e);
65
65
  }, [e, s, c]), a(() => {
66
- !e || typeof document > "u" || (document.cookie = `${F}=${e}; Path=/; Max-Age=31536000; SameSite=Lax`);
66
+ !e || typeof document > "u" || (document.cookie = `${k}=${e}; Path=/; Max-Age=31536000; SameSite=Lax`);
67
67
  }, [e]);
68
68
  const u = l(
69
- () => S(t),
69
+ () => P(t),
70
70
  [t]
71
71
  ), C = l(
72
72
  () => t.find((o) => o.code === e) ?? u,
73
73
  [t, u, e]
74
- ), P = l(
74
+ ), b = l(
75
75
  () => ({
76
76
  currencies: t,
77
77
  defaultCurrency: u,
@@ -79,21 +79,25 @@ function D({
79
79
  activeCurrencyCode: C.code,
80
80
  isHydrated: d,
81
81
  setActiveCurrencyCode: (o) => {
82
- const m = h(o);
83
- t.some((x) => x.code === m) && s(m);
82
+ const y = h(o);
83
+ t.some((x) => x.code === y) && s(y);
84
84
  }
85
85
  }),
86
86
  [C, t, u, d, s]
87
87
  );
88
- return /* @__PURE__ */ w(A.Provider, { value: P, children: n });
88
+ return /* @__PURE__ */ A(S.Provider, { value: b, children: n }, void 0, !1, {
89
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/CurrencyProvider.tsx",
90
+ lineNumber: 192,
91
+ columnNumber: 5
92
+ }, this);
89
93
  }
90
- function I() {
91
- const n = H(A);
94
+ function V() {
95
+ const n = N(S);
92
96
  if (!n)
93
97
  throw new Error("useCurrency must be used inside a CurrencyProvider");
94
98
  return n;
95
99
  }
96
100
  export {
97
- D as CurrencyProvider,
98
- I as useCurrency
101
+ U as CurrencyProvider,
102
+ V as useCurrency
99
103
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),m=require("next/link"),h=require("next/navigation"),i=require("lucide-react"),c=require("@nextblock-cms/utils");function u(t,s,a){const n=t(s);return n===s?a:n}function f(t){return t==="password"?i.KeyRound:i.Package2}function g({links:t,title:s,className:a}){const n=h.usePathname(),{t:o}=c.useTranslations();return t.length?r.jsxs("div",{className:c.cn("w-full space-y-3",a),children:[r.jsx("div",{className:"text-sm font-medium text-muted-foreground uppercase tracking-wider",children:s||u(o,"account_navigation","Account")}),r.jsx("div",{className:"space-y-2",children:t.map(e=>{const l=f(e.icon),d=n===e.href||n.startsWith(`${e.href}/`);return r.jsxs(m,{href:e.href,className:c.cn("flex items-center gap-3 rounded-xl border px-3 py-2.5 text-sm font-medium transition-colors",d?"border-slate-900 bg-slate-900 text-white":"border-border bg-background hover:bg-muted/40"),children:[r.jsx(l,{className:"h-4 w-4 shrink-0"}),r.jsx("span",{children:u(o,e.labelKey,e.fallbackLabel)})]},e.href)})})]}):null}exports.AccountNavigationMenu=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-dev-runtime"),b=require("next/link"),d=require("next/navigation"),a=require("lucide-react"),o=require("@nextblock-cms/utils");function u(n,r,c){const t=n(r);return t===r?c:t}function N(n){return n==="password"?a.KeyRound:a.Package2}function f({links:n,title:r,className:c}){const t=d.usePathname(),{t:i}=o.useTranslations();return n.length?s.jsxDEV("div",{className:o.cn("w-full space-y-3",c),children:[s.jsxDEV("div",{className:"text-sm font-medium text-muted-foreground uppercase tracking-wider",children:r||u(i,"account_navigation","Account")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",lineNumber:55,columnNumber:7},this),s.jsxDEV("div",{className:"space-y-2",children:n.map(e=>{const l=N(e.icon),m=t===e.href||t.startsWith(`${e.href}/`);return s.jsxDEV(b,{href:e.href,className:o.cn("flex items-center gap-3 rounded-xl border px-3 py-2.5 text-sm font-medium transition-colors",m?"border-slate-900 bg-slate-900 text-white":"border-border bg-background hover:bg-muted/40"),children:[s.jsxDEV(l,{className:"h-4 w-4 shrink-0"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",lineNumber:76,columnNumber:15},this),s.jsxDEV("span",{children:u(i,e.labelKey,e.fallbackLabel)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",lineNumber:77,columnNumber:15},this)]},e.href,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",lineNumber:66,columnNumber:13},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",lineNumber:59,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",lineNumber:54,columnNumber:5},this):null}exports.AccountNavigationMenu=f;
@@ -1,43 +1,70 @@
1
1
  'use client';
2
- import { jsxs as c, jsx as a } from "react/jsx-runtime";
3
- import l from "next/link";
4
- import { usePathname as f } from "next/navigation";
5
- import { KeyRound as h, Package2 as p } from "lucide-react";
6
- import { useTranslations as b, cn as i } from "@nextblock-cms/utils";
7
- function m(r, n, o) {
8
- const t = r(n);
9
- return t === n ? o : t;
2
+ import { jsxDEV as s } from "react/jsx-dev-runtime";
3
+ import u from "next/link";
4
+ import { usePathname as b } from "next/navigation";
5
+ import { KeyRound as d, Package2 as f } from "lucide-react";
6
+ import { useTranslations as N, cn as i } from "@nextblock-cms/utils";
7
+ function a(n, o, r) {
8
+ const t = n(o);
9
+ return t === o ? r : t;
10
10
  }
11
- function g(r) {
12
- return r === "password" ? h : p;
11
+ function p(n) {
12
+ return n === "password" ? d : f;
13
13
  }
14
14
  function A({
15
- links: r,
16
- title: n,
17
- className: o
15
+ links: n,
16
+ title: o,
17
+ className: r
18
18
  }) {
19
- const t = f(), { t: s } = b();
20
- return r.length ? /* @__PURE__ */ c("div", { className: i("w-full space-y-3", o), children: [
21
- /* @__PURE__ */ a("div", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wider", children: n || m(s, "account_navigation", "Account") }),
22
- /* @__PURE__ */ a("div", { className: "space-y-2", children: r.map((e) => {
23
- const u = g(e.icon), d = t === e.href || t.startsWith(`${e.href}/`);
24
- return /* @__PURE__ */ c(
25
- l,
19
+ const t = b(), { t: c } = N();
20
+ return n.length ? /* @__PURE__ */ s("div", { className: i("w-full space-y-3", r), children: [
21
+ /* @__PURE__ */ s("div", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wider", children: o || a(c, "account_navigation", "Account") }, void 0, !1, {
22
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",
23
+ lineNumber: 55,
24
+ columnNumber: 7
25
+ }, this),
26
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: n.map((e) => {
27
+ const m = p(e.icon), l = t === e.href || t.startsWith(`${e.href}/`);
28
+ return /* @__PURE__ */ s(
29
+ u,
26
30
  {
27
31
  href: e.href,
28
32
  className: i(
29
33
  "flex items-center gap-3 rounded-xl border px-3 py-2.5 text-sm font-medium transition-colors",
30
- d ? "border-slate-900 bg-slate-900 text-white" : "border-border bg-background hover:bg-muted/40"
34
+ l ? "border-slate-900 bg-slate-900 text-white" : "border-border bg-background hover:bg-muted/40"
31
35
  ),
32
36
  children: [
33
- /* @__PURE__ */ a(u, { className: "h-4 w-4 shrink-0" }),
34
- /* @__PURE__ */ a("span", { children: m(s, e.labelKey, e.fallbackLabel) })
37
+ /* @__PURE__ */ s(m, { className: "h-4 w-4 shrink-0" }, void 0, !1, {
38
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",
39
+ lineNumber: 76,
40
+ columnNumber: 15
41
+ }, this),
42
+ /* @__PURE__ */ s("span", { children: a(c, e.labelKey, e.fallbackLabel) }, void 0, !1, {
43
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",
44
+ lineNumber: 77,
45
+ columnNumber: 15
46
+ }, this)
35
47
  ]
36
48
  },
37
- e.href
49
+ e.href,
50
+ !0,
51
+ {
52
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",
53
+ lineNumber: 66,
54
+ columnNumber: 13
55
+ },
56
+ this
38
57
  );
39
- }) })
40
- ] }) : null;
58
+ }) }, void 0, !1, {
59
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",
60
+ lineNumber: 59,
61
+ columnNumber: 7
62
+ }, this)
63
+ ] }, void 0, !0, {
64
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",
65
+ lineNumber: 54,
66
+ columnNumber: 5
67
+ }, this) : null;
41
68
  }
42
69
  export {
43
70
  A as AccountNavigationMenu
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),a=require("@nextblock-cms/ui/button"),_=require("lucide-react"),l=require("sonner"),v=require("next/link"),y=require("../use-cart.cjs.js"),q=require("@nextblock-cms/utils"),o=require("../types.cjs.js"),C=require("../CurrencyProvider.cjs.js"),b=({product:e,className:s,quantity:c})=>{const n=y.useCart(t=>t),{t:r}=q.useTranslations(),{activeCurrencyCode:d}=C.useCurrency();if(!!e.has_variants&&!e.variant_id&&!o.isDigitalProduct(e))return i.jsx(a.Button,{asChild:!0,className:s,children:i.jsx(v,{href:`/product/${e.slug}`,children:"Select Options"})});if(!n)return i.jsxs(a.Button,{disabled:!0,className:s,children:[i.jsx(_.ShoppingCart,{className:"mr-2 h-4 w-4"}),r("ecommerce.add_to_cart")]});const{addItem:u}=n,m=()=>{const t=o.getProductPaymentProvider(e)??"stripe",{success:g,error:h}=u({id:e.variant_id||e.id,product_id:e.id,title:e.title,price:e.price,prices:e.prices,sale_price:e.sale_price,sale_prices:e.sale_prices,is_taxable:e.is_taxable,image_url:e.image_url,slug:e.slug,sku:e.sku,stock:e.stock,language_id:e.language_id,translation_group_id:e.translation_group_id,product_type:e.product_type,payment_provider:e.payment_provider??t,provider:t,freemius_product_id:e.freemius_product_id,freemius_plan_id:e.freemius_plan_id,trial_period_days:e.trial_period_days??0,trial_requires_payment_method:e.trial_requires_payment_method??!1,has_variants:e.has_variants,variant_id:e.variant_id,variant_label:e.variant_label,selected_options:e.selected_options,currency_code:d,quantity:c});g?l.toast.success(r("ecommerce.added_to_cart_success",{item:e.title})):l.toast.error(h||r("ecommerce.added_to_cart_error"))};return i.jsxs(a.Button,{onClick:m,className:s,children:[i.jsx(_.ShoppingCart,{className:"mr-2 h-4 w-4"}),r("ecommerce.add_to_cart")]})};exports.AddToCartButton=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-dev-runtime"),n=require("@nextblock-cms/ui/button"),o=require("lucide-react"),l=require("sonner"),C=require("next/link"),v=require("../use-cart.cjs.js"),p=require("@nextblock-cms/utils"),c=require("../types.cjs.js"),x=require("../CurrencyProvider.cjs.js"),k=({product:e,className:t,quantity:d})=>{const a=v.useCart(r=>r),{t:i}=p.useTranslations(),{activeCurrencyCode:m}=x.useCurrency();if(!!e.has_variants&&!e.variant_id&&!c.isDigitalProduct(e))return s.jsxDEV(n.Button,{asChild:!0,className:t,children:s.jsxDEV(C,{href:`/product/${e.slug}`,children:"Select Options"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",lineNumber:32,columnNumber:9},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",lineNumber:31,columnNumber:7},void 0);if(!a)return s.jsxDEV(n.Button,{disabled:!0,className:t,children:[s.jsxDEV(o.ShoppingCart,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",lineNumber:40,columnNumber:9},void 0),i("ecommerce.add_to_cart")]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",lineNumber:39,columnNumber:7},void 0);const{addItem:u}=a,_=()=>{const r=c.getProductPaymentProvider(e)??"stripe",{success:b,error:f}=u({id:e.variant_id||e.id,product_id:e.id,title:e.title,price:e.price,prices:e.prices,sale_price:e.sale_price,sale_prices:e.sale_prices,is_taxable:e.is_taxable,image_url:e.image_url,slug:e.slug,sku:e.sku,stock:e.stock,language_id:e.language_id,translation_group_id:e.translation_group_id,product_type:e.product_type,payment_provider:e.payment_provider??r,provider:r,freemius_product_id:e.freemius_product_id,freemius_plan_id:e.freemius_plan_id,trial_period_days:e.trial_period_days??0,trial_requires_payment_method:e.trial_requires_payment_method??!1,has_variants:e.has_variants,variant_id:e.variant_id,variant_label:e.variant_label,selected_options:e.selected_options,currency_code:m,quantity:d});b?l.toast.success(i("ecommerce.added_to_cart_success",{item:e.title})):l.toast.error(f||i("ecommerce.added_to_cart_error"))};return s.jsxDEV(n.Button,{onClick:_,className:t,children:[s.jsxDEV(o.ShoppingCart,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",lineNumber:90,columnNumber:7},void 0),i("ecommerce.add_to_cart")]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",lineNumber:89,columnNumber:5},void 0)};exports.AddToCartButton=k;
@@ -1,25 +1,41 @@
1
1
  'use client';
2
- import { jsx as a, jsxs as n } from "react/jsx-runtime";
3
- import { Button as s } from "@nextblock-cms/ui/button";
4
- import { ShoppingCart as o } from "lucide-react";
2
+ import { jsxDEV as r } from "react/jsx-dev-runtime";
3
+ import { Button as n } from "@nextblock-cms/ui/button";
4
+ import { ShoppingCart as a } from "lucide-react";
5
5
  import { toast as l } from "sonner";
6
- import p from "next/link";
7
- import { useCart as g } from "../use-cart.es.js";
8
- import { useTranslations as v } from "@nextblock-cms/utils";
9
- import { isDigitalProduct as u, getProductPaymentProvider as y } from "../types.es.js";
10
- import { useCurrency as C } from "../CurrencyProvider.es.js";
11
- const V = ({ product: e, className: t, quantity: m }) => {
12
- const _ = g((r) => r), { t: i } = v(), { activeCurrencyCode: d } = C();
13
- if (!!e.has_variants && !e.variant_id && !u(e))
14
- return /* @__PURE__ */ a(s, { asChild: !0, className: t, children: /* @__PURE__ */ a(p, { href: `/product/${e.slug}`, children: "Select Options" }) });
15
- if (!_)
16
- return /* @__PURE__ */ n(s, { disabled: !0, className: t, children: [
17
- /* @__PURE__ */ a(o, { className: "mr-2 h-4 w-4" }),
6
+ import b from "next/link";
7
+ import { useCart as f } from "../use-cart.es.js";
8
+ import { useTranslations as p } from "@nextblock-cms/utils";
9
+ import { isDigitalProduct as C, getProductPaymentProvider as v } from "../types.es.js";
10
+ import { useCurrency as k } from "../CurrencyProvider.es.js";
11
+ const q = ({ product: e, className: t, quantity: m }) => {
12
+ const o = f((s) => s), { t: i } = p(), { activeCurrencyCode: d } = k();
13
+ if (!!e.has_variants && !e.variant_id && !C(e))
14
+ return /* @__PURE__ */ r(n, { asChild: !0, className: t, children: /* @__PURE__ */ r(b, { href: `/product/${e.slug}`, children: "Select Options" }, void 0, !1, {
15
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
16
+ lineNumber: 32,
17
+ columnNumber: 9
18
+ }, void 0) }, void 0, !1, {
19
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
20
+ lineNumber: 31,
21
+ columnNumber: 7
22
+ }, void 0);
23
+ if (!o)
24
+ return /* @__PURE__ */ r(n, { disabled: !0, className: t, children: [
25
+ /* @__PURE__ */ r(a, { className: "mr-2 h-4 w-4" }, void 0, !1, {
26
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
27
+ lineNumber: 40,
28
+ columnNumber: 9
29
+ }, void 0),
18
30
  i("ecommerce.add_to_cart")
19
- ] });
20
- const { addItem: c } = _;
21
- return /* @__PURE__ */ n(s, { onClick: () => {
22
- const r = y(e) ?? "stripe", { success: f, error: h } = c({
31
+ ] }, void 0, !0, {
32
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
33
+ lineNumber: 39,
34
+ columnNumber: 7
35
+ }, void 0);
36
+ const { addItem: c } = o;
37
+ return /* @__PURE__ */ r(n, { onClick: () => {
38
+ const s = v(e) ?? "stripe", { success: _, error: u } = c({
23
39
  id: e.variant_id || e.id,
24
40
  product_id: e.id,
25
41
  title: e.title,
@@ -35,8 +51,8 @@ const V = ({ product: e, className: t, quantity: m }) => {
35
51
  language_id: e.language_id,
36
52
  translation_group_id: e.translation_group_id,
37
53
  product_type: e.product_type,
38
- payment_provider: e.payment_provider ?? r,
39
- provider: r,
54
+ payment_provider: e.payment_provider ?? s,
55
+ provider: s,
40
56
  freemius_product_id: e.freemius_product_id,
41
57
  // include just in case it wasn't intercepted
42
58
  freemius_plan_id: e.freemius_plan_id,
@@ -49,12 +65,20 @@ const V = ({ product: e, className: t, quantity: m }) => {
49
65
  currency_code: d,
50
66
  quantity: m
51
67
  });
52
- f ? l.success(i("ecommerce.added_to_cart_success", { item: e.title })) : l.error(h || i("ecommerce.added_to_cart_error"));
68
+ _ ? l.success(i("ecommerce.added_to_cart_success", { item: e.title })) : l.error(u || i("ecommerce.added_to_cart_error"));
53
69
  }, className: t, children: [
54
- /* @__PURE__ */ a(o, { className: "mr-2 h-4 w-4" }),
70
+ /* @__PURE__ */ r(a, { className: "mr-2 h-4 w-4" }, void 0, !1, {
71
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
72
+ lineNumber: 90,
73
+ columnNumber: 7
74
+ }, void 0),
55
75
  i("ecommerce.add_to_cart")
56
- ] });
76
+ ] }, void 0, !0, {
77
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
78
+ lineNumber: 89,
79
+ columnNumber: 5
80
+ }, void 0);
57
81
  };
58
82
  export {
59
- V as AddToCartButton
83
+ q as AddToCartButton
60
84
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),C=require("react"),_=require("@nextblock-cms/ui/badge"),n=require("@nextblock-cms/ui/button"),r=require("@nextblock-cms/ui/table"),h=require("lucide-react"),j=require("../cart-store.cjs.js"),q=require("../use-cart.cjs.js"),o=require("../types.cjs.js"),T=require("next/navigation"),d=require("@nextblock-cms/utils"),w=require("./ShippingEstimator.cjs.js"),k=require("../CurrencyProvider.cjs.js"),S=require("../trials.cjs.js"),P=require("./CouponForm.cjs.js"),B=()=>{const g=T.useRouter(),u=q.useCart(s=>s),b=j.useCartSubtotal(),{t}=d.useTranslations(),{activeCurrencyCode:l,currencies:m}=k.useCurrency(),i=u?.items??[],f=C.useMemo(()=>i.reduce((s,a)=>{if(o.isDigitalItem(a))return s;const c=j.getCartItemActivePrice(a,{currencyCode:l,currencies:m});return s+(c.sale_price??c.price)*a.quantity},0),[l,m,i]);if(!u)return null;const{updateQuantity:p,removeItem:N}=u,v=s=>i.reduce((a,c)=>o.isDigitalItem(c)||c.sku!==s?a:a+c.quantity,0),y=()=>{g.push("/checkout")};return i.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center space-y-4 py-12",children:[e.jsx("h2",{className:"text-2xl font-bold",children:t("ecommerce.cart_empty")}),e.jsx("p",{className:"text-muted-foreground",children:t("ecommerce.cart_empty_description")}),e.jsx(n.Button,{asChild:!0,children:e.jsx("a",{href:"/shop",children:t("ecommerce.continue_shopping")})})]}):e.jsxs("div",{className:"container mx-auto py-12",children:[e.jsx("h1",{className:"mb-8 text-3xl font-bold",children:t("ecommerce.shopping_cart")}),e.jsxs("div",{className:"grid gap-12 lg:grid-cols-12 lg:items-start",children:[e.jsx("div",{className:"lg:col-span-8",children:e.jsx("div",{className:"rounded-lg border overflow-hidden",children:e.jsxs(r.Table,{children:[e.jsx(r.TableHeader,{children:e.jsxs(r.TableRow,{children:[e.jsx(r.TableHead,{children:t("ecommerce.product")}),e.jsx(r.TableHead,{children:t("ecommerce.quantity")}),e.jsx(r.TableHead,{className:"text-right",children:t("ecommerce.price")}),e.jsx(r.TableHead,{className:"text-right",children:t("ecommerce.total")}),e.jsx(r.TableHead,{className:"w-[50px]"})]})}),e.jsx(r.TableBody,{children:i.map(s=>{const a=v(s.sku),c=j.getCartItemActivePrice(s,{currencyCode:l,currencies:m}),x=S.getTrialSummary(s);return e.jsxs(r.TableRow,{children:[e.jsx(r.TableCell,{children:e.jsxs("div",{className:"flex items-center gap-4",children:[s.image_url?e.jsx("div",{className:"h-16 w-16 overflow-hidden rounded border bg-neutral-100",children:e.jsx("img",{src:s.image_url,alt:s.title,className:"h-full w-full object-cover"})}):e.jsx("div",{className:"flex h-16 w-16 items-center justify-center rounded bg-secondary",children:e.jsx("span",{className:"text-[10px] text-muted-foreground",children:t("ecommerce.no_image")})}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:s.title}),s.variant_label&&e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:s.variant_label}),o.isDigitalItem(s)&&s.billing_cycle&&e.jsxs("div",{className:"mt-1 text-xs capitalize text-muted-foreground",children:[s.billing_cycle," Subscription"]}),x&&e.jsxs("div",{className:"mt-1 text-xs font-medium text-emerald-700",children:[x.label," - ",x.paymentRequirementLabel]})]})]})}),e.jsx(r.TableCell,{children:o.isDigitalItem(s)?e.jsx(_.Badge,{variant:"secondary",className:"font-normal text-xs",children:"1 (License)"}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(n.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>p(s.id,s.quantity-1),children:e.jsx(h.Minus,{className:"h-4 w-4"})}),e.jsx("span",{className:"w-8 text-center",children:s.quantity}),e.jsx(n.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>p(s.id,s.quantity+1),disabled:typeof s.stock=="number"&&a>=s.stock,children:e.jsx(h.Plus,{className:"h-4 w-4"})})]})}),e.jsx(r.TableCell,{className:"text-right",children:e.jsxs("div",{className:"flex flex-col items-end",children:[e.jsx("span",{className:"font-medium",children:d.formatPrice(c.sale_price??c.price,l)}),c.sale_price&&e.jsx("span",{className:"text-xs text-muted-foreground line-through",children:d.formatPrice(c.price,l)})]})}),e.jsx(r.TableCell,{className:"text-right font-medium",children:d.formatPrice((c.sale_price??c.price)*s.quantity,l)}),e.jsx(r.TableCell,{children:e.jsx(n.Button,{variant:"ghost",size:"icon",onClick:()=>N(s.id),className:"text-muted-foreground hover:text-destructive",children:e.jsx(h.Trash2,{className:"h-4 w-4"})})})]},s.id)})})]})})}),e.jsx("div",{className:"lg:col-span-4",children:e.jsxs("div",{className:"rounded-lg border bg-card p-6 shadow-sm",children:[e.jsx("h2",{className:"mb-4 text-lg font-semibold",children:t("ecommerce.order_summary")}),e.jsxs("div",{className:"flex justify-between border-b pb-4",children:[e.jsx("span",{children:t("ecommerce.subtotal")}),e.jsx("span",{className:"font-medium",children:d.formatPrice(b,l)})]}),e.jsxs("div",{className:"mt-4 flex flex-col gap-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:t("ecommerce.shipping_taxes_calculated")}),i.some(s=>!o.isDigitalItem(s))&&e.jsx(w.ShippingEstimator,{physicalSubtotal:f}),e.jsx(P.CouponForm,{items:i,currencyCode:l,compact:!0}),e.jsx(n.Button,{className:"w-full mt-4",size:"lg",onClick:y,children:t("ecommerce.proceed_to_checkout")})]})]})})]})]})};exports.Cart=B;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),h=require("react"),E=require("@nextblock-cms/ui/badge"),t=require("@nextblock-cms/ui/button"),n=require("@nextblock-cms/ui/table"),x=require("lucide-react"),N=require("../cart-store.cjs.js"),U=require("../use-cart.cjs.js"),m=require("../types.cjs.js"),V=require("next/navigation"),d=require("@nextblock-cms/utils"),g=require("./ShippingEstimator.cjs.js"),y=require("../CurrencyProvider.cjs.js"),_=require("../trials.cjs.js"),q=require("./CouponForm.cjs.js"),T=()=>{const p=V.useRouter(),a=U.useCart(s=>s),C=N.useCartSubtotal(),{t:r}=d.useTranslations(),{activeCurrencyCode:l,currencies:u}=y.useCurrency(),o=a?.items??[],k=h.useMemo(()=>o.reduce((s,c)=>{if(m.isDigitalItem(c))return s;const i=N.getCartItemActivePrice(c,{currencyCode:l,currencies:u});return s+(i.sale_price??i.price)*c.quantity},0),[l,u,o]);if(!a)return null;const{updateQuantity:f,removeItem:j}=a,D=s=>o.reduce((c,i)=>m.isDigitalItem(i)||i.sku!==s?c:c+i.quantity,0),v=()=>{p.push("/checkout")};return o.length===0?e.jsxDEV("div",{className:"flex flex-col items-center justify-center space-y-4 py-12",children:[e.jsxDEV("h2",{className:"text-2xl font-bold",children:r("ecommerce.cart_empty")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:69,columnNumber:9},void 0),e.jsxDEV("p",{className:"text-muted-foreground",children:r("ecommerce.cart_empty_description")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:70,columnNumber:9},void 0),e.jsxDEV(t.Button,{asChild:!0,children:e.jsxDEV("a",{href:"/shop",children:r("ecommerce.continue_shopping")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:72,columnNumber:11},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:71,columnNumber:9},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:68,columnNumber:7},void 0):e.jsxDEV("div",{className:"container mx-auto py-12",children:[e.jsxDEV("h1",{className:"mb-8 text-3xl font-bold",children:r("ecommerce.shopping_cart")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:80,columnNumber:7},void 0),e.jsxDEV("div",{className:"grid gap-12 lg:grid-cols-12 lg:items-start",children:[e.jsxDEV("div",{className:"lg:col-span-8",children:e.jsxDEV("div",{className:"rounded-lg border overflow-hidden",children:e.jsxDEV(n.Table,{children:[e.jsxDEV(n.TableHeader,{children:e.jsxDEV(n.TableRow,{children:[e.jsxDEV(n.TableHead,{children:r("ecommerce.product")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:88,columnNumber:19},void 0),e.jsxDEV(n.TableHead,{children:r("ecommerce.quantity")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:89,columnNumber:19},void 0),e.jsxDEV(n.TableHead,{className:"text-right",children:r("ecommerce.price")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:90,columnNumber:19},void 0),e.jsxDEV(n.TableHead,{className:"text-right",children:r("ecommerce.total")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:91,columnNumber:19},void 0),e.jsxDEV(n.TableHead,{className:"w-[50px]"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:92,columnNumber:19},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:87,columnNumber:17},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:86,columnNumber:15},void 0),e.jsxDEV(n.TableBody,{children:o.map(s=>{const c=D(s.sku),i=N.getCartItemActivePrice(s,{currencyCode:l,currencies:u}),b=_.getTrialSummary(s);return e.jsxDEV(n.TableRow,{children:[e.jsxDEV(n.TableCell,{children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[s.image_url?e.jsxDEV("div",{className:"h-16 w-16 overflow-hidden rounded border bg-neutral-100",children:e.jsxDEV("img",{src:s.image_url,alt:s.title,className:"h-full w-full object-cover"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:110,columnNumber:31},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:109,columnNumber:29},void 0):e.jsxDEV("div",{className:"flex h-16 w-16 items-center justify-center rounded bg-secondary",children:e.jsxDEV("span",{className:"text-[10px] text-muted-foreground",children:r("ecommerce.no_image")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:118,columnNumber:31},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:117,columnNumber:29},void 0),e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"font-medium",children:s.title},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:124,columnNumber:29},void 0),s.variant_label&&e.jsxDEV("div",{className:"mt-1 text-xs text-muted-foreground",children:s.variant_label},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:126,columnNumber:31},void 0),m.isDigitalItem(s)&&s.billing_cycle&&e.jsxDEV("div",{className:"mt-1 text-xs capitalize text-muted-foreground",children:[s.billing_cycle," Subscription"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:131,columnNumber:31},void 0),b&&e.jsxDEV("div",{className:"mt-1 text-xs font-medium text-emerald-700",children:[b.label," - ",b.paymentRequirementLabel]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:136,columnNumber:31},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:123,columnNumber:27},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:107,columnNumber:25},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:106,columnNumber:23},void 0),e.jsxDEV(n.TableCell,{children:m.isDigitalItem(s)?e.jsxDEV(E.Badge,{variant:"secondary",className:"font-normal text-xs",children:"1 (License)"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:145,columnNumber:27},void 0):e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(t.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>f(s.id,s.quantity-1),children:e.jsxDEV(x.Minus,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:156,columnNumber:31},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:150,columnNumber:29},void 0),e.jsxDEV("span",{className:"w-8 text-center",children:s.quantity},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:158,columnNumber:29},void 0),e.jsxDEV(t.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>f(s.id,s.quantity+1),disabled:typeof s.stock=="number"&&c>=s.stock,children:e.jsxDEV(x.Plus,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:169,columnNumber:31},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:159,columnNumber:29},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:149,columnNumber:27},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:143,columnNumber:23},void 0),e.jsxDEV(n.TableCell,{className:"text-right",children:e.jsxDEV("div",{className:"flex flex-col items-end",children:[e.jsxDEV("span",{className:"font-medium",children:d.formatPrice(i.sale_price??i.price,l)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:176,columnNumber:27},void 0),i.sale_price&&e.jsxDEV("span",{className:"text-xs text-muted-foreground line-through",children:d.formatPrice(i.price,l)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:180,columnNumber:29},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:175,columnNumber:25},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:174,columnNumber:23},void 0),e.jsxDEV(n.TableCell,{className:"text-right font-medium",children:d.formatPrice((i.sale_price??i.price)*s.quantity,l)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:186,columnNumber:23},void 0),e.jsxDEV(n.TableCell,{children:e.jsxDEV(t.Button,{variant:"ghost",size:"icon",onClick:()=>j(s.id),className:"text-muted-foreground hover:text-destructive",children:e.jsxDEV(x.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:199,columnNumber:27},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:193,columnNumber:25},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:192,columnNumber:23},void 0)]},s.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:105,columnNumber:21},void 0)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:95,columnNumber:15},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:85,columnNumber:13},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:84,columnNumber:11},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:83,columnNumber:9},void 0),e.jsxDEV("div",{className:"lg:col-span-4",children:e.jsxDEV("div",{className:"rounded-lg border bg-card p-6 shadow-sm",children:[e.jsxDEV("h2",{className:"mb-4 text-lg font-semibold",children:r("ecommerce.order_summary")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:212,columnNumber:17},void 0),e.jsxDEV("div",{className:"flex justify-between border-b pb-4",children:[e.jsxDEV("span",{children:r("ecommerce.subtotal")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:214,columnNumber:21},void 0),e.jsxDEV("span",{className:"font-medium",children:d.formatPrice(C,l)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:215,columnNumber:21},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:213,columnNumber:17},void 0),e.jsxDEV("div",{className:"mt-4 flex flex-col gap-4",children:[e.jsxDEV("p",{className:"text-sm text-muted-foreground",children:r("ecommerce.shipping_taxes_calculated")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:218,columnNumber:21},void 0),o.some(s=>!m.isDigitalItem(s))&&e.jsxDEV(g.ShippingEstimator,{physicalSubtotal:k},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:223,columnNumber:25},void 0),e.jsxDEV(q.CouponForm,{items:o,currencyCode:l,compact:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:226,columnNumber:21},void 0),e.jsxDEV(t.Button,{className:"w-full mt-4",size:"lg",onClick:v,children:r("ecommerce.proceed_to_checkout")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:232,columnNumber:21},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:217,columnNumber:18},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:211,columnNumber:13},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:210,columnNumber:9},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:82,columnNumber:7},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:79,columnNumber:5},void 0)};exports.Cart=T;