@nextblock-cms/ecom 0.13.4 → 0.13.6

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 (123) 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/products/server-actions.cjs.js +1 -1
  110. package/lib/pages/cms/products/server-actions.es.js +163 -139
  111. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  112. package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
  113. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
  115. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  116. package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
  117. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
  119. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  120. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
  121. package/lib/product-context.cjs.js +1 -1
  122. package/lib/product-context.es.js +14 -10
  123. package/package.json +4 -4
@@ -1,714 +1,1362 @@
1
1
  'use client';
2
- import { jsxs as s, jsx as e, Fragment as Me } from "react/jsx-runtime";
3
- import U, { useState as A, useRef as Ve, useEffect as k, useCallback as X } from "react";
4
- import { zodResolver as er } from "@hookform/resolvers/zod";
5
- import { AlertCircle as Ae, CheckCircle2 as rr, Info as tr } from "lucide-react";
6
- import { Select as le, SelectTrigger as ne, SelectValue as ce, SelectContent as ue, SelectItem as F, Badge as Y, Label as x, Input as y, Button as Te } from "@nextblock-cms/ui";
7
- import { productSchema as sr } from "../../../../product-schema.es.js";
8
- import { useForm as ar } from "react-hook-form";
9
- import { ProductMediaManager as ir } from "./ProductMediaManager.es.js";
10
- import { SyncFreemiusPricingButton as dr } from "./SyncFreemiusPricingButton.es.js";
11
- import { VariationsEditor as or } from "./VariationsEditor.es.js";
12
- import { CurrencyPriceFields as Ie } from "./CurrencyPriceFields.es.js";
13
- import { SaleScheduleFields as Re } from "./SaleScheduleFields.es.js";
14
- import { ProductCategorySelector as lr } from "./ProductCategorySelector.es.js";
15
- import { getStoreManagedPriceCurrencyCodes as nr, resolveEditorCurrencyPriceMaps as cr, sanitizeProductFormValuesForStoreManagedCurrencies as Be } from "../product-price-sync.es.js";
16
- import { derivePaymentProviderFromProductType as ur } from "../../../../types.es.js";
17
- import { convertMinorUnitAmount as je } from "../../../../currency.es.js";
18
- import { majorUnitAmountToMinor as Oe, minorUnitAmountToMajor as Ue } from "@nextblock-cms/utils";
19
- function Q({ title: r, description: a, action: b, children: h, hideHeader: C }) {
20
- return /* @__PURE__ */ s("section", { className: "rounded-lg border bg-card p-3 shadow-sm space-y-3", children: [
21
- !C && /* @__PURE__ */ s("div", { className: "flex items-start justify-between gap-4 flex-wrap border-b border-muted/50 pb-2 mb-1", children: [
22
- /* @__PURE__ */ s("div", { className: "space-y-0.5", children: [
23
- /* @__PURE__ */ e("h2", { className: "text-sm font-bold tracking-tight", children: r }),
24
- a ? /* @__PURE__ */ e("p", { className: "text-[11px] text-muted-foreground leading-none", children: a }) : null
25
- ] }),
26
- b
27
- ] }),
28
- /* @__PURE__ */ e("div", { className: C ? "" : "pt-1", children: h })
29
- ] });
2
+ import { jsxDEV as e, Fragment as Ue } from "react/jsx-dev-runtime";
3
+ import I, { useState as S, useRef as De, useEffect as F, useCallback as J } from "react";
4
+ import { zodResolver as Ge } from "@hookform/resolvers/zod";
5
+ import { AlertCircle as Se, CheckCircle2 as es, Info as ss } from "lucide-react";
6
+ import { Select as ne, SelectTrigger as me, SelectValue as le, SelectContent as de, SelectItem as j, Badge as L, Label as x, Input as h, Button as we } from "@nextblock-cms/ui";
7
+ import { productSchema as rs } from "../../../../product-schema.es.js";
8
+ import { useForm as os } from "react-hook-form";
9
+ import { ProductMediaManager as ts } from "./ProductMediaManager.es.js";
10
+ import { SyncFreemiusPricingButton as cs } from "./SyncFreemiusPricingButton.es.js";
11
+ import { VariationsEditor as is } from "./VariationsEditor.es.js";
12
+ import { CurrencyPriceFields as Me } from "./CurrencyPriceFields.es.js";
13
+ import { SaleScheduleFields as Ve } from "./SaleScheduleFields.es.js";
14
+ import { ProductCategorySelector as ns } from "./ProductCategorySelector.es.js";
15
+ import { getStoreManagedPriceCurrencyCodes as ms, resolveEditorCurrencyPriceMaps as ls, sanitizeProductFormValuesForStoreManagedCurrencies as qe } from "../product-price-sync.es.js";
16
+ import { derivePaymentProviderFromProductType as ds } from "../../../../types.es.js";
17
+ import { convertMinorUnitAmount as Ae } from "../../../../currency.es.js";
18
+ import { majorUnitAmountToMinor as Te, minorUnitAmountToMajor as Ie } from "@nextblock-cms/utils";
19
+ function X({ title: s, description: o, action: g, children: p, hideHeader: y }) {
20
+ return /* @__PURE__ */ e("section", { className: "rounded-lg border bg-card p-3 shadow-sm space-y-3", children: [
21
+ !y && /* @__PURE__ */ e("div", { className: "flex items-start justify-between gap-4 flex-wrap border-b border-muted/50 pb-2 mb-1", children: [
22
+ /* @__PURE__ */ e("div", { className: "space-y-0.5", children: [
23
+ /* @__PURE__ */ e("h2", { className: "text-sm font-bold tracking-tight", children: s }, void 0, !1, {
24
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
25
+ lineNumber: 121,
26
+ columnNumber: 13
27
+ }, this),
28
+ o ? /* @__PURE__ */ e("p", { className: "text-[11px] text-muted-foreground leading-none", children: o }, void 0, !1, {
29
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
30
+ lineNumber: 123,
31
+ columnNumber: 15
32
+ }, this) : null
33
+ ] }, void 0, !0, {
34
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
35
+ lineNumber: 120,
36
+ columnNumber: 11
37
+ }, this),
38
+ g
39
+ ] }, void 0, !0, {
40
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
41
+ lineNumber: 119,
42
+ columnNumber: 9
43
+ }, this),
44
+ /* @__PURE__ */ e("div", { className: y ? "" : "pt-1", children: p }, void 0, !1, {
45
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
46
+ lineNumber: 129,
47
+ columnNumber: 7
48
+ }, this)
49
+ ] }, void 0, !0, {
50
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
51
+ lineNumber: 117,
52
+ columnNumber: 5
53
+ }, this);
30
54
  }
31
- function mr(r, a, b) {
32
- const h = a ? Number.parseInt(a, 10) : void 0;
33
- return r?.language_id || (Number.isFinite(h) ? h : void 0) || b.find((C) => C.is_default)?.id || b[0]?.id || 1;
55
+ function as(s, o, g) {
56
+ const p = o ? Number.parseInt(o, 10) : void 0;
57
+ return s?.language_id || (Number.isFinite(p) ? p : void 0) || g.find((y) => y.is_default)?.id || g[0]?.id || 1;
34
58
  }
35
- function qe(r, a, b, h, C) {
36
- const T = (h.find((v) => v.is_default) ?? h[0])?.code || "USD", j = r?.prices && Object.keys(r.prices).length > 0 ? r.prices : {
37
- [T]: typeof r?.price == "number" ? r.price / 100 : 0
38
- }, q = r?.sale_prices && Object.keys(r.sale_prices).length > 0 ? r.sale_prices : typeof r?.sale_price == "number" ? {
39
- [T]: r.sale_price / 100
40
- } : {}, z = r?.product_type || "", I = r?.payment_provider || (r?.product_type ? ur(r.product_type) : "stripe");
59
+ function Re(s, o, g, p, y) {
60
+ const w = (p.find((k) => k.is_default) ?? p[0])?.code || "USD", A = s?.prices && Object.keys(s.prices).length > 0 ? s.prices : {
61
+ [w]: typeof s?.price == "number" ? s.price / 100 : 0
62
+ }, R = s?.sale_prices && Object.keys(s.sale_prices).length > 0 ? s.sale_prices : typeof s?.sale_price == "number" ? {
63
+ [w]: s.sale_price / 100
64
+ } : {}, O = s?.product_type || "", M = s?.payment_provider || (s?.product_type ? ds(s.product_type) : "stripe");
41
65
  return {
42
- ...Be({
43
- product_type: z || "physical",
44
- payment_provider: I,
45
- title: r?.title || "",
46
- slug: r?.slug || "",
47
- sku: r?.sku || "",
48
- upc: r?.upc || "",
49
- is_taxable: r?.is_taxable ?? !0,
50
- price: typeof r?.price == "number" ? r.price / 100 : 0,
51
- prices: j,
52
- sale_price: typeof r?.sale_price == "number" ? r.sale_price / 100 : null,
53
- sale_prices: q,
54
- stock: r?.stock || 0,
55
- meta_title: r?.meta_title || "",
56
- meta_description: r?.meta_description || "",
57
- custom_canonical: r?.custom_canonical || "",
58
- short_description: r?.short_description || "",
59
- description_json: r?.description_json || {
66
+ ...qe({
67
+ product_type: O || "physical",
68
+ payment_provider: M,
69
+ title: s?.title || "",
70
+ slug: s?.slug || "",
71
+ sku: s?.sku || "",
72
+ upc: s?.upc || "",
73
+ is_taxable: s?.is_taxable ?? !0,
74
+ price: typeof s?.price == "number" ? s.price / 100 : 0,
75
+ prices: A,
76
+ sale_price: typeof s?.sale_price == "number" ? s.sale_price / 100 : null,
77
+ sale_prices: R,
78
+ stock: s?.stock || 0,
79
+ meta_title: s?.meta_title || "",
80
+ meta_description: s?.meta_description || "",
81
+ custom_canonical: s?.custom_canonical || "",
82
+ short_description: s?.short_description || "",
83
+ description_json: s?.description_json || {
60
84
  type: "doc",
61
85
  content: [{ type: "paragraph" }]
62
86
  },
63
- freemius_product_id: r?.freemius_product_id || "",
64
- freemius_plan_id: r?.freemius_plan_id || "",
65
- trial_period_days: r?.trial_period_days ?? 0,
66
- trial_requires_payment_method: r?.trial_requires_payment_method ?? !1,
67
- status: r?.status || "draft",
68
- language_id: mr(
69
- r,
70
- a,
71
- b
87
+ freemius_product_id: s?.freemius_product_id || "",
88
+ freemius_plan_id: s?.freemius_plan_id || "",
89
+ trial_period_days: s?.trial_period_days ?? 0,
90
+ trial_requires_payment_method: s?.trial_requires_payment_method ?? !1,
91
+ status: s?.status || "draft",
92
+ language_id: as(
93
+ s,
94
+ o,
95
+ g
72
96
  ),
73
- translation_group_id: r?.translation_group_id || C || void 0,
74
- product_media: r?.product_media?.map((v) => ({
75
- media_id: v.media_id
97
+ translation_group_id: s?.translation_group_id || y || void 0,
98
+ product_media: s?.product_media?.map((k) => ({
99
+ media_id: k.media_id
76
100
  })) || [],
77
- category_ids: r?.category_ids || [],
78
- variation_attributes: r?.variation_attributes || [],
79
- variants: r?.variants?.map((v) => ({
80
- ...v,
81
- prices: v.prices || {},
82
- sale_prices: v.sale_prices || {}
101
+ category_ids: s?.category_ids || [],
102
+ variation_attributes: s?.variation_attributes || [],
103
+ variants: s?.variants?.map((k) => ({
104
+ ...k,
105
+ prices: k.prices || {},
106
+ sale_prices: k.sale_prices || {}
83
107
  })) || []
84
- }, h),
85
- product_type: z,
86
- payment_provider: I
108
+ }, p),
109
+ product_type: O,
110
+ payment_provider: M
87
111
  };
88
112
  }
89
- function ze(r) {
90
- return r ? r.map((a) => ({
91
- id: a.id || a.media_id,
92
- media_id: a.media_id,
93
- file_path: a.media?.file_path || a.media?.object_key || "",
94
- alt: a.media?.alt_text || "",
95
- sort_order: a.sort_order ?? 0
96
- })).sort((a, b) => a.sort_order - b.sort_order) : [];
113
+ function Oe(s) {
114
+ return s ? s.map((o) => ({
115
+ id: o.id || o.media_id,
116
+ media_id: o.media_id,
117
+ file_path: o.media?.file_path || o.media?.object_key || "",
118
+ alt: o.media?.alt_text || "",
119
+ sort_order: o.sort_order ?? 0
120
+ })).sort((o, g) => o.sort_order - g.sort_order) : [];
97
121
  }
98
- function pr(r) {
99
- return r.map((a) => ({ media_id: a.media_id }));
122
+ function us(s) {
123
+ return s.map((o) => ({ media_id: o.media_id }));
100
124
  }
101
- function hr(r) {
102
- return r.map((a) => ({
103
- media_id: a.media_id,
104
- file_path: a.file_path,
105
- alt: a.alt
125
+ function ps(s) {
126
+ return s.map((o) => ({
127
+ media_id: o.media_id,
128
+ file_path: o.file_path,
129
+ alt: o.alt
106
130
  }));
107
131
  }
108
- const fr = (r) => r.toString().toLowerCase().trim().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
109
- function Ir({
110
- initialData: r,
111
- isEdit: a = !1,
112
- mediaPickerNode: b,
113
- availableLanguagesProp: h,
114
- globalAttributesProp: C,
115
- currenciesProp: W,
116
- translationGroupId: T,
117
- targetLanguageId: j,
118
- freemiusDashboardNode: q,
119
- enabledProviders: z,
120
- configStatus: I,
121
- createAction: Z,
122
- updateAction: v,
123
- availableCategoriesProp: Ee = [],
124
- hasOpenDraft: Ke = !1
132
+ const bs = (s) => s.toString().toLowerCase().trim().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
133
+ function Ms({
134
+ initialData: s,
135
+ isEdit: o = !1,
136
+ mediaPickerNode: g,
137
+ availableLanguagesProp: p,
138
+ globalAttributesProp: y,
139
+ currenciesProp: Y,
140
+ translationGroupId: w,
141
+ targetLanguageId: A,
142
+ freemiusDashboardNode: R,
143
+ enabledProviders: O,
144
+ configStatus: M,
145
+ createAction: Q,
146
+ updateAction: k,
147
+ availableCategoriesProp: ze = [],
148
+ hasOpenDraft: Be = !1
125
149
  }) {
126
- const [B, E] = A(!1), [G, D] = A(() => !!r?.variants?.length), c = U.useMemo(
127
- () => W.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)),
128
- [W]
129
- ), l = U.useMemo(
130
- () => c.find((t) => t.is_default) ?? c[0],
131
- [c]
132
- ), K = U.useMemo(
133
- () => nr(c),
134
- [c]
135
- ), me = ar({
136
- resolver: er(sr),
137
- defaultValues: qe(
138
- r,
139
- j,
140
- h,
141
- c,
142
- T
150
+ const [q, z] = S(!1), [W, Z] = S(() => !!s?.variants?.length), l = I.useMemo(
151
+ () => Y.filter((r) => r.is_active !== !1).sort((r, c) => r.is_default !== c.is_default ? r.is_default ? -1 : 1 : r.code.localeCompare(c.code)),
152
+ [Y]
153
+ ), n = I.useMemo(
154
+ () => l.find((r) => r.is_default) ?? l[0],
155
+ [l]
156
+ ), B = I.useMemo(
157
+ () => ms(l),
158
+ [l]
159
+ ), ae = os({
160
+ resolver: Ge(rs),
161
+ defaultValues: Re(
162
+ s,
163
+ A,
164
+ p,
165
+ l,
166
+ w
143
167
  )
144
168
  }), {
145
- register: n,
146
- handleSubmit: ee,
147
- setValue: i,
148
- reset: pe,
149
- watch: o,
150
- setError: $,
151
- formState: { errors: f, dirtyFields: he }
152
- } = me, fe = Ve(!0), re = Ve(null), [$e, H] = A(!1), [ge, J] = A(null), [_e, He] = A(null), te = o(), xe = me.formState.isDirty;
153
- k(() => {
154
- if (!a) return;
155
- if (fe.current) {
156
- fe.current = !1, re.current = JSON.stringify(te);
169
+ register: m,
170
+ handleSubmit: G,
171
+ setValue: t,
172
+ reset: ue,
173
+ watch: i,
174
+ setError: E,
175
+ formState: { errors: b, dirtyFields: pe }
176
+ } = ae, be = De(!0), ee = De(null), [Ee, K] = S(!1), [Ne, $] = S(null), [fe, Ke] = S(null), se = i(), xe = ae.formState.isDirty;
177
+ F(() => {
178
+ if (!o) return;
179
+ if (be.current) {
180
+ be.current = !1, ee.current = JSON.stringify(se);
157
181
  return;
158
182
  }
159
183
  if (!xe) return;
160
- const t = JSON.stringify(te);
161
- if (t === re.current) return;
162
- const d = setTimeout(() => {
163
- B || (re.current = t, ee(Fe)());
184
+ const r = JSON.stringify(se);
185
+ if (r === ee.current) return;
186
+ const c = setTimeout(() => {
187
+ q || (ee.current = r, G(je)());
164
188
  }, 400);
165
- return () => clearTimeout(d);
166
- }, [te, a, xe, B, ee]);
167
- const ye = o("title"), O = o("product_type"), p = O === "digital" ? "freemius" : O === "physical" ? "stripe" : void 0, N = O === "physical", be = O === "digital", se = p ? z[p] : !1, ae = p ? I[p].hasKeys : !1, Je = !!o("freemius_product_id"), ve = Number(o("trial_period_days") || 0), Ne = !!o("trial_requires_payment_method"), Le = o("variants") || [], M = o("price"), R = o("sale_price"), P = o("prices") || {}, V = o("sale_prices") || {}, S = (Le?.length || 0) > 0, Xe = o("language_id"), Ye = h.find((t) => t.id === Xe)?.code || h.find((t) => t.is_default)?.code || h[0]?.code, L = U.useMemo(
168
- () => cr({
169
- currencies: c,
189
+ return () => clearTimeout(c);
190
+ }, [se, o, xe, q, G]);
191
+ const he = i("title"), T = i("product_type"), u = T === "digital" ? "freemius" : T === "physical" ? "stripe" : void 0, v = T === "physical", ge = T === "digital", re = u ? O[u] : !1, oe = u ? M[u].hasKeys : !1, $e = !!i("freemius_product_id"), ke = Number(i("trial_period_days") || 0), ve = !!i("trial_requires_payment_method"), He = i("variants") || [], U = i("price"), V = i("sale_price"), P = i("prices") || {}, D = i("sale_prices") || {}, _ = (He?.length || 0) > 0, Je = i("language_id"), Le = p.find((r) => r.id === Je)?.code || p.find((r) => r.is_default)?.code || p[0]?.code, H = I.useMemo(
192
+ () => ls({
193
+ currencies: l,
170
194
  prices: P,
171
- salePrices: V,
172
- fallbackPrice: M,
173
- fallbackSalePrice: R
195
+ salePrices: D,
196
+ fallbackPrice: U,
197
+ fallbackSalePrice: V
174
198
  }),
175
- [M, R, c, P, V]
176
- ), Qe = U.useMemo(
177
- () => r?.variants?.map((t) => ({
178
- ...t,
179
- prices: t.prices || {},
180
- sale_prices: t.sale_prices || {}
199
+ [U, V, l, P, D]
200
+ ), Xe = I.useMemo(
201
+ () => s?.variants?.map((r) => ({
202
+ ...r,
203
+ prices: r.prices || {},
204
+ sale_prices: r.sale_prices || {}
181
205
  })),
182
- [r?.variants]
206
+ [s?.variants]
183
207
  );
184
- k(() => {
185
- if (he.title && !a) {
186
- const t = fr(ye);
187
- i("slug", t, { shouldValidate: !0 });
208
+ F(() => {
209
+ if (pe.title && !o) {
210
+ const r = bs(he);
211
+ t("slug", r, { shouldValidate: !0 });
188
212
  }
189
- }, [ye, he.title, i, a]);
190
- const [ie, Pe] = A(
191
- () => ze(r?.product_media)
192
- ), [de, Se] = A(/* @__PURE__ */ new Set());
193
- k(() => {
194
- pe(
195
- qe(
196
- r,
197
- j,
198
- h,
199
- c,
200
- T
213
+ }, [he, pe.title, t, o]);
214
+ const [te, Pe] = S(
215
+ () => Oe(s?.product_media)
216
+ ), [ce, _e] = S(/* @__PURE__ */ new Set());
217
+ F(() => {
218
+ ue(
219
+ Re(
220
+ s,
221
+ A,
222
+ p,
223
+ l,
224
+ w
201
225
  )
202
- ), Pe(ze(r?.product_media)), Se(/* @__PURE__ */ new Set()), D(!!r?.variants?.length);
226
+ ), Pe(Oe(s?.product_media)), _e(/* @__PURE__ */ new Set()), Z(!!s?.variants?.length);
203
227
  }, [
204
- h,
205
- c,
206
- r,
207
- pe,
208
- j,
209
- T
228
+ p,
229
+ l,
230
+ s,
231
+ ue,
232
+ A,
233
+ w
210
234
  ]);
211
- const We = (t) => {
212
- const d = new Set(t.map((m) => m.id)), u = ie.filter((m) => !d.has(m.id)), g = new Set(de);
213
- u.forEach((m) => {
214
- m.media_id && g.add(m.media_id);
215
- }), Se(g), Pe(t), i("product_media", pr(t), { shouldDirty: !0 }), i("explicitly_removed_media_ids", Array.from(g), {
235
+ const Ye = (r) => {
236
+ const c = new Set(r.map((a) => a.id)), d = te.filter((a) => !c.has(a.id)), N = new Set(ce);
237
+ d.forEach((a) => {
238
+ a.media_id && N.add(a.media_id);
239
+ }), _e(N), Pe(r), t("product_media", us(r), { shouldDirty: !0 }), t("explicitly_removed_media_ids", Array.from(N), {
216
240
  shouldDirty: !0
217
241
  });
218
242
  };
219
- k(() => {
220
- i("explicitly_removed_media_ids", Array.from(de));
221
- }, [de, i]), k(() => {
222
- S && D(!0);
223
- }, [S]), k(() => {
224
- n("is_taxable"), n("price"), n("sale_price"), n("payment_provider"), n("trial_requires_payment_method");
225
- }, [n]), k(() => {
226
- if (!be) {
227
- i("trial_period_days", 0, { shouldDirty: !1, shouldValidate: !0 }), i("trial_requires_payment_method", !1, {
243
+ F(() => {
244
+ t("explicitly_removed_media_ids", Array.from(ce));
245
+ }, [ce, t]), F(() => {
246
+ _ && Z(!0);
247
+ }, [_]), F(() => {
248
+ m("is_taxable"), m("price"), m("sale_price"), m("payment_provider"), m("trial_requires_payment_method");
249
+ }, [m]), F(() => {
250
+ if (!ge) {
251
+ t("trial_period_days", 0, { shouldDirty: !1, shouldValidate: !0 }), t("trial_requires_payment_method", !1, {
228
252
  shouldDirty: !1,
229
253
  shouldValidate: !0
230
254
  });
231
255
  return;
232
256
  }
233
- ve <= 0 && i("trial_requires_payment_method", !1, {
257
+ ke <= 0 && t("trial_requires_payment_method", !1, {
234
258
  shouldDirty: !1,
235
259
  shouldValidate: !0
236
260
  });
237
- }, [be, i, ve]), k(() => {
238
- p && i("payment_provider", p, {
261
+ }, [ge, t, ke]), F(() => {
262
+ u && t("payment_provider", u, {
239
263
  shouldDirty: !1,
240
264
  shouldValidate: !0
241
265
  });
242
- }, [p, i]), k(() => {
243
- l && P[l.code] === void 0 && i(
266
+ }, [u, t]), F(() => {
267
+ n && P[n.code] === void 0 && t(
244
268
  "prices",
245
269
  {
246
270
  ...P,
247
- [l.code]: M || 0
271
+ [n.code]: U || 0
248
272
  },
249
273
  { shouldDirty: !1 }
250
274
  );
251
- }, [M, l, P, i]);
252
- const we = X(
253
- (t, d) => {
254
- const u = {
275
+ }, [U, n, P, t]);
276
+ const Ce = J(
277
+ (r, c) => {
278
+ const d = {
255
279
  ...P,
256
- [t]: d
280
+ [r]: c
257
281
  };
258
- i("prices", u, { shouldDirty: !0, shouldValidate: !0 }), t === l?.code && i("price", d, { shouldDirty: !0, shouldValidate: !0 });
282
+ t("prices", d, { shouldDirty: !0, shouldValidate: !0 }), r === n?.code && t("price", c, { shouldDirty: !0, shouldValidate: !0 });
259
283
  },
260
- [l?.code, P, i]
261
- ), ke = X(
262
- (t, d) => {
263
- const u = {
264
- ...V,
265
- [t]: d
284
+ [n?.code, P, t]
285
+ ), Fe = J(
286
+ (r, c) => {
287
+ const d = {
288
+ ...D,
289
+ [r]: c
266
290
  };
267
- i("sale_prices", u, {
291
+ t("sale_prices", d, {
268
292
  shouldDirty: !0,
269
293
  shouldValidate: !0
270
- }), t === l?.code && i("sale_price", d, { shouldDirty: !0, shouldValidate: !0 });
294
+ }), r === n?.code && t("sale_price", c, { shouldDirty: !0, shouldValidate: !0 });
271
295
  },
272
- [l?.code, V, i]
273
- ), Ce = X(() => {
274
- if (!l)
296
+ [n?.code, D, t]
297
+ ), ye = J(() => {
298
+ if (!n)
275
299
  return;
276
- const t = new Set(K), d = P[l.code] ?? M ?? 0, u = V[l.code] ?? R ?? null, g = c.reduce((w, _) => {
277
- if (_.code !== l.code && t.has(_.code))
278
- return w;
279
- const oe = je({
280
- amount: Oe(d, l.code),
281
- fromCurrencyCode: l.code,
282
- toCurrencyCode: _.code,
283
- currencies: c,
300
+ const r = new Set(B), c = P[n.code] ?? U ?? 0, d = D[n.code] ?? V ?? null, N = l.reduce((C, f) => {
301
+ if (f.code !== n.code && r.has(f.code))
302
+ return C;
303
+ const ie = Ae({
304
+ amount: Te(c, n.code),
305
+ fromCurrencyCode: n.code,
306
+ toCurrencyCode: f.code,
307
+ currencies: l,
284
308
  applyRounding: !0
285
309
  });
286
- return w[_.code] = Ue(oe, _.code), w;
287
- }, {}), m = c.reduce(
288
- (w, _) => {
289
- if (_.code !== l.code && t.has(_.code))
290
- return w;
291
- if (typeof u != "number")
292
- return (_.code === l.code || !t.has(_.code)) && (w[_.code] = null), w;
293
- const oe = je({
294
- amount: Oe(u, l.code),
295
- fromCurrencyCode: l.code,
296
- toCurrencyCode: _.code,
297
- currencies: c,
310
+ return C[f.code] = Ie(ie, f.code), C;
311
+ }, {}), a = l.reduce(
312
+ (C, f) => {
313
+ if (f.code !== n.code && r.has(f.code))
314
+ return C;
315
+ if (typeof d != "number")
316
+ return (f.code === n.code || !r.has(f.code)) && (C[f.code] = null), C;
317
+ const ie = Ae({
318
+ amount: Te(d, n.code),
319
+ fromCurrencyCode: n.code,
320
+ toCurrencyCode: f.code,
321
+ currencies: l,
298
322
  applyRounding: !0
299
323
  });
300
- return w[_.code] = Ue(oe, _.code), w;
324
+ return C[f.code] = Ie(ie, f.code), C;
301
325
  },
302
326
  {}
303
327
  );
304
- i("prices", g, { shouldDirty: !0, shouldValidate: !0 }), i("sale_prices", m, {
328
+ t("prices", N, { shouldDirty: !0, shouldValidate: !0 }), t("sale_prices", a, {
305
329
  shouldDirty: !0,
306
330
  shouldValidate: !0
307
- }), i("price", g[l.code] ?? d, {
331
+ }), t("price", N[n.code] ?? c, {
308
332
  shouldDirty: !0,
309
333
  shouldValidate: !0
310
- }), i("sale_price", m[l.code] ?? null, {
334
+ }), t("sale_price", a[n.code] ?? null, {
311
335
  shouldDirty: !0,
312
336
  shouldValidate: !0
313
337
  });
314
338
  }, [
315
- c,
316
339
  l,
340
+ n,
317
341
  P,
318
- V,
319
- i,
320
- K,
321
- M,
322
- R
323
- ]), Ze = X(
342
+ D,
343
+ t,
344
+ B,
345
+ U,
346
+ V
347
+ ]), Qe = J(
324
348
  ({
325
- variationAttributes: t,
326
- variants: d
349
+ variationAttributes: r,
350
+ variants: c
327
351
  }) => {
328
- i("variation_attributes", t, { shouldDirty: !0 }), i("variants", d, { shouldDirty: !0, shouldValidate: !0 });
352
+ t("variation_attributes", r, { shouldDirty: !0 }), t("variants", c, { shouldDirty: !0, shouldValidate: !0 });
329
353
  },
330
- [i]
331
- ), Fe = async (t) => {
332
- E(!0), H(!0), J(null);
354
+ [t]
355
+ ), je = async (r) => {
356
+ z(!0), K(!0), $(null);
333
357
  try {
334
- if (!p) {
335
- const m = "Select whether this product is physical or digital before saving.";
336
- $("product_type", {
358
+ if (!u) {
359
+ const a = "Select whether this product is physical or digital before saving.";
360
+ E("product_type", {
337
361
  type: "manual",
338
- message: m
339
- }), a ? J(m) : alert(m), E(!1), H(!1);
362
+ message: a
363
+ }), o ? $(a) : alert(a), z(!1), K(!1);
340
364
  return;
341
365
  }
342
- if (t.status === "active" && (!se || !ae)) {
343
- const m = `${p === "stripe" ? "Stripe" : "Freemius"} must be enabled and fully configured before this product can be published.`;
344
- $("product_type", {
366
+ if (r.status === "active" && (!re || !oe)) {
367
+ const a = `${u === "stripe" ? "Stripe" : "Freemius"} must be enabled and fully configured before this product can be published.`;
368
+ E("product_type", {
345
369
  type: "manual",
346
- message: m
347
- }), a ? J(m) : alert(m), E(!1), H(!1);
370
+ message: a
371
+ }), o ? $(a) : alert(a), z(!1), K(!1);
348
372
  return;
349
373
  }
350
- const d = N ? 0 : Math.max(0, Number(t.trial_period_days || 0)), u = {
351
- ...t,
352
- product_type: t.product_type,
353
- payment_provider: p,
354
- freemius_product_id: N ? "" : t.freemius_product_id,
355
- freemius_plan_id: N ? "" : t.freemius_plan_id,
356
- trial_period_days: d,
357
- trial_requires_payment_method: !N && d > 0 ? t.trial_requires_payment_method : !1,
358
- upc: N ? t.upc : null,
359
- is_taxable: N ? t.is_taxable : !1,
360
- variation_attributes: N ? t.variation_attributes : [],
361
- variants: N ? t.variants : []
362
- }, g = Be(
363
- u,
364
- c
374
+ const c = v ? 0 : Math.max(0, Number(r.trial_period_days || 0)), d = {
375
+ ...r,
376
+ product_type: r.product_type,
377
+ payment_provider: u,
378
+ freemius_product_id: v ? "" : r.freemius_product_id,
379
+ freemius_plan_id: v ? "" : r.freemius_plan_id,
380
+ trial_period_days: c,
381
+ trial_requires_payment_method: !v && c > 0 ? r.trial_requires_payment_method : !1,
382
+ upc: v ? r.upc : null,
383
+ is_taxable: v ? r.is_taxable : !1,
384
+ variation_attributes: v ? r.variation_attributes : [],
385
+ variants: v ? r.variants : []
386
+ }, N = qe(
387
+ d,
388
+ l
365
389
  );
366
- if (a && v)
367
- await v(g), He(/* @__PURE__ */ new Date());
368
- else if (Z)
369
- await Z(g);
390
+ if (o && k)
391
+ await k(N), Ke(/* @__PURE__ */ new Date());
392
+ else if (Q)
393
+ await Q(N);
370
394
  else
371
395
  throw new Error("Product form action is not configured.");
372
- } catch (d) {
373
- if (console.error(d), d.message === "NEXT_REDIRECT")
396
+ } catch (c) {
397
+ if (console.error(c), c.message === "NEXT_REDIRECT")
374
398
  return;
375
- let u = d.message || "An error occurred while saving.";
376
- if (d.code === "23505") {
377
- const g = d.message?.toLowerCase() || "";
378
- g.includes("products_slug_key") || g.includes("slug") ? (u = "This slug is already in use. Please choose another one.", $("slug", {
399
+ let d = c.message || "An error occurred while saving.";
400
+ if (c.code === "23505") {
401
+ const N = c.message?.toLowerCase() || "";
402
+ N.includes("products_slug_key") || N.includes("slug") ? (d = "This slug is already in use. Please choose another one.", E("slug", {
379
403
  type: "manual",
380
- message: u
381
- })) : (g.includes("products_sku_key") || g.includes("sku")) && (u = "This SKU is already in use.", $("sku", {
404
+ message: d
405
+ })) : (N.includes("products_sku_key") || N.includes("sku")) && (d = "This SKU is already in use.", E("sku", {
382
406
  type: "manual",
383
- message: u
407
+ message: d
384
408
  }));
385
409
  }
386
- a ? J(u) : alert(u);
410
+ o ? $(d) : alert(d);
387
411
  } finally {
388
- E(!1), H(!1);
412
+ z(!1), K(!1);
389
413
  }
390
- }, Ge = S ? "bg-muted/60 text-muted-foreground opacity-70" : "", De = hr(ie);
391
- return /* @__PURE__ */ s("form", { onSubmit: ee(Fe), className: "space-y-2.5 pb-4", children: [
392
- /* @__PURE__ */ e("input", { type: "hidden", ...n("translation_group_id") }),
393
- /* @__PURE__ */ e("input", { type: "hidden", ...n("payment_provider") }),
394
- /* @__PURE__ */ s("div", { className: "space-y-2.5 w-full", children: [
395
- /* @__PURE__ */ s("div", { className: "rounded-lg border bg-card p-2.5 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap", children: [
396
- /* @__PURE__ */ s("div", { className: "flex items-center gap-6", children: [
397
- /* @__PURE__ */ s("div", { className: "flex h-9 items-center gap-2", children: [
398
- /* @__PURE__ */ e("span", { className: "text-sm font-bold whitespace-nowrap leading-none pt-0.5", children: "Product Type" }),
399
- f.product_type && /* @__PURE__ */ e(Ae, { className: "h-4 w-4 text-destructive" })
400
- ] }),
401
- /* @__PURE__ */ e("div", { className: "flex h-9 items-center", children: /* @__PURE__ */ s(
402
- le,
414
+ }, We = _ ? "bg-muted/60 text-muted-foreground opacity-70" : "", Ze = ps(te);
415
+ return /* @__PURE__ */ e("form", { onSubmit: G(je), className: "space-y-2.5 pb-4", children: [
416
+ /* @__PURE__ */ e("input", { type: "hidden", ...m("translation_group_id") }, void 0, !1, {
417
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
418
+ lineNumber: 811,
419
+ columnNumber: 7
420
+ }, this),
421
+ /* @__PURE__ */ e("input", { type: "hidden", ...m("payment_provider") }, void 0, !1, {
422
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
423
+ lineNumber: 812,
424
+ columnNumber: 7
425
+ }, this),
426
+ /* @__PURE__ */ e("div", { className: "space-y-2.5 w-full", children: [
427
+ /* @__PURE__ */ e("div", { className: "rounded-lg border bg-card p-2.5 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap", children: [
428
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-6", children: [
429
+ /* @__PURE__ */ e("div", { className: "flex h-9 items-center gap-2", children: [
430
+ /* @__PURE__ */ e("span", { className: "text-sm font-bold whitespace-nowrap leading-none pt-0.5", children: "Product Type" }, void 0, !1, {
431
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
432
+ lineNumber: 818,
433
+ columnNumber: 15
434
+ }, this),
435
+ b.product_type && /* @__PURE__ */ e(Se, { className: "h-4 w-4 text-destructive" }, void 0, !1, {
436
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
437
+ lineNumber: 820,
438
+ columnNumber: 17
439
+ }, this)
440
+ ] }, void 0, !0, {
441
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
442
+ lineNumber: 817,
443
+ columnNumber: 13
444
+ }, this),
445
+ /* @__PURE__ */ e("div", { className: "flex h-9 items-center", children: /* @__PURE__ */ e(
446
+ ne,
403
447
  {
404
- onValueChange: (t) => i("product_type", t, {
448
+ onValueChange: (r) => t("product_type", r, {
405
449
  shouldDirty: !0,
406
450
  shouldValidate: !0
407
451
  }),
408
- value: O || void 0,
452
+ value: T || void 0,
409
453
  children: [
410
- /* @__PURE__ */ e(ne, { className: "w-[160px] h-9 text-xs", children: /* @__PURE__ */ e(ce, { placeholder: "Select Type" }) }),
411
- /* @__PURE__ */ s(ue, { children: [
412
- /* @__PURE__ */ e(F, { value: "physical", children: "Physical Product" }),
413
- /* @__PURE__ */ e(F, { value: "digital", children: "Digital Product" })
414
- ] })
454
+ /* @__PURE__ */ e(me, { className: "w-[160px] h-9 text-xs", children: /* @__PURE__ */ e(le, { placeholder: "Select Type" }, void 0, !1, {
455
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
456
+ lineNumber: 835,
457
+ columnNumber: 19
458
+ }, this) }, void 0, !1, {
459
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
460
+ lineNumber: 834,
461
+ columnNumber: 17
462
+ }, this),
463
+ /* @__PURE__ */ e(de, { children: [
464
+ /* @__PURE__ */ e(j, { value: "physical", children: "Physical Product" }, void 0, !1, {
465
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
466
+ lineNumber: 838,
467
+ columnNumber: 19
468
+ }, this),
469
+ /* @__PURE__ */ e(j, { value: "digital", children: "Digital Product" }, void 0, !1, {
470
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
471
+ lineNumber: 839,
472
+ columnNumber: 19
473
+ }, this)
474
+ ] }, void 0, !0, {
475
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
476
+ lineNumber: 837,
477
+ columnNumber: 17
478
+ }, this)
415
479
  ]
416
- }
417
- ) })
418
- ] }),
419
- /* @__PURE__ */ s("div", { className: "flex items-center gap-6", children: [
420
- /* @__PURE__ */ s("div", { className: "flex h-9 items-center gap-3", children: [
421
- /* @__PURE__ */ e("span", { className: "text-[11px] font-semibold text-muted-foreground uppercase tracking-wider leading-none", children: "Payment Provider" }),
422
- /* @__PURE__ */ e(Y, { variant: "outline", className: "text-xs py-1 font-bold bg-muted/30 leading-none", children: p ? p === "stripe" ? "Stripe" : "Freemius" : "—" })
423
- ] }),
424
- p && /* @__PURE__ */ e("div", { className: "flex h-9 items-center gap-2", children: se && ae ? /* @__PURE__ */ s("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: [
425
- /* @__PURE__ */ e(rr, { className: "h-3 w-3" }),
480
+ },
481
+ void 0,
482
+ !0,
483
+ {
484
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
485
+ lineNumber: 825,
486
+ columnNumber: 15
487
+ },
488
+ this
489
+ ) }, void 0, !1, {
490
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
491
+ lineNumber: 824,
492
+ columnNumber: 13
493
+ }, this)
494
+ ] }, void 0, !0, {
495
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
496
+ lineNumber: 816,
497
+ columnNumber: 11
498
+ }, this),
499
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-6", children: [
500
+ /* @__PURE__ */ e("div", { className: "flex h-9 items-center gap-3", children: [
501
+ /* @__PURE__ */ e("span", { className: "text-[11px] font-semibold text-muted-foreground uppercase tracking-wider leading-none", children: "Payment Provider" }, void 0, !1, {
502
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
503
+ lineNumber: 847,
504
+ columnNumber: 15
505
+ }, this),
506
+ /* @__PURE__ */ e(L, { variant: "outline", className: "text-xs py-1 font-bold bg-muted/30 leading-none", children: u ? u === "stripe" ? "Stripe" : "Freemius" : "—" }, void 0, !1, {
507
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
508
+ lineNumber: 848,
509
+ columnNumber: 15
510
+ }, this)
511
+ ] }, void 0, !0, {
512
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
513
+ lineNumber: 846,
514
+ columnNumber: 13
515
+ }, this),
516
+ u && /* @__PURE__ */ e("div", { className: "flex h-9 items-center gap-2", children: re && oe ? /* @__PURE__ */ e("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: [
517
+ /* @__PURE__ */ e(es, { className: "h-3 w-3" }, void 0, !1, {
518
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
519
+ lineNumber: 861,
520
+ columnNumber: 21
521
+ }, this),
426
522
  "Ready"
427
- ] }) : /* @__PURE__ */ s("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: [
428
- /* @__PURE__ */ e(Ae, { className: "h-3 w-3" }),
429
- se ? "Keys Missing" : "Disabled"
430
- ] }) }),
431
- !ae && p && I[p].missing.length > 0 && /* @__PURE__ */ s("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: [
432
- /* @__PURE__ */ e(tr, { className: "h-3 w-3" }),
523
+ ] }, void 0, !0, {
524
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
525
+ lineNumber: 860,
526
+ columnNumber: 19
527
+ }, this) : /* @__PURE__ */ e("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: [
528
+ /* @__PURE__ */ e(Se, { className: "h-3 w-3" }, void 0, !1, {
529
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
530
+ lineNumber: 866,
531
+ columnNumber: 21
532
+ }, this),
533
+ re ? "Keys Missing" : "Disabled"
534
+ ] }, void 0, !0, {
535
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
536
+ lineNumber: 865,
537
+ columnNumber: 19
538
+ }, this) }, void 0, !1, {
539
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
540
+ lineNumber: 858,
541
+ columnNumber: 15
542
+ }, this),
543
+ !oe && u && M[u].missing.length > 0 && /* @__PURE__ */ e("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: [
544
+ /* @__PURE__ */ e(ss, { className: "h-3 w-3" }, void 0, !1, {
545
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
546
+ lineNumber: 875,
547
+ columnNumber: 17
548
+ }, this),
433
549
  "Missing: ",
434
- I[p].missing.join(", ")
435
- ] })
436
- ] })
437
- ] }),
438
- /* @__PURE__ */ s(
439
- Q,
550
+ M[u].missing.join(", ")
551
+ ] }, void 0, !0, {
552
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
553
+ lineNumber: 874,
554
+ columnNumber: 15
555
+ }, this)
556
+ ] }, void 0, !0, {
557
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
558
+ lineNumber: 845,
559
+ columnNumber: 11
560
+ }, this)
561
+ ] }, void 0, !0, {
562
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
563
+ lineNumber: 815,
564
+ columnNumber: 9
565
+ }, this),
566
+ /* @__PURE__ */ e(
567
+ X,
440
568
  {
441
569
  title: "Product Information",
442
570
  hideHeader: !0,
443
571
  children: [
444
- a && /* @__PURE__ */ s("div", { className: "flex items-center justify-between text-xs text-muted-foreground pb-2 border-b border-border/40 mb-2.5", children: [
445
- /* @__PURE__ */ e("span", { className: "font-semibold text-[11px] uppercase tracking-wider text-muted-foreground/80", children: "Product Settings" }),
446
- /* @__PURE__ */ e("div", { className: "flex items-center gap-1.5 min-h-[16px]", children: $e ? /* @__PURE__ */ s(Me, { children: [
447
- /* @__PURE__ */ s("div", { className: "relative flex h-2 w-2", children: [
448
- /* @__PURE__ */ e("span", { className: "animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75" }),
449
- /* @__PURE__ */ e("span", { className: "relative inline-flex rounded-full h-2 w-2 bg-amber-500" })
450
- ] }),
451
- /* @__PURE__ */ e("span", { className: "text-amber-600 dark:text-amber-400 font-medium", children: "Autosaving settings..." })
452
- ] }) : ge ? /* @__PURE__ */ s("span", { className: "text-red-500 font-medium", children: [
572
+ o && /* @__PURE__ */ e("div", { className: "flex items-center justify-between text-xs text-muted-foreground pb-2 border-b border-border/40 mb-2.5", children: [
573
+ /* @__PURE__ */ e("span", { className: "font-semibold text-[11px] uppercase tracking-wider text-muted-foreground/80", children: "Product Settings" }, void 0, !1, {
574
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
575
+ lineNumber: 888,
576
+ columnNumber: 15
577
+ }, this),
578
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-1.5 min-h-[16px]", children: Ee ? /* @__PURE__ */ e(Ue, { children: [
579
+ /* @__PURE__ */ e("div", { className: "relative flex h-2 w-2", children: [
580
+ /* @__PURE__ */ e("span", { className: "animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75" }, void 0, !1, {
581
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
582
+ lineNumber: 893,
583
+ columnNumber: 23
584
+ }, this),
585
+ /* @__PURE__ */ e("span", { className: "relative inline-flex rounded-full h-2 w-2 bg-amber-500" }, void 0, !1, {
586
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
587
+ lineNumber: 894,
588
+ columnNumber: 23
589
+ }, this)
590
+ ] }, void 0, !0, {
591
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
592
+ lineNumber: 892,
593
+ columnNumber: 21
594
+ }, this),
595
+ /* @__PURE__ */ e("span", { className: "text-amber-600 dark:text-amber-400 font-medium", children: "Autosaving settings..." }, void 0, !1, {
596
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
597
+ lineNumber: 896,
598
+ columnNumber: 21
599
+ }, this)
600
+ ] }, void 0, !0, {
601
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
602
+ lineNumber: 891,
603
+ columnNumber: 19
604
+ }, this) : Ne ? /* @__PURE__ */ e("span", { className: "text-red-500 font-medium", children: [
453
605
  "Error saving settings: ",
454
- ge
455
- ] }) : _e ? /* @__PURE__ */ s("span", { className: "text-emerald-600 dark:text-emerald-400 font-medium", children: [
606
+ Ne
607
+ ] }, void 0, !0, {
608
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
609
+ lineNumber: 899,
610
+ columnNumber: 19
611
+ }, this) : fe ? /* @__PURE__ */ e("span", { className: "text-emerald-600 dark:text-emerald-400 font-medium", children: [
456
612
  "Settings autosaved at ",
457
- _e.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", second: "2-digit" })
458
- ] }) : /* @__PURE__ */ e("span", { className: "text-muted-foreground/60", children: "Settings autosave in draft mode" }) })
459
- ] }),
460
- /* @__PURE__ */ s("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-2.5", children: [
461
- /* @__PURE__ */ s("div", { className: "col-span-2 space-y-1", children: [
462
- /* @__PURE__ */ e(x, { htmlFor: "title", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Title" }),
463
- /* @__PURE__ */ e(y, { id: "title", placeholder: "Product title", ...n("title"), className: "h-8 text-sm" }),
464
- f.title && /* @__PURE__ */ e("p", { className: "text-destructive text-[11px] leading-none", children: f.title.message })
465
- ] }),
466
- /* @__PURE__ */ s("div", { className: "col-span-2 space-y-1", children: [
467
- /* @__PURE__ */ e(x, { htmlFor: "slug", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Slug" }),
468
- /* @__PURE__ */ e(y, { id: "slug", placeholder: "product-slug", ...n("slug"), className: "h-8 text-sm" }),
469
- f.slug && /* @__PURE__ */ e("p", { className: "text-destructive text-[11px] leading-none", children: f.slug.message })
470
- ] }),
471
- /* @__PURE__ */ s("div", { className: "col-span-1 space-y-1", children: [
472
- /* @__PURE__ */ e(x, { htmlFor: "sku", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "SKU" }),
473
- /* @__PURE__ */ e(y, { id: "sku", placeholder: "SKU", ...n("sku"), className: "h-8 text-sm font-mono" }),
474
- f.sku && /* @__PURE__ */ e("p", { className: "text-destructive text-[11px] leading-none", children: f.sku.message })
475
- ] }),
476
- /* @__PURE__ */ s("div", { className: "col-span-1 space-y-1", children: [
477
- /* @__PURE__ */ e(x, { htmlFor: "upc_ean", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "UPC / EAN" }),
478
- /* @__PURE__ */ e(y, { id: "upc_ean", placeholder: "000000000", ...n("upc"), className: "h-8 text-sm font-mono", readOnly: S })
479
- ] })
480
- ] }),
481
- /* @__PURE__ */ s("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-12 gap-2.5 mt-2", children: [
482
- /* @__PURE__ */ s("div", { className: `${a ? "lg:col-span-3" : "lg:col-span-4"} col-span-2 space-y-1`, children: [
483
- /* @__PURE__ */ e(x, { htmlFor: "meta_title", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Meta Title" }),
484
- /* @__PURE__ */ e(y, { id: "meta_title", ...n("meta_title"), placeholder: "SEO page title (50-60 chars)", className: "h-8 text-sm" })
485
- ] }),
486
- /* @__PURE__ */ s("div", { className: "lg:col-span-4 col-span-2 space-y-1", children: [
487
- /* @__PURE__ */ e(x, { htmlFor: "meta_description", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Meta Description" }),
488
- /* @__PURE__ */ e(y, { id: "meta_description", ...n("meta_description"), placeholder: "SEO description (150-160 chars)", className: "h-8 text-sm" })
489
- ] }),
490
- /* @__PURE__ */ s("div", { className: `${a ? "lg:col-span-3" : "lg:col-span-4"} col-span-2 space-y-1`, children: [
491
- /* @__PURE__ */ e(x, { htmlFor: "custom_canonical", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Canonical URL (optional)" }),
492
- /* @__PURE__ */ e(y, { id: "custom_canonical", ...n("custom_canonical"), placeholder: "Blank = self-referencing. Absolute https://… URL or /relative path to override.", className: "h-8 text-sm" })
493
- ] }),
494
- a && /* @__PURE__ */ s("div", { className: "lg:col-span-2 col-span-2 space-y-1", children: [
495
- /* @__PURE__ */ e(x, { htmlFor: "status", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Status" }),
496
- /* @__PURE__ */ s(le, { onValueChange: (t) => i("status", t, { shouldDirty: !0 }), value: o("status"), children: [
497
- /* @__PURE__ */ e(ne, { className: "h-8 text-xs", children: /* @__PURE__ */ e(ce, { placeholder: "Status" }) }),
498
- /* @__PURE__ */ s(ue, { children: [
499
- /* @__PURE__ */ e(F, { value: "draft", children: "Draft" }),
500
- /* @__PURE__ */ e(F, { value: "active", children: "Active" }),
501
- /* @__PURE__ */ e(F, { value: "archived", children: "Archived" })
502
- ] })
503
- ] })
504
- ] })
505
- ] })
613
+ fe.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", second: "2-digit" })
614
+ ] }, void 0, !0, {
615
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
616
+ lineNumber: 901,
617
+ columnNumber: 19
618
+ }, this) : /* @__PURE__ */ e("span", { className: "text-muted-foreground/60", children: "Settings autosave in draft mode" }, void 0, !1, {
619
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
620
+ lineNumber: 905,
621
+ columnNumber: 19
622
+ }, this) }, void 0, !1, {
623
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
624
+ lineNumber: 889,
625
+ columnNumber: 15
626
+ }, this)
627
+ ] }, void 0, !0, {
628
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
629
+ lineNumber: 887,
630
+ columnNumber: 13
631
+ }, this),
632
+ /* @__PURE__ */ e("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-2.5", children: [
633
+ /* @__PURE__ */ e("div", { className: "col-span-2 space-y-1", children: [
634
+ /* @__PURE__ */ e(x, { htmlFor: "title", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Title" }, void 0, !1, {
635
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
636
+ lineNumber: 912,
637
+ columnNumber: 15
638
+ }, this),
639
+ /* @__PURE__ */ e(h, { id: "title", placeholder: "Product title", ...m("title"), className: "h-8 text-sm" }, void 0, !1, {
640
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
641
+ lineNumber: 913,
642
+ columnNumber: 15
643
+ }, this),
644
+ b.title && /* @__PURE__ */ e("p", { className: "text-destructive text-[11px] leading-none", children: b.title.message }, void 0, !1, {
645
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
646
+ lineNumber: 914,
647
+ columnNumber: 32
648
+ }, this)
649
+ ] }, void 0, !0, {
650
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
651
+ lineNumber: 911,
652
+ columnNumber: 13
653
+ }, this),
654
+ /* @__PURE__ */ e("div", { className: "col-span-2 space-y-1", children: [
655
+ /* @__PURE__ */ e(x, { htmlFor: "slug", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Slug" }, void 0, !1, {
656
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
657
+ lineNumber: 917,
658
+ columnNumber: 15
659
+ }, this),
660
+ /* @__PURE__ */ e(h, { id: "slug", placeholder: "product-slug", ...m("slug"), className: "h-8 text-sm" }, void 0, !1, {
661
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
662
+ lineNumber: 918,
663
+ columnNumber: 15
664
+ }, this),
665
+ b.slug && /* @__PURE__ */ e("p", { className: "text-destructive text-[11px] leading-none", children: b.slug.message }, void 0, !1, {
666
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
667
+ lineNumber: 919,
668
+ columnNumber: 31
669
+ }, this)
670
+ ] }, void 0, !0, {
671
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
672
+ lineNumber: 916,
673
+ columnNumber: 13
674
+ }, this),
675
+ /* @__PURE__ */ e("div", { className: "col-span-1 space-y-1", children: [
676
+ /* @__PURE__ */ e(x, { htmlFor: "sku", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "SKU" }, void 0, !1, {
677
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
678
+ lineNumber: 922,
679
+ columnNumber: 15
680
+ }, this),
681
+ /* @__PURE__ */ e(h, { id: "sku", placeholder: "SKU", ...m("sku"), className: "h-8 text-sm font-mono" }, void 0, !1, {
682
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
683
+ lineNumber: 923,
684
+ columnNumber: 15
685
+ }, this),
686
+ b.sku && /* @__PURE__ */ e("p", { className: "text-destructive text-[11px] leading-none", children: b.sku.message }, void 0, !1, {
687
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
688
+ lineNumber: 924,
689
+ columnNumber: 30
690
+ }, this)
691
+ ] }, void 0, !0, {
692
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
693
+ lineNumber: 921,
694
+ columnNumber: 13
695
+ }, this),
696
+ /* @__PURE__ */ e("div", { className: "col-span-1 space-y-1", children: [
697
+ /* @__PURE__ */ e(x, { htmlFor: "upc_ean", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "UPC / EAN" }, void 0, !1, {
698
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
699
+ lineNumber: 927,
700
+ columnNumber: 15
701
+ }, this),
702
+ /* @__PURE__ */ e(h, { id: "upc_ean", placeholder: "000000000", ...m("upc"), className: "h-8 text-sm font-mono", readOnly: _ }, void 0, !1, {
703
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
704
+ lineNumber: 928,
705
+ columnNumber: 15
706
+ }, this)
707
+ ] }, void 0, !0, {
708
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
709
+ lineNumber: 926,
710
+ columnNumber: 13
711
+ }, this)
712
+ ] }, void 0, !0, {
713
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
714
+ lineNumber: 910,
715
+ columnNumber: 11
716
+ }, this),
717
+ /* @__PURE__ */ e("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-12 gap-2.5 mt-2", children: [
718
+ /* @__PURE__ */ e("div", { className: `${o ? "lg:col-span-3" : "lg:col-span-4"} col-span-2 space-y-1`, children: [
719
+ /* @__PURE__ */ e(x, { htmlFor: "meta_title", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Meta Title" }, void 0, !1, {
720
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
721
+ lineNumber: 933,
722
+ columnNumber: 15
723
+ }, this),
724
+ /* @__PURE__ */ e(h, { id: "meta_title", ...m("meta_title"), placeholder: "SEO page title (50-60 chars)", className: "h-8 text-sm" }, void 0, !1, {
725
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
726
+ lineNumber: 934,
727
+ columnNumber: 15
728
+ }, this)
729
+ ] }, void 0, !0, {
730
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
731
+ lineNumber: 932,
732
+ columnNumber: 13
733
+ }, this),
734
+ /* @__PURE__ */ e("div", { className: "lg:col-span-4 col-span-2 space-y-1", children: [
735
+ /* @__PURE__ */ e(x, { htmlFor: "meta_description", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Meta Description" }, void 0, !1, {
736
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
737
+ lineNumber: 937,
738
+ columnNumber: 15
739
+ }, this),
740
+ /* @__PURE__ */ e(h, { id: "meta_description", ...m("meta_description"), placeholder: "SEO description (150-160 chars)", className: "h-8 text-sm" }, void 0, !1, {
741
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
742
+ lineNumber: 938,
743
+ columnNumber: 15
744
+ }, this)
745
+ ] }, void 0, !0, {
746
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
747
+ lineNumber: 936,
748
+ columnNumber: 13
749
+ }, this),
750
+ /* @__PURE__ */ e("div", { className: `${o ? "lg:col-span-3" : "lg:col-span-4"} col-span-2 space-y-1`, children: [
751
+ /* @__PURE__ */ e(x, { htmlFor: "custom_canonical", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Canonical URL (optional)" }, void 0, !1, {
752
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
753
+ lineNumber: 941,
754
+ columnNumber: 15
755
+ }, this),
756
+ /* @__PURE__ */ e(h, { id: "custom_canonical", ...m("custom_canonical"), placeholder: "Blank = self-referencing. Absolute https://… URL or /relative path to override.", className: "h-8 text-sm" }, void 0, !1, {
757
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
758
+ lineNumber: 942,
759
+ columnNumber: 15
760
+ }, this)
761
+ ] }, void 0, !0, {
762
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
763
+ lineNumber: 940,
764
+ columnNumber: 13
765
+ }, this),
766
+ o && /* @__PURE__ */ e("div", { className: "lg:col-span-2 col-span-2 space-y-1", children: [
767
+ /* @__PURE__ */ e(x, { htmlFor: "status", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Status" }, void 0, !1, {
768
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
769
+ lineNumber: 946,
770
+ columnNumber: 17
771
+ }, this),
772
+ /* @__PURE__ */ e(ne, { onValueChange: (r) => t("status", r, { shouldDirty: !0 }), value: i("status"), children: [
773
+ /* @__PURE__ */ e(me, { className: "h-8 text-xs", children: /* @__PURE__ */ e(le, { placeholder: "Status" }, void 0, !1, {
774
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
775
+ lineNumber: 949,
776
+ columnNumber: 21
777
+ }, this) }, void 0, !1, {
778
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
779
+ lineNumber: 948,
780
+ columnNumber: 19
781
+ }, this),
782
+ /* @__PURE__ */ e(de, { children: [
783
+ /* @__PURE__ */ e(j, { value: "draft", children: "Draft" }, void 0, !1, {
784
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
785
+ lineNumber: 952,
786
+ columnNumber: 21
787
+ }, this),
788
+ /* @__PURE__ */ e(j, { value: "active", children: "Active" }, void 0, !1, {
789
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
790
+ lineNumber: 953,
791
+ columnNumber: 21
792
+ }, this),
793
+ /* @__PURE__ */ e(j, { value: "archived", children: "Archived" }, void 0, !1, {
794
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
795
+ lineNumber: 954,
796
+ columnNumber: 21
797
+ }, this)
798
+ ] }, void 0, !0, {
799
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
800
+ lineNumber: 951,
801
+ columnNumber: 19
802
+ }, this)
803
+ ] }, void 0, !0, {
804
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
805
+ lineNumber: 947,
806
+ columnNumber: 17
807
+ }, this)
808
+ ] }, void 0, !0, {
809
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
810
+ lineNumber: 945,
811
+ columnNumber: 15
812
+ }, this)
813
+ ] }, void 0, !0, {
814
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
815
+ lineNumber: 931,
816
+ columnNumber: 11
817
+ }, this)
506
818
  ]
507
- }
819
+ },
820
+ void 0,
821
+ !0,
822
+ {
823
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
824
+ lineNumber: 882,
825
+ columnNumber: 9
826
+ },
827
+ this
508
828
  ),
509
829
  /* @__PURE__ */ e(
510
- Q,
830
+ X,
511
831
  {
512
832
  title: "Product Categories",
513
833
  description: "Assign this product to one or more categories.",
514
834
  children: /* @__PURE__ */ e(
515
- lr,
835
+ ns,
516
836
  {
517
- categories: Ee,
518
- selectedIds: o("category_ids") || [],
519
- onChange: (t) => i("category_ids", t, { shouldDirty: !0, shouldValidate: !0 })
520
- }
837
+ categories: ze,
838
+ selectedIds: i("category_ids") || [],
839
+ onChange: (r) => t("category_ids", r, { shouldDirty: !0, shouldValidate: !0 })
840
+ },
841
+ void 0,
842
+ !1,
843
+ {
844
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
845
+ lineNumber: 966,
846
+ columnNumber: 11
847
+ },
848
+ this
521
849
  )
522
- }
850
+ },
851
+ void 0,
852
+ !1,
853
+ {
854
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
855
+ lineNumber: 962,
856
+ columnNumber: 9
857
+ },
858
+ this
523
859
  ),
524
- /* @__PURE__ */ s("section", { className: "rounded-lg border bg-card p-3 shadow-sm space-y-3", children: [
525
- N && /* @__PURE__ */ s("div", { className: "flex items-center justify-between gap-4 flex-wrap border-b border-muted/50 pb-2", children: [
526
- /* @__PURE__ */ e("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ s("div", { className: "space-y-0.5", children: [
527
- /* @__PURE__ */ e("h2", { className: "text-sm font-bold tracking-tight", children: "Pricing & Inventory" }),
528
- /* @__PURE__ */ e("p", { className: "text-[11px] text-muted-foreground leading-none", children: "Manage simple or variant pricing." })
529
- ] }) }),
530
- /* @__PURE__ */ s("div", { className: "flex items-center gap-3", children: [
531
- /* @__PURE__ */ s("div", { className: "flex items-center gap-2 bg-muted/40 rounded-md px-2.5 py-1.5", children: [
532
- /* @__PURE__ */ e("span", { className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Stock" }),
860
+ /* @__PURE__ */ e("section", { className: "rounded-lg border bg-card p-3 shadow-sm space-y-3", children: [
861
+ v && /* @__PURE__ */ e("div", { className: "flex items-center justify-between gap-4 flex-wrap border-b border-muted/50 pb-2", children: [
862
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ e("div", { className: "space-y-0.5", children: [
863
+ /* @__PURE__ */ e("h2", { className: "text-sm font-bold tracking-tight", children: "Pricing & Inventory" }, void 0, !1, {
864
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
865
+ lineNumber: 978,
866
+ columnNumber: 19
867
+ }, this),
868
+ /* @__PURE__ */ e("p", { className: "text-[11px] text-muted-foreground leading-none", children: "Manage simple or variant pricing." }, void 0, !1, {
869
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
870
+ lineNumber: 979,
871
+ columnNumber: 19
872
+ }, this)
873
+ ] }, void 0, !0, {
874
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
875
+ lineNumber: 977,
876
+ columnNumber: 17
877
+ }, this) }, void 0, !1, {
878
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
879
+ lineNumber: 976,
880
+ columnNumber: 15
881
+ }, this),
882
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-3", children: [
883
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2 bg-muted/40 rounded-md px-2.5 py-1.5", children: [
884
+ /* @__PURE__ */ e("span", { className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Stock" }, void 0, !1, {
885
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
886
+ lineNumber: 984,
887
+ columnNumber: 21
888
+ }, this),
533
889
  /* @__PURE__ */ e(
534
- y,
890
+ h,
535
891
  {
536
892
  id: "stock",
537
893
  type: "number",
538
894
  min: "0",
539
- ...n("stock", { valueAsNumber: !0 }),
895
+ ...m("stock", { valueAsNumber: !0 }),
540
896
  placeholder: "0",
541
- readOnly: S,
542
- className: `${Ge} h-8 w-20 text-sm text-center font-mono bg-background`
543
- }
897
+ readOnly: _,
898
+ className: `${We} h-8 w-20 text-sm text-center font-mono bg-background`
899
+ },
900
+ void 0,
901
+ !1,
902
+ {
903
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
904
+ lineNumber: 985,
905
+ columnNumber: 21
906
+ },
907
+ this
544
908
  )
545
- ] }),
546
- S ? /* @__PURE__ */ e(Y, { variant: "secondary", className: "text-[11px] py-0 px-2 h-5", children: "Variant pricing" }) : null
547
- ] })
548
- ] }),
549
- N ? /* @__PURE__ */ s("div", { className: "space-y-3", children: [
550
- /* @__PURE__ */ s("div", { className: "w-full", children: [
909
+ ] }, void 0, !0, {
910
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
911
+ lineNumber: 983,
912
+ columnNumber: 19
913
+ }, this),
914
+ _ ? /* @__PURE__ */ e(L, { variant: "secondary", className: "text-[11px] py-0 px-2 h-5", children: "Variant pricing" }, void 0, !1, {
915
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
916
+ lineNumber: 996,
917
+ columnNumber: 19
918
+ }, this) : null
919
+ ] }, void 0, !0, {
920
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
921
+ lineNumber: 982,
922
+ columnNumber: 15
923
+ }, this)
924
+ ] }, void 0, !0, {
925
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
926
+ lineNumber: 975,
927
+ columnNumber: 13
928
+ }, this),
929
+ v ? /* @__PURE__ */ e("div", { className: "space-y-3", children: [
930
+ /* @__PURE__ */ e("div", { className: "w-full", children: [
551
931
  /* @__PURE__ */ e(
552
- Ie,
932
+ Me,
553
933
  {
554
934
  idPrefix: "product",
555
- currencies: c,
556
- prices: L.prices,
557
- salePrices: L.salePrices,
558
- managedCurrencyCodes: K,
559
- onPriceChange: we,
560
- onSalePriceChange: ke,
561
- onAutoFill: Ce,
562
- readOnly: S,
563
- helperText: S ? "Parent prices stay as a fallback, but active variants define the live shopper price." : void 0,
935
+ currencies: l,
936
+ prices: H.prices,
937
+ salePrices: H.salePrices,
938
+ managedCurrencyCodes: B,
939
+ onPriceChange: Ce,
940
+ onSalePriceChange: Fe,
941
+ onAutoFill: ye,
942
+ readOnly: _,
943
+ helperText: _ ? "Parent prices stay as a fallback, but active variants define the live shopper price." : void 0,
564
944
  trailing: /* @__PURE__ */ e(
565
- Re,
945
+ Ve,
566
946
  {
567
947
  idPrefix: "product",
568
- startAt: o("sale_start_at"),
569
- endAt: o("sale_end_at"),
570
- onChange: (t, d) => i(t, d, { shouldDirty: !0, shouldValidate: !0 }),
571
- error: f.sale_end_at?.message,
948
+ startAt: i("sale_start_at"),
949
+ endAt: i("sale_end_at"),
950
+ onChange: (r, c) => t(r, c, { shouldDirty: !0, shouldValidate: !0 }),
951
+ error: b.sale_end_at?.message,
572
952
  bare: !0
573
- }
953
+ },
954
+ void 0,
955
+ !1,
956
+ {
957
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
958
+ lineNumber: 1020,
959
+ columnNumber: 21
960
+ },
961
+ this
574
962
  )
575
- }
963
+ },
964
+ void 0,
965
+ !1,
966
+ {
967
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
968
+ lineNumber: 1004,
969
+ columnNumber: 17
970
+ },
971
+ this
576
972
  ),
577
- f.price && /* @__PURE__ */ e("p", { className: "text-destructive text-sm mt-1", children: f.price.message }),
578
- f.sale_price && /* @__PURE__ */ e("p", { className: "text-destructive text-sm mt-1", children: f.sale_price.message }),
579
- f.stock && /* @__PURE__ */ e("p", { className: "text-destructive text-[10px] font-medium leading-none mt-1", children: f.stock.message })
580
- ] }),
581
- /* @__PURE__ */ s("div", { className: "flex items-center justify-between gap-3 rounded border border-dashed p-2.5 bg-muted/5", children: [
582
- /* @__PURE__ */ e("span", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: S ? "Variations Active" : "Variations" }),
973
+ b.price && /* @__PURE__ */ e("p", { className: "text-destructive text-sm mt-1", children: b.price.message }, void 0, !1, {
974
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
975
+ lineNumber: 1033,
976
+ columnNumber: 19
977
+ }, this),
978
+ b.sale_price && /* @__PURE__ */ e("p", { className: "text-destructive text-sm mt-1", children: b.sale_price.message }, void 0, !1, {
979
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
980
+ lineNumber: 1036,
981
+ columnNumber: 19
982
+ }, this),
983
+ b.stock && /* @__PURE__ */ e("p", { className: "text-destructive text-[10px] font-medium leading-none mt-1", children: b.stock.message }, void 0, !1, {
984
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
985
+ lineNumber: 1039,
986
+ columnNumber: 19
987
+ }, this)
988
+ ] }, void 0, !0, {
989
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
990
+ lineNumber: 1003,
991
+ columnNumber: 15
992
+ }, this),
993
+ /* @__PURE__ */ e("div", { className: "flex items-center justify-between gap-3 rounded border border-dashed p-2.5 bg-muted/5", children: [
994
+ /* @__PURE__ */ e("span", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: _ ? "Variations Active" : "Variations" }, void 0, !1, {
995
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
996
+ lineNumber: 1044,
997
+ columnNumber: 17
998
+ }, this),
583
999
  /* @__PURE__ */ e(
584
- Te,
1000
+ we,
585
1001
  {
586
1002
  type: "button",
587
- variant: G ? "outline" : "default",
588
- onClick: () => D((t) => !t),
1003
+ variant: W ? "outline" : "default",
1004
+ onClick: () => Z((r) => !r),
589
1005
  size: "sm",
590
1006
  className: "h-7 text-xs px-3",
591
- children: G ? "Hide" : "Manage"
592
- }
1007
+ children: W ? "Hide" : "Manage"
1008
+ },
1009
+ void 0,
1010
+ !1,
1011
+ {
1012
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1013
+ lineNumber: 1045,
1014
+ columnNumber: 17
1015
+ },
1016
+ this
593
1017
  )
594
- ] }),
595
- G && /* @__PURE__ */ e("div", { className: "border-t pt-3", children: /* @__PURE__ */ e(
596
- or,
1018
+ ] }, void 0, !0, {
1019
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1020
+ lineNumber: 1043,
1021
+ columnNumber: 15
1022
+ }, this),
1023
+ W && /* @__PURE__ */ e("div", { className: "border-t pt-3", children: /* @__PURE__ */ e(
1024
+ is,
597
1025
  {
598
- globalAttributes: C,
599
- currentLanguageCode: Ye,
600
- baseSku: o("sku") || "",
601
- basePrice: M || 0,
1026
+ globalAttributes: y,
1027
+ currentLanguageCode: Le,
1028
+ baseSku: i("sku") || "",
1029
+ basePrice: U || 0,
602
1030
  basePrices: P,
603
- baseSalePrice: typeof R == "number" ? R : null,
604
- baseSalePrices: V,
605
- currencies: c,
606
- availableVariantImages: De,
607
- initialVariationAttributes: r?.variation_attributes,
608
- initialVariants: Qe,
609
- onChange: Ze
610
- }
611
- ) })
612
- ] }) : /* @__PURE__ */ s(Me, { children: [
613
- /* @__PURE__ */ s("div", { className: "space-y-4", children: [
614
- /* @__PURE__ */ s("div", { className: "flex items-end gap-4 w-full", children: [
615
- /* @__PURE__ */ s("div", { className: "flex-1", children: [
616
- /* @__PURE__ */ e(x, { htmlFor: "freemius_product_id", className: "text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block", children: "Freemius Product ID" }),
617
- /* @__PURE__ */ e(y, { id: "freemius_product_id", ...n("freemius_product_id"), className: "h-9" })
618
- ] }),
619
- /* @__PURE__ */ s("div", { className: "flex-1", children: [
620
- /* @__PURE__ */ e(x, { htmlFor: "freemius_plan_id", className: "text-[11px] uppercase tracking-wider text-muted-foreground font-bold mb-1.5 block", children: "Freemius Plan ID" }),
621
- /* @__PURE__ */ e(y, { id: "freemius_plan_id", ...n("freemius_plan_id"), className: "h-9" })
622
- ] }),
623
- Je ? /* @__PURE__ */ e(
624
- dr,
1031
+ baseSalePrice: typeof V == "number" ? V : null,
1032
+ baseSalePrices: D,
1033
+ currencies: l,
1034
+ availableVariantImages: Ze,
1035
+ initialVariationAttributes: s?.variation_attributes,
1036
+ initialVariants: Xe,
1037
+ onChange: Qe
1038
+ },
1039
+ void 0,
1040
+ !1,
1041
+ {
1042
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1043
+ lineNumber: 1058,
1044
+ columnNumber: 19
1045
+ },
1046
+ this
1047
+ ) }, void 0, !1, {
1048
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1049
+ lineNumber: 1057,
1050
+ columnNumber: 17
1051
+ }, this)
1052
+ ] }, void 0, !0, {
1053
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1054
+ lineNumber: 1002,
1055
+ columnNumber: 13
1056
+ }, this) : /* @__PURE__ */ e(Ue, { children: [
1057
+ /* @__PURE__ */ e("div", { className: "space-y-4", children: [
1058
+ /* @__PURE__ */ e("div", { className: "flex items-end gap-4 w-full", children: [
1059
+ /* @__PURE__ */ e("div", { className: "flex-1", children: [
1060
+ /* @__PURE__ */ e(x, { 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, {
1061
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1062
+ lineNumber: 1082,
1063
+ columnNumber: 19
1064
+ }, this),
1065
+ /* @__PURE__ */ e(h, { id: "freemius_product_id", ...m("freemius_product_id"), className: "h-9" }, void 0, !1, {
1066
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1067
+ lineNumber: 1083,
1068
+ columnNumber: 19
1069
+ }, this)
1070
+ ] }, void 0, !0, {
1071
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1072
+ lineNumber: 1081,
1073
+ columnNumber: 17
1074
+ }, this),
1075
+ /* @__PURE__ */ e("div", { className: "flex-1", children: [
1076
+ /* @__PURE__ */ e(x, { 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, {
1077
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1078
+ lineNumber: 1086,
1079
+ columnNumber: 19
1080
+ }, this),
1081
+ /* @__PURE__ */ e(h, { id: "freemius_plan_id", ...m("freemius_plan_id"), className: "h-9" }, void 0, !1, {
1082
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1083
+ lineNumber: 1087,
1084
+ columnNumber: 19
1085
+ }, this)
1086
+ ] }, void 0, !0, {
1087
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1088
+ lineNumber: 1085,
1089
+ columnNumber: 17
1090
+ }, this),
1091
+ $e ? /* @__PURE__ */ e(
1092
+ cs,
1093
+ {
1094
+ productId: i("freemius_product_id"),
1095
+ hasOpenDraft: Be
1096
+ },
1097
+ void 0,
1098
+ !1,
625
1099
  {
626
- productId: o("freemius_product_id"),
627
- hasOpenDraft: Ke
628
- }
1100
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1101
+ lineNumber: 1090,
1102
+ columnNumber: 19
1103
+ },
1104
+ this
629
1105
  ) : null
630
- ] }),
631
- /* @__PURE__ */ s("div", { className: "bg-muted/10 border rounded-md overflow-hidden", children: [
632
- /* @__PURE__ */ s("div", { className: "flex flex-wrap items-center gap-6 bg-muted/20 border-b p-2.5 px-4", children: [
633
- /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
634
- /* @__PURE__ */ e("span", { className: "text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Free Trial" }),
635
- /* @__PURE__ */ s(Y, { variant: "outline", className: "font-mono text-xs shadow-sm bg-background", children: [
636
- String(o("trial_period_days") || 0),
1106
+ ] }, void 0, !0, {
1107
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1108
+ lineNumber: 1080,
1109
+ columnNumber: 15
1110
+ }, this),
1111
+ /* @__PURE__ */ e("div", { className: "bg-muted/10 border rounded-md overflow-hidden", children: [
1112
+ /* @__PURE__ */ e("div", { className: "flex flex-wrap items-center gap-6 bg-muted/20 border-b p-2.5 px-4", children: [
1113
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: [
1114
+ /* @__PURE__ */ e("span", { className: "text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Free Trial" }, void 0, !1, {
1115
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1116
+ lineNumber: 1100,
1117
+ columnNumber: 21
1118
+ }, this),
1119
+ /* @__PURE__ */ e(L, { variant: "outline", className: "font-mono text-xs shadow-sm bg-background", children: [
1120
+ String(i("trial_period_days") || 0),
637
1121
  " Days"
638
- ] })
639
- ] }),
640
- /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
641
- /* @__PURE__ */ e("span", { className: "text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Card Required" }),
642
- /* @__PURE__ */ e(Y, { variant: Ne ? "default" : "secondary", className: "text-xs shadow-sm", children: Ne ? "Yes" : "No" })
643
- ] }),
644
- /* @__PURE__ */ e("span", { className: "text-[10px] text-muted-foreground ml-auto", children: "Managed in Freemius dashboard" }),
645
- /* @__PURE__ */ e("input", { type: "hidden", ...n("trial_period_days", { valueAsNumber: !0 }) })
646
- ] }),
647
- /* @__PURE__ */ s("div", { className: "w-full p-4 pt-3 space-y-2", children: [
1122
+ ] }, void 0, !0, {
1123
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1124
+ lineNumber: 1101,
1125
+ columnNumber: 21
1126
+ }, this)
1127
+ ] }, void 0, !0, {
1128
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1129
+ lineNumber: 1099,
1130
+ columnNumber: 19
1131
+ }, this),
1132
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: [
1133
+ /* @__PURE__ */ e("span", { className: "text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Card Required" }, void 0, !1, {
1134
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1135
+ lineNumber: 1104,
1136
+ columnNumber: 21
1137
+ }, this),
1138
+ /* @__PURE__ */ e(L, { variant: ve ? "default" : "secondary", className: "text-xs shadow-sm", children: ve ? "Yes" : "No" }, void 0, !1, {
1139
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1140
+ lineNumber: 1105,
1141
+ columnNumber: 21
1142
+ }, this)
1143
+ ] }, void 0, !0, {
1144
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1145
+ lineNumber: 1103,
1146
+ columnNumber: 19
1147
+ }, this),
1148
+ /* @__PURE__ */ e("span", { className: "text-[10px] text-muted-foreground ml-auto", children: "Managed in Freemius dashboard" }, void 0, !1, {
1149
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1150
+ lineNumber: 1109,
1151
+ columnNumber: 19
1152
+ }, this),
1153
+ /* @__PURE__ */ e("input", { type: "hidden", ...m("trial_period_days", { valueAsNumber: !0 }) }, void 0, !1, {
1154
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1155
+ lineNumber: 1113,
1156
+ columnNumber: 19
1157
+ }, this)
1158
+ ] }, void 0, !0, {
1159
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1160
+ lineNumber: 1098,
1161
+ columnNumber: 17
1162
+ }, this),
1163
+ /* @__PURE__ */ e("div", { className: "w-full p-4 pt-3 space-y-2", children: [
648
1164
  /* @__PURE__ */ e(
649
- Ie,
1165
+ Me,
650
1166
  {
651
1167
  idPrefix: "product",
652
- currencies: c,
653
- prices: L.prices,
654
- salePrices: L.salePrices,
655
- managedCurrencyCodes: K,
656
- onPriceChange: we,
657
- onSalePriceChange: ke,
658
- onAutoFill: Ce,
1168
+ currencies: l,
1169
+ prices: H.prices,
1170
+ salePrices: H.salePrices,
1171
+ managedCurrencyCodes: B,
1172
+ onPriceChange: Ce,
1173
+ onSalePriceChange: Fe,
1174
+ onAutoFill: ye,
659
1175
  readOnly: !0,
660
1176
  trailing: /* @__PURE__ */ e(
661
- Re,
1177
+ Ve,
662
1178
  {
663
1179
  idPrefix: "product",
664
- startAt: o("sale_start_at"),
665
- endAt: o("sale_end_at"),
666
- onChange: (t, d) => i(t, d, { shouldDirty: !0, shouldValidate: !0 }),
667
- error: f.sale_end_at?.message,
1180
+ startAt: i("sale_start_at"),
1181
+ endAt: i("sale_end_at"),
1182
+ onChange: (r, c) => t(r, c, { shouldDirty: !0, shouldValidate: !0 }),
1183
+ error: b.sale_end_at?.message,
668
1184
  bare: !0
669
- }
1185
+ },
1186
+ void 0,
1187
+ !1,
1188
+ {
1189
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1190
+ lineNumber: 1128,
1191
+ columnNumber: 23
1192
+ },
1193
+ this
670
1194
  )
671
- }
1195
+ },
1196
+ void 0,
1197
+ !1,
1198
+ {
1199
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1200
+ lineNumber: 1117,
1201
+ columnNumber: 19
1202
+ },
1203
+ this
672
1204
  ),
673
- /* @__PURE__ */ e("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." })
674
- ] })
675
- ] })
676
- ] }),
677
- q && /* @__PURE__ */ e("div", { className: "pt-2 border-t", children: q })
678
- ] })
679
- ] }),
680
- /* @__PURE__ */ e(Q, { title: "Product Description", hideHeader: !0, children: /* @__PURE__ */ e("div", { className: "space-y-2", children: /* @__PURE__ */ s("div", { className: "space-y-1", children: [
681
- /* @__PURE__ */ e(x, { htmlFor: "short_description", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Short Description" }),
682
- /* @__PURE__ */ e(y, { id: "short_description", ...n("short_description"), placeholder: "Brief summary for product cards...", className: "h-8 text-sm" })
683
- ] }) }) }),
684
- /* @__PURE__ */ s(Q, { title: "Media Gallery", description: "Drag to reorder. First image is the hero.", children: [
1205
+ /* @__PURE__ */ e("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, {
1206
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1207
+ lineNumber: 1140,
1208
+ columnNumber: 19
1209
+ }, this)
1210
+ ] }, void 0, !0, {
1211
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1212
+ lineNumber: 1116,
1213
+ columnNumber: 17
1214
+ }, this)
1215
+ ] }, void 0, !0, {
1216
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1217
+ lineNumber: 1097,
1218
+ columnNumber: 15
1219
+ }, this)
1220
+ ] }, void 0, !0, {
1221
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1222
+ lineNumber: 1079,
1223
+ columnNumber: 15
1224
+ }, this),
1225
+ R && /* @__PURE__ */ e("div", { className: "pt-2 border-t", children: R }, void 0, !1, {
1226
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1227
+ lineNumber: 1148,
1228
+ columnNumber: 17
1229
+ }, this)
1230
+ ] }, void 0, !0, {
1231
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1232
+ lineNumber: 1078,
1233
+ columnNumber: 13
1234
+ }, this)
1235
+ ] }, void 0, !0, {
1236
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1237
+ lineNumber: 973,
1238
+ columnNumber: 9
1239
+ }, this),
1240
+ /* @__PURE__ */ e(X, { title: "Product Description", hideHeader: !0, children: /* @__PURE__ */ e("div", { className: "space-y-2", children: /* @__PURE__ */ e("div", { className: "space-y-1", children: [
1241
+ /* @__PURE__ */ e(x, { htmlFor: "short_description", className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Short Description" }, void 0, !1, {
1242
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1243
+ lineNumber: 1159,
1244
+ columnNumber: 15
1245
+ }, this),
1246
+ /* @__PURE__ */ e(h, { id: "short_description", ...m("short_description"), placeholder: "Brief summary for product cards...", className: "h-8 text-sm" }, void 0, !1, {
1247
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1248
+ lineNumber: 1160,
1249
+ columnNumber: 15
1250
+ }, this)
1251
+ ] }, void 0, !0, {
1252
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1253
+ lineNumber: 1158,
1254
+ columnNumber: 13
1255
+ }, this) }, void 0, !1, {
1256
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1257
+ lineNumber: 1157,
1258
+ columnNumber: 11
1259
+ }, this) }, void 0, !1, {
1260
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1261
+ lineNumber: 1156,
1262
+ columnNumber: 9
1263
+ }, this),
1264
+ /* @__PURE__ */ e(X, { title: "Media Gallery", description: "Drag to reorder. First image is the hero.", children: [
685
1265
  /* @__PURE__ */ e(
686
- ir,
1266
+ ts,
1267
+ {
1268
+ initialMedia: te,
1269
+ onUpdate: Ye,
1270
+ mediaPickerNode: g
1271
+ },
1272
+ void 0,
1273
+ !1,
687
1274
  {
688
- initialMedia: ie,
689
- onUpdate: We,
690
- mediaPickerNode: b
691
- }
1275
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1276
+ lineNumber: 1166,
1277
+ columnNumber: 11
1278
+ },
1279
+ this
692
1280
  ),
693
- /* @__PURE__ */ e("input", { type: "hidden", ...n("product_media") })
694
- ] }),
695
- !a && /* @__PURE__ */ s("div", { className: "rounded-lg border bg-card p-3 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap", children: [
696
- /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
697
- /* @__PURE__ */ e("span", { className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Status" }),
698
- /* @__PURE__ */ s(le, { onValueChange: (t) => i("status", t), value: o("status"), children: [
699
- /* @__PURE__ */ e(ne, { className: "h-8 w-[110px] text-sm", children: /* @__PURE__ */ e(ce, { placeholder: "Status" }) }),
700
- /* @__PURE__ */ s(ue, { children: [
701
- /* @__PURE__ */ e(F, { value: "draft", children: "Draft" }),
702
- /* @__PURE__ */ e(F, { value: "active", children: "Active" }),
703
- /* @__PURE__ */ e(F, { value: "archived", children: "Archived" })
704
- ] })
705
- ] })
706
- ] }),
707
- /* @__PURE__ */ e(Te, { disabled: B, type: "submit", size: "sm", className: "h-8 text-sm px-5", children: B ? "Saving..." : "Save Changes" })
708
- ] })
709
- ] })
710
- ] });
1281
+ /* @__PURE__ */ e("input", { type: "hidden", ...m("product_media") }, void 0, !1, {
1282
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1283
+ lineNumber: 1171,
1284
+ columnNumber: 11
1285
+ }, this)
1286
+ ] }, void 0, !0, {
1287
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1288
+ lineNumber: 1165,
1289
+ columnNumber: 9
1290
+ }, this),
1291
+ !o && /* @__PURE__ */ e("div", { className: "rounded-lg border bg-card p-3 px-4 shadow-sm flex items-center justify-between gap-3 flex-wrap", children: [
1292
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: [
1293
+ /* @__PURE__ */ e("span", { className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Status" }, void 0, !1, {
1294
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1295
+ lineNumber: 1177,
1296
+ columnNumber: 15
1297
+ }, this),
1298
+ /* @__PURE__ */ e(ne, { onValueChange: (r) => t("status", r), value: i("status"), children: [
1299
+ /* @__PURE__ */ e(me, { className: "h-8 w-[110px] text-sm", children: /* @__PURE__ */ e(le, { placeholder: "Status" }, void 0, !1, {
1300
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1301
+ lineNumber: 1180,
1302
+ columnNumber: 19
1303
+ }, this) }, void 0, !1, {
1304
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1305
+ lineNumber: 1179,
1306
+ columnNumber: 17
1307
+ }, this),
1308
+ /* @__PURE__ */ e(de, { children: [
1309
+ /* @__PURE__ */ e(j, { value: "draft", children: "Draft" }, void 0, !1, {
1310
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1311
+ lineNumber: 1183,
1312
+ columnNumber: 19
1313
+ }, this),
1314
+ /* @__PURE__ */ e(j, { value: "active", children: "Active" }, void 0, !1, {
1315
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1316
+ lineNumber: 1184,
1317
+ columnNumber: 19
1318
+ }, this),
1319
+ /* @__PURE__ */ e(j, { value: "archived", children: "Archived" }, void 0, !1, {
1320
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1321
+ lineNumber: 1185,
1322
+ columnNumber: 19
1323
+ }, this)
1324
+ ] }, void 0, !0, {
1325
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1326
+ lineNumber: 1182,
1327
+ columnNumber: 17
1328
+ }, this)
1329
+ ] }, void 0, !0, {
1330
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1331
+ lineNumber: 1178,
1332
+ columnNumber: 15
1333
+ }, this)
1334
+ ] }, void 0, !0, {
1335
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1336
+ lineNumber: 1176,
1337
+ columnNumber: 13
1338
+ }, this),
1339
+ /* @__PURE__ */ e(we, { disabled: q, type: "submit", size: "sm", className: "h-8 text-sm px-5", children: q ? "Saving..." : "Save Changes" }, void 0, !1, {
1340
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1341
+ lineNumber: 1189,
1342
+ columnNumber: 13
1343
+ }, this)
1344
+ ] }, void 0, !0, {
1345
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1346
+ lineNumber: 1175,
1347
+ columnNumber: 11
1348
+ }, this)
1349
+ ] }, void 0, !0, {
1350
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1351
+ lineNumber: 814,
1352
+ columnNumber: 7
1353
+ }, this)
1354
+ ] }, void 0, !0, {
1355
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/ProductForm.tsx",
1356
+ lineNumber: 809,
1357
+ columnNumber: 5
1358
+ }, this);
711
1359
  }
712
1360
  export {
713
- Ir as ProductForm
1361
+ Ms as ProductForm
714
1362
  };