@nextblock-cms/ecom 0.13.3 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/lib/CurrencyProvider.cjs.js +1 -1
  2. package/lib/CurrencyProvider.es.js +31 -27
  3. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  4. package/lib/components/AccountNavigationMenu.es.js +53 -26
  5. package/lib/components/AddToCartButton.cjs.js +1 -1
  6. package/lib/components/AddToCartButton.es.js +49 -25
  7. package/lib/components/Cart.cjs.js +1 -1
  8. package/lib/components/Cart.es.js +367 -115
  9. package/lib/components/CartDrawer.cjs.js +1 -1
  10. package/lib/components/CartDrawer.es.js +272 -88
  11. package/lib/components/CartIcon.cjs.js +1 -1
  12. package/lib/components/CartIcon.es.js +44 -16
  13. package/lib/components/Checkout.cjs.js +1 -1
  14. package/lib/components/Checkout.es.js +1601 -694
  15. package/lib/components/CouponForm.cjs.js +1 -1
  16. package/lib/components/CouponForm.es.js +160 -96
  17. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  18. package/lib/components/CurrencySwitcher.es.js +32 -12
  19. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  20. package/lib/components/CustomerProfileForm.es.js +666 -250
  21. package/lib/components/FeaturedProduct.cjs.js +1 -1
  22. package/lib/components/FeaturedProduct.es.js +126 -42
  23. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  24. package/lib/components/FreemiusLicensePanel.es.js +125 -45
  25. package/lib/components/InvoiceDocument.cjs.js +1 -1
  26. package/lib/components/InvoiceDocument.es.js +485 -146
  27. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  28. package/lib/components/InvoiceViewerShell.es.js +142 -54
  29. package/lib/components/ProductCard.cjs.js +1 -1
  30. package/lib/components/ProductCard.es.js +224 -81
  31. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  32. package/lib/components/ProductDetailsLayout.es.js +629 -275
  33. package/lib/components/ProductGallery.cjs.js +1 -1
  34. package/lib/components/ProductGallery.es.js +64 -21
  35. package/lib/components/ProductGrid.cjs.js +1 -1
  36. package/lib/components/ProductGrid.es.js +28 -12
  37. package/lib/components/ShippingEstimator.cjs.js +1 -1
  38. package/lib/components/ShippingEstimator.es.js +226 -90
  39. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  40. package/lib/components/SimpleTiptapRenderer.es.js +286 -93
  41. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  42. package/lib/components/SubscriptionSelector.es.js +168 -92
  43. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  44. package/lib/pages/cms/coupons/CouponEditorForm.es.js +370 -110
  45. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  46. package/lib/pages/cms/coupons/CouponsPage.es.js +368 -116
  47. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  48. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +61 -25
  49. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  50. package/lib/pages/cms/coupons/EditCouponPage.es.js +71 -35
  51. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  52. package/lib/pages/cms/coupons/ProductScopePicker.es.js +167 -72
  53. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  54. package/lib/pages/cms/orders/ExportReportsDialog.es.js +247 -87
  55. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  56. package/lib/pages/cms/orders/OrderDetailPage.es.js +283 -95
  57. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  58. package/lib/pages/cms/orders/OrderPrintButton.es.js +21 -9
  59. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  60. package/lib/pages/cms/orders/OrderStatusForm.es.js +106 -46
  61. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  62. package/lib/pages/cms/orders/OrdersPage.es.js +257 -78
  63. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  64. package/lib/pages/cms/payments/PaymentsClient.es.js +551 -155
  65. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  66. package/lib/pages/cms/payments/PaymentsPage.es.js +24 -16
  67. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  68. package/lib/pages/cms/products/ProductsPage.es.js +77 -37
  69. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  70. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +176 -96
  71. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  72. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +85 -41
  73. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  74. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +455 -192
  75. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  76. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +72 -28
  77. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  78. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +490 -183
  79. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  80. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +175 -67
  81. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  82. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +211 -100
  83. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  84. package/lib/pages/cms/products/components/DeleteProductButton.es.js +45 -25
  85. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  86. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +202 -58
  87. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  88. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +234 -88
  89. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  90. package/lib/pages/cms/products/components/ProductForm.es.js +1199 -551
  91. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  92. package/lib/pages/cms/products/components/ProductMediaManager.es.js +154 -63
  93. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  94. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +391 -144
  95. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  96. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +203 -87
  97. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  98. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +30 -18
  99. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  100. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +35 -23
  101. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  102. package/lib/pages/cms/products/components/VariationsEditor.es.js +492 -261
  103. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  104. package/lib/pages/cms/products/inventory/InventoryPage.es.js +33 -13
  105. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  106. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +365 -145
  107. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  108. package/lib/pages/cms/products/new/NewProductPage.es.js +46 -34
  109. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  110. package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
  111. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  112. package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
  113. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
  115. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  116. package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
  117. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
  119. package/lib/product-context.cjs.js +1 -1
  120. package/lib/product-context.es.js +14 -10
  121. package/package.json +4 -4
@@ -1,408 +1,639 @@
1
1
  'use client';
