@nextblock-cms/ecom 0.13.4 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/lib/CurrencyProvider.cjs.js +1 -1
  2. package/lib/CurrencyProvider.es.js +31 -27
  3. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  4. package/lib/components/AccountNavigationMenu.es.js +53 -26
  5. package/lib/components/AddToCartButton.cjs.js +1 -1
  6. package/lib/components/AddToCartButton.es.js +49 -25
  7. package/lib/components/Cart.cjs.js +1 -1
  8. package/lib/components/Cart.es.js +367 -115
  9. package/lib/components/CartDrawer.cjs.js +1 -1
  10. package/lib/components/CartDrawer.es.js +272 -88
  11. package/lib/components/CartIcon.cjs.js +1 -1
  12. package/lib/components/CartIcon.es.js +44 -16
  13. package/lib/components/Checkout.cjs.js +1 -1
  14. package/lib/components/Checkout.es.js +1601 -694
  15. package/lib/components/CouponForm.cjs.js +1 -1
  16. package/lib/components/CouponForm.es.js +160 -96
  17. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  18. package/lib/components/CurrencySwitcher.es.js +32 -12
  19. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  20. package/lib/components/CustomerProfileForm.es.js +666 -250
  21. package/lib/components/FeaturedProduct.cjs.js +1 -1
  22. package/lib/components/FeaturedProduct.es.js +126 -42
  23. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  24. package/lib/components/FreemiusLicensePanel.es.js +125 -45
  25. package/lib/components/InvoiceDocument.cjs.js +1 -1
  26. package/lib/components/InvoiceDocument.es.js +485 -146
  27. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  28. package/lib/components/InvoiceViewerShell.es.js +142 -54
  29. package/lib/components/ProductCard.cjs.js +1 -1
  30. package/lib/components/ProductCard.es.js +224 -81
  31. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  32. package/lib/components/ProductDetailsLayout.es.js +629 -275
  33. package/lib/components/ProductGallery.cjs.js +1 -1
  34. package/lib/components/ProductGallery.es.js +64 -21
  35. package/lib/components/ProductGrid.cjs.js +1 -1
  36. package/lib/components/ProductGrid.es.js +28 -12
  37. package/lib/components/ShippingEstimator.cjs.js +1 -1
  38. package/lib/components/ShippingEstimator.es.js +226 -90
  39. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  40. package/lib/components/SimpleTiptapRenderer.es.js +286 -93
  41. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  42. package/lib/components/SubscriptionSelector.es.js +168 -92
  43. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  44. package/lib/pages/cms/coupons/CouponEditorForm.es.js +370 -110
  45. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  46. package/lib/pages/cms/coupons/CouponsPage.es.js +368 -116
  47. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  48. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +61 -25
  49. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  50. package/lib/pages/cms/coupons/EditCouponPage.es.js +71 -35
  51. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  52. package/lib/pages/cms/coupons/ProductScopePicker.es.js +167 -72
  53. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  54. package/lib/pages/cms/orders/ExportReportsDialog.es.js +247 -87
  55. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  56. package/lib/pages/cms/orders/OrderDetailPage.es.js +283 -95
  57. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  58. package/lib/pages/cms/orders/OrderPrintButton.es.js +21 -9
  59. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  60. package/lib/pages/cms/orders/OrderStatusForm.es.js +106 -46
  61. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  62. package/lib/pages/cms/orders/OrdersPage.es.js +257 -78
  63. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  64. package/lib/pages/cms/payments/PaymentsClient.es.js +551 -155
  65. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  66. package/lib/pages/cms/payments/PaymentsPage.es.js +24 -16
  67. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  68. package/lib/pages/cms/products/ProductsPage.es.js +77 -37
  69. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  70. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +176 -96
  71. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  72. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +85 -41
  73. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  74. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +455 -192
  75. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  76. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +72 -28
  77. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  78. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +490 -183
  79. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  80. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +175 -67
  81. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  82. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +211 -100
  83. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  84. package/lib/pages/cms/products/components/DeleteProductButton.es.js +45 -25
  85. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  86. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +202 -58
  87. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  88. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +234 -88
  89. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  90. package/lib/pages/cms/products/components/ProductForm.es.js +1199 -551
  91. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  92. package/lib/pages/cms/products/components/ProductMediaManager.es.js +154 -63
  93. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  94. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +391 -144
  95. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  96. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +203 -87
  97. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  98. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +30 -18
  99. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  100. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +35 -23
  101. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  102. package/lib/pages/cms/products/components/VariationsEditor.es.js +492 -261
  103. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  104. package/lib/pages/cms/products/inventory/InventoryPage.es.js +33 -13
  105. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  106. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +365 -145
  107. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  108. package/lib/pages/cms/products/new/NewProductPage.es.js +46 -34
  109. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  110. package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
  111. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  112. package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
  113. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
  115. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  116. package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
  117. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
  119. package/lib/product-context.cjs.js +1 -1
  120. package/lib/product-context.es.js +14 -10
  121. package/package.json +4 -4
