@nextblock-cms/ecom 0.14.0 → 0.14.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/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +24 -24
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +28 -28
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +39 -39
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +141 -141
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +96 -96
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +17 -17
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +596 -596
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +89 -89
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +16 -16
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +230 -230
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +33 -33
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +43 -43
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +161 -161
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.es.js +53 -53
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.es.js +72 -72
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +263 -263
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.es.js +24 -24
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +11 -11
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +74 -74
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +61 -61
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +82 -82
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +104 -104
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +100 -100
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +19 -19
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +22 -22
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +57 -57
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +71 -71
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +57 -57
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +4 -4
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +30 -30
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +50 -50
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +164 -164
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +11 -11
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +31 -31
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +57 -57
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +18 -18
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +123 -123
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +18 -18
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +132 -132
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +75 -75
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +66 -66
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +11 -11
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +59 -59
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +85 -85
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +451 -451
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +49 -49
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +147 -147
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +60 -60
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +12 -12
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +228 -228
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +7 -7
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +125 -125
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +30 -30
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +168 -168
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +291 -291
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +140 -140
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +132 -132
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +49 -49
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +8 -8
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),l=require("@nextblock-cms/ui"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),l=require("@nextblock-cms/ui"),b=require("@nextblock-cms/utils"),n=s=>String(s).padStart(2,"0");function i(s){if(!s)return"";const t=new Date(s);return Number.isNaN(t.getTime())?"":`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}T${n(t.getHours())}:${n(t.getMinutes())}`}function m(s){if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t.toISOString()}function S({idPrefix:s="product",startAt:t,endAt:u,onChange:r,error:a,disabled:o,description:p,dense:d,bare:N}){const h=Intl.DateTimeFormat().resolvedOptions().timeZone,x=b.cn("h-7 text-xs",d||N?"w-[150px]":"w-[160px] sm:w-[180px]"),g=e.jsxDEV(e.Fragment,{children:[e.jsxDEV(l.Label,{htmlFor:`${s}-sale-start-at`,className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:"Starts"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:72,columnNumber:7},this),e.jsxDEV(l.Input,{id:`${s}-sale-start-at`,type:"datetime-local",value:i(t),disabled:o,onChange:c=>r("sale_start_at",m(c.target.value)),className:x},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:78,columnNumber:7},this),e.jsxDEV("span",{className:"text-xs text-muted-foreground",children:"→"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:86,columnNumber:7},this),e.jsxDEV(l.Label,{htmlFor:`${s}-sale-end-at`,className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:"Ends"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:87,columnNumber:7},this),e.jsxDEV(l.Input,{id:`${s}-sale-end-at`,type:"datetime-local",value:i(u),disabled:o,onChange:c=>r("sale_end_at",m(c.target.value)),className:x},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:93,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:71,columnNumber:5},this);return N?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"min-w-0 space-y-1",children:[e.jsxDEV(l.Label,{htmlFor:`${s}-sale-start-at`,className:"block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",children:"Starts"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:110,columnNumber:11},this),e.jsxDEV(l.Input,{id:`${s}-sale-start-at`,type:"datetime-local",value:i(t),disabled:o,onChange:c=>r("sale_start_at",m(c.target.value)),className:"h-8 w-full text-xs"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:116,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:109,columnNumber:9},this),e.jsxDEV("div",{className:"min-w-0 space-y-1",children:[e.jsxDEV(l.Label,{htmlFor:`${s}-sale-end-at`,className:"block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",children:"Ends"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:126,columnNumber:11},this),e.jsxDEV(l.Input,{id:`${s}-sale-end-at`,type:"datetime-local",value:i(u),disabled:o,onChange:c=>r("sale_end_at",m(c.target.value)),className:"h-8 w-full text-xs"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:132,columnNumber:11},this),a?e.jsxDEV("p",{className:"mt-0.5 text-[10px] text-destructive",children:a},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:140,columnNumber:20},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:125,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:108,columnNumber:7},this):e.jsxDEV("div",{className:b.cn("rounded border border-dashed bg-muted/5 space-y-1",d?"p-1.5":"p-2"),children:[e.jsxDEV("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1.5",children:[e.jsxDEV("span",{className:"shrink-0 text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Sale window"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:151,columnNumber:9},this),g,e.jsxDEV("span",{className:"ml-auto text-[10px] text-muted-foreground",children:[h||"local time"," · empty = always on"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:155,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:150,columnNumber:7},this),p&&!d?e.jsxDEV("p",{className:"text-[10px] leading-snug text-muted-foreground",children:p},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:160,columnNumber:9},this):null,a?e.jsxDEV("p",{className:"text-[11px] text-destructive",children:a},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:162,columnNumber:16},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:147,columnNumber:5},this)}exports.SaleScheduleFields=S;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsxDEV as e, Fragment as h } from "react/jsx-dev-runtime";
|
|
3
|
-
import { Label as
|
|
3
|
+
import { Label as a, Input as m } from "@nextblock-cms/ui";
|
|
4
4
|
import { cn as f } from "@nextblock-cms/utils";
|
|
5
|
-
const
|
|
6
|
-
function
|
|
5
|
+
const i = (s) => String(s).padStart(2, "0");
|
|
6
|
+
function n(s) {
|
|
7
7
|
if (!s)
|
|
8
8
|
return "";
|
|
9
9
|
const t = new Date(s);
|
|
10
|
-
return Number.isNaN(t.getTime()) ? "" : `${t.getFullYear()}-${
|
|
10
|
+
return Number.isNaN(t.getTime()) ? "" : `${t.getFullYear()}-${i(t.getMonth() + 1)}-${i(
|
|
11
11
|
t.getDate()
|
|
12
|
-
)}T${
|
|
12
|
+
)}T${i(t.getHours())}:${i(t.getMinutes())}`;
|
|
13
13
|
}
|
|
14
|
-
function
|
|
14
|
+
function d(s) {
|
|
15
15
|
if (!s)
|
|
16
16
|
return null;
|
|
17
17
|
const t = new Date(s);
|
|
@@ -20,17 +20,17 @@ function u(s) {
|
|
|
20
20
|
function D({
|
|
21
21
|
idPrefix: s = "product",
|
|
22
22
|
startAt: t,
|
|
23
|
-
endAt:
|
|
23
|
+
endAt: p,
|
|
24
24
|
onChange: c,
|
|
25
|
-
error:
|
|
26
|
-
disabled:
|
|
27
|
-
description:
|
|
28
|
-
dense:
|
|
29
|
-
bare:
|
|
25
|
+
error: r,
|
|
26
|
+
disabled: o,
|
|
27
|
+
description: N,
|
|
28
|
+
dense: u,
|
|
29
|
+
bare: b
|
|
30
30
|
}) {
|
|
31
|
-
const g = Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
31
|
+
const g = Intl.DateTimeFormat().resolvedOptions().timeZone, x = f("h-7 text-xs", u || b ? "w-[150px]" : "w-[160px] sm:w-[180px]"), S = /* @__PURE__ */ e(h, { children: [
|
|
32
32
|
/* @__PURE__ */ e(
|
|
33
|
-
|
|
33
|
+
a,
|
|
34
34
|
{
|
|
35
35
|
htmlFor: `${s}-sale-start-at`,
|
|
36
36
|
className: "text-[10px] uppercase tracking-wider text-muted-foreground",
|
|
@@ -39,38 +39,38 @@ function D({
|
|
|
39
39
|
void 0,
|
|
40
40
|
!1,
|
|
41
41
|
{
|
|
42
|
-
fileName: "
|
|
42
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
43
43
|
lineNumber: 72,
|
|
44
44
|
columnNumber: 7
|
|
45
45
|
},
|
|
46
46
|
this
|
|
47
47
|
),
|
|
48
48
|
/* @__PURE__ */ e(
|
|
49
|
-
|
|
49
|
+
m,
|
|
50
50
|
{
|
|
51
51
|
id: `${s}-sale-start-at`,
|
|
52
52
|
type: "datetime-local",
|
|
53
|
-
value:
|
|
54
|
-
disabled:
|
|
55
|
-
onChange: (l) => c("sale_start_at",
|
|
56
|
-
className:
|
|
53
|
+
value: n(t),
|
|
54
|
+
disabled: o,
|
|
55
|
+
onChange: (l) => c("sale_start_at", d(l.target.value)),
|
|
56
|
+
className: x
|
|
57
57
|
},
|
|
58
58
|
void 0,
|
|
59
59
|
!1,
|
|
60
60
|
{
|
|
61
|
-
fileName: "
|
|
61
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
62
62
|
lineNumber: 78,
|
|
63
63
|
columnNumber: 7
|
|
64
64
|
},
|
|
65
65
|
this
|
|
66
66
|
),
|
|
67
67
|
/* @__PURE__ */ e("span", { className: "text-xs text-muted-foreground", children: "→" }, void 0, !1, {
|
|
68
|
-
fileName: "
|
|
68
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
69
69
|
lineNumber: 86,
|
|
70
70
|
columnNumber: 7
|
|
71
71
|
}, this),
|
|
72
72
|
/* @__PURE__ */ e(
|
|
73
|
-
|
|
73
|
+
a,
|
|
74
74
|
{
|
|
75
75
|
htmlFor: `${s}-sale-end-at`,
|
|
76
76
|
className: "text-[10px] uppercase tracking-wider text-muted-foreground",
|
|
@@ -79,40 +79,40 @@ function D({
|
|
|
79
79
|
void 0,
|
|
80
80
|
!1,
|
|
81
81
|
{
|
|
82
|
-
fileName: "
|
|
82
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
83
83
|
lineNumber: 87,
|
|
84
84
|
columnNumber: 7
|
|
85
85
|
},
|
|
86
86
|
this
|
|
87
87
|
),
|
|
88
88
|
/* @__PURE__ */ e(
|
|
89
|
-
|
|
89
|
+
m,
|
|
90
90
|
{
|
|
91
91
|
id: `${s}-sale-end-at`,
|
|
92
92
|
type: "datetime-local",
|
|
93
|
-
value:
|
|
94
|
-
disabled:
|
|
95
|
-
onChange: (l) => c("sale_end_at",
|
|
96
|
-
className:
|
|
93
|
+
value: n(p),
|
|
94
|
+
disabled: o,
|
|
95
|
+
onChange: (l) => c("sale_end_at", d(l.target.value)),
|
|
96
|
+
className: x
|
|
97
97
|
},
|
|
98
98
|
void 0,
|
|
99
99
|
!1,
|
|
100
100
|
{
|
|
101
|
-
fileName: "
|
|
101
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
102
102
|
lineNumber: 93,
|
|
103
103
|
columnNumber: 7
|
|
104
104
|
},
|
|
105
105
|
this
|
|
106
106
|
)
|
|
107
107
|
] }, void 0, !0, {
|
|
108
|
-
fileName: "
|
|
108
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
109
109
|
lineNumber: 71,
|
|
110
110
|
columnNumber: 5
|
|
111
111
|
}, this);
|
|
112
|
-
return
|
|
112
|
+
return b ? /* @__PURE__ */ e(h, { children: [
|
|
113
113
|
/* @__PURE__ */ e("div", { className: "min-w-0 space-y-1", children: [
|
|
114
114
|
/* @__PURE__ */ e(
|
|
115
|
-
|
|
115
|
+
a,
|
|
116
116
|
{
|
|
117
117
|
htmlFor: `${s}-sale-start-at`,
|
|
118
118
|
className: "block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",
|
|
@@ -121,39 +121,39 @@ function D({
|
|
|
121
121
|
void 0,
|
|
122
122
|
!1,
|
|
123
123
|
{
|
|
124
|
-
fileName: "
|
|
124
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
125
125
|
lineNumber: 110,
|
|
126
126
|
columnNumber: 11
|
|
127
127
|
},
|
|
128
128
|
this
|
|
129
129
|
),
|
|
130
130
|
/* @__PURE__ */ e(
|
|
131
|
-
|
|
131
|
+
m,
|
|
132
132
|
{
|
|
133
133
|
id: `${s}-sale-start-at`,
|
|
134
134
|
type: "datetime-local",
|
|
135
|
-
value:
|
|
136
|
-
disabled:
|
|
137
|
-
onChange: (l) => c("sale_start_at",
|
|
135
|
+
value: n(t),
|
|
136
|
+
disabled: o,
|
|
137
|
+
onChange: (l) => c("sale_start_at", d(l.target.value)),
|
|
138
138
|
className: "h-8 w-full text-xs"
|
|
139
139
|
},
|
|
140
140
|
void 0,
|
|
141
141
|
!1,
|
|
142
142
|
{
|
|
143
|
-
fileName: "
|
|
143
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
144
144
|
lineNumber: 116,
|
|
145
145
|
columnNumber: 11
|
|
146
146
|
},
|
|
147
147
|
this
|
|
148
148
|
)
|
|
149
149
|
] }, void 0, !0, {
|
|
150
|
-
fileName: "
|
|
150
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
151
151
|
lineNumber: 109,
|
|
152
152
|
columnNumber: 9
|
|
153
153
|
}, this),
|
|
154
154
|
/* @__PURE__ */ e("div", { className: "min-w-0 space-y-1", children: [
|
|
155
155
|
/* @__PURE__ */ e(
|
|
156
|
-
|
|
156
|
+
a,
|
|
157
157
|
{
|
|
158
158
|
htmlFor: `${s}-sale-end-at`,
|
|
159
159
|
className: "block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",
|
|
@@ -162,53 +162,53 @@ function D({
|
|
|
162
162
|
void 0,
|
|
163
163
|
!1,
|
|
164
164
|
{
|
|
165
|
-
fileName: "
|
|
165
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
166
166
|
lineNumber: 126,
|
|
167
167
|
columnNumber: 11
|
|
168
168
|
},
|
|
169
169
|
this
|
|
170
170
|
),
|
|
171
171
|
/* @__PURE__ */ e(
|
|
172
|
-
|
|
172
|
+
m,
|
|
173
173
|
{
|
|
174
174
|
id: `${s}-sale-end-at`,
|
|
175
175
|
type: "datetime-local",
|
|
176
|
-
value:
|
|
177
|
-
disabled:
|
|
178
|
-
onChange: (l) => c("sale_end_at",
|
|
176
|
+
value: n(p),
|
|
177
|
+
disabled: o,
|
|
178
|
+
onChange: (l) => c("sale_end_at", d(l.target.value)),
|
|
179
179
|
className: "h-8 w-full text-xs"
|
|
180
180
|
},
|
|
181
181
|
void 0,
|
|
182
182
|
!1,
|
|
183
183
|
{
|
|
184
|
-
fileName: "
|
|
184
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
185
185
|
lineNumber: 132,
|
|
186
186
|
columnNumber: 11
|
|
187
187
|
},
|
|
188
188
|
this
|
|
189
189
|
),
|
|
190
|
-
|
|
191
|
-
fileName: "
|
|
190
|
+
r ? /* @__PURE__ */ e("p", { className: "mt-0.5 text-[10px] text-destructive", children: r }, void 0, !1, {
|
|
191
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
192
192
|
lineNumber: 140,
|
|
193
193
|
columnNumber: 20
|
|
194
194
|
}, this) : null
|
|
195
195
|
] }, void 0, !0, {
|
|
196
|
-
fileName: "
|
|
196
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
197
197
|
lineNumber: 125,
|
|
198
198
|
columnNumber: 9
|
|
199
199
|
}, this)
|
|
200
200
|
] }, void 0, !0, {
|
|
201
|
-
fileName: "
|
|
201
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
202
202
|
lineNumber: 108,
|
|
203
203
|
columnNumber: 7
|
|
204
204
|
}, this) : /* @__PURE__ */ e(
|
|
205
205
|
"div",
|
|
206
206
|
{
|
|
207
|
-
className: f("rounded border border-dashed bg-muted/5 space-y-1",
|
|
207
|
+
className: f("rounded border border-dashed bg-muted/5 space-y-1", u ? "p-1.5" : "p-2"),
|
|
208
208
|
children: [
|
|
209
209
|
/* @__PURE__ */ e("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1.5", children: [
|
|
210
210
|
/* @__PURE__ */ e("span", { className: "shrink-0 text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Sale window" }, void 0, !1, {
|
|
211
|
-
fileName: "
|
|
211
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
212
212
|
lineNumber: 151,
|
|
213
213
|
columnNumber: 9
|
|
214
214
|
}, this),
|
|
@@ -217,22 +217,22 @@ function D({
|
|
|
217
217
|
g || "local time",
|
|
218
218
|
" · empty = always on"
|
|
219
219
|
] }, void 0, !0, {
|
|
220
|
-
fileName: "
|
|
220
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
221
221
|
lineNumber: 155,
|
|
222
222
|
columnNumber: 9
|
|
223
223
|
}, this)
|
|
224
224
|
] }, void 0, !0, {
|
|
225
|
-
fileName: "
|
|
225
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
226
226
|
lineNumber: 150,
|
|
227
227
|
columnNumber: 7
|
|
228
228
|
}, this),
|
|
229
|
-
|
|
230
|
-
fileName: "
|
|
229
|
+
N && !u ? /* @__PURE__ */ e("p", { className: "text-[10px] leading-snug text-muted-foreground", children: N }, void 0, !1, {
|
|
230
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
231
231
|
lineNumber: 160,
|
|
232
232
|
columnNumber: 9
|
|
233
233
|
}, this) : null,
|
|
234
|
-
|
|
235
|
-
fileName: "
|
|
234
|
+
r ? /* @__PURE__ */ e("p", { className: "text-[11px] text-destructive", children: r }, void 0, !1, {
|
|
235
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
236
236
|
lineNumber: 162,
|
|
237
237
|
columnNumber: 16
|
|
238
238
|
}, this) : null
|
|
@@ -241,7 +241,7 @@ function D({
|
|
|
241
241
|
void 0,
|
|
242
242
|
!0,
|
|
243
243
|
{
|
|
244
|
-
fileName: "
|
|
244
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
|
|
245
245
|
lineNumber: 147,
|
|
246
246
|
columnNumber: 5
|
|
247
247
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-dev-runtime"),i=require("react"),u=require("@nextblock-cms/ui"),a=require("lucide-react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-dev-runtime"),i=require("react"),u=require("@nextblock-cms/ui"),a=require("lucide-react"),r=require("sonner"),l=require("../actions.cjs.js");function m({title:c="Sync Full Store"}){const[s,t]=i.useState(!1),o=async()=>{t(!0);try{const e=await l.triggerFreemiusSync();e.error?r.toast.error(e.error):r.toast.success(`Full store sync complete! Found ${e.data?.count||0} products.`)}catch(e){r.toast.error(e.message||"An unexpected error occurred during sync")}finally{t(!1)}};return n.jsxDEV(u.Button,{variant:"secondary",onClick:o,disabled:s,className:"gap-2",children:[n.jsxDEV(a.RefreshCw,{className:`w-4 h-4 ${s?"animate-spin":""}`},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusButton.tsx",lineNumber:35,columnNumber:7},this),s?"Syncing...":c]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusButton.tsx",lineNumber:29,columnNumber:5},this)}exports.SyncFreemiusButton=m;
|
|
@@ -26,7 +26,7 @@ function g({ title: o = "Sync Full Store" }) {
|
|
|
26
26
|
className: "gap-2",
|
|
27
27
|
children: [
|
|
28
28
|
/* @__PURE__ */ n(m, { className: `w-4 h-4 ${r ? "animate-spin" : ""}` }, void 0, !1, {
|
|
29
|
-
fileName: "
|
|
29
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusButton.tsx",
|
|
30
30
|
lineNumber: 35,
|
|
31
31
|
columnNumber: 7
|
|
32
32
|
}, this),
|
|
@@ -36,7 +36,7 @@ function g({ title: o = "Sync Full Store" }) {
|
|
|
36
36
|
void 0,
|
|
37
37
|
!0,
|
|
38
38
|
{
|
|
39
|
-
fileName: "
|
|
39
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusButton.tsx",
|
|
40
40
|
lineNumber: 29,
|
|
41
41
|
columnNumber: 5
|
|
42
42
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-dev-runtime"),a=require("react"),l=require("next/navigation"),d=require("@nextblock-cms/ui"),m=require("lucide-react"),r=require("sonner"),g=require("../actions.cjs.js");function f({productId:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-dev-runtime"),a=require("react"),l=require("next/navigation"),d=require("@nextblock-cms/ui"),m=require("lucide-react"),r=require("sonner"),g=require("../actions.cjs.js");function f({productId:n,hasOpenDraft:c=!1}){const o=l.useRouter(),[s,t]=a.useState(!1),u=async()=>{if(!n){r.toast.error("Product ID is missing");return}if(!(c&&!window.confirm(`You have unpublished draft changes for this product.
|
|
2
2
|
|
|
3
3
|
Syncing updates the live pricing now, but publishing your draft afterward will overwrite it with the draft’s older values. Publish or discard your draft first to keep the synced prices.
|
|
4
4
|
|
|
5
|
-
Sync anyway?`))){t(!0);try{const e=await g.triggerSingleProductSync(
|
|
5
|
+
Sync anyway?`))){t(!0);try{const e=await g.triggerSingleProductSync(n);e.error?r.toast.error(e.error):(r.toast.success("Pricing sync complete!"),o.refresh())}catch(e){r.toast.error(e.message||"An unexpected error occurred during sync")}finally{t(!1)}}};return i.jsxDEV(d.Button,{variant:"outline",onClick:u,disabled:s,className:"gap-2",children:[i.jsxDEV(m.RefreshCw,{className:`w-4 h-4 ${s?"animate-spin":""}`},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusPricingButton.tsx",lineNumber:69,columnNumber:7},this),s?"Syncing...":"Sync Plans & Pricing from Freemius"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusPricingButton.tsx",lineNumber:63,columnNumber:5},this)}exports.SyncFreemiusPricingButton=f;
|
|
@@ -6,14 +6,14 @@ import { Button as m } from "@nextblock-cms/ui";
|
|
|
6
6
|
import { RefreshCw as l } from "lucide-react";
|
|
7
7
|
import { toast as r } from "sonner";
|
|
8
8
|
import { triggerSingleProductSync as d } from "../actions.es.js";
|
|
9
|
-
function
|
|
10
|
-
const c = u(), [
|
|
9
|
+
function w({ productId: n, hasOpenDraft: o = !1 }) {
|
|
10
|
+
const c = u(), [s, i] = a(!1);
|
|
11
11
|
return /* @__PURE__ */ t(
|
|
12
12
|
m,
|
|
13
13
|
{
|
|
14
14
|
variant: "outline",
|
|
15
15
|
onClick: async () => {
|
|
16
|
-
if (!
|
|
16
|
+
if (!n) {
|
|
17
17
|
r.error("Product ID is missing");
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
@@ -24,32 +24,32 @@ Syncing updates the live pricing now, but publishing your draft afterward will o
|
|
|
24
24
|
|
|
25
25
|
Sync anyway?`
|
|
26
26
|
))) {
|
|
27
|
-
|
|
27
|
+
i(!0);
|
|
28
28
|
try {
|
|
29
|
-
const e = await d(
|
|
29
|
+
const e = await d(n);
|
|
30
30
|
e.error ? r.error(e.error) : (r.success("Pricing sync complete!"), c.refresh());
|
|
31
31
|
} catch (e) {
|
|
32
32
|
r.error(e.message || "An unexpected error occurred during sync");
|
|
33
33
|
} finally {
|
|
34
|
-
|
|
34
|
+
i(!1);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
|
-
disabled:
|
|
38
|
+
disabled: s,
|
|
39
39
|
className: "gap-2",
|
|
40
40
|
children: [
|
|
41
|
-
/* @__PURE__ */ t(l, { className: `w-4 h-4 ${
|
|
42
|
-
fileName: "
|
|
41
|
+
/* @__PURE__ */ t(l, { className: `w-4 h-4 ${s ? "animate-spin" : ""}` }, void 0, !1, {
|
|
42
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusPricingButton.tsx",
|
|
43
43
|
lineNumber: 69,
|
|
44
44
|
columnNumber: 7
|
|
45
45
|
}, this),
|
|
46
|
-
|
|
46
|
+
s ? "Syncing..." : "Sync Plans & Pricing from Freemius"
|
|
47
47
|
]
|
|
48
48
|
},
|
|
49
49
|
void 0,
|
|
50
50
|
!0,
|
|
51
51
|
{
|
|
52
|
-
fileName: "
|
|
52
|
+
fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusPricingButton.tsx",
|
|
53
53
|
lineNumber: 63,
|
|
54
54
|
columnNumber: 5
|
|
55
55
|
},
|
|
@@ -57,5 +57,5 @@ Sync anyway?`
|
|
|
57
57
|
);
|
|
58
58
|
}
|
|
59
59
|
export {
|
|
60
|
-
|
|
60
|
+
w as SyncFreemiusPricingButton
|
|
61
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-dev-runtime"),B=require("next/link"),N=require("react"),u=require("@nextblock-cms/ui"),f=require("../../../../variation-utils.cjs.js"),G=require("./CurrencyPriceFields.cjs.js"),Q=require("./SaleScheduleFields.cjs.js"),V=require("../../../../currency.cjs.js"),E=require("../product-price-sync.cjs.js"),D=require("@nextblock-cms/utils"),q=process.env.NEXT_PUBLIC_R2_BASE_URL||"",F=process.env.NEXT_PUBLIC_SUPABASE_URL||"",H=c=>c.startsWith("http")?c:q?`${q.replace(/\/+$/,"")}/${c.replace(/^\/+/,"")}`:F?`${F.replace(/\/+$/,"")}/storage/v1/object/public/media/${c.replace(/^\/+/,"")}`:c;function R(c,a="USD"){return new Intl.NumberFormat("en-US",{style:"currency",currency:a}).format(c)}function J(c){return Object.entries(c).filter(([,a])=>a.length>0).map(([a,g])=>({attribute_id:a,term_ids:g}))}function Y({globalAttributes:c,currentLanguageCode:a,baseSku:g,basePrice:S,basePrices:P,baseSalePrice:U,baseSalePrices:M,currencies:n,availableVariantImages:k=[],initialVariationAttributes:_,initialVariants:A,onChange:$}){const[h,L]=N.useState(()=>_&&_.length>0?_.reduce((e,i)=>(e[i.attribute_id]=i.term_ids,e),{}):f.extractSelectedTermsByAttribute(A||[])),[x,p]=N.useState(E.sanitizeVariantDraftsForStoreManagedCurrencies(A||[],n)),y=N.useMemo(()=>c.map(e=>({attribute_id:e.id,attribute_name:f.resolveAttributeName(e,a),terms:e.terms.filter(i=>(h[e.id]||[]).includes(i.id)).map(i=>({...i,value:f.resolveTermValue(i,a)}))})).filter(e=>e.terms.length>0),[a,c,h]);N.useEffect(()=>{if(y.length===0){p([]);return}p(e=>E.sanitizeVariantDraftsForStoreManagedCurrencies(f.generateVariantDrafts({baseSku:g,basePrice:S,basePrices:V.normalizePriceMap(P),baseSalePrice:U,baseSalePrices:V.normalizeSalePriceMap(M),selectedAttributes:y,previousVariants:e}),n))},[S,P,U,M,g,n,y]),N.useEffect(()=>{$({variationAttributes:J(h),variants:x})},[$,h,x]);const z=x.reduce((e,i)=>e+(i.stock_quantity||0),0),j=n.find(e=>e.is_default)??n[0],v=N.useMemo(()=>E.getStoreManagedPriceCurrencyCodes(n),[n]),I=(e,i)=>{L(s=>{const o=new Set(s[e]||[]);return o.has(i)?o.delete(i):o.add(i),{...s,[e]:[...o]}})},W=(e,i,s)=>{p(o=>o.map(r=>{if(r.combination_key!==e)return r;if(i==="sku")return{...r,sku:s};if(i==="upc")return{...r,upc:s};if(i==="sale_price"&&s==="")return{...r,sale_price:null};if(i==="prices"||i==="sale_prices")return r;const m=s===""?0:Number(s);return{...r,[i]:Number.isFinite(m)?m:0}}))},K=(e,i,s)=>{p(o=>o.map(r=>r.combination_key===e?{...r,[i]:s}:r))},w=(e,i,s,o)=>{const r=n.find(m=>m.is_default)??n[0];p(m=>m.map(d=>{if(d.combination_key!==e)return d;const b={...s==="prices"?d.prices:d.sale_prices,[i]:o};return{...d,[s]:b,...i===r?.code?s==="prices"?{price:o??0}:{sale_price:o}:{}}}))},O=e=>{const i=n.find(o=>o.is_default)??n[0],s=new Set(v);i&&p(o=>o.map(r=>{if(r.combination_key!==e)return r;const m=n.reduce((b,l)=>{if(l.code!==i.code&&s.has(l.code))return b;const C=V.convertMinorUnitAmount({amount:D.majorUnitAmountToMinor(r.price,i.code),fromCurrencyCode:i.code,toCurrencyCode:l.code,currencies:n,applyRounding:!0});return b[l.code]=D.minorUnitAmountToMajor(C,l.code),b},{}),d=n.reduce((b,l)=>{if(l.code!==i.code&&s.has(l.code))return b;if(typeof r.sale_price!="number")return b[l.code]=null,b;const C=V.convertMinorUnitAmount({amount:D.majorUnitAmountToMinor(r.sale_price,i.code),fromCurrencyCode:i.code,toCurrencyCode:l.code,currencies:n,applyRounding:!0});return b[l.code]=D.minorUnitAmountToMajor(C,l.code),b},{});return{...r,prices:m,sale_prices:d}}))},X=(e,i)=>{const s=k.find(m=>m.media_id===i);if(!s)return;const o=s.file_path,r=H(o);p(m=>m.map(d=>d.combination_key===e?{...d,main_media_id:s.media_id,main_image_url:r}:d))},T=e=>{p(i=>i.map(s=>s.combination_key===e?{...s,main_media_id:null,main_image_url:null}:s))};return c.length===0?t.jsxDEV("div",{className:"rounded-lg border border-dashed p-6 text-sm text-muted-foreground",children:["No global attributes have been created yet. Create them first in"," ",t.jsxDEV(B,{href:"/cms/products/attributes",className:"font-medium text-primary underline-offset-4 hover:underline",children:"Attribute Management"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:402,columnNumber:9},this),"."]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:400,columnNumber:7},this):t.jsxDEV("div",{className:"space-y-3",children:[t.jsxDEV("div",{className:"space-y-2",children:[t.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[t.jsxDEV("div",{className:"flex items-center gap-3",children:[t.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Attributes"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:416,columnNumber:13},this),t.jsxDEV(u.Badge,{variant:"outline",className:"text-[10px] px-1.5 h-4",children:[x.length," variants"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:417,columnNumber:13},this),t.jsxDEV(u.Badge,{variant:"secondary",className:"text-[10px] px-1.5 h-4",children:["Stock: ",z]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:418,columnNumber:13},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:415,columnNumber:11},this),t.jsxDEV(u.Button,{asChild:!0,variant:"outline",size:"sm",className:"h-7 text-xs px-3",children:t.jsxDEV(B,{href:"/cms/products/attributes",children:"Manage"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:421,columnNumber:13},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:420,columnNumber:11},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:414,columnNumber:9},this),t.jsxDEV("div",{className:"grid gap-2 lg:grid-cols-2",children:c.map(e=>{const i=h[e.id]||[];return t.jsxDEV("div",{className:"flex items-center gap-3 rounded border p-2.5",children:[t.jsxDEV("div",{className:"shrink-0 w-[100px]",children:[t.jsxDEV("span",{className:"text-sm font-bold block leading-tight",children:f.resolveAttributeName(e,a)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:432,columnNumber:19},this),t.jsxDEV("span",{className:"text-[10px] text-muted-foreground leading-none",children:[i.length," selected"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:433,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:431,columnNumber:17},this),t.jsxDEV("div",{className:"flex flex-wrap gap-1.5 flex-1",children:e.terms.map(s=>{const o=i.includes(s.id);return t.jsxDEV("button",{type:"button",onClick:()=>I(e.id,s.id),className:`rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${o?"border-primary bg-primary/10 text-primary":"border-border bg-background text-foreground hover:border-primary/40"}`,children:f.resolveTermValue(s,a)},s.id,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:440,columnNumber:23},this)})},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:435,columnNumber:17},this)]},e.id,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:430,columnNumber:15},this)})},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:425,columnNumber:9},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:413,columnNumber:7},this),x.length===0?t.jsxDEV("div",{className:"rounded border border-dashed p-3 text-xs text-muted-foreground text-center",children:"Select terms above to generate variations."},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:463,columnNumber:9},this):t.jsxDEV("div",{className:"space-y-2",children:x.map(e=>{const i=E.resolveEditorCurrencyPriceMaps({currencies:n,prices:e.prices||{},salePrices:e.sale_prices||{},fallbackPrice:e.price,fallbackSalePrice:e.sale_price});return t.jsxDEV("div",{className:"rounded border p-3 space-y-2",children:[t.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[t.jsxDEV("div",{className:"flex items-center gap-2",children:[t.jsxDEV("span",{className:"text-sm font-bold",children:e.label},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:482,columnNumber:21},this),t.jsxDEV("span",{className:"text-xs text-muted-foreground",children:e.selected_options.map(s=>`${s.attribute_name}: ${s.term_value}`).join(" · ")},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:483,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:481,columnNumber:19},this),t.jsxDEV("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[t.jsxDEV("span",{children:["Reg: ",R(e.price,j?.code||"USD")]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:490,columnNumber:21},this),t.jsxDEV("span",{children:["Sale:"," ",e.sale_price!==null&&e.sale_price!==void 0?R(e.sale_price,j?.code||"USD"):"—"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:491,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:489,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:480,columnNumber:17},this),t.jsxDEV("div",{className:"grid grid-cols-3 gap-2.5",children:[t.jsxDEV("div",{className:"flex items-center gap-2",children:[t.jsxDEV(u.Label,{htmlFor:`variant-sku-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"SKU"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:503,columnNumber:21},this),t.jsxDEV(u.Input,{id:`variant-sku-${e.combination_key}`,value:e.sku,onChange:s=>W(e.combination_key,"sku",s.target.value),placeholder:"SKU",className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:504,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:502,columnNumber:19},this),t.jsxDEV("div",{className:"flex items-center gap-2",children:[t.jsxDEV(u.Label,{htmlFor:`variant-upc-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"UPC"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:515,columnNumber:21},this),t.jsxDEV(u.Input,{id:`variant-upc-${e.combination_key}`,value:e.upc??"",onChange:s=>W(e.combination_key,"upc",s.target.value),placeholder:"—",className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:516,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:514,columnNumber:19},this),t.jsxDEV("div",{className:"flex items-center gap-2",children:[t.jsxDEV(u.Label,{htmlFor:`variant-stock-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"Qty"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:527,columnNumber:21},this),t.jsxDEV(u.Input,{id:`variant-stock-${e.combination_key}`,type:"number",min:"0",value:e.stock_quantity,onChange:s=>W(e.combination_key,"stock_quantity",s.target.value),className:"h-8 text-sm font-mono w-20"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:528,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:526,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:501,columnNumber:17},this),t.jsxDEV(G.CurrencyPriceFields,{idPrefix:`variant-${e.combination_key}`,currencies:n,prices:i.prices,salePrices:i.salePrices,managedCurrencyCodes:v,onPriceChange:(s,o)=>w(e.combination_key,s,"prices",o),onSalePriceChange:(s,o)=>w(e.combination_key,s,"sale_prices",o),onAutoFill:()=>O(e.combination_key),helperText:v.length>0?`Store-managed currencies derive from ${j?.code||"the base currency"}.`:void 0,trailing:t.jsxDEV(Q.SaleScheduleFields,{idPrefix:`variant-${e.combination_key}`,startAt:e.sale_start_at,endAt:e.sale_end_at,onChange:(s,o)=>K(e.combination_key,s,o),bare:!0},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:575,columnNumber:21},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:546,columnNumber:17},this),t.jsxDEV("div",{className:"flex items-center gap-3 pt-1.5 border-t border-muted/30",children:[e.main_image_url&&t.jsxDEV("div",{className:"h-9 w-9 overflow-hidden rounded border bg-background shrink-0",children:t.jsxDEV("img",{src:e.main_image_url,alt:`${e.label} image`,className:"h-full w-full object-cover"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:591,columnNumber:23},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:590,columnNumber:21},this),t.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"Image"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:598,columnNumber:19},this),k.length>0?t.jsxDEV("select",{className:"flex h-8 rounded-md border border-input bg-background px-2 py-1 text-sm min-w-[180px]",value:e.main_media_id??"",onChange:s=>{if(!s.target.value){T(e.combination_key);return}X(e.combination_key,s.target.value)},children:[t.jsxDEV("option",{value:"",children:"Use parent image"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:611,columnNumber:23},this),k.map((s,o)=>t.jsxDEV("option",{value:s.media_id,children:s.alt?.trim()||`Gallery image ${o+1}`},s.media_id,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:613,columnNumber:25},this))]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:600,columnNumber:21},this):t.jsxDEV("span",{className:"text-xs text-muted-foreground",children:"Add gallery images first."},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:619,columnNumber:21},this),e.main_media_id&&t.jsxDEV(u.Button,{type:"button",variant:"ghost",size:"sm",className:"h-7 text-xs px-2 text-muted-foreground hover:text-destructive",onClick:()=>T(e.combination_key),children:"Remove"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:622,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:588,columnNumber:17},this)]},e.combination_key,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:478,columnNumber:15},this)})},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:467,columnNumber:9},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:411,columnNumber:5},this)}exports.VariationsEditor=Y;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-dev-runtime"),w=require("next/link"),x=require("react"),p=require("@nextblock-cms/ui"),f=require("../../../../variation-utils.cjs.js"),G=require("./CurrencyPriceFields.cjs.js"),Q=require("./SaleScheduleFields.cjs.js"),g=require("../../../../currency.cjs.js"),V=require("../product-price-sync.cjs.js"),j=require("@nextblock-cms/utils"),T=process.env.NEXT_PUBLIC_R2_BASE_URL||"",q=process.env.NEXT_PUBLIC_SUPABASE_URL||"",W=c=>c.startsWith("http")?c:T?`${T.replace(/\/+$/,"")}/${c.replace(/^\/+/,"")}`:q?`${q.replace(/\/+$/,"")}/storage/v1/object/public/media/${c.replace(/^\/+/,"")}`:c;function F(c,a="USD"){return new Intl.NumberFormat("en-US",{style:"currency",currency:a}).format(c)}function J(c){return Object.entries(c).filter(([,a])=>a.length>0).map(([a,k])=>({attribute_id:a,term_ids:k}))}function Y({globalAttributes:c,currentLanguageCode:a,baseSku:k,basePrice:R,basePrices:v,baseSalePrice:H,baseSalePrices:S,currencies:n,availableVariantImages:E=[],initialVariationAttributes:D,initialVariants:P,onChange:M}){const[h,L]=x.useState(()=>D&&D.length>0?D.reduce((e,t)=>(e[t.attribute_id]=t.term_ids,e),{}):f.extractSelectedTermsByAttribute(P||[])),[b,N]=x.useState(V.sanitizeVariantDraftsForStoreManagedCurrencies(P||[],n)),_=x.useMemo(()=>c.map(e=>({attribute_id:e.id,attribute_name:f.resolveAttributeName(e,a),terms:e.terms.filter(t=>(h[e.id]||[]).includes(t.id)).map(t=>({...t,value:f.resolveTermValue(t,a)}))})).filter(e=>e.terms.length>0),[a,c,h]);x.useEffect(()=>{if(_.length===0){N([]);return}N(e=>V.sanitizeVariantDraftsForStoreManagedCurrencies(f.generateVariantDrafts({baseSku:k,basePrice:R,basePrices:g.normalizePriceMap(v),baseSalePrice:H,baseSalePrices:g.normalizeSalePriceMap(S),selectedAttributes:_,previousVariants:e}),n))},[R,v,H,S,k,n,_]),x.useEffect(()=>{M({variationAttributes:J(h),variants:b})},[M,h,b]);const z=b.reduce((e,t)=>e+(t.stock_quantity||0),0),C=n.find(e=>e.is_default)??n[0],U=x.useMemo(()=>V.getStoreManagedPriceCurrencyCodes(n),[n]),I=(e,t)=>{L(s=>{const i=new Set(s[e]||[]);return i.has(t)?i.delete(t):i.add(t),{...s,[e]:[...i]}})},y=(e,t,s)=>{N(i=>i.map(o=>{if(o.combination_key!==e)return o;if(t==="sku")return{...o,sku:s};if(t==="upc")return{...o,upc:s};if(t==="sale_price"&&s==="")return{...o,sale_price:null};if(t==="prices"||t==="sale_prices")return o;const m=s===""?0:Number(s);return{...o,[t]:Number.isFinite(m)?m:0}}))},K=(e,t,s)=>{N(i=>i.map(o=>o.combination_key===e?{...o,[t]:s}:o))},A=(e,t,s,i)=>{const o=n.find(m=>m.is_default)??n[0];N(m=>m.map(d=>{if(d.combination_key!==e)return d;const u={...s==="prices"?d.prices:d.sale_prices,[t]:i};return{...d,[s]:u,...t===o?.code?s==="prices"?{price:i??0}:{sale_price:i}:{}}}))},O=e=>{const t=n.find(i=>i.is_default)??n[0],s=new Set(U);t&&N(i=>i.map(o=>{if(o.combination_key!==e)return o;const m=n.reduce((u,l)=>{if(l.code!==t.code&&s.has(l.code))return u;const B=g.convertMinorUnitAmount({amount:j.majorUnitAmountToMinor(o.price,t.code),fromCurrencyCode:t.code,toCurrencyCode:l.code,currencies:n,applyRounding:!0});return u[l.code]=j.minorUnitAmountToMajor(B,l.code),u},{}),d=n.reduce((u,l)=>{if(l.code!==t.code&&s.has(l.code))return u;if(typeof o.sale_price!="number")return u[l.code]=null,u;const B=g.convertMinorUnitAmount({amount:j.majorUnitAmountToMinor(o.sale_price,t.code),fromCurrencyCode:t.code,toCurrencyCode:l.code,currencies:n,applyRounding:!0});return u[l.code]=j.minorUnitAmountToMajor(B,l.code),u},{});return{...o,prices:m,sale_prices:d}}))},X=(e,t)=>{const s=E.find(m=>m.media_id===t);if(!s)return;const i=s.file_path,o=W(i);N(m=>m.map(d=>d.combination_key===e?{...d,main_media_id:s.media_id,main_image_url:o}:d))},$=e=>{N(t=>t.map(s=>s.combination_key===e?{...s,main_media_id:null,main_image_url:null}:s))};return c.length===0?r.jsxDEV("div",{className:"rounded-lg border border-dashed p-6 text-sm text-muted-foreground",children:["No global attributes have been created yet. Create them first in"," ",r.jsxDEV(w,{href:"/cms/products/attributes",className:"font-medium text-primary underline-offset-4 hover:underline",children:"Attribute Management"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:402,columnNumber:9},this),"."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:400,columnNumber:7},this):r.jsxDEV("div",{className:"space-y-3",children:[r.jsxDEV("div",{className:"space-y-2",children:[r.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[r.jsxDEV("div",{className:"flex items-center gap-3",children:[r.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Attributes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:416,columnNumber:13},this),r.jsxDEV(p.Badge,{variant:"outline",className:"text-[10px] px-1.5 h-4",children:[b.length," variants"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:417,columnNumber:13},this),r.jsxDEV(p.Badge,{variant:"secondary",className:"text-[10px] px-1.5 h-4",children:["Stock: ",z]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:418,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:415,columnNumber:11},this),r.jsxDEV(p.Button,{asChild:!0,variant:"outline",size:"sm",className:"h-7 text-xs px-3",children:r.jsxDEV(w,{href:"/cms/products/attributes",children:"Manage"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:421,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:420,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:414,columnNumber:9},this),r.jsxDEV("div",{className:"grid gap-2 lg:grid-cols-2",children:c.map(e=>{const t=h[e.id]||[];return r.jsxDEV("div",{className:"flex items-center gap-3 rounded border p-2.5",children:[r.jsxDEV("div",{className:"shrink-0 w-[100px]",children:[r.jsxDEV("span",{className:"text-sm font-bold block leading-tight",children:f.resolveAttributeName(e,a)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:432,columnNumber:19},this),r.jsxDEV("span",{className:"text-[10px] text-muted-foreground leading-none",children:[t.length," selected"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:433,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:431,columnNumber:17},this),r.jsxDEV("div",{className:"flex flex-wrap gap-1.5 flex-1",children:e.terms.map(s=>{const i=t.includes(s.id);return r.jsxDEV("button",{type:"button",onClick:()=>I(e.id,s.id),className:`rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${i?"border-primary bg-primary/10 text-primary":"border-border bg-background text-foreground hover:border-primary/40"}`,children:f.resolveTermValue(s,a)},s.id,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:440,columnNumber:23},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:435,columnNumber:17},this)]},e.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:430,columnNumber:15},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:425,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:413,columnNumber:7},this),b.length===0?r.jsxDEV("div",{className:"rounded border border-dashed p-3 text-xs text-muted-foreground text-center",children:"Select terms above to generate variations."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:463,columnNumber:9},this):r.jsxDEV("div",{className:"space-y-2",children:b.map(e=>{const t=V.resolveEditorCurrencyPriceMaps({currencies:n,prices:e.prices||{},salePrices:e.sale_prices||{},fallbackPrice:e.price,fallbackSalePrice:e.sale_price});return r.jsxDEV("div",{className:"rounded border p-3 space-y-2",children:[r.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[r.jsxDEV("div",{className:"flex items-center gap-2",children:[r.jsxDEV("span",{className:"text-sm font-bold",children:e.label},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:482,columnNumber:21},this),r.jsxDEV("span",{className:"text-xs text-muted-foreground",children:e.selected_options.map(s=>`${s.attribute_name}: ${s.term_value}`).join(" · ")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:483,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:481,columnNumber:19},this),r.jsxDEV("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[r.jsxDEV("span",{children:["Reg: ",F(e.price,C?.code||"USD")]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:490,columnNumber:21},this),r.jsxDEV("span",{children:["Sale:"," ",e.sale_price!==null&&e.sale_price!==void 0?F(e.sale_price,C?.code||"USD"):"—"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:491,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:489,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:480,columnNumber:17},this),r.jsxDEV("div",{className:"grid grid-cols-3 gap-2.5",children:[r.jsxDEV("div",{className:"flex items-center gap-2",children:[r.jsxDEV(p.Label,{htmlFor:`variant-sku-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"SKU"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:503,columnNumber:21},this),r.jsxDEV(p.Input,{id:`variant-sku-${e.combination_key}`,value:e.sku,onChange:s=>y(e.combination_key,"sku",s.target.value),placeholder:"SKU",className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:504,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:502,columnNumber:19},this),r.jsxDEV("div",{className:"flex items-center gap-2",children:[r.jsxDEV(p.Label,{htmlFor:`variant-upc-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"UPC"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:515,columnNumber:21},this),r.jsxDEV(p.Input,{id:`variant-upc-${e.combination_key}`,value:e.upc??"",onChange:s=>y(e.combination_key,"upc",s.target.value),placeholder:"—",className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:516,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:514,columnNumber:19},this),r.jsxDEV("div",{className:"flex items-center gap-2",children:[r.jsxDEV(p.Label,{htmlFor:`variant-stock-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"Qty"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:527,columnNumber:21},this),r.jsxDEV(p.Input,{id:`variant-stock-${e.combination_key}`,type:"number",min:"0",value:e.stock_quantity,onChange:s=>y(e.combination_key,"stock_quantity",s.target.value),className:"h-8 text-sm font-mono w-20"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:528,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:526,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:501,columnNumber:17},this),r.jsxDEV(G.CurrencyPriceFields,{idPrefix:`variant-${e.combination_key}`,currencies:n,prices:t.prices,salePrices:t.salePrices,managedCurrencyCodes:U,onPriceChange:(s,i)=>A(e.combination_key,s,"prices",i),onSalePriceChange:(s,i)=>A(e.combination_key,s,"sale_prices",i),onAutoFill:()=>O(e.combination_key),helperText:U.length>0?`Store-managed currencies derive from ${C?.code||"the base currency"}.`:void 0,trailing:r.jsxDEV(Q.SaleScheduleFields,{idPrefix:`variant-${e.combination_key}`,startAt:e.sale_start_at,endAt:e.sale_end_at,onChange:(s,i)=>K(e.combination_key,s,i),bare:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:575,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:546,columnNumber:17},this),r.jsxDEV("div",{className:"flex items-center gap-3 pt-1.5 border-t border-muted/30",children:[e.main_image_url&&r.jsxDEV("div",{className:"h-9 w-9 overflow-hidden rounded border bg-background shrink-0",children:r.jsxDEV("img",{src:e.main_image_url,alt:`${e.label} image`,className:"h-full w-full object-cover"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:591,columnNumber:23},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:590,columnNumber:21},this),r.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"Image"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:598,columnNumber:19},this),E.length>0?r.jsxDEV("select",{className:"flex h-8 rounded-md border border-input bg-background px-2 py-1 text-sm min-w-[180px]",value:e.main_media_id??"",onChange:s=>{if(!s.target.value){$(e.combination_key);return}X(e.combination_key,s.target.value)},children:[r.jsxDEV("option",{value:"",children:"Use parent image"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:611,columnNumber:23},this),E.map((s,i)=>r.jsxDEV("option",{value:s.media_id,children:s.alt?.trim()||`Gallery image ${i+1}`},s.media_id,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:613,columnNumber:25},this))]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:600,columnNumber:21},this):r.jsxDEV("span",{className:"text-xs text-muted-foreground",children:"Add gallery images first."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:619,columnNumber:21},this),e.main_media_id&&r.jsxDEV(p.Button,{type:"button",variant:"ghost",size:"sm",className:"h-7 text-xs px-2 text-muted-foreground hover:text-destructive",onClick:()=>$(e.combination_key),children:"Remove"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:622,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:588,columnNumber:17},this)]},e.combination_key,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:478,columnNumber:15},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:467,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:411,columnNumber:5},this)}exports.VariationsEditor=Y;
|