2
- import { jsxs as i, jsx as o } from "react/jsx-runtime";
3
- import F from "next/link";
4
- import { useState as R, useMemo as E, useEffect as v } from "react";
5
- import { Badge as D, Button as z, Label as P, Input as U } from "@nextblock-cms/ui";
6
- import { extractSelectedTermsByAttribute as re, resolveTermValue as L, resolveAttributeName as q, generateVariantDrafts as ne } from "../../../../variation-utils.es.js";
2
+ import { jsxDEV as r } from "react/jsx-dev-runtime";
3
+ import w from "next/link";
4
+ import { useState as A, useMemo as T, useEffect as B } from "react";
5
+ import { Badge as F, Button as R, Label as y, Input as V } from "@nextblock-cms/ui";
6
+ import { extractSelectedTermsByAttribute as se, resolveTermValue as z, resolveAttributeName as L, generateVariantDrafts as re } from "../../../../variation-utils.es.js";
7
7
  import { CurrencyPriceFields as oe } from "./CurrencyPriceFields.es.js";
8
- import { SaleScheduleFields as se } from "./SaleScheduleFields.es.js";
9
- import { normalizeSalePriceMap as ie, normalizePriceMap as de, convertMinorUnitAmount as I } from "../../../../currency.es.js";
10
- import { sanitizeVariantDraftsForStoreManagedCurrencies as K, getStoreManagedPriceCurrencyCodes as ce, resolveEditorCurrencyPriceMaps as le } from "../product-price-sync.es.js";
11
- import { majorUnitAmountToMinor as X, minorUnitAmountToMajor as G } from "@nextblock-cms/utils";
12
- const O = process.env.NEXT_PUBLIC_R2_BASE_URL || "", Q = process.env.NEXT_PUBLIC_SUPABASE_URL || "", ae = (c) => c.startsWith("http") ? c : O ? `${O.replace(/\/+$/, "")}/${c.replace(/^\/+/, "")}` : Q ? `${Q.replace(/\/+$/, "")}/storage/v1/object/public/media/${c.replace(/^\/+/, "")}` : c;
13
- function W(c, m = "USD") {
8
+ import { SaleScheduleFields as ie } from "./SaleScheduleFields.es.js";
9
+ import { normalizeSalePriceMap as te, normalizePriceMap as ne, convertMinorUnitAmount as q } from "../../../../currency.es.js";
10
+ import { sanitizeVariantDraftsForStoreManagedCurrencies as I, getStoreManagedPriceCurrencyCodes as ce, resolveEditorCurrencyPriceMaps as me } from "../product-price-sync.es.js";
11
+ import { majorUnitAmountToMinor as K, minorUnitAmountToMajor as X } from "@nextblock-cms/utils";
12
+ const G = process.env.NEXT_PUBLIC_R2_BASE_URL || "", O = process.env.NEXT_PUBLIC_SUPABASE_URL || "", le = (c) => c.startsWith("http") ? c : G ? `${G.replace(/\/+$/, "")}/${c.replace(/^\/+/, "")}` : O ? `${O.replace(/\/+$/, "")}/storage/v1/object/public/media/${c.replace(/^\/+/, "")}` : c;
13
+ function Q(c, a = "USD") {
14
14
  return new Intl.NumberFormat("en-US", {
15
15
  style: "currency",
16
- currency: m
16
+ currency: a
17
17
  }).format(c);
18
18
  }
19
- function me(c) {
20
- return Object.entries(c).filter(([, m]) => m.length > 0).map(([m, _]) => ({ attribute_id: m, term_ids: _ }));
19
+ function ae(c) {
20
+ return Object.entries(c).filter(([, a]) => a.length > 0).map(([a, f]) => ({ attribute_id: a, term_ids: f }));
21
21
  }
22
- function Ne({
22
+ function _e({
23
23
  globalAttributes: c,
24
- currentLanguageCode: m,
25
- baseSku: _,
26
- basePrice: $,
27
- basePrices: M,
28
- baseSalePrice: w,
29
- baseSalePrices: A,
30
- currencies: d,
24
+ currentLanguageCode: a,
25
+ baseSku: f,
26
+ basePrice: E,
27
+ basePrices: j,
28
+ baseSalePrice: D,
29
+ baseSalePrices: v,
30
+ currencies: n,
31
31
  availableVariantImages: x = [],
32
- initialVariationAttributes: b,
33
- initialVariants: T,
34
- onChange: B
32
+ initialVariationAttributes: h,
33
+ initialVariants: S,
34
+ onChange: P
35
35
  }) {
36
- const [g, H] = R(() => b && b.length > 0 ? b.reduce((e, r) => (e[r.attribute_id] = r.term_ids, e), {}) : re(T || [])), [h, f] = R(
37
- K(
38
- T || [],
39
- d
36
+ const [N, W] = A(() => h && h.length > 0 ? h.reduce((e, o) => (e[o.attribute_id] = o.term_ids, e), {}) : se(S || [])), [b, p] = A(
37
+ I(
38
+ S || [],
39
+ n
40
40
  )
41
- ), y = E(
41
+ ), k = T(
42
42
  () => c.map((e) => ({
43
43
  attribute_id: e.id,
44
- attribute_name: q(e, m),
45
- terms: e.terms.filter((r) => (g[e.id] || []).includes(r.id)).map((r) => ({
46
- ...r,
47
- value: L(r, m)
44
+ attribute_name: L(e, a),
45
+ terms: e.terms.filter((o) => (N[e.id] || []).includes(o.id)).map((o) => ({
46
+ ...o,
47
+ value: z(o, a)
48
48
  }))
49
49
  })).filter((e) => e.terms.length > 0),
50
- [m, c, g]
50
+ [a, c, N]
51
51
  );
52
- v(() => {
53
- if (y.length === 0) {
54
- f([]);
52
+ B(() => {
53
+ if (k.length === 0) {
54
+ p([]);
55
55
  return;
56
56
  }
57
- f(
58
- (e) => K(
59
- ne({
60
- baseSku: _,
61
- basePrice: $,
62
- basePrices: de(M),
63
- baseSalePrice: w,
64
- baseSalePrices: ie(A),
65
- selectedAttributes: y,
57
+ p(
58
+ (e) => I(
59
+ re({
60
+ baseSku: f,
61
+ basePrice: E,
62
+ basePrices: ne(j),
63
+ baseSalePrice: D,
64
+ baseSalePrices: te(v),
65
+ selectedAttributes: k,
66
66
  previousVariants: e
67
67
  }),
68
- d
68
+ n
69
69
  )
70
70
  );
71
- }, [$, M, w, A, _, d, y]), v(() => {
72
- B({
73
- variationAttributes: me(g),
74
- variants: h
71
+ }, [E, j, D, v, f, n, k]), B(() => {
72
+ P({
73
+ variationAttributes: ae(N),
74
+ variants: b
75
75
  });
76
- }, [B, g, h]);
77
- const J = h.reduce(
78
- (e, r) => e + (r.stock_quantity || 0),
76
+ }, [P, N, b]);
77
+ const H = b.reduce(
78
+ (e, o) => e + (o.stock_quantity || 0),
79
79
  0
80
- ), k = d.find((e) => e.is_default) ?? d[0], N = E(
81
- () => ce(d),
82
- [d]
83
- ), Y = (e, r) => {
84
- H((t) => {
85
- const n = new Set(t[e] || []);
86
- return n.has(r) ? n.delete(r) : n.add(r), {
87
- ...t,
88
- [e]: [...n]
80
+ ), g = n.find((e) => e.is_default) ?? n[0], _ = T(
81
+ () => ce(n),
82
+ [n]
83
+ ), J = (e, o) => {
84
+ W((s) => {
85
+ const i = new Set(s[e] || []);
86
+ return i.has(o) ? i.delete(o) : i.add(o), {
87
+ ...s,
88
+ [e]: [...i]
89
89
  };
90
90
  });
91
- }, C = (e, r, t) => {
92
- f(
93
- (n) => n.map((s) => {
94
- if (s.combination_key !== e)
95
- return s;
96
- if (r === "sku")
91
+ }, C = (e, o, s) => {
92
+ p(
93
+ (i) => i.map((t) => {
94
+ if (t.combination_key !== e)
95
+ return t;
96
+ if (o === "sku")
97
97
  return {
98
- ...s,
99
- sku: t
98
+ ...t,
99
+ sku: s
100
100
  };
101
- if (r === "upc")
101
+ if (o === "upc")
102
102
  return {
103
- ...s,
104
- upc: t
103
+ ...t,
104
+ upc: s
105
105
  };
106
- if (r === "sale_price" && t === "")
106
+ if (o === "sale_price" && s === "")
107
107
  return {
108
- ...s,
108
+ ...t,
109
109
  sale_price: null
110
110
  };
111
- if (r === "prices" || r === "sale_prices")
112
- return s;
113
- const l = t === "" ? 0 : Number(t);
111
+ if (o === "prices" || o === "sale_prices")
112
+ return t;
113
+ const m = s === "" ? 0 : Number(s);
114
114
  return {
115
- ...s,
116
- [r]: Number.isFinite(l) ? l : 0
115
+ ...t,
116
+ [o]: Number.isFinite(m) ? m : 0
117
117
  };
118
118
  })
119
119
  );
120
- }, Z = (e, r, t) => {
121
- f(
122
- (n) => n.map(
123
- (s) => s.combination_key === e ? { ...s, [r]: t } : s
120
+ }, Y = (e, o, s) => {
121
+ p(
122
+ (i) => i.map(
123
+ (t) => t.combination_key === e ? { ...t, [o]: s } : t
124
124
  )
125
125
  );
126
- }, V = (e, r, t, n) => {
127
- const s = d.find((l) => l.is_default) ?? d[0];
128
- f(
129
- (l) => l.map((p) => {
130
- if (p.combination_key !== e)
131
- return p;
126
+ }, $ = (e, o, s, i) => {
127
+ const t = n.find((m) => m.is_default) ?? n[0];
128
+ p(
129
+ (m) => m.map((d) => {
130
+ if (d.combination_key !== e)
131
+ return d;
132
132
  const u = {
133
- ...t === "prices" ? p.prices : p.sale_prices,
134
- [r]: n
133
+ ...s === "prices" ? d.prices : d.sale_prices,
134
+ [o]: i
135
135
  };
136
136
  return {
137
- ...p,
138
- [t]: u,
139
- ...r === s?.code ? t === "prices" ? { price: n ?? 0 } : { sale_price: n } : {}
137
+ ...d,
138
+ [s]: u,
139
+ ...o === t?.code ? s === "prices" ? { price: i ?? 0 } : { sale_price: i } : {}
140
140
  };
141
141
  })
142
142
  );
143
- }, ee = (e) => {
144
- const r = d.find((n) => n.is_default) ?? d[0], t = new Set(N);
145
- r && f(
146
- (n) => n.map((s) => {
147
- if (s.combination_key !== e)
148
- return s;
149
- const l = d.reduce((u, a) => {
150
- if (a.code !== r.code && t.has(a.code))
143
+ }, Z = (e) => {
144
+ const o = n.find((i) => i.is_default) ?? n[0], s = new Set(_);
145
+ o && p(
146
+ (i) => i.map((t) => {
147
+ if (t.combination_key !== e)
148
+ return t;
149
+ const m = n.reduce((u, l) => {
150
+ if (l.code !== o.code && s.has(l.code))
151
151
  return u;
152
- const S = I({
153
- amount: X(s.price, r.code),
154
- fromCurrencyCode: r.code,
155
- toCurrencyCode: a.code,
156
- currencies: d,
152
+ const U = q({
153
+ amount: K(t.price, o.code),
154
+ fromCurrencyCode: o.code,
155
+ toCurrencyCode: l.code,
156
+ currencies: n,
157
157
  applyRounding: !0
158
158
  });
159
- return u[a.code] = G(S, a.code), u;
160
- }, {}), p = d.reduce(
161
- (u, a) => {
162
- if (a.code !== r.code && t.has(a.code))
159
+ return u[l.code] = X(U, l.code), u;
160
+ }, {}), d = n.reduce(
161
+ (u, l) => {
162
+ if (l.code !== o.code && s.has(l.code))
163
163
  return u;
164
- if (typeof s.sale_price != "number")
165
- return u[a.code] = null, u;
166
- const S = I({
167
- amount: X(s.sale_price, r.code),
168
- fromCurrencyCode: r.code,
169
- toCurrencyCode: a.code,
170
- currencies: d,
164
+ if (typeof t.sale_price != "number")
165
+ return u[l.code] = null, u;
166
+ const U = q({
167
+ amount: K(t.sale_price, o.code),
168
+ fromCurrencyCode: o.code,
169
+ toCurrencyCode: l.code,
170
+ currencies: n,
171
171
  applyRounding: !0
172
172
  });
173
- return u[a.code] = G(S, a.code), u;
173
+ return u[l.code] = X(U, l.code), u;
174
174
  },
175
175
  {}
176
176
  );
177
177
  return {
178
- ...s,
179
- prices: l,
180
- sale_prices: p
178
+ ...t,
179
+ prices: m,
180
+ sale_prices: d
181
181
  };
182
182
  })
183
183
  );
184
- }, te = (e, r) => {
185
- const t = x.find((l) => l.media_id === r);
186
- if (!t)
184
+ }, ee = (e, o) => {
185
+ const s = x.find((m) => m.media_id === o);
186
+ if (!s)
187
187
  return;
188
- const n = t.file_path, s = ae(n);
189
- f(
190
- (l) => l.map(
191
- (p) => p.combination_key === e ? {
192
- ...p,
193
- main_media_id: t.media_id,
194
- main_image_url: s
195
- } : p
188
+ const i = s.file_path, t = le(i);
189
+ p(
190
+ (m) => m.map(
191
+ (d) => d.combination_key === e ? {
192
+ ...d,
193
+ main_media_id: s.media_id,
194
+ main_image_url: t
195
+ } : d
196
196
  )
197
197
  );
198
- }, j = (e) => {
199
- f(
200
- (r) => r.map(
201
- (t) => t.combination_key === e ? {
202
- ...t,
198
+ }, M = (e) => {
199
+ p(
200
+ (o) => o.map(
201
+ (s) => s.combination_key === e ? {
202
+ ...s,
203
203
  main_media_id: null,
204
204
  main_image_url: null
205
- } : t
205
+ } : s
206
206
  )
207
207
  );
208
208
  };
209
- return c.length === 0 ? /* @__PURE__ */ i("div", { className: "rounded-lg border border-dashed p-6 text-sm text-muted-foreground", children: [
209
+ return c.length === 0 ? /* @__PURE__ */ r("div", { className: "rounded-lg border border-dashed p-6 text-sm text-muted-foreground", children: [
210
210
  "No global attributes have been created yet. Create them first in",
211
211
  " ",
212
- /* @__PURE__ */ o(F, { href: "/cms/products/attributes", className: "font-medium text-primary underline-offset-4 hover:underline", children: "Attribute Management" }),
212
+ /* @__PURE__ */ r(w, { href: "/cms/products/attributes", className: "font-medium text-primary underline-offset-4 hover:underline", children: "Attribute Management" }, void 0, !1, {
213
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
214
+ lineNumber: 402,
215
+ columnNumber: 9
216
+ }, this),
213
217
  "."
214
- ] }) : /* @__PURE__ */ i("div", { className: "space-y-3", children: [
215
- /* @__PURE__ */ i("div", { className: "space-y-2", children: [
216
- /* @__PURE__ */ i("div", { className: "flex items-center justify-between gap-3", children: [
217
- /* @__PURE__ */ i("div", { className: "flex items-center gap-3", children: [
218
- /* @__PURE__ */ o("span", { className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Attributes" }),
219
- /* @__PURE__ */ i(D, { variant: "outline", className: "text-[10px] px-1.5 h-4", children: [
220
- h.length,
218
+ ] }, void 0, !0, {
219
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
220
+ lineNumber: 400,
221
+ columnNumber: 7
222
+ }, this) : /* @__PURE__ */ r("div", { className: "space-y-3", children: [
223
+ /* @__PURE__ */ r("div", { className: "space-y-2", children: [
224
+ /* @__PURE__ */ r("div", { className: "flex items-center justify-between gap-3", children: [
225
+ /* @__PURE__ */ r("div", { className: "flex items-center gap-3", children: [
226
+ /* @__PURE__ */ r("span", { className: "text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none", children: "Attributes" }, void 0, !1, {
227
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
228
+ lineNumber: 416,
229
+ columnNumber: 13
230
+ }, this),
231
+ /* @__PURE__ */ r(F, { variant: "outline", className: "text-[10px] px-1.5 h-4", children: [
232
+ b.length,
221
233
  " variants"
222
- ] }),
223
- /* @__PURE__ */ i(D, { variant: "secondary", className: "text-[10px] px-1.5 h-4", children: [
234
+ ] }, void 0, !0, {
235
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
236
+ lineNumber: 417,
237
+ columnNumber: 13
238
+ }, this),
239
+ /* @__PURE__ */ r(F, { variant: "secondary", className: "text-[10px] px-1.5 h-4", children: [
224
240
  "Stock: ",
225
- J
226
- ] })
227
- ] }),
228
- /* @__PURE__ */ o(z, { asChild: !0, variant: "outline", size: "sm", className: "h-7 text-xs px-3", children: /* @__PURE__ */ o(F, { href: "/cms/products/attributes", children: "Manage" }) })
229
- ] }),
230
- /* @__PURE__ */ o("div", { className: "grid gap-2 lg:grid-cols-2", children: c.map((e) => {
231
- const r = g[e.id] || [];
232
- return /* @__PURE__ */ i("div", { className: "flex items-center gap-3 rounded border p-2.5", children: [
233
- /* @__PURE__ */ i("div", { className: "shrink-0 w-[100px]", children: [
234
- /* @__PURE__ */ o("span", { className: "text-sm font-bold block leading-tight", children: q(e, m) }),
235
- /* @__PURE__ */ i("span", { className: "text-[10px] text-muted-foreground leading-none", children: [
236
- r.length,
241
+ H
242
+ ] }, void 0, !0, {
243
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
244
+ lineNumber: 418,
245
+ columnNumber: 13
246
+ }, this)
247
+ ] }, void 0, !0, {
248
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
249
+ lineNumber: 415,
250
+ columnNumber: 11
251
+ }, this),
252
+ /* @__PURE__ */ r(R, { asChild: !0, variant: "outline", size: "sm", className: "h-7 text-xs px-3", children: /* @__PURE__ */ r(w, { href: "/cms/products/attributes", children: "Manage" }, void 0, !1, {
253
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
254
+ lineNumber: 421,
255
+ columnNumber: 13
256
+ }, this) }, void 0, !1, {
257
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
258
+ lineNumber: 420,
259
+ columnNumber: 11
260
+ }, this)
261
+ ] }, void 0, !0, {
262
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
263
+ lineNumber: 414,
264
+ columnNumber: 9
265
+ }, this),
266
+ /* @__PURE__ */ r("div", { className: "grid gap-2 lg:grid-cols-2", children: c.map((e) => {
267
+ const o = N[e.id] || [];
268
+ return /* @__PURE__ */ r("div", { className: "flex items-center gap-3 rounded border p-2.5", children: [
269
+ /* @__PURE__ */ r("div", { className: "shrink-0 w-[100px]", children: [
270
+ /* @__PURE__ */ r("span", { className: "text-sm font-bold block leading-tight", children: L(e, a) }, void 0, !1, {
271
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
272
+ lineNumber: 432,
273
+ columnNumber: 19
274
+ }, this),
275
+ /* @__PURE__ */ r("span", { className: "text-[10px] text-muted-foreground leading-none", children: [
276
+ o.length,
237
277
  " selected"
238
- ] })
239
- ] }),
240
- /* @__PURE__ */ o("div", { className: "flex flex-wrap gap-1.5 flex-1", children: e.terms.map((t) => {
241
- const n = r.includes(t.id);
242
- return /* @__PURE__ */ o(
278
+ ] }, void 0, !0, {
279
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
280
+ lineNumber: 433,
281
+ columnNumber: 19
282
+ }, this)
283
+ ] }, void 0, !0, {
284
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
285
+ lineNumber: 431,
286
+ columnNumber: 17
287
+ }, this),
288
+ /* @__PURE__ */ r("div", { className: "flex flex-wrap gap-1.5 flex-1", children: e.terms.map((s) => {
289
+ const i = o.includes(s.id);
290
+ return /* @__PURE__ */ r(
243
291
  "button",
244
292
  {
245
293
  type: "button",
246
- onClick: () => Y(e.id, t.id),
247
- className: `rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${n ? "border-primary bg-primary/10 text-primary" : "border-border bg-background text-foreground hover:border-primary/40"}`,
248
- children: L(t, m)
294
+ onClick: () => J(e.id, s.id),
295
+ className: `rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${i ? "border-primary bg-primary/10 text-primary" : "border-border bg-background text-foreground hover:border-primary/40"}`,
296
+ children: z(s, a)
249
297
  },
250
- t.id
298
+ s.id,
299
+ !1,
300
+ {
301
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
302
+ lineNumber: 440,
303
+ columnNumber: 23
304
+ },
305
+ this
251
306
  );
252
- }) })
253
- ] }, e.id);
254
- }) })
255
- ] }),
256
- h.length === 0 ? /* @__PURE__ */ o("div", { className: "rounded border border-dashed p-3 text-xs text-muted-foreground text-center", children: "Select terms above to generate variations." }) : /* @__PURE__ */ o("div", { className: "space-y-2", children: h.map((e) => {
257
- const r = le({
258
- currencies: d,
307
+ }) }, void 0, !1, {
308
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
309
+ lineNumber: 435,
310
+ columnNumber: 17
311
+ }, this)
312
+ ] }, e.id, !0, {
313
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
314
+ lineNumber: 430,
315
+ columnNumber: 15
316
+ }, this);
317
+ }) }, void 0, !1, {
318
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
319
+ lineNumber: 425,
320
+ columnNumber: 9
321
+ }, this)
322
+ ] }, void 0, !0, {
323
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
324
+ lineNumber: 413,
325
+ columnNumber: 7
326
+ }, this),
327
+ b.length === 0 ? /* @__PURE__ */ r("div", { className: "rounded border border-dashed p-3 text-xs text-muted-foreground text-center", children: "Select terms above to generate variations." }, void 0, !1, {
328
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
329
+ lineNumber: 463,
330
+ columnNumber: 9
331
+ }, this) : /* @__PURE__ */ r("div", { className: "space-y-2", children: b.map((e) => {
332
+ const o = me({
333
+ currencies: n,
259
334
  prices: e.prices || {},
260
335
  salePrices: e.sale_prices || {},
261
336
  fallbackPrice: e.price,
262
337
  fallbackSalePrice: e.sale_price
263
338
  });
264
- return /* @__PURE__ */ i("div", { className: "rounded border p-3 space-y-2", children: [
265
- /* @__PURE__ */ i("div", { className: "flex items-center justify-between gap-3", children: [
266
- /* @__PURE__ */ i("div", { className: "flex items-center gap-2", children: [
267
- /* @__PURE__ */ o("span", { className: "text-sm font-bold", children: e.label }),
268
- /* @__PURE__ */ o("span", { className: "text-xs text-muted-foreground", children: e.selected_options.map((t) => `${t.attribute_name}: ${t.term_value}`).join(" · ") })
269
- ] }),
270
- /* @__PURE__ */ i("div", { className: "flex items-center gap-3 text-xs text-muted-foreground", children: [
271
- /* @__PURE__ */ i("span", { children: [
339
+ return /* @__PURE__ */ r("div", { className: "rounded border p-3 space-y-2", children: [
340
+ /* @__PURE__ */ r("div", { className: "flex items-center justify-between gap-3", children: [
341
+ /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
342
+ /* @__PURE__ */ r("span", { className: "text-sm font-bold", children: e.label }, void 0, !1, {
343
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
344
+ lineNumber: 482,
345
+ columnNumber: 21
346
+ }, this),
347
+ /* @__PURE__ */ r("span", { className: "text-xs text-muted-foreground", children: e.selected_options.map((s) => `${s.attribute_name}: ${s.term_value}`).join(" · ") }, void 0, !1, {
348
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
349
+ lineNumber: 483,
350
+ columnNumber: 21
351
+ }, this)
352
+ ] }, void 0, !0, {
353
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
354
+ lineNumber: 481,
355
+ columnNumber: 19
356
+ }, this),
357
+ /* @__PURE__ */ r("div", { className: "flex items-center gap-3 text-xs text-muted-foreground", children: [
358
+ /* @__PURE__ */ r("span", { children: [
272
359
  "Reg: ",
273
- W(e.price, k?.code || "USD")
274
- ] }),
275
- /* @__PURE__ */ i("span", { children: [
360
+ Q(e.price, g?.code || "USD")
361
+ ] }, void 0, !0, {
362
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
363
+ lineNumber: 490,
364
+ columnNumber: 21
365
+ }, this),
366
+ /* @__PURE__ */ r("span", { children: [
276
367
  "Sale:",
277
368
  " ",
278
- e.sale_price !== null && e.sale_price !== void 0 ? W(e.sale_price, k?.code || "USD") : "—"
279
- ] })
280
- ] })
281
- ] }),
282
- /* @__PURE__ */ i("div", { className: "grid grid-cols-3 gap-2.5", children: [
283
- /* @__PURE__ */ i("div", { className: "flex items-center gap-2", children: [
284
- /* @__PURE__ */ o(P, { htmlFor: `variant-sku-${e.combination_key}`, className: "text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0", children: "SKU" }),
285
- /* @__PURE__ */ o(
286
- U,
369
+ e.sale_price !== null && e.sale_price !== void 0 ? Q(e.sale_price, g?.code || "USD") : "—"
370
+ ] }, void 0, !0, {
371
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
372
+ lineNumber: 491,
373
+ columnNumber: 21
374
+ }, this)
375
+ ] }, void 0, !0, {
376
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
377
+ lineNumber: 489,
378
+ columnNumber: 19
379
+ }, this)
380
+ ] }, void 0, !0, {
381
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
382
+ lineNumber: 480,
383
+ columnNumber: 17
384
+ }, this),
385
+ /* @__PURE__ */ r("div", { className: "grid grid-cols-3 gap-2.5", children: [
386
+ /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
387
+ /* @__PURE__ */ r(y, { htmlFor: `variant-sku-${e.combination_key}`, className: "text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0", children: "SKU" }, void 0, !1, {
388
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
389
+ lineNumber: 503,
390
+ columnNumber: 21
391
+ }, this),
392
+ /* @__PURE__ */ r(
393
+ V,
287
394
  {
288
395
  id: `variant-sku-${e.combination_key}`,
289
396
  value: e.sku,
290
- onChange: (t) => C(e.combination_key, "sku", t.target.value),
397
+ onChange: (s) => C(e.combination_key, "sku", s.target.value),
291
398
  placeholder: "SKU",
292
399
  className: "h-8 text-sm font-mono"
293
- }
400
+ },
401
+ void 0,
402
+ !1,
403
+ {
404
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
405
+ lineNumber: 504,
406
+ columnNumber: 21
407
+ },
408
+ this
294
409
  )
295
- ] }),
296
- /* @__PURE__ */ i("div", { className: "flex items-center gap-2", children: [
297
- /* @__PURE__ */ o(P, { htmlFor: `variant-upc-${e.combination_key}`, className: "text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0", children: "UPC" }),
298
- /* @__PURE__ */ o(
299
- U,
410
+ ] }, void 0, !0, {
411
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
412
+ lineNumber: 502,
413
+ columnNumber: 19
414
+ }, this),
415
+ /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
416
+ /* @__PURE__ */ r(y, { htmlFor: `variant-upc-${e.combination_key}`, className: "text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0", children: "UPC" }, void 0, !1, {
417
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
418
+ lineNumber: 515,
419
+ columnNumber: 21
420
+ }, this),
421
+ /* @__PURE__ */ r(
422
+ V,
300
423
  {
301
424
  id: `variant-upc-${e.combination_key}`,
302
425
  value: e.upc ?? "",
303
- onChange: (t) => C(e.combination_key, "upc", t.target.value),
426
+ onChange: (s) => C(e.combination_key, "upc", s.target.value),
304
427
  placeholder: "—",
305
428
  className: "h-8 text-sm font-mono"
306
- }
429
+ },
430
+ void 0,
431
+ !1,
432
+ {
433
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
434
+ lineNumber: 516,
435
+ columnNumber: 21
436
+ },
437
+ this
307
438
  )
308
- ] }),
309
- /* @__PURE__ */ i("div", { className: "flex items-center gap-2", children: [
310
- /* @__PURE__ */ o(P, { htmlFor: `variant-stock-${e.combination_key}`, className: "text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0", children: "Qty" }),
311
- /* @__PURE__ */ o(
312
- U,
439
+ ] }, void 0, !0, {
440
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
441
+ lineNumber: 514,
442
+ columnNumber: 19
443
+ }, this),
444
+ /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
445
+ /* @__PURE__ */ r(y, { htmlFor: `variant-stock-${e.combination_key}`, className: "text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0", children: "Qty" }, void 0, !1, {
446
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
447
+ lineNumber: 527,
448
+ columnNumber: 21
449
+ }, this),
450
+ /* @__PURE__ */ r(
451
+ V,
313
452
  {
314
453
  id: `variant-stock-${e.combination_key}`,
315
454
  type: "number",
316
455
  min: "0",
317
456
  value: e.stock_quantity,
318
- onChange: (t) => C(
457
+ onChange: (s) => C(
319
458
  e.combination_key,
320
459
  "stock_quantity",
321
- t.target.value
460
+ s.target.value
322
461
  ),
323
462
  className: "h-8 text-sm font-mono w-20"
324
- }
463
+ },
464
+ void 0,
465
+ !1,
466
+ {
467
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
468
+ lineNumber: 528,
469
+ columnNumber: 21
470
+ },
471
+ this
325
472
  )
326
- ] })
327
- ] }),
328
- /* @__PURE__ */ o(
473
+ ] }, void 0, !0, {
474
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
475
+ lineNumber: 526,
476
+ columnNumber: 19
477
+ }, this)
478
+ ] }, void 0, !0, {
479
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
480
+ lineNumber: 501,
481
+ columnNumber: 17
482
+ }, this),
483
+ /* @__PURE__ */ r(
329
484
  oe,
330
485
  {
331
486
  idPrefix: `variant-${e.combination_key}`,
332
- currencies: d,
333
- prices: r.prices,
334
- salePrices: r.salePrices,
335
- managedCurrencyCodes: N,
336
- onPriceChange: (t, n) => V(
487
+ currencies: n,
488
+ prices: o.prices,
489
+ salePrices: o.salePrices,
490
+ managedCurrencyCodes: _,
491
+ onPriceChange: (s, i) => $(
337
492
  e.combination_key,
338
- t,
493
+ s,
339
494
  "prices",
340
- n
495
+ i
341
496
  ),
342
- onSalePriceChange: (t, n) => V(
497
+ onSalePriceChange: (s, i) => $(
343
498
  e.combination_key,
344
- t,
499
+ s,
345
500
  "sale_prices",
346
- n
501
+ i
347
502
  ),
348
- onAutoFill: () => ee(e.combination_key),
349
- helperText: N.length > 0 ? `Store-managed currencies derive from ${k?.code || "the base currency"}.` : void 0,
350
- trailing: /* @__PURE__ */ o(
351
- se,
503
+ onAutoFill: () => Z(e.combination_key),
504
+ helperText: _.length > 0 ? `Store-managed currencies derive from ${g?.code || "the base currency"}.` : void 0,
505
+ trailing: /* @__PURE__ */ r(
506
+ ie,
352
507
  {
353
508
  idPrefix: `variant-${e.combination_key}`,
354
509
  startAt: e.sale_start_at,
355
510
  endAt: e.sale_end_at,
356
- onChange: (t, n) => Z(e.combination_key, t, n),
511
+ onChange: (s, i) => Y(e.combination_key, s, i),
357
512
  bare: !0
358
- }
513
+ },
514
+ void 0,
515
+ !1,
516
+ {
517
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
518
+ lineNumber: 575,
519
+ columnNumber: 21
520
+ },
521
+ this
359
522
  )
360
- }
523
+ },
524
+ void 0,
525
+ !1,
526
+ {
527
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
528
+ lineNumber: 546,
529
+ columnNumber: 17
530
+ },
531
+ this
361
532
  ),
362
- /* @__PURE__ */ i("div", { className: "flex items-center gap-3 pt-1.5 border-t border-muted/30", children: [
363
- e.main_image_url && /* @__PURE__ */ o("div", { className: "h-9 w-9 overflow-hidden rounded border bg-background shrink-0", children: /* @__PURE__ */ o(
533
+ /* @__PURE__ */ r("div", { className: "flex items-center gap-3 pt-1.5 border-t border-muted/30", children: [
534
+ e.main_image_url && /* @__PURE__ */ r("div", { className: "h-9 w-9 overflow-hidden rounded border bg-background shrink-0", children: /* @__PURE__ */ r(
364
535
  "img",
365
536
  {
366
537
  src: e.main_image_url,
367
538
  alt: `${e.label} image`,
368
539
  className: "h-full w-full object-cover"
369
- }
370
- ) }),
371
- /* @__PURE__ */ o("span", { className: "text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0", children: "Image" }),
372
- x.length > 0 ? /* @__PURE__ */ i(
540
+ },
541
+ void 0,
542
+ !1,
543
+ {
544
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
545
+ lineNumber: 591,
546
+ columnNumber: 23
547
+ },
548
+ this
549
+ ) }, void 0, !1, {
550
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
551
+ lineNumber: 590,
552
+ columnNumber: 21
553
+ }, this),
554
+ /* @__PURE__ */ r("span", { className: "text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0", children: "Image" }, void 0, !1, {
555
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
556
+ lineNumber: 598,
557
+ columnNumber: 19
558
+ }, this),
559
+ x.length > 0 ? /* @__PURE__ */ r(
373
560
  "select",
374
561
  {
375
562
  className: "flex h-8 rounded-md border border-input bg-background px-2 py-1 text-sm min-w-[180px]",
376
563
  value: e.main_media_id ?? "",
377
- onChange: (t) => {
378
- if (!t.target.value) {
379
- j(e.combination_key);
564
+ onChange: (s) => {
565
+ if (!s.target.value) {
566
+ M(e.combination_key);
380
567
  return;
381
568
  }
382
- te(e.combination_key, t.target.value);
569
+ ee(e.combination_key, s.target.value);
383
570
  },
384
571
  children: [
385
- /* @__PURE__ */ o("option", { value: "", children: "Use parent image" }),
386
- x.map((t, n) => /* @__PURE__ */ o("option", { value: t.media_id, children: t.alt?.trim() || `Gallery image ${n + 1}` }, t.media_id))
572
+ /* @__PURE__ */ r("option", { value: "", children: "Use parent image" }, void 0, !1, {
573
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
574
+ lineNumber: 611,
575
+ columnNumber: 23
576
+ }, this),
577
+ x.map((s, i) => /* @__PURE__ */ r("option", { value: s.media_id, children: s.alt?.trim() || `Gallery image ${i + 1}` }, s.media_id, !1, {
578
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
579
+ lineNumber: 613,
580
+ columnNumber: 25
581
+ }, this))
387
582
  ]
388
- }
389
- ) : /* @__PURE__ */ o("span", { className: "text-xs text-muted-foreground", children: "Add gallery images first." }),
390
- e.main_media_id && /* @__PURE__ */ o(
391
- z,
583
+ },
584
+ void 0,
585
+ !0,
586
+ {
587
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
588
+ lineNumber: 600,
589
+ columnNumber: 21
590
+ },
591
+ this
592
+ ) : /* @__PURE__ */ r("span", { className: "text-xs text-muted-foreground", children: "Add gallery images first." }, void 0, !1, {
593
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
594
+ lineNumber: 619,
595
+ columnNumber: 21
596
+ }, this),
597
+ e.main_media_id && /* @__PURE__ */ r(
598
+ R,
392
599
  {
393
600
  type: "button",
394
601
  variant: "ghost",
395
602
  size: "sm",
396
603
  className: "h-7 text-xs px-2 text-muted-foreground hover:text-destructive",
397
- onClick: () => j(e.combination_key),
604
+ onClick: () => M(e.combination_key),
398
605
  children: "Remove"
399
- }
606
+ },
607
+ void 0,
608
+ !1,
609
+ {
610
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
611
+ lineNumber: 622,
612
+ columnNumber: 21
613
+ },
614
+ this
400
615
  )
401
- ] })
402
- ] }, e.combination_key);
403
- }) })
404
- ] });
616
+ ] }, void 0, !0, {
617
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
618
+ lineNumber: 588,
619
+ columnNumber: 17
620
+ }, this)
621
+ ] }, e.combination_key, !0, {
622
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
623
+ lineNumber: 478,
624
+ columnNumber: 15
625
+ }, this);
626
+ }) }, void 0, !1, {
627
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
628
+ lineNumber: 467,
629
+ columnNumber: 9
630
+ }, this)
631
+ ] }, void 0, !0, {
632
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",
633
+ lineNumber: 411,
634
+ columnNumber: 5
635
+ }, this);
405
636
  }
406
637
  export {
407
- Ne as VariationsEditor
638
+ _e as VariationsEditor
408
639
  };