@@ -1,16 +1,16 @@
1
1
  'use client';
2
- import { jsxs as a, jsx as t } from "react/jsx-runtime";
3
- import { useState as v, useTransition as V, useRef as $, useMemo as B } from "react";
4
- import { Input as j, Button as b, Table as D, TableHeader as F, TableRow as x, TableHead as p, TableBody as z, TableCell as u, Badge as w } from "@nextblock-cms/ui";
5
- import { Search as A, Upload as _, Download as q, RotateCcw as E, Save as H } from "lucide-react";
6
- import { toast as m } from "sonner";
7
- import { importInventoryCsvAction as O, updateInventoryQuantityAction as Q } from "./actions.es.js";
8
- function M(c) {
9
- const i = String(c ?? "");
10
- return /[",\n]/.test(i) ? `"${i.replace(/"/g, '""')}"` : i;
2
+ import { jsxDEV as e } from "react/jsx-dev-runtime";
3
+ import { useState as k, useTransition as P, useRef as R, useMemo as V } from "react";
4
+ import { Input as I, Button as f, Table as $, TableHeader as B, TableRow as h, TableHead as u, TableBody as F, TableCell as a, Badge as C } from "@nextblock-cms/ui";
5
+ import { Search as z, Upload as A, Download as _, RotateCcw as E, Save as q } from "lucide-react";
6
+ import { toast as N } from "sonner";
7
+ import { importInventoryCsvAction as H, updateInventoryQuantityAction as O } from "./actions.es.js";
8
+ function Q(i) {
9
+ const c = String(i ?? "");
10
+ return /[",\n]/.test(c) ? `"${c.replace(/"/g, '""')}"` : c;
11
11
  }
12
- function G(c) {
13
- const i = [
12
+ function M(i) {
13
+ const c = [
14
14
  "sku",
15
15
  "stock",
16
16
  "usage_type",
@@ -18,197 +18,417 @@ function G(c) {
18
18
  "languages",
19
19
  "statuses",
20
20
  "parent_product_skus"
21
- ], k = c.map((l) => [
22
- l.sku,
23
- l.stock,
24
- l.usageType,
25
- l.productTitles.join("|"),
26
- l.languages.join("|"),
27
- l.statuses.join("|"),
28
- l.parentProductSkus.join("|")
21
+ ], y = i.map((o) => [
22
+ o.sku,
23
+ o.stock,
24
+ o.usageType,
25
+ o.productTitles.join("|"),
26
+ o.languages.join("|"),
27
+ o.statuses.join("|"),
28
+ o.parentProductSkus.join("|")
29
29
  ]);
30
- return [i, ...k].map((l) => l.map((h) => M(h)).join(",")).join(`
30
+ return [c, ...y].map((o) => o.map((d) => Q(d)).join(",")).join(`
31
31
  `);
32
32
  }
33
- function J(c) {
34
- return c.usageType === "mixed" ? "Shared SKU" : c.usageType === "variant" ? `Variant SKU ${c.sku}` : "Simple Product";
33
+ function G(i) {
34
+ return i.usageType === "mixed" ? "Shared SKU" : i.usageType === "variant" ? `Variant SKU ${i.sku}` : "Simple Product";
35
35
  }
36
- function W(c) {
37
- return c.usageType === "variant" ? "secondary" : "outline";
36
+ function J(i) {
37
+ return i.usageType === "variant" ? "secondary" : "outline";
38
38
  }
39
- function re({ initialItems: c }) {
40
- const [i, k] = v(c), [l, h] = v(
41
- () => c.reduce((e, n) => (e[n.key] = String(n.stock), e), {})
42
- ), [S, I] = v(""), [y, N] = V(), [U, g] = v(null), C = $(null), T = B(() => {
43
- const e = S.trim().toLowerCase();
44
- return e ? i.filter((n) => n.sku.toLowerCase().includes(e) || n.productTitles.join(" ").toLowerCase().includes(e) || n.parentProductSkus.join(" ").toLowerCase().includes(e) || n.languages.join(" ").toLowerCase().includes(e)) : i;
45
- }, [i, S]), K = () => {
46
- const e = G(i), n = new Blob([e], { type: "text/csv;charset=utf-8;" }), s = URL.createObjectURL(n), o = document.createElement("a");
47
- o.href = s, o.download = "inventory-export.csv", o.click(), URL.revokeObjectURL(s);
48
- }, L = (e) => {
49
- const n = l[e.key] ?? String(e.stock), s = Number.parseInt(n, 10);
50
- if (!Number.isFinite(s) || s < 0) {
51
- m.error("Stock must be a non-negative whole number.");
39
+ function ne({ initialItems: i }) {
40
+ const [c, y] = k(i), [o, d] = k(
41
+ () => i.reduce((s, n) => (s[n.key] = String(n.stock), s), {})
42
+ ), [x, U] = k(""), [p, g] = P(), [D, b] = k(null), T = R(null), j = V(() => {
43
+ const s = x.trim().toLowerCase();
44
+ return s ? c.filter((n) => n.sku.toLowerCase().includes(s) || n.productTitles.join(" ").toLowerCase().includes(s) || n.parentProductSkus.join(" ").toLowerCase().includes(s) || n.languages.join(" ").toLowerCase().includes(s)) : c;
45
+ }, [c, x]), S = () => {
46
+ const s = M(c), n = new Blob([s], { type: "text/csv;charset=utf-8;" }), t = URL.createObjectURL(n), l = document.createElement("a");
47
+ l.href = t, l.download = "inventory-export.csv", l.click(), URL.revokeObjectURL(t);
48
+ }, w = (s) => {
49
+ const n = o[s.key] ?? String(s.stock), t = Number.parseInt(n, 10);
50
+ if (!Number.isFinite(t) || t < 0) {
51
+ N.error("Stock must be a non-negative whole number.");
52
52
  return;
53
53
  }
54
- g(e.key), N(async () => {
55
- const o = await Q({
56
- sku: e.sku,
57
- stock: s
54
+ b(s.key), g(async () => {
55
+ const l = await O({
56
+ sku: s.sku,
57
+ stock: t
58
58
  });
59
- if (!o.success) {
60
- m.error(o.error || "Failed to update inventory."), g(null);
59
+ if (!l.success) {
60
+ N.error(l.error || "Failed to update inventory."), b(null);
61
61
  return;
62
62
  }
63
- const d = typeof o.stock == "number" ? o.stock : s;
64
- k(
63
+ const m = typeof l.stock == "number" ? l.stock : t;
64
+ y(
65
65
  (r) => r.map(
66
- (f) => f.key === e.key ? {
67
- ...f,
68
- stock: d
69
- } : f
66
+ (v) => v.key === s.key ? {
67
+ ...v,
68
+ stock: m
69
+ } : v
70
70
  )
71
- ), h((r) => ({
71
+ ), d((r) => ({
72
72
  ...r,
73
- [e.key]: String(d)
74
- })), g(null), m.success(`Inventory updated for ${e.sku}.`);
73
+ [s.key]: String(m)
74
+ })), b(null), N.success(`Inventory updated for ${s.sku}.`);
75
75
  });
76
- }, P = () => {
77
- C.current?.click();
78
- }, R = async (e) => {
79
- const n = await e.text();
80
- g("import"), N(async () => {
81
- const s = await O(n);
82
- if (!s.success) {
83
- m.error(s.error || "Failed to import inventory CSV."), g(null);
76
+ }, K = () => {
77
+ T.current?.click();
78
+ }, L = async (s) => {
79
+ const n = await s.text();
80
+ b("import"), g(async () => {
81
+ const t = await H(n);
82
+ if (!t.success) {
83
+ N.error(t.error || "Failed to import inventory CSV."), b(null);
84
84
  return;
85
85
  }
86
- const o = s.items || [];
87
- k(o), h(
88
- o.reduce((d, r) => (d[r.key] = String(r.stock), d), {})
89
- ), g(null), m.success(`Imported ${s.updatedCount || 0} inventory updates.`);
86
+ const l = t.items || [];
87
+ y(l), d(
88
+ l.reduce((m, r) => (m[r.key] = String(r.stock), m), {})
89
+ ), b(null), N.success(`Imported ${t.updatedCount || 0} inventory updates.`);
90
90
  });
91
91
  };
92
- return /* @__PURE__ */ a("div", { className: "space-y-4", children: [
93
- /* @__PURE__ */ a("div", { className: "flex flex-col gap-3 rounded-xl border bg-card p-4", children: [
94
- /* @__PURE__ */ a("div", { className: "flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between", children: [
95
- /* @__PURE__ */ a("div", { className: "relative w-full lg:max-w-md", children: [
96
- /* @__PURE__ */ t(A, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
97
- /* @__PURE__ */ t(
98
- j,
92
+ return /* @__PURE__ */ e("div", { className: "space-y-4", children: [
93
+ /* @__PURE__ */ e("div", { className: "flex flex-col gap-3 rounded-xl border bg-card p-4", children: [
94
+ /* @__PURE__ */ e("div", { className: "flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between", children: [
95
+ /* @__PURE__ */ e("div", { className: "relative w-full lg:max-w-md", children: [
96
+ /* @__PURE__ */ e(z, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }, void 0, !1, {
97
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
98
+ lineNumber: 203,
99
+ columnNumber: 13
100
+ }, this),
101
+ /* @__PURE__ */ e(
102
+ I,
99
103
  {
100
- value: S,
101
- onChange: (e) => I(e.target.value),
104
+ value: x,
105
+ onChange: (s) => U(s.target.value),
102
106
  placeholder: "Search by SKU, product title, parent SKU, or language...",
103
107
  className: "pl-9"
104
- }
108
+ },
109
+ void 0,
110
+ !1,
111
+ {
112
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
113
+ lineNumber: 204,
114
+ columnNumber: 13
115
+ },
116
+ this
105
117
  )
106
- ] }),
107
- /* @__PURE__ */ a("div", { className: "flex flex-wrap gap-2", children: [
108
- /* @__PURE__ */ t(
118
+ ] }, void 0, !0, {
119
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
120
+ lineNumber: 202,
121
+ columnNumber: 11
122
+ }, this),
123
+ /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-2", children: [
124
+ /* @__PURE__ */ e(
109
125
  "input",
110
126
  {
111
- ref: C,
127
+ ref: T,
112
128
  type: "file",
113
129
  accept: ".csv,text/csv",
114
130
  className: "hidden",
115
- onChange: (e) => {
116
- const n = e.target.files?.[0];
117
- n && R(n), e.currentTarget.value = "";
131
+ onChange: (s) => {
132
+ const n = s.target.files?.[0];
133
+ n && L(n), s.currentTarget.value = "";
118
134
  }
119
- }
135
+ },
136
+ void 0,
137
+ !1,
138
+ {
139
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
140
+ lineNumber: 213,
141
+ columnNumber: 13
142
+ },
143
+ this
120
144
  ),
121
- /* @__PURE__ */ a(b, { type: "button", variant: "outline", onClick: P, disabled: y, children: [
122
- /* @__PURE__ */ t(_, { className: "mr-2 h-4 w-4" }),
145
+ /* @__PURE__ */ e(f, { type: "button", variant: "outline", onClick: K, disabled: p, children: [
146
+ /* @__PURE__ */ e(A, { className: "mr-2 h-4 w-4" }, void 0, !1, {
147
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
148
+ lineNumber: 227,
149
+ columnNumber: 15
150
+ }, this),
123
151
  "Import CSV"
124
- ] }),
125
- /* @__PURE__ */ a(b, { type: "button", variant: "outline", onClick: K, disabled: y, children: [
126
- /* @__PURE__ */ t(q, { className: "mr-2 h-4 w-4" }),
152
+ ] }, void 0, !0, {
153
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
154
+ lineNumber: 226,
155
+ columnNumber: 13
156
+ }, this),
157
+ /* @__PURE__ */ e(f, { type: "button", variant: "outline", onClick: S, disabled: p, children: [
158
+ /* @__PURE__ */ e(_, { className: "mr-2 h-4 w-4" }, void 0, !1, {
159
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
160
+ lineNumber: 231,
161
+ columnNumber: 15
162
+ }, this),
127
163
  "Export CSV"
128
- ] })
129
- ] })
130
- ] }),
131
- /* @__PURE__ */ t("p", { className: "text-sm text-muted-foreground", children: "Inventory is keyed by sellable SKU. Any product or variant using the same SKU shares the same quantity, and CSV imports can update those shared SKU quantities in bulk." })
132
- ] }),
133
- /* @__PURE__ */ t("div", { className: "rounded-xl border bg-card", children: /* @__PURE__ */ a(D, { children: [
134
- /* @__PURE__ */ t(F, { children: /* @__PURE__ */ a(x, { children: [
135
- /* @__PURE__ */ t(p, { children: "SKU" }),
136
- /* @__PURE__ */ t(p, { children: "Usage" }),
137
- /* @__PURE__ */ t(p, { children: "Linked Products" }),
138
- /* @__PURE__ */ t(p, { children: "Languages" }),
139
- /* @__PURE__ */ t(p, { children: "Status" }),
140
- /* @__PURE__ */ t(p, { className: "w-[160px]", children: "Quantity" }),
141
- /* @__PURE__ */ t(p, { className: "text-right", children: "Actions" })
142
- ] }) }),
143
- /* @__PURE__ */ t(z, { children: T.length > 0 ? T.map((e) => {
144
- const n = l[e.key] ?? String(e.stock), s = Number.parseInt(n, 10), o = Number.isFinite(s) && s !== e.stock, d = U === e.key;
145
- return /* @__PURE__ */ a(x, { children: [
146
- /* @__PURE__ */ t(u, { className: "font-mono text-sm", children: e.sku }),
147
- /* @__PURE__ */ t(u, { children: /* @__PURE__ */ t(w, { variant: W(e), children: J(e) }) }),
148
- /* @__PURE__ */ t(u, { children: /* @__PURE__ */ a("div", { className: "space-y-1", children: [
149
- /* @__PURE__ */ t("p", { className: "font-medium", children: e.productTitles.join(", ") }),
150
- e.usageType !== "product" ? /* @__PURE__ */ a("p", { className: "text-xs text-muted-foreground", children: [
164
+ ] }, void 0, !0, {
165
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
166
+ lineNumber: 230,
167
+ columnNumber: 13
168
+ }, this)
169
+ ] }, void 0, !0, {
170
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
171
+ lineNumber: 212,
172
+ columnNumber: 11
173
+ }, this)
174
+ ] }, void 0, !0, {
175
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
176
+ lineNumber: 201,
177
+ columnNumber: 9
178
+ }, this),
179
+ /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Inventory is keyed by sellable SKU. Any product or variant using the same SKU shares the same quantity, and CSV imports can update those shared SKU quantities in bulk." }, void 0, !1, {
180
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
181
+ lineNumber: 237,
182
+ columnNumber: 9
183
+ }, this)
184
+ ] }, void 0, !0, {
185
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
186
+ lineNumber: 200,
187
+ columnNumber: 7
188
+ }, this),
189
+ /* @__PURE__ */ e("div", { className: "rounded-xl border bg-card", children: /* @__PURE__ */ e($, { children: [
190
+ /* @__PURE__ */ e(B, { children: /* @__PURE__ */ e(h, { children: [
191
+ /* @__PURE__ */ e(u, { children: "SKU" }, void 0, !1, {
192
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
193
+ lineNumber: 247,
194
+ columnNumber: 15
195
+ }, this),
196
+ /* @__PURE__ */ e(u, { children: "Usage" }, void 0, !1, {
197
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
198
+ lineNumber: 248,
199
+ columnNumber: 15
200
+ }, this),
201
+ /* @__PURE__ */ e(u, { children: "Linked Products" }, void 0, !1, {
202
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
203
+ lineNumber: 249,
204
+ columnNumber: 15
205
+ }, this),
206
+ /* @__PURE__ */ e(u, { children: "Languages" }, void 0, !1, {
207
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
208
+ lineNumber: 250,
209
+ columnNumber: 15
210
+ }, this),
211
+ /* @__PURE__ */ e(u, { children: "Status" }, void 0, !1, {
212
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
213
+ lineNumber: 251,
214
+ columnNumber: 15
215
+ }, this),
216
+ /* @__PURE__ */ e(u, { className: "w-[160px]", children: "Quantity" }, void 0, !1, {
217
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
218
+ lineNumber: 252,
219
+ columnNumber: 15
220
+ }, this),
221
+ /* @__PURE__ */ e(u, { className: "text-right", children: "Actions" }, void 0, !1, {
222
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
223
+ lineNumber: 253,
224
+ columnNumber: 15
225
+ }, this)
226
+ ] }, void 0, !0, {
227
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
228
+ lineNumber: 246,
229
+ columnNumber: 13
230
+ }, this) }, void 0, !1, {
231
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
232
+ lineNumber: 245,
233
+ columnNumber: 11
234
+ }, this),
235
+ /* @__PURE__ */ e(F, { children: j.length > 0 ? j.map((s) => {
236
+ const n = o[s.key] ?? String(s.stock), t = Number.parseInt(n, 10), l = Number.isFinite(t) && t !== s.stock, m = D === s.key;
237
+ return /* @__PURE__ */ e(h, { children: [
238
+ /* @__PURE__ */ e(a, { className: "font-mono text-sm", children: s.sku }, void 0, !1, {
239
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
240
+ lineNumber: 266,
241
+ columnNumber: 21
242
+ }, this),
243
+ /* @__PURE__ */ e(a, { children: /* @__PURE__ */ e(C, { variant: J(s), children: G(s) }, void 0, !1, {
244
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
245
+ lineNumber: 268,
246
+ columnNumber: 23
247
+ }, this) }, void 0, !1, {
248
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
249
+ lineNumber: 267,
250
+ columnNumber: 21
251
+ }, this),
252
+ /* @__PURE__ */ e(a, { children: /* @__PURE__ */ e("div", { className: "space-y-1", children: [
253
+ /* @__PURE__ */ e("p", { className: "font-medium", children: s.productTitles.join(", ") }, void 0, !1, {
254
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
255
+ lineNumber: 274,
256
+ columnNumber: 25
257
+ }, this),
258
+ s.usageType !== "product" ? /* @__PURE__ */ e("p", { className: "text-xs text-muted-foreground", children: [
151
259
  "Parent SKU",
152
- e.parentProductSkus.length > 1 ? "s" : "",
260
+ s.parentProductSkus.length > 1 ? "s" : "",
153
261
  ":",
154
262
  " ",
155
- /* @__PURE__ */ t("span", { className: "font-mono", children: e.parentProductSkus.join(", ") })
156
- ] }) : null
157
- ] }) }),
158
- /* @__PURE__ */ t(u, { children: /* @__PURE__ */ t("div", { className: "flex flex-wrap gap-1", children: e.languages.map((r) => /* @__PURE__ */ t(w, { variant: "outline", children: r }, `${e.key}:${r}`)) }) }),
159
- /* @__PURE__ */ t(u, { children: /* @__PURE__ */ t("div", { className: "flex flex-wrap gap-1", children: e.statuses.map((r) => /* @__PURE__ */ t(w, { variant: "outline", children: r }, `${e.key}:${r}`)) }) }),
160
- /* @__PURE__ */ t(u, { children: /* @__PURE__ */ t(
161
- j,
263
+ /* @__PURE__ */ e("span", { className: "font-mono", children: s.parentProductSkus.join(", ") }, void 0, !1, {
264
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
265
+ lineNumber: 278,
266
+ columnNumber: 29
267
+ }, this)
268
+ ] }, void 0, !0, {
269
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
270
+ lineNumber: 276,
271
+ columnNumber: 27
272
+ }, this) : null
273
+ ] }, void 0, !0, {
274
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
275
+ lineNumber: 273,
276
+ columnNumber: 23
277
+ }, this) }, void 0, !1, {
278
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
279
+ lineNumber: 272,
280
+ columnNumber: 21
281
+ }, this),
282
+ /* @__PURE__ */ e(a, { children: /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1", children: s.languages.map((r) => /* @__PURE__ */ e(C, { variant: "outline", children: r }, `${s.key}:${r}`, !1, {
283
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
284
+ lineNumber: 286,
285
+ columnNumber: 27
286
+ }, this)) }, void 0, !1, {
287
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
288
+ lineNumber: 284,
289
+ columnNumber: 23
290
+ }, this) }, void 0, !1, {
291
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
292
+ lineNumber: 283,
293
+ columnNumber: 21
294
+ }, this),
295
+ /* @__PURE__ */ e(a, { children: /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1", children: s.statuses.map((r) => /* @__PURE__ */ e(C, { variant: "outline", children: r }, `${s.key}:${r}`, !1, {
296
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
297
+ lineNumber: 295,
298
+ columnNumber: 27
299
+ }, this)) }, void 0, !1, {
300
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
301
+ lineNumber: 293,
302
+ columnNumber: 23
303
+ }, this) }, void 0, !1, {
304
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
305
+ lineNumber: 292,
306
+ columnNumber: 21
307
+ }, this),
308
+ /* @__PURE__ */ e(a, { children: /* @__PURE__ */ e(
309
+ I,
162
310
  {
163
311
  type: "number",
164
312
  min: 0,
165
313
  step: 1,
166
314
  value: n,
167
- disabled: y,
168
- onChange: (r) => h((f) => ({
169
- ...f,
170
- [e.key]: r.target.value
315
+ disabled: p,
316
+ onChange: (r) => d((v) => ({
317
+ ...v,
318
+ [s.key]: r.target.value
171
319
  })),
172
320
  className: "w-28"
173
- }
174
- ) }),
175
- /* @__PURE__ */ t(u, { className: "text-right", children: /* @__PURE__ */ a("div", { className: "flex justify-end gap-2", children: [
176
- /* @__PURE__ */ a(
177
- b,
321
+ },
322
+ void 0,
323
+ !1,
324
+ {
325
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
326
+ lineNumber: 302,
327
+ columnNumber: 23
328
+ },
329
+ this
330
+ ) }, void 0, !1, {
331
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
332
+ lineNumber: 301,
333
+ columnNumber: 21
334
+ }, this),
335
+ /* @__PURE__ */ e(a, { className: "text-right", children: /* @__PURE__ */ e("div", { className: "flex justify-end gap-2", children: [
336
+ /* @__PURE__ */ e(
337
+ f,
178
338
  {
179
339
  type: "button",
180
340
  size: "sm",
181
341
  variant: "ghost",
182
- disabled: !o || y,
183
- onClick: () => h((r) => ({
342
+ disabled: !l || p,
343
+ onClick: () => d((r) => ({
184
344
  ...r,
185
- [e.key]: String(e.stock)
345
+ [s.key]: String(s.stock)
186
346
  })),
187
347
  children: [
188
- /* @__PURE__ */ t(E, { className: "mr-2 h-4 w-4" }),
348
+ /* @__PURE__ */ e(E, { className: "mr-2 h-4 w-4" }, void 0, !1, {
349
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
350
+ lineNumber: 331,
351
+ columnNumber: 27
352
+ }, this),
189
353
  "Reset"
190
354
  ]
191
- }
355
+ },
356
+ void 0,
357
+ !0,
358
+ {
359
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
360
+ lineNumber: 319,
361
+ columnNumber: 25
362
+ },
363
+ this
192
364
  ),
193
- /* @__PURE__ */ a(
194
- b,
365
+ /* @__PURE__ */ e(
366
+ f,
195
367
  {
196
368
  type: "button",
197
369
  size: "sm",
198
- disabled: !o || y,
199
- onClick: () => L(e),
370
+ disabled: !l || p,
371
+ onClick: () => w(s),
200
372
  children: [
201
- /* @__PURE__ */ t(H, { className: "mr-2 h-4 w-4" }),
202
- d ? "Saving..." : "Save"
373
+ /* @__PURE__ */ e(q, { className: "mr-2 h-4 w-4" }, void 0, !1, {
374
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
375
+ lineNumber: 340,
376
+ columnNumber: 27
377
+ }, this),
378
+ m ? "Saving..." : "Save"
203
379
  ]
204
- }
380
+ },
381
+ void 0,
382
+ !0,
383
+ {
384
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
385
+ lineNumber: 334,
386
+ columnNumber: 25
387
+ },
388
+ this
205
389
  )
206
- ] }) })
207
- ] }, e.key);
208
- }) : /* @__PURE__ */ t(x, { children: /* @__PURE__ */ t(u, { colSpan: 7, className: "py-10 text-center text-muted-foreground", children: "No inventory rows matched your search." }) }) })
209
- ] }) })
210
- ] });
390
+ ] }, void 0, !0, {
391
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
392
+ lineNumber: 318,
393
+ columnNumber: 23
394
+ }, this) }, void 0, !1, {
395
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
396
+ lineNumber: 317,
397
+ columnNumber: 21
398
+ }, this)
399
+ ] }, s.key, !0, {
400
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
401
+ lineNumber: 265,
402
+ columnNumber: 19
403
+ }, this);
404
+ }) : /* @__PURE__ */ e(h, { children: /* @__PURE__ */ e(a, { colSpan: 7, className: "py-10 text-center text-muted-foreground", children: "No inventory rows matched your search." }, void 0, !1, {
405
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
406
+ lineNumber: 350,
407
+ columnNumber: 17
408
+ }, this) }, void 0, !1, {
409
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
410
+ lineNumber: 349,
411
+ columnNumber: 15
412
+ }, this) }, void 0, !1, {
413
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
414
+ lineNumber: 256,
415
+ columnNumber: 11
416
+ }, this)
417
+ ] }, void 0, !0, {
418
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
419
+ lineNumber: 244,
420
+ columnNumber: 9
421
+ }, this) }, void 0, !1, {
422
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
423
+ lineNumber: 243,
424
+ columnNumber: 7
425
+ }, this)
426
+ ] }, void 0, !0, {
427
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/inventory/InventoryTableClient.tsx",
428
+ lineNumber: 199,
429
+ columnNumber: 5
430
+ }, this);
211
431
  }
212
432
  export {
213
- re as InventoryTableClient
433
+ ne as InventoryTableClient
214
434
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),v=require("../components/ProductForm.cjs.js"),y=require("../actions.cjs.js"),h=require("../../../../variation-utils.cjs.js"),x=require("../server-actions.cjs.js"),u=require("../../payments/queries.cjs.js"),R=require("@nextblock-cms/db/server"),a=require("@nextblock-cms/utils"),S=require("../../../../currency.cjs.js");async function w({mediaPickerNode:d,availableLanguagesProp:s,translationGroupId:l,targetLanguageId:o,initialData:t}){const[_,m,p,b]=await Promise.all([u.getEnabledPaymentProviders(),u.getStoreConfigStatus(),y.getGlobalProductAttributes(),R.getServiceRoleSupabaseClient().from("currencies").select("code, symbol, exchange_rate, is_default, is_active, auto_sync_product_prices, auto_update_exchange_rate, exchange_rate_source, exchange_rate_updated_at, rounding_mode, rounding_increment, rounding_charm_amount").eq("is_active",!0).order("code",{ascending:!0}).then(e=>e.data||[])]),g=(b||[]).map(e=>S.normalizeCurrencyRecord(e)),f=(p||[]).map(e=>({id:e.id,name:e.name,name_translations:e.name_translations||{},slug:e.slug,terms:(e.product_attribute_terms||[]).map(r=>({...r,value_translations:r.value_translations||{}}))})),P=s.find(e=>e.id===t?.language_id)?.code||s.find(e=>e.id===(o?parseInt(o,10):void 0))?.code||s.find(e=>e.is_default)?.code,{attributes:q,variants:A}=h.mapRawVariantRelations(t?.product_variants||[],P),j=t&&{...t,variation_attributes:t.variation_attributes||q.map(e=>({attribute_id:e.id,term_ids:e.terms.map(r=>r.id)})),variants:t.variants||A.map(e=>({...e,upc:e.upc??null,price:e.price/100,prices:Object.entries(e.prices||{}).reduce((r,[i,n])=>(r[i]=a.minorUnitAmountToMajor(n,i),r),{}),sale_price:typeof e.sale_price=="number"?e.sale_price/100:null,sale_prices:Object.entries(e.sale_prices||{}).reduce((r,[i,n])=>(r[i]=typeof n=="number"?a.minorUnitAmountToMajor(n,i):null,r),{}),main_media_id:e.main_media_id??null,main_image_url:e.image_url??null}))};return c.jsx("div",{className:"p-8",children:c.jsx(v.ProductForm,{mediaPickerNode:d,availableLanguagesProp:s,globalAttributesProp:f,currenciesProp:g,translationGroupId:l,targetLanguageId:o,initialData:j,enabledProviders:_,configStatus:m,createAction:x.createProductAction})})}exports.NewProductPage=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-dev-runtime"),N=require("../components/ProductForm.cjs.js"),j=require("../actions.cjs.js"),A=require("../../../../variation-utils.cjs.js"),h=require("../server-actions.cjs.js"),u=require("../../payments/queries.cjs.js"),w=require("@nextblock-cms/db/server"),a=require("@nextblock-cms/utils"),y=require("../../../../currency.cjs.js");async function R({mediaPickerNode:d,availableLanguagesProp:i,translationGroupId:l,targetLanguageId:o,initialData:s}){const[m,_,p,b]=await Promise.all([u.getEnabledPaymentProviders(),u.getStoreConfigStatus(),j.getGlobalProductAttributes(),w.getServiceRoleSupabaseClient().from("currencies").select("code, symbol, exchange_rate, is_default, is_active, auto_sync_product_prices, auto_update_exchange_rate, exchange_rate_source, exchange_rate_updated_at, rounding_mode, rounding_increment, rounding_charm_amount").eq("is_active",!0).order("code",{ascending:!0}).then(e=>e.data||[])]),g=(b||[]).map(e=>y.normalizeCurrencyRecord(e)),f=(p||[]).map(e=>({id:e.id,name:e.name,name_translations:e.name_translations||{},slug:e.slug,terms:(e.product_attribute_terms||[]).map(r=>({...r,value_translations:r.value_translations||{}}))})),P=i.find(e=>e.id===s?.language_id)?.code||i.find(e=>e.id===(o?parseInt(o,10):void 0))?.code||i.find(e=>e.is_default)?.code,{attributes:q,variants:v}=A.mapRawVariantRelations(s?.product_variants||[],P),x=s&&{...s,variation_attributes:s.variation_attributes||q.map(e=>({attribute_id:e.id,term_ids:e.terms.map(r=>r.id)})),variants:s.variants||v.map(e=>({...e,upc:e.upc??null,price:e.price/100,prices:Object.entries(e.prices||{}).reduce((r,[t,n])=>(r[t]=a.minorUnitAmountToMajor(n,t),r),{}),sale_price:typeof e.sale_price=="number"?e.sale_price/100:null,sale_prices:Object.entries(e.sale_prices||{}).reduce((r,[t,n])=>(r[t]=typeof n=="number"?a.minorUnitAmountToMajor(n,t):null,r),{}),main_media_id:e.main_media_id??null,main_image_url:e.image_url??null}))};return c.jsxDEV("div",{className:"p-8",children:c.jsxDEV(N.ProductForm,{mediaPickerNode:d,availableLanguagesProp:i,globalAttributesProp:f,currenciesProp:g,translationGroupId:l,targetLanguageId:o,initialData:x,enabledProviders:m,configStatus:_,createAction:h.createProductAction},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/new/NewProductPage.tsx",lineNumber:104,columnNumber:7},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/new/NewProductPage.tsx",lineNumber:103,columnNumber:5},this)}exports.NewProductPage=R;