@nextblock-cms/ecom 0.18.8 → 0.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs.js +1 -1
- package/index.es.js +26 -25
- package/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +41 -45
- package/lib/PaymentReadinessProvider.cjs.js +1 -1
- package/lib/PaymentReadinessProvider.es.js +15 -19
- package/lib/cart-store.cjs.js +1 -1
- package/lib/cart-store.d.ts +4 -0
- package/lib/cart-store.es.js +77 -69
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +44 -62
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +50 -78
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +154 -381
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +143 -297
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +21 -47
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +814 -1614
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +104 -155
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +14 -33
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +264 -672
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +46 -125
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +45 -125
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +148 -487
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.d.ts +4 -1
- package/lib/components/InvoiceViewerShell.es.js +59 -142
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.d.ts +3 -1
- package/lib/components/ProductCard.es.js +128 -242
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +311 -652
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.d.ts +2 -0
- package/lib/components/ProductGallery.es.js +37 -66
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +23 -32
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +118 -231
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +111 -294
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +120 -181
- package/lib/freemius-trial-provision.cjs.js +1 -0
- package/lib/freemius-trial-provision.d.ts +85 -0
- package/lib/freemius-trial-provision.es.js +136 -0
- package/lib/invoice.cjs.js +1 -1
- package/lib/invoice.d.ts +1 -1
- package/lib/invoice.es.js +6 -5
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +115 -375
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +116 -368
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +26 -62
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +35 -71
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +72 -167
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +87 -247
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +95 -283
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +9 -21
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +46 -106
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +78 -257
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +192 -580
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +14 -22
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +47 -87
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +97 -177
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +40 -84
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +192 -455
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +28 -72
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +183 -490
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +69 -177
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +102 -213
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +25 -45
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +58 -202
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +89 -235
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +526 -1110
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +63 -154
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +213 -544
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +91 -207
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +16 -28
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +25 -37
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +261 -492
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +12 -32
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +145 -365
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +30 -42
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +155 -507
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +334 -717
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +158 -392
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +119 -447
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +52 -156
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +10 -14
- package/lib/trials.cjs.js +1 -1
- package/lib/trials.d.ts +10 -3
- package/lib/trials.es.js +28 -21
- package/lib/types.d.ts +2 -0
- package/lib/use-price-formatter.cjs.js +1 -0
- package/lib/use-price-formatter.d.ts +11 -0
- package/lib/use-price-formatter.es.js +13 -0
- package/lib/variation-utils.cjs.js +1 -1
- package/lib/variation-utils.d.ts +10 -0
- package/lib/variation-utils.es.js +139 -123
- package/package.json +4 -4
- package/server.cjs.js +1 -1
- package/server.d.ts +1 -0
- package/server.es.js +180 -172
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),m=require("next/link"),f=require("next/navigation"),d=require("lucide-react"),o=require("@nextblock-cms/utils");function i(r,t,c){const a=r(t);return a===t?c:a}function g(r){return r==="password"?d.KeyRound:d.Package2}function h({links:r,title:t,className:c}){const a=f.usePathname(),{t:s}=o.useTranslations();return r.length?n.jsxs("nav",{"aria-label":t||i(s,"account_navigation","Account"),className:o.cn("w-full space-y-3",c),children:[n.jsx("div",{"aria-hidden":"true",className:"text-sm font-medium text-muted-foreground uppercase tracking-wider",children:t||i(s,"account_navigation","Account")}),n.jsx("div",{className:"space-y-2",children:r.map(e=>{const l=g(e.icon),u=a===e.href||a.startsWith(`${e.href}/`);return n.jsxs(m,{href:e.href,"aria-current":u?"page":void 0,className:o.cn("flex items-center gap-3 rounded-xl border px-3 py-2.5 text-sm font-medium transition-colors",u?"border-primary bg-primary text-primary-foreground":"border-border bg-background hover:bg-muted/40"),children:[n.jsx(l,{className:"h-4 w-4 shrink-0"}),n.jsx("span",{children:i(s,e.labelKey,e.fallbackLabel)})]},e.href)})})]}):null}exports.AccountNavigationMenu=h;
|
|
@@ -1,70 +1,52 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { usePathname as
|
|
5
|
-
import { KeyRound as
|
|
6
|
-
import { useTranslations as
|
|
7
|
-
function
|
|
8
|
-
const
|
|
9
|
-
return
|
|
2
|
+
import { jsxs as u, jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import l from "next/link";
|
|
4
|
+
import { usePathname as f } from "next/navigation";
|
|
5
|
+
import { KeyRound as p, Package2 as h } from "lucide-react";
|
|
6
|
+
import { useTranslations as g, cn as m } from "@nextblock-cms/utils";
|
|
7
|
+
function s(e, a, o) {
|
|
8
|
+
const t = e(a);
|
|
9
|
+
return t === a ? o : t;
|
|
10
10
|
}
|
|
11
|
-
function
|
|
12
|
-
return
|
|
11
|
+
function b(e) {
|
|
12
|
+
return e === "password" ? p : h;
|
|
13
13
|
}
|
|
14
14
|
function A({
|
|
15
|
-
links:
|
|
16
|
-
title:
|
|
17
|
-
className:
|
|
15
|
+
links: e,
|
|
16
|
+
title: a,
|
|
17
|
+
className: o
|
|
18
18
|
}) {
|
|
19
|
-
const
|
|
20
|
-
return
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
!0,
|
|
51
|
-
{
|
|
52
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",
|
|
53
|
-
lineNumber: 66,
|
|
54
|
-
columnNumber: 13
|
|
55
|
-
},
|
|
56
|
-
this
|
|
57
|
-
);
|
|
58
|
-
}) }, void 0, !1, {
|
|
59
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-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/NRH-NextBlock/libs/ecommerce/src/lib/components/AccountNavigationMenu.tsx",
|
|
65
|
-
lineNumber: 54,
|
|
66
|
-
columnNumber: 5
|
|
67
|
-
}, this) : null;
|
|
19
|
+
const t = f(), { t: c } = g();
|
|
20
|
+
return e.length ? /* @__PURE__ */ u(
|
|
21
|
+
"nav",
|
|
22
|
+
{
|
|
23
|
+
"aria-label": a || s(c, "account_navigation", "Account"),
|
|
24
|
+
className: m("w-full space-y-3", o),
|
|
25
|
+
children: [
|
|
26
|
+
/* @__PURE__ */ n("div", { "aria-hidden": "true", className: "text-sm font-medium text-muted-foreground uppercase tracking-wider", children: a || s(c, "account_navigation", "Account") }),
|
|
27
|
+
/* @__PURE__ */ n("div", { className: "space-y-2", children: e.map((r) => {
|
|
28
|
+
const d = b(r.icon), i = t === r.href || t.startsWith(`${r.href}/`);
|
|
29
|
+
return /* @__PURE__ */ u(
|
|
30
|
+
l,
|
|
31
|
+
{
|
|
32
|
+
href: r.href,
|
|
33
|
+
"aria-current": i ? "page" : void 0,
|
|
34
|
+
className: m(
|
|
35
|
+
"flex items-center gap-3 rounded-xl border px-3 py-2.5 text-sm font-medium transition-colors",
|
|
36
|
+
// Theme tokens: slate-900 on a dark theme was a dark pill on a dark card.
|
|
37
|
+
i ? "border-primary bg-primary text-primary-foreground" : "border-border bg-background hover:bg-muted/40"
|
|
38
|
+
),
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ n(d, { className: "h-4 w-4 shrink-0" }),
|
|
41
|
+
/* @__PURE__ */ n("span", { children: s(c, r.labelKey, r.fallbackLabel) })
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
r.href
|
|
45
|
+
);
|
|
46
|
+
}) })
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
) : null;
|
|
68
50
|
}
|
|
69
51
|
export {
|
|
70
52
|
A as AccountNavigationMenu
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),a=require("@nextblock-cms/ui/button"),n=require("lucide-react"),d=require("sonner"),u=require("next/link"),p=require("../use-cart.cjs.js"),q=require("@nextblock-cms/utils"),m=require("../types.cjs.js"),P=require("../CurrencyProvider.cjs.js"),S=require("../PaymentReadinessProvider.cjs.js"),B=({product:e,className:i,quantity:h})=>{const l=p.useCart(t=>t),{t:r}=q.useTranslations(),{activeCurrencyCode:g}=P.useCurrency(),f=S.useCanPurchase(e),_=m.isDigitalProduct(e),y=!!e.has_variants&&!e.variant_id&&!_,v=!_&&typeof e.stock=="number"&&e.stock<=0;if(!f){const t=r("ecommerce.contact_seller");return s.jsx(a.Button,{asChild:!0,variant:"outline",className:i,children:s.jsxs(u,{href:`/product/${e.slug}#contact-seller`,children:[s.jsx(n.Mail,{className:"mr-2 h-4 w-4"}),t==="ecommerce.contact_seller"?"Contact the seller":t]})})}if(y)return s.jsx(a.Button,{asChild:!0,className:i,children:s.jsx(u,{href:`/product/${e.slug}`,children:r("ecommerce.select_options")==="ecommerce.select_options"?"Select options":r("ecommerce.select_options")})});if(v){const t=r("ecommerce.out_of_stock");return s.jsxs(a.Button,{disabled:!0,className:i,children:[s.jsx(n.ShoppingCart,{className:"mr-2 h-4 w-4"}),t==="ecommerce.out_of_stock"?"Out of stock":t]})}if(!l)return s.jsxs(a.Button,{disabled:!0,className:i,children:[s.jsx(n.ShoppingCart,{className:"mr-2 h-4 w-4"}),r("ecommerce.add_to_cart")]});const{addItem:C}=l,b=()=>{const t=m.getProductPaymentProvider(e)??"stripe",{success:x,error:j,errorKey:c,errorParams:k}=C({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,sale_start_at:e.sale_start_at,sale_end_at:e.sale_end_at,scheduled_price:e.scheduled_price,scheduled_prices:e.scheduled_prices,scheduled_price_at:e.scheduled_price_at,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:g,quantity:h});if(x)d.toast.success(r("ecommerce.added_to_cart_success",{item:e.title}));else{const o=c?r(c,k):null;d.toast.error(o&&o!==c?o:j||r("ecommerce.added_to_cart_error"))}};return s.jsxs(a.Button,{onClick:b,className:i,children:[s.jsx(n.ShoppingCart,{className:"mr-2 h-4 w-4"}),r("ecommerce.add_to_cart")]})};exports.AddToCartButton=B;
|
|
@@ -1,76 +1,40 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import { Button as
|
|
4
|
-
import { Mail as
|
|
5
|
-
import { toast as
|
|
6
|
-
import
|
|
7
|
-
import { useCart as
|
|
8
|
-
import { useTranslations as
|
|
9
|
-
import { isDigitalProduct as
|
|
10
|
-
import { useCurrency as
|
|
11
|
-
import { useCanPurchase as
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
if (!
|
|
2
|
+
import { jsx as s, jsxs as o } from "react/jsx-runtime";
|
|
3
|
+
import { Button as a } from "@nextblock-cms/ui/button";
|
|
4
|
+
import { Mail as P, ShoppingCart as l } from "lucide-react";
|
|
5
|
+
import { toast as d } from "sonner";
|
|
6
|
+
import h from "next/link";
|
|
7
|
+
import { useCart as x } from "../use-cart.es.js";
|
|
8
|
+
import { useTranslations as S } from "@nextblock-cms/utils";
|
|
9
|
+
import { isDigitalProduct as w, getProductPaymentProvider as O } from "../types.es.js";
|
|
10
|
+
import { useCurrency as T } from "../CurrencyProvider.es.js";
|
|
11
|
+
import { useCanPurchase as q } from "../PaymentReadinessProvider.es.js";
|
|
12
|
+
const z = ({ product: e, className: i, quantity: f }) => {
|
|
13
|
+
const c = x((r) => r), { t } = S(), { activeCurrencyCode: u } = T(), p = q(e), m = w(e), g = !!e.has_variants && !e.variant_id && !m, v = !m && typeof e.stock == "number" && e.stock <= 0;
|
|
14
|
+
if (!p) {
|
|
15
15
|
const r = t("ecommerce.contact_seller");
|
|
16
|
-
return /* @__PURE__ */ s(
|
|
17
|
-
/* @__PURE__ */ s(
|
|
18
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
19
|
-
lineNumber: 46,
|
|
20
|
-
columnNumber: 11
|
|
21
|
-
}, void 0),
|
|
16
|
+
return /* @__PURE__ */ s(a, { asChild: !0, variant: "outline", className: i, children: /* @__PURE__ */ o(h, { href: `/product/${e.slug}#contact-seller`, children: [
|
|
17
|
+
/* @__PURE__ */ s(P, { className: "mr-2 h-4 w-4" }),
|
|
22
18
|
r === "ecommerce.contact_seller" ? "Contact the seller" : r
|
|
23
|
-
] }
|
|
24
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
25
|
-
lineNumber: 45,
|
|
26
|
-
columnNumber: 9
|
|
27
|
-
}, void 0) }, void 0, !1, {
|
|
28
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
29
|
-
lineNumber: 44,
|
|
30
|
-
columnNumber: 7
|
|
31
|
-
}, void 0);
|
|
19
|
+
] }) });
|
|
32
20
|
}
|
|
33
|
-
if (
|
|
34
|
-
return /* @__PURE__ */ s(
|
|
35
|
-
|
|
36
|
-
lineNumber: 56,
|
|
37
|
-
columnNumber: 9
|
|
38
|
-
}, void 0) }, void 0, !1, {
|
|
39
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
40
|
-
lineNumber: 55,
|
|
41
|
-
columnNumber: 7
|
|
42
|
-
}, void 0);
|
|
43
|
-
if (N) {
|
|
21
|
+
if (g)
|
|
22
|
+
return /* @__PURE__ */ s(a, { asChild: !0, className: i, children: /* @__PURE__ */ s(h, { href: `/product/${e.slug}`, children: t("ecommerce.select_options") === "ecommerce.select_options" ? "Select options" : t("ecommerce.select_options") }) });
|
|
23
|
+
if (v) {
|
|
44
24
|
const r = t("ecommerce.out_of_stock");
|
|
45
|
-
return /* @__PURE__ */
|
|
46
|
-
/* @__PURE__ */ s(
|
|
47
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
48
|
-
lineNumber: 66,
|
|
49
|
-
columnNumber: 9
|
|
50
|
-
}, void 0),
|
|
25
|
+
return /* @__PURE__ */ o(a, { disabled: !0, className: i, children: [
|
|
26
|
+
/* @__PURE__ */ s(l, { className: "mr-2 h-4 w-4" }),
|
|
51
27
|
r === "ecommerce.out_of_stock" ? "Out of stock" : r
|
|
52
|
-
] }
|
|
53
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
54
|
-
lineNumber: 65,
|
|
55
|
-
columnNumber: 7
|
|
56
|
-
}, void 0);
|
|
28
|
+
] });
|
|
57
29
|
}
|
|
58
|
-
if (!
|
|
59
|
-
return /* @__PURE__ */
|
|
60
|
-
/* @__PURE__ */ s(
|
|
61
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
62
|
-
lineNumber: 77,
|
|
63
|
-
columnNumber: 9
|
|
64
|
-
}, void 0),
|
|
30
|
+
if (!c)
|
|
31
|
+
return /* @__PURE__ */ o(a, { disabled: !0, className: i, children: [
|
|
32
|
+
/* @__PURE__ */ s(l, { className: "mr-2 h-4 w-4" }),
|
|
65
33
|
t("ecommerce.add_to_cart")
|
|
66
|
-
] }
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}, void 0);
|
|
71
|
-
const { addItem: b } = a;
|
|
72
|
-
return /* @__PURE__ */ s(o, { onClick: () => {
|
|
73
|
-
const r = B(e) ?? "stripe", { success: p, error: k } = b({
|
|
34
|
+
] });
|
|
35
|
+
const { addItem: y } = c;
|
|
36
|
+
return /* @__PURE__ */ o(a, { onClick: () => {
|
|
37
|
+
const r = O(e) ?? "stripe", { success: k, error: C, errorKey: n, errorParams: b } = y({
|
|
74
38
|
id: e.variant_id || e.id,
|
|
75
39
|
product_id: e.id,
|
|
76
40
|
title: e.title,
|
|
@@ -78,6 +42,15 @@ const q = ({ product: e, className: i, quantity: d }) => {
|
|
|
78
42
|
prices: e.prices,
|
|
79
43
|
sale_price: e.sale_price,
|
|
80
44
|
sale_prices: e.sale_prices,
|
|
45
|
+
// The sale window and the scheduled price travel with the line. The cart prices a line
|
|
46
|
+
// with `resolveEffectivePriceForCurrency`, where a missing window means "always on":
|
|
47
|
+
// without these an expired or not-yet-started sale showed the regular price on the
|
|
48
|
+
// product page and the sale price in the cart, the drawer and the subtotal.
|
|
49
|
+
sale_start_at: e.sale_start_at,
|
|
50
|
+
sale_end_at: e.sale_end_at,
|
|
51
|
+
scheduled_price: e.scheduled_price,
|
|
52
|
+
scheduled_prices: e.scheduled_prices,
|
|
53
|
+
scheduled_price_at: e.scheduled_price_at,
|
|
81
54
|
is_taxable: e.is_taxable,
|
|
82
55
|
image_url: e.image_url,
|
|
83
56
|
slug: e.slug,
|
|
@@ -98,22 +71,21 @@ const q = ({ product: e, className: i, quantity: d }) => {
|
|
|
98
71
|
variant_label: e.variant_label,
|
|
99
72
|
selected_options: e.selected_options,
|
|
100
73
|
currency_code: u,
|
|
101
|
-
quantity:
|
|
74
|
+
quantity: f
|
|
102
75
|
});
|
|
103
|
-
|
|
76
|
+
if (k)
|
|
77
|
+
d.success(t("ecommerce.added_to_cart_success", { item: e.title }));
|
|
78
|
+
else {
|
|
79
|
+
const _ = n ? t(n, b) : null;
|
|
80
|
+
d.error(
|
|
81
|
+
_ && _ !== n ? _ : C || t("ecommerce.added_to_cart_error")
|
|
82
|
+
);
|
|
83
|
+
}
|
|
104
84
|
}, className: i, children: [
|
|
105
|
-
/* @__PURE__ */ s(
|
|
106
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
107
|
-
lineNumber: 127,
|
|
108
|
-
columnNumber: 7
|
|
109
|
-
}, void 0),
|
|
85
|
+
/* @__PURE__ */ s(l, { className: "mr-2 h-4 w-4" }),
|
|
110
86
|
t("ecommerce.add_to_cart")
|
|
111
|
-
] }
|
|
112
|
-
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/AddToCartButton.tsx",
|
|
113
|
-
lineNumber: 126,
|
|
114
|
-
columnNumber: 5
|
|
115
|
-
}, void 0);
|
|
87
|
+
] });
|
|
116
88
|
};
|
|
117
89
|
export {
|
|
118
|
-
|
|
90
|
+
z as AddToCartButton
|
|
119
91
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),h=require("react"),B=require("@nextblock-cms/ui/badge"),t=require("@nextblock-cms/ui/button"),r=require("@nextblock-cms/ui/table"),b=require("lucide-react"),x=require("../cart-store.cjs.js"),R=require("../use-cart.cjs.js"),m=require("../types.cjs.js"),H=require("next/navigation"),d=require("@nextblock-cms/utils"),E=require("./ShippingEstimator.cjs.js"),U=require("../CurrencyProvider.cjs.js"),V=require("../trials.cjs.js"),g=require("./CouponForm.cjs.js"),y=()=>{const p=H.useRouter(),a=R.useCart(s=>s),C=x.useCartSubtotal(),{t:n}=d.useTranslations(),{activeCurrencyCode:l,currencies:u}=U.useCurrency(),o=a?.items??[],k=h.useMemo(()=>o.reduce((s,c)=>{if(m.isDigitalItem(c))return s;const i=x.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:n("ecommerce.cart_empty")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:69,columnNumber:9},void 0),e.jsxDEV("p",{className:"text-muted-foreground",children:n("ecommerce.cart_empty_description")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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:n("ecommerce.continue_shopping")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:72,columnNumber:11},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:71,columnNumber:9},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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:n("ecommerce.shopping_cart")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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(r.Table,{children:[e.jsxDEV(r.TableHeader,{children:e.jsxDEV(r.TableRow,{children:[e.jsxDEV(r.TableHead,{children:n("ecommerce.product")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:88,columnNumber:19},void 0),e.jsxDEV(r.TableHead,{children:n("ecommerce.quantity")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:89,columnNumber:19},void 0),e.jsxDEV(r.TableHead,{className:"text-right",children:n("ecommerce.price")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:90,columnNumber:19},void 0),e.jsxDEV(r.TableHead,{className:"text-right",children:n("ecommerce.total")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:91,columnNumber:19},void 0),e.jsxDEV(r.TableHead,{className:"w-[50px]"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:92,columnNumber:19},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:87,columnNumber:17},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:86,columnNumber:15},void 0),e.jsxDEV(r.TableBody,{children:o.map(s=>{const c=D(s.sku),i=x.getCartItemActivePrice(s,{currencyCode:l,currencies:u}),N=V.getTrialSummary(s);return e.jsxDEV(r.TableRow,{children:[e.jsxDEV(r.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/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:110,columnNumber:31},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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:n("ecommerce.no_image")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:118,columnNumber:31},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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/NRH-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/NRH-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/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:131,columnNumber:31},void 0),N&&e.jsxDEV("div",{className:"mt-1 text-xs font-medium text-emerald-700",children:[N.label," - ",N.paymentRequirementLabel]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:136,columnNumber:31},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:123,columnNumber:27},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:107,columnNumber:25},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:106,columnNumber:23},void 0),e.jsxDEV(r.TableCell,{children:m.isDigitalItem(s)?e.jsxDEV(B.Badge,{variant:"secondary",className:"font-normal text-xs",children:"1 (License)"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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(b.Minus,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:156,columnNumber:31},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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/NRH-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(b.Plus,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:169,columnNumber:31},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:159,columnNumber:29},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:149,columnNumber:27},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:143,columnNumber:23},void 0),e.jsxDEV(r.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/NRH-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/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:180,columnNumber:29},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:175,columnNumber:25},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:174,columnNumber:23},void 0),e.jsxDEV(r.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/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:186,columnNumber:23},void 0),e.jsxDEV(r.TableCell,{children:e.jsxDEV(t.Button,{variant:"ghost",size:"icon",onClick:()=>j(s.id),className:"text-muted-foreground hover:text-destructive",children:e.jsxDEV(b.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:199,columnNumber:27},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:193,columnNumber:25},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:192,columnNumber:23},void 0)]},s.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:105,columnNumber:21},void 0)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:95,columnNumber:15},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:85,columnNumber:13},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:84,columnNumber:11},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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:n("ecommerce.order_summary")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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:n("ecommerce.subtotal")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:215,columnNumber:21},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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:n("ecommerce.shipping_taxes_calculated")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:218,columnNumber:21},void 0),o.some(s=>!m.isDigitalItem(s))&&e.jsxDEV(E.ShippingEstimator,{physicalSubtotal:k},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:223,columnNumber:25},void 0),e.jsxDEV(g.CouponForm,{items:o,currencyCode:l,compact:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-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:n("ecommerce.proceed_to_checkout")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:232,columnNumber:21},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:217,columnNumber:18},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:211,columnNumber:13},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:210,columnNumber:9},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:82,columnNumber:7},void 0)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/Cart.tsx",lineNumber:79,columnNumber:5},void 0)};exports.Cart=y;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),q=require("react"),C=require("@nextblock-cms/ui/badge"),d=require("@nextblock-cms/ui/button"),t=require("@nextblock-cms/ui/table"),j=require("lucide-react"),p=require("../cart-store.cjs.js"),w=require("../use-cart.cjs.js"),u=require("../types.cjs.js"),g=require("next/link"),T=require("@nextblock-cms/utils"),k=require("../use-price-formatter.cjs.js"),S=require("./ShippingEstimator.cjs.js"),P=require("../CurrencyProvider.cjs.js"),R=require("../trials.cjs.js"),B=require("./CouponForm.cjs.js"),H=()=>{const m=k.usePriceFormatter(),x=w.useCart(s=>s),y=p.useCartSubtotal(),{t:c}=T.useTranslations(),l=(s,a,r)=>{const o=c(s,r);return o===s?a:o},N="/shop",{activeCurrencyCode:i,currencies:h}=P.useCurrency(),n=x?.items??[],f=q.useMemo(()=>n.reduce((s,a)=>{if(u.isDigitalItem(a))return s;const r=p.getCartItemActivePrice(a,{currencyCode:i,currencies:h});return s+(r.sale_price??r.price)*a.quantity},0),[i,h,n]);if(!x)return null;const{updateQuantity:b,removeItem:v}=x,_=s=>n.reduce((a,r)=>u.isDigitalItem(r)||r.sku!==s?a:a+r.quantity,0);return n.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center space-y-4 py-12",children:[e.jsx("h1",{className:"text-2xl font-bold",children:c("ecommerce.cart_empty")}),e.jsx("p",{className:"text-muted-foreground",children:c("ecommerce.cart_empty_description")}),e.jsx(d.Button,{asChild:!0,children:e.jsx(g,{href:N,children:c("ecommerce.continue_shopping")})})]}):e.jsxs("div",{className:"container mx-auto py-12",children:[e.jsx("h1",{className:"mb-8 text-3xl font-bold",children:c("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(t.Table,{children:[e.jsx(t.TableHeader,{children:e.jsxs(t.TableRow,{children:[e.jsx(t.TableHead,{children:c("ecommerce.product")}),e.jsx(t.TableHead,{children:c("ecommerce.quantity")}),e.jsx(t.TableHead,{className:"text-right",children:c("ecommerce.price")}),e.jsx(t.TableHead,{className:"text-right",children:c("ecommerce.total")}),e.jsx(t.TableHead,{className:"w-[50px]",children:e.jsx("span",{className:"sr-only",children:l("ecommerce.actions","Actions")})})]})}),e.jsx(t.TableBody,{children:n.map(s=>{const a=_(s.sku),r=p.getCartItemActivePrice(s,{currencyCode:i,currencies:h}),o=R.getTrialSummary(s,c);return e.jsxs(t.TableRow,{children:[e.jsx(t.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:c("ecommerce.no_image")})}),e.jsxs("div",{className:"min-w-0 break-words",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}),u.isDigitalItem(s)&&s.billing_cycle&&e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:l(`ecommerce.checkout_billing_cycle_${s.billing_cycle}`,`${s.billing_cycle} subscription`)}),o&&e.jsxs("div",{className:"mt-1 text-xs font-medium text-emerald-700",children:[o.label," - ",o.paymentRequirementLabel]})]})]})}),e.jsx(t.TableCell,{children:u.isDigitalItem(s)?e.jsx(C.Badge,{variant:"secondary",className:"font-normal text-xs",children:l("ecommerce.license_count_one","1 license",{count:1})}):e.jsxs("div",{role:"group","aria-label":`${l("ecommerce.quantity","Quantity")}: ${s.title}`,className:"flex items-center gap-2",children:[e.jsx(d.Button,{variant:"outline",size:"icon",className:"h-8 w-8","aria-label":l("ecommerce.decrease_quantity","Decrease quantity"),onClick:()=>b(s.id,s.quantity-1),children:e.jsx(j.Minus,{className:"h-4 w-4"})}),e.jsx("span",{"aria-live":"polite","aria-atomic":"true",className:"w-8 text-center tabular-nums",children:s.quantity}),e.jsx(d.Button,{variant:"outline",size:"icon",className:"h-8 w-8","aria-label":l("ecommerce.increase_quantity","Increase quantity"),onClick:()=>b(s.id,s.quantity+1),disabled:typeof s.stock=="number"&&a>=s.stock,children:e.jsx(j.Plus,{className:"h-4 w-4"})})]})}),e.jsx(t.TableCell,{className:"text-right",children:e.jsxs("div",{className:"flex flex-col items-end tabular-nums",children:[e.jsxs("span",{className:"font-medium",children:[r.sale_price&&e.jsxs("span",{className:"sr-only",children:[l("ecommerce.sale_price","Sale price")," "]}),m(r.sale_price??r.price,i)]}),r.sale_price&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:[e.jsxs("span",{className:"sr-only",children:[l("ecommerce.regular_price","Regular price")," "]}),e.jsx("s",{children:m(r.price,i)})]})]})}),e.jsx(t.TableCell,{className:"text-right font-medium tabular-nums",children:m((r.sale_price??r.price)*s.quantity,i)}),e.jsx(t.TableCell,{children:e.jsx(d.Button,{variant:"ghost",size:"icon",onClick:()=>v(s.id),"aria-label":l("ecommerce.remove_item",`Remove ${s.title} from cart`,{item:s.title}),className:"text-muted-foreground hover:text-destructive",children:e.jsx(j.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:c("ecommerce.order_summary")}),e.jsxs("div",{className:"flex justify-between border-b pb-4",children:[e.jsx("span",{children:c("ecommerce.subtotal")}),e.jsx("span",{className:"font-medium tabular-nums",children:m(y,i)})]}),e.jsxs("div",{className:"mt-4 flex flex-col gap-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:c("ecommerce.shipping_taxes_calculated")}),n.some(s=>!u.isDigitalItem(s))&&e.jsx(S.ShippingEstimator,{physicalSubtotal:f}),e.jsx(B.CouponForm,{items:n,currencyCode:i,compact:!0}),e.jsx(d.Button,{asChild:!0,className:"w-full mt-4",size:"lg",children:e.jsx(g,{href:"/checkout",children:c("ecommerce.proceed_to_checkout")})})]})]})})]})]})};exports.Cart=H;
|