@nextblock-cms/ecom 0.13.3 → 0.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +31 -27
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +53 -26
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +49 -25
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +367 -115
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +272 -88
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +44 -16
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +1601 -694
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +160 -96
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +32 -12
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +666 -250
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +126 -42
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +125 -45
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +485 -146
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.es.js +142 -54
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.es.js +224 -81
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +629 -275
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.es.js +64 -21
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +28 -12
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +226 -90
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +286 -93
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +168 -92
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +370 -110
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +368 -116
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +61 -25
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +71 -35
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +167 -72
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +247 -87
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +283 -95
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +21 -9
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +106 -46
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +257 -78
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +551 -155
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +24 -16
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +77 -37
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +176 -96
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +85 -41
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +455 -192
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +72 -28
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +490 -183
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +175 -67
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +211 -100
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +45 -25
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +202 -58
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +234 -88
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +1199 -551
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +154 -63
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +391 -144
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +203 -87
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +30 -18
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +35 -23
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +492 -261
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +33 -13
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +365 -145
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +46 -34
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +14 -10
- package/package.json +4 -4
|
@@ -1,160 +1,306 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import { useState as
|
|
4
|
-
import { X as
|
|
5
|
-
import { cn as
|
|
6
|
-
import { Badge as
|
|
7
|
-
import { createCategoryAction as
|
|
8
|
-
import { toast as
|
|
9
|
-
function
|
|
2
|
+
import { jsxDEV as s } from "react/jsx-dev-runtime";
|
|
3
|
+
import { useState as i, useEffect as D, useMemo as u } from "react";
|
|
4
|
+
import { X as w, ChevronsUpDown as U, Search as L, Loader2 as $, Check as O } from "lucide-react";
|
|
5
|
+
import { cn as Q } from "@nextblock-cms/utils";
|
|
6
|
+
import { Badge as T, Popover as q, PopoverTrigger as A, Button as C, PopoverContent as B, Input as E, Checkbox as R } from "@nextblock-cms/ui";
|
|
7
|
+
import { createCategoryAction as z } from "../server-actions.es.js";
|
|
8
|
+
import { toast as d } from "sonner";
|
|
9
|
+
function K({
|
|
10
10
|
categories: m = [],
|
|
11
11
|
selectedIds: o = [],
|
|
12
|
-
onChange:
|
|
13
|
-
placeholder:
|
|
12
|
+
onChange: a,
|
|
13
|
+
placeholder: k = "Select categories..."
|
|
14
14
|
}) {
|
|
15
|
-
const [
|
|
16
|
-
|
|
15
|
+
const [b, y] = i(!1), [n, p] = i(""), [t, g] = i(m), [f, N] = i(!1);
|
|
16
|
+
D(() => {
|
|
17
17
|
g(m);
|
|
18
18
|
}, [m]);
|
|
19
|
-
const
|
|
20
|
-
if (!
|
|
21
|
-
const e =
|
|
22
|
-
return
|
|
23
|
-
(
|
|
19
|
+
const x = u(() => t.filter((e) => o.includes(e.id)), [t, o]), h = u(() => {
|
|
20
|
+
if (!n) return t;
|
|
21
|
+
const e = n.toLowerCase();
|
|
22
|
+
return t.filter(
|
|
23
|
+
(r) => r.name.toLowerCase().includes(e) || r.slug.toLowerCase().includes(e)
|
|
24
24
|
);
|
|
25
|
-
}, [
|
|
26
|
-
if (!
|
|
27
|
-
const e =
|
|
28
|
-
return !
|
|
29
|
-
}, [
|
|
30
|
-
if (
|
|
31
|
-
|
|
25
|
+
}, [t, n]), c = n.trim(), v = u(() => {
|
|
26
|
+
if (!c) return !1;
|
|
27
|
+
const e = c.toLowerCase();
|
|
28
|
+
return !t.some((r) => r.name.toLowerCase() === e);
|
|
29
|
+
}, [t, c]), S = async () => {
|
|
30
|
+
if (c) {
|
|
31
|
+
N(!0);
|
|
32
32
|
try {
|
|
33
|
-
const e = await
|
|
33
|
+
const e = await z({ name: c });
|
|
34
34
|
if (e.success && e.category) {
|
|
35
|
-
const
|
|
35
|
+
const r = {
|
|
36
36
|
id: e.category.id,
|
|
37
37
|
name: e.category.name,
|
|
38
38
|
slug: e.category.slug
|
|
39
39
|
};
|
|
40
|
-
g((
|
|
40
|
+
g((l) => [...l, r]), a([...o, r.id]), p(""), d.success(`Category "${r.name}" created successfully.`);
|
|
41
41
|
} else
|
|
42
|
-
|
|
42
|
+
d.error(e.error || "Failed to create category.");
|
|
43
43
|
} catch (e) {
|
|
44
|
-
|
|
44
|
+
d.error(e.message || "An error occurred while creating category.");
|
|
45
45
|
} finally {
|
|
46
|
-
|
|
46
|
+
N(!1);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
}, j = (e) => {
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
|
|
50
|
+
const r = o.includes(e) ? o.filter((l) => l !== e) : [...o, e];
|
|
51
|
+
a(r);
|
|
52
|
+
}, P = (e, r) => {
|
|
53
|
+
r.stopPropagation(), a(o.filter((l) => l !== e));
|
|
54
54
|
};
|
|
55
|
-
return /* @__PURE__ */
|
|
56
|
-
/* @__PURE__ */
|
|
57
|
-
|
|
55
|
+
return /* @__PURE__ */ s("div", { className: "space-y-2", children: [
|
|
56
|
+
/* @__PURE__ */ s("div", { className: "flex flex-wrap gap-1.5 min-h-[32px] p-1 border rounded-md bg-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2", children: x.length === 0 ? /* @__PURE__ */ s("span", { className: "text-xs text-muted-foreground self-center px-2 py-1 select-none", children: "No categories selected." }, void 0, !1, {
|
|
57
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
58
|
+
lineNumber: 108,
|
|
59
|
+
columnNumber: 11
|
|
60
|
+
}, this) : x.map((e) => /* @__PURE__ */ s(
|
|
61
|
+
T,
|
|
58
62
|
{
|
|
59
63
|
variant: "secondary",
|
|
60
64
|
className: "pl-2 pr-1.5 py-0.5 text-xs flex items-center gap-1 bg-amber-500/10 text-amber-800 dark:text-amber-300 border border-amber-500/20 rounded-full",
|
|
61
65
|
children: [
|
|
62
66
|
e.name,
|
|
63
|
-
/* @__PURE__ */
|
|
67
|
+
/* @__PURE__ */ s(
|
|
64
68
|
"button",
|
|
65
69
|
{
|
|
66
70
|
type: "button",
|
|
67
|
-
onClick: (
|
|
71
|
+
onClick: (r) => P(e.id, r),
|
|
68
72
|
className: "rounded-full p-0.5 text-muted-foreground hover:bg-amber-500/20 hover:text-amber-950 dark:hover:text-amber-50 transition-colors cursor-pointer",
|
|
69
73
|
"aria-label": `Remove ${e.name}`,
|
|
70
|
-
children: /* @__PURE__ */
|
|
71
|
-
|
|
74
|
+
children: /* @__PURE__ */ s(w, { className: "h-3 w-3" }, void 0, !1, {
|
|
75
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
76
|
+
lineNumber: 125,
|
|
77
|
+
columnNumber: 17
|
|
78
|
+
}, this)
|
|
79
|
+
},
|
|
80
|
+
void 0,
|
|
81
|
+
!1,
|
|
82
|
+
{
|
|
83
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
84
|
+
lineNumber: 119,
|
|
85
|
+
columnNumber: 15
|
|
86
|
+
},
|
|
87
|
+
this
|
|
72
88
|
)
|
|
73
89
|
]
|
|
74
90
|
},
|
|
75
|
-
e.id
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
91
|
+
e.id,
|
|
92
|
+
!0,
|
|
93
|
+
{
|
|
94
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
95
|
+
lineNumber: 113,
|
|
96
|
+
columnNumber: 13
|
|
97
|
+
},
|
|
98
|
+
this
|
|
99
|
+
)) }, void 0, !1, {
|
|
100
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
101
|
+
lineNumber: 106,
|
|
102
|
+
columnNumber: 7
|
|
103
|
+
}, this),
|
|
104
|
+
/* @__PURE__ */ s(q, { open: b, onOpenChange: y, children: [
|
|
105
|
+
/* @__PURE__ */ s(A, { asChild: !0, children: /* @__PURE__ */ s(
|
|
106
|
+
C,
|
|
80
107
|
{
|
|
81
108
|
variant: "outline",
|
|
82
109
|
role: "combobox",
|
|
83
|
-
"aria-expanded":
|
|
110
|
+
"aria-expanded": b,
|
|
84
111
|
className: "w-full justify-between h-8 text-xs font-normal",
|
|
85
112
|
children: [
|
|
86
|
-
/* @__PURE__ */
|
|
87
|
-
|
|
113
|
+
/* @__PURE__ */ s("span", { className: "truncate", children: o.length > 0 ? `${o.length} categor${o.length === 1 ? "y" : "ies"} selected` : k }, void 0, !1, {
|
|
114
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
115
|
+
lineNumber: 140,
|
|
116
|
+
columnNumber: 13
|
|
117
|
+
}, this),
|
|
118
|
+
/* @__PURE__ */ s(U, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" }, void 0, !1, {
|
|
119
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
120
|
+
lineNumber: 145,
|
|
121
|
+
columnNumber: 13
|
|
122
|
+
}, this)
|
|
88
123
|
]
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
124
|
+
},
|
|
125
|
+
void 0,
|
|
126
|
+
!0,
|
|
127
|
+
{
|
|
128
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
129
|
+
lineNumber: 134,
|
|
130
|
+
columnNumber: 11
|
|
131
|
+
},
|
|
132
|
+
this
|
|
133
|
+
) }, void 0, !1, {
|
|
134
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
135
|
+
lineNumber: 133,
|
|
136
|
+
columnNumber: 9
|
|
137
|
+
}, this),
|
|
138
|
+
/* @__PURE__ */ s(B, { className: "w-[--radix-popover-trigger-width] p-0", align: "start", children: [
|
|
139
|
+
/* @__PURE__ */ s("div", { className: "flex items-center border-b px-3", children: [
|
|
140
|
+
/* @__PURE__ */ s(L, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }, void 0, !1, {
|
|
141
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
142
|
+
lineNumber: 150,
|
|
143
|
+
columnNumber: 13
|
|
144
|
+
}, this),
|
|
145
|
+
/* @__PURE__ */ s(
|
|
95
146
|
E,
|
|
96
147
|
{
|
|
97
148
|
className: "flex h-9 w-full rounded-md bg-transparent py-2 text-xs outline-none border-0 focus-visible:ring-0 focus-visible:ring-offset-0",
|
|
98
149
|
placeholder: "Search categories...",
|
|
99
|
-
value:
|
|
150
|
+
value: n,
|
|
100
151
|
onChange: (e) => p(e.target.value)
|
|
101
|
-
}
|
|
152
|
+
},
|
|
153
|
+
void 0,
|
|
154
|
+
!1,
|
|
155
|
+
{
|
|
156
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
157
|
+
lineNumber: 151,
|
|
158
|
+
columnNumber: 13
|
|
159
|
+
},
|
|
160
|
+
this
|
|
102
161
|
)
|
|
103
|
-
] }
|
|
104
|
-
|
|
105
|
-
|
|
162
|
+
] }, void 0, !0, {
|
|
163
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
164
|
+
lineNumber: 149,
|
|
165
|
+
columnNumber: 11
|
|
166
|
+
}, this),
|
|
167
|
+
v && /* @__PURE__ */ s("div", { className: "border-b border-border/50 p-1", children: /* @__PURE__ */ s(
|
|
168
|
+
C,
|
|
106
169
|
{
|
|
107
170
|
type: "button",
|
|
108
171
|
variant: "ghost",
|
|
109
172
|
size: "sm",
|
|
110
173
|
className: "w-full justify-start text-xs h-8 text-amber-600 dark:text-amber-400 hover:text-amber-700 hover:bg-amber-500/10 cursor-pointer",
|
|
111
|
-
onClick:
|
|
112
|
-
disabled:
|
|
174
|
+
onClick: S,
|
|
175
|
+
disabled: f,
|
|
113
176
|
children: [
|
|
114
|
-
|
|
177
|
+
f ? /* @__PURE__ */ s($, { className: "mr-2 h-3 w-3 animate-spin" }, void 0, !1, {
|
|
178
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
179
|
+
lineNumber: 169,
|
|
180
|
+
columnNumber: 19
|
|
181
|
+
}, this) : /* @__PURE__ */ s("span", { className: "font-bold mr-1.5", children: "+" }, void 0, !1, {
|
|
182
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
183
|
+
lineNumber: 171,
|
|
184
|
+
columnNumber: 19
|
|
185
|
+
}, this),
|
|
115
186
|
'Create category "',
|
|
116
|
-
|
|
187
|
+
c,
|
|
117
188
|
'"'
|
|
118
189
|
]
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
190
|
+
},
|
|
191
|
+
void 0,
|
|
192
|
+
!0,
|
|
193
|
+
{
|
|
194
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
195
|
+
lineNumber: 160,
|
|
196
|
+
columnNumber: 15
|
|
197
|
+
},
|
|
198
|
+
this
|
|
199
|
+
) }, void 0, !1, {
|
|
200
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
201
|
+
lineNumber: 159,
|
|
202
|
+
columnNumber: 13
|
|
203
|
+
}, this),
|
|
204
|
+
/* @__PURE__ */ s("div", { className: "max-h-60 overflow-y-auto p-1", children: h.length === 0 ? /* @__PURE__ */ s("p", { className: "py-4 text-center text-xs text-muted-foreground", children: "No categories found." }, void 0, !1, {
|
|
205
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
206
|
+
lineNumber: 179,
|
|
207
|
+
columnNumber: 15
|
|
208
|
+
}, this) : /* @__PURE__ */ s("div", { className: "flex flex-col gap-0.5", children: h.map((e) => {
|
|
209
|
+
const r = o.includes(e.id);
|
|
210
|
+
return /* @__PURE__ */ s(
|
|
124
211
|
"div",
|
|
125
212
|
{
|
|
126
213
|
onClick: () => j(e.id),
|
|
127
|
-
className:
|
|
214
|
+
className: Q(
|
|
128
215
|
"relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-xs outline-none hover:bg-accent hover:text-accent-foreground text-left transition-colors",
|
|
129
|
-
|
|
216
|
+
r && "bg-accent/40 font-medium"
|
|
130
217
|
),
|
|
131
218
|
children: [
|
|
132
|
-
/* @__PURE__ */
|
|
133
|
-
|
|
219
|
+
/* @__PURE__ */ s("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center pointer-events-none", children: /* @__PURE__ */ s(
|
|
220
|
+
R,
|
|
134
221
|
{
|
|
135
|
-
checked:
|
|
222
|
+
checked: r,
|
|
136
223
|
tabIndex: -1,
|
|
137
224
|
"aria-label": `Toggle ${e.name}`,
|
|
138
225
|
className: "h-3.5 w-3.5"
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
226
|
+
},
|
|
227
|
+
void 0,
|
|
228
|
+
!1,
|
|
229
|
+
{
|
|
230
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
231
|
+
lineNumber: 196,
|
|
232
|
+
columnNumber: 25
|
|
233
|
+
},
|
|
234
|
+
this
|
|
235
|
+
) }, void 0, !1, {
|
|
236
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
237
|
+
lineNumber: 195,
|
|
238
|
+
columnNumber: 23
|
|
239
|
+
}, this),
|
|
240
|
+
/* @__PURE__ */ s("span", { className: "flex flex-col", children: [
|
|
241
|
+
/* @__PURE__ */ s("span", { children: e.name }, void 0, !1, {
|
|
242
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
243
|
+
lineNumber: 204,
|
|
244
|
+
columnNumber: 25
|
|
245
|
+
}, this),
|
|
246
|
+
/* @__PURE__ */ s("span", { className: "font-mono text-[9px] text-muted-foreground leading-none", children: [
|
|
144
247
|
"/",
|
|
145
248
|
e.slug
|
|
146
|
-
] }
|
|
147
|
-
|
|
148
|
-
|
|
249
|
+
] }, void 0, !0, {
|
|
250
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
251
|
+
lineNumber: 205,
|
|
252
|
+
columnNumber: 25
|
|
253
|
+
}, this)
|
|
254
|
+
] }, void 0, !0, {
|
|
255
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
256
|
+
lineNumber: 203,
|
|
257
|
+
columnNumber: 23
|
|
258
|
+
}, this),
|
|
259
|
+
r && /* @__PURE__ */ s("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ s(O, { className: "h-3.5 w-3.5 text-primary" }, void 0, !1, {
|
|
260
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
261
|
+
lineNumber: 211,
|
|
262
|
+
columnNumber: 27
|
|
263
|
+
}, this) }, void 0, !1, {
|
|
264
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
265
|
+
lineNumber: 210,
|
|
266
|
+
columnNumber: 25
|
|
267
|
+
}, this)
|
|
149
268
|
]
|
|
150
269
|
},
|
|
151
|
-
e.id
|
|
270
|
+
e.id,
|
|
271
|
+
!0,
|
|
272
|
+
{
|
|
273
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
274
|
+
lineNumber: 187,
|
|
275
|
+
columnNumber: 21
|
|
276
|
+
},
|
|
277
|
+
this
|
|
152
278
|
);
|
|
153
|
-
}) }
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
279
|
+
}) }, void 0, !1, {
|
|
280
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
281
|
+
lineNumber: 183,
|
|
282
|
+
columnNumber: 15
|
|
283
|
+
}, this) }, void 0, !1, {
|
|
284
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
285
|
+
lineNumber: 177,
|
|
286
|
+
columnNumber: 11
|
|
287
|
+
}, this)
|
|
288
|
+
] }, void 0, !0, {
|
|
289
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
290
|
+
lineNumber: 148,
|
|
291
|
+
columnNumber: 9
|
|
292
|
+
}, this)
|
|
293
|
+
] }, void 0, !0, {
|
|
294
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
295
|
+
lineNumber: 132,
|
|
296
|
+
columnNumber: 7
|
|
297
|
+
}, this)
|
|
298
|
+
] }, void 0, !0, {
|
|
299
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductCategorySelector.tsx",
|
|
300
|
+
lineNumber: 105,
|
|
301
|
+
columnNumber: 5
|
|
302
|
+
}, this);
|
|
157
303
|
}
|
|
158
304
|
export {
|
|
159
|
-
|
|
305
|
+
K as ProductCategorySelector
|
|
160
306
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),Ee=require("@hookform/resolvers/zod"),L=require("lucide-react"),r=require("@nextblock-cms/ui"),Oe=require("../../../../product-schema.cjs.js"),ze=require("react-hook-form"),Le=require("./ProductMediaManager.cjs.js"),Ke=require("./SyncFreemiusPricingButton.cjs.js"),$e=require("./VariationsEditor.cjs.js"),je=require("./CurrencyPriceFields.cjs.js"),ve=require("./SaleScheduleFields.cjs.js"),He=require("./ProductCategorySelector.cjs.js"),H=require("../product-price-sync.cjs.js"),Je=require("../../../../types.cjs.js"),Ne=require("../../../../currency.cjs.js"),K=require("@nextblock-cms/utils");function $({title:s,description:a,action:y,children:h,hideHeader:P}){return e.jsxs("section",{className:"rounded-lg border bg-card p-3 shadow-sm space-y-3",children:[!P&&e.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap border-b border-muted/50 pb-2 mb-1",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("h2",{className:"text-sm font-bold tracking-tight",children:s}),a?e.jsx("p",{className:"text-[11px] text-muted-foreground leading-none",children:a}):null]}),y]}),e.jsx("div",{className:P?"":"pt-1",children:h})]})}function Xe(s,a,y){const h=a?Number.parseInt(a,10):void 0;return s?.language_id||(Number.isFinite(h)?h:void 0)||y.find(P=>P.is_default)?.id||y[0]?.id||1}function Se(s,a,y,h,P){const k=(h.find(b=>b.is_default)??h[0])?.code||"USD",V=s?.prices&&Object.keys(s.prices).length>0?s.prices:{[k]:typeof s?.price=="number"?s.price/100:0},A=s?.sale_prices&&Object.keys(s.sale_prices).length>0?s.sale_prices:typeof s?.sale_price=="number"?{[k]:s.sale_price/100}:{},q=s?.product_type||"",F=s?.payment_provider||(s?.product_type?Je.derivePaymentProviderFromProductType(s.product_type):"stripe");return{...H.sanitizeProductFormValuesForStoreManagedCurrencies({product_type:q||"physical",payment_provider:F,title:s?.title||"",slug:s?.slug||"",sku:s?.sku||"",upc:s?.upc||"",is_taxable:s?.is_taxable??!0,price:typeof s?.price=="number"?s.price/100:0,prices:V,sale_price:typeof s?.sale_price=="number"?s.sale_price/100:null,sale_prices:A,stock:s?.stock||0,meta_title:s?.meta_title||"",meta_description:s?.meta_description||"",custom_canonical:s?.custom_canonical||"",short_description:s?.short_description||"",description_json:s?.description_json||{type:"doc",content:[{type:"paragraph"}]},freemius_product_id:s?.freemius_product_id||"",freemius_plan_id:s?.freemius_plan_id||"",trial_period_days:s?.trial_period_days??0,trial_requires_payment_method:s?.trial_requires_payment_method??!1,status:s?.status||"draft",language_id:Xe(s,a,y),translation_group_id:s?.translation_group_id||P||void 0,product_media:s?.product_media?.map(b=>({media_id:b.media_id}))||[],category_ids:s?.category_ids||[],variation_attributes:s?.variation_attributes||[],variants:s?.variants?.map(b=>({...b,prices:b.prices||{},sale_prices:b.sale_prices||{}}))||[]},h),product_type:q,payment_provider:F}}function Pe(s){return s?s.map(a=>({id:a.id||a.media_id,media_id:a.media_id,file_path:a.media?.file_path||a.media?.object_key||"",alt:a.media?.alt_text||"",sort_order:a.sort_order??0})).sort((a,y)=>a.sort_order-y.sort_order):[]}function Ye(s){return s.map(a=>({media_id:a.media_id}))}function Qe(s){return s.map(a=>({media_id:a.media_id,file_path:a.file_path,alt:a.alt}))}const We=s=>s.toString().toLowerCase().trim().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"");function Ze({initialData:s,isEdit:a=!1,mediaPickerNode:y,availableLanguagesProp:h,globalAttributesProp:P,currenciesProp:J,translationGroupId:k,targetLanguageId:V,freemiusDashboardNode:A,enabledProviders:q,configStatus:F,createAction:X,updateAction:b,availableCategoriesProp:we=[],hasOpenDraft:Ce=!1}){const[T,R]=l.useState(!1),[Y,Q]=l.useState(()=>!!s?.variants?.length),u=l.useMemo(()=>J.filter(t=>t.is_active!==!1).sort((t,d)=>t.is_default!==d.is_default?t.is_default?-1:1:t.code.localeCompare(d.code)),[J]),n=l.useMemo(()=>u.find(t=>t.is_default)??u[0],[u]),U=l.useMemo(()=>H.getStoreManagedPriceCurrencyCodes(u),[u]),ae=ze.useForm({resolver:Ee.zodResolver(Oe.productSchema),defaultValues:Se(s,V,h,u,k)}),{register:o,handleSubmit:W,setValue:i,reset:ie,watch:c,setError:B,formState:{errors:g,dirtyFields:de}}=ae,le=l.useRef(!0),Z=l.useRef(null),[ke,E]=l.useState(!1),[ce,O]=l.useState(null),[ne,Fe]=l.useState(null),G=c(),oe=ae.formState.isDirty;l.useEffect(()=>{if(!a)return;if(le.current){le.current=!1,Z.current=JSON.stringify(G);return}if(!oe)return;const t=JSON.stringify(G);if(t===Z.current)return;const d=setTimeout(()=>{T||(Z.current=t,W(be)())},400);return()=>clearTimeout(d)},[G,a,oe,T,W]);const ue=c("title"),I=c("product_type"),x=I==="digital"?"freemius":I==="physical"?"stripe":void 0,j=I==="physical",pe=I==="digital",D=x?q[x]:!1,ee=x?F[x].hasKeys:!1,Me=!!c("freemius_product_id"),me=Number(c("trial_period_days")||0),xe=!!c("trial_requires_payment_method"),Ve=c("variants")||[],w=c("price"),M=c("sale_price"),v=c("prices")||{},C=c("sale_prices")||{},N=(Ve?.length||0)>0,Ie=c("language_id"),Ae=h.find(t=>t.id===Ie)?.code||h.find(t=>t.is_default)?.code||h[0]?.code,z=l.useMemo(()=>H.resolveEditorCurrencyPriceMaps({currencies:u,prices:v,salePrices:C,fallbackPrice:w,fallbackSalePrice:M}),[w,M,u,v,C]),qe=l.useMemo(()=>s?.variants?.map(t=>({...t,prices:t.prices||{},sale_prices:t.sale_prices||{}})),[s?.variants]);l.useEffect(()=>{if(de.title&&!a){const t=We(ue);i("slug",t,{shouldValidate:!0})}},[ue,de.title,i,a]);const[se,he]=l.useState(()=>Pe(s?.product_media)),[te,ge]=l.useState(new Set);l.useEffect(()=>{ie(Se(s,V,h,u,k)),he(Pe(s?.product_media)),ge(new Set),Q(!!s?.variants?.length)},[h,u,s,ie,V,k]);const Te=t=>{const d=new Set(t.map(m=>m.id)),p=se.filter(m=>!d.has(m.id)),f=new Set(te);p.forEach(m=>{m.media_id&&f.add(m.media_id)}),ge(f),he(t),i("product_media",Ye(t),{shouldDirty:!0}),i("explicitly_removed_media_ids",Array.from(f),{shouldDirty:!0})};l.useEffect(()=>{i("explicitly_removed_media_ids",Array.from(te))},[te,i]),l.useEffect(()=>{N&&Q(!0)},[N]),l.useEffect(()=>{o("is_taxable"),o("price"),o("sale_price"),o("payment_provider"),o("trial_requires_payment_method")},[o]),l.useEffect(()=>{if(!pe){i("trial_period_days",0,{shouldDirty:!1,shouldValidate:!0}),i("trial_requires_payment_method",!1,{shouldDirty:!1,shouldValidate:!0});return}me<=0&&i("trial_requires_payment_method",!1,{shouldDirty:!1,shouldValidate:!0})},[pe,i,me]),l.useEffect(()=>{x&&i("payment_provider",x,{shouldDirty:!1,shouldValidate:!0})},[x,i]),l.useEffect(()=>{n&&v[n.code]===void 0&&i("prices",{...v,[n.code]:w||0},{shouldDirty:!1})},[w,n,v,i]);const fe=l.useCallback((t,d)=>{const p={...v,[t]:d};i("prices",p,{shouldDirty:!0,shouldValidate:!0}),t===n?.code&&i("price",d,{shouldDirty:!0,shouldValidate:!0})},[n?.code,v,i]),_e=l.useCallback((t,d)=>{const p={...C,[t]:d};i("sale_prices",p,{shouldDirty:!0,shouldValidate:!0}),t===n?.code&&i("sale_price",d,{shouldDirty:!0,shouldValidate:!0})},[n?.code,C,i]),ye=l.useCallback(()=>{if(!n)return;const t=new Set(U),d=v[n.code]??w??0,p=C[n.code]??M??null,f=u.reduce((S,_)=>{if(_.code!==n.code&&t.has(_.code))return S;const re=Ne.convertMinorUnitAmount({amount:K.majorUnitAmountToMinor(d,n.code),fromCurrencyCode:n.code,toCurrencyCode:_.code,currencies:u,applyRounding:!0});return S[_.code]=K.minorUnitAmountToMajor(re,_.code),S},{}),m=u.reduce((S,_)=>{if(_.code!==n.code&&t.has(_.code))return S;if(typeof p!="number")return(_.code===n.code||!t.has(_.code))&&(S[_.code]=null),S;const re=Ne.convertMinorUnitAmount({amount:K.majorUnitAmountToMinor(p,n.code),fromCurrencyCode:n.code,toCurrencyCode:_.code,currencies:u,applyRounding:!0});return S[_.code]=K.minorUnitAmountToMajor(re,_.code),S},{});i("prices",f,{shouldDirty:!0,shouldValidate:!0}),i("sale_prices",m,{shouldDirty:!0,shouldValidate:!0}),i("price",f[n.code]??d,{shouldDirty:!0,shouldValidate:!0}),i("sale_price",m[n.code]??null,{shouldDirty:!0,shouldValidate:!0})},[u,n,v,C,i,U,w,M]),Re=l.useCallback(({variationAttributes:t,variants:d})=>{i("variation_attributes",t,{shouldDirty:!0}),i("variants",d,{shouldDirty:!0,shouldValidate:!0})},[i]),be=async t=>{R(!0),E(!0),O(null);try{if(!x){const m="Select whether this product is physical or digital before saving.";B("product_type",{type:"manual",message:m}),a?O(m):alert(m),R(!1),E(!1);return}if(t.status==="active"&&(!D||!ee)){const m=`${x==="stripe"?"Stripe":"Freemius"} must be enabled and fully configured before this product can be published.`;B("product_type",{type:"manual",message:m}),a?O(m):alert(m),R(!1),E(!1);return}const d=j?0:Math.max(0,Number(t.trial_period_days||0)),p={...t,product_type:t.product_type,payment_provider:x,freemius_product_id:j?"":t.freemius_product_id,freemius_plan_id:j?"":t.freemius_plan_id,trial_period_days:d,trial_requires_payment_method:!j&&d>0?t.trial_requires_payment_method:!1,upc:j?t.upc:null,is_taxable:j?t.is_taxable:!1,variation_attributes:j?t.variation_attributes:[],variants:j?t.variants:[]},f=H.sanitizeProductFormValuesForStoreManagedCurrencies(p,u);if(a&&b)await b(f),Fe(new Date);else if(X)await X(f);else throw new Error("Product form action is not configured.")}catch(d){if(console.error(d),d.message==="NEXT_REDIRECT")return;let p=d.message||"An error occurred while saving.";if(d.code==="23505"){const f=d.message?.toLowerCase()||"";f.includes("products_slug_key")||f.includes("slug")?(p="This slug is already in use. Please choose another one.",B("slug",{type:"manual",message:p})):(f.includes("products_sku_key")||f.includes("sku"))&&(p="This SKU is already in use.",B("sku",{type:"manual",message:p}))}a?O(p):alert(p)}finally{R(!1),E(!1)}},Ue=N?"bg-muted/60 text-muted-foreground opacity-70":"",Be=Qe(se);return e.jsxs("form",{onSubmit:W(be),className:"space-y-2.5 pb-4",children:[e.jsx("input",{type:"hidden",...o("translation_group_id")}),e.jsx("input",{type:"hidden",...o("payment_provider")}),e.jsxs("div",{className:"space-y-2.5 w-full",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-2.5 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-6",children:[e.jsxs("div",{className:"flex h-9 items-center gap-2",children:[e.jsx("span",{className:"text-sm font-bold whitespace-nowrap leading-none pt-0.5",children:"Product Type"}),g.product_type&&e.jsx(L.AlertCircle,{className:"h-4 w-4 text-destructive"})]}),e.jsx("div",{className:"flex h-9 items-center",children:e.jsxs(r.Select,{onValueChange:t=>i("product_type",t,{shouldDirty:!0,shouldValidate:!0}),value:I||void 0,children:[e.jsx(r.SelectTrigger,{className:"w-[160px] h-9 text-xs",children:e.jsx(r.SelectValue,{placeholder:"Select Type"})}),e.jsxs(r.SelectContent,{children:[e.jsx(r.SelectItem,{value:"physical",children:"Physical Product"}),e.jsx(r.SelectItem,{value:"digital",children:"Digital Product"})]})]})})]}),e.jsxs("div",{className:"flex items-center gap-6",children:[e.jsxs("div",{className:"flex h-9 items-center gap-3",children:[e.jsx("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider leading-none",children:"Payment Provider"}),e.jsx(r.Badge,{variant:"outline",className:"text-xs py-1 font-bold bg-muted/30 leading-none",children:x?x==="stripe"?"Stripe":"Freemius":"—"})]}),x&&e.jsx("div",{className:"flex h-9 items-center gap-2",children:D&&ee?e.jsxs("span",{className:"flex items-center gap-1.5 text-emerald-600 text-[10px] font-bold bg-emerald-50 px-2 py-1 rounded-full border border-emerald-100 uppercase leading-none",children:[e.jsx(L.CheckCircle2,{className:"h-3 w-3"}),"Ready"]}):e.jsxs("span",{className:"flex items-center gap-1.5 text-amber-600 text-[10px] font-bold bg-amber-50 px-2 py-1 rounded-full border border-amber-100 uppercase leading-none",children:[e.jsx(L.AlertCircle,{className:"h-3 w-3"}),D?"Keys Missing":"Disabled"]})}),!ee&&x&&F[x].missing.length>0&&e.jsxs("div",{className:"hidden xl:flex h-9 items-center gap-1 text-[10px] text-muted-foreground bg-muted/50 px-2 py-1 rounded border border-dashed leading-none",children:[e.jsx(L.Info,{className:"h-3 w-3"}),"Missing: ",F[x].missing.join(", ")]})]})]}),e.jsxs($,{title:"Product Information",hideHeader:!0,children:[a&&e.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground pb-2 border-b border-border/40 mb-2.5",children:[e.jsx("span",{className:"font-semibold text-[11px] uppercase tracking-wider text-muted-foreground/80",children:"Product Settings"}),e.jsx("div",{className:"flex items-center gap-1.5 min-h-[16px]",children:ke?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative flex h-2 w-2",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75"}),e.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-amber-500"})]}),e.jsx("span",{className:"text-amber-600 dark:text-amber-400 font-medium",children:"Autosaving settings..."})]}):ce?e.jsxs("span",{className:"text-red-500 font-medium",children:["Error saving settings: ",ce]}):ne?e.jsxs("span",{className:"text-emerald-600 dark:text-emerald-400 font-medium",children:["Settings autosaved at ",ne.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})]}):e.jsx("span",{className:"text-muted-foreground/60",children:"Settings autosave in draft mode"})})]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-2.5",children:[e.jsxs("div",{className:"col-span-2 space-y-1",children:[e.jsx(r.Label,{htmlFor:"title",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Title"}),e.jsx(r.Input,{id:"title",placeholder:"Product title",...o("title"),className:"h-8 text-sm"}),g.title&&e.jsx("p",{className:"text-destructive text-[11px] leading-none",children:g.title.message})]}),e.jsxs("div",{className:"col-span-2 space-y-1",children:[e.jsx(r.Label,{htmlFor:"slug",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Slug"}),e.jsx(r.Input,{id:"slug",placeholder:"product-slug",...o("slug"),className:"h-8 text-sm"}),g.slug&&e.jsx("p",{className:"text-destructive text-[11px] leading-none",children:g.slug.message})]}),e.jsxs("div",{className:"col-span-1 space-y-1",children:[e.jsx(r.Label,{htmlFor:"sku",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"SKU"}),e.jsx(r.Input,{id:"sku",placeholder:"SKU",...o("sku"),className:"h-8 text-sm font-mono"}),g.sku&&e.jsx("p",{className:"text-destructive text-[11px] leading-none",children:g.sku.message})]}),e.jsxs("div",{className:"col-span-1 space-y-1",children:[e.jsx(r.Label,{htmlFor:"upc_ean",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"UPC / EAN"}),e.jsx(r.Input,{id:"upc_ean",placeholder:"000000000",...o("upc"),className:"h-8 text-sm font-mono",readOnly:N})]})]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-12 gap-2.5 mt-2",children:[e.jsxs("div",{className:`${a?"lg:col-span-3":"lg:col-span-4"} col-span-2 space-y-1`,children:[e.jsx(r.Label,{htmlFor:"meta_title",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Meta Title"}),e.jsx(r.Input,{id:"meta_title",...o("meta_title"),placeholder:"SEO page title (50-60 chars)",className:"h-8 text-sm"})]}),e.jsxs("div",{className:"lg:col-span-4 col-span-2 space-y-1",children:[e.jsx(r.Label,{htmlFor:"meta_description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Meta Description"}),e.jsx(r.Input,{id:"meta_description",...o("meta_description"),placeholder:"SEO description (150-160 chars)",className:"h-8 text-sm"})]}),e.jsxs("div",{className:`${a?"lg:col-span-3":"lg:col-span-4"} col-span-2 space-y-1`,children:[e.jsx(r.Label,{htmlFor:"custom_canonical",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Canonical URL (optional)"}),e.jsx(r.Input,{id:"custom_canonical",...o("custom_canonical"),placeholder:"Blank = self-referencing. Absolute https://… URL or /relative path to override.",className:"h-8 text-sm"})]}),a&&e.jsxs("div",{className:"lg:col-span-2 col-span-2 space-y-1",children:[e.jsx(r.Label,{htmlFor:"status",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Status"}),e.jsxs(r.Select,{onValueChange:t=>i("status",t,{shouldDirty:!0}),value:c("status"),children:[e.jsx(r.SelectTrigger,{className:"h-8 text-xs",children:e.jsx(r.SelectValue,{placeholder:"Status"})}),e.jsxs(r.SelectContent,{children:[e.jsx(r.SelectItem,{value:"draft",children:"Draft"}),e.jsx(r.SelectItem,{value:"active",children:"Active"}),e.jsx(r.SelectItem,{value:"archived",children:"Archived"})]})]})]})]})]}),e.jsx($,{title:"Product Categories",description:"Assign this product to one or more categories.",children:e.jsx(He.ProductCategorySelector,{categories:we,selectedIds:c("category_ids")||[],onChange:t=>i("category_ids",t,{shouldDirty:!0,shouldValidate:!0})})}),e.jsxs("section",{className:"rounded-lg border bg-card p-3 shadow-sm space-y-3",children:[j&&e.jsxs("div",{className:"flex items-center justify-between gap-4 flex-wrap border-b border-muted/50 pb-2",children:[e.jsx("div",{className:"flex items-center gap-4",children:e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("h2",{className:"text-sm font-bold tracking-tight",children:"Pricing & Inventory"}),e.jsx("p",{className:"text-[11px] text-muted-foreground leading-none",children:"Manage simple or variant pricing."})]})}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 bg-muted/40 rounded-md px-2.5 py-1.5",children:[e.jsx("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Stock"}),e.jsx(r.Input,{id:"stock",type:"number",min:"0",...o("stock",{valueAsNumber:!0}),placeholder:"0",readOnly:N,className:`${Ue} h-8 w-20 text-sm text-center font-mono bg-background`})]}),N?e.jsx(r.Badge,{variant:"secondary",className:"text-[11px] py-0 px-2 h-5",children:"Variant pricing"}):null]})]}),j?e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"w-full",children:[e.jsx(je.CurrencyPriceFields,{idPrefix:"product",currencies:u,prices:z.prices,salePrices:z.salePrices,managedCurrencyCodes:U,onPriceChange:fe,onSalePriceChange:_e,onAutoFill:ye,readOnly:N,helperText:N?"Parent prices stay as a fallback, but active variants define the live shopper price.":void 0,trailing:e.jsx(ve.SaleScheduleFields,{idPrefix:"product",startAt:c("sale_start_at"),endAt:c("sale_end_at"),onChange:(t,d)=>i(t,d,{shouldDirty:!0,shouldValidate:!0}),error:g.sale_end_at?.message,bare:!0})}),g.price&&e.jsx("p",{className:"text-destructive text-sm mt-1",children:g.price.message}),g.sale_price&&e.jsx("p",{className:"text-destructive text-sm mt-1",children:g.sale_price.message}),g.stock&&e.jsx("p",{className:"text-destructive text-[10px] font-medium leading-none mt-1",children:g.stock.message})]}),e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded border border-dashed p-2.5 bg-muted/5",children:[e.jsx("span",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:N?"Variations Active":"Variations"}),e.jsx(r.Button,{type:"button",variant:Y?"outline":"default",onClick:()=>Q(t=>!t),size:"sm",className:"h-7 text-xs px-3",children:Y?"Hide":"Manage"})]}),Y&&e.jsx("div",{className:"border-t pt-3",children:e.jsx($e.VariationsEditor,{globalAttributes:P,currentLanguageCode:Ae,baseSku:c("sku")||"",basePrice:w||0,basePrices:v,baseSalePrice:typeof M=="number"?M:null,baseSalePrices:C,currencies:u,availableVariantImages:Be,initialVariationAttributes:s?.variation_attributes,initialVariants:qe,onChange:Re})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-end gap-4 w-full",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx(r.Label,{htmlFor:"freemius_product_id",className:"text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block",children:"Freemius Product ID"}),e.jsx(r.Input,{id:"freemius_product_id",...o("freemius_product_id"),className:"h-9"})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx(r.Label,{htmlFor:"freemius_plan_id",className:"text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block",children:"Freemius Plan ID"}),e.jsx(r.Input,{id:"freemius_plan_id",...o("freemius_plan_id"),className:"h-9"})]}),Me?e.jsx(Ke.SyncFreemiusPricingButton,{productId:c("freemius_product_id"),hasOpenDraft:Ce}):null]}),e.jsxs("div",{className:"bg-muted/10 border rounded-md overflow-hidden",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-6 bg-muted/20 border-b p-2.5 px-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Free Trial"}),e.jsxs(r.Badge,{variant:"outline",className:"font-mono text-xs shadow-sm bg-background",children:[String(c("trial_period_days")||0)," Days"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Card Required"}),e.jsx(r.Badge,{variant:xe?"default":"secondary",className:"text-xs shadow-sm",children:xe?"Yes":"No"})]}),e.jsx("span",{className:"text-[10px] text-muted-foreground ml-auto",children:"Managed in Freemius dashboard"}),e.jsx("input",{type:"hidden",...o("trial_period_days",{valueAsNumber:!0})})]}),e.jsxs("div",{className:"w-full p-4 pt-3 space-y-2",children:[e.jsx(je.CurrencyPriceFields,{idPrefix:"product",currencies:u,prices:z.prices,salePrices:z.salePrices,managedCurrencyCodes:U,onPriceChange:fe,onSalePriceChange:_e,onAutoFill:ye,readOnly:!0,trailing:e.jsx(ve.SaleScheduleFields,{idPrefix:"product",startAt:c("sale_start_at"),endAt:c("sale_end_at"),onChange:(t,d)=>i(t,d,{shouldDirty:!0,shouldValidate:!0}),error:g.sale_end_at?.message,bare:!0})}),e.jsx("p",{className:"text-[10px] leading-snug text-muted-foreground",children:"Scheduling a sale on a Freemius product generates a time-bounded Freemius coupon so the discount is enforced at Freemius checkout."})]})]})]}),A&&e.jsx("div",{className:"pt-2 border-t",children:A})]})]}),e.jsx($,{title:"Product Description",hideHeader:!0,children:e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"space-y-1",children:[e.jsx(r.Label,{htmlFor:"short_description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Short Description"}),e.jsx(r.Input,{id:"short_description",...o("short_description"),placeholder:"Brief summary for product cards...",className:"h-8 text-sm"})]})})}),e.jsxs($,{title:"Media Gallery",description:"Drag to reorder. First image is the hero.",children:[e.jsx(Le.ProductMediaManager,{initialMedia:se,onUpdate:Te,mediaPickerNode:y}),e.jsx("input",{type:"hidden",...o("product_media")})]}),!a&&e.jsxs("div",{className:"rounded-lg border bg-card p-3 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Status"}),e.jsxs(r.Select,{onValueChange:t=>i("status",t),value:c("status"),children:[e.jsx(r.SelectTrigger,{className:"h-8 w-[110px] text-sm",children:e.jsx(r.SelectValue,{placeholder:"Status"})}),e.jsxs(r.SelectContent,{children:[e.jsx(r.SelectItem,{value:"draft",children:"Draft"}),e.jsx(r.SelectItem,{value:"active",children:"Active"}),e.jsx(r.SelectItem,{value:"archived",children:"Archived"})]})]})]}),e.jsx(r.Button,{disabled:T,type:"submit",size:"sm",className:"h-8 text-sm px-5",children:T?"Saving...":"Save Changes"})]})]})]})}exports.ProductForm=Ze;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),n=require("react"),Re=require("@hookform/resolvers/zod"),z=require("lucide-react"),o=require("@nextblock-cms/ui"),Be=require("../../../../product-schema.cjs.js"),Oe=require("react-hook-form"),ze=require("./ProductMediaManager.cjs.js"),Le=require("./SyncFreemiusPricingButton.cjs.js"),Ke=require("./VariationsEditor.cjs.js"),je=require("./CurrencyPriceFields.cjs.js"),ve=require("./SaleScheduleFields.cjs.js"),$e=require("./ProductCategorySelector.cjs.js"),$=require("../product-price-sync.cjs.js"),He=require("../../../../types.cjs.js"),De=require("../../../../currency.cjs.js"),L=require("@nextblock-cms/utils");function K({title:s,description:t,action:g,children:x,hideHeader:_}){return e.jsxDEV("section",{className:"rounded-lg border bg-card p-3 shadow-sm space-y-3",children:[!_&&e.jsxDEV("div",{className:"flex items-start justify-between gap-4 flex-wrap border-b border-muted/50 pb-2 mb-1",children:[e.jsxDEV("div",{className:"space-y-0.5",children:[e.jsxDEV("h2",{className:"text-sm font-bold tracking-tight",children:s},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:121,columnNumber:13},this),t?e.jsxDEV("p",{className:"text-[11px] text-muted-foreground leading-none",children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:123,columnNumber:15},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:120,columnNumber:11},this),g]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:119,columnNumber:9},this),e.jsxDEV("div",{className:_?"":"pt-1",children:x},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:129,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:117,columnNumber:5},this)}function Je(s,t,g){const x=t?Number.parseInt(t,10):void 0;return s?.language_id||(Number.isFinite(x)?x:void 0)||g.find(_=>_.is_default)?.id||g[0]?.id||1}function Pe(s,t,g,x,_){const V=(x.find(k=>k.is_default)??x[0])?.code||"USD",E=s?.prices&&Object.keys(s.prices).length>0?s.prices:{[V]:typeof s?.price=="number"?s.price/100:0},w=s?.sale_prices&&Object.keys(s.sale_prices).length>0?s.sale_prices:typeof s?.sale_price=="number"?{[V]:s.sale_price/100}:{},M=s?.product_type||"",y=s?.payment_provider||(s?.product_type?He.derivePaymentProviderFromProductType(s.product_type):"stripe");return{...$.sanitizeProductFormValuesForStoreManagedCurrencies({product_type:M||"physical",payment_provider:y,title:s?.title||"",slug:s?.slug||"",sku:s?.sku||"",upc:s?.upc||"",is_taxable:s?.is_taxable??!0,price:typeof s?.price=="number"?s.price/100:0,prices:E,sale_price:typeof s?.sale_price=="number"?s.sale_price/100:null,sale_prices:w,stock:s?.stock||0,meta_title:s?.meta_title||"",meta_description:s?.meta_description||"",custom_canonical:s?.custom_canonical||"",short_description:s?.short_description||"",description_json:s?.description_json||{type:"doc",content:[{type:"paragraph"}]},freemius_product_id:s?.freemius_product_id||"",freemius_plan_id:s?.freemius_plan_id||"",trial_period_days:s?.trial_period_days??0,trial_requires_payment_method:s?.trial_requires_payment_method??!1,status:s?.status||"draft",language_id:Je(s,t,g),translation_group_id:s?.translation_group_id||_||void 0,product_media:s?.product_media?.map(k=>({media_id:k.media_id}))||[],category_ids:s?.category_ids||[],variation_attributes:s?.variation_attributes||[],variants:s?.variants?.map(k=>({...k,prices:k.prices||{},sale_prices:k.sale_prices||{}}))||[]},x),product_type:M,payment_provider:y}}function _e(s){return s?s.map(t=>({id:t.id||t.media_id,media_id:t.media_id,file_path:t.media?.file_path||t.media?.object_key||"",alt:t.media?.alt_text||"",sort_order:t.sort_order??0})).sort((t,g)=>t.sort_order-g.sort_order):[]}function Xe(s){return s.map(t=>({media_id:t.media_id}))}function Ye(s){return s.map(t=>({media_id:t.media_id,file_path:t.file_path,alt:t.alt}))}const Qe=s=>s.toString().toLowerCase().trim().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"");function We({initialData:s,isEdit:t=!1,mediaPickerNode:g,availableLanguagesProp:x,globalAttributesProp:_,currenciesProp:H,translationGroupId:V,targetLanguageId:E,freemiusDashboardNode:w,enabledProviders:M,configStatus:y,createAction:J,updateAction:k,availableCategoriesProp:Ce=[],hasOpenDraft:Fe=!1}){const[I,A]=n.useState(!1),[X,Y]=n.useState(()=>!!s?.variants?.length),a=n.useMemo(()=>H.filter(r=>r.is_active!==!1).sort((r,i)=>r.is_default!==i.is_default?r.is_default?-1:1:r.code.localeCompare(i.code)),[H]),m=n.useMemo(()=>a.find(r=>r.is_default)??a[0],[a]),q=n.useMemo(()=>$.getStoreManagedPriceCurrencyCodes(a),[a]),te=Oe.useForm({resolver:Re.zodResolver(Be.productSchema),defaultValues:Pe(s,E,x,a,V)}),{register:d,handleSubmit:Q,setValue:c,reset:ce,watch:l,setError:T,formState:{errors:N,dirtyFields:ie}}=te,ne=n.useRef(!0),W=n.useRef(null),[Ve,R]=n.useState(!1),[le,B]=n.useState(null),[me,ye]=n.useState(null),Z=l(),de=te.formState.isDirty;n.useEffect(()=>{if(!t)return;if(ne.current){ne.current=!1,W.current=JSON.stringify(Z);return}if(!de)return;const r=JSON.stringify(Z);if(r===W.current)return;const i=setTimeout(()=>{I||(W.current=r,Q(ke)())},400);return()=>clearTimeout(i)},[Z,t,de,I,Q]);const ae=l("title"),S=l("product_type"),b=S==="digital"?"freemius":S==="physical"?"stripe":void 0,j=S==="physical",ue=S==="digital",G=b?M[b]:!1,ee=b?y[b].hasKeys:!1,Ue=!!l("freemius_product_id"),pe=Number(l("trial_period_days")||0),be=!!l("trial_requires_payment_method"),Ee=l("variants")||[],C=l("price"),U=l("sale_price"),v=l("prices")||{},F=l("sale_prices")||{},D=(Ee?.length||0)>0,Se=l("language_id"),we=x.find(r=>r.id===Se)?.code||x.find(r=>r.is_default)?.code||x[0]?.code,O=n.useMemo(()=>$.resolveEditorCurrencyPriceMaps({currencies:a,prices:v,salePrices:F,fallbackPrice:C,fallbackSalePrice:U}),[C,U,a,v,F]),Me=n.useMemo(()=>s?.variants?.map(r=>({...r,prices:r.prices||{},sale_prices:r.sale_prices||{}})),[s?.variants]);n.useEffect(()=>{if(ie.title&&!t){const r=Qe(ae);c("slug",r,{shouldValidate:!0})}},[ae,ie.title,c,t]);const[se,xe]=n.useState(()=>_e(s?.product_media)),[re,Ne]=n.useState(new Set);n.useEffect(()=>{ce(Pe(s,E,x,a,V)),xe(_e(s?.product_media)),Ne(new Set),Y(!!s?.variants?.length)},[x,a,s,ce,E,V]);const Ie=r=>{const i=new Set(r.map(p=>p.id)),u=se.filter(p=>!i.has(p.id)),f=new Set(re);u.forEach(p=>{p.media_id&&f.add(p.media_id)}),Ne(f),xe(r),c("product_media",Xe(r),{shouldDirty:!0}),c("explicitly_removed_media_ids",Array.from(f),{shouldDirty:!0})};n.useEffect(()=>{c("explicitly_removed_media_ids",Array.from(re))},[re,c]),n.useEffect(()=>{D&&Y(!0)},[D]),n.useEffect(()=>{d("is_taxable"),d("price"),d("sale_price"),d("payment_provider"),d("trial_requires_payment_method")},[d]),n.useEffect(()=>{if(!ue){c("trial_period_days",0,{shouldDirty:!1,shouldValidate:!0}),c("trial_requires_payment_method",!1,{shouldDirty:!1,shouldValidate:!0});return}pe<=0&&c("trial_requires_payment_method",!1,{shouldDirty:!1,shouldValidate:!0})},[ue,c,pe]),n.useEffect(()=>{b&&c("payment_provider",b,{shouldDirty:!1,shouldValidate:!0})},[b,c]),n.useEffect(()=>{m&&v[m.code]===void 0&&c("prices",{...v,[m.code]:C||0},{shouldDirty:!1})},[C,m,v,c]);const fe=n.useCallback((r,i)=>{const u={...v,[r]:i};c("prices",u,{shouldDirty:!0,shouldValidate:!0}),r===m?.code&&c("price",i,{shouldDirty:!0,shouldValidate:!0})},[m?.code,v,c]),he=n.useCallback((r,i)=>{const u={...F,[r]:i};c("sale_prices",u,{shouldDirty:!0,shouldValidate:!0}),r===m?.code&&c("sale_price",i,{shouldDirty:!0,shouldValidate:!0})},[m?.code,F,c]),ge=n.useCallback(()=>{if(!m)return;const r=new Set(q),i=v[m.code]??C??0,u=F[m.code]??U??null,f=a.reduce((P,h)=>{if(h.code!==m.code&&r.has(h.code))return P;const oe=De.convertMinorUnitAmount({amount:L.majorUnitAmountToMinor(i,m.code),fromCurrencyCode:m.code,toCurrencyCode:h.code,currencies:a,applyRounding:!0});return P[h.code]=L.minorUnitAmountToMajor(oe,h.code),P},{}),p=a.reduce((P,h)=>{if(h.code!==m.code&&r.has(h.code))return P;if(typeof u!="number")return(h.code===m.code||!r.has(h.code))&&(P[h.code]=null),P;const oe=De.convertMinorUnitAmount({amount:L.majorUnitAmountToMinor(u,m.code),fromCurrencyCode:m.code,toCurrencyCode:h.code,currencies:a,applyRounding:!0});return P[h.code]=L.minorUnitAmountToMajor(oe,h.code),P},{});c("prices",f,{shouldDirty:!0,shouldValidate:!0}),c("sale_prices",p,{shouldDirty:!0,shouldValidate:!0}),c("price",f[m.code]??i,{shouldDirty:!0,shouldValidate:!0}),c("sale_price",p[m.code]??null,{shouldDirty:!0,shouldValidate:!0})},[a,m,v,F,c,q,C,U]),Ae=n.useCallback(({variationAttributes:r,variants:i})=>{c("variation_attributes",r,{shouldDirty:!0}),c("variants",i,{shouldDirty:!0,shouldValidate:!0})},[c]),ke=async r=>{A(!0),R(!0),B(null);try{if(!b){const p="Select whether this product is physical or digital before saving.";T("product_type",{type:"manual",message:p}),t?B(p):alert(p),A(!1),R(!1);return}if(r.status==="active"&&(!G||!ee)){const p=`${b==="stripe"?"Stripe":"Freemius"} must be enabled and fully configured before this product can be published.`;T("product_type",{type:"manual",message:p}),t?B(p):alert(p),A(!1),R(!1);return}const i=j?0:Math.max(0,Number(r.trial_period_days||0)),u={...r,product_type:r.product_type,payment_provider:b,freemius_product_id:j?"":r.freemius_product_id,freemius_plan_id:j?"":r.freemius_plan_id,trial_period_days:i,trial_requires_payment_method:!j&&i>0?r.trial_requires_payment_method:!1,upc:j?r.upc:null,is_taxable:j?r.is_taxable:!1,variation_attributes:j?r.variation_attributes:[],variants:j?r.variants:[]},f=$.sanitizeProductFormValuesForStoreManagedCurrencies(u,a);if(t&&k)await k(f),ye(new Date);else if(J)await J(f);else throw new Error("Product form action is not configured.")}catch(i){if(console.error(i),i.message==="NEXT_REDIRECT")return;let u=i.message||"An error occurred while saving.";if(i.code==="23505"){const f=i.message?.toLowerCase()||"";f.includes("products_slug_key")||f.includes("slug")?(u="This slug is already in use. Please choose another one.",T("slug",{type:"manual",message:u})):(f.includes("products_sku_key")||f.includes("sku"))&&(u="This SKU is already in use.",T("sku",{type:"manual",message:u}))}t?B(u):alert(u)}finally{A(!1),R(!1)}},qe=D?"bg-muted/60 text-muted-foreground opacity-70":"",Te=Ye(se);return e.jsxDEV("form",{onSubmit:Q(ke),className:"space-y-2.5 pb-4",children:[e.jsxDEV("input",{type:"hidden",...d("translation_group_id")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:811,columnNumber:7},this),e.jsxDEV("input",{type:"hidden",...d("payment_provider")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:812,columnNumber:7},this),e.jsxDEV("div",{className:"space-y-2.5 w-full",children:[e.jsxDEV("div",{className:"rounded-lg border bg-card p-2.5 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap",children:[e.jsxDEV("div",{className:"flex items-center gap-6",children:[e.jsxDEV("div",{className:"flex h-9 items-center gap-2",children:[e.jsxDEV("span",{className:"text-sm font-bold whitespace-nowrap leading-none pt-0.5",children:"Product Type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:818,columnNumber:15},this),N.product_type&&e.jsxDEV(z.AlertCircle,{className:"h-4 w-4 text-destructive"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:820,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:817,columnNumber:13},this),e.jsxDEV("div",{className:"flex h-9 items-center",children:e.jsxDEV(o.Select,{onValueChange:r=>c("product_type",r,{shouldDirty:!0,shouldValidate:!0}),value:S||void 0,children:[e.jsxDEV(o.SelectTrigger,{className:"w-[160px] h-9 text-xs",children:e.jsxDEV(o.SelectValue,{placeholder:"Select Type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:835,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:834,columnNumber:17},this),e.jsxDEV(o.SelectContent,{children:[e.jsxDEV(o.SelectItem,{value:"physical",children:"Physical Product"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:838,columnNumber:19},this),e.jsxDEV(o.SelectItem,{value:"digital",children:"Digital Product"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:839,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:837,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:825,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:824,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:816,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-6",children:[e.jsxDEV("div",{className:"flex h-9 items-center gap-3",children:[e.jsxDEV("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider leading-none",children:"Payment Provider"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:847,columnNumber:15},this),e.jsxDEV(o.Badge,{variant:"outline",className:"text-xs py-1 font-bold bg-muted/30 leading-none",children:b?b==="stripe"?"Stripe":"Freemius":"—"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:848,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:846,columnNumber:13},this),b&&e.jsxDEV("div",{className:"flex h-9 items-center gap-2",children:G&&ee?e.jsxDEV("span",{className:"flex items-center gap-1.5 text-emerald-600 text-[10px] font-bold bg-emerald-50 px-2 py-1 rounded-full border border-emerald-100 uppercase leading-none",children:[e.jsxDEV(z.CheckCircle2,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:861,columnNumber:21},this),"Ready"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:860,columnNumber:19},this):e.jsxDEV("span",{className:"flex items-center gap-1.5 text-amber-600 text-[10px] font-bold bg-amber-50 px-2 py-1 rounded-full border border-amber-100 uppercase leading-none",children:[e.jsxDEV(z.AlertCircle,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:866,columnNumber:21},this),G?"Keys Missing":"Disabled"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:865,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:858,columnNumber:15},this),!ee&&b&&y[b].missing.length>0&&e.jsxDEV("div",{className:"hidden xl:flex h-9 items-center gap-1 text-[10px] text-muted-foreground bg-muted/50 px-2 py-1 rounded border border-dashed leading-none",children:[e.jsxDEV(z.Info,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:875,columnNumber:17},this),"Missing: ",y[b].missing.join(", ")]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:874,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:845,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:815,columnNumber:9},this),e.jsxDEV(K,{title:"Product Information",hideHeader:!0,children:[t&&e.jsxDEV("div",{className:"flex items-center justify-between text-xs text-muted-foreground pb-2 border-b border-border/40 mb-2.5",children:[e.jsxDEV("span",{className:"font-semibold text-[11px] uppercase tracking-wider text-muted-foreground/80",children:"Product Settings"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:888,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 min-h-[16px]",children:Ve?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"relative flex h-2 w-2",children:[e.jsxDEV("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:893,columnNumber:23},this),e.jsxDEV("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-amber-500"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:894,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:892,columnNumber:21},this),e.jsxDEV("span",{className:"text-amber-600 dark:text-amber-400 font-medium",children:"Autosaving settings..."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:896,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:891,columnNumber:19},this):le?e.jsxDEV("span",{className:"text-red-500 font-medium",children:["Error saving settings: ",le]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:899,columnNumber:19},this):me?e.jsxDEV("span",{className:"text-emerald-600 dark:text-emerald-400 font-medium",children:["Settings autosaved at ",me.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:901,columnNumber:19},this):e.jsxDEV("span",{className:"text-muted-foreground/60",children:"Settings autosave in draft mode"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:905,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:889,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:887,columnNumber:13},this),e.jsxDEV("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-2.5",children:[e.jsxDEV("div",{className:"col-span-2 space-y-1",children:[e.jsxDEV(o.Label,{htmlFor:"title",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Title"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:912,columnNumber:15},this),e.jsxDEV(o.Input,{id:"title",placeholder:"Product title",...d("title"),className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:913,columnNumber:15},this),N.title&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:N.title.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:914,columnNumber:32},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:911,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-2 space-y-1",children:[e.jsxDEV(o.Label,{htmlFor:"slug",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Slug"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:917,columnNumber:15},this),e.jsxDEV(o.Input,{id:"slug",placeholder:"product-slug",...d("slug"),className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:918,columnNumber:15},this),N.slug&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:N.slug.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:919,columnNumber:31},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:916,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-1 space-y-1",children:[e.jsxDEV(o.Label,{htmlFor:"sku",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"SKU"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:922,columnNumber:15},this),e.jsxDEV(o.Input,{id:"sku",placeholder:"SKU",...d("sku"),className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:923,columnNumber:15},this),N.sku&&e.jsxDEV("p",{className:"text-destructive text-[11px] leading-none",children:N.sku.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:924,columnNumber:30},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:921,columnNumber:13},this),e.jsxDEV("div",{className:"col-span-1 space-y-1",children:[e.jsxDEV(o.Label,{htmlFor:"upc_ean",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"UPC / EAN"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:927,columnNumber:15},this),e.jsxDEV(o.Input,{id:"upc_ean",placeholder:"000000000",...d("upc"),className:"h-8 text-sm font-mono",readOnly:D},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:928,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:926,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:910,columnNumber:11},this),e.jsxDEV("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-12 gap-2.5 mt-2",children:[e.jsxDEV("div",{className:`${t?"lg:col-span-3":"lg:col-span-4"} col-span-2 space-y-1`,children:[e.jsxDEV(o.Label,{htmlFor:"meta_title",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Meta Title"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:933,columnNumber:15},this),e.jsxDEV(o.Input,{id:"meta_title",...d("meta_title"),placeholder:"SEO page title (50-60 chars)",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:934,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:932,columnNumber:13},this),e.jsxDEV("div",{className:"lg:col-span-4 col-span-2 space-y-1",children:[e.jsxDEV(o.Label,{htmlFor:"meta_description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Meta Description"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:937,columnNumber:15},this),e.jsxDEV(o.Input,{id:"meta_description",...d("meta_description"),placeholder:"SEO description (150-160 chars)",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:938,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:936,columnNumber:13},this),e.jsxDEV("div",{className:`${t?"lg:col-span-3":"lg:col-span-4"} col-span-2 space-y-1`,children:[e.jsxDEV(o.Label,{htmlFor:"custom_canonical",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Canonical URL (optional)"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:941,columnNumber:15},this),e.jsxDEV(o.Input,{id:"custom_canonical",...d("custom_canonical"),placeholder:"Blank = self-referencing. Absolute https://… URL or /relative path to override.",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:942,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:940,columnNumber:13},this),t&&e.jsxDEV("div",{className:"lg:col-span-2 col-span-2 space-y-1",children:[e.jsxDEV(o.Label,{htmlFor:"status",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Status"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:946,columnNumber:17},this),e.jsxDEV(o.Select,{onValueChange:r=>c("status",r,{shouldDirty:!0}),value:l("status"),children:[e.jsxDEV(o.SelectTrigger,{className:"h-8 text-xs",children:e.jsxDEV(o.SelectValue,{placeholder:"Status"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:949,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:948,columnNumber:19},this),e.jsxDEV(o.SelectContent,{children:[e.jsxDEV(o.SelectItem,{value:"draft",children:"Draft"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:952,columnNumber:21},this),e.jsxDEV(o.SelectItem,{value:"active",children:"Active"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:953,columnNumber:21},this),e.jsxDEV(o.SelectItem,{value:"archived",children:"Archived"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:954,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:951,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:947,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:945,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:931,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:882,columnNumber:9},this),e.jsxDEV(K,{title:"Product Categories",description:"Assign this product to one or more categories.",children:e.jsxDEV($e.ProductCategorySelector,{categories:Ce,selectedIds:l("category_ids")||[],onChange:r=>c("category_ids",r,{shouldDirty:!0,shouldValidate:!0})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:966,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:962,columnNumber:9},this),e.jsxDEV("section",{className:"rounded-lg border bg-card p-3 shadow-sm space-y-3",children:[j&&e.jsxDEV("div",{className:"flex items-center justify-between gap-4 flex-wrap border-b border-muted/50 pb-2",children:[e.jsxDEV("div",{className:"flex items-center gap-4",children:e.jsxDEV("div",{className:"space-y-0.5",children:[e.jsxDEV("h2",{className:"text-sm font-bold tracking-tight",children:"Pricing & Inventory"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:978,columnNumber:19},this),e.jsxDEV("p",{className:"text-[11px] text-muted-foreground leading-none",children:"Manage simple or variant pricing."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:979,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:977,columnNumber:17},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:976,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("div",{className:"flex items-center gap-2 bg-muted/40 rounded-md px-2.5 py-1.5",children:[e.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Stock"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:984,columnNumber:21},this),e.jsxDEV(o.Input,{id:"stock",type:"number",min:"0",...d("stock",{valueAsNumber:!0}),placeholder:"0",readOnly:D,className:`${qe} h-8 w-20 text-sm text-center font-mono bg-background`},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:985,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:983,columnNumber:19},this),D?e.jsxDEV(o.Badge,{variant:"secondary",className:"text-[11px] py-0 px-2 h-5",children:"Variant pricing"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:996,columnNumber:19},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:982,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:975,columnNumber:13},this),j?e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{className:"w-full",children:[e.jsxDEV(je.CurrencyPriceFields,{idPrefix:"product",currencies:a,prices:O.prices,salePrices:O.salePrices,managedCurrencyCodes:q,onPriceChange:fe,onSalePriceChange:he,onAutoFill:ge,readOnly:D,helperText:D?"Parent prices stay as a fallback, but active variants define the live shopper price.":void 0,trailing:e.jsxDEV(ve.SaleScheduleFields,{idPrefix:"product",startAt:l("sale_start_at"),endAt:l("sale_end_at"),onChange:(r,i)=>c(r,i,{shouldDirty:!0,shouldValidate:!0}),error:N.sale_end_at?.message,bare:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1020,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1004,columnNumber:17},this),N.price&&e.jsxDEV("p",{className:"text-destructive text-sm mt-1",children:N.price.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1033,columnNumber:19},this),N.sale_price&&e.jsxDEV("p",{className:"text-destructive text-sm mt-1",children:N.sale_price.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1036,columnNumber:19},this),N.stock&&e.jsxDEV("p",{className:"text-destructive text-[10px] font-medium leading-none mt-1",children:N.stock.message},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1039,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1003,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center justify-between gap-3 rounded border border-dashed p-2.5 bg-muted/5",children:[e.jsxDEV("span",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:D?"Variations Active":"Variations"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1044,columnNumber:17},this),e.jsxDEV(o.Button,{type:"button",variant:X?"outline":"default",onClick:()=>Y(r=>!r),size:"sm",className:"h-7 text-xs px-3",children:X?"Hide":"Manage"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1045,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1043,columnNumber:15},this),X&&e.jsxDEV("div",{className:"border-t pt-3",children:e.jsxDEV(Ke.VariationsEditor,{globalAttributes:_,currentLanguageCode:we,baseSku:l("sku")||"",basePrice:C||0,basePrices:v,baseSalePrice:typeof U=="number"?U:null,baseSalePrices:F,currencies:a,availableVariantImages:Te,initialVariationAttributes:s?.variation_attributes,initialVariants:Me,onChange:Ae},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1058,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1057,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1002,columnNumber:13},this):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{className:"flex items-end gap-4 w-full",children:[e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(o.Label,{htmlFor:"freemius_product_id",className:"text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block",children:"Freemius Product ID"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1082,columnNumber:19},this),e.jsxDEV(o.Input,{id:"freemius_product_id",...d("freemius_product_id"),className:"h-9"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1083,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1081,columnNumber:17},this),e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(o.Label,{htmlFor:"freemius_plan_id",className:"text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block",children:"Freemius Plan ID"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1086,columnNumber:19},this),e.jsxDEV(o.Input,{id:"freemius_plan_id",...d("freemius_plan_id"),className:"h-9"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1087,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1085,columnNumber:17},this),Ue?e.jsxDEV(Le.SyncFreemiusPricingButton,{productId:l("freemius_product_id"),hasOpenDraft:Fe},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1090,columnNumber:19},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1080,columnNumber:15},this),e.jsxDEV("div",{className:"bg-muted/10 border rounded-md overflow-hidden",children:[e.jsxDEV("div",{className:"flex flex-wrap items-center gap-6 bg-muted/20 border-b p-2.5 px-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:"text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Free Trial"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1100,columnNumber:21},this),e.jsxDEV(o.Badge,{variant:"outline",className:"font-mono text-xs shadow-sm bg-background",children:[String(l("trial_period_days")||0)," Days"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1101,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1099,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:"text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Card Required"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1104,columnNumber:21},this),e.jsxDEV(o.Badge,{variant:be?"default":"secondary",className:"text-xs shadow-sm",children:be?"Yes":"No"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1105,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1103,columnNumber:19},this),e.jsxDEV("span",{className:"text-[10px] text-muted-foreground ml-auto",children:"Managed in Freemius dashboard"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1109,columnNumber:19},this),e.jsxDEV("input",{type:"hidden",...d("trial_period_days",{valueAsNumber:!0})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1113,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1098,columnNumber:17},this),e.jsxDEV("div",{className:"w-full p-4 pt-3 space-y-2",children:[e.jsxDEV(je.CurrencyPriceFields,{idPrefix:"product",currencies:a,prices:O.prices,salePrices:O.salePrices,managedCurrencyCodes:q,onPriceChange:fe,onSalePriceChange:he,onAutoFill:ge,readOnly:!0,trailing:e.jsxDEV(ve.SaleScheduleFields,{idPrefix:"product",startAt:l("sale_start_at"),endAt:l("sale_end_at"),onChange:(r,i)=>c(r,i,{shouldDirty:!0,shouldValidate:!0}),error:N.sale_end_at?.message,bare:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1128,columnNumber:23},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1117,columnNumber:19},this),e.jsxDEV("p",{className:"text-[10px] leading-snug text-muted-foreground",children:"Scheduling a sale on a Freemius product generates a time-bounded Freemius coupon so the discount is enforced at Freemius checkout."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1140,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1116,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1097,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1079,columnNumber:15},this),w&&e.jsxDEV("div",{className:"pt-2 border-t",children:w},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1148,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1078,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:973,columnNumber:9},this),e.jsxDEV(K,{title:"Product Description",hideHeader:!0,children:e.jsxDEV("div",{className:"space-y-2",children:e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(o.Label,{htmlFor:"short_description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Short Description"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1159,columnNumber:15},this),e.jsxDEV(o.Input,{id:"short_description",...d("short_description"),placeholder:"Brief summary for product cards...",className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1160,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1158,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1157,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1156,columnNumber:9},this),e.jsxDEV(K,{title:"Media Gallery",description:"Drag to reorder. First image is the hero.",children:[e.jsxDEV(ze.ProductMediaManager,{initialMedia:se,onUpdate:Ie,mediaPickerNode:g},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1166,columnNumber:11},this),e.jsxDEV("input",{type:"hidden",...d("product_media")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1171,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1165,columnNumber:9},this),!t&&e.jsxDEV("div",{className:"rounded-lg border bg-card p-3 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Status"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1177,columnNumber:15},this),e.jsxDEV(o.Select,{onValueChange:r=>c("status",r),value:l("status"),children:[e.jsxDEV(o.SelectTrigger,{className:"h-8 w-[110px] text-sm",children:e.jsxDEV(o.SelectValue,{placeholder:"Status"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1180,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1179,columnNumber:17},this),e.jsxDEV(o.SelectContent,{children:[e.jsxDEV(o.SelectItem,{value:"draft",children:"Draft"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1183,columnNumber:19},this),e.jsxDEV(o.SelectItem,{value:"active",children:"Active"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1184,columnNumber:19},this),e.jsxDEV(o.SelectItem,{value:"archived",children:"Archived"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1185,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1182,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1178,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1176,columnNumber:13},this),e.jsxDEV(o.Button,{disabled:I,type:"submit",size:"sm",className:"h-8 text-sm px-5",children:I?"Saving...":"Save Changes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1189,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:1175,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:814,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",lineNumber:809,columnNumber:5},this)}exports.ProductForm=We;
|